Swarm namespace

Swarm is the effects system in Spore

This namespace contains all the necessary classes needed for working with the Swarm effect system. The main class is the Swarm::ISwarmManager, which is used to control everything related with the system. Swarm::IEffect classes are instances of the effects which can be sued to display and transform effects in the game.

Namespaces

namespace Components

Classes

class cCameraDescription
class cCameraEffect
class cComponentBase
class cDescription
class cDistributeDescription
class cDistributeEffect
struct cEffectInfo
class cEffectMapBase
class cEffectsManager
class cEffectsWorld
class cGlobalParams
class CollectionResource
A Resource object used to retrieve an effect collection (that is, an EffectDirectory, .effdir file).
class cSkinpaintDistributeDescription
class cSkinpaintDistributeEffect
class cSkinpaintParticleDescription
class cSkinpaintParticleEffect
class cSkinpaintSettingsDescription
class cSkinpaintSettingsEffect
struct cSurfaceInfo
struct cSurfaceRec
class cTextureSlot
class cVisualEffect
struct cVisualEffectDescription
class EffectDirectory
An EffectDirectory is a file that contains one or multiple effect declarations.
class ICameraManager
class IComponent
class IEffectDirectory
class IEffectMap
Effect maps are one of the way effects can react to environment information from the game.
class IEffectsManager
This class is the main manager of the Swarm effects system.
class IEffectsWorld
An effects world is a space in the game which contains effects.
class IModelParticleStreamer
class ISurface
class ITextureParticleStreamer
class IVisualEffect
An instance of an effect in the game.

Enums

enum class DrawMode: uint8_t { Decal = 0, DecalInvertDepth = 1, DecalIgnoreDepth = 2, DepthDecal = 3, DecalDepth = 3, Additive = 4, AdditiveInvertDepth = 5, AdditiveIgnoreDepth = 6, Modulate = 7, NormalMap = 8, DepthNormalMap = 9, NormalMapDepth = 9, AlphaTestDissolve = 0xA, User1 = 0xB, User2 = 0xC, User3 = 0xD, User4 = 0xE, None = 0xF }
enum AppFlags { kAppFlagDeepWater, kAppFlagShallowWater, kAppFlagLowerAtmosphere, kAppFlagUpperAtmosphere, kAppFlagEnglish, kAppFlagPlanetHasWater, kAppFlagCinematics, kAppFlagCellGameMode, kAppFlagCreatureGameMode, kAppFlagTribeGameMode, kAppFlagGGEMode, kAppFlagCivGameMode, kAppFlagSpaceGameMode, kAppFlagAtmoLow, kAppFlagAtmoMed, kAppFlagAtmoHigh, kAppFlagEditorMode, kAppFlagSpaceGameOutOfUFO, kAppFlagSpaceGameGalaxyMode, kAppFlagSpaceGameSolarMode, kAppFlagSpaceGamePlanetMode, kAppFlagIsNight, kAppFlagIsRaining, kAppFlagWeatherIce, kAppFlagWeatherCold, kAppFlagWeatherWarm, kAppFlagWeatherHot, kAppFlagWeatherLava }
enum EffectTypes { kEffectTypeParticles = 0x01, kEffectTypeMetaParticles = 0x02, kEffectTypeDecal = 0x03, kEffectTypeSequence = 0x04, kEffectTypeSound = 0x05, kEffectTypeShake = 0x06, kEffectTypeCamera = 0x07, kEffectTypeModel = 0x08, kEffectTypeScreen = 0x09, kEffectTypeLight = 0x0A, kEffectTypeGame = 0x0B, kEffectTypeFastParticle = 0x0C, kEffectTypeDistribute = 0x0D, kEffectTypeRibbon = 0x0E, kEffectTypeBrush = 0x20, kEffectTypeTerrainScript = 0x21, kEffectTypeSkinpaintSettings = 0x22, kEffectTypeSkinpaintDistribute = 0x23, kEffectTypeGamemodel = 0x25, kEffectTypeSkinpaintParticle = 0x26, kEffectTypeSkinpaintFlood = 0x27, kEffectTypeVolume = 0x28, kEffectTypeSplitController = 0x29, kEffectTypeTerrainDistribute = 0x2A, kEffectTypeCloud = 0x2B, kEffectTypeGroundCover = 0x2C, kEffectTypeMixEvent = 0x2D, kEffectTypeText = 0x2F }
enum class SwarmState { Active = 0, Paused = 1, Suspended = 2, Hidden = 3, Manual = 4, Shutdown = 5 }
An enum to represent the current state of an effect world and the Swarm manager.
enum IntParams { kParamModelOverride = 0, kParamTextureOverride = 1, kParamSelectFrame = 2, kParamSelectState = 3, kParamDistID = 4, kParamDistUpdate = 5, kParamIntUser1 = 6, kParamIntUser2 = 7, kParamIntUser3 = 8, kParamIntUser4 = 9 }
enum FloatParams { kParamEmitStrength = 0, kParamParticleSizeScale = 1, kParamParticleLifeScale = 2, kParamEmitScale = 3, kParamTransparency = 4, kParamColor = 5, kParamColorList = 6, kParamTargetPoint = 7, kParamExplosionLocation = 8, kParamAttractorLocation = 9, kParamAttractorIntensity = 10, kParamViewRay = 11, kParamEmissionVolume = 12, kParamPath = 13, kParamShaderParams = 14, kParamVolume = 15, kParamHeightRange = 16, kParamSubdivWindow = 17, kParamMapForceScale = 18, kParamLodDistanceScale = 19, kParamDistributeSizeScale = 20, kParamFloatUser1 = 21, kParamFloatUser2 = 22, kParamFloatUser3 = 23, kParamFloatUser4 = 24 }
enum ObjectParams { kParamNone = 0 }

