Pyrogenesis  trunk
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 CAbstractProfileTableClass AbstractProfileTable: Profile table data model
 CAlignedAllocatorStateless STL allocator that aligns elements to the L1 cache line size
 CAllocatorCheckerAllocator test rig
 CAppHooksHolds a function pointer (allowed to be NULL) for each hook
 CBillingPolicy_AtomicThread-safe (not used by default due to its higher overhead) note: we can't just use thread-local variables to avoid synchronization overhead because we don't have control over all threads (for accumulating their separate timer copies)
 CBillingPolicy_DefaultBill the difference between t0 and t1 to the client's total
 CBoneTransformBone pose data
 CBufferOutputHandlerOutput handler to collect NVTT's output into a simplistic buffer
 CBufferVisitor_DumpVisitor class that dumps events as JSON
 CCAIWorkerImplements worker thread for CCmpAIManager
 CCArchiveBuilderPackages a mod's files into a distributable archive
 CCBinarySerializerSerialize to a binary stream
 CCBinarySerializerScriptImplPutScriptVal implementation details
 CCBrushClass CBrush: Represents a convex object, supports some CSG operations
 CCBufferBinarySerializerSerializer instance that writes directly to a buffer (which must be long enough)
 CCCacheLoaderHelper class for systems that have an expensive cacheable conversion process when loading files
 CCChartChart for a data visualization as lines or points
 CCCinemaManagerClass for in game playing of cinematics
 CCClientAreaClient Area is a rectangle relative to a parent rectangle
 CCCmpAIManagerImplementation of ICmpAIManager
 CCCmpDecayFairly basic decay implementation, for units and buildings etc
 CCCmpObstructionObstruction implementation
 CCCmpOwnershipBasic ICmpOwnership implementation
 CCCmpPathfinderImplementation of ICmpPathfinder
 CCCmpPositionBasic ICmpPosition implementation
 CCCmpRangeManagerRange manager implementation
 CCCmpUnitRendererEfficiently(ish) renders all the units in the world
 CCConsoleIn-game console
 CCDebugSerializerSerialize to a human-readable YAML-like format
 CCDropDownDrop Down
 CCDummyReplayLoggerImplementation of IReplayLogger that simply throws away all data
 CCDynamicSubscriptionA list of components that are dynamically subscribed to a particular message
 CCeilLog2< 0 >
 CCeilLog2< 1 >
 CCEntityHandleObject wrapping an entity_id_t, with a SEntityComponentCache to support fast QueryInterface() / CmpPtr<>() calls
 CCFilePackerHelper class for writing binary files
 CCFileUnpackerHelper class for reading binary files
 CCFixedA simple fixed-point number class
 CCFontStorage for a bitmap font
 CCFontManagerFont manager: loads and caches bitmap fonts
 CCFontMetricsHelper class for measuring sizes of text
 CCFsmManages states, events, actions and transitions between states
 CCFsmEventRepresents a signal in the state machine that a change has occurred
 CCFsmTransitionAn association of event, condition, action and next state
 CCGameThe container that holds the rules, resources and attributes of the game
 CCGameLoaderHelper class for retrieving data from saved game archives
 CCGameSetupMessageSpecial message type for updated to game startup settings
 CCGUIThe main object that represents a whole GUI page
 CCGUIDummyObjectDummy object used primarily for the root object or objects of type 'empty'
 CCGUIManagerExternal interface to the GUI system
 CCGUIScrollBarVerticalVertical implementation of IGUIScrollBar
 CCGUISpriteThe GUI sprite, is actually several real sprites (images) like a collage
 CCGUIStringString class, substitute for CStr, but that parses the tags and builds up a list of all text that will be different when outputted
 CCImageObject just for drawing a sprite
 CCInputText field where you can input and edit the text
 CCInternalCGUIAccessorBaseBase class to only the class GUI
 CCLengthBinarySerializerSerializer instance that simply counts how many bytes would be written
 CCLightEnvClass CLightEnv: description of a lighting environment - contains all the necessary parameters for representation of the lighting within a scenario
 CCListCreate a list of elements, where one can be selected by the user
 CCLocalTurnManagerImplementation of CTurnManager for offline games
 CCLoggerError/warning/message logging class
 CCLOSTextureMaintains the LOS (fog-of-war / shroud-of-darkness) texture, used for rendering and for the minimap
 CCMapGeneratorRandom map generator interface
 CCMapGeneratorWorkerRandom map generator worker thread
 CCMapSummaryReaderA restricted map reader that returns various summary information for use by scripts (particularly the GUI)
 CCMessageCinemaPathEndedCinematics events
 CCMessageCreateThis is sent immediately after a new entity's components have all been created and initialised
 CCMessageDeserializedBroadcast after the entire simulation state has been deserialized
 CCMessageDestroyThis is sent immediately before a destroyed entity is flushed and really destroyed
 CCMessageInterpolatePrepare for rendering a new frame (set up model positions etc)
 CCMessageInterpolatedPositionChangedSent by CCmpPosition whenever anything has changed that will affect the return value of GetInterpolatedTransform()
 CCMessageMinimapPingSent when an entity pings the minimap
 CCMessageMotionChangedSent by CCmpUnitMotion during Update, whenever the motion status has changed since the previous update
 CCMessageObstructionMapShapeChangedSent when ObstructionManager's view of the shape of the world has changed (changing the TILE_OUTOFBOUNDS tiles returned by Rasterise)
 CCMessagePathResultSent by CCmpPathfinder after async path requests
 CCMessagePositionChangedSent by CCmpPosition whenever anything has changed that will affect the return value of GetPosition2D() or GetRotation().Y
 CCMessageProgressiveLoadHandle progressive loading of resources
 CCMessageRangeUpdateSent by CCmpRangeManager at most once per turn, when an active range query has had matching units enter/leave the range since the last RangeUpdate
 CCMessageRenderSubmitAdd renderable objects to the scene collector
 CCMessageScriptedUsed for script-only message types
 CCMessageTemplateModificationSent by aura and tech managers when a value of a certain template's component is changed
 CCMessageTerrainChangedSent when terrain (texture or elevation) has been changed
 CCMessageTerritoriesChangedSent when territory assignments have changed
 CCMessageUpdateGeneric per-turn update message, for things that don't care much about ordering
 CCMessageUpdate_FinalFinal update phase, after all other updates
 CCMessageUpdate_MotionFormationUpdate phase for formation controller movement (must happen before individual units move to follow their formation)
 CCMessageUpdate_MotionUnitUpdate phase for non-formation-controller unit movement
 CCMessageValueModificationSent by aura manager when a value of a certain entity's component is changed
 CCMessageVisibilityChangedSent, at most once per turn, when the visibility of an entity changed
 CCMessageVisionRangeChangedSent by CCmpVision when an entity's vision range changes
 CCMessageVisionSharingChangedSent by CCmpVision when an entity's vision sharing changes
 CCMessageWaterChangedSent when water height has been changed
 CCModelAbstractAbstract base class for graphical objects that are used by units, or as props attached to other CModelAbstract objects
 CCModelParticleEmitterParticle emitter model, for attaching emitters as props on other models
 CCModelRDataClass CModelRData: Render data that is maintained per CModel
 CCmpPtrA simplified syntax for accessing entity components
 CCMutexA non-recursive mutual exclusion lock
 CCNetClientNetwork client
 CCNetClientSessionThe client end of a network session
 CCNetClientTurnManagerImplementation of CTurnManager for network clients
 CCNetFileReceiveTaskAsynchronous file-receiving task
 CCNetFileReceiveTask_ClientRejoinAsync task for receiving the initial game state when rejoining an in-progress network game
 CCNetFileReceiveTask_ServerRejoinAsync task for receiving the initial game state to be forwarded to another client that is rejoining an in-progress network game
 CCNetFileTransfererHandles transferring files between clients and servers
 CCNetMessageThe base class for all network messages exchanged within the game
 CCNetMessageFactoryCreates messages from data received through the network
 CCNetServerNetwork server interface
 CCNetServerSessionThe server's end of a network session
 CCNetServerTurnManagerThe server-side counterpart to CNetClientTurnManager
 CCNetServerWorkerNetwork server worker thread
 CCNetStatsTableENet connection statistics profiler table
 CCOListMulti-column list
 CCOListColumnRepresents a column
 CCommonConvertWrapper for code shared between the PMD and PSA converters
 CComponentTestHelperClass to test a single component
 CControlGroupMovementObstructionFilterObstruction test filter that reject shapes in a given control group, and rejects shapes that don't block unit movement, and optionally rejects moving shapes
 CControllerRegulate IIR gain for rapid but smooth tracking of a function
 CCParamNodeAn entity initialisation parameter node
 CCParticleEffectorForceParticle effector that applies a constant acceleration
 CCParticleEmitterParticle emitter
 CCParticleEmitterTypeParticle emitter type - stores the common state data for all emitters of that type, and uses that data to update the emitter states
 CCParticleVarConstantParticle variable that returns a constant value
 CCParticleVarCopyParticle variable that returns the same value as some other variable (assuming that variable was evaluated before this one)
 CCParticleVarExprA terrible ad-hoc attempt at handling some particular variable calculation, which really needs to be cleaned up and generalised
 CCParticleVarUniformParticle variable that returns a uniformly-distributed random value
 CCPosMade to represent screen positions and delta values
 CCPreprocessorThis is a simplistic C/C++-like preprocessor
 CCPreprocessorWrapperConvenience wrapper around CPreprocessor
 CCProfile2AggregatedRegionScope-based enter/leave helper
 CCProfile2GPURegionScope-based GPU enter/leave helper
 CCProfile2RegionScope-based enter/leave helper
 CCProfile2SpikeRegionScope-based enter/leave helper
 CCProfileNodeTableClass CProfileNodeTable: Implement ProfileViewer's AbstractProfileTable interface in order to display profiling data in-game
 CCProfiler2GPUUsed by CProfiler2 for GPU profiling support
 CCProfileViewerClass CProfileViewer: Manage and display profiling tables
 CCProgressBarObject used to draw a value (e.g
 CCRadioButtonJust like a check box, but it'll nullify its siblings (of the same kind), and it won't switch itself
 CCRectRectangle class used for screen rectangles
 CCRendererInternalsStruct CRendererInternals: Truly hide data that is supposed to be hidden in this structure so it won't even appear in header files
 CCRendererStatsTableClass CRendererStatsTable: Implementation of AbstractProfileTable to display the renderer stats in-game
 CCReplayLoggerImplementation of IReplayLogger that saves data to a file in the logs directory
 CCReplayPlayerReplay log replayer
 CCReplayTurnManagerImplementation of CLocalTurnManager for replay games
 CCScopeLockLocks a CMutex over this object's lifetime
 CCSerializerStreamBufWrapper for redirecting ostream writes to CBinarySerializer's impl
 CCShaderDefinesRepresents a mapping of name strings to value strings, for use with #if and #ifdef and similar conditionals in shaders
 CCShaderManagerShader manager: loads and caches shader programs
 CCShaderParamsRepresents a mapping of name strings to value, for use with CShaderDefines (values are strings) and CShaderUniforms (values are vec4s)
 CCShaderPassImplements a render pass consisting of various GL state changes and a shader, used by CShaderTechnique
 CCShaderProgramA compiled vertex+fragment shader program
 CCShaderProgramFFPCShaderProgramFFP allows rendering code to use the shader-based API even if the 'shader' is actually implemented with the fixed-function pipeline instead of anything programmable
 CCShaderProgramFFP_DummyA shader that does nothing but provide a shader-compatible interface to fixed-function features, for compatibility with existing fixed-function code that isn't fully ported to the shader API
 CCShaderProgramFFP_ModelBasic non-recolored diffuse-textured model rendering
 CCShaderProgramFFP_Model_BaseCommon functionality for model rendering in the fixed renderpath
 CCShaderProgramFFP_ModelColorPlayer-coloring diffuse-textured model rendering
 CCShaderProgramFFP_ModelSolidOptionally-player-colored untextured model rendering
 CCShaderProgramFFP_ModelSolidTexPlain unlit texture model rendering, for e.g
 CCShaderRenderQueriesUniform values that need to be evaluated in the renderer
 CCShaderTechniqueImplements a render technique consisting of a sequence of passes
 CCShaderUniformsRepresents a mapping of name strings to value CVector4Ds, for use with uniforms in shaders
 CCSimContextContains pointers to various 'global' objects that are needed by the simulation code, to allow easy access without using real (evil) global variables
 CCSimulation2Public API for simulation system
 CCSimulationMessageSpecial message type for simulation commands
 CCSizeMade to represent a screen size, should in philosophy be made of unsigned ints, but for the sake of compatibility with CRect and CPos it's not
 CCSmoothedValueA value with exponential decay towards the target value
 CCStrInternInterned 8-bit strings
 CCTemplateLoaderTemplate loader: Handles the loading of entity template files for:
 CCTerritoryBoundaryCalculatorResponsible for calculating territory boundaries, given an input territory map
 CCTerritoryTextureMaintains the territory boundary texture, used for rendering and for the minimap
 CCTextText field that just displays static text
 CCTextureRepresents a texture object
 CCTextureConverterTexture conversion helper class
 CCTexturedLineRDataRendering data for an STexturedOverlayLine
 CCTextureManagerTexture manager with asynchronous loading and automatic DDS conversion/compression
 CCTexturePropertiesRepresents the filename and GL parameters of a texture, for passing to CTextureManager::CreateTexture
 CCTooltipDynamic tooltips
 CCTouchInputMaps touch events (e.g
 CCTurnManagerThis file defines the base class of the turn managers for clients, local games and replays
 CCUnitAnimationDeals with synchronisation issues between raw animation data (CModel, CSkeletonAnim) and the simulation system (via CUnit), providing a simple fire-and-forget API to play animations
 CCVertexBufferCVertexBuffer: encapsulation of ARB_vertex_buffer_object, also supplying some additional functionality for sharing buffers between multiple objects
 CCVFSFileReads a file, then gives read-only access to the contents
 CCWorldCWorld is a general data class containing whatever is needed to accurately represent the world
 CDefPersistentRootedA default constructible wrapper around JS::PersistentRootedValue
 CDHT_Traits< const char *, const char * >
 CDynArrayMemory range that can be expanded but doesn't waste physical memory or relocate itself
 CEaseGeneric easing functions
 CEntityDistanceOrderingFunctor for sorting entities by distance from a source point
 CEntityMapA fast replacement for map<entity_id_t, T>
 CErrorMessageMemHolds memory for an error message
 CFastSpatialSubdivisionA basic square subdivision scheme for finding entities in range More efficient than SpatialSubdivision, but a bit less precise (so the querier will get more entities to perform tests on)
 CFColladaDocumentStandard document loader
 CFColladaErrorHandlerStandard error handler - logs FCollada messages using Log(), and also maintains a list of XML parser errors
 CFileCacheCache of file contents with support for zero-copy IO
 CFrequencyEstimatorVariable-width window for frequency determination
 CGridBasic 2D array, intended for storing tile data, plus support for lazy updates by ICmpObstructionManager
 CGridUpdateInformationStructure holding grid dirtiness informations, for clever updates
 CGUIIncludes static functions that needs one template argument
 CHeaderlessAllocator(header-less) pool-based heap allocator provides Allocate and Deallocate without requiring in-band headers; this is useful when allocating page-aligned I/O buffers (headers would waste an entire page per buffer)
 CICmpCinemaManagerComponent for CCinemaManager class TODO: write description
 CICmpCommandQueueCommand queue, for sending orders to entities
 CICmpDataTemplateManagerData template manager interface
 CICmpDecayAnimated corpse-decay
 CICmpExampleDocumentation to describe what this interface and its associated component types are for, and roughly how they should be used
 CICmpFoggingHandles the fogging of out-of-sight enemy entities, by creating mirage entities
 CICmpFootprintFootprints - an approximation of the entity's shape, used for collision detection and for rendering selection outlines
 CICmpIdentityIdentity data
 CICmpMinimapPer-unit minimap data
 CICmpMirageComponent allowing mirage entities to communicate with their parent entity
 CICmpMotionGeneric motion interface for entities with entirely self-contained motion e.g
 CICmpObstructionFlags an entity as obstructing movement for other units, and handles the processing of collision queries
 CICmpObstructionManagerObstruction manager: provides efficient spatial queries over objects in the world
 CICmpOverlayRendererInterface for rendering 'overlay' objects (typically sprites), automatically positioned relative to the entity
 CICmpOwnershipPlayer ownership
 CICmpParticleManagerMinimal interface for particle rendering
 CICmpPathfinderPathfinder algorithms
 CICmpPlayerPlayer data
 CICmpPlayerManagerPlayer manager
 CICmpPositionRepresents an entity's position in the world (plus its orientation)
 CICmpProjectileManagerProjectile manager
 CICmpRallyPointRendererRally Point
 CICmpRangeManagerProvides efficient range-based queries of the game world, and also LOS-based effects (fog of war)
 CICmpSoundManagerInterface to the engine's sound system
 CICmpTemplateManagerTemplate manager: Handles the loading of entity template files for the initialisation and deserialization of entity components
 CICmpTest1Component for testing the simulation system
 CICmpTest2Component for testing the simulation system
 CICmpUnitMotionMotion interface for entities with complex movement capabilities
 CICmpUnknownScriptDummy wrapper class for script components that don't have a native interface
 CICmpValueModificationManagerValue modification manager interface
 CICmpVisibilityThe Visibility component is a scripted component that allows any part of the simulation to influence the visibility of an entity
 CICmpVisionVision range interface
 CICmpVisualThe visual representation of an entity (typically an actor)
 CIDeserializerDeserialization interface; see serialization overview
 CIGUIButtonBehaviorAppends button behaviours to the IGUIObject
 CIGUIObjectBase settings, all objects possess these settings in their m_BaseSettings Instructions can be found in the documentations
 CIGUIScrollBarThe GUI Scroll-bar, used everywhere there is a scroll-bar in the game
 CIGUIScrollBarOwnerBase-class this if you want an object to contain one, or several, scroll-bars
 CIGUITextOwnerFramework for handling Output text
 CIirFilterVariable-gain IIR filter
 CINetSessionInterface for sessions to which messages can be sent
 CInstancingModelRendererRender non-animated (but potentially moving) models using a ShaderRenderModifier
 CIObstructionTestFilterInterface for ICmpObstructionManager Test functions to filter out unwanted shapes
 CIParticleEffectorInterface for particle effectors, which get evaluated every frame to update particles
 CIParticleVarInterface for particle state variables, which get evaluated for each newly constructed particle
 CIReplayLoggerReplay log recorder interface
 CISerializableAn interface for serializable objects
 CISerializerSerialization interface; see serialization overview
 CITerrainOverlayCommon interface for terrain-tile-based and texture-based debug overlays
 CITexCodecVirtual method table for TexCodecs
 CJumpPointCacheJump point cache
 CL10nSingleton for internationalization and localization
 CLitRenderModifierClass LitRenderModifier: Abstract base class for RenderModifiers that apply a shadow map
 CLongOverlayTerrain overlay for pathfinder debugging
 CMD5MD5 hashing algorithm
 CMockTerrainSimple terrain implementation with constant height of 50
 CModelRendererClass ModelRenderer: Abstract base class for all model renders
 CModelVertexRendererClass ModelVertexRenderer: Normal ModelRenderer implementations delegate vertex array management and vertex transformation to an implementation of ModelVertexRenderer
 CNullObstructionFilterObstruction test filter that will test against all shapes
 CObjectIdCacheProviding a map-like structure with JSObject pointers (actually their hash) as keys with correct garbage collection handling (JSObjects can move in memory)
 COverlayRendererClass OverlayRenderer: Render various bits of data that overlay the game world (selection circles, health bars, etc)
 COverrunProtectorOverrunProtector wraps an arbitrary object in isolated page(s) and can detect inadvertent writes to it
 CParticleRendererRender particles
 CPathCostRepresents the cost of a path consisting of horizontal/vertical and diagonal movements over a uniform-cost grid
 CPathfindTileTile data for A* computation
 CPathGoalPathfinder goal
 CPathsWrapper class for OS paths used by the game
 CPoolAllocator design parameters:
 CPriorityQueueHeapPriority queue implemented as a binary heap
 CPriorityQueueListPriority queue implemented as an unsorted array
 CProfileColumnStruct ProfileColumn: Describes one column of an AbstractProfileTable
 CProxyAllocatorFully STL-compatible allocator that simply draws upon another Allocator
 CQuadBatchDataHolds information about a single quad rendering batch
 CQuadBatchKeyKey used to group quads into batches for more efficient rendering
 CQueryRepresentation of a range query
 CRenderModifierClass RenderModifier: Some ModelRenderer implementations provide vertex management behaviour but allow fragment stages to be modified by a plugged in RenderModifier
 CRNSplineRounded Nonuniform Spline for describing spatial curves or paths with constant speed
 CSBlendBatchHelper structure for RenderBlends
 CSBlendLayerRepresents a batched collection of blends using the same texture
 CSBlendStackItemHelper structure for RenderBlends
 CSceneThis interface describes a scene to the renderer
 CSceneCollectorThis interface accepts renderable objects
 CScopeTimerUsed by TIMER
 CScopeTimerAccrueUsed by TIMER_ACCRUE
 CScriptEngineA class using the RAII (Resource Acquisition Is Initialization) idiom to manage initialization and shutdown of the SpiderMonkey script engine
 CScriptInterfaceAbstraction around a SpiderMonkey JSContext
 CScriptInterface_NativeMethodWrapper< void, TC >
 CScriptInterface_NativeWrapper< void >
 CScriptRuntimeAbstraction around a SpiderMonkey JSRuntime
 CSDecalTerrain decal definition
 CSerializeEntityDataSerialization helper template for EntityData
 CSerializeQuerySerialization helper template for Query
 CSerializeSpatialSubdivisionSerialization helper template for SpatialSubdivision
 CSerializeStaticShapeSerialization helper template for StaticShape
 CSerializeUnitShapeSerialization helper template for UnitShape
 CSGUIImageA CGUISprite is actually a collage of several real sprites, this struct represents is such real sprite
 CSGUIMessageMessage send to IGUIObject::HandleMessage() in order to give life to Objects manually with a derived HandleMessage()
 CSGUIScrollBarStyleThe GUI Scroll-bar style
 CSGUISettingA GUI Setting is anything that can be inputted from XML as <object>-attributes (with exceptions)
 CSGUIStyleContains a list of values for new defaults to objects
 CSGUITextAn SGUIText object is a parsed string, divided into text-rendering components
 CSHA256Structure for performing SHA256 encryption on arbitrary data
 CShaderModelRendererImplementation of ModelRenderer that loads the appropriate shaders for rendering each model, and that batches by shader (and by mesh and texture)
 CShaderModelRendererInternalsInternal data of the ShaderModelRenderer
 CShaderModelVertexRendererRender animated models using a ShaderRenderModifier
 CShaderRenderModifierA RenderModifier that sets uniforms and textures appropriately for rendering models
 CShadowMapClass ShadowMap: Maintain the shadow map texture and perform necessary OpenGL setup, including matrix calculations
 CShadowMapInternalsStruct ShadowMapInternals: Internal data for the ShadowMap implementation
 CSimulationCommandSimulation command, typically received over the network in multiplayer games
 CSkipControlGroupsRequireFlagObstructionFilterObstruction test filter that will test only against shapes that:
 CSkipTagObstructionFilterObstruction test filter that will test only against shapes that do not have the specified tag set
 CSkipTagRequireControlGroupsAndFlagObstructionFilterObstruction test filter that will test only against shapes that:
 CSkipTagRequireFlagsObstructionFilterObstruction test filter that will test only against shapes that:
 CSkyManagerClass SkyManager: Maintain sky settings and textures, and render the sky
 CSliceOpInfoHolds support information during a CBrush/CPlane slicing operation
 CSliceOpNewVertexInfoHolds information about a newly introduced vertex on an edge in a brush as the result of a slicing operation
 CSliceOpVertexInfoHolds information about what happens to a single vertex in a brush during a slicing operation
 CSNSplineSmooth Nonuniform Spline for describing paths with smooth acceleration and deceleration, but without turning
 CSOverlayLineLine-based overlay, with world-space coordinates, rendered in the world potentially behind other objects
 CSOverlayQuadRectangular single-quad terrain overlay, in world space coordinates
 CSOverlaySpriteBillboard sprite overlay, with world-space coordinates, rendered on top of all other objects
 CSOverlayTexturedLineTextured line overlay, with world-space coordinates, rendered in the world onto the terrain
 CSparseGridSimilar to Grid, except optimised for sparse usage (the grid is subdivided into buckets whose contents are only initialised on demand, to save on memset cost)
 CSParticleSimulation state for a single particle
 CSpatialSubdivisionA very basic subdivision scheme for finding items in ranges
 CSplineDataDescribes a node of the spline
 CSPropPointDescribes the position of a prop point within its parent model
 CSquareSortFunctor for sorting edge-squares by approximate proximity to a fixed point
 CStaticShapeInternal representation of arbitrary-rotation static square shapes for buildings
 CStationaryOnlyObstructionFilterObstruction test filter that will test only against stationary (i.e
 CSTerritoryBoundaryDescribes an outline of a territory, where the latter are understood to mean the largest sets of mutually connected tiles ('connected' as in the mathematical sense from graph theory) that are either all reachable or all unreachable from a root influence entity
 CSTileBlendRepresents a blend for a single tile, texture and shape
 CSTileBlendStackRepresents the ordered collection of blends drawn on a particular tile
 CTerrainOverlayBase class for (relatively) simple drawing of data onto terrain tiles, intended for debugging purposes and for the Atlas editor (hence not trying to be very efficient)
 CTerrainRendererClass TerrainRenderer: Render everything related to the terrain, especially patches and water
 CTerrainRendererInternalsStruct TerrainRendererInternals: Internal variables used by the TerrainRenderer class
 CTerrainTextureOverlayBase class for texture-based terrain overlays, with an arbitrary number of texels per terrain tile, intended for debugging purposes
 CTestLoggerHelper class for unit tests - captures all log output while it is in scope, and returns it as a single string
 CTestStdoutLoggerHelper class for unit tests - redirects all log output to stdout
 CTexStores all data describing an image
 CTileIDRepresents the 2D coordinates of a tile
 CTimerStateStores all timer state shared between readers and the update thread
 CTNSplineTimed Nonuniform Spline for paths with different time intervals between nodes
 CUnitShapeInternal representation of axis-aligned circular shapes for moving units
 CVertexIndexArrayA VertexArray that is specialised to handle 16-bit array indices
 CWaterManagerClass WaterManager: Maintain rendering-related water settings and textures Anything that affects gameplay should go in CcmpWaterManager.cpp and passed to this (possibly as copy)
 CWaypointPathReturned path
 CWELL512Random number generator with period 2^{512}-1; effectively a better version of MT19937 (smaller state, similarly fast, simpler code, better distribution)
 CWinScopedPreserveLastErrorSome WinAPI functions SetLastError(0) on success, which is bad because it can hide previous errors