Spore ModAPI  2.4.0
API for creating C++ mods for Spore
Namespaces | Classes | Typedefs | Enumerations | Functions
Simulator Namespace Reference

Namespaces

 Cell
 
 ScenarioInputStrategy
 
 SpaceInputStrategy
 
 SubSystem
 
 WASDInputStrategy
 

Classes

class  cAbductToolStrategy
 
class  cAbilityState
 
class  cArtilleryWeaponStrategy
 
class  cBehaviorAgent
 
class  cBehaviorBase
 
class  cBehaviorEntry
 
class  cBehaviorList
 
class  cBuilding
 
class  cBuildingScenario
 
class  cCelestialBody
 
class  cCity
 
class  cCityTerritory
 
class  cCityWalls
 
class  cCivilization
 
class  cCombatant
 Any object that has hit points and can combat other units. More...
 
class  cCommunity
 The following attributes are saved: More...
 
class  cConversation
 
class  cCreatureAbility
 
class  cCreatureAnimal
 
class  cCreatureBase
 
class  cCreatureItem
 
class  cCropCirclesToolStrategy
 
class  cCultureSet
 
class  cDeepSpaceProjectileToolStrategy
 
class  cDefaultAoEArea
 
class  cDefaultAoETool
 
class  cDefaultBeamProjectile
 
class  cDefaultBeamTool
 
class  cDefaultProjectileWeapon
 
class  cDragInputProjectileToolStrategy
 
class  cDropCargoToolStrategy
 
class  cEllipticalOrbit
 
class  cEmpire
 
class  cEnergyRepairToolStrategy
 
class  cGameBehaviorManager
 
class  cGameBundleContainer
 
class  cGameData
 
class  cGameDataUFO
 
class  cGameInputManager
 
class  cGameModeManager
 
class  cGameNounManager
 
class  cGameTerrainCursor
 
class  cGameViewManager
 
class  cGenesisDeviceToolStrategy
 
class  cGetOutOfUFOToolStrategy
 
class  cGlobalMindEraseToolStrategy
 
class  cGonzagoSimulator
 
class  cGonzagoTimer
 A class for measuring time inside Simulator modes. This is the equivalent to the Clock class. More...
 
class  cIdentityColorable
 A Simulator class inherited by all those classes that can have an identity color, such as empires, tribes, etc. More...
 
class  cInteractableObject
 
class  cInteractiveOrnament
 
struct  cLocomotionRequest
 
class  cLocomotiveObject
 
class  cLocomotiveObject_superclass
 
class  cMindEraseToolStrategy
 
class  cNameableEntity
 
class  cOrnament
 
class  cOrnamentBase
 
class  cPlaceableStructure
 A structure that can be placed into a community slot, like buildings, turrets, ornaments and tribe tools. More...
 
class  cPlaceColonyToolStrategy
 
class  cPlaceObjectToolStrategy
 
class  cPlanet
 
class  cPlanetModel
 
class  cPlanetRecord
 
class  cPlayerInventory
 
class  cProjectile
 
class  cRallyCallToolStrategy
 
class  cRelationshipData
 
class  cRelationshipManager
 
class  cRepairAOEToolStrategy
 
class  cRepairToolStrategy
 
class  cScanToolStrategy
 
class  cScenarioAct
 
class  cScenarioAsset
 
class  cScenarioClass
 
class  cScenarioClassAct
 
class  cScenarioDialog
 
class  cScenarioGoal
 
class  cScenarioMarker
 
class  cScenarioMarkerAct
 
class  cScenarioPosseMember
 
class  cScenarioResource
 
class  cScenarioString
 
class  cSimulatorPlayerUFO
 
class  cSimulatorSpaceGame
 
class  cSimulatorSystem
 
class  cSolarSystem
 
class  cSpaceInventory
 
class  cSpaceInventoryItem
 
class  cSpaceToolData
 
class  cSpaceTradeRouteManager
 
class  cSpatialObject
 
class  cSpeciesManager
 
class  cSpeciesProfile
 
class  cStar
 
class  cStarManager
 
class  cStarRecord
 
class  cStrategy
 
class  cTerraformingManager
 
class  cToggleToolStrategy
 
class  cToolManager
 
class  cToolStrategy
 
class  cTradeRouteData
 
class  cTurretDefenseMissileWeapon
 
class  cTurretFlakWeapon
 
class  cVehicle
 
class  cVisiblePlanet
 
class  EnterEditorMessage
 
class  EnterModeMessage
 
class  GoalCard
 
class  IMessageParameters
 
class  ISimulatorSerializable
 
class  ISimulatorSerializableRefCounted
 
class  ISimulatorStrategy
 
class  ISimulatorUIGraphic
 
class  ScheduledTaskListener
 A message listener that, listening to Update messages, executes the given task after a certain time has passed and (optionally) repetaing it periodically. More...
 
class  SpacePlayerData
 
class  Sporepedia
 
class  tGameDataVectorT
 
class  UnkCityClass
 
struct  UnknownBehaviorContainer
 
class  UnknownCreatureClass
 
class  UnknownCreatureClass2
 
class  UnknownManagerSuperclass
 

Typedefs

typedef uint32_t StarIndex
 
typedef uint32_t PlanetIndex
 
typedef int TimeStamp[9]
 
template<class T >
using ContainerCreateCallback_t = tGameDataVectorT< T > *(*)()
 Creates the vector game data container. More...
 
template<class T >
using ContainerClearCallback_t = void(*)(tGameDataVectorT< T > *pVector)
 Clears the content of the vector. More...
 
