#ifndef __LIGHT_EFFECTS #define __LIGHT_EFFECTS /* // Light effect types enum { NO_LIGHT_EFFECT, LIGHT_FLARE_MARK_1, }; */ typedef struct { INT32 sGridNo; // gridno at which the tear gas cloud is centered UINT8 ubDuration; // the number of turns will remain effective UINT8 bRadius; // the current radius UINT8 bAge; // the number of turns light has been around BOOLEAN fAllocated; INT8 bType; INT32 iLight; UINT32 uiTimeOfLastUpdate; // Flugente: added variables necessary for dynamic (flash-)lighting INT32 flags; SoldierID ubOwner; } LIGHTEFFECT; #define LIGHTEFFECT_OLDSIZE 20 // Flugente: the old size of LIGHTEFFECT (before Gameversion DYNAMIC_FLASHLIGHTS) #define LIGHTEFFECT_FLASHLIGHT 0x00000001 // Decays all light effects... void DecayLightEffects( UINT32 uiTime ); // Add light to gridno // ( Replacement algorithm uses distance away ) void AddLightEffectToTile( INT8 bType, INT32 sGridNo ); void RemoveLightEffectFromTile( INT32 sGridNo ); INT32 NewLightEffect( INT32 sGridNo, UINT8 ubDuration, UINT8 ubStartRadius ); BOOLEAN SaveLightEffectsToSaveGameFile( HWFILE hFile ); BOOLEAN LoadLightEffectsFromLoadGameFile( HWFILE hFile ); BOOLEAN SaveLightEffectsToMapTempFile( INT16 sMapX, INT16 sMapY, INT8 bMapZ ); BOOLEAN LoadLightEffectsFromMapTempFile( INT16 sMapX, INT16 sMapY, INT8 bMapZ ); void ResetLightEffects(); BOOLEAN IsLightEffectAtTile( INT32 sGridNo ); // Flugente: create and destroy light sources tied to a person void CreatePersonalLight( INT32 sGridNo, SoldierID ubID ); void RemovePersonalLights(SoldierID ubID ); #endif