Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

Fx.h File Reference

#include <Windows.h>
#include "Genesis.h"
#include "Console.h"

Go to the source code of this file.

Compounds

struct  Fx_Player
struct  Fx_System
struct  Fx_TempPlayer

Defines

#define FX_SMOKE_TRAIL   (1<<0)
#define FX_PARTICLE_TRAIL   (1<<1)
#define FX_SHREDDER   (1<<2)
#define FX_EXPLODE1   0
#define FX_EXPLODE2   1
#define NUM_SMOKE_TEXTURES   10
#define NUM_PARTICLE_TEXTURES   8
#define NUM_EXPLODE_TEXTURES   6
#define FX_MAX_TEMP_PLAYERS   512

Typedefs

typedef Fx_System Fx_System
typedef Fx_Player Fx_Player
typedef Fx_TempPlayer Fx_TempPlayer
typedef geBoolean Fx_TempPlayerControl (Fx_System *Fx, Fx_TempPlayer *Player, float Time)

Functions

Fx_SystemFx_SystemCreate (geWorld *World, Console_Console *Console)
void Fx_SystemDestroy (Fx_System *Fx)
geBoolean Fx_SystemFrame (Fx_System *Fx, float Time)
geBoolean Fx_SpawnFx (Fx_System *Fx, geVec3d *Pos, uint8 Type)
Fx_TempPlayerFx_SystemAddTempPlayer (Fx_System *Fx)
void Fx_SystemRemoveTempPlayer (Fx_System *Fx, Fx_TempPlayer *Player)
geBoolean Fx_PlayerSetFxFlags (Fx_System *Fx, Fx_Player *Player, uint16 FxFlags)
geBoolean Fx_PlayerFrame (Fx_System *Fx, Fx_Player *Player, const geXForm3d *XForm, float Time)


Define Documentation

#define FX_EXPLODE1   0
 

Definition at line 36 of file Fx.h.

Referenced by Fx_SpawnFx(), Grenade_Control(), and Rocket_Control().

#define FX_EXPLODE2   1
 

Definition at line 37 of file Fx.h.

Referenced by Blaster_Control(), Bot_ActorDying(), Bot_Dying(), Fx_SpawnFx(), Item_ControlArmor(), Item_ControlGrenade(), Item_ControlGrenadeAmmo(), Item_ControlHealth(), Item_ControlRocket(), Item_ControlRocketAmmo(), Item_ControlShredder(), Item_ControlShredderAmmo(), and Player_Dying().

#define FX_MAX_TEMP_PLAYERS   512
 

Definition at line 44 of file Fx.h.

Referenced by Fx_SystemAddTempPlayer(), and Fx_SystemFrame().

#define FX_PARTICLE_TRAIL   (1<<1)
 

Definition at line 32 of file Fx.h.

Referenced by Attacker_Fire(), FireBlaster(), and Fx_PlayerFrame().

#define FX_SHREDDER   (1<<2)
 

Definition at line 33 of file Fx.h.

Referenced by FireShredder(), and Fx_PlayerFrame().

#define FX_SMOKE_TRAIL   (1<<0)
 

Definition at line 31 of file Fx.h.

Referenced by FireGrenade(), FireRocket(), Fx_PlayerFrame(), and Fx_PlayerSetFxFlags().

#define NUM_EXPLODE_TEXTURES   6
 

Definition at line 42 of file Fx.h.

Referenced by ControlExplode1Anim(), FreeFxTextures(), and LoadFxTextures().

#define NUM_PARTICLE_TEXTURES   8
 

Definition at line 41 of file Fx.h.

Referenced by ControlExplode2Anim(), ControlParticleAnim(), FreeFxTextures(), and LoadFxTextures().

#define NUM_SMOKE_TEXTURES   10
 

Definition at line 40 of file Fx.h.

Referenced by ControlShredderAnim(), ControlSmokeAnim(), FreeFxTextures(), and LoadFxTextures().


Typedef Documentation

typedef struct Fx_Player Fx_Player
 

Definition at line 49 of file Fx.h.

typedef struct Fx_System Fx_System
 

Definition at line 48 of file Fx.h.

typedef struct Fx_TempPlayer Fx_TempPlayer
 

Definition at line 50 of file Fx.h.