template<class T >
using ContainerAddCallback_t = void(*)(tGameDataVectorT< T > *pVector, cGameData *pObject)
 This method must add the game data object into the vector. More...
 
using ContainerFilterCallback_t = bool(*)(cGameData *pObject, uint32_t gameNounID)
 Used to decide which game objects go to the vector and which do not. More...
 
typedef map< uint32_t, intrusive_ptr< cEmpire > > EmpiresMap
 

Enumerations

enum  Archetypes {
  kArchetypeWarrior = 0, kArchetypeTrader = 1, kArchetypeScientist = 2, kArchetypeShaman = 3,
  kArchetypeBard = 4, kArchetypeZealot = 5, kArchetypeDiplomat = 6, kArchetypeEcologist = 7,
  kArchetypeGrob = 8, kArchetypePlayerWarrior = 9, kArchetypePlayerTrader = 10, kArchetypePlayerScientist = 11,
  kArchetypePlayerShaman = 12, kArchetypePlayerBard = 13, kArchetypePlayerZealot = 14, kArchetypePlayerDiplomat = 15,
  kArchetypePlayerEcologist = 16, kArchetypePlayerWanderer = 17, kArchetypePlayerKnight = 18
}
 
enum  OrnamentType { kOrnamentFlower = 1, kOrnamentBone = 2, kOrnamentStick = 3 }
 
enum  GameNounIDs {
  kGameData = 0x17F243B, kCheatObject = 0x2A37E35, kMissionFetch = 0x2AFD284, kMissionHappinessEvent = 0x4F3BDE9,
  kMissionMakeAlly = 0x4F77499, kRaidPlunderEvent = 0x397BFF3, kRaidEvent = 0x3960C0E, kMissionColonize = 0x2BA2A0E,
  kMissionEradicate = 0x2F99994, kMissionExplore = 0x32A12F1, kMissionWar = 0x330FC49, kMissionScan = 0x347092D,
  kMissionTerraform = 0x35988F4, kMissionTrade = 0x2ADEDFF, kMissionTradeRoute = 0x447092D, kMissionMultiDelivery = 0x35ED8F6,
  kMissionBiosphere = 0x437444B, kGenericPressureEvent = 0x317AFCC, kMissionMultiStep = 0x4222283, kMissionBalance = 0x347092E,
  kMissionFindAliens = 0x347092F, kMissionFlight101 = 0x4222284, kMissionUseTool = 0x2ADEDEE, kMissionStory201 = 0x4222285,
  kMissionChangeArchetype = 0x4622285, kMissionTrackBadge = 0x4633285, kMissionAdventure = 0x46332A5, kPlayer = 0x2C21781,
  kMilitaryAttackCityOrder = 0x2E9AE6C, kCulturalConvertCityOrder = 0x3DF2CC5, kGameTerrainCursor = 0x18C40BC, kBuildingCityHall = 0x18EA1EB,
  kBuildingIndustry = 0x18EA2CC, kBuildingHouse = 0x18EB106, kBuildingEntertainment = 0x1A56ABA, kBuildingScenario = 0x70703B3,
  kTurret = 0x436F342, kCelestialBody = 0x38CFB6B, kGameBundle = 0x18C431C, kCulturalTarget = 0x3D5C325,
  kCity = 0x18C43E8, kGameBundleGroundContainer = 0x1906183, kVehicle = 0x18C6DE8, kVehicleGroupOrder = 0x2E98AB7,
  kCityWalls = 0x18C7C97, kCityTerritory = 0x244FB08, kPlaceholderColonyEditorCursorAttachment = 0x2C5C93A, kPlanetaryArtifact = 0x2DD8C42,
  kToolObject = 0x4E3FAB5, kCivilization = 0x18C816A, kCreatureAnimal = 0x18EB45E, kCreatureCitizen = 0x18EB4B7,
  kObstacle = 0x3ED8573, kGamePlant = 0x18C84A9, kFruit = 0x2C9CC91, kFruitGroup = 0x2E96892,
  kNest = 0x52AA6122, kHerd = 0x1BE418E, kEgg = 0x2A034CD, kInteractiveOrnament = 0x3A2511E,
  kGameplayMarker = 0x36BE27E, kOrnament = 0x18C88E4, kAnimalTrap = 0x61494BE, kTotemPole = 0x55CF865,
  kTribeFoodMat = 0x629BAFE, kRock = 0x2A8FB3F, kCommodityNode = 0x403DF5C, kMovableDestructibleOrnament = 0x283DDB1,
  kSolarHitSphere = 0x32F9778, kHitSphere = 0x2E72CAE, kInterCityRoad = 0x2B8A4E7, kTribe = 0x18C6D19,
  kTribeTool = 0x18C8F0C, kSpear = 0x24270C9, kArtilleryProjectile = 0x18C9380, kFlakProjectile = 0x240E3BF,
  kDefaultToolProjectile = 0x24270C5, kDeepSpaceProjectile = 0x24270C7, kSpaceDefenseMissile = 0x244D3C8, kDefaultBeamProjectile = 0x24630D7,
  kDefaultAoEArea = 0x4167186, kCulturalProjectile = 0x4F76F0D, kResourceProjectile = 0x5776A2C, kICBM = 0x49CEC61,
  kSoundLoopObject = 0x18EB641, kRotationRing = 0x2EE8CE8, kRotationBall = 0x7292112, kMorphHandle = 0x7A30A12,
  kTargetMorphHandle = 0x76F6E64, kArrowMorphHandle = 0x771AD6F, kSimpleRotationRing = 0x7A81829, kSimpleRotationBall = 0x7ABDD91,
  kPlanet = 0x3275728, kVisiblePlanet = 0x44462A6, kStar = 0x355C93A, kSolarSystem = 0x38CF94C,
  kSimPlanetLowLOD = 0x3572E72, kEmpire = 0x18EB9D2, kSpaceInventory = 0x21FFA3F, kPlayerInventory = 0x2265FDC,
  kGameDataUFO = 0x18EBADC, kTribeHut = 0x1E4DAAE, kTribePlanner = 0x3098AF98, kCreatureSpeciesMission = 0x1406A572,
  kCreatureTutorialMission = 0x34066DBA, kTribeToTribeMission = 0x5436411A, kFindMission = 0x14D9597F, kNanoDrone = 0x6EF0F11,
  kPlaceableSound = 0x74E0069, kPlaceableEffect = 0x7B38BA7
}
 
