Skip to content

Commit e54b44d

Browse files
committed
addition of loads of scripts, can't count em anymore
1 parent f43a6b2 commit e54b44d

17 files changed

Lines changed: 3487 additions & 74 deletions

File tree

Generals/Code/GameEngine/Include/GameLogic/AIPlayer.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,14 @@ class AIPlayer : public MemoryPoolObject,
286286
ObjectID m_attackedSupplyCenter;
287287

288288
ObjectID m_curWarehouseID;
289+
290+
//-------------------------------------------------------------------------------------------------
291+
//------------------------------- OUR SCRIPT CONDITION ADDITIONS --------------------------------
292+
//-------------------------------------------------------------------------------------------------
293+
public:
294+
void buildUnnamedUnit(const AsciiString& teamPrototypeName, Bool priorityBuild = false);
295+
296+
//-------------------------------------------------------------------------------------------------
297+
//------------------------------ OUR SCRIPT CONDITION ADDITIONS END -------------------------------
298+
//-------------------------------------------------------------------------------------------------
289299
};

Generals/Code/Tools/WorldBuilder/include/EditParameter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class EditParameter : public CDialog
9494
static AsciiString getCreatedUnitTemplateName(AsciiString unitName);
9595

9696
void loadCounters(CComboBox *pCombo);
97+
void loadKDRatios(CComboBox* pCombo);
9798
void loadConditionParameter(Script *pScr, Parameter::ParameterType type, CComboBox *pCombo);
9899
void loadActionParameter(Script *pScr, Parameter::ParameterType type, CComboBox *pCombo);
99100
void loadFlags(CComboBox *pCombo);

GeneralsMD/Code/GameEngine/Include/Common/Player.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,16 @@ class Player : public Snapshot
443443

444444
virtual Bool computeSuperweaponTarget(const SpecialPowerTemplate *power, Coord3D *pos, Int playerNdx, Real weaponRadius); ///< Calculates best pos for weapon given radius.
445445

446+
//-------------------------------------------------------------------------------------------------
447+
//----------------------------------- @CLP_AI PLAYER ADDITIONS ------------------------------------
448+
//-------------------------------------------------------------------------------------------------
449+
450+
virtual Bool computeSuperweaponTargetEconomy(const SpecialPowerTemplate* power, Coord3D* retPos, Int playerNdx, Real weaponRadius);
451+
452+
//-------------------------------------------------------------------------------------------------
453+
//--------------------------------- @CLP_AI PLAYER ADDITIONS END ----------------------------------
454+
//-------------------------------------------------------------------------------------------------
455+
446456
/// Get the enemy an ai player is currently focused on. NOTE - Can be nullptr.
447457
Player *getCurrentEnemy( void );
448458

@@ -828,4 +838,7 @@ class Player : public Snapshot
828838

829839
Bool m_isPlayerDead;
830840
Bool m_logicalRetaliationModeEnabled;
841+
842+
public:
843+
AIPlayer* getAIPlayer() { return m_ai; }
831844
};

GeneralsMD/Code/GameEngine/Include/GameLogic/AIPlayer.h

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@ class AIPlayer : public MemoryPoolObject,
155155

156156
virtual Bool computeSuperweaponTarget(const SpecialPowerTemplate *power, Coord3D *pos, Int playerNdx, Real weaponRadius); ///< Calculates best pos for weapon given radius.
157157

158+
//-------------------------------------------------------------------------------------------------
159+
//---------------------------------- @CLP_AI AIPLAYER ADDITIONS -----------------------------------
160+
//-------------------------------------------------------------------------------------------------
161+
162+
virtual Bool computeSuperweaponTargetEconomy(const SpecialPowerTemplate* power, Coord3D* pos, Int playerNdx, Real weaponRadius);
163+
164+
//-------------------------------------------------------------------------------------------------
165+
//-------------------------------- @CLP_AI AIPLAYER ADDITIONS END ---------------------------------
166+
//-------------------------------------------------------------------------------------------------
167+
168+
158169
public: // AIPlayer interface, may be overridden by AISkirmishPlayer. jba.
159170

