psCreationManager::psCreationManager( iObjectRegistry* objReg ) { objectReg = objReg; LoadRaceInformation(); msgHandler = psengine->GetMsgHandler(); msgHandler->Subscribe(this, MSGTYPE_CHAR_CREATE_CP); msgHandler->Subscribe(this, MSGTYPE_CHAR_CREATE_PARENTS); msgHandler->Subscribe(this, MSGTYPE_CHAR_CREATE_CHILDHOOD); msgHandler->Subscribe( this, MSGTYPE_CHAR_CREATE_UPLOAD ); msgHandler->Subscribe( this, MSGTYPE_CHAR_CREATE_VERIFY ); msgHandler->Subscribe( this, MSGTYPE_CHAR_CREATE_LIFEEVENTS ); msgHandler->Subscribe( this, MSGTYPE_CHAR_CREATE_TRAITS ); hasParentData = false; hasChildhoodData = false; hasLifeEventData = false; hasTraitData = false; selectedRace = -1; selectedFace = -1; selectedHairStyle = -1; selectedBeardStyle = -1; selectedHairColour = -1; selectedSkinColour = -1; selectedGender = PSCHARACTER_GENDER_MALE; fatherMod = 1; motherMod = 1; nameGenerator = new NameGenerationSystem(); nameGenerator->LoadDatabase( objReg ); ClearChoices(); }
void LinkedOptionsMenu::Load( LinkedOptionsMenu *prev, LinkedOptionsMenu *next ) { m_sprLineHighlight.Load( THEME->GetPathG(m_sName, "line highlight") ); m_Frame.SetName( "Frame" ); this->AddChild( &m_Frame ); m_SoundMoveRow.Load( THEME->GetPathS( m_sName, "move row" ) ); m_SoundSwitchMenu.Load( THEME->GetPathS( m_sName, "switch menu" ) ); m_FramePage.Load( THEME->GetPathG( m_sName, "page" ) ); m_Frame.AddChild( m_FramePage ); m_Cursor.SetName( "Cursor" ); m_Cursor.Load( m_sName, OptionsCursor::underline ); m_Cursor.Set(PLAYER_1); m_Frame.AddChild( &m_Cursor ); ON_COMMAND( m_Cursor ); m_sprIndicatorUp.SetName("IndicatorUp"); m_sprIndicatorDown.SetName("IndicatorDown"); m_sprIndicatorUp.Load( THEME->GetPathG( m_sName, "indicator up" ) ); m_sprIndicatorDown.Load( THEME->GetPathG( m_sName, "indicator down" ) ); m_Frame.AddChild( &m_sprIndicatorUp ); m_Frame.AddChild( &m_sprIndicatorDown ); ON_COMMAND( m_sprIndicatorUp ); ON_COMMAND( m_sprIndicatorDown ); m_bIndTweenedOn[0] = false; m_bIndTweenedOn[1] = false; //m_sprIndicatorUp.PlayCommand( "TweenOff" ); //m_sprIndicatorDown.PlayCommand( "TweenOff" ); m_PrevMenu = prev; m_NextMenu = next; m_bFocus = false; m_iCurrentSelection = -1; m_iCurPage = 0; ROW_OFFSET_X.Load( m_sName, "RowOffsetX" ); ROW_OFFSET_Y.Load( m_sName, "RowOffsetY" ); ROW_SPACING_Y.Load( m_sName, "RowSpacingY" ); CURSOR_OFFSET_X.Load( m_sName, "CursorOffsetX" ); MENU_WRAPPING.Load( m_sName, "MenuWrapping" ); ROWS_PER_PAGE.Load( m_sName, "RowsPerPage" ); ASSERT(ROWS_PER_PAGE > 0); ON_COMMAND( m_Frame ); ClearChoices(); }
void LinkedOptionsMenu::SetChoices( const CStringArray &asChoices ) { ClearChoices(); for( unsigned i = 0; i < asChoices.size(); i++ ) { CString ch = asChoices[i]; BitmapText *bt = new BitmapText; m_Rows.push_back( bt ); bt->LoadFromFont( THEME->GetPathF( m_sName, "menutext" ) ); bt->SetName( "Row" ); bt->SetXY( ROW_OFFSET_X, ROW_OFFSET_Y + (ROW_SPACING_Y * (float)(i % ROWS_PER_PAGE)) ); bt->SetText( ch ); m_Frame.AddChild( bt ); ON_COMMAND( *bt ); } // show first page of choices for( unsigned i = 0; i < asChoices.size() && i < (unsigned)ROWS_PER_PAGE; i++ ) { m_Rows[i]->PlayCommand("TweenOn"); } m_iCurPage = 0; if ( asChoices.size() > (unsigned)ROWS_PER_PAGE ) { m_sprIndicatorDown.PlayCommand("TweenOn"); m_bIndTweenedOn[1] = true; } if ( m_Rows.size() > 0 ) { if ( m_bFocus ) m_Cursor.PlayCommand( "TweenOn" ); m_Cursor.SetXY( CURSOR_OFFSET_X + m_Rows[0]->GetX(), m_Rows[0]->GetY() ); m_Cursor.SetBarWidth( floor(m_Rows[0]->GetZoomedWidth()) ); m_iCurrentSelection = 0; } else { m_iCurrentSelection = -1; m_Cursor.PlayCommand( "TweenOff" ); if ( m_bFocus ) SCREENMAN->PostMessageToTopScreen( m_smChangeMenu, 0.0f ); } }