enum  SimulatorMessages { kMsgEnterEditor = 0x53850BAE, kMsgSwitchGameMode = 0x0212D3E7 }
 
enum  RelationshipEvents {
  kRelationshipEventCompliment = 0x0526E4E5, kRelationshipEventTrade = 0x0526E4EE, kRelationshipEventGift = 0x0526E4F2, kRelationshipEventBuyCityOver = 0x0526E4F5,
  kRelationshipEventJoinedAlliance = 0x0526E4F8, kRelationshipEventBribeNode = 0x0526E4FB, kRelationshipEventInsult = 0x0526E4FE, kRelationshipEventHostility = 0x0526E501,
  kRelationshipEventReligion = 0x0526E504, kRelationshipEventBuyCityUnder = 0x0526E50A, kRelationshipEventDemandRejected = 0x0526E50E, kRelationshipEventDeclaredWar = 0x0526E512,
  kRelationshipEventSpaceMissionComplete = 0x0526E519, kRelationshipEventSpaceMissionFailed = 0x0526E51C, kRelationshipEventSpaceMissionRejected = 0x0526E51D, kRelationshipEventSpaceMissionAborted = 0x0526E51E,
  kRelationshipEventSpaceGiveGift = 0x0526E51F, kRelationshipEventSpaceBreakAlliance = 0x0526E521, kRelationshipEventSpaceCreateAlliance = 0x0526E524, kRelationshipEventSpaceTradeComplete = 0x0526E527,
  kRelationshipEventSpaceTradeDeclined = 0x0526E52A, kRelationshipEventSpaceCityPanicked = 0x0526E52D, kRelationshipEventSpaceTerraformWorsened = 0x0526E531, kRelationshipEventSpaceTerraformImproved = 0x0526E535,
  kRelationshipEventSpaceTerraformExtinction = 0x0526E537, kRelationshipEventSpaceDestroyBuilding = 0x0526E53C, kRelationshipEventSpaceDestroyAllyUFO = 0x0526E542, kRelationshipEventSpaceBadToolUse = 0x0526E545,
  kRelationshipEventSpaceGoodToolUse = 0x0526E56A, kRelationshipEventSpaceFloodCity = 0x0526E5CF, kRelationshipEventSpaceAbductCitizen = 0x0526E5D4, kRelationshipEventSpaceStealCommodity = 0x0526E5D8,
  kRelationshipEventSpaceCheatGood = 0x0526E5DC, kRelationshipEventSpaceCheatBad = 0x0526E5F3, kRelationshipEventSpaceNewEmpireAndCTMGOwner = 0x0526E5F4
}
 
enum  SpaceContext { kSpaceContextNone = -1, kSpaceContextPlanet = 0, kSpaceContextSolarSystem = 1, kSpaceContextGalaxy = 2 }
 

Functions

intrusive_ptr< ScheduledTaskListenerScheduleTask (const App::VoidFunction_T &function, float scheduleTime)
 Executes a function after a certain time (measured in seconds) has passed from ths call. More...
 
template<class T >
intrusive_ptr< ScheduledTaskListenerScheduleTask (T *object, App::VoidMethod_T< T > method, float scheduleTime)
 Executes a class method after a certain time (measured in seconds) has passed from ths call. More...
 
intrusive_ptr< ScheduledTaskListenerScheduleRepeatedTask (const App::VoidFunction_T &function, float scheduleTime, float repeatRate)
 Executes a function after a certain time (measured in seconds) has passed from this call, and then keeps repeating it after a certain period (defined by the repeatRate parameter) parameter. More...
 
template<class T >
intrusive_ptr< ScheduledTaskListenerScheduleRepeatedTask (T *object, App::VoidMethod_T< T > method, float scheduleTime, float repeatRate)
 Executes a function after a certain time (measured in seconds) has passed from this call, and then keeps repeating it after a certain period (defined by the repeatRate parameter) parameter. More...
 
bool RemoveScheduledTask (intrusive_ptr< ScheduledTaskListener > &taskListener)
 
namespace Addresses (cAbductToolStrategy)
 
namespace Addresses (cArtilleryWeaponStrategy)
 
namespace Addresses (cCity)
 
namespace Addresses (cCombatant)
 
namespace Addresses (cCreatureAbility)
 
namespace Addresses (cCreatureAnimal)
 
namespace Addresses (cCreatureBase)
 
namespace Addresses (cCropCirclesToolStrategy)
 
namespace Addresses (cDeepSpaceProjectileToolStrategy)
 
namespace Addresses (cDefaultAoETool)
 
