mirror of
https://github.com/1dot13/source.git
synced 2026-08-12 14:10:23 +02:00
New feature (by rftr): Arulco Rebel Command (ARC)
Improve you cities and overall campaign by choosing out of several upgrades Requires GameDir >= r2613 For more info, see https://thepit.ja-galaxy-forum.com/index.php?t=msg&th=24884&start=0& git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9153 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -76,6 +76,7 @@
|
||||
#include "ASD.h" // added by Flugente
|
||||
#include "Strategic AI.h"
|
||||
#include "MiniEvents.h"
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
#include <vector>
|
||||
#include <queue>
|
||||
@@ -6214,7 +6215,7 @@ void HandleTrainingInSector( INT16 sMapX, INT16 sMapY, INT8 bZ )
|
||||
// a normal training session costs gGameExternalOptions.iMilitiaTrainingCost * gGameExternalOptions.iRegularCostModifier
|
||||
// it promotes gGameExternalOptions.iTrainingSquadSize militia with gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular points each
|
||||
// thus a point costs gGameExternalOptions.iMilitiaTrainingCost * gGameExternalOptions.iRegularCostModifier / ( gGameExternalOptions.iTrainingSquadSize * gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular) points
|
||||
FLOAT costperpoint = (FLOAT)( gGameExternalOptions.iMilitiaTrainingCost * gGameExternalOptions.iRegularCostModifier / ( gGameExternalOptions.iTrainingSquadSize * gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular ) );
|
||||
FLOAT costperpoint = (FLOAT)( RebelCommand::GetMilitiaTrainingCostModifier() * gGameExternalOptions.iMilitiaTrainingCost * gGameExternalOptions.iRegularCostModifier / ( gGameExternalOptions.iTrainingSquadSize * gGameExternalOptions.usIndividualMilitia_PromotionPoints_To_Regular ) );
|
||||
|
||||
FLOAT totalcost = drillpoints * costperpoint;
|
||||
|
||||
@@ -9209,6 +9210,9 @@ INT16 GetTownTrainPtsForCharacter( SOLDIERTYPE *pTrainer, UINT16 *pusMaxPts )
|
||||
sTrainingBonus += gGameExternalOptions.ubRpcBonusToTrainMilitia;
|
||||
}
|
||||
|
||||
// apply training bonus from rebel command
|
||||
sTrainingBonus += RebelCommand::GetMilitiaTrainingSpeedBonus();
|
||||
|
||||
// HEADROCK HAM 3.5: Training bonus given by local facilities
|
||||
if (pTrainer->bSectorZ == 0)
|
||||
{
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "CampaignStats.h" // added by Flugente
|
||||
#include "DynamicDialogue.h" // added by Flugente
|
||||
#include "MilitiaIndividual.h" // added by Flugente
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "Reinforcement.h"
|
||||
@@ -2191,6 +2192,13 @@ void CreateAutoResolveInterface()
|
||||
ubRegMilitia = MilitiaInSectorOfRank( gpAR->ubSectorX, gpAR->ubSectorY, REGULAR_MILITIA );
|
||||
ubGreenMilitia = MilitiaInSectorOfRank( gpAR->ubSectorX, gpAR->ubSectorY, GREEN_MILITIA );
|
||||
|
||||
// see if we get any bonus militia from nearby towns
|
||||
UINT8 bonusGreenMilitia = 0, bonusRegularMilitia = 0, bonusEliteMilitia = 0;
|
||||
RebelCommand::GetBonusMilitia(gpAR->ubSectorX, gpAR->ubSectorY, bonusGreenMilitia, bonusRegularMilitia, bonusEliteMilitia, FALSE); // no need to create a group for autoresolve as we're just increasing local militia pop
|
||||
ubEliteMilitia += bonusEliteMilitia;
|
||||
ubRegMilitia += bonusRegularMilitia;
|
||||
ubGreenMilitia += bonusGreenMilitia;
|
||||
|
||||
// This block should be unnecessary. If the counts do not line up, there is a bug.
|
||||
#if 0
|
||||
while( ubEliteMilitia + ubRegMilitia + ubGreenMilitia < gpAR->ubCivs )
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
#include "PMC.h" // added by Flugente
|
||||
#include "ASD.h" // added by Flugente
|
||||
#include "MiniEvents.h"
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "Vehicles.h"
|
||||
@@ -821,6 +822,8 @@ fFirstTimeInMapScreen = TRUE;
|
||||
|
||||
InitMiniEvents();
|
||||
|
||||
RebelCommand::Init();
|
||||
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "Isometric Utils.h" // added by Flugente for NOWHERE
|
||||
#include "strategic.h" // added by Flugente
|
||||
#include "message.h" // added by Flugente for ScreenMsg(...)
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "Luaglobal.h"
|
||||
@@ -156,6 +157,8 @@ CHAR16 zString[128];
|
||||
|
||||
HourlyDrugUpdate();
|
||||
|
||||
RebelCommand::HourlyUpdate();
|
||||
|
||||
// WANNE: This check should avoid the resaving of a loaded auto-save game, when entering tactical
|
||||
BOOLEAN doAutoSave = TRUE;
|
||||
if (lastLoadedSaveGameDay == GetWorldDay() && lastLoadedSaveGameHour == GetWorldHour() )
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,146 @@
|
||||
#ifndef REBEL_COMMAND_H
|
||||
#define REBEL_COMMAND_H
|
||||
|
||||
#include "mapscreen.h"
|
||||
#include "Soldier Control.h"
|
||||
#include "Types.h"
|
||||
|
||||
#define REBEL_COMMAND_MAX_ACTIONS_PER_REGION 6
|
||||
|
||||
namespace RebelCommand
|
||||
{
|
||||
|
||||
enum RebelCommandDirectives
|
||||
{
|
||||
RCD_NONE = -1,
|
||||
RCD_GATHER_SUPPLIES = 0,
|
||||
RCD_SUPPORT_MILITIA,
|
||||
RCD_TRAIN_MILITIA,
|
||||
RCD_CREATE_PROPAGANDA,
|
||||
RCD_ELITE_MILITIA,
|
||||
RCD_HVT_STRIKES,
|
||||
RCD_SPOTTERS,
|
||||
RCD_RAID_MINES,
|
||||
|
||||
RCD_NUM_DIRECTIVES
|
||||
};
|
||||
|
||||
enum RebelCommandAdminActions
|
||||
{
|
||||
RCAA_NONE = -1,
|
||||
RCAA_SUPPLY_LINE = 0,
|
||||
RCAA_REBEL_RADIO,
|
||||
RCAA_SAFEHOUSES,
|
||||
RCAA_SUPPLY_DISRUPTION,
|
||||
RCAA_SCOUTS,
|
||||
RCAA_DEAD_DROPS,
|
||||
RCAA_SMUGGLERS,
|
||||
RCAA_WAREHOUSES,
|
||||
RCAA_TAXES,
|
||||
RCAA_ASSIST_CIVILIANS,
|
||||
RCAA_MERC_SUPPORT,
|
||||
RCAA_MINING_POLICY,
|
||||
|
||||
RCAA_NUM_ACTIONS
|
||||
};
|
||||
|
||||
enum RegionAdminStatus
|
||||
{
|
||||
RAS_NONE,
|
||||
RAS_ACTIVE,
|
||||
RAS_INACTIVE
|
||||
};
|
||||
|
||||
typedef struct Directive {
|
||||
std::vector<INT32> iCostToImprove;
|
||||
std::vector<FLOAT> fValue1;
|
||||
std::vector<FLOAT> fValue2;
|
||||
|
||||
INT32 GetCostToImprove(INT8 currentLevel) { return iCostToImprove[currentLevel]; }
|
||||
FLOAT GetValue1(INT8 currentLevel) { return fValue1[currentLevel]; }
|
||||
FLOAT GetValue2(INT8 currentLevel) { return fValue2[currentLevel]; }
|
||||
} Directive;
|
||||
|
||||
typedef struct AdminAction {
|
||||
FLOAT fValue1;
|
||||
FLOAT fValue2;
|
||||
FLOAT fValue3;
|
||||
} AdminAction;
|
||||
|
||||
typedef struct Info {
|
||||
std::vector<Directive> directives;
|
||||
std::vector<AdminAction> adminActions;
|
||||
} Info;
|
||||
|
||||
extern Info info;
|
||||
|
||||
typedef struct DirectiveSaveInfo {
|
||||
INT8 iLevel = 0;
|
||||
RebelCommandDirectives id = RCD_NONE;
|
||||
|
||||
BOOLEAN CanImprove() { return id != RCD_NONE && (size_t)iLevel < info.directives[id].iCostToImprove.size() && info.directives[id].GetCostToImprove(iLevel); }
|
||||
void Improve() { iLevel++; }
|
||||
INT32 GetCostToImprove() { return info.directives[id].GetCostToImprove(iLevel); }
|
||||
FLOAT GetValue1() { return info.directives[id].GetValue1(iLevel); }
|
||||
FLOAT GetValue2() { return info.directives[id].GetValue2(iLevel); }
|
||||
} DirectiveSaveInfo;
|
||||
|
||||
typedef struct RegionSaveInfo
|
||||
{
|
||||
RegionAdminStatus adminStatus = RAS_NONE;
|
||||
RebelCommandAdminActions actions[REBEL_COMMAND_MAX_ACTIONS_PER_REGION] = { RCAA_SUPPLY_LINE, RCAA_NONE, RCAA_NONE, RCAA_NONE, RCAA_NONE, RCAA_NONE, };
|
||||
UINT8 actionLevels[REBEL_COMMAND_MAX_ACTIONS_PER_REGION] = { 0, 0, 0, 0, 0, 0 };
|
||||
UINT8 ubMaxLoyalty = 50;
|
||||
|
||||
INT32 GetAdminDeployCost(INT16 numAdminTeams) { return 10 * numAdminTeams * numAdminTeams; };
|
||||
INT32 GetAdminReactivateCost(INT16 numAdminTeams) { return GetAdminDeployCost(numAdminTeams) / 4; };
|
||||
} RegionSaveInfo;
|
||||
|
||||
typedef struct SaveInfo
|
||||
{
|
||||
RegionSaveInfo regions[MAX_TOWNS];
|
||||
DirectiveSaveInfo directives[20];
|
||||
|
||||
INT32 iSupplies = 0;
|
||||
INT32 iActiveDirective = RCD_GATHER_SUPPLIES;
|
||||
INT32 iSelectedDirective = RCD_GATHER_SUPPLIES;
|
||||
INT8 iMilitiaStatsLevel = 0;
|
||||
|
||||
INT8 filler[20];
|
||||
} SaveInfo;
|
||||
|
||||
extern SaveInfo rebelCommandSaveInfo;
|
||||
|
||||
BOOLEAN EnterWebsite();
|
||||
void ExitWebsite();
|
||||
void RenderWebsite();
|
||||
void HandleWebsite();
|
||||
|
||||
void ApplyEnemyPenalties(SOLDIERTYPE* pSoldier);
|
||||
void ApplyMilitiaBonuses(SOLDIERTYPE* pMilitia);
|
||||
UINT8 GetApproximateEnemyLocationResolutionIndex();
|
||||
FLOAT GetAssignmentBonus(INT16 x, INT16 y);
|
||||
INT32 GetMiningPolicyBonus(INT16 townId);
|
||||
void GetBonusMilitia(INT16 x, INT16 y, UINT8& green, UINT8& regular, UINT8& elite, BOOLEAN createGroup);
|
||||
FLOAT GetLoyaltyGainModifier();
|
||||
UINT8 GetMaxTownLoyalty(INT8 townId);
|
||||
INT16 GetMilitiaTrainingSpeedBonus();
|
||||
FLOAT GetMilitiaTrainingCostModifier();
|
||||
FLOAT GetMilitiaUpkeepCostModifier();
|
||||
BOOLEAN NeutraliseRole(const SOLDIERTYPE* pSoldier);
|
||||
void RaidMines(INT32 &playerIncome, INT32 &enemyIncome);
|
||||
BOOLEAN ShowApproximateEnemyLocations();
|
||||
void ShowWebsiteAvailableMessage();
|
||||
|
||||
void DailyUpdate();
|
||||
void HourlyUpdate();
|
||||
void Init();
|
||||
BOOLEAN Load(HWFILE file);
|
||||
BOOLEAN Save(HWFILE file);
|
||||
|
||||
}
|
||||
|
||||
//BOOLEAN LoadRebelCommand( HWFILE file ) { return RebelCommand::Load( file ); }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -228,4 +228,5 @@
|
||||
#include "Debug Control.h"
|
||||
#include "expat.h"
|
||||
#include "MiniEvents.h"
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "Town Militia.h" // added by Flugente
|
||||
#include "Campaign.h" // added by Flugente
|
||||
#include "Strategic AI.h"
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "Luaglobal.h"
|
||||
@@ -741,6 +742,8 @@ void HandleNPCSystemEvent( UINT32 uiEvent )
|
||||
{
|
||||
EndQuest( QUEST_FOOD_ROUTE, 10, MAP_ROW_A );
|
||||
SetFactTrue( FACT_FOOD_QUEST_OVER );
|
||||
|
||||
RebelCommand::ShowWebsiteAvailableMessage();
|
||||
}
|
||||
break;
|
||||
case NPC_ACTION_DELAYED_MAKE_BRENDA_LEAVE:
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "history.h"
|
||||
#include "Facilities.h"
|
||||
#include "ASD.h" // added by Flugente
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "GameInitOptionsScreen.h"
|
||||
@@ -693,8 +694,7 @@ void HandleIncomeFromMines( void )
|
||||
INT32 iIncome = 0;
|
||||
INT32 iIncome_Enemy = 0; // Flugente: new AI gets money from mines
|
||||
|
||||
// HEADROCK HAM 3.6: Modifier from Facilities
|
||||
INT32 iFacilityModifier = 0;
|
||||
INT32 iModifier = 0;
|
||||
|
||||
// mine each mine, check if we own it and such
|
||||
for ( INT8 bCounter = 0; bCounter < MAX_NUMBER_OF_MINES; ++bCounter )
|
||||
@@ -702,10 +702,12 @@ void HandleIncomeFromMines( void )
|
||||
if ( PlayerControlsMine( bCounter ) )
|
||||
{
|
||||
// HEADROCK HAM 3.6: Add facility modifier as a percentage
|
||||
iFacilityModifier = 100 + MineIncomeModifierFromFacility( bCounter );
|
||||
// add rebel command bonus
|
||||
iModifier = 100 + MineIncomeModifierFromFacility( bCounter ) + RebelCommand::GetMiningPolicyBonus(gMineStatus[bCounter].bAssociatedTown);
|
||||
|
||||
// mine this mine
|
||||
iIncome += (MineAMine( bCounter ) * iFacilityModifier) / 100;
|
||||
iIncome += (MineAMine( bCounter ) * iModifier) / 100;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -718,6 +720,8 @@ void HandleIncomeFromMines( void )
|
||||
iIncome = (iIncome * gGameExternalOptions.usMineIncomePercentage) / 100;
|
||||
iIncome_Enemy = (iIncome_Enemy * gGameExternalOptions.usMineIncomePercentage) / 100;
|
||||
|
||||
RebelCommand::RaidMines(iIncome, iIncome_Enemy);
|
||||
|
||||
if( iIncome )
|
||||
{
|
||||
AddTransactionToPlayersBook( DEPOSIT_FROM_SILVER_MINE, 0, GetWorldTotalMin( ), iIncome );
|
||||
@@ -736,7 +740,7 @@ UINT32 PredictDailyIncomeFromAMine( INT8 bMineIndex, BOOLEAN fIncludeFacilities
|
||||
// (miner loyalty, % town controlled, monster infestation level, and current max removal rate may all in fact change)
|
||||
UINT32 uiAmtExtracted = 0;
|
||||
// HEADROCK HAM 3.6: Facilities can now modify income
|
||||
INT32 iFacilityModifier = 0;
|
||||
INT32 iModifier = 0;
|
||||
|
||||
if(PlayerControlsMine(bMineIndex))
|
||||
{
|
||||
@@ -752,8 +756,9 @@ UINT32 PredictDailyIncomeFromAMine( INT8 bMineIndex, BOOLEAN fIncludeFacilities
|
||||
if (bMineIndex && fIncludeFacilities)
|
||||
{
|
||||
// HEADROCK HAM 3.6: Facility modifier applied as a percentage
|
||||
iFacilityModifier = 100 + MineIncomeModifierFromFacility( bMineIndex );
|
||||
uiAmtExtracted = (uiAmtExtracted * iFacilityModifier) / 100;
|
||||
// add rebel command bonus
|
||||
iModifier = 100 + MineIncomeModifierFromFacility( bMineIndex ) + RebelCommand::GetMiningPolicyBonus(gMineStatus[bMineIndex].bAssociatedTown);
|
||||
uiAmtExtracted = (uiAmtExtracted * iModifier) / 100;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "Facilities.h"
|
||||
#include "CampaignStats.h" // added by Flugente
|
||||
#include "DynamicDialogue.h" // added by Flugente
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
#include "Luaglobal.h"
|
||||
@@ -293,7 +294,6 @@ void IncrementTownLoyalty( INT8 bTownId, UINT32 uiLoyaltyIncrease )
|
||||
UINT32 uiRemainingIncrement;
|
||||
INT16 sThisIncrement;
|
||||
|
||||
|
||||
AssertGE (bTownId, BLANK_SECTOR);
|
||||
AssertLT (bTownId, NUM_TOWNS);
|
||||
|
||||
@@ -303,6 +303,9 @@ void IncrementTownLoyalty( INT8 bTownId, UINT32 uiLoyaltyIncrease )
|
||||
return;
|
||||
}
|
||||
|
||||
// if rebel command is enabled, apply gain modifier
|
||||
uiLoyaltyIncrease *= RebelCommand::GetLoyaltyGainModifier();
|
||||
|
||||
// modify loyalty change by town's individual attitude toward rebelling (20 is typical)
|
||||
uiLoyaltyIncrease *= (5 * gubTownRebelSentiment[ bTownId ]);
|
||||
uiLoyaltyIncrease /= 100;
|
||||
@@ -394,6 +397,9 @@ void UpdateTownLoyaltyRating( INT8 bTownId )
|
||||
ubMaxLoyalty = MAX_LOYALTY_VALUE;
|
||||
}
|
||||
|
||||
// if playing with rebel command, limit max loyalty
|
||||
ubMaxLoyalty = min(ubMaxLoyalty, RebelCommand::GetMaxTownLoyalty(bTownId));
|
||||
|
||||
// check if we'd be going over the max
|
||||
if( (gTownLoyalty[ bTownId ].ubRating + sRatingChange ) >= ubMaxLoyalty )
|
||||
{
|
||||
|
||||
@@ -183,6 +183,9 @@ INT32 GetNumberOfWholeTownsUnderControl( void );
|
||||
// is all the sectors of this town under control by the player
|
||||
INT32 IsTownUnderCompleteControlByPlayer( INT8 bTownId );
|
||||
|
||||
// are all town sectors under control by the enemy
|
||||
INT32 IsTownUnderCompleteControlByEnemy(INT8 bTownId);
|
||||
|
||||
// used when monsters attack a town sector without going through tactical and they win
|
||||
void AdjustLoyaltyForCivsEatenByMonsters( INT16 sSectorX, INT16 sSectorY, UINT8 ubHowMany, BOOLEAN aBandits );
|
||||
|
||||
|
||||
@@ -474,6 +474,10 @@
|
||||
RelativePath=".\QuestText.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Rebel Command.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Reinforcement.h"
|
||||
>
|
||||
@@ -688,6 +692,10 @@
|
||||
RelativePath=".\Quests.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Rebel Command.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Reinforcement.cpp"
|
||||
>
|
||||
|
||||
@@ -474,6 +474,10 @@
|
||||
RelativePath="QuestText.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Rebel Command.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Reinforcement.h"
|
||||
>
|
||||
@@ -686,6 +690,10 @@
|
||||
RelativePath="Quests.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Rebel Command.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Reinforcement.cpp"
|
||||
>
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<ClInclude Include="Quest Debug System.h" />
|
||||
<ClInclude Include="Quests.h" />
|
||||
<ClInclude Include="QuestText.h" />
|
||||
<ClInclude Include="Rebel Command.h" />
|
||||
<ClInclude Include="Reinforcement.h" />
|
||||
<ClInclude Include="Scheduling.h" />
|
||||
<ClInclude Include="Strategic AI.h" />
|
||||
@@ -111,6 +112,7 @@
|
||||
<ClCompile Include="Queen Command.cpp" />
|
||||
<ClCompile Include="Quest Debug System.cpp" />
|
||||
<ClCompile Include="Quests.cpp" />
|
||||
<ClCompile Include="Rebel Command.cpp" />
|
||||
<ClCompile Include="Reinforcement.cpp" />
|
||||
<ClCompile Include="Scheduling.cpp" />
|
||||
<ClCompile Include="Strategic AI.cpp" />
|
||||
|
||||
@@ -105,7 +105,10 @@
|
||||
<ClInclude Include="QuestText.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Reinforcement.h">
|
||||
<ClInclude Include="Rebel Command.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Reinforcement.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Scheduling.h">
|
||||
@@ -263,7 +266,10 @@
|
||||
<ClCompile Include="Quests.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Reinforcement.cpp">
|
||||
<ClCompile Include="Rebel Command.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Reinforcement.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Scheduling.cpp">
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
<ClInclude Include="Quest Debug System.h" />
|
||||
<ClInclude Include="Quests.h" />
|
||||
<ClInclude Include="QuestText.h" />
|
||||
<ClInclude Include="Rebel Command.h" />
|
||||
<ClInclude Include="Reinforcement.h" />
|
||||
<ClInclude Include="Scheduling.h" />
|
||||
<ClInclude Include="Strategic AI.h" />
|
||||
@@ -111,6 +112,7 @@
|
||||
<ClCompile Include="Queen Command.cpp" />
|
||||
<ClCompile Include="Quest Debug System.cpp" />
|
||||
<ClCompile Include="Quests.cpp" />
|
||||
<ClCompile Include="Rebel Command.cpp" />
|
||||
<ClCompile Include="Reinforcement.cpp" />
|
||||
<ClCompile Include="Scheduling.cpp" />
|
||||
<ClCompile Include="Strategic AI.cpp" />
|
||||
|
||||
@@ -99,7 +99,10 @@
|
||||
<ClInclude Include="QuestText.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Reinforcement.h">
|
||||
<ClInclude Include="Rebel Command.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Reinforcement.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Scheduling.h">
|
||||
@@ -257,7 +260,10 @@
|
||||
<ClCompile Include="Quests.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Reinforcement.cpp">
|
||||
<ClCompile Include="Rebel Command.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Reinforcement.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Scheduling.cpp">
|
||||
|
||||
@@ -50,13 +50,14 @@
|
||||
<ClInclude Include="Merc Contract.h" />
|
||||
<ClInclude Include="MilitiaIndividual.h" />
|
||||
<ClInclude Include="MilitiaSquads.h" />
|
||||
<ClInclude Include="MiniEvents.h" />
|
||||
<ClInclude Include="MiniEvents.h" />
|
||||
<ClInclude Include="Player Command.h" />
|
||||
<ClInclude Include="PreBattle Interface.h" />
|
||||
<ClInclude Include="Queen Command.h" />
|
||||
<ClInclude Include="Quest Debug System.h" />
|
||||
<ClInclude Include="Quests.h" />
|
||||
<ClInclude Include="QuestText.h" />
|
||||
<ClInclude Include="Rebel Command.h" />
|
||||
<ClInclude Include="Reinforcement.h" />
|
||||
<ClInclude Include="Scheduling.h" />
|
||||
<ClInclude Include="Strategic AI.h" />
|
||||
@@ -105,12 +106,13 @@
|
||||
<ClCompile Include="Merc Contract.cpp" />
|
||||
<ClCompile Include="MilitiaIndividual.cpp" />
|
||||
<ClCompile Include="MilitiaSquads.cpp" />
|
||||
<ClCompile Include="MiniEvents.cpp" />
|
||||
<ClCompile Include="MiniEvents.cpp" />
|
||||
<ClCompile Include="Player Command.cpp" />
|
||||
<ClCompile Include="PreBattle Interface.cpp" />
|
||||
<ClCompile Include="Queen Command.cpp" />
|
||||
<ClCompile Include="Quest Debug System.cpp" />
|
||||
<ClCompile Include="Quests.cpp" />
|
||||
<ClCompile Include="Rebel Command.cpp" />
|
||||
<ClCompile Include="Reinforcement.cpp" />
|
||||
<ClCompile Include="Scheduling.cpp" />
|
||||
<ClCompile Include="Strategic AI.cpp" />
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
<ClInclude Include="Quest Debug System.h" />
|
||||
<ClInclude Include="Quests.h" />
|
||||
<ClInclude Include="QuestText.h" />
|
||||
<ClInclude Include="Rebel Command.h" />
|
||||
<ClInclude Include="Reinforcement.h" />
|
||||
<ClInclude Include="Scheduling.h" />
|
||||
<ClInclude Include="Strategic AI.h" />
|
||||
@@ -131,6 +132,7 @@
|
||||
<ClCompile Include="Queen Command.cpp" />
|
||||
<ClCompile Include="Quest Debug System.cpp" />
|
||||
<ClCompile Include="Quests.cpp" />
|
||||
<ClCompile Include="Rebel Command.cpp" />
|
||||
<ClCompile Include="Reinforcement.cpp" />
|
||||
<ClCompile Include="Scheduling.cpp" />
|
||||
<ClCompile Include="Strategic AI.cpp" />
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "MilitiaIndividual.h" // added by Flugente
|
||||
#include "Campaign.h" // added by Flugente
|
||||
#include "message.h" // added by Flugente
|
||||
#include "Rebel Command.h"
|
||||
#endif
|
||||
|
||||
// HEADROCK HAM 3: include these files so that a militia trainer's Effective Leadership can be determined. Used
|
||||
@@ -832,7 +833,7 @@ BOOLEAN ServeNextFriendlySectorInTown( INT16 *sNeighbourX, INT16 *sNeighbourY )
|
||||
|
||||
void HandleInterfaceMessageForCostOfTrainingMilitia( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost;
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost * RebelCommand::GetMilitiaTrainingCostModifier();
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Militia2");
|
||||
|
||||
CHAR16 sString[ 128 ];
|
||||
@@ -937,7 +938,7 @@ void HandleInterfaceMessageForContinuingTrainingMilitia( SOLDIERTYPE *pSoldier )
|
||||
INT32 iCounter = 0;
|
||||
|
||||
INT32 iMinLoyaltyToTrain = gGameExternalOptions.iMinLoyaltyToTrain;
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost;
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost * RebelCommand::GetMilitiaTrainingCostModifier();
|
||||
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Militia3");
|
||||
|
||||
@@ -1642,7 +1643,7 @@ void ContinueTrainingInThisSector( UINT8 ubMilitiaType )
|
||||
|
||||
void PayForTrainingInSector( UINT8 ubSector )
|
||||
{
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost;
|
||||
INT32 iMilitiaTrainingCost = gGameExternalOptions.iMilitiaTrainingCost * RebelCommand::GetMilitiaTrainingCostModifier();
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Militia6");
|
||||
|
||||
INT32 CostMultiplyer = 0;
|
||||
@@ -2083,7 +2084,7 @@ UINT32 CalcMilitiaUpkeep( void )
|
||||
}
|
||||
}
|
||||
|
||||
return uiTotalPayment;
|
||||
return uiTotalPayment * RebelCommand::GetMilitiaUpkeepCostModifier();
|
||||
}
|
||||
|
||||
// Flugente: our militia volunteer pool is limited
|
||||
|
||||
Reference in New Issue
Block a user