- added new disability "Fear of heights"

- Fix: wrong backgrounds were filtered out when checking for personality/disability/traits

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8351 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2016-12-31 12:00:45 +00:00
parent 58eb840439
commit 3ab70dde90
28 changed files with 144 additions and 50 deletions
+1
View File
@@ -3655,6 +3655,7 @@ void LoadMoraleSettings()
gMoraleSettings.bValues[MORALE_GOOD_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_GOOD_FOOD", 5, -100, 100); gMoraleSettings.bValues[MORALE_GOOD_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_GOOD_FOOD", 5, -100, 100);
gMoraleSettings.bValues[MORALE_BAD_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_BAD_FOOD", -1, -100, 100); gMoraleSettings.bValues[MORALE_BAD_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_BAD_FOOD", -1, -100, 100);
gMoraleSettings.bValues[MORALE_LOATHSOME_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_LOATHSOME_FOOD", -5, -100, 100); gMoraleSettings.bValues[MORALE_LOATHSOME_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_LOATHSOME_FOOD", -5, -100, 100);
gMoraleSettings.bValues[MORALE_FEAR_OF_HEIGHTS] = iniReader.ReadInteger( "Tactical Morale Settings", "MORALE_FEAR_OF_HEIGHTS", -8, -100, 100 );
gMoraleSettings.bValues[MORALE_KILLED_CIVILIAN] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_KILLED_CIVILIAN", -5, -100, 100); gMoraleSettings.bValues[MORALE_KILLED_CIVILIAN] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_KILLED_CIVILIAN", -5, -100, 100);
gMoraleSettings.bValues[MORALE_BATTLE_WON] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_BATTLE_WON", 4, -100, 100); gMoraleSettings.bValues[MORALE_BATTLE_WON] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_BATTLE_WON", 4, -100, 100);
+10 -6
View File
@@ -642,13 +642,13 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
if ( SkillsList[0] == TECHNICIAN_NT || SkillsList[1] == TECHNICIAN_NT || SkillsList[2] == TECHNICIAN_NT ) if ( SkillsList[0] == TECHNICIAN_NT || SkillsList[1] == TECHNICIAN_NT || SkillsList[2] == TECHNICIAN_NT )
{ {
if ( zBackground[ ubNumber ].value[MECHANICAL] < 0 ) if ( zBackground[ ubNumber ].value[BG_MECHANICAL] < 0 )
return FALSE; return FALSE;
} }
if ( SkillsList[0] == DOCTOR_NT || SkillsList[1] == DOCTOR_NT || SkillsList[2] == DOCTOR_NT ) if ( SkillsList[0] == DOCTOR_NT || SkillsList[1] == DOCTOR_NT || SkillsList[2] == DOCTOR_NT )
{ {
if ( zBackground[ ubNumber ].value[MEDICAL] < 0 ) if ( zBackground[ ubNumber ].value[BG_MEDICAL] < 0 )
return FALSE; return FALSE;
} }
@@ -672,7 +672,7 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
if ( SkillsList[0] == DEMOLITIONS_NT || SkillsList[1] == DEMOLITIONS_NT || SkillsList[2] == DEMOLITIONS_NT ) if ( SkillsList[0] == DEMOLITIONS_NT || SkillsList[1] == DEMOLITIONS_NT || SkillsList[2] == DEMOLITIONS_NT )
{ {
if ( zBackground[ ubNumber ].value[EXPLOSIVE_ASSIGN] < 0 ) if ( zBackground[ ubNumber ].value[BG_EXPLOSIVE_ASSIGN] < 0 )
return FALSE; return FALSE;
} }
@@ -697,11 +697,15 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
return FALSE; return FALSE;
break; break;
case FORGETFUL: case FORGETFUL:
if ( zBackground[ ubNumber ].value[LEADERSHIP] > 0 ) if ( zBackground[ ubNumber ].value[BG_LEADERSHIP] > 0 )
return FALSE; return FALSE;
break; break;
case PSYCHO: case PSYCHO:
if ( zBackground[ ubNumber ].value[LEADERSHIP] > 0 ) if ( zBackground[ ubNumber ].value[BG_LEADERSHIP] > 0 )
return FALSE;
break;
case AFRAID_OF_HEIGHTS:
if ( zBackground[ubNumber].value[BG_HEIGHT] > 0 )
return FALSE; return FALSE;
break; break;
default: default:
@@ -716,7 +720,7 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
return FALSE; return FALSE;
break; break;
case CHAR_TRAIT_LONER: case CHAR_TRAIT_LONER:
if ( zBackground[ ubNumber ].value[LEADERSHIP] > 0 ) if ( zBackground[ ubNumber ].value[BG_LEADERSHIP] > 0 )
return FALSE; return FALSE;
break; break;
case CHAR_TRAIT_OPTIMIST: case CHAR_TRAIT_OPTIMIST:
+17 -19
View File
@@ -34,7 +34,7 @@
enum enum
{ {
IMP_DISABILITY_TRAIT__TITLE_TEXT=IMP_DISABILITIES_NUMBER, IMP_DISABILITY_TRAIT__TITLE_TEXT = NUM_DISABILITIES,
}; };
@@ -65,11 +65,11 @@ enum
BOOLEAN gfIST_Redraw3=FALSE; BOOLEAN gfIST_Redraw3=FALSE;
BOOLEAN gfDisabilityTraitQuestions[ IMP_DISABILITIES_NUMBER ]; BOOLEAN gfDisabilityTraitQuestions[NUM_DISABILITIES];
// these are the buttons for the questions // these are the buttons for the questions
INT32 giIMPDisabilityTraitAnswerButton[ IMP_DISABILITIES_NUMBER ]; INT32 giIMPDisabilityTraitAnswerButton[NUM_DISABILITIES];
INT32 giIMPDisabilityTraitAnswerButtonImage[ IMP_DISABILITIES_NUMBER ]; INT32 giIMPDisabilityTraitAnswerButtonImage[NUM_DISABILITIES];
// this is the Done buttons // this is the Done buttons
INT32 giIMPDisabilityTraitFinsihButton; INT32 giIMPDisabilityTraitFinsihButton;
@@ -78,7 +78,7 @@ INT32 giIMPDisabilityTraitFinsihButtonImage;
//image handle //image handle
UINT32 guiIST_GreyGoldBox3; UINT32 guiIST_GreyGoldBox3;
MOUSE_REGION gMR_DisabilityHelpTextRegions[ IMP_DISABILITIES_NUMBER ]; MOUSE_REGION gMR_DisabilityHelpTextRegions[NUM_DISABILITIES];
//******************************************************************* //*******************************************************************
// //
@@ -140,7 +140,7 @@ void EnterIMPDisabilityTrait( void )
if( iCurrentProfileMode != IMP__FINISH ) if( iCurrentProfileMode != IMP__FINISH )
{ {
//Have the NONE trait initially selected //Have the NONE trait initially selected
gfDisabilityTraitQuestions[ IMP_NO_DISABILITY ] = TRUE; gfDisabilityTraitQuestions[ NO_DISABILITY ] = TRUE;
} }
HandleDisabilityTraitButtonStates( ); HandleDisabilityTraitButtonStates( );
@@ -148,7 +148,7 @@ void EnterIMPDisabilityTrait( void )
// add regions for help texts // add regions for help texts
UINT16 usPosX = IMP_DISABILITY_COLUMN_START_X + 62; UINT16 usPosX = IMP_DISABILITY_COLUMN_START_X + 62;
UINT16 usPosY = IMP_DISABILITY_COLUMN_START_Y + 8; UINT16 usPosY = IMP_DISABILITY_COLUMN_START_Y + 8;
for( UINT8 ubCnt=0; ubCnt<IMP_DISABILITIES_NUMBER; ubCnt++ ) for ( UINT8 ubCnt = 0; ubCnt<NUM_DISABILITIES; ubCnt++ )
{ {
MSYS_DefineRegion( &gMR_DisabilityHelpTextRegions[ubCnt], usPosX, ( usPosY ), MSYS_DefineRegion( &gMR_DisabilityHelpTextRegions[ubCnt], usPosX, ( usPosY ),
(usPosX + 156), ( usPosY + 17), MSYS_PRIORITY_HIGH, (usPosX + 156), ( usPosY + 17), MSYS_PRIORITY_HIGH,
@@ -176,7 +176,7 @@ void RenderIMPDisabilityTrait( void )
RenderProfileBackGround(); RenderProfileBackGround();
// Display title // Display title
DrawTextToScreen( gzIMPDisabilityTraitText[IMP_DISABILITIES_NUMBER], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED ); DrawTextToScreen( gzIMPDisabilityTraitText[NUM_DISABILITIES], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED );
IMPDisabilityTraitDisplayDisabilityTraits(); IMPDisabilityTraitDisplayDisabilityTraits();
} }
@@ -189,7 +189,7 @@ void ExitIMPDisabilityTrait( void )
DeleteVideoObjectFromIndex( guiIST_GreyGoldBox3 ); DeleteVideoObjectFromIndex( guiIST_GreyGoldBox3 );
//remove the skill buttons //remove the skill buttons
for(ubCnt = 0; ubCnt < IMP_DISABILITIES_NUMBER; ubCnt++) for ( ubCnt = 0; ubCnt < NUM_DISABILITIES; ubCnt++ )
{ {
//if there is a button allocated //if there is a button allocated
if( giIMPDisabilityTraitAnswerButton[ubCnt] != -1 ) if( giIMPDisabilityTraitAnswerButton[ubCnt] != -1 )
@@ -225,7 +225,7 @@ void AddImpDisabilityTraitButtons()
usPosX = IMP_DISABILITY_COLUMN_START_X; usPosX = IMP_DISABILITY_COLUMN_START_X;
usPosY = IMP_DISABILITY_COLUMN_START_Y; usPosY = IMP_DISABILITY_COLUMN_START_Y;
for(ubCnt = 0; ubCnt < IMP_DISABILITIES_NUMBER; ubCnt++) for ( ubCnt = 0; ubCnt < NUM_DISABILITIES; ubCnt++ )
{ {
//reset //reset
giIMPDisabilityTraitAnswerButton[ubCnt] = -1; giIMPDisabilityTraitAnswerButton[ubCnt] = -1;
@@ -294,13 +294,13 @@ void HandleIMPDisabilityTraitAnswers( UINT32 uiSkillPressed )
} }
//reset all other buttons //reset all other buttons
for( ubCnt=0; ubCnt<IMP_DISABILITIES_NUMBER; ubCnt++ ) for ( ubCnt = 0; ubCnt<NUM_DISABILITIES; ++ubCnt )
{ {
gfDisabilityTraitQuestions[ ubCnt ] = FALSE; gfDisabilityTraitQuestions[ ubCnt ] = FALSE;
} }
//make sure its a valid disability trait //make sure its a valid disability trait
if( uiSkillPressed >= IMP_DISABILITIES_NUMBER ) if ( uiSkillPressed >= NUM_DISABILITIES )
{ {
Assert( 0 ); Assert( 0 );
return; return;
@@ -335,9 +335,7 @@ void HandleIMPDisabilityTraitAnswers( UINT32 uiSkillPressed )
void HandleDisabilityTraitButtonStates( ) void HandleDisabilityTraitButtonStates( )
{ {
UINT8 ubCnt; for ( UINT8 ubCnt = 0; ubCnt<NUM_DISABILITIES; ++ubCnt )
for( ubCnt=0; ubCnt<IMP_DISABILITIES_NUMBER; ubCnt++ )
{ {
//if the skill is selected ( ie depressed ) //if the skill is selected ( ie depressed )
if( gfDisabilityTraitQuestions[ ubCnt ] ) if( gfDisabilityTraitQuestions[ ubCnt ] )
@@ -364,7 +362,7 @@ void IMPDisabilityTraitDisplayDisabilityTraits()
usPosX = IMP_DISABILITY_COLUMN_START_X + IMP_DISABILITY_TRAIT__TEXT_OFFSET_X; usPosX = IMP_DISABILITY_COLUMN_START_X + IMP_DISABILITY_TRAIT__TEXT_OFFSET_X;
usPosY = IMP_DISABILITY_COLUMN_START_Y + IMP_DISABILITY_TRAIT__TEXT_OFFSET_Y; usPosY = IMP_DISABILITY_COLUMN_START_Y + IMP_DISABILITY_TRAIT__TEXT_OFFSET_Y;
for( ubCnt=0; ubCnt<IMP_DISABILITIES_NUMBER; ubCnt++ ) for ( ubCnt = 0; ubCnt<NUM_DISABILITIES; ++ubCnt )
{ {
usBoxPosX = usPosX - IMP_DISABILITY_TRAIT__GREY_BOX_OFFSET_X; usBoxPosX = usPosX - IMP_DISABILITY_TRAIT__GREY_BOX_OFFSET_X;
usBoxPosY = usPosY - IMP_DISABILITY_TRAIT__GREY_BOX_OFFSET_Y; usBoxPosY = usPosY - IMP_DISABILITY_TRAIT__GREY_BOX_OFFSET_Y;
@@ -452,11 +450,10 @@ BOOLEAN CameBackToDisabilityTraitPageButNotFinished()
INT8 iChosenDisabilityTrait() INT8 iChosenDisabilityTrait()
{ {
UINT8 ubCnt;
INT8 iDisabilityTraitNumber = 0; INT8 iDisabilityTraitNumber = 0;
//loop through all the buttons and reset them //loop through all the buttons and reset them
for( ubCnt=0; ubCnt<IMP_DISABILITIES_NUMBER; ubCnt++ ) for ( UINT8 ubCnt = 0; ubCnt<NUM_DISABILITIES; ++ubCnt )
{ {
//if the trait is selected //if the trait is selected
if( gfDisabilityTraitQuestions[ ubCnt ] ) if( gfDisabilityTraitQuestions[ ubCnt ] )
@@ -464,6 +461,7 @@ INT8 iChosenDisabilityTrait()
iDisabilityTraitNumber = ubCnt; iDisabilityTraitNumber = ubCnt;
} }
} }
return( iDisabilityTraitNumber ); return( iDisabilityTraitNumber );
} }
@@ -472,7 +470,7 @@ INT8 iPlayersAttributePointsBonusForDisabilitySelected()
INT8 bExtraAttributePoints = 0; INT8 bExtraAttributePoints = 0;
//if there is any disability selected, give a bonus to attributes (counted there) //if there is any disability selected, give a bonus to attributes (counted there)
if( ( iChosenDisabilityTrait() > 0 ) && ( iChosenDisabilityTrait() <= IMP_DISABILITIES_NUMBER ) ) if ( (iChosenDisabilityTrait( ) > 0) && (iChosenDisabilityTrait( ) <= NUM_DISABILITIES) )
{ {
bExtraAttributePoints = gGameExternalOptions.iBonusPointsForDisability; bExtraAttributePoints = gGameExternalOptions.iBonusPointsForDisability;
} }
-20
View File
@@ -8,27 +8,7 @@ void RenderIMPDisabilityTrait( void );
void ExitIMPDisabilityTrait( void ); void ExitIMPDisabilityTrait( void );
void HandleIMPDisabilityTrait( void ); void HandleIMPDisabilityTrait( void );
//enum
//{
typedef enum
{
IMP_NO_DISABILITY = 0,
IMP_DISABILITY_HEAT_INTOLERANT,
IMP_DISABILITY_NERVOUS,
IMP_DISABILITY_CLAUSTROPHOBIC,
IMP_DISABILITY_NONSWIMMER,
IMP_DISABILITY_FEAR_OF_INSECTS,
IMP_DISABILITY_FORGETFUL,
IMP_DISABILITY_PSYCHO,
IMP_DISABILITY_DEAF,
IMP_DISABILITY_SHORTSIGHTED,
IMP_DISABILITY_BLEEDER,
IMP_DISABILITIES_NUMBER,
};
INT8 iChosenDisabilityTrait(); INT8 iChosenDisabilityTrait();
INT8 iPlayersAttributePointsBonusForDisabilitySelected(); INT8 iPlayersAttributePointsBonusForDisabilitySelected();
STR16 gzIMPDisabilityText[];
#endif #endif
+10
View File
@@ -4128,6 +4128,16 @@ void HandleIMPCharProfileResultsMessage( void)
AddEmailRecordToList( pString ); AddEmailRecordToList( pString );
} }
else if ( gMercProfiles[iCurrentIMPSlot].bDisability == AFRAID_OF_HEIGHTS )
{
swprintf( pString, gzIMPDisabilityTraitEmailTextAfraidOfHeights[0] );
AddEmailRecordToList( pString );
swprintf( pString, gzIMPDisabilityTraitEmailTextAfraidOfHeights[1] );
AddEmailRecordToList( pString );
}
else else
{ {
// personality tick // personality tick
+1
View File
@@ -258,6 +258,7 @@ void MercDailyUpdate()
case CLAUSTROPHOBIC: case CLAUSTROPHOBIC:
case NONSWIMMER: case NONSWIMMER:
case FEAR_OF_INSECTS: case FEAR_OF_INSECTS:
case AFRAID_OF_HEIGHTS:
// repeatable once per day // repeatable once per day
pSoldier->usQuoteSaidFlags &= ( ~SOLDIER_QUOTE_SAID_PERSONALITY ); pSoldier->usQuoteSaidFlags &= ( ~SOLDIER_QUOTE_SAID_PERSONALITY );
break; break;
+2
View File
@@ -103,6 +103,7 @@ MoraleEvent gbMoraleEvent[NUM_MORALE_EVENTS] =
{ TACTICAL_MORALE_EVENT, 5}, //MORALE_GOOD_FOOD, { TACTICAL_MORALE_EVENT, 5}, //MORALE_GOOD_FOOD,
{ TACTICAL_MORALE_EVENT, -1}, //MORALE_BAD_FOOD, { TACTICAL_MORALE_EVENT, -1}, //MORALE_BAD_FOOD,
{ TACTICAL_MORALE_EVENT, -5}, //MORALE_LOATHSOME_FOOD, { TACTICAL_MORALE_EVENT, -5}, //MORALE_LOATHSOME_FOOD,
{TACTICAL_MORALE_EVENT, -8}, //MORALE_FEAR_OF_HEIGHTS,
// added by anv // added by anv
{ STRATEGIC_MORALE_EVENT, -5}, //MORALE_BUDDY_FIRED, { STRATEGIC_MORALE_EVENT, -5}, //MORALE_BUDDY_FIRED,
{ STRATEGIC_MORALE_EVENT, -8}, //MORALE_BUDDY_FIRED_ON_BAD_TERMS, { STRATEGIC_MORALE_EVENT, -8}, //MORALE_BUDDY_FIRED_ON_BAD_TERMS,
@@ -1004,6 +1005,7 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I
case MORALE_GOOD_FOOD: case MORALE_GOOD_FOOD:
case MORALE_BAD_FOOD: case MORALE_BAD_FOOD:
case MORALE_LOATHSOME_FOOD: case MORALE_LOATHSOME_FOOD:
case MORALE_FEAR_OF_HEIGHTS:
Assert( pSoldier ); Assert( pSoldier );
HandleMoraleEventForSoldier( pSoldier, bMoraleEvent ); HandleMoraleEventForSoldier( pSoldier, bMoraleEvent );
break; break;
+1
View File
@@ -54,6 +54,7 @@ typedef enum
MORALE_GOOD_FOOD, // 40 MORALE_GOOD_FOOD, // 40
MORALE_BAD_FOOD, MORALE_BAD_FOOD,
MORALE_LOATHSOME_FOOD, MORALE_LOATHSOME_FOOD,
MORALE_FEAR_OF_HEIGHTS,
// added by anv // added by anv
MORALE_BUDDY_FIRED, MORALE_BUDDY_FIRED,
+5
View File
@@ -209,6 +209,11 @@ INT8 EffectiveExpLevel( SOLDIERTYPE * pSoldier )
// SANDRO - fear of insects, and we are in tropical sector // SANDRO - fear of insects, and we are in tropical sector
iEffExpLevel -= 1; iEffExpLevel -= 1;
} }
else if ( DoesMercHaveDisability( pSoldier, AFRAID_OF_HEIGHTS ) && pSoldier->pathing.bLevel > 0 )
{
// Flugente: fear of heights
iEffExpLevel -= 2;
}
} }
// Flugente: diseases can affect stat effectivity // Flugente: diseases can affect stat effectivity
+29 -4
View File
@@ -2047,6 +2047,10 @@ INT16 SOLDIERTYPE::CalcActionPoints( void )
{ {
ubPoints = (ubPoints * 9) / 10; ubPoints = (ubPoints * 9) / 10;
} }
else if ( DoesMercHaveDisability( this, AFRAID_OF_HEIGHTS ) && this->pathing.bLevel > 0 )
{
ubPoints = (ubPoints * 9) / 10;
}
} }
// Adjust APs due to drugs... // Adjust APs due to drugs...
@@ -9335,13 +9339,16 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof( void )
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_NO_CLIMB] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_NO_CLIMB] );
return; return;
} }
INT8 bNewDirection;
UINT8 ubWhoIsThere;
if ( is_client ) if ( is_client )
{ {
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[43] ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, MPClientMessage[43] );
return;//hayden disable climbing roof return;//hayden disable climbing roof
} }
INT8 bNewDirection;
UINT8 ubWhoIsThere;
if ( FindHeigherLevel( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) ) if ( FindHeigherLevel( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) )
{ {
if ( EnoughPoints( this, GetAPsToClimbRoof( this, FALSE ), 0, TRUE ) ) if ( EnoughPoints( this, GetAPsToClimbRoof( this, FALSE ), 0, TRUE ) )
@@ -9376,11 +9383,29 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof( void )
else else
this->EVENT_InitNewSoldierAnim( CLIMBUPROOF, 0, FALSE ); this->EVENT_InitNewSoldierAnim( CLIMBUPROOF, 0, FALSE );
// Flugente: if we are afraid of heights, we complain
if ( DoesMercHaveDisability( this, AFRAID_OF_HEIGHTS ) )
{
if ( !(this->usQuoteSaidFlags & SOLDIER_QUOTE_SAID_PERSONALITY) )
{
HandleMoraleEvent( this, MORALE_FEAR_OF_HEIGHTS, this->sSectorX, this->sSectorY, this->bSectorZ );
TacticalCharacterDialogue( this, QUOTE_PERSONALITY_TRAIT );
this->usQuoteSaidFlags |= SOLDIER_QUOTE_SAID_PERSONALITY;
// Flugente: dynamic opinions
HandleDynamicOpinionChange( this, OPINIONEVENT_ANNOYINGDISABILITY, TRUE, TRUE );
}
// otherwise remove flag, so we'll complain every second time we climb roof
else
{
this->usQuoteSaidFlags &= ~SOLDIER_QUOTE_SAID_PERSONALITY;
}
}
this->InternalReceivingSoldierCancelServices( FALSE ); this->InternalReceivingSoldierCancelServices( FALSE );
this->InternalGivingSoldierCancelServices( FALSE ); this->InternalGivingSoldierCancelServices( FALSE );
} }
} }
} }
else else
+2
View File
@@ -330,6 +330,8 @@ typedef enum
DEAF, DEAF,
SHORTSIGHTED, SHORTSIGHTED,
HEMOPHILIAC, HEMOPHILIAC,
AFRAID_OF_HEIGHTS,
NUM_DISABILITIES NUM_DISABILITIES
} PersonalityTrait; } PersonalityTrait;
+1
View File
@@ -345,6 +345,7 @@ extern STR16 gzIMPDisabilityTraitText[]; // added by Flugente
extern STR16 gzIMPDisabilityTraitEmailTextDeaf[]; // added by Flugente extern STR16 gzIMPDisabilityTraitEmailTextDeaf[]; // added by Flugente
extern STR16 gzIMPDisabilityTraitEmailTextShortSighted[]; extern STR16 gzIMPDisabilityTraitEmailTextShortSighted[];
extern STR16 gzIMPDisabilityTraitEmailTextHemophiliac[]; // added by Flugente extern STR16 gzIMPDisabilityTraitEmailTextHemophiliac[]; // added by Flugente
extern STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]; // added by Flugente
extern STR16 sEnemyTauntsFireGun[]; extern STR16 sEnemyTauntsFireGun[];
extern STR16 sEnemyTauntsFireLauncher[]; extern STR16 sEnemyTauntsFireLauncher[];
extern STR16 sEnemyTauntsThrow[]; extern STR16 sEnemyTauntsThrow[];
+7
View File
@@ -7833,6 +7833,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"聋子", //L"Deaf", L"聋子", //L"Deaf",
L"近视眼", //L"Shortsighted", L"近视眼", //L"Shortsighted",
L"血友病",//L"Hemophiliac", L"血友病",//L"Hemophiliac",
L"Fear of Heights", // TODO.Translate
L"I.M.P. 性格缺陷", L"I.M.P. 性格缺陷",
}; };
@@ -7854,6 +7855,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] =
L"只要你够NB永远不被枪打中,或者战斗只在设施完备的医院中进行,应该就会没事的",//L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"只要你够NB永远不被枪打中,或者战斗只在设施完备的医院中进行,应该就会没事的",//L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {
+7
View File
@@ -7846,6 +7846,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Deaf", L"Deaf",
L"Shortsighted", L"Shortsighted",
L"Hemophiliac", // TODO.Translate L"Hemophiliac", // TODO.Translate
L"Fear of Heights",
L"I.M.P. Disabilities", L"I.M.P. Disabilities",
}; };
@@ -7867,6 +7868,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// TODO.Translate // TODO.Translate
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
+7
View File
@@ -7834,6 +7834,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Deaf", L"Deaf",
L"Shortsighted", L"Shortsighted",
L"Hemophiliac", L"Hemophiliac",
L"Fear of Heights",
L"I.M.P. Disabilities", L"I.M.P. Disabilities",
}; };
@@ -7855,6 +7856,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] =
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]=
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {
+7
View File
@@ -7840,6 +7840,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Mauvaise audition", L"Mauvaise audition",
L"Mauvaise vue", L"Mauvaise vue",
L"Hemophiliac", // TODO.Translate L"Hemophiliac", // TODO.Translate
L"Fear of Heights",
L"IMP : Handicaps", L"IMP : Handicaps",
}; };
@@ -7861,6 +7862,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {
+7
View File
@@ -7667,6 +7667,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Schwerhörigkeit", L"Schwerhörigkeit",
L"Kurzsichtigkeit", L"Kurzsichtigkeit",
L"Bluter", L"Bluter",
L"Höhenangst"
L"Ihre größte Schwäche", L"Ihre größte Schwäche",
}; };
@@ -7688,6 +7689,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {
+7
View File
@@ -7836,6 +7836,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Deaf", L"Deaf",
L"Shortsighted", L"Shortsighted",
L"Hemophiliac", // TODO.Translate L"Hemophiliac", // TODO.Translate
L"Fear of Heights",
L"I.M.P. Disabilities", L"I.M.P. Disabilities",
}; };
@@ -7857,6 +7858,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// TODO.Translate // TODO.Translate
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
+2 -1
View File
@@ -477,7 +477,8 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"可能会偶尔发疯并把手里武器设在自动后乱喷。\n如果武器不能自动射击将会打击自身士气。",// L"He can go psycho and shoot like mad once per a while\nand can lose morale if unable to do that with given weapon.", L"可能会偶尔发疯并把手里武器设在自动后乱喷。\n如果武器不能自动射击将会打击自身士气。",// L"He can go psycho and shoot like mad once per a while\nand can lose morale if unable to do that with given weapon.",
L"大大减少听力范围", // L"Drastically reduced hearing.", L"大大减少听力范围", // L"Drastically reduced hearing.",
L"减少视力范围", // L"Reduced sight range.", L"减少视力范围", // L"Reduced sight range.",
L"大大增加的流血速度.", //L"Drastically increased bleeding.", TODO.Translate L"大大增加的流血速度.", //L"Drastically increased bleeding.",
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
STR16 gzIMPProfileCostText[]= STR16 gzIMPProfileCostText[]=
+1
View File
@@ -477,6 +477,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Drastically reduced hearing.", L"Drastically reduced hearing.",
L"Reduced sight range.", L"Reduced sight range.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
+1
View File
@@ -478,6 +478,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Drastically reduced hearing.", L"Drastically reduced hearing.",
L"Reduced sight range.", L"Reduced sight range.",
L"Drastically increased bleeding.", L"Drastically increased bleeding.",
L"Performance suffers while on a rooftop.",
}; };
STR16 gzIMPProfileCostText[]= STR16 gzIMPProfileCostText[]=
+1
View File
@@ -477,6 +477,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Audition considérablement réduite.", L"Audition considérablement réduite.",
L"Distance de vision réduit.", L"Distance de vision réduit.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
+1
View File
@@ -479,6 +479,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Deutlich geringere Hörweite.", L"Deutlich geringere Hörweite.",
L"Geringere Sichtweite.", L"Geringere Sichtweite.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
STR16 gzIMPProfileCostText[]= STR16 gzIMPProfileCostText[]=
+1
View File
@@ -475,6 +475,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Drastically reduced hearing.", L"Drastically reduced hearing.",
L"Reduced sight range.", L"Reduced sight range.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
+1
View File
@@ -477,6 +477,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Drastically reduced hearing.", L"Drastically reduced hearing.",
L"Reduced sight range.", L"Reduced sight range.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
+1
View File
@@ -478,6 +478,7 @@ STR16 gzIMPDisabilitiesHelpTexts[]=
L"Значительно пониженный слух.", L"Значительно пониженный слух.",
L"Сниженная дальность видимости.", L"Сниженная дальность видимости.",
L"Drastically increased bleeding.", // TODO.Translate L"Drastically increased bleeding.", // TODO.Translate
L"Performance suffers while on a rooftop.", // TODO.Translate
}; };
STR16 gzIMPProfileCostText[]= STR16 gzIMPProfileCostText[]=
+7
View File
@@ -7851,6 +7851,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Deaf", L"Deaf",
L"Shortsighted", L"Shortsighted",
L"Hemophiliac", // TODO.Translate L"Hemophiliac", // TODO.Translate
L"Fear of Heights",
L"Niepełnosprawności I.M.P.-a", L"Niepełnosprawności I.M.P.-a",
}; };
@@ -7872,6 +7873,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {
+7
View File
@@ -7834,6 +7834,7 @@ STR16 gzIMPDisabilityTraitText[]=
L"Глухой", L"Глухой",
L"Близорукий", L"Близорукий",
L"Hemophiliac", // TODO.Translate L"Hemophiliac", // TODO.Translate
L"Fear of Heights",
L"I.M.P.: Недостатки", //I.M.P. Disabilities L"I.M.P.: Недостатки", //I.M.P. Disabilities
}; };
@@ -7855,6 +7856,12 @@ STR16 gzIMPDisabilityTraitEmailTextHemophiliac[] = // TODO.Translate
L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.", L"As long as you are so good to never ever get hit, or fight only in fully staffed hospitals, you should be fine.",
}; };
STR16 gzIMPDisabilityTraitEmailTextAfraidOfHeights[]= // TODO.Translate
{
L"Let's just say you are a grounded person.",
L"You prefer missions where you don't have to scale tall buildings or mountains. We recommend conquering the Netherlands.",
};
// HEADROCK HAM 3.6: Error strings for assigning a merc to a facility // HEADROCK HAM 3.6: Error strings for assigning a merc to a facility
STR16 gzFacilityErrorMessage[]= STR16 gzFacilityErrorMessage[]=
{ {