namespace Addresses (cDefaultBeamTool)
 
namespace Addresses (cDefaultProjectileWeapon)
 
namespace Addresses (cDragInputProjectileToolStrategy)
 
namespace Addresses (cDropCargoToolStrategy)
 
namespace Addresses (Cell)
 
uint32_t GetArchetypeRelationshipsID (int archetype, int difficulty)
 Returns the instance ID of the property file that contains the relationship properties used by a certain archetype in a certain difficulty (such as "spg_bard_easy", "spg_warrior_medium", etc) More...
 
namespace Addresses (cEmpire)
 
namespace Addresses (cEnergyRepairToolStrategy)
 
namespace Addresses (cGameDataUFO)
 
namespace Addresses (cGameTerrainCursor)
 
namespace Addresses (cGenesisDeviceToolStrategy)
 
namespace Addresses (cGetOutOfUFOToolStrategy)
 
namespace Addresses (cGlobalMindEraseToolStrategy)
 
namespace Addresses (cGonzagoTimer)
 
namespace Addresses (cMindEraseToolStrategy)
 
namespace Addresses (cPlaceColonyToolStrategy)
 
namespace Addresses (cPlaceObjectToolStrategy)
 
namespace Addresses (cPlanet)
 
size_t GetSectorIndex (StarIndex starIndex)
 
size_t GetStarIndex (StarIndex starIndex)
 
StarIndex GetStarRecordIndex (PlanetIndex planetIndex)
 
size_t GetPlanetIndex (PlanetIndex planetIndex)
 
namespace Addresses (cPlayerInventory)
 
namespace Addresses (cRallyCallToolStrategy)
 
namespace Addresses (cRepairAOEToolStrategy)
 
namespace Addresses (cRepairToolStrategy)
 
namespace Addresses (cScanToolStrategy)
 
cSimulatorPlayerUFOSimulatorPlayerUFO ()
 
cGameDataUFOGetPlayerUFO ()
 
namespace Addresses (cSimulatorPlayerUFO)
 
cSimulatorSpaceGameSimulatorSpaceGame ()
 
namespace Addresses (cSimulatorSpaceGame)
 
namespace Addresses (cSpaceToolData)
 
namespace Addresses (cStarRecord)
 
namespace Addresses (cToolStrategy)
 
namespace Addresses (cTurretDefenseMissileWeapon)
 
namespace Addresses (cTurretFlakWeapon)
 
namespace Addresses (cVehicle)
 
cRelationshipManagerRelationshipManager ()
 Gets the active relationship manager, which depends on the current game stage. More...
 
namespace Addresses (cRelationshipManager)
 
cGameBehaviorManagerGameBehaviorManager ()
 
 ASSERT_SIZE (cGameBehaviorManager, 0xA4)
 
namespace Addresses (cGameBehaviorManager)
 
cGameInputManagerGameInputManager ()
 
namespace Addresses (cGameInputManager)
 
cGameModeManagerGameModeManager ()
 Returns the active Simulator game noun manager. More...
 
uint32_t GetGameModeID ()
 
bool IsCellGame ()
 
bool IsCreatureGame ()
 
bool IsTribeGame ()
 
bool IsCivGame ()
 
bool IsSpaceGame ()
 
bool IsGameEditMode ()
 
bool IsScenarioMode ()
 
bool IsLoadingGameMode ()
 
namespace Addresses (cGameModeManager)
 
cGameNounManagerGameNounManager ()
 Returns the active Simulator game noun manager. More...
 
namespace Addresses (cGameNounManager)
 
template<class T >
tGameDataVectorT< T > & GetData ()
 Gets all the game data objects that are of the specified type, or are one of its subclasses. More...
 
template<class T >
tGameDataVectorT< T > & GetData (uint32_t nounID)
 Gets all the game data objects that use the given game noun ID. More...
 
template<class T >
T * simulator_new ()
 
cGameViewManagerGameViewManager ()
 
Graphics::ILightingWorldGetLightingWorld ()
 
namespace Addresses (cGameViewManager)
 
cPlanetModelPlanetModel ()
 
namespace Addresses (cPlanetModel)
 
cSimulatorSystemSimulatorSystem ()
 
void InitializeWithoutPlanet ()
 Initializes certain Simulator systems so that most things can be used without being in a star or planet. More...
 
namespace Addresses (cSimulatorSystem)
 
cStarGetActiveStar ()
 
cStarRecordGetActiveStarRecord ()
 
cPlanetGetActivePlanet ()
 
cPlanetRecordGetActivePlanetRecord ()
 
cEmpireGetPlayerEmpire ()
 
uint32_t GetPlayerEmpireID ()
 
SpaceContext GetCurrentContext ()
 
namespace Addresses (SpacePlayerData)
 
cStarManagerStarManager ()
 Returns the active Simulator star manager, used for most things in space stage. More...
 
namespace Addresses (cStarManager)
 
namespace Addresses (cSpaceTradeRouteManager)
 
void SpaceTeleportTo (cStarRecord *star)
 Teleports the player spaceship into the given star record. More...
 
cTerraformingManagerTerraformingManager ()
 
namespace Addresses (cTerraformingManager)
 
cToolManagerToolManager ()
 Returns the active Simulator tool manager. More...
 
namespace Addresses (cToolManager)
 

Typedef Documentation

◆ ContainerAddCallback_t

template<class T >
using Simulator::ContainerAddCallback_t = typedef void(*)(tGameDataVectorT<T>* pVector, cGameData* pObject)