160171
virtual void update(); ///< simulates the behavior of a player
@@ -209,6 +220,7 @@ class AIPlayer : public MemoryPoolObject,
209220

210221
/// Calculates the closest construction zone location based on a template.
211222
Bool calcClosestConstructionZoneLocation( const ThingTemplate *constructTemplate, Coord3D *location );
223+
virtual Bool startTraining(WorkOrder* order, Bool busyOK, AsciiString teamName); ///< find a production building that can handle the order, and start building
212224

213225
protected:
214226

@@ -226,11 +238,21 @@ class AIPlayer : public MemoryPoolObject,
226238
virtual void queueDozer(void);
227239
virtual Bool selectTeamToBuild( void ); ///< determine the next team to build
228240
virtual Bool selectTeamToReinforce( Int minPriority ); ///< determine the next team to reinforce
229-
virtual Bool startTraining( WorkOrder *order, Bool busyOK, AsciiString teamName); ///< find a production building that can handle the order, and start building
230241
virtual Bool isAGoodIdeaToBuildTeam( TeamPrototype *proto ); ///< return true if team should be built
231242
virtual void processBaseBuilding( void ); ///< do base-building behaviors
232243
virtual void processTeamBuilding( void ); ///< do team-building behaviors
233244
static Int getPlayerSuperweaponValue( Coord3D *center, Int playerNdx, Real radius, Bool includeMilitaryUnits = TRUE );
245+
246+
//-------------------------------------------------------------------------------------------------
247+
//---------------------------------- @CLP_AI AIPLAYER ADDITIONS -----------------------------------
248+
//-------------------------------------------------------------------------------------------------
249+
250+
static Int getPlayerSuperweaponValueEconomy(Coord3D* center, Int playerNdx, Real radius, Bool includeMilitaryUnits = TRUE);
251+
252+
//-------------------------------------------------------------------------------------------------
253+
//-------------------------------- @CLP_AI AIPLAYER ADDITIONS END ---------------------------------
254+
//-------------------------------------------------------------------------------------------------
255+
234256
// End of aiplayer interface.
235257

236258
protected:

