Example #1
0
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();
}
Example #2
0
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();
}
Example #3
0
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 );
	}
}