This method must add the game data object into the vector.

Only the objects that have passed the filter function are used in this callback.

◆ ContainerClearCallback_t

template<class T >
using Simulator::ContainerClearCallback_t = typedef void(*)(tGameDataVectorT<T>* pVector)

Clears the content of the vector.

◆ ContainerCreateCallback_t

template<class T >
using Simulator::ContainerCreateCallback_t = typedef tGameDataVectorT<T>*(*)()

Creates the vector game data container.

◆ ContainerFilterCallback_t

using Simulator::ContainerFilterCallback_t = typedef bool(*)(cGameData* pObject, uint32_t gameNounID)

Used to decide which game objects go to the vector and which do not.

It receives the object to evaluate and the game noun ID passed to the GetData function.

◆ EmpiresMap

typedef map<uint32_t, intrusive_ptr<cEmpire> > Simulator::EmpiresMap

◆ PlanetIndex

typedef uint32_t Simulator::PlanetIndex

◆ StarIndex

typedef uint32_t Simulator::StarIndex

◆ TimeStamp

typedef int Simulator::TimeStamp[9]

Enumeration Type Documentation

◆ Archetypes

Enumerator
kArchetypeWarrior 
kArchetypeTrader 
kArchetypeScientist 
kArchetypeShaman 
kArchetypeBard 
kArchetypeZealot 
kArchetypeDiplomat 
kArchetypeEcologist 
kArchetypeGrob 
kArchetypePlayerWarrior 
kArchetypePlayerTrader 
kArchetypePlayerScientist 
kArchetypePlayerShaman 
kArchetypePlayerBard 
kArchetypePlayerZealot 
kArchetypePlayerDiplomat 
kArchetypePlayerEcologist 
kArchetypePlayerWanderer 
kArchetypePlayerKnight 

◆ GameNounIDs

Enumerator
kGameData 
kCheatObject 
kMissionFetch 
kMissionHappinessEvent 
kMissionMakeAlly 
kRaidPlunderEvent 
kRaidEvent 
kMissionColonize 
kMissionEradicate 
kMissionExplore 
kMissionWar 
kMissionScan 
kMissionTerraform 
kMissionTrade 
kMissionTradeRoute 
kMissionMultiDelivery 
kMissionBiosphere 
kGenericPressureEvent 
kMissionMultiStep 
kMissionBalance 
kMissionFindAliens 
kMissionFlight101 
kMissionUseTool 
kMissionStory201 
kMissionChangeArchetype 
kMissionTrackBadge 
kMissionAdventure 
kPlayer 
kMilitaryAttackCityOrder 
kCulturalConvertCityOrder 
kGameTerrainCursor 
kBuildingCityHall 
kBuildingIndustry 
kBuildingHouse 
kBuildingEntertainment 
kBuildingScenario 
kTurret 
kCelestialBody 
kGameBundle 
kCulturalTarget 
kCity 
kGameBundleGroundContainer 
kVehicle 
kVehicleGroupOrder 
kCityWalls 
kCityTerritory 
kPlaceholderColonyEditorCursorAttachment 
kPlanetaryArtifact 
kToolObject 
kCivilization 
kCreatureAnimal 
kCreatureCitizen 
kObstacle 
kGamePlant 
kFruit 
kFruitGroup 
kNest 
kHerd 
kEgg 
kInteractiveOrnament 
kGameplayMarker 
kOrnament 
kAnimalTrap 
kTotemPole 
kTribeFoodMat 
kRock 
kCommodityNode 
kMovableDestructibleOrnament 
kSolarHitSphere 
kHitSphere 
kInterCityRoad 
kTribe 
kTribeTool 
kSpear 
kArtilleryProjectile 
kFlakProjectile 
kDefaultToolProjectile 
kDeepSpaceProjectile 
kSpaceDefenseMissile 
kDefaultBeamProjectile 
kDefaultAoEArea 
kCulturalProjectile 
kResourceProjectile 
kICBM 
kSoundLoopObject 
kRotationRing 
kRotationBall 
kMorphHandle 
kTargetMorphHandle 
kArrowMorphHandle 
kSimpleRotationRing 
kSimpleRotationBall 
kPlanet 
kVisiblePlanet 
kStar 
kSolarSystem 
kSimPlanetLowLOD 
kEmpire 
kSpaceInventory 
kPlayerInventory 
kGameDataUFO 
kTribeHut 
kTribePlanner 
kCreatureSpeciesMission 
kCreatureTutorialMission 
kTribeToTribeMission 
kFindMission 
kNanoDrone 
kPlaceableSound 
kPlaceableEffect 

◆ OrnamentType

Enumerator
kOrnamentFlower 
kOrnamentBone 
kOrnamentStick 

◆ RelationshipEvents