GeneralsMD/Code/GameEngine/Include/GameLogic/ScriptActions.h

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,5 +386,48 @@ class ScriptActions : public ScriptActionsInterface
386386
void deleteAllUnmanned();
387387
void doNamedSetTrainHeld( const AsciiString &locoName, const Bool set );
388388
void doEnableObjectSound(const AsciiString& objectName, Bool enable);
389-
389+
//-------------------------------------------------------------------------------------------------
390+
//------------------------------- @CLP_AI SCRIPT ACTION ADDITIONS --------------------------------
391+
//-------------------------------------------------------------------------------------------------
392+
393+
void doPlayerSurrender(const AsciiString& playerName);
394+
void doPlayerBuildUnit(const AsciiString& unitName, const AsciiString& playerName);
395+
/*TODO*/void doBuildObjectNearestTeamRotated(const AsciiString& playerName, const AsciiString& buildingType, const AsciiString& teamName, Real angle);
396+
397+
void doTeamMoveRelative(const AsciiString& teamName, Coord3D* coords);
398+
void doUnitMoveRelative(const AsciiString& unitName, Coord3D* coords);
399+
void doTeamMoveNearestBelongingToPlayer(const AsciiString& teamName, const AsciiString& objectType, const AsciiString& playerName);
400+
void doUnitMoveNearestBelongingToPlayer(const AsciiString& unitName, const AsciiString& objectType, const AsciiString& playerName);
401+
void doTeamMoveAwayFromRelationType(const AsciiString& teamName, Real feet, Int relationType, const AsciiString& objectType);
402+
void doUnitMoveAwayFromRelationType(const AsciiString& unitName, Real feet, Int relationType, const AsciiString& objectType);
403+
void doTeamMeet(const AsciiString& teamName);
404+
void doTeamMeetKindOf(const AsciiString& teamName, Int kindOf);
405+
void doTeamMeetType(const AsciiString& teamName, const AsciiString& objectType);
406+
407+
void doTeamUseCommandButtonAbilityOnType(const AsciiString& teamName, const AsciiString& ability, const AsciiString& objectType);
408+
/*TODO*/void doTeamUseCommandButtonAbilityOnTeam(const AsciiString& teamName, const AsciiString& ability, const AsciiString& targetTeam);
409+
410+
void doPlayerMergeKindOf(const AsciiString& playerName, Int kindOf, const AsciiString& teamName);
411+
void doTeamMergeKindOf(const AsciiString& srcName, Int kindOf, const AsciiString& destName);
412+
void doPlayerMergeType(const AsciiString& playerName, const AsciiString& objectType, const AsciiString& teamName);
413+
void doTeamMergeType(const AsciiString& srcName, const AsciiString& objectType, const AsciiString& destName);
414+
void doPlayerDisbandKindOf(const AsciiString& playerName, Int kindOf);
415+
void doTeamDisbandKindOf(const AsciiString& teamName, Int kindOf);
416+
void doPlayerDisbandType(const AsciiString& playerName, const AsciiString& objectType);
417+
void doTeamDisbandType(const AsciiString& teamName, const AsciiString& objectType);
418+
void doPlayerTeamlessMerge(const AsciiString& playerName, const AsciiString& teamName);
419+
void doPlayerTeamlessMergeKindOf(const AsciiString& playerName, Int kindOf, const AsciiString& teamName);
420+
void doPlayerTeamlessMergeType(const AsciiString& playerName, const AsciiString& objectType, const AsciiString& teamName);
421+
422+
void doPlayerGarrisonMaxEach(const AsciiString& playerName, Int maxAmount);
423+
void doTeamGarrisonMaxEach(const AsciiString& teamName, Int maxAmount);
424+
void doPlayerGarrisonEqually(const AsciiString& playerName, Int amount);
425+
void doTeamGarrisonEqually(const AsciiString& teamName, Int amount);
426+
427+
void doSkirmishFireSpecialPowerAtMostCostEconomy(const AsciiString& player, const AsciiString& specialPower);
428+
429+
430+
//-------------------------------------------------------------------------------------------------
431+
//----------------------------- @CLP_AI SCRIPT ACTION ADDITIONS END -------------------------------
432+
//-------------------------------------------------------------------------------------------------
390433
};

GeneralsMD/Code/GameEngine/Include/GameLogic/ScriptConditions.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,6 @@ class ScriptConditions : public ScriptConditionsInterface
178178
Bool evaluateSkirmishSupplySourceSafe(Condition *pCondition, Parameter *pSkirmishPlayerParm, Parameter *pMinAmountOfSupplies );
179179
Bool evaluateSkirmishSupplySourceAttacked(Parameter *pSkirmishPlayerParm );
180180
Bool evaluateSkirmishStartPosition(Parameter *pSkirmishPlayerParm, Parameter *startNdx );
181-
<<<<<<< HEAD
182-
=======
183-
184-
185-
>>>>>>> parent of 9e6172a12 (Addition of Bool ScriptConditions::evaluatePlayerRelation)
186181
// Stubs
187182
Bool evaluateMissionAttempts(Parameter* pPlayerParm, Parameter* pComparisonParm, Parameter* pAttemptsParm);
188183

@@ -194,7 +189,11 @@ class ScriptConditions : public ScriptConditionsInterface
194189
Bool evaluateEmptySpot(Parameter* pStartNdx);
195190
Bool evaluateNeighbouringSpot(Parameter* pPlayerParm, Parameter* pStartNdx);
196191
Bool evaluateNeighbouringSpotsEmpty(Parameter* pPlayerParm, Parameter* pComparisonParm, Int pCount);
197-
Bool evaluateClosestEnemyUnit(Parameter* pPlayerParm, Parameter* pComparisonParm, Int pDistanceParm);
192+
Bool evaluateStartingCash(Parameter* pComparisonParm, Int pAmount);
193+
Bool evaluateClosestRelationUnitToMySpawn(Int relationType, Parameter* pPlayerParm, Parameter* pComparisonParm, Int pDist);
194+
Bool evaluateNotHunted(Parameter* pPlayerParm);
195+
Bool evaluatePlayerLostTypeInArea(Parameter* pPlayerParm, Parameter* pObjectType, Parameter* pArea);
196+
Bool evaluateTeamSightedRelationType(Parameter* pTeam, Int relationType, Parameter* pObjectType);
198197