typedef geBoolean Fx_TempPlayerControl(Fx_System *Fx, Fx_TempPlayer *Player, float Time)
 

Definition at line 52 of file Fx.h.


Function Documentation

geBoolean Fx_PlayerFrame Fx_System Fx,
Fx_Player Player,
const geXForm3d XForm,
float  Time
 

Definition at line 287 of file Fx.c.

References ControlParticleTrail(), ControlShredderFx(), ControlSmokeTrail(), FX_PARTICLE_TRAIL, FX_SHREDDER, FX_SMOKE_TRAIL, Fx_Player::FxFlags, GE_TRUE, geBoolean, and Fx_Player::XForm.

Referenced by Client_UpdateSinglePlayer().

00288 {
00289         Player->XForm = *XForm;
00290 
00291         if (Player->FxFlags & FX_SMOKE_TRAIL)
00292                 ControlSmokeTrail(Fx, Player, Time);
00293 
00294         if (Player->FxFlags & FX_PARTICLE_TRAIL)
00295                 ControlParticleTrail(Fx, Player, Time);
00296 
00297         if (Player->FxFlags & FX_SHREDDER)
00298                 ControlShredderFx(Fx, Player, Time);
00299 
00300         return GE_TRUE;
00301 }

geBoolean Fx_PlayerSetFxFlags Fx_System Fx,
Fx_Player Player,
uint16  FxFlags
 

Definition at line 267 of file Fx.c.

References FX_SMOKE_TRAIL, Fx_Player::FxFlags, GE_TRUE, geBoolean, ShutdownSmokeTrail(), and StartupSmokeTrail().

Referenced by Client_DestroyPlayer(), Client_ParsePlayerData(), ControlTempPlayers(), and UpdatePlayers().

00268 {
00269         if (FxFlags == Player->FxFlags)
00270                 return GE_TRUE;         // Nothing to change...
00271 
00272         //Console_Printf(Fx->Console, "Flags changed.\n");
00273 
00274         if ((Player->FxFlags & FX_SMOKE_TRAIL) && !(FxFlags & FX_SMOKE_TRAIL))
00275                 ShutdownSmokeTrail(Fx, Player);
00276         else if (!(Player->FxFlags & FX_SMOKE_TRAIL) && (FxFlags & FX_SMOKE_TRAIL))
00277                 StartupSmokeTrail(Fx, Player);
00278 
00279         Player->FxFlags = FxFlags;                              // The flags are now current
00280 
00281         return GE_TRUE;
00282 }

geBoolean Fx_SpawnFx Fx_System Fx,
geVec3d Pos,
uint8  Type
 

Definition at line 189 of file Fx.c.

References Fx_TempPlayer::Control, ControlExplode1Anim(), ControlExplode2Anim(), FX_EXPLODE1, FX_EXPLODE2, Fx_SystemAddTempPlayer(), GE_FALSE, GE_TRUE, geBoolean, Fx_TempPlayer::Pos, and Fx_TempPlayer::Time.

Referenced by ReadServerMessages().

00190 {
00191         Fx_TempPlayer   *TempPlayer;
00192 
00193         TempPlayer = Fx_SystemAddTempPlayer(Fx);
00194 
00195         if (!TempPlayer)
00196                 return GE_TRUE;         // Oh well, they just won't see any smoke...
00197 
00198         TempPlayer->Pos = *Pos;
00199         TempPlayer->Time = 0.0f;
00200 
00201         switch(Type)
00202         {
00203                 case FX_EXPLODE1:
00204                         TempPlayer->Control = ControlExplode1Anim;
00205                         break;
00206 
00207                 case FX_EXPLODE2:
00208                         TempPlayer->Control = ControlExplode2Anim;
00209                         break;
00210 
00211                 default:
00212                         return GE_FALSE;
00213         }
00214 
00215         return GE_TRUE;
00216 }

Fx_TempPlayer* Fx_SystemAddTempPlayer Fx_System Fx  ) 
 

Definition at line 221 of file Fx.c.

References Fx_TempPlayer::Active, Fx_System::CurrentTempPlayer, FX_MAX_TEMP_PLAYERS, GE_TRUE, int32, NULL, and Fx_System::TempPlayers.

Referenced by ControlParticleTrail(), ControlShredderFx(), ControlSmokeTrail(), and Fx_SpawnFx().