Enumerator
kRelationshipEventCompliment 
kRelationshipEventTrade 
kRelationshipEventGift 
kRelationshipEventBuyCityOver 
kRelationshipEventJoinedAlliance 
kRelationshipEventBribeNode 
kRelationshipEventInsult 
kRelationshipEventHostility 
kRelationshipEventReligion 
kRelationshipEventBuyCityUnder 
kRelationshipEventDemandRejected 
kRelationshipEventDeclaredWar 
kRelationshipEventSpaceMissionComplete 
kRelationshipEventSpaceMissionFailed 
kRelationshipEventSpaceMissionRejected 
kRelationshipEventSpaceMissionAborted 
kRelationshipEventSpaceGiveGift 
kRelationshipEventSpaceBreakAlliance 
kRelationshipEventSpaceCreateAlliance 
kRelationshipEventSpaceTradeComplete 
kRelationshipEventSpaceTradeDeclined 
kRelationshipEventSpaceCityPanicked 
kRelationshipEventSpaceTerraformWorsened 
kRelationshipEventSpaceTerraformImproved 
kRelationshipEventSpaceTerraformExtinction 
kRelationshipEventSpaceDestroyBuilding 
kRelationshipEventSpaceDestroyAllyUFO 
kRelationshipEventSpaceBadToolUse 
kRelationshipEventSpaceGoodToolUse 
kRelationshipEventSpaceFloodCity 
kRelationshipEventSpaceAbductCitizen 
kRelationshipEventSpaceStealCommodity 
kRelationshipEventSpaceCheatGood 
kRelationshipEventSpaceCheatBad 
kRelationshipEventSpaceNewEmpireAndCTMGOwner 

◆ SimulatorMessages

Enumerator
kMsgEnterEditor 

Simulator::EnterEditorMessage; Enters the correct editor modifying the specified creation.

kMsgSwitchGameMode 

◆ SpaceContext

Enumerator
kSpaceContextNone 
kSpaceContextPlanet 
kSpaceContextSolarSystem 
kSpaceContextGalaxy 

Function Documentation

◆ Addresses() [1/53]

namespace Simulator::Addresses ( cGetOutOfUFOToolStrategy  )

◆ Addresses() [2/53]

namespace Simulator::Addresses ( cRepairAOEToolStrategy  )

◆ Addresses() [3/53]

namespace Simulator::Addresses ( cRepairToolStrategy  )

◆ Addresses() [4/53]

namespace Simulator::Addresses ( cTurretFlakWeapon  )

◆ Addresses() [5/53]

namespace Simulator::Addresses ( cDragInputProjectileToolStrategy  )

◆ Addresses() [6/53]

namespace Simulator::Addresses ( cArtilleryWeaponStrategy  )

◆ Addresses() [7/53]

namespace Simulator::Addresses ( cDropCargoToolStrategy  )

◆ Addresses() [8/53]

namespace Simulator::Addresses ( cScanToolStrategy  )

◆ Addresses() [9/53]

namespace Simulator::Addresses ( cGlobalMindEraseToolStrategy  )

◆ Addresses() [10/53]

namespace Simulator::Addresses ( cPlaceObjectToolStrategy  )

◆ Addresses() [11/53]

namespace Simulator::Addresses ( cRallyCallToolStrategy  )

◆ Addresses() [12/53]

namespace Simulator::Addresses ( cDefaultProjectileWeapon  )

◆ Addresses() [13/53]

namespace Simulator::Addresses ( cPlaceColonyToolStrategy  )

◆ Addresses() [14/53]

namespace Simulator::Addresses ( SpacePlayerData  )

◆ Addresses() [15/53]

namespace Simulator::Addresses ( cDefaultAoETool  )

◆ Addresses() [16/53]

namespace Simulator::Addresses ( cDeepSpaceProjectileToolStrategy  )

◆ Addresses() [17/53]

namespace Simulator::Addresses ( cPlayerInventory  )

◆ Addresses() [18/53]

namespace Simulator::Addresses ( Cell  )

◆ Addresses() [19/53]

namespace Simulator::Addresses ( cGameBehaviorManager  )

◆ Addresses() [20/53]

namespace Simulator::Addresses ( cGonzagoTimer  )

◆ Addresses() [21/53]

namespace Simulator::Addresses ( cPlanetModel  )

◆ Addresses() [22/53]

namespace Simulator::Addresses ( cDefaultBeamTool  )

◆ Addresses() [23/53]

namespace Simulator::Addresses ( cStarRecord  )

◆ Addresses() [24/53]

namespace Simulator::Addresses ( cTerraformingManager  )

◆ Addresses() [25/53]

namespace Simulator::Addresses ( cPlanet  )

◆ Addresses() [26/53]

namespace Simulator::Addresses ( cCreatureAnimal  )

◆ Addresses() [27/53]

namespace Simulator::Addresses ( cSimulatorPlayerUFO  )

◆ Addresses() [28/53]

namespace Simulator::Addresses ( cSimulatorSpaceGame  )

◆ Addresses() [29/53]

namespace Simulator::Addresses ( cGenesisDeviceToolStrategy  )

◆ Addresses() [30/53]

namespace Simulator::Addresses ( cSimulatorSystem  )

◆ Addresses() [31/53]

namespace Simulator::Addresses ( cCreatureAbility  )

◆ Addresses() [32/53]

namespace Simulator::Addresses ( cEnergyRepairToolStrategy  )

◆ Addresses() [33/53]

namespace Simulator::Addresses ( cTurretDefenseMissileWeapon  )

◆ Addresses() [34/53]

namespace Simulator::Addresses ( cGameTerrainCursor  )

◆ Addresses() [35/53]

namespace Simulator::Addresses ( cToolStrategy  )

◆ Addresses() [36/53]

namespace Simulator::Addresses ( cGameInputManager  )

◆ Addresses() [37/53]

namespace Simulator::Addresses ( cMindEraseToolStrategy  )

◆ Addresses() [38/53]

namespace Simulator::Addresses ( cAbductToolStrategy  )

◆ Addresses() [39/53]

namespace Simulator::Addresses ( cGameModeManager  )

◆ Addresses() [40/53]

namespace Simulator::Addresses ( cGameViewManager  )

◆ Addresses() [41/53]

namespace Simulator::Addresses ( cGameDataUFO  )

