mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47:17 +02:00
- bugfix: Getting incorrect data & CTDs when using multiple IMP characters with same voices. Now it is possible to have up to 6 merc with the same voice without getting incorrect data. No more need to use different voices! (IF YOU PLAY WITH MULTIPLE IMPS, YOU SHOULD START A NEW GAME, BECAUSE THE IMP CHARACTERS GAME DATA IS INCORRECT!)
- bugfix: CTD when using Random personality in I.M.P creation - moved Random personality flag from INI to option screen - added MAX_IMP_CHARACTERS entry in the ja2_options.ini (Range: 0 - 6) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@528 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+5
-1
@@ -257,6 +257,7 @@ void InitGameSettings()
|
|||||||
gGameSettings.fOptions[ TOPTION_TRACERS_FOR_SINGLE_FIRE ] = FALSE;
|
gGameSettings.fOptions[ TOPTION_TRACERS_FOR_SINGLE_FIRE ] = FALSE;
|
||||||
gGameSettings.fOptions[ TOPTION_RAIN_SOUND ] = TRUE;
|
gGameSettings.fOptions[ TOPTION_RAIN_SOUND ] = TRUE;
|
||||||
gGameSettings.fOptions[ TOPTION_ALLOW_CROWS ] = TRUE;
|
gGameSettings.fOptions[ TOPTION_ALLOW_CROWS ] = TRUE;
|
||||||
|
gGameSettings.fOptions[ TOPTION_USE_RANDOM_PERSONALITY ] = FALSE;
|
||||||
|
|
||||||
gGameSettings.ubSizeOfDisplayCover = 4;
|
gGameSettings.ubSizeOfDisplayCover = 4;
|
||||||
gGameSettings.ubSizeOfLOS = 4;
|
gGameSettings.ubSizeOfLOS = 4;
|
||||||
@@ -290,6 +291,9 @@ void LoadGameExternalOptions()
|
|||||||
|
|
||||||
//################# Laptop Settings #################
|
//################# Laptop Settings #################
|
||||||
|
|
||||||
|
// WANNE: Maximum number of imp characters (0 to 6)
|
||||||
|
gGameExternalOptions.iMaxIMPCharacters = iniReader.ReadInteger("JA2 Laptop Settings","MAX_IMP_CHARACTERS",1);
|
||||||
|
|
||||||
//Character generation
|
//Character generation
|
||||||
gGameExternalOptions.iMinAttribute = iniReader.ReadInteger("JA2 Laptop Settings","MIN_ATTRIBUTE_POINT",35);
|
gGameExternalOptions.iMinAttribute = iniReader.ReadInteger("JA2 Laptop Settings","MIN_ATTRIBUTE_POINT",35);
|
||||||
gGameExternalOptions.iMaxAttribute = iniReader.ReadInteger("JA2 Laptop Settings","MAX_ATTRIBUTE_POINT",90);
|
gGameExternalOptions.iMaxAttribute = iniReader.ReadInteger("JA2 Laptop Settings","MAX_ATTRIBUTE_POINT",90);
|
||||||
@@ -297,7 +301,7 @@ void LoadGameExternalOptions()
|
|||||||
gGameExternalOptions.iMaxZeroBonus = iniReader.ReadInteger("JA2 Laptop Settings","MAX_ZERO_BONUS",15);
|
gGameExternalOptions.iMaxZeroBonus = iniReader.ReadInteger("JA2 Laptop Settings","MAX_ZERO_BONUS",15);
|
||||||
gGameExternalOptions.iStartAttribute = iniReader.ReadInteger("JA2 Laptop Settings","START_ATTRIBUTE",55);
|
gGameExternalOptions.iStartAttribute = iniReader.ReadInteger("JA2 Laptop Settings","START_ATTRIBUTE",55);
|
||||||
|
|
||||||
gGameExternalOptions.fPers_att = iniReader.ReadBoolean("JA2 Laptop Settings","USE_RANDOM_PERSONALITY",FALSE);
|
//gGameExternalOptions.fPers_att = iniReader.ReadBoolean("JA2 Laptop Settings","USE_RANDOM_PERSONALITY",FALSE);
|
||||||
gGameExternalOptions.iCustomPersonality = iniReader.ReadInteger("JA2 Laptop Settings","CUSTOM_PERSONALITY",0);
|
gGameExternalOptions.iCustomPersonality = iniReader.ReadInteger("JA2 Laptop Settings","CUSTOM_PERSONALITY",0);
|
||||||
gGameExternalOptions.iCustomAttitude = iniReader.ReadInteger("JA2 Laptop Settings","CUSTOM_ATTITUDE",0);
|
gGameExternalOptions.iCustomAttitude = iniReader.ReadInteger("JA2 Laptop Settings","CUSTOM_ATTITUDE",0);
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -51,6 +51,7 @@ enum
|
|||||||
TOPTION_TRACERS_FOR_SINGLE_FIRE,
|
TOPTION_TRACERS_FOR_SINGLE_FIRE,
|
||||||
TOPTION_RAIN_SOUND,
|
TOPTION_RAIN_SOUND,
|
||||||
TOPTION_ALLOW_CROWS,
|
TOPTION_ALLOW_CROWS,
|
||||||
|
TOPTION_USE_RANDOM_PERSONALITY,
|
||||||
NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player
|
NUM_GAME_OPTIONS, //Toggle up this will be able to be Toggled by the player
|
||||||
|
|
||||||
|
|
||||||
@@ -142,6 +143,7 @@ typedef struct
|
|||||||
BOOLEAN fSellAll;
|
BOOLEAN fSellAll;
|
||||||
INT16 iPriceModifier;
|
INT16 iPriceModifier;
|
||||||
|
|
||||||
|
INT32 iMaxIMPCharacters;
|
||||||
INT32 iMinAttribute;
|
INT32 iMinAttribute;
|
||||||
INT32 iMaxAttribute;
|
INT32 iMaxAttribute;
|
||||||
INT32 iImpAttributePoints;
|
INT32 iImpAttributePoints;
|
||||||
@@ -177,7 +179,7 @@ typedef struct
|
|||||||
BOOLEAN fMercDayOne;
|
BOOLEAN fMercDayOne;
|
||||||
BOOLEAN fAllMercsAvailable;
|
BOOLEAN fAllMercsAvailable;
|
||||||
|
|
||||||
BOOLEAN fPers_att;
|
//BOOLEAN fPers_att;
|
||||||
|
|
||||||
INT8 iCustomPersonality;
|
INT8 iCustomPersonality;
|
||||||
INT8 iCustomAttitude;
|
INT8 iCustomAttitude;
|
||||||
|
|||||||
@@ -362,10 +362,13 @@ void BtnIMPBeginScreenDoneCallback(GUI_BUTTON *btn,INT32 reason)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// WANNE:
|
||||||
|
/*
|
||||||
if( CheckCharacterInputForEgg( ) )
|
if( CheckCharacterInputForEgg( ) )
|
||||||
{
|
{
|
||||||
fEggOnYouFace = TRUE;
|
fEggOnYouFace = TRUE;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+120
-121
@@ -249,84 +249,85 @@ BOOLEAN DoesCharacterHaveAPersoanlity( void )
|
|||||||
|
|
||||||
void CreatePlayerAttitude( void )
|
void CreatePlayerAttitude( void )
|
||||||
{
|
{
|
||||||
|
// WANNE
|
||||||
|
if (gGameSettings.fOptions[ TOPTION_USE_RANDOM_PERSONALITY ] == TRUE)
|
||||||
|
//if(gGameExternalOptions.fPers_att)
|
||||||
|
{
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_OPTIMIST );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_LONER );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_FRIENDLY );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_ARROGANT );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_NORMAL );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_ASSHOLE );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_COWARD );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_AGGRESSIVE );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_PESSIMIST );
|
||||||
|
AddAnAttitudeToAttitudeList( ATT_BIG_SHOT );
|
||||||
|
|
||||||
if(gGameExternalOptions.fPers_att)
|
// this function will 'roll a die' and decide if any attitude does exists
|
||||||
|
INT32 iDiceValue = 0;
|
||||||
|
INT32 iCounter = 0, iCounter2 = 0;
|
||||||
|
|
||||||
|
INT32 iAttitudeHits[NUM_ATTITUDES] = { 0 };
|
||||||
|
INT32 iHighestHits = 0;
|
||||||
|
INT32 iNumAttitudesWithHighestHits = 0;
|
||||||
|
|
||||||
|
iAttitude = ATT_NORMAL;
|
||||||
|
|
||||||
|
if ( iLastElementInAttitudeList == 0 )
|
||||||
{
|
{
|
||||||
AddAnAttitudeToAttitudeList( ATT_OPTIMIST );
|
return;
|
||||||
AddAnAttitudeToAttitudeList( ATT_LONER );
|
}
|
||||||
AddAnAttitudeToAttitudeList( ATT_FRIENDLY );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_ARROGANT );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_NORMAL );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_ASSHOLE );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_COWARD );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_AGGRESSIVE );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_PESSIMIST );
|
|
||||||
AddAnAttitudeToAttitudeList( ATT_BIG_SHOT );
|
|
||||||
|
|
||||||
// this function will 'roll a die' and decide if any attitude does exists
|
// count # of hits for each attitude
|
||||||
INT32 iDiceValue = 0;
|
for ( iCounter = 0; iCounter < iLastElementInAttitudeList; iCounter++ )
|
||||||
INT32 iCounter = 0, iCounter2 = 0;
|
{
|
||||||
|
iAttitudeHits[ AttitudeList[ iCounter ] ]++;
|
||||||
|
}
|
||||||
|
|
||||||
INT32 iAttitudeHits[NUM_ATTITUDES] = { 0 };
|
// find highest # of hits for any attitude
|
||||||
INT32 iHighestHits = 0;
|
for ( iCounter = 0; iCounter < NUM_ATTITUDES; iCounter++ )
|
||||||
INT32 iNumAttitudesWithHighestHits = 0;
|
{
|
||||||
|
if ( iAttitudeHits[ iCounter ] )
|
||||||
iAttitude = ATT_NORMAL;
|
|
||||||
|
|
||||||
if ( iLastElementInAttitudeList == 0 )
|
|
||||||
{
|
{
|
||||||
return;
|
if ( iAttitudeHits[ iCounter ] > iHighestHits )
|
||||||
}
|
|
||||||
|
|
||||||
// count # of hits for each attitude
|
|
||||||
for ( iCounter = 0; iCounter < iLastElementInAttitudeList; iCounter++ )
|
|
||||||
{
|
|
||||||
iAttitudeHits[ AttitudeList[ iCounter ] ]++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// find highest # of hits for any attitude
|
|
||||||
for ( iCounter = 0; iCounter < NUM_ATTITUDES; iCounter++ )
|
|
||||||
{
|
|
||||||
if ( iAttitudeHits[ iCounter ] )
|
|
||||||
{
|
{
|
||||||
if ( iAttitudeHits[ iCounter ] > iHighestHits )
|
iHighestHits = __max( iHighestHits, iAttitudeHits[ iCounter ] );
|
||||||
{
|
iNumAttitudesWithHighestHits = 1;
|
||||||
iHighestHits = __max( iHighestHits, iAttitudeHits[ iCounter ] );
|
|
||||||
iNumAttitudesWithHighestHits = 1;
|
|
||||||
}
|
|
||||||
else if ( iAttitudeHits[ iCounter ] == iHighestHits )
|
|
||||||
{
|
|
||||||
iNumAttitudesWithHighestHits++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
else if ( iAttitudeHits[ iCounter ] == iHighestHits )
|
||||||
|
|
||||||
// roll dice
|
|
||||||
iDiceValue = Random( iNumAttitudesWithHighestHits + 1 );
|
|
||||||
|
|
||||||
// find attitude
|
|
||||||
for ( iCounter = 0; iCounter < NUM_ATTITUDES; iCounter++ )
|
|
||||||
{
|
|
||||||
if ( iAttitudeHits[ iCounter ] == iHighestHits )
|
|
||||||
{
|
{
|
||||||
if ( iCounter2 == iDiceValue )
|
iNumAttitudesWithHighestHits++;
|
||||||
{
|
|
||||||
// this is it!
|
|
||||||
iAttitude = iCounter2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// one of the next attitudes...
|
|
||||||
iCounter2++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
// roll dice
|
||||||
|
iDiceValue = Random( iNumAttitudesWithHighestHits + 1 );
|
||||||
|
|
||||||
|
// find attitude
|
||||||
|
for ( iCounter = 0; iCounter < NUM_ATTITUDES; iCounter++ )
|
||||||
{
|
{
|
||||||
iAttitude = gGameExternalOptions.iCustomAttitude;
|
if ( iAttitudeHits[ iCounter ] == iHighestHits )
|
||||||
|
{
|
||||||
|
if ( iCounter2 == iDiceValue )
|
||||||
|
{
|
||||||
|
// this is it!
|
||||||
|
iAttitude = iCounter2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// one of the next attitudes...
|
||||||
|
iCounter2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iAttitude = gGameExternalOptions.iCustomAttitude;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -592,84 +593,82 @@ void AddAPersonalityToPersonalityList( INT8 bPersonlity )
|
|||||||
|
|
||||||
void CreatePlayerPersonality( void )
|
void CreatePlayerPersonality( void )
|
||||||
{
|
{
|
||||||
|
// WANNE
|
||||||
|
if (gGameSettings.fOptions[ TOPTION_USE_RANDOM_PERSONALITY ] == TRUE)
|
||||||
|
|
||||||
// Kaiden: Added for optional Mercenary personalities and attitudes
|
// Kaiden: Added for optional Mercenary personalities and attitudes
|
||||||
|
//if(gGameExternalOptions.fPers_att)
|
||||||
|
{
|
||||||
|
// Kaiden: More chances for Psycho and Normal.
|
||||||
|
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
||||||
|
AddAPersonalityToPersonalityList( PSYCHO );
|
||||||
|
AddAPersonalityToPersonalityList( FORGETFUL );
|
||||||
|
AddAPersonalityToPersonalityList( NERVOUS );
|
||||||
|
AddAPersonalityToPersonalityList( HEAT_INTOLERANT );
|
||||||
|
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
||||||
|
AddAPersonalityToPersonalityList( PSYCHO );
|
||||||
|
AddAPersonalityToPersonalityList( CLAUSTROPHOBIC );
|
||||||
|
AddAPersonalityToPersonalityList( NONSWIMMER );
|
||||||
|
AddAPersonalityToPersonalityList( FEAR_OF_INSECTS );
|
||||||
|
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
||||||
|
AddAPersonalityToPersonalityList( PSYCHO );
|
||||||
|
AddAPersonalityToPersonalityList( FORGETFUL );
|
||||||
|
AddAPersonalityToPersonalityList( NERVOUS );
|
||||||
|
AddAPersonalityToPersonalityList( HEAT_INTOLERANT );
|
||||||
|
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
||||||
|
AddAPersonalityToPersonalityList( PSYCHO );
|
||||||
|
AddAPersonalityToPersonalityList( CLAUSTROPHOBIC );
|
||||||
|
AddAPersonalityToPersonalityList( NONSWIMMER );
|
||||||
|
AddAPersonalityToPersonalityList( FEAR_OF_INSECTS );
|
||||||
|
|
||||||
if(gGameExternalOptions.fPers_att)
|
INT32 iDiceValue = 0;
|
||||||
|
INT32 iCounter = 0;
|
||||||
|
INT32 iCounter2 = 0;
|
||||||
|
|
||||||
|
// Kaiden: Roll dice 20 times just to be on the safe side
|
||||||
|
// was getting too many repeats. Will end up scrapping
|
||||||
|
// rand() later anyway so will worry about fixing it then.
|
||||||
|
|
||||||
|
// WANNE: No need to make a 20 times repeat
|
||||||
|
/*for (iCounter2 = 0; iCounter2 < 20; iCounter2++)
|
||||||
{
|
{
|
||||||
// Kaiden: More chances for Psycho and Normal.
|
iDiceValue = Random( iLastElementInPersonalityList + 1 );
|
||||||
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
}*/
|
||||||
AddAPersonalityToPersonalityList( PSYCHO );
|
|
||||||
AddAPersonalityToPersonalityList( FORGETFUL );
|
|
||||||
AddAPersonalityToPersonalityList( NERVOUS );
|
|
||||||
AddAPersonalityToPersonalityList( HEAT_INTOLERANT );
|
|
||||||
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
|
||||||
AddAPersonalityToPersonalityList( PSYCHO );
|
|
||||||
AddAPersonalityToPersonalityList( CLAUSTROPHOBIC );
|
|
||||||
AddAPersonalityToPersonalityList( NONSWIMMER );
|
|
||||||
AddAPersonalityToPersonalityList( FEAR_OF_INSECTS );
|
|
||||||
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
|
||||||
AddAPersonalityToPersonalityList( PSYCHO );
|
|
||||||
AddAPersonalityToPersonalityList( FORGETFUL );
|
|
||||||
AddAPersonalityToPersonalityList( NERVOUS );
|
|
||||||
AddAPersonalityToPersonalityList( HEAT_INTOLERANT );
|
|
||||||
AddAPersonalityToPersonalityList( NO_PERSONALITYTRAIT );
|
|
||||||
AddAPersonalityToPersonalityList( PSYCHO );
|
|
||||||
AddAPersonalityToPersonalityList( CLAUSTROPHOBIC );
|
|
||||||
AddAPersonalityToPersonalityList( NONSWIMMER );
|
|
||||||
AddAPersonalityToPersonalityList( FEAR_OF_INSECTS );
|
|
||||||
|
|
||||||
|
iDiceValue = Random( iLastElementInPersonalityList + 1 );
|
||||||
|
|
||||||
INT32 iDiceValue = 0;
|
// Kaiden two chances to avoid a normal personality. As IMP
|
||||||
INT32 iCounter = 0;
|
// says, They check it twice just to make sure :p
|
||||||
INT32 iCounter2 = 0;
|
for( iCounter = 0; iCounter < iLastElementInPersonalityList; iCounter++ )
|
||||||
|
{
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("iDiceValue = %d",iDiceValue));
|
||||||
|
|
||||||
// Kaiden: Roll dice 20 times just to be on the safe side
|
if( PersonalityList[ iDiceValue ] == NO_PERSONALITYTRAIT )
|
||||||
// was getting too many repeats. Will end up scrapping
|
|
||||||
// rand() later anyway so will worry about fixing it then.
|
|
||||||
for (iCounter2 = 0; iCounter < 20; iCounter2++)
|
|
||||||
{
|
{
|
||||||
|
//Kaiden: Roll one more time for good measure:
|
||||||
iDiceValue = Random( iLastElementInPersonalityList + 1 );
|
iDiceValue = Random( iLastElementInPersonalityList + 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kaiden two chances to avoid a normal personality. As IMP
|
|
||||||
// says, They check it twice just to make sure :p
|
|
||||||
for( iCounter = 0; iCounter < iLastElementInPersonalityList; iCounter++ )
|
|
||||||
{
|
|
||||||
|
|
||||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("iDiceValue = %d",iDiceValue));
|
|
||||||
|
|
||||||
if( PersonalityList[ iDiceValue ] = NO_PERSONALITYTRAIT )
|
|
||||||
{
|
|
||||||
//Kaiden: Roll one more time for good measure:
|
|
||||||
iDiceValue = Random( iLastElementInPersonalityList + 1 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("And our Personality is... = %d",PersonalityList[ iDiceValue ]));
|
|
||||||
iPersonality = PersonalityList[ iDiceValue ];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
iPersonality = gGameExternalOptions.iCustomPersonality;
|
|
||||||
}
|
}
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("And our Personality is... = %d",PersonalityList[ iDiceValue ]));
|
||||||
|
iPersonality = PersonalityList[ iDiceValue ];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iPersonality = gGameExternalOptions.iCustomPersonality;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CreatePlayersPersonalitySkillsAndAttitude( void )
|
void CreatePlayersPersonalitySkillsAndAttitude( void )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// creates personality, skills and attitudes from curretly built list
|
// creates personality, skills and attitudes from curretly built list
|
||||||
|
|
||||||
// personality
|
// personality
|
||||||
CreatePlayerPersonality( );
|
CreatePlayerPersonality( );
|
||||||
|
|
||||||
// skills are now created later after stats have been chosen
|
// skills are now created later after stats have been chosen
|
||||||
//CreatePlayerSkills( );
|
//CreatePlayerSkills( );
|
||||||
|
|
||||||
// attitude
|
// attitude
|
||||||
CreatePlayerAttitude( );
|
CreatePlayerAttitude( );
|
||||||
@@ -933,7 +932,7 @@ void HandleMercStatsForChangesInFace( )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//add the skills to the skills list
|
//add the skills to the skills listgMercProfiles
|
||||||
AddSelectedSkillsToSkillsList();
|
AddSelectedSkillsToSkillsList();
|
||||||
|
|
||||||
// now figure out skills
|
// now figure out skills
|
||||||
|
|||||||
+48
-4
@@ -210,11 +210,46 @@ void DestroyConfirmButtons( void )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INT32 GetCurrentIMPSlot( void )
|
||||||
|
{
|
||||||
|
INT16 iFilledSlot = PLAYER_GENERATED_CHARACTER_ID;
|
||||||
|
INT16 i;
|
||||||
|
|
||||||
|
for (i = PLAYER_GENERATED_CHARACTER_ID + gGameExternalOptions.iMaxIMPCharacters - 1; i >= PLAYER_GENERATED_CHARACTER_ID; i--)
|
||||||
|
{
|
||||||
|
// We found the current imp
|
||||||
|
if (wcscmp( gMercProfiles[i].zName, L"") != 0)
|
||||||
|
{
|
||||||
|
iFilledSlot = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return iFilledSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
// WANNE 10:
|
||||||
|
INT32 GetNextFreeIMPSlot( void )
|
||||||
|
{
|
||||||
|
INT16 iFreeSlot = -1;
|
||||||
|
INT16 i;
|
||||||
|
|
||||||
|
for (i = PLAYER_GENERATED_CHARACTER_ID; i < PLAYER_GENERATED_CHARACTER_ID + gGameExternalOptions.iMaxIMPCharacters; i++)
|
||||||
|
{
|
||||||
|
if (wcscmp( gMercProfiles[i].zName, L"") == 0)
|
||||||
|
{
|
||||||
|
iFreeSlot = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return iFreeSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN AddCharacterToPlayersTeam( void )
|
BOOLEAN AddCharacterToPlayersTeam( void )
|
||||||
{
|
{
|
||||||
|
INT32 iFreeIMPSlot = 0;
|
||||||
MERC_HIRE_STRUCT HireMercStruct;
|
MERC_HIRE_STRUCT HireMercStruct;
|
||||||
|
|
||||||
|
|
||||||
@@ -225,7 +260,10 @@ BOOLEAN AddCharacterToPlayersTeam( void )
|
|||||||
|
|
||||||
memset(&HireMercStruct, 0, sizeof(MERC_HIRE_STRUCT));
|
memset(&HireMercStruct, 0, sizeof(MERC_HIRE_STRUCT));
|
||||||
|
|
||||||
HireMercStruct.ubProfileID = ( UINT8 )( PLAYER_GENERATED_CHARACTER_ID + LaptopSaveInfo.iVoiceId ) ;
|
//HireMercStruct.ubProfileID = ( UINT8 )( PLAYER_GENERATED_CHARACTER_ID + LaptopSaveInfo.iVoiceId ) ;
|
||||||
|
|
||||||
|
// Get the current imp slot (imp is already stored)
|
||||||
|
HireMercStruct.ubProfileID = GetCurrentIMPSlot();
|
||||||
|
|
||||||
if( fLoadingCharacterForPreviousImpProfile == FALSE )
|
if( fLoadingCharacterForPreviousImpProfile == FALSE )
|
||||||
{
|
{
|
||||||
@@ -755,6 +793,9 @@ void LoadImpCharacter( STR nickName )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WANNE 10: set the next free profile id for the new imp
|
||||||
|
iProfileId = GetNextFreeIMPSlot();
|
||||||
|
|
||||||
// read in the profile
|
// read in the profile
|
||||||
if (!FileRead(hFile, &gMercProfiles[ iProfileId ] ,sizeof( MERCPROFILESTRUCT ), &uiBytesRead))
|
if (!FileRead(hFile, &gMercProfiles[ iProfileId ] ,sizeof( MERCPROFILESTRUCT ), &uiBytesRead))
|
||||||
{
|
{
|
||||||
@@ -777,8 +818,11 @@ void LoadImpCharacter( STR nickName )
|
|||||||
fLoadingCharacterForPreviousImpProfile = TRUE;
|
fLoadingCharacterForPreviousImpProfile = TRUE;
|
||||||
AddTransactionToPlayersBook(IMP_PROFILE,0, GetWorldTotalMin( ), - ( COST_OF_PROFILE ) );
|
AddTransactionToPlayersBook(IMP_PROFILE,0, GetWorldTotalMin( ), - ( COST_OF_PROFILE ) );
|
||||||
AddHistoryToPlayersLog( HISTORY_CHARACTER_GENERATED, 0,GetWorldTotalMin( ), -1, -1 );
|
AddHistoryToPlayersLog( HISTORY_CHARACTER_GENERATED, 0,GetWorldTotalMin( ), -1, -1 );
|
||||||
LaptopSaveInfo.iVoiceId = iProfileId - PLAYER_GENERATED_CHARACTER_ID;
|
|
||||||
AddCharacterToPlayersTeam( );
|
|
||||||
|
LaptopSaveInfo.iVoiceId = iProfileId - PLAYER_GENERATED_CHARACTER_ID;
|
||||||
|
|
||||||
|
AddCharacterToPlayersTeam( );
|
||||||
AddFutureDayStrategicEvent( EVENT_DAY2_ADD_EMAIL_FROM_IMP, 60 * 7, 0, 2 );
|
AddFutureDayStrategicEvent( EVENT_DAY2_ADD_EMAIL_FROM_IMP, 60 * 7, 0, 2 );
|
||||||
LaptopSaveInfo.fIMPCompletedFlag = TRUE;
|
LaptopSaveInfo.fIMPCompletedFlag = TRUE;
|
||||||
fPausedReDrawScreenFlag = TRUE;
|
fPausedReDrawScreenFlag = TRUE;
|
||||||
|
|||||||
@@ -15,5 +15,9 @@ void ResetIMPCharactersEyesAndMouthOffsets( UINT8 ubMercProfileID );
|
|||||||
|
|
||||||
BOOLEAN ImpExists ( STR fileName );
|
BOOLEAN ImpExists ( STR fileName );
|
||||||
|
|
||||||
|
// WANNE 10:
|
||||||
|
INT32 GetNextFreeIMPSlot( void );
|
||||||
|
INT32 GetCurrentIMPSlot( void );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+38
-28
@@ -382,6 +382,8 @@ void HandleTextEvent( UINT32 uiKey )
|
|||||||
|
|
||||||
void ProcessPlayerInputActivationString( void )
|
void ProcessPlayerInputActivationString( void )
|
||||||
{
|
{
|
||||||
|
INT16 iNextSlot = -1;
|
||||||
|
|
||||||
// prcess string to see if it matches activation string
|
// prcess string to see if it matches activation string
|
||||||
|
|
||||||
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
||||||
@@ -390,39 +392,47 @@ void ProcessPlayerInputActivationString( void )
|
|||||||
char charPlayerActivationString[32];
|
char charPlayerActivationString[32];
|
||||||
wcstombs(charPlayerActivationString,pPlayerActivationString,32);
|
wcstombs(charPlayerActivationString,pPlayerActivationString,32);
|
||||||
|
|
||||||
//Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
iNextSlot = GetNextFreeIMPSlot();
|
||||||
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
|
||||||
|
// We have at least one more free slot for a imp character
|
||||||
|
if (iNextSlot != -1)
|
||||||
{
|
{
|
||||||
// Kaiden: Need to reset skills, attributes and personalities with the new UB Method.
|
//Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||||
ResetSkillsAttributesAndPersonality( );
|
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||||
ClearAllSkillsList( );
|
{
|
||||||
iCurrentImpPage = IMP_MAIN_PAGE;
|
// Kaiden: Need to reset skills, attributes and personalities with the new UB Method.
|
||||||
|
ResetSkillsAttributesAndPersonality( );
|
||||||
|
ClearAllSkillsList( );
|
||||||
|
iCurrentImpPage = IMP_MAIN_PAGE;
|
||||||
|
|
||||||
|
}
|
||||||
|
//Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) )
|
||||||
|
else if( wcscmp(pPlayerActivationString, L"90210") == 0 )
|
||||||
|
{
|
||||||
|
LoadImpCharacter( IMP_MERC_FILENAME );
|
||||||
|
}
|
||||||
|
// Madd: load characters by name
|
||||||
|
else if ( ImpExists( charPlayerActivationString ) )
|
||||||
|
{
|
||||||
|
LoadImpCharacter( charPlayerActivationString );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") != 0 ) && ( wcscmp(pPlayerActivationString, L"xep624") != 0 ) ) )
|
||||||
|
{
|
||||||
|
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[ 0 ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||||
|
}
|
||||||
|
else if( LaptopSaveInfo.fIMPCompletedFlag == TRUE )
|
||||||
|
{
|
||||||
|
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[ 6 ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) )
|
else
|
||||||
else if( wcscmp(pPlayerActivationString, L"90210") == 0 )
|
|
||||||
{
|
{
|
||||||
LoadImpCharacter( IMP_MERC_FILENAME );
|
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[ 7 ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
||||||
}
|
|
||||||
// Madd: load characters by name
|
|
||||||
else if ( ImpExists( charPlayerActivationString ) )
|
|
||||||
{
|
|
||||||
LoadImpCharacter( charPlayerActivationString );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") != 0 ) && ( wcscmp(pPlayerActivationString, L"xep624") != 0 ) ) )
|
|
||||||
{
|
|
||||||
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[ 0 ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
|
||||||
}
|
|
||||||
else if( LaptopSaveInfo.fIMPCompletedFlag == TRUE )
|
|
||||||
{
|
|
||||||
DoLapTopMessageBox( MSG_BOX_IMP_STYLE, pImpPopUpStrings[ 6 ], LAPTOP_SCREEN, MSG_BOX_FLAG_OK, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-8
@@ -2,6 +2,7 @@
|
|||||||
#include "Laptop All.h"
|
#include "Laptop All.h"
|
||||||
#else
|
#else
|
||||||
#include "CharProfile.h"
|
#include "CharProfile.h"
|
||||||
|
#include "IMP Confirm.h"
|
||||||
#include "IMP Voices.h"
|
#include "IMP Voices.h"
|
||||||
#include "IMP MainPage.h"
|
#include "IMP MainPage.h"
|
||||||
#include "IMP HomePage.h"
|
#include "IMP HomePage.h"
|
||||||
@@ -383,14 +384,20 @@ void BtnIMPVoicesDoneCallback(GUI_BUTTON *btn,INT32 reason)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// set voice id, to grab character slot
|
// set voice id, to grab character slot
|
||||||
if( fCharacterIsMale == TRUE )
|
|
||||||
{
|
// WANNE 10:
|
||||||
LaptopSaveInfo.iVoiceId = iCurrentVoices;
|
//if( fCharacterIsMale == TRUE )
|
||||||
}
|
//{
|
||||||
else
|
// LaptopSaveInfo.iVoiceId = iCurrentVoices;
|
||||||
{
|
//}
|
||||||
LaptopSaveInfo.iVoiceId = iCurrentVoices + 3;
|
//else
|
||||||
}
|
//{
|
||||||
|
// LaptopSaveInfo.iVoiceId = iCurrentVoices + 3;
|
||||||
|
//}
|
||||||
|
|
||||||
|
// Get the next free imp slot
|
||||||
|
LaptopSaveInfo.iVoiceId = GetNextFreeIMPSlot() - PLAYER_GENERATED_CHARACTER_ID;
|
||||||
|
|
||||||
|
|
||||||
// set button up image pending
|
// set button up image pending
|
||||||
fButtonPendingFlag = TRUE;
|
fButtonPendingFlag = TRUE;
|
||||||
|
|||||||
@@ -98,18 +98,19 @@ void RenderProfileBackGround( void )
|
|||||||
|
|
||||||
// get the video object
|
// get the video object
|
||||||
GetVideoObject(&hHandle, guiBACKGROUND);
|
GetVideoObject(&hHandle, guiBACKGROUND);
|
||||||
|
|
||||||
|
// WANNE
|
||||||
// render each row 5 times wide, 5 tiles high
|
// render each row 5 times wide, 5 tiles high
|
||||||
for(iCounter = 0; iCounter < 4; iCounter++)
|
for(iCounter = 0; iCounter < 4; iCounter++)
|
||||||
{
|
{
|
||||||
|
|
||||||
// blt background to screen from left to right
|
// blt background to screen from left to right
|
||||||
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 0 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 0 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
||||||
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 1 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 1 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
||||||
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 2 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 2 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
||||||
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 3 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 3 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// dirty buttons
|
// dirty buttons
|
||||||
MarkButtonsDirty( );
|
MarkButtonsDirty( );
|
||||||
|
|
||||||
|
|||||||
@@ -2075,6 +2075,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Geen geldige optie op dit moment.",
|
L"Geen geldige optie op dit moment.",
|
||||||
L"Om een nauwkeurig profiel te maken, moet je ruimte hebben voor tenminste één teamlid.",
|
L"Om een nauwkeurig profiel te maken, moet je ruimte hebben voor tenminste één teamlid.",
|
||||||
L"Profiel is al gemaakt.",
|
L"Profiel is al gemaakt.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3530,6 +3531,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON, weapon ranges will be shown in tiles.",
|
L"When ON, weapon ranges will be shown in tiles.",
|
||||||
L"When ON, tracer effect will be shown for single shots.",
|
L"When ON, tracer effect will be shown for single shots.",
|
||||||
L"When ON, you will hear rain noises when it is raining.",
|
L"When ON, you will hear rain noises when it is raining.",
|
||||||
|
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2069,13 +2069,14 @@ STR16 pMercContractOverStrings[] =
|
|||||||
|
|
||||||
STR16 pImpPopUpStrings[] =
|
STR16 pImpPopUpStrings[] =
|
||||||
{
|
{
|
||||||
L"Invalid Authorization Code",
|
L"Invalid authorization code",
|
||||||
L"You Are About To Restart The Entire Profiling Process. Are You Certain?",
|
L"You are about to restart the entire profiling process. Are you certain?",
|
||||||
L"Please Enter A Valid Full Name and Gender",
|
L"Please enter a valid full name and gender",
|
||||||
L"Preliminary analysis of your financial status shows that you cannot afford a profile analysis.",
|
L"Preliminary analysis of your financial status shows that you cannot afford a profile analysis.",
|
||||||
L"Not A Valid Option At This Time.",
|
L"Not a valid option at this time.",
|
||||||
L"To complete an accurate profile, you must have room for at least one team member.",
|
L"To complete an accurate profile, you must have room for at least one team member.",
|
||||||
L"Profile Already Completed.",
|
L"Profile already completed.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3458,6 +3459,7 @@ STR16 zOptionsToggleText[] =
|
|||||||
L"Tracer effect for single shot",
|
L"Tracer effect for single shot",
|
||||||
L"Rain noises",
|
L"Rain noises",
|
||||||
L"Allow crows",
|
L"Allow crows",
|
||||||
|
L"Random I.M.P personality",
|
||||||
};
|
};
|
||||||
|
|
||||||
//This is the help text associated with the above toggles.
|
//This is the help text associated with the above toggles.
|
||||||
@@ -3534,6 +3536,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON, tracer effect will be shown for single shots.",
|
L"When ON, tracer effect will be shown for single shots.",
|
||||||
L"When ON, you will hear rain noises when it is raining.",
|
L"When ON, you will hear rain noises when it is raining.",
|
||||||
L"When ON, the crows are present in game.",
|
L"When ON, the crows are present in game.",
|
||||||
|
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2061,9 +2061,10 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Vous allez établir un nouveau profil. Etes-vous sûr de vouloir recommencer ?",
|
L"Vous allez établir un nouveau profil. Etes-vous sûr de vouloir recommencer ?",
|
||||||
L"Veuillez entrer votre nom et votre sexe.",
|
L"Veuillez entrer votre nom et votre sexe.",
|
||||||
L"Vous n'avez pas les moyens de vous offrir une analyse de profil.",
|
L"Vous n'avez pas les moyens de vous offrir une analyse de profil.",
|
||||||
L"Option inaccessible pour le moment.",
|
L"Option inaccessible pour le moment.",
|
||||||
L"Pour que cette analyse soit efficace, il doit vous rester au moins une place dans votre escouade.",
|
L"Pour que cette analyse soit efficace, il doit vous rester au moins une place dans votre escouade.",
|
||||||
L"Profil déjà établi.",
|
L"Profil déjà établi.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3519,7 +3520,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON, weapon ranges will be shown in tiles.",
|
L"When ON, weapon ranges will be shown in tiles.",
|
||||||
L"When ON, tracer effect will be shown for single shots.",
|
L"When ON, tracer effect will be shown for single shots.",
|
||||||
L"When ON, you will hear rain noises when it is raining.",
|
L"When ON, you will hear rain noises when it is raining.",
|
||||||
|
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1992,6 +1992,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Option zur Zeit nicht gültig.",
|
L"Option zur Zeit nicht gültig.",
|
||||||
L"Um eine genaue Evaluierung durchzuführen, müssen Sie mindestens noch ein Teammitglied aufnehmen können.",
|
L"Um eine genaue Evaluierung durchzuführen, müssen Sie mindestens noch ein Teammitglied aufnehmen können.",
|
||||||
L"Evaluierung bereits durchgeführt.",
|
L"Evaluierung bereits durchgeführt.",
|
||||||
|
L"Sie habe bereits die maximale Anzahl an B.S.E Charakteren.",
|
||||||
};
|
};
|
||||||
|
|
||||||
// button labels used on the IMP site
|
// button labels used on the IMP site
|
||||||
@@ -2665,10 +2666,10 @@ STR16 BobbyRFilter[] =
|
|||||||
// Guns
|
// Guns
|
||||||
L"Schwere W.",
|
L"Schwere W.",
|
||||||
L"Pistole",
|
L"Pistole",
|
||||||
L"M. Pistole",
|
L"MP",
|
||||||
L"SMG",
|
L"SMG",
|
||||||
L"Gewehr",
|
L"Gewehr",
|
||||||
L"SS Gewehr",
|
L"SSG",
|
||||||
L"Sturmgew.",
|
L"Sturmgew.",
|
||||||
L"MG",
|
L"MG",
|
||||||
L"Schrotfl.",
|
L"Schrotfl.",
|
||||||
@@ -3340,6 +3341,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"Wenn diese Funktion aktiviert ist, wird Tracereffekt auch für Einzelschüsse angezeigt.",
|
L"Wenn diese Funktion aktiviert ist, wird Tracereffekt auch für Einzelschüsse angezeigt.",
|
||||||
L"Wenn diese Funktion aktiviert ist, werden Regengeräusche hörbar falls es regnet.",
|
L"Wenn diese Funktion aktiviert ist, werden Regengeräusche hörbar falls es regnet.",
|
||||||
L"Wenn diese Funktion aktiviert ist, sind Krähen im Spiel vorhanden.",
|
L"Wenn diese Funktion aktiviert ist, sind Krähen im Spiel vorhanden.",
|
||||||
|
L"Wenn diese Funktion aktiviert ist, erhalten B.S.E Charaktere zufällige Persönlichkeit und Einstellung.",
|
||||||
};
|
};
|
||||||
|
|
||||||
STR16 gzGIOScreenText[] =
|
STR16 gzGIOScreenText[] =
|
||||||
|
|||||||
@@ -2055,9 +2055,10 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"State per riiniziare l'intero processo di profilo. Ne siete certi?",
|
L"State per riiniziare l'intero processo di profilo. Ne siete certi?",
|
||||||
L"Inserite nome e cognome corretti oltre che al sesso",
|
L"Inserite nome e cognome corretti oltre che al sesso",
|
||||||
L"L'analisi preliminare del vostro stato finanziario mostra che non potete offrire un'analisi di profilo.",
|
L"L'analisi preliminare del vostro stato finanziario mostra che non potete offrire un'analisi di profilo.",
|
||||||
L"Opzione non valida questa volta.",
|
L"Opzione non valida questa volta.",
|
||||||
L"Per completare un profilo accurato, dovete aver spazio per almeno uno dei membri della squadra.",
|
L"Per completare un profilo accurato, dovete aver spazio per almeno uno dei membri della squadra.",
|
||||||
L"Profilo già completato.",
|
L"Profilo già completato.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2058,6 +2058,7 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Opcja tym razem nieaktywna.",
|
L"Opcja tym razem nieaktywna.",
|
||||||
L"Aby wykonać profil, musisz mieć miejsce dla przynajmniej jednego członka załogi.",
|
L"Aby wykonać profil, musisz mieć miejsce dla przynajmniej jednego członka załogi.",
|
||||||
L"Profil został już wykonany.",
|
L"Profil został już wykonany.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3512,7 +3513,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON, weapon ranges will be shown in tiles.",
|
L"When ON, weapon ranges will be shown in tiles.",
|
||||||
L"When ON, tracer effect will be shown for single shots.",
|
L"When ON, tracer effect will be shown for single shots.",
|
||||||
L"When ON, you will hear rain noises when it is raining.",
|
L"When ON, you will hear rain noises when it is raining.",
|
||||||
|
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2064,9 +2064,10 @@ STR16 pImpPopUpStrings[] =
|
|||||||
L"Вы уверены, что хотите начать процесс записи профайла заново?",
|
L"Вы уверены, что хотите начать процесс записи профайла заново?",
|
||||||
L"Введите полное имя и пол",
|
L"Введите полное имя и пол",
|
||||||
L"Предварит.анализ ваших финансов показал, что у вас недостаточно денег на анализ.",
|
L"Предварит.анализ ваших финансов показал, что у вас недостаточно денег на анализ.",
|
||||||
L"Сейчас вы не можете выбрать это.",
|
L"Ñåé÷àñ âû íå ìîæåòå âûáðàòü ýòî.",
|
||||||
L"Чтобы закончить анализ,нужно иметь место еще хотя бы для одного члена команды.",
|
L"Чтобы закончить анализ,нужно иметь место еще хотя бы для одного члена команды.",
|
||||||
L"Анализ уже завершен.",
|
L"Анализ уже завершен.",
|
||||||
|
L"You have already reached the maximum number of I.M.P. characters.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -3524,6 +3525,7 @@ STR16 zOptionsScreenHelpText[] =
|
|||||||
L"When ON, tracer effect will be shown for single shots.",
|
L"When ON, tracer effect will be shown for single shots.",
|
||||||
L"When ON, you will hear rain noises when it is raining.",
|
L"When ON, you will hear rain noises when it is raining.",
|
||||||
L"When ON, the crows are present in game.",
|
L"When ON, the crows are present in game.",
|
||||||
|
L"When ON, I.M.P characters will get random personality and attitude.",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user