mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Added new assignments for training existing militia and doctoring them.
For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23044&goto=352617&#msg_352617 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8537 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+6
-5
@@ -1557,14 +1557,15 @@ void LoadGameExternalOptions()
|
||||
|
||||
//################# Individual Militia Settings ##################
|
||||
// Flugente: individual militia
|
||||
gGameExternalOptions.fIndividualMilitia = iniReader.ReadBoolean( "Individual Militia Settings", "INDIVIDUAL_MILITIA", FALSE );
|
||||
gGameExternalOptions.fIndividualMilitia = iniReader.ReadBoolean( "Individual Militia Settings", "INDIVIDUAL_MILITIA", FALSE );
|
||||
|
||||
gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular = iniReader.ReadInteger( "Individual Militia Settings", "INDIVIDUAL_MILITIA_PROMOTIONPOINTS_TO_REGULAR", 4, 1, 100 );
|
||||
gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Elite = iniReader.ReadInteger( "Individual Militia Settings", "INDIVIDUAL_MILITIA_PROMOTIONPOINTS_TO_ELITE", 10, 1, 100 );
|
||||
|
||||
gGameExternalOptions.fIndividualMilitia_ManageHealth = iniReader.ReadBoolean( "Individual Militia Settings", "INDIVIDUAL_MILITIA_MANAGE_HEALTH", TRUE );
|
||||
gGameExternalOptions.dIndividualMilitiaHourlyHealthPercentageGain = iniReader.ReadFloat( "Individual Militia Settings", "INDIVIDUAL_MILITIA_HOURLYHEALTHPERCENTAGEGAIN", 2.0f, 0.0f, 100.0f );
|
||||
gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Elite = iniReader.ReadInteger( "Individual Militia Settings", "INDIVIDUAL_MILITIA_PROMOTIONPOINTS_TO_ELITE", 6, 1, 100 );
|
||||
|
||||
gGameExternalOptions.fIndividualMilitia_ManageHealth = iniReader.ReadBoolean( "Individual Militia Settings", "INDIVIDUAL_MILITIA_MANAGE_HEALTH", TRUE );
|
||||
gGameExternalOptions.dIndividualMilitiaHourlyHealthPercentageGain = iniReader.ReadFloat( "Individual Militia Settings", "INDIVIDUAL_MILITIA_HOURLYHEALTHPERCENTAGEGAIN", 2.0f, 0.0f, 100.0f );
|
||||
gGameExternalOptions.dIndividualMilitiaDoctorHealModifier = iniReader.ReadFloat( "Individual Militia Settings", "INDIVIDUAL_MILITIA_DOCTORHEALMODIFIER", 0.01f, 0.01f, 1.0f );
|
||||
|
||||
//################# Tactical Cover System Settings ##################
|
||||
|
||||
// CPT: Cover System Settings
|
||||
|
||||
@@ -1479,6 +1479,7 @@ typedef struct
|
||||
UINT16 usIndividualMilitia_PromotionPoints_To_Elite;
|
||||
BOOLEAN fIndividualMilitia_ManageHealth;
|
||||
FLOAT dIndividualMilitiaHourlyHealthPercentageGain;
|
||||
FLOAT dIndividualMilitiaDoctorHealModifier;
|
||||
|
||||
// Sandro: Alternative weapon holding (rifles fired from hip / pistols fired one-handed)
|
||||
UINT8 ubAllowAlternativeWeaponHolding;
|
||||
|
||||
+9
-9
@@ -15,9 +15,9 @@
|
||||
#ifdef JA2EDITOR
|
||||
|
||||
#ifdef JA2UB
|
||||
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Unfinished Business - Map Editor v1.13.8537 (Development Build)" };
|
||||
#else
|
||||
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.8537 (Development Build)" };
|
||||
#endif
|
||||
|
||||
// ------------------------------
|
||||
@@ -27,11 +27,11 @@
|
||||
|
||||
//DEBUG BUILD VERSION
|
||||
#ifdef JA2UB
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: Unfinished Business - v1.13.8537 (Development Build)" };
|
||||
#elif defined (JA113DEMO)
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: JA2 Demo - v1.13.8537 (Development Build)" };
|
||||
#else
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Debug: v1.13.8537 (Development Build)" };
|
||||
#endif
|
||||
|
||||
#elif defined CRIPPLED_VERSION
|
||||
@@ -46,16 +46,16 @@
|
||||
|
||||
//RELEASE BUILD VERSION
|
||||
#ifdef JA2UB
|
||||
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Release Unfinished Business - v1.13.8537 (Development Build)" };
|
||||
#elif defined (JA113DEMO)
|
||||
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Release JA2 Demo - v1.13.8537 (Development Build)" };
|
||||
#else
|
||||
CHAR16 zVersionLabel[256] = { L"Release v1.13.8531 (Development Build)" };
|
||||
CHAR16 zVersionLabel[256] = { L"Release v1.13.8537 (Development Build)" };
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
CHAR8 czVersionNumber[16] = { "Build 18.02.28" }; //YY.MM.DD
|
||||
CHAR8 czVersionNumber[16] = { "Build 18.03.04" }; //YY.MM.DD
|
||||
CHAR16 zTrackingNumber[16] = { L"Z" };
|
||||
|
||||
// SAVE_GAME_VERSION is defined in header, change it there
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ extern CHAR16 zTrackingNumber[16];
|
||||
// Keeps track of the saved game version. Increment the saved game version whenever
|
||||
// you will invalidate the saved game file
|
||||
|
||||
#define INDIVIDUAL_MILITIA_EXP_FLOAT 177 // Flugente: changed the way we store individual militia experience
|
||||
#define CHAT_TO_DISTRACT 176 // Flugente: internal variable allows us to distract enemies by engrossing them in conversation
|
||||
#define INDIVIDUAL_MILITIA_RANKFIX 175 // Flugente: internal individual militia change requires variable change
|
||||
#define DRAGPERSONS 174 // Flugente: we can drag people and corpses now
|
||||
@@ -95,7 +96,7 @@ extern CHAR16 zTrackingNumber[16];
|
||||
#define AP100_SAVEGAME_DATATYPE_CHANGE 105 // Before this, we didn't have the 100AP structure changes
|
||||
#define NIV_SAVEGAME_DATATYPE_CHANGE 102 // Before this, we used the old structure system
|
||||
|
||||
#define SAVE_GAME_VERSION CHAT_TO_DISTRACT
|
||||
#define SAVE_GAME_VERSION INDIVIDUAL_MILITIA_EXP_FLOAT
|
||||
|
||||
//#define RUSSIANGOLD
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -1585,6 +1585,18 @@ void ProcessTransactionString(STR16 pString, FinanceUnitPtr pFinance)
|
||||
case WORKERS_TRAINED:
|
||||
swprintf( pString, L"%s", pTransactionText[pFinance->ubCode] );
|
||||
break;
|
||||
|
||||
case PROMOTE_MILITIA:
|
||||
{
|
||||
CHAR16 str[128];
|
||||
UINT8 ubSectorX;
|
||||
UINT8 ubSectorY;
|
||||
ubSectorX = (UINT8)SECTORX( pFinance->ubSecondCode );
|
||||
ubSectorY = (UINT8)SECTORY( pFinance->ubSecondCode );
|
||||
GetSectorIDString( ubSectorX, ubSectorY, 0, str, TRUE );
|
||||
swprintf( pString, pTransactionText[PROMOTE_MILITIA], str );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ enum
|
||||
PMC_CONTRACT, // Flugente: hired militia from a PMC
|
||||
SAM_REPAIR, // Flugente: repair SAM site
|
||||
WORKERS_TRAINED, // Flugente: train workers
|
||||
PROMOTE_MILITIA, // Flugente: drill militia
|
||||
TEXT_NUM_FINCANCES
|
||||
};
|
||||
|
||||
|
||||
+948
-98
File diff suppressed because it is too large
Load Diff
@@ -94,6 +94,8 @@ enum
|
||||
TRAIN_WORKERS,
|
||||
CONCEALED, // Flugente: spy hides among the population
|
||||
GATHERINTEL, // gathers information while disguised in enemy territory
|
||||
DOCTOR_MILITIA, // heal militia
|
||||
DRILL_MILITIA, // train existing militia (does not create new ones)
|
||||
NUM_ASSIGNMENTS,
|
||||
};
|
||||
|
||||
@@ -172,6 +174,9 @@ typedef struct TOWN_TRAINER_TYPE
|
||||
// can this character be assigned as a doctor?
|
||||
BOOLEAN CanCharacterDoctor( SOLDIERTYPE *pCharacter );
|
||||
|
||||
// can this character doctor militia (assignmentwise)?
|
||||
BOOLEAN CanCharacterDoctorMilitia( SOLDIERTYPE *pSoldier );
|
||||
|
||||
// can this character diagnose diseases?
|
||||
BOOLEAN CanCharacterDiagnoseDisease( SOLDIERTYPE *pSoldier );
|
||||
|
||||
@@ -189,6 +194,8 @@ BOOLEAN CanCharacterRepair( SOLDIERTYPE *pCharacter );
|
||||
BOOLEAN CanCharacterPatient( SOLDIERTYPE *pCharacter );
|
||||
|
||||
// can character train militia?
|
||||
BOOLEAN CanCharacterMilitiaAssignment( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN CanCharacterDrillMilitia( SOLDIERTYPE *pSoldier, BOOLEAN aErrorReport = FALSE );
|
||||
BOOLEAN CanCharacterTrainMilitia( SOLDIERTYPE *pCharacter );
|
||||
BOOLEAN CanCharacterTrainMobileMilitia( SOLDIERTYPE *pSoldier );
|
||||
|
||||
@@ -319,6 +326,7 @@ extern INT32 ghTrainingBox;
|
||||
extern INT32 ghMoveItemBox;
|
||||
extern INT32 ghDiseaseBox;
|
||||
extern INT32 ghSpyBox;
|
||||
extern INT32 ghMilitiaBox;
|
||||
extern INT32 ghAttributeBox;
|
||||
extern INT32 ghRemoveMercAssignBox;
|
||||
extern INT32 ghContractBox;
|
||||
@@ -361,6 +369,7 @@ enum
|
||||
ASMENU_TRAIN,
|
||||
ASMENU_SQUAD,
|
||||
ASMENU_SNITCH,
|
||||
ASMENU_MILITIA,
|
||||
};
|
||||
|
||||
extern int gAssignMenuState;
|
||||
@@ -419,6 +428,11 @@ void CreateDestroyMouseRegionForSpyMenu( void );
|
||||
void SpyMenuMvtCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
void SpyMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
|
||||
// Flugente: militia menu
|
||||
void CreateDestroyMouseRegionForMilitiaMenu( void );
|
||||
void MilitiaMenuMvtCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
void MilitiaMenuBtnCallback( MOUSE_REGION * pRegion, INT32 iReason );
|
||||
|
||||
// HEADROCK HAM 3.6: Facility Menu
|
||||
void CreateDestroyMouseRegionForFacilityMenu( void );
|
||||
void FacilityMenuMvtCallback(MOUSE_REGION * pRegion, INT32 iReason );
|
||||
|
||||
@@ -2329,6 +2329,15 @@ void UpdateMapScreenAssignmentPositions( void )
|
||||
SetBoxPosition( ghFacilityBox, pPoint );
|
||||
}
|
||||
break;
|
||||
|
||||
case ASMENU_MILITIA:
|
||||
{
|
||||
GetBoxPosition( ghMilitiaBox, &pPoint );
|
||||
pPoint.iY = giBoxY + ( GetFontHeight( MAP_SCREEN_FONT ) + 2 ) * ASSIGN_MENU_MILITIA;
|
||||
|
||||
SetBoxPosition( ghMilitiaBox, pPoint );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if( fShowAttributeMenu )
|
||||
|
||||
@@ -129,6 +129,7 @@ enum {
|
||||
ASSIGN_MENU_RADIO_SCAN, // added by Flugente
|
||||
ASSIGN_MENU_SNITCH,
|
||||
ASSIGN_MENU_TRAIN,
|
||||
ASSIGN_MENU_MILITIA, // added by Flugente: all things militia
|
||||
ASSIGN_MENU_MOVE_ITEMS, // added by Flugente
|
||||
ASSIGN_MENU_FORTIFY, // added by Flugente
|
||||
ASSIGN_MENU_SPY, // added by Flugente
|
||||
@@ -176,7 +177,6 @@ enum {
|
||||
// training assignment menu defines
|
||||
enum {
|
||||
TRAIN_MENU_SELF,
|
||||
TRAIN_MENU_TOWN,
|
||||
TRAIN_MENU_MOBILE,
|
||||
TRAIN_MENU_WORKERS,
|
||||
TRAIN_MENU_TEAMMATES,
|
||||
|
||||
+266
-39
@@ -73,8 +73,21 @@ MILITIA::Load( HWFILE hwFile )
|
||||
numBytesRead = ReadFieldByField( hwFile, &healthratio, sizeof(healthratio), sizeof(FLOAT), numBytesRead );
|
||||
numBytesRead = ReadFieldByField( hwFile, &kills, sizeof(kills), sizeof(UINT16), numBytesRead);
|
||||
numBytesRead = ReadFieldByField( hwFile, &assists, sizeof(assists), sizeof(UINT16), numBytesRead );
|
||||
numBytesRead = ReadFieldByField( hwFile, &promotionpoints, sizeof(promotionpoints), sizeof(UINT16), numBytesRead );
|
||||
numBytesRead = ReadFieldByField( hwFile, &filler1, sizeof(filler1), sizeof(UINT16), numBytesRead );
|
||||
|
||||
// promotionpoints has been changed from UINT16 to FLOAT, so we need changes here
|
||||
if ( guiCurrentSaveGameVersion >= INDIVIDUAL_MILITIA_EXP_FLOAT )
|
||||
{
|
||||
numBytesRead = ReadFieldByField( hwFile, &promotionpoints, sizeof( promotionpoints ), sizeof( FLOAT ), numBytesRead );
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT16 tmp;
|
||||
numBytesRead = ReadFieldByField( hwFile, &tmp, sizeof( tmp ), sizeof( UINT16 ), numBytesRead );
|
||||
|
||||
promotionpoints = tmp;
|
||||
|
||||
numBytesRead = ReadFieldByField( hwFile, &tmp, sizeof( tmp ), sizeof( UINT16 ), numBytesRead );
|
||||
}
|
||||
|
||||
if ( numBytesRead != SIZEOF_MILITIA_POD )
|
||||
return(FALSE);
|
||||
@@ -272,8 +285,8 @@ SOLDIERTYPE* GetUsedSoldierToIndividualMilitia( UINT32 aMilitiaId )
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// update the health values of all militia in tactical
|
||||
void UpdateAllMilitiaHealthInTactical()
|
||||
// apply tactical life ratio to militia health ratio
|
||||
void ApplyTacticalLifeRatioToMilitia()
|
||||
{
|
||||
if ( !gGameExternalOptions.fIndividualMilitia )
|
||||
return;
|
||||
@@ -299,52 +312,95 @@ void UpdateAllMilitiaHealthInTactical()
|
||||
}
|
||||
}
|
||||
|
||||
void HandleHourlyMilitiaHealing( )
|
||||
void ApplyMilitiaHealthRatioToTactical()
|
||||
{
|
||||
if ( !gGameExternalOptions.fIndividualMilitia || !gGameExternalOptions.fIndividualMilitia_ManageHealth )
|
||||
return;
|
||||
|
||||
INT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
|
||||
SOLDIERTYPE* pSoldier;
|
||||
UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
|
||||
INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
|
||||
SOLDIERTYPE* pSoldier = NULL;
|
||||
|
||||
for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier )
|
||||
{
|
||||
MILITIA militia;
|
||||
if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLifeMax && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) )
|
||||
{
|
||||
INT8 oldlife = pSoldier->stats.bLife;
|
||||
|
||||
FLOAT currenthealthratio = 100.0f * oldlife / pSoldier->stats.bLifeMax;
|
||||
|
||||
militia.healthratio = max( militia.healthratio, currenthealthratio );
|
||||
|
||||
pSoldier->stats.bLife = min( pSoldier->stats.bLifeMax, ( militia.healthratio / 100.0f ) * pSoldier->stats.bLifeMax );
|
||||
|
||||
// healing done will be displayed the next time the player sees this soldier
|
||||
pSoldier->flags.fDisplayDamage = TRUE;
|
||||
pSoldier->sDamage -= pSoldier->stats.bLife - oldlife;
|
||||
|
||||
// while we're here, update kills and assists too
|
||||
militia.AddKills( pSoldier->ubMilitiaKills, pSoldier->ubMilitiaAssists );
|
||||
|
||||
pSoldier->ubMilitiaKills = 0;
|
||||
pSoldier->ubMilitiaAssists = 0;
|
||||
|
||||
UpdateMilitia( militia );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HandleHourlyMilitiaHealing( )
|
||||
{
|
||||
if ( !gGameExternalOptions.fIndividualMilitia || !gGameExternalOptions.fIndividualMilitia_ManageHealth )
|
||||
return;
|
||||
|
||||
std::vector<MILITIA>::iterator itend = gIndividualMilitiaVector.end( );
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin( ); it != itend; ++it )
|
||||
{
|
||||
if ( !((*it).flagmask & MILITIAFLAG_DEAD) )
|
||||
{
|
||||
(*it).healthratio = min( 100.0f, (*it).healthratio + gGameExternalOptions.dIndividualMilitiaHourlyHealthPercentageGain );
|
||||
|
||||
// if this guy is in the currently loaded sector, heal the soldier instead (and update health ratio while you're there)
|
||||
if ( !gbWorldSectorZ && (*it).sector == SECTOR( gWorldSectorX, gWorldSectorY ) )
|
||||
{
|
||||
for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier )
|
||||
{
|
||||
if ( pSoldier && pSoldier->bActive && (*it).id == pSoldier->usIndividualMilitiaID &&
|
||||
gWorldSectorX == pSoldier->sSectorX && gWorldSectorY == pSoldier->sSectorY && !pSoldier->bSectorZ &&
|
||||
pSoldier->stats.bLifeMax > 0 )
|
||||
{
|
||||
INT8 oldlife = pSoldier->stats.bLife;
|
||||
|
||||
FLOAT currenthealthratio = 100.0f * oldlife / pSoldier->stats.bLifeMax;
|
||||
|
||||
currenthealthratio = min( 100.0f, currenthealthratio + gGameExternalOptions.dIndividualMilitiaHourlyHealthPercentageGain );
|
||||
|
||||
pSoldier->stats.bLife = min( pSoldier->stats.bLifeMax, (currenthealthratio / 100.0f) * pSoldier->stats.bLifeMax );
|
||||
|
||||
// healing done will be displayed the next time the player sees this soldier
|
||||
pSoldier->flags.fDisplayDamage = TRUE;
|
||||
pSoldier->sDamage -= pSoldier->stats.bLife - oldlife;
|
||||
|
||||
// update new health ratio
|
||||
(*it).healthratio = currenthealthratio;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ApplyMilitiaHealthRatioToTactical();
|
||||
}
|
||||
|
||||
UINT32 MilitiaIndividual_Heal( UINT32 points, UINT8 aSector )
|
||||
{
|
||||
if ( !gGameExternalOptions.fIndividualMilitia || !gGameExternalOptions.fIndividualMilitia_ManageHealth )
|
||||
return 0;
|
||||
|
||||
FLOAT totalhealthmissing = 0.0f;
|
||||
|
||||
std::vector<MILITIA>::iterator itend = gIndividualMilitiaVector.end();
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin(); it != itend; ++it )
|
||||
{
|
||||
if ( !( ( *it ).flagmask & (MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) && (*it).sector == aSector && ( *it ).healthratio < 100.0f )
|
||||
{
|
||||
totalhealthmissing += ( 100.0f - ( *it ).healthratio );
|
||||
}
|
||||
}
|
||||
|
||||
if ( totalhealthmissing <= 0.0f )
|
||||
return 0;
|
||||
|
||||
FLOAT pointstouse = min( (FLOAT)points, totalhealthmissing );
|
||||
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin(); it != itend; ++it )
|
||||
{
|
||||
if ( !( ( *it ).flagmask & ( MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) && ( *it ).sector == aSector && ( *it ).healthratio < 100.0f )
|
||||
{
|
||||
( *it ).healthratio += ( 100.0f - ( *it ).healthratio ) * pointstouse / totalhealthmissing;
|
||||
}
|
||||
}
|
||||
|
||||
// update militia in current sector
|
||||
if ( !gbWorldSectorZ && SECTOR( gWorldSectorX, gWorldSectorY ) == aSector )
|
||||
{
|
||||
ApplyMilitiaHealthRatioToTactical();
|
||||
}
|
||||
|
||||
return (UINT32)pointstouse;
|
||||
}
|
||||
|
||||
UINT32 CreateRandomIndividualMilitia( UINT8 aMilitiaRank, UINT8 aOrigin, UINT8 aSector )
|
||||
@@ -490,7 +546,7 @@ UINT32 CreateNewIndividualMilitia( UINT8 aMilitiaRank, UINT8 aOrigin, UINT8 aSec
|
||||
|
||||
newmilitia.kills = 0;
|
||||
newmilitia.assists = 0;
|
||||
newmilitia.promotionpoints = 0;
|
||||
newmilitia.promotionpoints = 0.0f;
|
||||
|
||||
// promotion points are based on kills and assists. For proper accounting, award points for current rank
|
||||
newmilitia.AddKills( 0, 0 );
|
||||
@@ -509,7 +565,7 @@ UINT32 CreateNewIndividualMilitia( UINT8 aMilitiaRank, UINT8 aOrigin, UINT8 aSec
|
||||
|
||||
// search for a individual militia that is alive and not currently in use in this sector, and return its id
|
||||
// if none is found, create new and return that one
|
||||
UINT32 GetIdOfUnusedindividualMilitia( UINT8 aSoldierClass, UINT8 aSector )
|
||||
UINT32 GetIdOfUnusedIndividualMilitia( UINT8 aSoldierClass, UINT8 aSector )
|
||||
{
|
||||
if ( !gGameExternalOptions.fIndividualMilitia )
|
||||
return 0;
|
||||
@@ -557,6 +613,123 @@ UINT32 GetIdOfUnusedindividualMilitia( UINT8 aSoldierClass, UINT8 aSector )
|
||||
return CreateNewIndividualMilitia( militialevel, MO_ARULCO, aSector );
|
||||
}
|
||||
|
||||
BOOLEAN GetIdOfIndividualMilitiaWithClassSector( UINT8 aSoldierClass, UINT8 aSector, UINT32& arId )
|
||||
{
|
||||
arId = 0;
|
||||
|
||||
if ( !gGameExternalOptions.fIndividualMilitia )
|
||||
return FALSE;
|
||||
|
||||
UINT8 militialevel = SoldierClassToMilitiaRank( aSoldierClass );
|
||||
|
||||
std::vector<MILITIA>::iterator itend = gIndividualMilitiaVector.end();
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin(); it != itend; ++it )
|
||||
{
|
||||
if ( !( ( *it ).flagmask & ( MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) && ( *it ).sector == aSector && ( *it ).militiarank == militialevel )
|
||||
{
|
||||
arId = ( *it ).id;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
extern void ResetMilitia();
|
||||
|
||||
FLOAT PromoteIndividualMilitiaInSector( UINT8 aSector, FLOAT aPointsToAdd )
|
||||
{
|
||||
FLOAT pointsused = 0.0f;
|
||||
|
||||
if ( !gGameExternalOptions.fIndividualMilitia )
|
||||
return pointsused;
|
||||
|
||||
std::vector<MILITIA>::iterator itend = gIndividualMilitiaVector.end();
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin(); it != itend; ++it )
|
||||
{
|
||||
if ( !( ( *it ).flagmask & ( MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) && ( *it ).sector == aSector && ( *it ).militiarank == GREEN_MILITIA )
|
||||
{
|
||||
MILITIA militia = ( *it );
|
||||
|
||||
FLOAT pointstoadd = min( aPointsToAdd - pointsused, max( 0, gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular - militia.promotionpoints ) );
|
||||
|
||||
pointsused += pointstoadd;
|
||||
militia.promotionpoints += pointstoadd;
|
||||
|
||||
PossiblyPromoteIndividualMilitia( militia );
|
||||
|
||||
if ( militia.militiarank == REGULAR_MILITIA )
|
||||
StrategicPromoteMilitiaInSector( SECTORX( aSector ), SECTORY( aSector ), GREEN_MILITIA, 1 );
|
||||
else if ( militia.militiarank == ELITE_MILITIA )
|
||||
{
|
||||
StrategicPromoteMilitiaInSector( SECTORX( aSector ), SECTORY( aSector ), GREEN_MILITIA, 1 );
|
||||
StrategicPromoteMilitiaInSector( SECTORX( aSector ), SECTORY( aSector ), REGULAR_MILITIA, 1 );
|
||||
}
|
||||
|
||||
UpdateMilitia( militia );
|
||||
}
|
||||
|
||||
if ( pointsused >= aPointsToAdd )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( gGameExternalOptions.gfTrainVeteranMilitia )
|
||||
{
|
||||
std::vector<MILITIA>::iterator itend = gIndividualMilitiaVector.end();
|
||||
for ( std::vector<MILITIA>::iterator it = gIndividualMilitiaVector.begin(); it != itend; ++it )
|
||||
{
|
||||
if ( !( ( *it ).flagmask & ( MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) && ( *it ).sector == aSector && ( *it ).militiarank == REGULAR_MILITIA )
|
||||
{
|
||||
MILITIA militia = ( *it );
|
||||
|
||||
FLOAT pointstoadd = min( aPointsToAdd - pointsused, max( 0, gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular + gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Elite - militia.promotionpoints ) );
|
||||
|
||||
pointsused += pointstoadd;
|
||||
militia.promotionpoints += pointstoadd;
|
||||
|
||||
PossiblyPromoteIndividualMilitia( militia );
|
||||
|
||||
if ( militia.militiarank == ELITE_MILITIA )
|
||||
StrategicPromoteMilitiaInSector( SECTORX( aSector ), SECTORY( aSector ), REGULAR_MILITIA, 1 );
|
||||
|
||||
UpdateMilitia( militia );
|
||||
}
|
||||
|
||||
if ( pointsused >= aPointsToAdd )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// do possible update in tactical
|
||||
if ( !gbWorldSectorZ && SECTORX( aSector ) == gWorldSectorX && SECTORY( aSector ) == gWorldSectorY )
|
||||
{
|
||||
BOOLEAN changesnecessary = FALSE;
|
||||
|
||||
SOLDIERTYPE* pSoldier = NULL;
|
||||
int cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
|
||||
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt, ++pSoldier )
|
||||
{
|
||||
MILITIA militia;
|
||||
|
||||
if ( pSoldier && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) )
|
||||
{
|
||||
if ( SoldierClassToMilitiaRank( pSoldier->ubSoldierClass ) < militia.militiarank )
|
||||
{
|
||||
pSoldier->ubSoldierClass = MilitiaRankToSoldierClass( militia.militiarank );
|
||||
|
||||
changesnecessary = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( changesnecessary )
|
||||
ResetMilitia();
|
||||
}
|
||||
|
||||
return pointsused;
|
||||
}
|
||||
|
||||
// handle possible militia promotion and individual militia update
|
||||
void HandlePossibleMilitiaPromotion( SOLDIERTYPE* pSoldier, BOOLEAN aAutoResolve )
|
||||
{
|
||||
@@ -775,6 +948,60 @@ void PromoteIndividualMilitia( UINT8 aSector, UINT8 aSoldierClass )
|
||||
ScreenMsg( FONT_MCOLOR_RED, MSG_INTERFACE, L"Possible error: Not enough individual militia found in PromoteIndividualMilitia" );
|
||||
}
|
||||
|
||||
void PossiblyPromoteIndividualMilitia( MILITIA& aMilitia )
|
||||
{
|
||||
if ( !( aMilitia.flagmask & ( MILITIAFLAG_DEAD | MILITIAFLAG_FIRED ) ) )
|
||||
{
|
||||
// Flugente: check whether we have the resources to promote militia
|
||||
BOOLEAN fCanPromoteToRegular = TRUE;
|
||||
BOOLEAN fCanPromoteToElite = TRUE;
|
||||
if ( gGameExternalOptions.fMilitiaResources && !gGameExternalOptions.fMilitiaUseSectorInventory )
|
||||
{
|
||||
FLOAT val_gun, val_armour, val_misc;
|
||||
GetResources( val_gun, val_armour, val_misc );
|
||||
|
||||
// regular militia require an additional gun and armour
|
||||
if ( val_gun <= 1.0f || val_armour <= 1.0f )
|
||||
{
|
||||
fCanPromoteToRegular = FALSE;
|
||||
fCanPromoteToElite = FALSE;
|
||||
}
|
||||
// elite also require misc resources
|
||||
else if ( val_misc <= 1.0f )
|
||||
{
|
||||
fCanPromoteToElite = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
// if we have enough points, promote
|
||||
if ( aMilitia.militiarank == GREEN_MILITIA )
|
||||
{
|
||||
if ( aMilitia.promotionpoints >= gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular )
|
||||
{
|
||||
if ( fCanPromoteToRegular )
|
||||
{
|
||||
aMilitia.militiarank = REGULAR_MILITIA;
|
||||
|
||||
AddResources( -1, -1, 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( aMilitia.militiarank == REGULAR_MILITIA )
|
||||
{
|
||||
if ( aMilitia.promotionpoints >= gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular + gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Elite )
|
||||
{
|
||||
if ( fCanPromoteToElite )
|
||||
{
|
||||
aMilitia.militiarank = ELITE_MILITIA;
|
||||
|
||||
AddResources( -1, -1, -1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// return the sum of daily wages, and the number of individual militia per class
|
||||
UINT32 GetDailyUpkeep_IndividualMilitia( UINT32& arNumGreen, UINT32& arNumRegular, UINT32& arNumElite )
|
||||
{
|
||||
|
||||
@@ -123,9 +123,7 @@ public:
|
||||
|
||||
// we don't store the experience level, we store the amount of points in regard to promotion.
|
||||
// While this is made up of kills and assists, we need this, as we have to account for militia initially starting at regular level
|
||||
UINT16 promotionpoints;
|
||||
|
||||
UINT16 filler1; // necessary for padding - fill up so that SIZEOF_MILITIA_POD is doubly even
|
||||
FLOAT promotionpoints;
|
||||
|
||||
char endOfPOD; // marker for end of POD (plain old data)
|
||||
|
||||
@@ -154,16 +152,24 @@ void UpdateMilitia( MILITIA aMilitia );
|
||||
|
||||
SOLDIERTYPE* GetUsedSoldierToIndividualMilitia( UINT32 aMilitiaId );
|
||||
|
||||
// update the health values of all militia in tactical
|
||||
void UpdateAllMilitiaHealthInTactical();
|
||||
// apply tactical life ratio to militia health ratio
|
||||
void ApplyTacticalLifeRatioToMilitia();
|
||||
|
||||
// apply health ratios to militia in tactical
|
||||
void ApplyMilitiaHealthRatioToTactical();
|
||||
|
||||
void HandleHourlyMilitiaHealing( );
|
||||
UINT32 MilitiaIndividual_Heal(UINT32 points, UINT8 aSector );
|
||||
|
||||
UINT32 CreateRandomIndividualMilitia( UINT8 aMilitiaRank, UINT8 aOrigin, UINT8 aSector );
|
||||
|
||||
UINT32 CreateNewIndividualMilitia( UINT8 aMilitiaRank, UINT8 aOrigin, UINT8 aSector );
|
||||
|
||||
UINT32 GetIdOfUnusedindividualMilitia( UINT8 aSoldierClass, UINT8 aSector );
|
||||
UINT32 GetIdOfUnusedIndividualMilitia( UINT8 aSoldierClass, UINT8 aSector );
|
||||
|
||||
BOOLEAN GetIdOfIndividualMilitiaWithClassSector( UINT8 aSoldierClass, UINT8 aSector, UINT32& arId );
|
||||
|
||||
FLOAT PromoteIndividualMilitiaInSector( UINT8 aSector, FLOAT aPointsToAdd );
|
||||
|
||||
// handle possible militia promotion and individual militia update
|
||||
void HandlePossibleMilitiaPromotion( SOLDIERTYPE* pSoldier, BOOLEAN aAutoResolve );
|
||||
@@ -175,6 +181,8 @@ void DisbandIndividualMilitia( UINT8 aSector, UINT8 usGreens, UINT8 usRegulars,
|
||||
|
||||
void PromoteIndividualMilitia( UINT8 aSector, UINT8 aSoldierClass );
|
||||
|
||||
void PossiblyPromoteIndividualMilitia( MILITIA& aMilitia );
|
||||
|
||||
// return the sum of daily wages, and the number of individual militia per class
|
||||
UINT32 GetDailyUpkeep_IndividualMilitia( UINT32& arNumGreen, UINT32& arNumRegular, UINT32& arNumElite );
|
||||
|
||||
|
||||
@@ -641,7 +641,7 @@ void MoveMilitiaSquad(INT16 sMapX, INT16 sMapY, INT16 sTMapX, INT16 sTMapY, BOOL
|
||||
MoveMilitiaEquipment(sMapX, sMapY, sTMapX, sTMapY, elites, regulars, greens);
|
||||
|
||||
// Flugente: update individual militia data
|
||||
UpdateAllMilitiaHealthInTactical( );
|
||||
ApplyTacticalLifeRatioToMilitia( );
|
||||
|
||||
// Flugente: disease
|
||||
PopulationMove( sMapX, sMapY, sTMapX, sTMapY, elites + regulars + greens );
|
||||
@@ -686,7 +686,7 @@ void MoveMilitiaSquad(INT16 sMapX, INT16 sMapY, INT16 sTMapX, INT16 sTMapY, BOOL
|
||||
MoveMilitiaEquipment(sMapX, sMapY, sTMapX, sTMapY, elites, regulars, greens);
|
||||
|
||||
// Flugente: update individual militia data
|
||||
UpdateAllMilitiaHealthInTactical( );
|
||||
ApplyTacticalLifeRatioToMilitia( );
|
||||
|
||||
// Flugente: disease
|
||||
PopulationMove( sMapX, sMapY, sTMapX, sTMapY, elites + regulars + greens );
|
||||
@@ -779,7 +779,7 @@ void MoveMilitiaSquad(INT16 sMapX, INT16 sMapY, INT16 sTMapX, INT16 sTMapY, BOOL
|
||||
MoveMilitiaEquipment(sMapX, sMapY, sTMapX, sTMapY, elites, regulars, greens);
|
||||
|
||||
// Flugente: update individual militia data
|
||||
UpdateAllMilitiaHealthInTactical( );
|
||||
ApplyTacticalLifeRatioToMilitia( );
|
||||
|
||||
// Flugente: disease
|
||||
PopulationMove( sMapX, sMapY, sTMapX, sTMapY, elites + regulars + greens );
|
||||
@@ -809,7 +809,7 @@ void MoveMilitiaSquad(INT16 sMapX, INT16 sMapY, INT16 sTMapX, INT16 sTMapY, BOOL
|
||||
MoveMilitiaEquipment(sMapX, sMapY, sTMapX, sTMapY, pSectorInfo->ubNumberOfCivsAtLevel[ ELITE_MILITIA ], pSectorInfo->ubNumberOfCivsAtLevel[ REGULAR_MILITIA ], pSectorInfo->ubNumberOfCivsAtLevel[ GREEN_MILITIA ]);
|
||||
|
||||
// Flugente: update individual militia data
|
||||
UpdateAllMilitiaHealthInTactical( );
|
||||
ApplyTacticalLifeRatioToMilitia( );
|
||||
|
||||
UINT8 greens = pSectorInfo->ubNumberOfCivsAtLevel[GREEN_MILITIA];
|
||||
UINT8 regulars = pSectorInfo->ubNumberOfCivsAtLevel[REGULAR_MILITIA];
|
||||
|
||||
@@ -2306,7 +2306,7 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
|
||||
TeamDropAll( MILITIA_TEAM );
|
||||
|
||||
// Flugente: update individual militia data
|
||||
UpdateAllMilitiaHealthInTactical( );
|
||||
ApplyTacticalLifeRatioToMilitia( );
|
||||
|
||||
// we now force a resetting of militia - they will be removed and recreated
|
||||
// as the group's coordinates have alreay 'moved' to the next sector, the group militia will now be gone
|
||||
|
||||
@@ -715,10 +715,10 @@ void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubSta
|
||||
//Madd: option to make mercs quiet during training / doctoring / repairing
|
||||
if ( ((pSoldier->bAssignment == TRAIN_BY_OTHER || pSoldier->bAssignment == TRAIN_TEAMMATE || pSoldier->bAssignment == TRAIN_SELF ||
|
||||
pSoldier->bAssignment == FACILITY_STAFF || pSoldier->bAssignment == TRAIN_TOWN || pSoldier->bAssignment == TRAIN_MOBILE
|
||||
|| pSoldier->bAssignment == TRAIN_WORKERS )
|
||||
|| pSoldier->bAssignment == TRAIN_WORKERS || pSoldier->bAssignment == DRILL_MILITIA )
|
||||
&& !gGameSettings.fOptions[TOPTION_QUIET_TRAINING]) ||
|
||||
(IS_REPAIR(pSoldier->bAssignment) && !gGameSettings.fOptions[TOPTION_QUIET_REPAIRING]) ||
|
||||
(IS_DOCTOR(pSoldier->bAssignment) && !gGameSettings.fOptions[TOPTION_QUIET_DOCTORING]))
|
||||
((IS_DOCTOR(pSoldier->bAssignment) || pSoldier->bAssignment == DOCTOR_MILITIA ) && !gGameSettings.fOptions[TOPTION_QUIET_DOCTORING]))
|
||||
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_EXPERIENCE_GAIN );
|
||||
}
|
||||
|
||||
+18
-5
@@ -2277,15 +2277,26 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
|
||||
switch( pSoldier->bAssignment )
|
||||
{
|
||||
CASE_DOCTOR:
|
||||
case DOCTOR_MILITIA:
|
||||
sIconIndex_Assignment = 1;
|
||||
fDoIcon_Assignment = TRUE;
|
||||
sPtsAvailable = CalculateHealingPointsForDoctor( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts, FALSE );
|
||||
fShowNumber = TRUE;
|
||||
fShowMaximum = TRUE;
|
||||
|
||||
// divide both amounts by 10 to make the displayed numbers a little more user-palatable (smaller)
|
||||
sPtsAvailable = ( sPtsAvailable + 5 ) / 10;
|
||||
usMaximumPts = ( usMaximumPts + 5 ) / 10;
|
||||
fShowCustomText = TRUE;
|
||||
|
||||
if ( pSoldier->bAssignment == DOCTOR_MILITIA )
|
||||
{
|
||||
// show percentage that we can heal
|
||||
swprintf( sString, L"%3.1f/%3.1f", (FLOAT)( sPtsAvailable * gGameExternalOptions.dIndividualMilitiaDoctorHealModifier ), (FLOAT)( usMaximumPts * gGameExternalOptions.dIndividualMilitiaDoctorHealModifier ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
// shos HP we can heal
|
||||
swprintf( sString, L"%3.1f/%3.1f", (FLOAT)( sPtsAvailable ) / 100.0f, (FLOAT)( usMaximumPts ) / 100.0f );
|
||||
}
|
||||
|
||||
usTextWidth = StringPixLength( sString, FONT10ARIAL );
|
||||
|
||||
break;
|
||||
|
||||
CASE_PATIENT:
|
||||
@@ -2305,6 +2316,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
|
||||
case TRAIN_TEAMMATE:
|
||||
case TRAIN_BY_OTHER:
|
||||
case TRAIN_WORKERS:
|
||||
case DRILL_MILITIA:
|
||||
sIconIndex_Assignment = 3;
|
||||
fDoIcon_Assignment = TRUE;
|
||||
fShowNumber = TRUE;
|
||||
@@ -2320,6 +2332,7 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE
|
||||
break;
|
||||
case( TRAIN_TOWN ):
|
||||
case( TRAIN_MOBILE ):
|
||||
case DRILL_MILITIA:
|
||||
sPtsAvailable = GetTownTrainPtsForCharacter( MercPtrs[ pFace->ubSoldierID ], &usMaximumPts );
|
||||
// divide both amounts by 10 to make the displayed numbers a little more user-palatable (smaller)
|
||||
sPtsAvailable = ( sPtsAvailable + 5 ) / 10;
|
||||
|
||||
@@ -1731,7 +1731,7 @@ void AddSoldierToSectorGridNo( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDir
|
||||
{
|
||||
InternalSoldierInSectorSleep( pSoldier, pSoldier->sInsertionGridNo, FALSE );
|
||||
}
|
||||
else if ( IS_DOCTOR(pSoldier->bAssignment) )
|
||||
else if ( IS_DOCTOR(pSoldier->bAssignment) || pSoldier->bAssignment == DOCTOR_MILITIA )
|
||||
{
|
||||
SoldierInSectorDoctor( pSoldier, pSoldier->sInsertionGridNo );
|
||||
}
|
||||
|
||||
@@ -635,7 +635,7 @@ SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, UINT8 *
|
||||
// do not do so during loading of a savegame
|
||||
if ( tbTeam == MILITIA_TEAM && !pCreateStruct->fUseExistingSoldier )
|
||||
{
|
||||
Soldier.usIndividualMilitiaID = GetIdOfUnusedindividualMilitia( pCreateStruct->ubSoldierClass, SECTOR( pCreateStruct->sSectorX, pCreateStruct->sSectorY ) );
|
||||
Soldier.usIndividualMilitiaID = GetIdOfUnusedIndividualMilitia( pCreateStruct->ubSoldierClass, SECTOR( pCreateStruct->sSectorX, pCreateStruct->sSectorY ) );
|
||||
}
|
||||
|
||||
// OK, CHECK IF WE HAVE A VALID PROFILE ID!
|
||||
|
||||
@@ -3066,6 +3066,8 @@ extern STR16 szIntelText[];
|
||||
extern STR16 szChatTextSpy[];
|
||||
extern STR16 szChatTextEnemy[];
|
||||
|
||||
extern STR16 szMilitiaText[];
|
||||
|
||||
#define TACTICAL_INVENTORY_DIALOG_NUM 16
|
||||
#define TACTICAL_COVER_DIALOG_NUM 16
|
||||
|
||||
|
||||
+82
-1
@@ -2470,6 +2470,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"培训工人",//L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2575,6 +2577,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"培训工人",//L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2639,6 +2643,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"培训工人",//L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2758,6 +2764,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"无线电扫描", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"告发", // anv: snitch actions
|
||||
L"训练",
|
||||
L"Militia", // all things militia
|
||||
L"搬运物品", // get items
|
||||
L"筑防", //L"Fortify", fortify sector
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2983,7 +2990,6 @@ STR16 pAttributeMenuStrings[] =
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"锻炼", // train yourself
|
||||
L"民兵", // train the town
|
||||
L"游击队", // L"Mobile Militia", //ham3.6
|
||||
L"培训工人", //L"Train workers",
|
||||
L"教练", // train your teammates
|
||||
@@ -4587,6 +4593,7 @@ STR16 pTransactionText[] =
|
||||
L"Kerberus安保公司的费用", //L"Payment to Kerberus", // Flugente: PMC
|
||||
L"修理SAM基地",//L"SAM site repair", // Flugente: SAM repair
|
||||
L"培训工人",//L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11364,6 +11371,80 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
// WANNE: Some Chinese specific strings that needs to be in unicode!
|
||||
STR16 ChineseSpecString1 = L"%%"; //defined in _ChineseText.cpp as this file is already unicode
|
||||
STR16 ChineseSpecString2 = L"*%3d%%%%"; //defined in _ChineseText.cpp as this file is already unicode
|
||||
|
||||
+88
-7
@@ -2469,6 +2469,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2574,6 +2576,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2638,6 +2642,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2757,6 +2763,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Radio Scan", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Snitch", // TODO.Translate // anv: snitch actions
|
||||
L"Train", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Get Item", // get items // TODO.Translate
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2983,13 +2990,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Oefenen", // train yourself
|
||||
L"Militie", // train the town
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Trainer", // train your teammates
|
||||
L"Student", // be trained by an instructor
|
||||
L"Stop", // cancel this menu
|
||||
L"Oefenen", // train yourself
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Trainer", // train your teammates
|
||||
L"Student", // be trained by an instructor
|
||||
L"Stop", // cancel this menu
|
||||
};
|
||||
|
||||
|
||||
@@ -4592,6 +4598,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair // TODO.Translate
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11382,4 +11389,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //DUTCH
|
||||
|
||||
+23
-8
@@ -2470,6 +2470,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide",
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2575,6 +2577,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised",
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2639,6 +2643,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised",
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2755,9 +2761,10 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Patient", // the merc is receiving medical attention
|
||||
L"Vehicle", // the merc is in a vehicle
|
||||
L"Repair", // the merc is repairing items
|
||||
L"Radio Scan", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Radio Scan", // the merc is scanning for patrols in neighbouring sectors
|
||||
L"Snitch", // anv: snitch actions
|
||||
L"Train", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Get Item", // move items
|
||||
L"Fortify", // fortify sector
|
||||
L"Intel", // covert assignments
|
||||
@@ -2982,13 +2989,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Practice", // train yourself
|
||||
L"Militia", // train the town
|
||||
L"Mobile Militia",
|
||||
L"Train workers",
|
||||
L"Trainer", // train your teammates
|
||||
L"Student", // be trained by an instructor
|
||||
L"Cancel", // cancel this menu
|
||||
L"Practice", // train yourself
|
||||
L"Mobile Militia",
|
||||
L"Train workers",
|
||||
L"Trainer", // train your teammates
|
||||
L"Student", // be trained by an instructor
|
||||
L"Cancel", // cancel this menu
|
||||
};
|
||||
|
||||
|
||||
@@ -4588,6 +4594,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11432,4 +11439,12 @@ STR16 szChatTextEnemy[] =
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //ENGLISH
|
||||
|
||||
+82
-1
@@ -2478,6 +2478,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2583,6 +2585,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2647,6 +2651,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2766,6 +2772,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Radio", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Infiltré", // anv: snitch actions
|
||||
L"Formation", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Dépl obj.", // move items
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2991,7 +2998,6 @@ STR16 pAttributeMenuStrings[] =
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Formation", // train yourself
|
||||
L"Milice", // train the town
|
||||
L"Milice mobile",
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Entraîneur", // train your teammates
|
||||
@@ -4596,6 +4602,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair // TODO.Translate
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11364,4 +11371,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //FRENCH
|
||||
|
||||
+88
-7
@@ -2483,6 +2483,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
STR16 pMilitiaString[] =
|
||||
@@ -2584,6 +2586,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
// refer to above for comments
|
||||
@@ -2646,6 +2650,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
// the contract options
|
||||
@@ -2761,6 +2767,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Radio Scan", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Snitch", // TODO.Translate // anv: snitch actions
|
||||
L"Training", // the merc is training
|
||||
L"Miliz", // all things militia
|
||||
L"Umzug", // move items
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2986,13 +2993,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Üben", // train yourself
|
||||
L"Miliz", // train the town
|
||||
L"Mobile Miliz",
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Trainer", // train your teammates
|
||||
L"Rekrut", // be trained by an instructor
|
||||
L"Abbrechen", // cancel this menu
|
||||
L"Üben", // train yourself
|
||||
L"Mobile Miliz",
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Trainer", // train your teammates
|
||||
L"Rekrut", // be trained by an instructor
|
||||
L"Abbrechen", // cancel this menu
|
||||
};
|
||||
|
||||
STR16 pSquadMenuStrings[] =
|
||||
@@ -4568,6 +4574,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair // TODO.Translate
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11194,4 +11201,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //GERMAN
|
||||
|
||||
+88
-7
@@ -2464,6 +2464,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2569,6 +2571,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2633,6 +2637,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2752,6 +2758,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Radio Scan", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Snitch", // TODO.Translate // anv: snitch actions
|
||||
L"Si esercita", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Get Item", // get items // TODO.Translate
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2978,13 +2985,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Allenati", // train yourself
|
||||
L"Esercito", // train the town
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Allenatore", // train your teammates
|
||||
L"Studente", // be trained by an instructor
|
||||
L"Annulla", // cancel this menu
|
||||
L"Allenati", // train yourself
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Allenatore", // train your teammates
|
||||
L"Studente", // be trained by an instructor
|
||||
L"Annulla", // cancel this menu
|
||||
};
|
||||
|
||||
|
||||
@@ -4586,6 +4592,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair // TODO.Translate
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11373,4 +11380,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //ITALIAN
|
||||
|
||||
+88
-7
@@ -2476,6 +2476,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Train W.",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2581,6 +2583,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2645,6 +2649,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Train workers",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2764,6 +2770,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Nasłuch", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Kapuś", // anv: snitch actions
|
||||
L"Szkolenie", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Get Item", // get items // TODO.Translate
|
||||
L"Fortify", // fortify sector // TODO.Translate
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2988,13 +2995,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Praktyka", // train yourself
|
||||
L"Samoobrona", // train the town
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Instruktor", // train your teammates
|
||||
L"Uczeń", // be trained by an instructor
|
||||
L"Anuluj", // cancel this menu
|
||||
L"Praktyka", // train yourself
|
||||
L"Mobile Militia", // TODO.Translate
|
||||
L"Train workers", // TODO.Translate
|
||||
L"Instruktor", // train your teammates
|
||||
L"Uczeń", // be trained by an instructor
|
||||
L"Anuluj", // cancel this menu
|
||||
};
|
||||
|
||||
|
||||
@@ -4597,6 +4603,7 @@ STR16 pTransactionText[] =
|
||||
L"Payment to Kerberus", // Flugente: PMC
|
||||
L"SAM site repair", // Flugente: SAM repair // TODO.Translate
|
||||
L"Trained workers", // Flugente: train workers
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11386,4 +11393,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //POLISH
|
||||
|
||||
+88
-7
@@ -2470,6 +2470,8 @@ STR16 pAssignmentStrings[] =
|
||||
L"Учит рабочих",
|
||||
L"Hide", // TODO.Translate
|
||||
L"GetIntel",
|
||||
L"DoctorM.",
|
||||
L"DMilitia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2575,6 +2577,8 @@ STR16 pPersonnelAssignmentStrings[] =
|
||||
L"Учит рабочих",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2639,6 +2643,8 @@ STR16 pLongAssignmentStrings[] =
|
||||
L"Учит рабочих",
|
||||
L"Hide while disguised", // TODO.Translate
|
||||
L"Get intel while disguised",
|
||||
L"Doctor wounded militia",
|
||||
L"Drill existing militia",
|
||||
};
|
||||
|
||||
|
||||
@@ -2758,6 +2764,7 @@ STR16 pAssignMenuStrings[] =
|
||||
L"Радио", // Flugente: the merc is scanning for patrols in neighbouring sectors
|
||||
L"Осведомитель", // anv: snitch actions
|
||||
L"Обучение", // the merc is training
|
||||
L"Militia", // all things militia
|
||||
L"Носильщик", // move items
|
||||
L"Укреплять", // fortify sector
|
||||
L"Intel", // covert assignments // TODO.Translate
|
||||
@@ -2982,13 +2989,12 @@ STR16 pAttributeMenuStrings[] =
|
||||
|
||||
STR16 pTrainingMenuStrings[] =
|
||||
{
|
||||
L"Практика", // train yourself
|
||||
L"Ополчение", // train the town
|
||||
L"Патрульные",
|
||||
L"Рабочие", // Train workers
|
||||
L"Тренер", // train your teammates
|
||||
L"Ученик", // be trained by an instructor
|
||||
L"Отмена", // cancel this menu
|
||||
L"Практика", // train yourself
|
||||
L"Патрульные",
|
||||
L"Рабочие", // Train workers
|
||||
L"Тренер", // train your teammates
|
||||
L"Ученик", // be trained by an instructor
|
||||
L"Отмена", // cancel this menu
|
||||
};
|
||||
|
||||
|
||||
@@ -4588,6 +4594,7 @@ STR16 pTransactionText[] =
|
||||
L"Оплата услуг Цербер", // Flugente: PMC
|
||||
L"Стоимость ремонта базы ПВО", // Flugente: SAM repair
|
||||
L"Trained workers", // Flugente: train workers // TODO.Translate
|
||||
L"Drill militia in %s", // Flugente: drill militia // TODO.Translate
|
||||
};
|
||||
|
||||
STR16 pTransactionAlternateText[] =
|
||||
@@ -11366,4 +11373,78 @@ STR16 szIntelText[] =
|
||||
L"%s has been discovered, going to sector!",
|
||||
};
|
||||
|
||||
STR16 szChatTextSpy[] =
|
||||
{
|
||||
L"... so imagine my surprise when suddenly...",
|
||||
L"... and did I ever tell you the story of that one time...",
|
||||
L"... so, in conclusion, the colonel decided...",
|
||||
L"... tell you, they did not see that coming...",
|
||||
|
||||
L"... so, without further consideration...",
|
||||
L"... but then SHE said...",
|
||||
L"... and, speaking of llamas...",
|
||||
L"... there I was, in the middle of the dustbowl, when...",
|
||||
|
||||
L"... and let me tell, those things chafe...",
|
||||
L"... you should have seen his face...",
|
||||
L"... which wasn't the last of what we saw of them...",
|
||||
L"... which reminds me, my grandmother used to say...",
|
||||
|
||||
L"... who, by the way, is a total berk...",
|
||||
L"... also, the roots were off by a margin...",
|
||||
L"... and I was like, 'Back off, heathen!'...",
|
||||
L"... at that point the vicars were in oben rebellion...",
|
||||
|
||||
L"... not that I would've minded, you know, but...",
|
||||
L"... if not for that ridiculous hat...",
|
||||
L"... besides, it wasn't his favourite leg anyway...",
|
||||
L"... even though the ships were still watertight...",
|
||||
|
||||
L"... aside from the fact that giraffes can't do that...",
|
||||
L"... totally wasted that fork, mind you...",
|
||||
L"... and no bakery in sight. After that...",
|
||||
L"... even though regulations are clear in that regard...",
|
||||
};
|
||||
|
||||
STR16 szChatTextEnemy[] =
|
||||
{
|
||||
L"Whoa. I had no idea!",
|
||||
L"Really?",
|
||||
L"Uhhhh....",
|
||||
L"Well... you see, uhh...",
|
||||
|
||||
L"I am not entirely sure that...",
|
||||
L"I... well...",
|
||||
L"If I could just...",
|
||||
L"But...",
|
||||
|
||||
L"I don't mean to intrude, but...",
|
||||
L"Really? I had no idea!",
|
||||
L"What? All of it?",
|
||||
L"No way!",
|
||||
|
||||
L"Haha!",
|
||||
L"Whoa, the guys are not going to believe me!",
|
||||
L"... yeah, just...",
|
||||
L"That's just like the gypsy woman said!",
|
||||
|
||||
L"... yeah, is that why...",
|
||||
L"... hehe, talk about refurbishing...",
|
||||
L"... yeah, I guess...",
|
||||
L"Wait. What?",
|
||||
|
||||
L"... wouldn't have minded seeing that...",
|
||||
L"... now that you mention it...",
|
||||
L"... but where did all the chalk go...",
|
||||
L"... had never even considered that...",
|
||||
};
|
||||
|
||||
STR16 szMilitiaText[] =
|
||||
{
|
||||
L"Train new militia",
|
||||
L"Drill militia",
|
||||
L"Doctor militia",
|
||||
L"Cancel",
|
||||
};
|
||||
|
||||
#endif //RUSSIAN
|
||||
|
||||
Reference in New Issue
Block a user