199198
//-------------------------------------------------------------------------------------------------
200199
//------------------------------ OUR SCRIPT CONDITION ADDITIONS END -------------------------------

GeneralsMD/Code/GameEngine/Include/GameLogic/ScriptEngine.h

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@ struct TFlag
9292
AsciiString name;
9393
};
9494

95+
struct TKDRatio
96+
{
97+
Real valueKills;
98+
Real valueDeaths;
99+
AsciiString name;
100+
};
101+
95102
typedef std::list<AsciiString> ListAsciiString;
96103
typedef std::list<AsciiString>::iterator ListAsciiStringIt;
97104

@@ -215,7 +222,7 @@ class ScriptEngine : public SubsystemInterface,
215222
{
216223

217224
public:
218-
enum {MAX_COUNTERS=256, MAX_FLAGS=256, MAX_ATTACK_PRIORITIES=256};
225+
enum {MAX_COUNTERS=1024, MAX_FLAGS=1024, MAX_ATTACK_PRIORITIES=1024, MAX_KD_RATIOS=512};
219226
enum TFade {FADE_NONE, FADE_SUBTRACT, FADE_ADD, FADE_SATURATE, FADE_MULTIPLY};
220227
ScriptEngine();
221228
virtual ~ScriptEngine();
@@ -370,6 +377,7 @@ class ScriptEngine : public SubsystemInterface,
370377

371378
Int allocateCounter( const AsciiString& name);
372379
Int allocateFlag( const AsciiString& name);
380+
373381
void executeScripts( Script *pScriptHead );
374382
void executeScript( Script *pScript );
375383
Script *findScript(const AsciiString& name);
@@ -419,6 +427,23 @@ class ScriptEngine : public SubsystemInterface,
419427
Bool hasUnitCompletedSequentialScript( Object *object, const AsciiString& sequentialScriptName );
420428
Bool hasTeamCompletedSequentialScript( Team *team, const AsciiString& sequentialScriptName );
421429

430+
//-------------------------------------------------------------------------------------------------
431+
//--------------------------------- @CLP_AI SCRIPT UI ADDITIONS -----------------------------------
432+
//-------------------------------------------------------------------------------------------------
433+
434+
void setCounterRandom(ScriptAction* pAction, Bool random);
435+
void setKDRatio(ScriptAction* pAction);
436+
Real allocateKDRatio(const AsciiString& name);
437+
const TKDRatio* getKDRatio(const AsciiString& counterName);
438+
Bool evaluateKDRatio(Condition* pCondition);
439+
void addKDRatioKills(ScriptAction* pAction);
440+
void addKDRatioDeaths(ScriptAction* pAction);
441+
void subKDRatioKills(ScriptAction* pAction);
442+
void subKDRatioDeaths(ScriptAction* pAction);
443+
444+
//-------------------------------------------------------------------------------------------------
445+
//------------------------------- @CLP_AI SCRIPT UI ADDITIONS END ---------------------------------
446+
//-------------------------------------------------------------------------------------------------
422447

423448

424449

@@ -482,6 +507,14 @@ class ScriptEngine : public SubsystemInterface,
482507
Bool m_ChooseVictimAlwaysUsesNormal;
483508

484509
Bool m_shownMPLocalDefeatWindow;
510+
//-------------------------------------------------------------------------------------------------
511+
//--------------------------------- @CLP_AI SCRIPT UI ADDITIONS -----------------------------------
512+
//-------------------------------------------------------------------------------------------------
513+
Int m_numKDRatios;
514+
TKDRatio m_KDRatios[MAX_KD_RATIOS];
515+
//-------------------------------------------------------------------------------------------------
516+
//------------------------------- @CLP_AI SCRIPT UI ADDITIONS END ---------------------------------
517+
//-------------------------------------------------------------------------------------------------
485518

486519
#ifdef SPECIAL_SCRIPT_PROFILING
487520
#ifdef DEBUG_LOGGING

0 commit comments

Comments
 (0)