◆ Addresses() [42/53]

namespace Simulator::Addresses ( cGameNounManager  )

◆ Addresses() [43/53]

namespace Simulator::Addresses ( cEmpire  )

◆ Addresses() [44/53]

namespace Simulator::Addresses ( cToolManager  )

◆ Addresses() [45/53]

namespace Simulator::Addresses ( cVehicle  )

◆ Addresses() [46/53]

namespace Simulator::Addresses ( cRelationshipManager  )

◆ Addresses() [47/53]

namespace Simulator::Addresses ( cCombatant  )

◆ Addresses() [48/53]

namespace Simulator::Addresses ( cStarManager  )

◆ Addresses() [49/53]

namespace Simulator::Addresses ( cSpaceTradeRouteManager  )

◆ Addresses() [50/53]

namespace Simulator::Addresses ( cCity  )

◆ Addresses() [51/53]

namespace Simulator::Addresses ( cCropCirclesToolStrategy  )

◆ Addresses() [52/53]

namespace Simulator::Addresses ( cCreatureBase  )

◆ Addresses() [53/53]

namespace Simulator::Addresses ( cSpaceToolData  )

◆ ASSERT_SIZE()

Simulator::ASSERT_SIZE ( cGameBehaviorManager  ,
0xA4   
)

◆ GameBehaviorManager()

cGameBehaviorManager* Simulator::GameBehaviorManager ( )
inline

◆ GameInputManager()

cGameInputManager* Simulator::GameInputManager ( )
inline

◆ GameModeManager()

cGameModeManager* Simulator::GameModeManager ( )
inline

Returns the active Simulator game noun manager.

Same as cGameModeManager::Get().

◆ GameNounManager()

cGameNounManager* Simulator::GameNounManager ( )
inline

Returns the active Simulator game noun manager.

Same as cGameNounManager::Get().

◆ GameViewManager()

cGameViewManager* Simulator::GameViewManager ( )
inline

◆ GetActivePlanet()

cPlanet* Simulator::GetActivePlanet ( )

◆ GetActivePlanetRecord()

cPlanetRecord* Simulator::GetActivePlanetRecord ( )

◆ GetActiveStar()

cStar* Simulator::GetActiveStar ( )

◆ GetActiveStarRecord()

cStarRecord* Simulator::GetActiveStarRecord ( )

◆ GetArchetypeRelationshipsID()

uint32_t Simulator::GetArchetypeRelationshipsID ( int  archetype,
int  difficulty 
)

Returns the instance ID of the property file that contains the relationship properties used by a certain archetype in a certain difficulty (such as "spg_bard_easy", "spg_warrior_medium", etc)

Parameters
archetypeThe archetype, in the "kArchetype..." enum.
difficultyThe current difficulty, in the "kDifficulty..." enum.

◆ GetCurrentContext()

SpaceContext Simulator::GetCurrentContext ( )

◆ GetData() [1/2]

template<class T >
tGameDataVectorT<T>& Simulator::GetData ( )
inline

Gets all the game data objects that are of the specified type, or are one of its subclasses.

All the found objects will be casted to the specified type.

◆ GetData() [2/2]

template<class T >
tGameDataVectorT<T>& Simulator::GetData ( uint32_t  nounID)
inline

Gets all the game data objects that use the given game noun ID.

◆ GetGameModeID()

uint32_t Simulator::GetGameModeID ( )

◆ GetLightingWorld()

Graphics::ILightingWorld* Simulator::GetLightingWorld ( )
inline

◆ GetPlanetIndex()

size_t Simulator::GetPlanetIndex ( PlanetIndex  planetIndex)
inline

◆ GetPlayerEmpire()

cEmpire* Simulator::GetPlayerEmpire ( )

◆ GetPlayerEmpireID()

uint32_t Simulator::GetPlayerEmpireID ( )

◆ GetPlayerUFO()

cGameDataUFO* Simulator::GetPlayerUFO ( )
inline

◆ GetSectorIndex()

size_t Simulator::GetSectorIndex ( StarIndex  starIndex)
inline

◆ GetStarIndex()

size_t Simulator::GetStarIndex ( StarIndex  starIndex)
inline

◆ GetStarRecordIndex()

StarIndex Simulator::GetStarRecordIndex ( PlanetIndex  planetIndex)
inline

◆ InitializeWithoutPlanet()

void Simulator::InitializeWithoutPlanet ( )

Initializes certain Simulator systems so that most things can be used without being in a star or planet.

This method does:

  • Uses the StarManager temporary star with a temporary planet on it, and sets those as the current star/planet in SpacePlayerData.
  • Calls the PrepareSimulator() method in GameViewManager so that the simulator objects are displayed on the screen.

◆ IsCellGame()

bool Simulator::IsCellGame ( )
inline

◆ IsCivGame()

bool Simulator::IsCivGame ( )
inline

◆ IsCreatureGame()

bool Simulator::IsCreatureGame ( )
inline

◆ IsGameEditMode()

bool Simulator::IsGameEditMode ( )
inline

◆ IsLoadingGameMode()

bool Simulator::IsLoadingGameMode ( )
inline

◆ IsScenarioMode()

bool Simulator::IsScenarioMode ( )
inline

◆ IsSpaceGame()

bool Simulator::IsSpaceGame ( )
inline

◆ IsTribeGame()

bool Simulator::IsTribeGame ( )
inline

◆ PlanetModel()

cPlanetModel* Simulator::PlanetModel ( )
inline

◆ RelationshipManager()