Typedefs

using VisualEffectCallback_t = void(*)(IVisualEffect*, void*)

Functions

ASSERT_SIZE(cCameraEffect, 0x6C)
ASSERT_SIZE(cDistributeEffect, 0x1B0)
ASSERT_SIZE(cEffectsManager, 0x258)
auto Addresses(cSwarmManager) -> namespace
auto Addresses(cEffectsManager) -> namespace
ASSERT_SIZE(cEffectsWorld, 0xA4)
ASSERT_SIZE(cGlobalParams, 0x120)
ASSERT_SIZE(CollectionResource, 0x18)
ASSERT_SIZE(cCameraDescription, 0xB0)
ASSERT_SIZE(cDistributeDescription, 0x180)
ASSERT_SIZE(cTextureSlot, 0x20)
ASSERT_SIZE(cSkinpaintDistributeDescription, 0x54)
ASSERT_SIZE(cSkinpaintDistributeEffect, 0x30)
ASSERT_SIZE(cSkinpaintParticleDescription, 0xB8)
ASSERT_SIZE(cSkinpaintParticleEffect, 0x50)
ASSERT_SIZE(cSkinpaintSettingsDescription, 0x70)
ASSERT_SIZE(cSkinpaintSettingsEffect, 0x14)
auto Addresses(cSkinpaintSettingsEffect) -> namespace
ASSERT_SIZE(cVisualEffectDescription, 0x58)
ASSERT_SIZE(cSurfaceInfo, 0x58)
ASSERT_SIZE(cVisualEffect, 0x188)
ASSERT_SIZE(EffectDirectory, 0x9C)
ASSERT_SIZE(cComponentBase, 0xC)
ASSERT_SIZE(cEffectMapBase, 0xC)
auto Addresses(ISwarmManager) -> namespace
auto Addresses(IEffectsManager) -> namespace
ASSERT_SIZE(cEffectInfo, 0x24)
ASSERT_SIZE(cSurfaceRec, 0x18)

Enum documentation

enum class Swarm::SwarmState

An enum to represent the current state of an effect world and the Swarm manager.

enum Swarm::IntParams

Enumerators
kParamModelOverride

Set an override model. This requires two parameters: int overrideSet and uint32_t name

kParamTextureOverride

Set an override texture. This requires two parameters: int overrideSet and uint32_t name

kParamSelectFrame

Select the given particle texture frame.

kParamSelectState

Select the given effect state (Swarm::SwarmState)

kParamDistID

Used in Distribute effects, expects a ResourceID*.

kParamDistUpdate

kParamIntUser1

kParamIntUser2

kParamIntUser3

kParamIntUser4

Typedef documentation

typedef void(*Swarm::VisualEffectCallback_t)(IVisualEffect*, void*)

Function documentation