From: Trent W. <qua...@us...> - 2004-11-18 04:11:14
|
Update of /cvsroot/planeshift/planeshift/src/client/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21639/src/client/gui Modified Files: pawscharcreatemain.cpp pawscharcreatemain.h Log Message: Made races that are not available for the selected gender grayed on the character creation screen. Made eyes/hair/etc options grayed until we get art. Index: pawscharcreatemain.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscharcreatemain.cpp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** pawscharcreatemain.cpp 27 Oct 2004 00:25:11 -0000 1.46 --- pawscharcreatemain.cpp 18 Nov 2004 04:11:00 -0000 1.47 *************** *** 132,136 **** beardStyleLabel = (pawsTextBox*)FindWidget( "BeardStyles" ); hairColourLabel = (pawsTextBox*)FindWidget( "HairColours" ); ! skinColourLabel = (pawsTextBox*)FindWidget( "SkinColours" ); return true; } --- 132,146 ---- beardStyleLabel = (pawsTextBox*)FindWidget( "BeardStyles" ); hairColourLabel = (pawsTextBox*)FindWidget( "HairColours" ); ! skinColourLabel = (pawsTextBox*)FindWidget( "SkinColours" ); ! ! // until we have art ! eyeLabel->Grayed(true); ! hairStyleLabel->Grayed(true); ! beardStyleLabel->Grayed(true); ! hairColourLabel->Grayed(true); ! skinColourLabel->Grayed(true); ! ! GrayRaceButtons(); ! return true; } *************** *** 405,409 **** --- 415,465 ---- } + void pawsCreationMain::GrayRaceButtons( ) + { + pawsRadioButtonGroup* raceBox = (pawsRadioButtonGroup*)FindWidget("RaceBox"); + for (unsigned id = 0; id < 12; id++) + { + pawsRadioButton* button = (pawsRadioButton*)raceBox->FindWidget(id); + if (button == NULL) + continue; + if (!createManager->IsAvailable(id,currentGender)) + button->GetTextBox()->Grayed(true); + else + button->GetTextBox()->Grayed(false); + } + } + + void pawsCreationMain::SelectGender(int newGender) + { + currentGender = newGender; + + GrayRaceButtons(); + + if( createManager->GetSelectedRace() == -1) + return; + + int race = createManager->GetSelectedRace(); + + while (!createManager->IsAvailable(race, currentGender)) + { + race++; + if (race > 11) + race = 0; + } + + if (race != createManager->GetSelectedRace()) + { + //windowManager->CreateWarningBox( "That gender isn't implemented for that race yet, sorry." ); + pawsRadioButtonGroup* raceBox = (pawsRadioButtonGroup*)FindWidget("RaceBox"); + raceBox->TurnAllOff(); + pawsRadioButton* button = (pawsRadioButton*)raceBox->FindWidget(race); + button->SetState(true); + } + + createManager->SetGender( currentGender ); + // Trigger gender update + UpdateRace(race); + } bool pawsCreationMain::OnButtonPressed( int mouseButton, int keyModifier, pawsWidget* widget ) *************** *** 658,662 **** if ( widget->GetID() == PSCHARACTER_RACE_KRAN ) { ! currentGender = PSCHARACTER_GENDER_NONE; } // If current gender isn't available, try every possible --- 714,718 ---- if ( widget->GetID() == PSCHARACTER_RACE_KRAN ) { ! SelectGender(PSCHARACTER_GENDER_NONE); } // If current gender isn't available, try every possible *************** *** 664,670 **** { if (createManager->IsAvailable(widget->GetID(),PSCHARACTER_GENDER_FEMALE)) ! currentGender = PSCHARACTER_GENDER_FEMALE; else if (createManager->IsAvailable(widget->GetID(),PSCHARACTER_GENDER_MALE)) ! currentGender = PSCHARACTER_GENDER_MALE; lastGender = currentGender; --- 720,726 ---- { if (createManager->IsAvailable(widget->GetID(),PSCHARACTER_GENDER_FEMALE)) ! SelectGender(PSCHARACTER_GENDER_FEMALE); else if (createManager->IsAvailable(widget->GetID(),PSCHARACTER_GENDER_MALE)) ! SelectGender(PSCHARACTER_GENDER_MALE); lastGender = currentGender; *************** *** 722,784 **** { case MALE_BUTTON: - { - if( createManager->GetSelectedRace() == -1) - return true; - - int newGender; - if ( createManager->GetSelectedRace() == PSCHARACTER_RACE_KRAN ) ! newGender = PSCHARACTER_GENDER_NONE; ! else ! newGender = PSCHARACTER_GENDER_MALE; ! ! ! if (createManager->IsAvailable(createManager->GetSelectedRace(),newGender)) ! { ! currentGender = newGender; ! createManager->SetGender( newGender ); ! } ! else ! { ! windowManager->CreateWarningBox( "That gender isn't implemented yet, sorry" ); ! return true; ! } ! ! ! // Trigger gender update ! UpdateRace(createManager->GetSelectedRace()); ! return true; ! } ! case FEMALE_BUTTON: - { - if( createManager->GetSelectedRace() == -1) - return true; - - int newGender; - if ( createManager->GetSelectedRace() == PSCHARACTER_RACE_KRAN ) ! newGender = PSCHARACTER_GENDER_NONE; ! else ! newGender = PSCHARACTER_GENDER_FEMALE; ! ! ! if (createManager->IsAvailable(createManager->GetSelectedRace(),newGender)) ! { ! currentGender = newGender; ! createManager->SetGender( newGender ); ! } ! else ! { ! windowManager->CreateWarningBox( "That gender isn't implemented yet, sorry" ); ! return true; ! } ! ! // Trigger gender update ! UpdateRace(createManager->GetSelectedRace()); ! return true; ! } ! ! case BACK_BUTTON: { --- 778,792 ---- { case MALE_BUTTON: if ( createManager->GetSelectedRace() == PSCHARACTER_RACE_KRAN ) ! SelectGender(PSCHARACTER_GENDER_NONE); ! else ! SelectGender(PSCHARACTER_GENDER_MALE); ! return true; case FEMALE_BUTTON: if ( createManager->GetSelectedRace() == PSCHARACTER_RACE_KRAN ) ! SelectGender(PSCHARACTER_GENDER_NONE); ! else ! SelectGender(PSCHARACTER_GENDER_FEMALE); ! return true; case BACK_BUTTON: { Index: pawscharcreatemain.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscharcreatemain.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** pawscharcreatemain.h 25 Sep 2004 19:28:23 -0000 1.14 --- pawscharcreatemain.h 18 Nov 2004 04:11:00 -0000 1.15 *************** *** 69,73 **** * @param currentEyeChoice The number of the current choice in the available list. */ ! void ChangeEyes( int currentEyeChoice ); /// The label that has the eye choice name. --- 69,81 ---- * @param currentEyeChoice The number of the current choice in the available list. */ ! void ChangeEyes( int currentEyeChoice ); ! ! /** Gray race buttons that are unavailable with the current gender. ! */ ! void GrayRaceButtons( ); ! ! /** Select a new gender. ! */ ! void SelectGender(int newGender); /// The label that has the eye choice name. |