00001
00002
00003
00004 #ifndef GENVS_H
00005 #define GENVS_H
00006
00007 #include "Quatern.h"
00008 #include "GenVSI.h"
00009
00010 #include "PhysicsObject.h"
00011 #include "PhysicsJoint.h"
00012 #include "PhysicsSystem.h"
00013
00014 #pragma warning( disable : 4068 )
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00019 #pragma GE_BrushContents
00020 typedef enum
00021 {
00022 Water = 0x00010000,
00023 Lava = 0x00020000,
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 } UserContentsEnum;
00041
00042
00043 #pragma GE_Type("Player.ico")
00044 typedef struct PlayerStart
00045 {
00046 #pragma GE_Published
00047 geVec3d Origin;
00048 #pragma GE_Origin(Origin)
00049 } PlayerStart;
00050
00051
00052 #pragma GE_Type("Player.ico")
00053 typedef struct DeathMatchStart
00054 {
00055 #pragma GE_Published
00056 geVec3d Origin;
00057 #pragma GE_Origin(Origin)
00058 } DeathMatchStart;
00059
00060
00061
00062 typedef struct AttackerTurret
00063 {
00064
00065 geVec3d Origin;
00066
00067 } AttackerTurret;
00068
00069
00070 typedef struct PhysicsObject PhysicsObject;
00071 #pragma GE_Type("Model.ico")
00072 typedef struct PhysicsObject
00073 {
00074 #pragma GE_Published
00075 geWorld_Model *Model;
00076 geVec3d Origin;
00077 float mass;
00078 int isAffectedByGravity;
00079 int respondsToForces;
00080 float linearDamping;
00081 float angularDamping;
00082 PhysicsObject *Next;
00083 float physicsScale;
00084 #pragma GE_DefaultValue(mass, "10.0")
00085 #pragma GE_DefaultValue(isAffectedByGravity, "1")
00086 #pragma GE_DefaultValue(respondsToForces, "1")
00087 #pragma GE_DefaultValue(linearDamping, "0.0005")
00088 #pragma GE_DefaultValue(angularDamping, "0.0005")
00089 #pragma GE_DefaultValue(physicsScale, "0.01")
00090
00091 #pragma GE_Private
00092 gePhysicsObject * stateInfo;
00093 #pragma GE_Origin(Origin)
00094 } PhysicsObject;
00095
00096 typedef struct PhysicsJoint PhysicsJoint;
00097
00098
00099
00100 #pragma GE_Type("Item.ico")
00101 typedef struct PhysicsJoint
00102 {
00103 #pragma GE_Published
00104 geVec3d Origin;
00105 PhysicsObject * physicsObject1;
00106 PhysicsObject * physicsObject2;
00107 PhysicsJoint * Next;
00108 float assemblyRate;
00109 int jointType;
00110 float physicsScale;
00111 #pragma GE_DefaultValue(assemblyRate, "0.03")
00112 #pragma GE_DefaultValue(physicsScale, "0.01")
00113
00114 #pragma GE_Private
00115 gePhysicsJoint * jointData;
00116 #pragma GE_Origin(Origin)
00117 } PhysicsJoint;
00118
00119 #pragma GE_Type("Item.ico")
00120
00121
00122 typedef struct PhysicalSystem
00123 {
00124 #pragma GE_Published
00125 geVec3d Origin;
00126 PhysicsObject * physicsObjectListHeadPtr;
00127 PhysicsJoint * jointListHeadPtr;
00128 #pragma GE_Private
00129
00130 gePhysicsSystem * physsysData;
00131 #pragma GE_Origin(Origin)
00132 } PhysicalSystem;
00133
00134
00135
00136 typedef enum
00137 {
00138 FALLOFF_NONE = 0,
00139 FALLOFF_ONE_OVER_D,
00140 FALLOFF_ONE_OVER_DSQUARED
00141 };
00142
00143 #pragma GE_Type("Item.ico")
00144
00145 typedef struct ForceField
00146 {
00147 #pragma GE_Published
00148 geVec3d Origin;
00149 float radius;
00150 float strength;
00151 int falloffType;
00152 int affectsPlayers;
00153 int affectsPhysicsObjects;
00154
00155 #pragma GE_DefaultValue(radius, "50.0")
00156 #pragma GE_DefaultValue(falloffType, "1")
00157 #pragma GE_DefaultValue(affectsPlayers, "1")
00158 #pragma GE_DefaultValue(affectsPhysicsObjects, "1")
00159
00160 #pragma GE_Origin(Origin)
00161 } ForceField;
00162
00163
00164 #pragma GE_Type("Model.ico")
00165 typedef struct Door
00166 {
00167 #pragma GE_Published
00168 geWorld_Model *Model;
00169 geVec3d Origin;
00170 #pragma GE_Origin(Origin)
00171 } Door;
00172
00173
00174 #pragma GE_Type("Model.ico")
00175 typedef struct MovingPlat
00176 {
00177 #pragma GE_Published
00178 geWorld_Model *Model;
00179 geVec3d Origin;
00180 #pragma GE_Origin(Origin)
00181 } MovingPlat;
00182
00183
00184 #pragma GE_Type("Player.ico")
00185 typedef struct ChangeLevel
00186 {
00187 #pragma GE_Published
00188 geWorld_Model *Model;
00189 char *LevelName;
00190 geVec3d Origin;
00191 #pragma GE_Origin(Origin)
00192 } ChangeLevel;
00193
00194
00195 #pragma GE_Type("Item.ico")
00196 typedef struct ItemHealth
00197 {
00198 #pragma GE_Published
00199 geVec3d Origin;
00200 #pragma GE_Origin(Origin)
00201 } ItemHealth;
00202
00203
00204 #pragma GE_Type("Item.ico")
00205 typedef struct ItemArmor
00206 {
00207 #pragma GE_Published
00208 geVec3d Origin;
00209 #pragma GE_Origin(Origin)
00210 } ItemArmor;
00211
00212
00213 #pragma GE_Type("Item.ico")
00214 typedef struct ItemRocket
00215 {
00216 #pragma GE_Published
00217 geVec3d Origin;
00218 #pragma GE_Origin(Origin)
00219 } ItemRocket;
00220
00221
00222 #pragma GE_Type("Item.ico")
00223 typedef struct ItemRocketAmmo
00224 {
00225 #pragma GE_Published
00226 geVec3d Origin;
00227 #pragma GE_Origin(Origin)
00228 } ItemRocketAmmo;
00229
00230
00231 #pragma GE_Type("Item.ico")
00232 typedef struct ItemGrenade
00233 {
00234 #pragma GE_Published
00235 geVec3d Origin;
00236 #pragma GE_Origin(Origin)
00237 } ItemGrenade;
00238
00239
00240 #pragma GE_Type("Item.ico")
00241 typedef struct ItemGrenadeAmmo
00242 {
00243 #pragma GE_Published
00244 geVec3d Origin;
00245 #pragma GE_Origin(Origin)
00246 } ItemGrenadeAmmo;
00247
00248
00249 #pragma GE_Type("Item.ico")
00250 typedef struct ItemShredder
00251 {
00252 #pragma GE_Published
00253 geVec3d Origin;
00254 #pragma GE_Origin(Origin)
00255 } ItemShredder;
00256
00257
00258 #pragma GE_Type("Item.ico")
00259 typedef struct ItemShredderAmmo
00260 {
00261 #pragma GE_Published
00262 geVec3d Origin;
00263 #pragma GE_Origin(Origin)
00264 } ItemShredderAmmo;
00265
00266
00267 #pragma GE_Type("FogLight.ico")
00268 typedef struct FogLight
00269 {
00270
00271 #pragma GE_Published
00272 geVec3d Origin;
00273 GE_RGBA Color;
00274 float Brightness;
00275 float Radius;
00276 #pragma GE_Origin(Origin)
00277 } FogLight;
00278
00279 #ifdef __cplusplus
00280 }
00281 #endif
00282
00283 #pragma warning( default : 4068 )
00284
00285 #endif