00222 {
00223         Fx_TempPlayer   *Player, *End;
00224         int32                   i;
00225 
00226 
00227         Player = Fx->CurrentTempPlayer;
00228 
00229         if (!Player)
00230                 Player = Fx->TempPlayers;
00231 
00232         End = &Fx->TempPlayers[FX_MAX_TEMP_PLAYERS-1];
00233         
00234         for (i=0; i< FX_MAX_TEMP_PLAYERS; i++)
00235         {
00236                 if (!Player->Active)            // Look for a non active player
00237                 {
00238                         Fx->CurrentTempPlayer = Player;
00239 
00240                         memset(Player, 0, sizeof(Fx_TempPlayer));
00241                         Player->Active = GE_TRUE;
00242                         return Player;
00243                 }
00244 
00245                 Player++;
00246 
00247                 if (Player >= End)              // Wrap player at end of structure to beginning
00248                         Player = Fx->TempPlayers;
00249         }
00250 
00251 return NULL;
00252 }

Fx_System* Fx_SystemCreate geWorld World,
Console_Console Console
 

Definition at line 117 of file Fx.c.

References Fx_System::Console, Fx_SystemDestroy(), GE_RAM_ALLOCATE_STRUCT, LoadFxTextures(), NULL, and Fx_System::World.

Referenced by GameMgr_SetWorld().

00118 {
00119         Fx_System       *Fx;
00120 
00121         assert(World);
00122         //assert(Console);
00123 
00124         Fx = GE_RAM_ALLOCATE_STRUCT(Fx_System);
00125 
00126         if (!Fx)
00127                 return NULL;
00128 
00129         memset(Fx, 0, sizeof(Fx_System));
00130 
00131         Fx->World = World;
00132         Fx->Console = Console;
00133 
00134         if (!LoadFxTextures(Fx))
00135         {
00136                 Fx_SystemDestroy(Fx);
00137                 return NULL;
00138         }
00139 
00140         return Fx;
00141 }

void Fx_SystemDestroy Fx_System Fx  ) 
 

Definition at line 146 of file Fx.c.

References FreeFxTextures(), GE_TRUE, geBoolean, and geRam_Free.

Referenced by Fx_SystemCreate(), GameMgr_FreeAllObjects(), and GameMgr_FreeWorld().

00147 {
00148         geBoolean               Ret;
00149 
00150         assert(Fx);
00151 
00152         Ret = FreeFxTextures(Fx);
00153 
00154         assert(Ret == GE_TRUE);
00155 
00156         geRam_Free(Fx);
00157 }

geBoolean Fx_SystemFrame Fx_System Fx,
float  Time
 

Definition at line 162 of file Fx.c.

References Fx_TempPlayer::Active, Fx_TempPlayer::Control, FX_MAX_TEMP_PLAYERS, GE_FALSE, GE_TRUE, geBoolean, int32, and Fx_System::TempPlayers.

Referenced by GameMgr_Frame().

00163 {
00164         Fx_TempPlayer   *Player;
00165         int32                   i;
00166 
00167         // Control the temp players
00168         Player = Fx->TempPlayers;
00169         
00170         for (i=0; i< FX_MAX_TEMP_PLAYERS; i++, Player++)
00171         {
00172                 if (!Player->Active)
00173                         continue;
00174 
00175                 if (!Player->Control)
00176                         continue;
00177 
00178                 // Call the players control routine...
00179                 if (!Player->Control(Fx, Player, Time))
00180                         return GE_FALSE;
00181         }
00182 
00183         return GE_TRUE;
00184 }

void Fx_SystemRemoveTempPlayer Fx_System Fx,
Fx_TempPlayer Player
 

Definition at line 257 of file Fx.c.

References Fx_TempPlayer::Active, Fx_System::CurrentTempPlayer, and GE_FALSE.

Referenced by ControlExplode1Anim(), ControlExplode2Anim(), ControlParticleAnim(), ControlShredderAnim(), and ControlSmokeAnim().

00258 {
00259         Player->Active = GE_FALSE;
00260 
00261         Fx->CurrentTempPlayer = Player;         // Easy steal for any one who wants to create a temp player
00262 }


Generated on Tue Sep 30 12:37:33 2003 for GTestAndEngine by doxygen 1.3.2