New Enum Definitions - Andreas-W/GeneralsGameCode_Modding GitHub Wiki

New Enum Values

Weapon Slots

New weapon slots were added for 8 slots in total In addition to PRIMARY, SECONDARY, TERTIARY, you can use

  • WEAPON_FOUR
  • WEAPON_FIVE
  • WEAPON_SIX
  • WEAPON_SEVEN
  • WEAPON_EIGHT

For conditionstates (e.g. FIRING_A) you can use the letters D-H for the new types.

For Stealth forbidden conditions, you can use "FIRING_WEAPON_FOUR", etc.

For synced weapons (AutoChooseSources) you can use "SYNC_TO_WEAPON_FOUR", etc.

DamageTypes

Generic DamageTypes

(no special logic attached, can be used for any weapon)

  • SONIC
  • ACID
  • JET_BOMB
  • ANTI_TANK_GUN
  • ANTI_TANK_MISSILE
  • ANTI_AIR_GUN
  • ANTI_AIR_MISSILE
  • ARTILLERY
  • SEISMIC
  • RAD_BEAM
  • TESLA

Functional DamageTypes

  • CHRONO_GUN - Disables units and removes them after a health treshold is reached. Uses parameters from GameData. TODO: detailed tutorial

DeathTypes

  • CHRONO

KindOfs

Functional KindOfs

These kindofs have some hardcoded functions attached to them and should not be used for general classification.

  • TELEPORTER - Used with TeleportAIUpdate module. Required for pathfinding tweaks.

Generic KindOfs

New generic kindofs were added. These do not serve any internal purposes beyond classification. You can use them in various combinations for Required or Forbidden kindofs in various modules:

  • VTOL
  • LARGE_AIRCRAFT
  • MEDIUM_AIRCRAFT
  • SMALL_AIRCRAFT
  • ARTILLERY
  • HEAVY_ARTILLERY
  • ANTI_AIR
  • SCOUT
  • COMMANDO
  • HEAVY_INFANTRY
  • SUPERHEAVY_VEHICLE
  • EXTRA1
  • EXTRA2
  • EXTRA3
  • EXTRA4
  • EXTRA5
  • EXTRA6
  • EXTRA7
  • EXTRA8
  • EXTRA9
  • EXTRA10
  • EXTRA11
  • EXTRA12
  • EXTRA13
  • EXTRA14
  • EXTRA15
  • EXTRA16

Locomotor Sets

  • LOCOMOTORSET_VTOL - This is used for VTOL aircraft for takeoff and landing. This should be a HOVER (=helicopter) locomotor, so a jet with WINGS locomotor can properly land and take off.

ArmorSetFlags

Added new ArmorSetFlags:

  • PLAYER_UPGRADE2
  • PLAYER_UPGRADE3
  • PLAYER_UPGRADE4

WeaponSetFlags

Added new WeaponSetFlags that can be manually used for upgrades:

  • PLAYER_UPGRADE2
  • PLAYER_UPGRADE3
  • PLAYER_UPGRADE4 (Note: There will be more in the future)

Added new WeaponSetFlags for specific conditions:

  • GARRISONED - If a unit has a weaponset with this flag, it will be chosen when the unit is garrisoned inside a structure
  • CONTAINED - If a unit has a weaponset with this flag, it will be chosen when the unit is contained inside a transport

ConditionStates

For each new WeaponSetFlag there is a corresponding ConditionState

  • WEAPONSET_PLAYER_UPGRADE2
  • WEAPONSET_PLAYER_UPGRADE3
  • WEAPONSET_PLAYER_UPGRADE4

Conditionstates that are used for VTOL aircraft (i.e. JetAIUpdate with NeedsRunway = No)

  • TAKEOFF
  • LANDING

Conditionstate used for TeleporterAIUpdate

  • TELEPORT_RECOVER

WeaponBonus types

Added new WeaponBonus types for the following conditions:

  • CONTAINED - this bonus is applied to passengers in TransportContain (similar to GARRISONED)

Bonus values can be defined in GameData.ini (no bonus by default). Example:

WeaponBonus = CONTAINED RANGE 125%

New Enum Types

TintStatus Types

TintStatus is used to define color tint effects for various game mechanics (e.g. Frenzy). Most entries are unused by default.

The colors for each type can be defined in in GameData.ini. The TintStatus types that are used in vanilla ZH have their default values hardcoded, but they can be overriden in GameData.ini.

Values:

  • DISABLED - Used for Disabled units
  • IRRADIATED
  • POISONED
  • GAINING_SUBDUAL_DAMAGE - Used for units being disabled
  • FRENZY - Used for Frenzy
  • SHIELDED
  • DEMORALIZED
  • BOOST
  • EXTRA1
  • EXTRA2
  • EXTRA3
  • EXTRA4
  • EXTRA5
  • EXTRA6
  • EXTRA7
  • EXTRA8