mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Merged revision(s) 6997-6998 from branches/ja2_source_official_2014:
- Campaign stats take spy actions and SAM sabotages into account - spy encounters are not reproted if nothing of interest happened - Fix: error in food system automatic canteen refill - Fix: if min enemy group size is too high, the AI never replensishes garrisons, thereby severely dumbing down the game. - Fix: enemy groups do not receive minimum size - Fix: enemy groups sizes are cut down needlessly git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6999 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -698,9 +698,19 @@ void RenderCampaignHistory_MostImportant()
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
|
||||
if ( incident.usIncidentFlags & INCIDENT_BUILDINGS_DAMAGED )
|
||||
if ( incident.usIncidentFlags & INCIDENT_SAMSITE_SABOTAGED )
|
||||
{
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_BUILDINGDAMAGE], incident.usKills[CAMPAIGNHISTORY_SD_CIV], incident.usWounds[CAMPAIGNHISTORY_SD_CIV] );
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_SAMSITESABOTAGED] );
|
||||
usPosY += DisplayWrappedString( usPosX, usPosY, LAPTOP_SCREEN_LR_X - usPosX, 2, CAMPHIS_FONT_SMALL, CAMPAIGN_HISTORY_FONT_COLOR_REGULAR,sText, FONT_MCOLOR_BLACK, FALSE, 0);
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
else if ( incident.usIncidentFlags & INCIDENT_BUILDINGS_DAMAGED )
|
||||
{
|
||||
if ( incident.usKills[CAMPAIGNHISTORY_SD_CIV] + incident.usWounds[CAMPAIGNHISTORY_SD_CIV] > 0 )
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_BUILDINGANDCIVDAMAGE], incident.usKills[CAMPAIGNHISTORY_SD_CIV], incident.usWounds[CAMPAIGNHISTORY_SD_CIV] );
|
||||
else
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_BUILDINGDAMAGE] );
|
||||
|
||||
usPosY += DisplayWrappedString( usPosX, usPosY, LAPTOP_SCREEN_LR_X - usPosX, 2, CAMPHIS_FONT_SMALL, CAMPAIGN_HISTORY_FONT_COLOR_REGULAR,sText, FONT_MCOLOR_BLACK, FALSE, 0);
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
@@ -758,6 +768,20 @@ void RenderCampaignHistory_MostImportant()
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
|
||||
if ( incident.usIncidentFlags & INCIDENT_SPYACTION_ENEMY )
|
||||
{
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_SPY_ENEMY] );
|
||||
usPosY += DisplayWrappedString( usPosX, usPosY, LAPTOP_SCREEN_LR_X - usPosX, 2, CAMPHIS_FONT_SMALL, CAMPAIGN_HISTORY_FONT_COLOR_REGULAR,sText, FONT_MCOLOR_BLACK, FALSE, 0);
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
|
||||
if ( incident.usIncidentFlags & INCIDENT_SPYACTION_PLAYERSIDE )
|
||||
{
|
||||
swprintf(sText, szCampaignHistoryDetail[TEXT_CAMPAIGNHISTORY_DETAIL_SPY_PLAYER] );
|
||||
usPosY += DisplayWrappedString( usPosX, usPosY, LAPTOP_SCREEN_LR_X - usPosX, 2, CAMPHIS_FONT_SMALL, CAMPAIGN_HISTORY_FONT_COLOR_REGULAR,sText, FONT_MCOLOR_BLACK, FALSE, 0);
|
||||
if ( picend < usPosY ) usPosX = LAPTOP_SCREEN_UL_X;
|
||||
}
|
||||
|
||||
{
|
||||
// team losses
|
||||
UINT16 rebellosses = incident.usKills[CAMPAIGNHISTORY_SD_MERC] + incident.usKills[CAMPAIGNHISTORY_SD_MILITIA_GREEN] + incident.usKills[CAMPAIGNHISTORY_SD_MILITIA_REGULAR] + incident.usKills[CAMPAIGNHISTORY_SD_MILITIA_ELITE];
|
||||
|
||||
@@ -87,7 +87,8 @@ Incident_Stats::CalcInterestRating()
|
||||
if ( usIncidentFlags & INCIDENT_BUILDINGS_DAMAGED ) usInterestRating += 100;
|
||||
if ( usIncidentFlags & INCIDENT_WIN ) usInterestRating += 100;
|
||||
else usInterestRating += 200;
|
||||
|
||||
if ( usIncidentFlags & INCIDENT_SAMSITE_SABOTAGED ) usInterestRating += 1500;
|
||||
|
||||
if ( usOneTimeEventFlags & INCIDENT_ONETIMEEVENT_OMERTA ) usInterestRating += 1000;
|
||||
if ( usOneTimeEventFlags & INCIDENT_ONETIMEEVENT_DEATH_KINGPIN ) usInterestRating += 500;
|
||||
if ( usOneTimeEventFlags & (INCIDENT_ONETIMEEVENT_MASSACRE_HICKS|INCIDENT_ONETIMEEVENT_MASSACRE_BLOODCATS) ) usInterestRating += 800;
|
||||
@@ -688,6 +689,32 @@ Campaign_Stats::AddConsumption(UINT8 aType, FLOAT aVal)
|
||||
// add this incident to the campaign stats and then clear it
|
||||
void FinishIncident(INT16 sX, INT16 sY, INT8 sZ)
|
||||
{
|
||||
// it is possible to enter a combat without any real fighting.
|
||||
// For now, lets just assume this happens with undetected spies. If nothing of interest happened, don't add this incident (it would be boring to read anyway)
|
||||
if ( gCurrentIncident.usIncidentFlags & (INCIDENT_SPYACTION_ENEMY|INCIDENT_SPYACTION_PLAYERSIDE) && !(gCurrentIncident.usIncidentFlags & INCIDENT_SPYACTION_UNCOVERED) )
|
||||
{
|
||||
// if noting of interest happened...
|
||||
if ( !(gCurrentIncident.usIncidentFlags & INCIDENT_EVENT) && gCurrentIncident.usOneTimeEventFlags == 0 )
|
||||
{
|
||||
UINT16 i = 0;
|
||||
|
||||
// if nobody was harmed...
|
||||
for (i = 0; i < CAMPAIGNHISTORY_SD_MAX; ++i)
|
||||
{
|
||||
if ( gCurrentIncident.usKills[i] || gCurrentIncident.usWounds[i] || gCurrentIncident.usPrisoners[i] )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( i == CAMPAIGNHISTORY_SD_MAX )
|
||||
{
|
||||
// totally boring. Don't add this, just clean it an exit
|
||||
gCurrentIncident.clear();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// due to odd coding, we do not know when an incident starts
|
||||
// (checking for entering combat isn't enough, as we do that multiple times per battle)
|
||||
// we thus set the relevant data when finishing an incident
|
||||
|
||||
@@ -45,15 +45,17 @@
|
||||
#define INCIDENT_WIN 0x01000000 //16777216 // player won battle (otherwise he lost)
|
||||
#define INCIDENT_OMERTA_LANDING 0x02000000 //33554432 // omerta landing
|
||||
#define INCIDENT_FIRST_LIBERATION 0x04000000 //67108864 // first time we free a sector
|
||||
/*#define PLAYER_NET_4_LVL_3 0x08000000 //134217728
|
||||
#define INCIDENT_SAMSITE_SABOTAGED 0x08000000 //134217728 // SAM site controls were destroyed
|
||||
|
||||
#define PLAYER_NET_1_LVL_4 0x10000000 //268435456
|
||||
#define PLAYER_NET_2_LVL_4 0x20000000 //536870912
|
||||
#define WH40K_SOLDIER_ILLUSION 0x40000000 //1073741824 // Soldier is an Illusion
|
||||
#define WH40K_SOLDIER_KILLTHISTURN 0x80000000 //2147483648 // Soldier is on a kill streak*/
|
||||
#define INCIDENT_SPYACTION_ENEMY 0x10000000 //268435456 // side used spies. Depending on the other actions, this report might not even show up, as nobody knows there WAS any action...
|
||||
#define INCIDENT_SPYACTION_PLAYERSIDE 0x20000000 //536870912
|
||||
#define INCIDENT_SPYACTION_UNCOVERED 0x40000000 //1073741824 // a spy was uncovered
|
||||
//#define WH40K_SOLDIER_KILLTHISTURN 0x80000000 //2147483648 // Soldier is on a kill streak
|
||||
|
||||
#define INCIDENT_PLAYER_ALLDIRS (INCIDENT_ATTACKDIR_NORTH|INCIDENT_ATTACKDIR_WEST|INCIDENT_ATTACKDIR_SOUTH|INCIDENT_ATTACKDIR_EAST)
|
||||
#define INCIDENT_ENEMY_ALLDIRS (INCIDENT_ATTACKDIR_NORTH_ENEMY|INCIDENT_ATTACKDIR_WEST_ENEMY|INCIDENT_ATTACKDIR_SOUTH_ENEMY|INCIDENT_ATTACKDIR_EAST_ENEMY)
|
||||
|
||||
#define INCIDENT_EVENT 0x0E00FF3F // any interesting event that might have happened
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// -------- added by Flugente: flags for one time events that commence an individual report --------
|
||||
|
||||
+28
-16
@@ -563,7 +563,7 @@ INT32 GarrisonReinforcementsRequested( INT32 iGarrisonID, UINT8 *pubExtraReinfor
|
||||
//until it is finally excepted or an absolute max is made.
|
||||
*pubExtraReinforcements = (UINT8)(gubGarrisonReinforcementsDenied[ iGarrisonID ] / (6 - gGameOptions.ubDifficultyLevel));
|
||||
//Make sure the number of extra reinforcements don't bump the force size past the max of MAX_STRATEGIC_TEAM_SIZE.
|
||||
*pubExtraReinforcements = (UINT8)min( (INT32)*pubExtraReinforcements, min( (INT32)(*pubExtraReinforcements), iMaxEnemyGroupSize - iReinforcementsRequested ) );
|
||||
*pubExtraReinforcements = (UINT16)min( (INT32)*pubExtraReinforcements, min( (INT32)(*pubExtraReinforcements), iMaxEnemyGroupSize - iReinforcementsRequested ) );
|
||||
|
||||
iReinforcementsRequested = min( iMaxEnemyGroupSize, iReinforcementsRequested );
|
||||
|
||||
@@ -2088,7 +2088,7 @@ BOOLEAN ReinforcementsApproved( INT32 iGarrisonID, UINT16 *pusDefencePoints )
|
||||
//Reinforcements will have to wait. For now, increase the reinforcements denied. The amount increase is 20 percent
|
||||
//of the garrison's priority.
|
||||
gubGarrisonReinforcementsDenied[ iGarrisonID ] += (UINT8)(gArmyComp[ gGarrisonGroup[ iGarrisonID ].ubComposition ].bPriority / 2);
|
||||
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -2919,11 +2919,16 @@ void SendReinforcementsForGarrison( INT32 iDstGarrisonID, UINT16 usDefencePoints
|
||||
gArmyComp[ gGarrisonGroup[ iDstGarrisonID ].ubComposition ].bPriority / 50;
|
||||
|
||||
if( iReinforcementsRequested + ubNumExtraReinforcements > iMaxReinforcementsAllowed )
|
||||
{ //adjust the extra reinforcements so that it doesn't exceed the maximum allowed.
|
||||
{
|
||||
//adjust the extra reinforcements so that it doesn't exceed the maximum allowed.
|
||||
fLimitMaxTroopsAllowable = TRUE;
|
||||
ubNumExtraReinforcements = (UINT8)(iMaxReinforcementsAllowed - iReinforcementsRequested);
|
||||
ubNumExtraReinforcements = (UINT16)(max(0, iMaxReinforcementsAllowed - iReinforcementsRequested));
|
||||
}
|
||||
|
||||
// Flugente: this is stupid. why would we limit the groupsize by the desired population? If that is smaller than the minimum group size, then we'll create a group smaller than that
|
||||
// this would forbid us from properly moving it. Why does gGameExternalOptions.iMaxEnemyGroupSize exist if it isn't properly used?
|
||||
ubNumExtraReinforcements = (UINT16)(max(0, gubMinEnemyGroupSize - iReinforcementsRequested));
|
||||
|
||||
iReinforcementsRequested += ubNumExtraReinforcements;
|
||||
|
||||
if( iReinforcementsRequested <= 0 )
|
||||
@@ -3057,8 +3062,9 @@ void SendReinforcementsForGarrison( INT32 iDstGarrisonID, UINT16 usDefencePoints
|
||||
//Send the lowest of the two: number requested or number available
|
||||
|
||||
iReinforcementsApproved = min( iReinforcementsRequested, iReinforcementsAvailable );
|
||||
if( iReinforcementsApproved > iMaxReinforcementsAllowed - ubNumExtraReinforcements )
|
||||
{ //The force isn't strong enough, but the queen isn't willing to apply extra resources
|
||||
if( iReinforcementsApproved < iMaxReinforcementsAllowed - ubNumExtraReinforcements )
|
||||
{
|
||||
//The force isn't strong enough, but the queen isn't willing to apply extra resources
|
||||
iReinforcementsApproved = iMaxReinforcementsAllowed - ubNumExtraReinforcements;
|
||||
}
|
||||
else if( (iReinforcementsApproved + ubNumExtraReinforcements) * 3 < usDefencePoints )
|
||||
@@ -3667,11 +3673,11 @@ BOOLEAN LoadStrategicAI( HWFILE hFile )
|
||||
gubPatrolReinforcementsDenied = NULL;
|
||||
}
|
||||
gubPatrolReinforcementsDenied = (UINT8*)MemAlloc( giPatrolArraySize );
|
||||
FileRead( hFile, gubPatrolReinforcementsDenied, giPatrolArraySize, &uiNumBytesRead );
|
||||
if( uiNumBytesRead != (UINT32)giPatrolArraySize )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
FileRead( hFile, gubPatrolReinforcementsDenied, giPatrolArraySize, &uiNumBytesRead );
|
||||
if( uiNumBytesRead != (UINT32)giPatrolArraySize )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//Load the list of reinforcement garrison points.
|
||||
if( gubGarrisonReinforcementsDenied )
|
||||
@@ -3680,11 +3686,11 @@ BOOLEAN LoadStrategicAI( HWFILE hFile )
|
||||
gubGarrisonReinforcementsDenied = NULL;
|
||||
}
|
||||
gubGarrisonReinforcementsDenied = (UINT8*)MemAlloc( giGarrisonArraySize );
|
||||
FileRead( hFile, gubGarrisonReinforcementsDenied, giGarrisonArraySize, &uiNumBytesRead );
|
||||
if( uiNumBytesRead != (UINT32)giGarrisonArraySize )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
FileRead( hFile, gubGarrisonReinforcementsDenied, giGarrisonArraySize, &uiNumBytesRead );
|
||||
if( uiNumBytesRead != (UINT32)giGarrisonArraySize )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef JA2BETAVERSION
|
||||
InitStrategicMovementCosts();
|
||||
@@ -5796,6 +5802,12 @@ BOOLEAN GarrisonRequestingMinimumReinforcements( INT32 iGarrisonID )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Flugente: The above check is insufficient. if we increase gubMinEnemyGroupSize (to, say, make the game harder), this check will never evaluate to true. Congratulations, you've broken the AI!
|
||||
// Instead, if we have nobody here, but want someone to be here, then a minimum-sized group is in order.
|
||||
if( iDesired > 0 && iAvailable == 0 )
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1019,11 +1019,11 @@ OBJECTTYPE* GetUsableWaterDrumInSector( void )
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
// soldier refills canteen while auto-consuming. Only clean sector water souces are consumed, an sector inventory is not touched (sector is likely not loaded)
|
||||
// soldier refills canteen while auto-consuming. Only clean sector water souces are consumed, and sector inventory is not touched (sector is likely not loaded)
|
||||
void SoldierAutoFillCanteens(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
// no functionality if in combat, invalid/travelling/asleep/non-profile soldier
|
||||
if ( (gTacticalStatus.uiFlags & INCOMBAT) || !pSoldier || !pSoldier->bInSector || pSoldier->flags.fMercAsleep || pSoldier->ubProfile == NO_PROFILE )
|
||||
if ( (gTacticalStatus.uiFlags & INCOMBAT) || !pSoldier || !pSoldier->bActive || pSoldier->flags.fMercAsleep || pSoldier->ubProfile == NO_PROFILE )
|
||||
return;
|
||||
|
||||
// determine if there are any patches of water in this sector.
|
||||
|
||||
@@ -15643,6 +15643,12 @@ BOOLEAN SOLDIERTYPE::RecognizeAsCombatant(UINT8 ubTargetID)
|
||||
}
|
||||
}
|
||||
|
||||
// campaign stats
|
||||
if ( pSoldier->bTeam == ENEMY_TEAM )
|
||||
gCurrentIncident.usIncidentFlags |= INCIDENT_SPYACTION_ENEMY;
|
||||
else
|
||||
gCurrentIncident.usIncidentFlags |= INCIDENT_SPYACTION_PLAYERSIDE;
|
||||
|
||||
// do we recognize this guy as an enemy?
|
||||
if ( !pSoldier->SeemsLegit(this->ubID) )
|
||||
{
|
||||
@@ -15663,6 +15669,9 @@ BOOLEAN SOLDIERTYPE::RecognizeAsCombatant(UINT8 ubTargetID)
|
||||
this->aiData.bOppList[pSoldier->ubID] = NOT_HEARD_OR_SEEN;
|
||||
|
||||
ManSeesMan(this, pSoldier, pSoldier->sGridNo, pSoldier->pathing.bLevel, 0, 0);
|
||||
|
||||
// campaign stats
|
||||
gCurrentIncident.usIncidentFlags |= INCIDENT_SPYACTION_UNCOVERED;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -4796,10 +4796,11 @@ void UpdateAndDamageSAMIfFound( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ,
|
||||
// Damage.....
|
||||
sSectorNo = CALCULATE_STRATEGIC_INDEX( sSectorX, sSectorY );
|
||||
|
||||
INT8 statusbefore = StrategicMap[ sSectorNo ].bSAMCondition;
|
||||
|
||||
if ( StrategicMap[ sSectorNo ].bSAMCondition >= ubDamage )
|
||||
{
|
||||
StrategicMap[ sSectorNo ].bSAMCondition =
|
||||
StrategicMap[ sSectorNo ].bSAMCondition - ubDamage;
|
||||
StrategicMap[ sSectorNo ].bSAMCondition -= ubDamage;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4809,6 +4810,10 @@ void UpdateAndDamageSAMIfFound( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ,
|
||||
// SAM site may have been put out of commission...
|
||||
UpdateAirspaceControl( );
|
||||
|
||||
// Flugente: campaign stats: if SAM was functional before and isn't anymore, note this
|
||||
if ( statusbefore >= MIN_CONDITION_FOR_SAM_SITE_TO_WORK && StrategicMap[ sSectorNo ].bSAMCondition < MIN_CONDITION_FOR_SAM_SITE_TO_WORK )
|
||||
gCurrentIncident.usIncidentFlags |= INCIDENT_SAMSITE_SABOTAGED;
|
||||
|
||||
// ATE: GRAPHICS UPDATE WILL GET DONE VIA NORMAL EXPLOSION CODE.....
|
||||
}
|
||||
|
||||
|
||||
@@ -2579,6 +2579,7 @@ enum
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_UNKNOWNLOCATION,
|
||||
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_BUILDINGDAMAGE,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_BUILDINGANDCIVDAMAGE,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_REINFORCE_BOTH,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_REINFORCE,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_CHEMICAL_BOTH,
|
||||
@@ -2587,6 +2588,9 @@ enum
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_TANKS,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_SNIPERS_BOTH,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_SNIPERS,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_SAMSITESABOTAGED,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_SPY_ENEMY,
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_SPY_PLAYER,
|
||||
|
||||
TEXT_CAMPAIGNHISTORY_DETAIL_MAX,
|
||||
};
|
||||
|
||||
@@ -8333,7 +8333,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"和",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"该分区的建筑受损。%d名市民被杀,%d名市民受伤。",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"在战斗中,%s和%s呼叫了支援。",
|
||||
L"在战斗中,%s呼叫了支援。",
|
||||
L"目击者报道交战双方都使用了化学武器。",
|
||||
@@ -8342,6 +8343,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%s部署了%d辆坦克,%d辆坦克在激烈的交火中被摧毁。",
|
||||
L"据称双方都部署了狙击手。",
|
||||
L"未经证实的消息称有%s名狙击手参与了交火。"
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8347,7 +8347,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8356,6 +8357,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8331,7 +8331,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location",
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.",
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8340,6 +8341,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight.",
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8330,7 +8330,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"et",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Des bâtiments ont été endommagés. Il y a eu %d civils tués et %d blessés.",
|
||||
L"Des bâtiments ont été endommagés.",
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.", // TODO.Translate
|
||||
L"Pendant l'attaque, %s et %s ont appelé des renforts.",
|
||||
L"Pendant l'attaque, %s a appelé des renforts.",
|
||||
L"Les témoins rapportent l'utilisation d'armes chimiques par les deux camps.",
|
||||
@@ -8339,6 +8340,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"Il y avait %d chars pour renforcer %s. %d d'entre eux ont été détruits dans des combats acharnés.",
|
||||
L"Les deux camps avaient des tireurs d'élite.",
|
||||
L"Des sources non vérifiées indiquent que %s tireurs d'élite ont été impliqués dans le combat."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8157,7 +8157,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8166,6 +8167,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8339,7 +8339,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8348,6 +8349,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8357,7 +8357,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8366,6 +8367,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8335,7 +8335,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8344,6 +8345,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
@@ -8347,7 +8347,8 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"and",
|
||||
L"an unknown location", // TODO.Translate
|
||||
|
||||
L"Buildings in the sector were damaged. %d civilians were killed and %d wounded.",
|
||||
L"Buildings in the sector were damaged.", // TODO.Translate
|
||||
L"In the fighting, buildings in the sector were damaged, and %d civilians were killed and %d wounded.",
|
||||
L"During the attack, %s and %s called reinforcements.",
|
||||
L"During the attack, %s called reinforcements.",
|
||||
L"Eyewitnesses report the use of chemical weapons from both sides.",
|
||||
@@ -8356,6 +8357,9 @@ STR16 szCampaignHistoryDetail[]=
|
||||
L"%d tanks were used by %s, %d of them were destroyed in the fierce fighting.",
|
||||
L"Both sides are said to have used snipers.",
|
||||
L"Unverified reports indicate %s snipers were involved in the firefight."
|
||||
L"This sector is of huge strategic importance, as it houses one of the handful of anti-air missile batteries the arulcan army posesses. Aerial photographs show extensive damage to the command center. This will leave the airspace above Arulco undefended for the time being.",
|
||||
L"The situation on the ground has gotten even more confusing, as it seems rebel infighting has reached a new level. We now have confirmation that rebel militia engaed in active combat with foreign mercenaries.",
|
||||
L"The royalists position seems more precarious than previously thought. Reports of a split surfaced, with amry personnel opening fire on each other.",
|
||||
};
|
||||
|
||||
STR16 szCampaignHistoryTimeString[]=
|
||||
|
||||
Reference in New Issue
Block a user