00001 #ifndef ELECTRIC_H
00002 #define ELECTRIC_H
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007
00008 #include "Genesis.h"
00009
00010 #define ELECTRIC_BOLT_REDDOMINANT 0
00011 #define ELECTRIC_BOLT_GREENDOMINANT 1
00012 #define ELECTRIC_BOLT_BLUEDOMINANT 2
00013
00014 #pragma warning( disable : 4068 )
00015
00016 #pragma GE_Type("terminus.bmp")
00017 typedef struct ElectricBoltTerminus
00018 {
00019 #pragma GE_Published
00020 geVec3d origin;
00021
00022 #pragma GE_Origin(origin)
00023 } ElectricBoltTerminus;
00024
00025 typedef struct Electric_BoltEffect Electric_BoltEffect;
00026
00027 #pragma GE_Type("bolt.bmp")
00028 typedef struct ElectricBolt
00029 {
00030 #pragma GE_Private
00031 geFloat LastTime;
00032 geFloat LastBoltTime;
00033 Electric_BoltEffect *Bolt;
00034 geSound * LoopingSound;
00035
00036 #pragma GE_Published
00037 geVec3d origin;
00038 int Width;
00039 int NumPoints;
00040 int Intermittent;
00041 geFloat MinFrequency;
00042 geFloat MaxFrequency;
00043 geFloat Wildness;
00044 ElectricBoltTerminus * Terminus;
00045 int DominantColor;
00046 GE_RGBA Color;
00047
00048 #pragma GE_Origin(origin)
00049 #pragma GE_DefaultValue(Width, "8")
00050 #pragma GE_DefaultValue(NumPoints, "64")
00051 #pragma GE_DefaultValue(Intermittent, "1")
00052 #pragma GE_DefaultValue(MinFrequency, "4.0")
00053 #pragma GE_DefaultValue(MaxFrequency, "1.0")
00054 #pragma GE_DefaultValue(Wildness, "0.5")
00055 #pragma GE_DefaultValue(DominantColor, "2")
00056 #pragma GE_DefaultValue(Color, "160.0 160.0 255.0")
00057
00058 #pragma GE_Documentation(Width, "Width in texels of the bolt")
00059 #pragma GE_Documentation(NumPoints, "Power of 2. Number of control points. Stick to 32, 64, 128.")
00060 #pragma GE_Documentation(Intermittent, "0 or 1. Whether or not the bolt is continuous, or random")
00061 #pragma GE_Documentation(MinFrequency, "If the bolt is intermittent, the minimum time in seconds between zaps")
00062 #pragma GE_Documentation(MaxFrequency, "If the bolt is intermittent, the maximum time in seconds between zaps")
00063 #pragma GE_Documentation(Wildness, "Degree of 'freneticity' of the bolt (0 to 1)")
00064 #pragma GE_Documentation(Terminus, "Where the other end of the bolt is")
00065 #pragma GE_Documentation(DominantColor, "Specifies the dominant color of the bolt. 0 = Red, 1 = Green, 2 = Blue")
00066 #pragma GE_Documentation(Color, "Base color of the bolt. The two non-dominant color values MUST be the same!")
00067
00068 } ElectricBolt;
00069 #pragma warning( default : 4068 )
00070
00071 geBoolean Electric_Init(geEngine *Engine, geWorld *World, geVFile *MainFS, geSound_System *SoundSystem);
00072 geBoolean Electric_Reset(geWorld *World);
00073 geBoolean Electric_Frame(geWorld *World, const geXForm3d *ViewPoint, geFloat Time);
00074 geBoolean Electric_Shutdown(void);
00075
00076 #ifdef __cplusplus
00077 }
00078 #endif
00079
00080 #endif
00081