cRelationshipManager* Simulator::RelationshipManager ( )
inline

Gets the active relationship manager, which depends on the current game stage.

Same as cRelationshipManager::Get().

◆ RemoveScheduledTask()

bool Simulator::RemoveScheduledTask ( intrusive_ptr< ScheduledTaskListener > &  taskListener)
inline

◆ ScheduleRepeatedTask() [1/2]

intrusive_ptr<ScheduledTaskListener> Simulator::ScheduleRepeatedTask ( const App::VoidFunction_T function,
float  scheduleTime,
float  repeatRate 
)
inline

Executes a function after a certain time (measured in seconds) has passed from this call, and then keeps repeating it after a certain period (defined by the repeatRate parameter) parameter.

The function is executed only once, and the time starts counting since this ScheduleTask method has been called.

The method returns the object that holds the scheduled task. If you want to remove the task so it does not execute anymore, you can do it by calling Simulator::RemoveScheduledTask(...) with the returned object as parameter.

Internally, this is implemented by adding a message listener that listens to the kMsgAppUpdate message. Every frame uses a cGonzagoTimer object to compare the elapsed time since this task as scheduled. The listener is removed once the task has finished executing.

Parameters
functionA void function with no parameters, that will be executed every frame.
scheduleTimeThe time that has to pass, in seconds, since the task is scheduled for it to be executed.
repeatRateHow many seconds have to pass between every execution of the task.

◆ ScheduleRepeatedTask() [2/2]

template<class T >
intrusive_ptr<ScheduledTaskListener> Simulator::ScheduleRepeatedTask ( T *  object,
App::VoidMethod_T< T >  method,
float  scheduleTime,
float  repeatRate 
)
inline

Executes a function after a certain time (measured in seconds) has passed from this call, and then keeps repeating it after a certain period (defined by the repeatRate parameter) parameter.

The function is executed only once, and the time starts counting since this ScheduleTask method has been called.

The method returns the object that holds the scheduled task. If you want to remove the task so it does not execute anymore, you can do it by calling Simulator::RemoveScheduledTask(...) with the returned object as parameter.

Internally, this is implemented by adding a message listener that listens to the kMsgAppUpdate message. Every frame uses a cGonzagoTimer object to compare the elapsed time since this task as scheduled. The listener is removed once the task has finished executing.

Parameters
objectThe object to which the method will be called.
methodA void method with no parameters, that will be executed every frame.
scheduleTimeThe time that has to pass, in seconds, since the task is scheduled for it to be executed.
repeatRateHow many seconds have to pass between every execution of the task.

◆ ScheduleTask() [1/2]

intrusive_ptr<ScheduledTaskListener> Simulator::ScheduleTask ( const App::VoidFunction_T function,
float  scheduleTime 
)
inline

Executes a function after a certain time (measured in seconds) has passed from ths call.

The function is executed only once, and the time starts counting since this ScheduleTask method has been called.

The method returns the object that holds the scheduled task. If you want to remove the task before it is called, you can do it by calling Simulator::RemoveScheduledTask(...) with the returned object as parameter.

Internally, this is implemented by adding a message listener that listens to the kMsgAppUpdate message. Every frame uses a cGonzagoTimer object to compare the elapsed time since this task as scheduled. The listener is removed once the task has finished executing.

Parameters
functionA void function with no parameters, that will be executed every frame.
scheduleTimeThe time that has to pass, in seconds, since the task is scheduled for it to be executed.

◆ ScheduleTask() [2/2]

template<class T >
intrusive_ptr<ScheduledTaskListener> Simulator::ScheduleTask ( T *  object,
App::VoidMethod_T< T >  method,
float  scheduleTime 
)
inline

Executes a class method after a certain time (measured in seconds) has passed from ths call.

The method is executed only once, and the time starts counting since this ScheduleTask method has been called.

The method returns the object that holds the scheduled task. If you want to remove the task before it is called, you can do it by calling Simulator::RemoveScheduledTask(...) with the returned object as parameter.

Internally, this is implemented by adding a message listener that listens to the kMsgAppUpdate message. Every frame uses a cGonzagoTimer object to compare the elapsed time since this task as scheduled. The listener is removed once the task has finished executing.

Parameters
objectThe object to which the method will be called.
methodA void method with no parameters, that will be executed every frame.
scheduleTimeThe time that has to pass, in seconds, since the task is scheduled for it to be executed.

◆ simulator_new()

template<class T >
T* Simulator::simulator_new ( )
inline

◆ SimulatorPlayerUFO()

cSimulatorPlayerUFO* Simulator::SimulatorPlayerUFO ( )
inline

◆ SimulatorSpaceGame()

cSimulatorSpaceGame* Simulator::SimulatorSpaceGame ( )
inline

◆ SimulatorSystem()

cSimulatorSystem* Simulator::SimulatorSystem ( )
inline

◆ SpaceTeleportTo()

void Simulator::SpaceTeleportTo ( cStarRecord star)

Teleports the player spaceship into the given star record.

Only works if the player is in the galaxy view.

Parameters
starThe star record the player will be teleported to.

◆ StarManager()

cStarManager* Simulator::StarManager ( )
inline

Returns the active Simulator star manager, used for most things in space stage.

Same as cStarManager::Get().

◆ TerraformingManager()

cTerraformingManager* Simulator::TerraformingManager ( )
inline

◆ ToolManager()

cToolManager* Simulator::ToolManager ( )
inline

Returns the active Simulator tool manager.

Same as cToolManager::Get().