00001
00002
00003 #ifndef G_PUBLIC_H
00004
00005
00006
00007 #define G_PUBLIC_H
00008
00009 #define Q3_INFINITE 16777216
00010
00011 #define GAME_API_VERSION 8
00012
00013
00014
00015
00016
00017 #define SVF_NOCLIENT 0x00000001 // don't send entity to clients, even if it has effects
00018 #define SVF_BOT 0x00000008 // set if the entity is a bot
00019 #define SVF_PLAYER_USABLE 0x00000010 // player can use this with the use button
00020 #define SVF_BROADCAST 0x00000020 // send to all connected clients
00021 #define SVF_PORTAL 0x00000040 // merge a second pvs at origin2 into snapshots
00022 #define SVF_USE_CURRENT_ORIGIN 0x00000080 // entity->r.currentOrigin instead of entity->s.origin
00023
00024 #define SVF_SINGLECLIENT 0x00000100 // only send to a single client (entityShared_t->singleClient)
00025 #define SVF_NOSERVERINFO 0x00000200 // don't send CS_SERVERINFO updates to this client
00026
00027
00028 #define SVF_CAPSULE 0x00000400 // use capsule for collision detection instead of bbox
00029 #define SVF_NOTSINGLECLIENT 0x00000800 // send entity to everyone but one client
00030
00031
00032 #define SVF_OWNERNOTSHARED 0x00001000 // If it's owned by something and another thing owned by that something
00033
00034
00035 #define SVF_ICARUS_FREEZE 0x00008000 // NPCs are frozen, ents don't execute ICARUS commands
00036
00037 #define SVF_GLASS_BRUSH 0x08000000 // Ent is a glass brush
00038
00039 #define SVF_NO_BASIC_SOUNDS 0x10000000 // No basic sounds
00040 #define SVF_NO_COMBAT_SOUNDS 0x20000000 // No combat sounds
00041 #define SVF_NO_EXTRA_SOUNDS 0x40000000 // No extra or jedi sounds
00042
00043
00044 #define G2TRFLAG_DOGHOULTRACE 0x00000001 //do the ghoul2 trace
00045 #define G2TRFLAG_HITCORPSES 0x00000002 //will try g2 collision on the ent even if it's EF_DEAD
00046 #define G2TRFLAG_GETSURFINDEX 0x00000004 //will replace surfaceFlags with the ghoul2 surface index that was hit, if any.
00047 #define G2TRFLAG_THICK 0x00000008 //assures that the trace radius will be significantly large regardless of the trace box size.
00048
00049
00050
00051
00052 typedef struct failedEdge_e
00053 {
00054 int startID;
00055 int endID;
00056 int checkTime;
00057 int entID;
00058 } failedEdge_t;
00059
00060 typedef struct {
00061 qboolean linked;
00062 int linkcount;
00063
00064 int svFlags;
00065 int singleClient;
00066
00067 qboolean bmodel;
00068
00069 vec3_t mins, maxs;
00070 int contents;
00071
00072
00073 vec3_t absmin, absmax;
00074
00075
00076
00077
00078
00079 vec3_t currentOrigin;
00080 vec3_t currentAngles;
00081 qboolean mIsRoffing;
00082
00083
00084
00085
00086
00087
00088 int ownerNum;
00089
00090
00091
00092
00093 int broadcastClients[2];
00094
00095 } entityShared_t;
00096
00097
00098
00099
00100
00101
00102 typedef enum {
00103
00104
00105 G_PRINT,
00106
00107
00108 G_ERROR,
00109
00110
00111 G_MILLISECONDS,
00112
00113
00114
00115
00116
00117 G_PRECISIONTIMER_START,
00118 G_PRECISIONTIMER_END,
00119
00120
00121 G_CVAR_REGISTER,
00122 G_CVAR_UPDATE,
00123 G_CVAR_SET,
00124 G_CVAR_VARIABLE_INTEGER_VALUE,
00125
00126 G_CVAR_VARIABLE_STRING_BUFFER,
00127
00128 G_ARGC,
00129
00130
00131 G_ARGV,
00132
00133 G_FS_FOPEN_FILE,
00134 G_FS_READ,
00135 G_FS_WRITE,
00136 G_FS_FCLOSE_FILE,
00137
00138 G_SEND_CONSOLE_COMMAND,
00139
00140
00141
00142
00143
00144
00145 G_LOCATE_GAME_DATA,
00146
00147
00148
00149
00150 G_DROP_CLIENT,
00151
00152
00153 G_SEND_SERVER_COMMAND,
00154
00155
00156
00157 G_SET_CONFIGSTRING,
00158
00159
00160
00161
00162
00163
00164 G_GET_CONFIGSTRING,
00165
00166 G_GET_USERINFO,
00167
00168
00169
00170
00171 G_SET_USERINFO,
00172
00173 G_GET_SERVERINFO,
00174
00175
00176 G_SET_SERVER_CULL,
00177
00178
00179 G_SET_BRUSH_MODEL,
00180
00181
00182 G_TRACE,
00183
00184
00185 G_G2TRACE,
00186
00187
00188 G_POINT_CONTENTS,
00189
00190
00191 G_IN_PVS,
00192
00193 G_IN_PVS_IGNORE_PORTALS,
00194
00195 G_ADJUST_AREA_PORTAL_STATE,
00196
00197 G_AREAS_CONNECTED,
00198
00199 G_LINKENTITY,
00200
00201
00202
00203
00204 G_UNLINKENTITY,
00205
00206
00207 G_ENTITIES_IN_BOX,
00208
00209
00210
00211 G_ENTITY_CONTACT,
00212
00213
00214
00215 G_BOT_ALLOCATE_CLIENT,
00216
00217 G_BOT_FREE_CLIENT,
00218
00219 G_GET_USERCMD,
00220
00221 G_GET_ENTITY_TOKEN,
00222
00223
00224
00225
00226 G_SIEGEPERSSET,
00227 G_SIEGEPERSGET,
00228
00229 G_FS_GETFILELIST,
00230 G_DEBUG_POLYGON_CREATE,
00231 G_DEBUG_POLYGON_DELETE,
00232 G_REAL_TIME,
00233 G_SNAPVECTOR,
00234
00235 G_TRACECAPSULE,
00236 G_ENTITY_CONTACTCAPSULE,
00237
00238
00239 SP_GETSTRINGTEXTSTRING,
00240
00241 G_ROFF_CLEAN,
00242 G_ROFF_UPDATE_ENTITIES,
00243 G_ROFF_CACHE,
00244 G_ROFF_PLAY,
00245 G_ROFF_PURGE_ENT,
00246
00247
00248 G_TRUEMALLOC,
00249 G_TRUEFREE,
00250
00251
00252 G_ICARUS_RUNSCRIPT,
00253 G_ICARUS_REGISTERSCRIPT,
00254
00255 G_ICARUS_INIT,
00256 G_ICARUS_VALIDENT,
00257 G_ICARUS_ISINITIALIZED,
00258 G_ICARUS_MAINTAINTASKMANAGER,
00259 G_ICARUS_ISRUNNING,
00260 G_ICARUS_TASKIDPENDING,
00261 G_ICARUS_INITENT,
00262 G_ICARUS_FREEENT,
00263 G_ICARUS_ASSOCIATEENT,
00264 G_ICARUS_SHUTDOWN,
00265 G_ICARUS_TASKIDSET,
00266 G_ICARUS_TASKIDCOMPLETE,
00267 G_ICARUS_SETVAR,
00268 G_ICARUS_VARIABLEDECLARED,
00269 G_ICARUS_GETFLOATVARIABLE,
00270 G_ICARUS_GETSTRINGVARIABLE,
00271 G_ICARUS_GETVECTORVARIABLE,
00272
00273 G_SET_SHARED_BUFFER,
00274
00275
00276 G_MEMSET = 100,
00277 G_MEMCPY,
00278 G_STRNCPY,
00279 G_SIN,
00280 G_COS,
00281 G_ATAN2,
00282 G_SQRT,
00283 G_MATRIXMULTIPLY,
00284 G_ANGLEVECTORS,
00285 G_PERPENDICULARVECTOR,
00286 G_FLOOR,
00287 G_CEIL,
00288
00289 G_TESTPRINTINT,
00290 G_TESTPRINTFLOAT,
00291
00292 G_ACOS,
00293 G_ASIN,
00294
00295
00296
00297
00298 G_NAV_INIT = 200,
00299 G_NAV_FREE,
00300 G_NAV_LOAD,
00301 G_NAV_SAVE,
00302 G_NAV_ADDRAWPOINT,
00303 G_NAV_CALCULATEPATHS,
00304 G_NAV_HARDCONNECT,
00305 G_NAV_SHOWNODES,
00306 G_NAV_SHOWEDGES,
00307 G_NAV_SHOWPATH,
00308 G_NAV_GETNEARESTNODE,
00309 G_NAV_GETBESTNODE,
00310 G_NAV_GETNODEPOSITION,
00311 G_NAV_GETNODENUMEDGES,
00312 G_NAV_GETNODEEDGE,
00313 G_NAV_GETNUMNODES,
00314 G_NAV_CONNECTED,
00315 G_NAV_GETPATHCOST,
00316 G_NAV_GETEDGECOST,
00317 G_NAV_GETPROJECTEDNODE,
00318 G_NAV_CHECKFAILEDNODES,
00319 G_NAV_ADDFAILEDNODE,
00320 G_NAV_NODEFAILED,
00321 G_NAV_NODESARENEIGHBORS,
00322 G_NAV_CLEARFAILEDEDGE,
00323 G_NAV_CLEARALLFAILEDEDGES,
00324 G_NAV_EDGEFAILED,
00325 G_NAV_ADDFAILEDEDGE,
00326 G_NAV_CHECKFAILEDEDGE,
00327 G_NAV_CHECKALLFAILEDEDGES,
00328 G_NAV_ROUTEBLOCKED,
00329 G_NAV_GETBESTNODEALTROUTE,
00330 G_NAV_GETBESTNODEALT2,
00331 G_NAV_GETBESTPATHBETWEENENTS,
00332 G_NAV_GETNODERADIUS,
00333 G_NAV_CHECKBLOCKEDEDGES,
00334 G_NAV_CLEARCHECKEDNODES,
00335 G_NAV_CHECKEDNODE,
00336 G_NAV_SETCHECKEDNODE,
00337 G_NAV_FLAGALLNODES,
00338 G_NAV_GETPATHSCALCULATED,
00339 G_NAV_SETPATHSCALCULATED,
00340
00341
00342 BOTLIB_SETUP = 250,
00343 BOTLIB_SHUTDOWN,
00344 BOTLIB_LIBVAR_SET,
00345 BOTLIB_LIBVAR_GET,
00346 BOTLIB_PC_ADD_GLOBAL_DEFINE,
00347 BOTLIB_START_FRAME,
00348 BOTLIB_LOAD_MAP,
00349 BOTLIB_UPDATENTITY,
00350 BOTLIB_TEST,
00351
00352 BOTLIB_GET_SNAPSHOT_ENTITY,
00353 BOTLIB_GET_CONSOLE_MESSAGE,
00354 BOTLIB_USER_COMMAND,
00355
00356 BOTLIB_AAS_ENABLE_ROUTING_AREA = 300,
00357 BOTLIB_AAS_BBOX_AREAS,
00358 BOTLIB_AAS_AREA_INFO,
00359 BOTLIB_AAS_ENTITY_INFO,
00360
00361 BOTLIB_AAS_INITIALIZED,
00362 BOTLIB_AAS_PRESENCE_TYPE_BOUNDING_BOX,
00363 BOTLIB_AAS_TIME,
00364
00365 BOTLIB_AAS_POINT_AREA_NUM,
00366 BOTLIB_AAS_TRACE_AREAS,
00367
00368 BOTLIB_AAS_POINT_CONTENTS,
00369 BOTLIB_AAS_NEXT_BSP_ENTITY,
00370 BOTLIB_AAS_VALUE_FOR_BSP_EPAIR_KEY,
00371 BOTLIB_AAS_VECTOR_FOR_BSP_EPAIR_KEY,
00372 BOTLIB_AAS_FLOAT_FOR_BSP_EPAIR_KEY,
00373 BOTLIB_AAS_INT_FOR_BSP_EPAIR_KEY,
00374
00375 BOTLIB_AAS_AREA_REACHABILITY,
00376
00377 BOTLIB_AAS_AREA_TRAVEL_TIME_TO_GOAL_AREA,
00378
00379 BOTLIB_AAS_SWIMMING,
00380 BOTLIB_AAS_PREDICT_CLIENT_MOVEMENT,
00381
00382 BOTLIB_EA_SAY = 400,
00383 BOTLIB_EA_SAY_TEAM,
00384 BOTLIB_EA_COMMAND,
00385
00386 BOTLIB_EA_ACTION,
00387 BOTLIB_EA_GESTURE,
00388 BOTLIB_EA_TALK,
00389 BOTLIB_EA_ATTACK,
00390 BOTLIB_EA_ALT_ATTACK,
00391 BOTLIB_EA_FORCEPOWER,
00392 BOTLIB_EA_USE,
00393 BOTLIB_EA_RESPAWN,
00394 BOTLIB_EA_CROUCH,
00395 BOTLIB_EA_MOVE_UP,
00396 BOTLIB_EA_MOVE_DOWN,
00397 BOTLIB_EA_MOVE_FORWARD,
00398 BOTLIB_EA_MOVE_BACK,
00399 BOTLIB_EA_MOVE_LEFT,
00400 BOTLIB_EA_MOVE_RIGHT,
00401
00402 BOTLIB_EA_SELECT_WEAPON,
00403 BOTLIB_EA_JUMP,
00404 BOTLIB_EA_DELAYED_JUMP,
00405 BOTLIB_EA_MOVE,
00406 BOTLIB_EA_VIEW,
00407
00408 BOTLIB_EA_END_REGULAR,
00409 BOTLIB_EA_GET_INPUT,
00410 BOTLIB_EA_RESET_INPUT,
00411
00412
00413 BOTLIB_AI_LOAD_CHARACTER = 500,
00414 BOTLIB_AI_FREE_CHARACTER,
00415 BOTLIB_AI_CHARACTERISTIC_FLOAT,
00416 BOTLIB_AI_CHARACTERISTIC_BFLOAT,
00417 BOTLIB_AI_CHARACTERISTIC_INTEGER,
00418 BOTLIB_AI_CHARACTERISTIC_BINTEGER,
00419 BOTLIB_AI_CHARACTERISTIC_STRING,
00420
00421 BOTLIB_AI_ALLOC_CHAT_STATE,
00422 BOTLIB_AI_FREE_CHAT_STATE,
00423 BOTLIB_AI_QUEUE_CONSOLE_MESSAGE,
00424 BOTLIB_AI_REMOVE_CONSOLE_MESSAGE,
00425 BOTLIB_AI_NEXT_CONSOLE_MESSAGE,
00426 BOTLIB_AI_NUM_CONSOLE_MESSAGE,
00427 BOTLIB_AI_INITIAL_CHAT,
00428 BOTLIB_AI_REPLY_CHAT,
00429 BOTLIB_AI_CHAT_LENGTH,
00430 BOTLIB_AI_ENTER_CHAT,
00431 BOTLIB_AI_STRING_CONTAINS,
00432 BOTLIB_AI_FIND_MATCH,
00433 BOTLIB_AI_MATCH_VARIABLE,
00434 BOTLIB_AI_UNIFY_WHITE_SPACES,
00435 BOTLIB_AI_REPLACE_SYNONYMS,
00436 BOTLIB_AI_LOAD_CHAT_FILE,
00437 BOTLIB_AI_SET_CHAT_GENDER,
00438 BOTLIB_AI_SET_CHAT_NAME,
00439
00440 BOTLIB_AI_RESET_GOAL_STATE,
00441 BOTLIB_AI_RESET_AVOID_GOALS,
00442 BOTLIB_AI_PUSH_GOAL,
00443 BOTLIB_AI_POP_GOAL,
00444 BOTLIB_AI_EMPTY_GOAL_STACK,
00445 BOTLIB_AI_DUMP_AVOID_GOALS,
00446 BOTLIB_AI_DUMP_GOAL_STACK,
00447 BOTLIB_AI_GOAL_NAME,
00448 BOTLIB_AI_GET_TOP_GOAL,
00449 BOTLIB_AI_GET_SECOND_GOAL,
00450 BOTLIB_AI_CHOOSE_LTG_ITEM,
00451 BOTLIB_AI_CHOOSE_NBG_ITEM,
00452 BOTLIB_AI_TOUCHING_GOAL,
00453 BOTLIB_AI_ITEM_GOAL_IN_VIS_BUT_NOT_VISIBLE,
00454 BOTLIB_AI_GET_LEVEL_ITEM_GOAL,
00455 BOTLIB_AI_AVOID_GOAL_TIME,
00456 BOTLIB_AI_INIT_LEVEL_ITEMS,
00457 BOTLIB_AI_UPDATE_ENTITY_ITEMS,
00458 BOTLIB_AI_LOAD_ITEM_WEIGHTS,
00459 BOTLIB_AI_FREE_ITEM_WEIGHTS,
00460 BOTLIB_AI_SAVE_GOAL_FUZZY_LOGIC,
00461 BOTLIB_AI_ALLOC_GOAL_STATE,
00462 BOTLIB_AI_FREE_GOAL_STATE,
00463
00464 BOTLIB_AI_RESET_MOVE_STATE,
00465 BOTLIB_AI_MOVE_TO_GOAL,
00466 BOTLIB_AI_MOVE_IN_DIRECTION,
00467 BOTLIB_AI_RESET_AVOID_REACH,
00468 BOTLIB_AI_RESET_LAST_AVOID_REACH,
00469 BOTLIB_AI_REACHABILITY_AREA,
00470 BOTLIB_AI_MOVEMENT_VIEW_TARGET,
00471 BOTLIB_AI_ALLOC_MOVE_STATE,
00472 BOTLIB_AI_FREE_MOVE_STATE,
00473 BOTLIB_AI_INIT_MOVE_STATE,
00474
00475 BOTLIB_AI_CHOOSE_BEST_FIGHT_WEAPON,
00476 BOTLIB_AI_GET_WEAPON_INFO,
00477 BOTLIB_AI_LOAD_WEAPON_WEIGHTS,
00478 BOTLIB_AI_ALLOC_WEAPON_STATE,
00479 BOTLIB_AI_FREE_WEAPON_STATE,
00480 BOTLIB_AI_RESET_WEAPON_STATE,
00481
00482 BOTLIB_AI_GENETIC_PARENTS_AND_CHILD_SELECTION,
00483 BOTLIB_AI_INTERBREED_GOAL_FUZZY_LOGIC,
00484 BOTLIB_AI_MUTATE_GOAL_FUZZY_LOGIC,
00485 BOTLIB_AI_GET_NEXT_CAMP_SPOT_GOAL,
00486 BOTLIB_AI_GET_MAP_LOCATION_GOAL,
00487 BOTLIB_AI_NUM_INITIAL_CHATS,
00488 BOTLIB_AI_GET_CHAT_MESSAGE,
00489 BOTLIB_AI_REMOVE_FROM_AVOID_GOALS,
00490 BOTLIB_AI_PREDICT_VISIBLE_POSITION,
00491
00492 BOTLIB_AI_SET_AVOID_GOAL_TIME,
00493 BOTLIB_AI_ADD_AVOID_SPOT,
00494 BOTLIB_AAS_ALTERNATIVE_ROUTE_GOAL,
00495 BOTLIB_AAS_PREDICT_ROUTE,
00496 BOTLIB_AAS_POINT_REACHABILITY_AREA_INDEX,
00497
00498 BOTLIB_PC_LOAD_SOURCE,
00499 BOTLIB_PC_FREE_SOURCE,
00500 BOTLIB_PC_READ_TOKEN,
00501 BOTLIB_PC_SOURCE_FILE_AND_LINE,
00502
00503
00504
00505
00506 G_R_REGISTERSKIN,
00507 G_G2_LISTBONES,
00508 G_G2_LISTSURFACES,
00509 G_G2_HAVEWEGHOULMODELS,
00510 G_G2_SETMODELS,
00511 G_G2_GETBOLT,
00512 G_G2_GETBOLT_NOREC,
00513 G_G2_GETBOLT_NOREC_NOROT,
00514 G_G2_INITGHOUL2MODEL,
00515 G_G2_SETSKIN,
00516 G_G2_SIZE,
00517 G_G2_ADDBOLT,
00518 G_G2_SETBOLTINFO,
00519 G_G2_ANGLEOVERRIDE,
00520 G_G2_PLAYANIM,
00521 G_G2_GETBONEANIM,
00522 G_G2_GETGLANAME,
00523 G_G2_COPYGHOUL2INSTANCE,
00524 G_G2_COPYSPECIFICGHOUL2MODEL,
00525 G_G2_DUPLICATEGHOUL2INSTANCE,
00526 G_G2_HASGHOUL2MODELONINDEX,
00527 G_G2_REMOVEGHOUL2MODEL,
00528 G_G2_REMOVEGHOUL2MODELS,
00529 G_G2_CLEANMODELS,
00530 G_G2_COLLISIONDETECT,
00531 G_G2_COLLISIONDETECTCACHE,
00532
00533 G_G2_SETROOTSURFACE,
00534 G_G2_SETSURFACEONOFF,
00535 G_G2_SETNEWORIGIN,
00536 G_G2_DOESBONEEXIST,
00537 G_G2_GETSURFACERENDERSTATUS,
00538
00539 G_G2_ABSURDSMOOTHING,
00540
00541
00542
00543
00544 G_G2_SETRAGDOLL,
00545 G_G2_ANIMATEG2MODELS,
00546
00547
00548
00549
00550 G_G2_RAGPCJCONSTRAINT,
00551 G_G2_RAGPCJGRADIENTSPEED,
00552 G_G2_RAGEFFECTORGOAL,
00553 G_G2_GETRAGBONEPOS,
00554 G_G2_RAGEFFECTORKICK,
00555 G_G2_RAGFORCESOLVE,
00556
00557
00558
00559 G_G2_SETBONEIKSTATE,
00560 G_G2_IKMOVE,
00561
00562 G_G2_REMOVEBONE,
00563
00564 G_G2_ATTACHINSTANCETOENTNUM,
00565 G_G2_CLEARATTACHEDINSTANCE,
00566 G_G2_CLEANENTATTACHMENTS,
00567 G_G2_OVERRIDESERVER,
00568
00569 G_G2_GETSURFACENAME,
00570
00571 G_SET_ACTIVE_SUBBSP,
00572 G_CM_REGISTER_TERRAIN,
00573 G_RMG_INIT,
00574
00575 G_BOT_UPDATEWAYPOINTS,
00576 G_BOT_CALCULATEPATHS
00577
00578
00579
00580
00581 } gameImport_t;
00582
00583
00584 typedef enum
00585 {
00586 BS_DEFAULT = 0,
00587 BS_ADVANCE_FIGHT,
00588 BS_SLEEP,
00589 BS_FOLLOW_LEADER,
00590 BS_JUMP,
00591 BS_SEARCH,
00592 BS_WANDER,
00593 BS_NOCLIP,
00594 BS_REMOVE,
00595 BS_CINEMATIC,
00596
00597
00598 BS_WAIT,
00599 BS_STAND_GUARD,
00600 BS_PATROL,
00601 BS_INVESTIGATE,
00602 BS_STAND_AND_SHOOT,
00603 BS_HUNT_AND_KILL,
00604 BS_FLEE,
00605 NUM_BSTATES
00606 } bState_t;
00607
00608 enum
00609 {
00610 EDGE_NORMAL,
00611 EDGE_PATH,
00612 EDGE_BLOCKED,
00613 EDGE_FAILED,
00614 EDGE_MOVEDIR
00615 };
00616
00617 enum
00618 {
00619 NODE_NORMAL,
00620 NODE_START,
00621 NODE_GOAL,
00622 NODE_NAVGOAL,
00623 };
00624
00625 typedef enum
00626 {
00627 TID_CHAN_VOICE = 0,
00628 TID_ANIM_UPPER,
00629 TID_ANIM_LOWER,
00630 TID_ANIM_BOTH,
00631 TID_MOVE_NAV,
00632 TID_ANGLE_FACE,
00633 TID_BSTATE,
00634 TID_LOCATION,
00635
00636 TID_RESIZE,
00637 TID_SHOOT,
00638 NUM_TIDS,
00639 } taskID_t;
00640
00641 typedef enum
00642 {
00643 BSET_INVALID = -1,
00644 BSET_FIRST = 0,
00645 BSET_SPAWN = 0,
00646 BSET_USE,
00647 BSET_AWAKE,
00648 BSET_ANGER,
00649 BSET_ATTACK,
00650 BSET_VICTORY,
00651 BSET_LOSTENEMY,
00652 BSET_PAIN,
00653 BSET_FLEE,
00654 BSET_DEATH,
00655 BSET_DELAYED,
00656 BSET_BLOCKED,
00657 BSET_BUMPED,
00658 BSET_STUCK,
00659 BSET_FFIRE,
00660 BSET_FFDEATH,
00661 BSET_MINDTRICK,
00662
00663 NUM_BSETS
00664 } bSet_t;
00665
00666 #define MAX_PARMS 16
00667 #define MAX_PARM_STRING_LENGTH MAX_QPATH//was 16, had to lengthen it so they could take a valid file path
00668 typedef struct
00669 {
00670 char parm[MAX_PARMS][MAX_PARM_STRING_LENGTH];
00671 } parms_t;
00672
00673 #define MAX_FAILED_NODES 8
00674
00675 typedef struct Vehicle_s Vehicle_t;
00676
00677
00678
00679 typedef struct {
00680 entityState_t s;
00681 playerState_t *playerState;
00682
00683
00684 Vehicle_t *m_pVehicle;
00685 void *ghoul2;
00686 int localAnimIndex;
00687 vec3_t modelScale;
00688
00689
00690
00691 entityShared_t r;
00692
00693
00694 int taskID[NUM_TIDS];
00695 parms_t *parms;
00696 char *behaviorSet[NUM_BSETS];
00697 char *script_targetname;
00698 int delayScriptTime;
00699 char *fullName;
00700
00701
00702 char *targetname;
00703 char *classname;
00704
00705
00706 int waypoint;
00707 int lastWaypoint;
00708 int lastValidWaypoint;
00709 int noWaypointTime;
00710 int combatPoint;
00711 int failedWaypoints[MAX_FAILED_NODES];
00712 int failedWaypointCheckTime;
00713
00714 int next_roff_time;
00715 } sharedEntity_t;
00716
00717 #ifdef __cplusplus
00718 class CSequencer;
00719 class CTaskManager;
00720
00721
00722
00723 extern CSequencer *gSequencers[MAX_GENTITIES];
00724 extern CTaskManager *gTaskManagers[MAX_GENTITIES];
00725
00726 #include "../icarus/icarus.h"
00727 #include "../icarus/sequencer.h"
00728 #include "../icarus/taskmanager.h"
00729 #endif
00730
00731
00732
00733
00734 typedef enum {
00735 GAME_INIT,
00736
00737
00738
00739
00740 GAME_SHUTDOWN,
00741
00742 GAME_CLIENT_CONNECT,
00743
00744
00745
00746 GAME_CLIENT_BEGIN,
00747
00748 GAME_CLIENT_USERINFO_CHANGED,
00749
00750 GAME_CLIENT_DISCONNECT,
00751
00752 GAME_CLIENT_COMMAND,
00753
00754 GAME_CLIENT_THINK,
00755
00756 GAME_RUN_FRAME,
00757
00758 GAME_CONSOLE_COMMAND,
00759
00760
00761
00762
00763
00764 BOTAI_START_FRAME,
00765
00766 GAME_ROFF_NOTETRACK_CALLBACK,
00767
00768 GAME_SPAWN_RMG_ENTITY,
00769
00770
00771 GAME_ICARUS_PLAYSOUND,
00772 GAME_ICARUS_SET,
00773 GAME_ICARUS_LERP2POS,
00774 GAME_ICARUS_LERP2ORIGIN,
00775 GAME_ICARUS_LERP2ANGLES,
00776 GAME_ICARUS_GETTAG,
00777 GAME_ICARUS_LERP2START,
00778 GAME_ICARUS_LERP2END,
00779 GAME_ICARUS_USE,
00780 GAME_ICARUS_KILL,
00781 GAME_ICARUS_REMOVE,
00782 GAME_ICARUS_PLAY,
00783 GAME_ICARUS_GETFLOAT,
00784 GAME_ICARUS_GETVECTOR,
00785 GAME_ICARUS_GETSTRING,
00786 GAME_ICARUS_SOUNDINDEX,
00787 GAME_ICARUS_GETSETIDFORSTRING,
00788 GAME_NAV_CLEARPATHTOPOINT,
00789 GAME_NAV_CLEARLOS,
00790 GAME_NAV_CLEARPATHBETWEENPOINTS,
00791 GAME_NAV_CHECKNODEFAILEDFORENT,
00792 GAME_NAV_ENTISUNLOCKEDDOOR,
00793 GAME_NAV_ENTISDOOR,
00794 GAME_NAV_ENTISBREAKABLE,
00795 GAME_NAV_ENTISREMOVABLEUSABLE,
00796 GAME_NAV_FINDCOMBATPOINTWAYPOINTS,
00797
00798 GAME_GETITEMINDEXBYTAG
00799 } gameExport_t;
00800
00801 typedef struct
00802 {
00803 int taskID;
00804 int entID;
00805 char name[2048];
00806 char channel[2048];
00807 } T_G_ICARUS_PLAYSOUND;
00808
00809
00810 typedef struct
00811 {
00812 int taskID;
00813 int entID;
00814 char type_name[2048];
00815 char data[2048];
00816 } T_G_ICARUS_SET;
00817
00818 typedef struct
00819 {
00820 int taskID;
00821 int entID;
00822 vec3_t origin;
00823 vec3_t angles;
00824 float duration;
00825 qboolean nullAngles;
00826 } T_G_ICARUS_LERP2POS;
00827
00828 typedef struct
00829 {
00830 int taskID;
00831 int entID;
00832 vec3_t origin;
00833 float duration;
00834 } T_G_ICARUS_LERP2ORIGIN;
00835
00836 typedef struct
00837 {
00838 int taskID;
00839 int entID;
00840 vec3_t angles;
00841 float duration;
00842 } T_G_ICARUS_LERP2ANGLES;
00843
00844 typedef struct
00845 {
00846 int entID;
00847 char name[2048];
00848 int lookup;
00849 vec3_t info;
00850 } T_G_ICARUS_GETTAG;
00851
00852 typedef struct
00853 {
00854 int entID;
00855 int taskID;
00856 float duration;
00857 } T_G_ICARUS_LERP2START;
00858
00859 typedef struct
00860 {
00861 int entID;
00862 int taskID;
00863 float duration;
00864 } T_G_ICARUS_LERP2END;
00865
00866 typedef struct
00867 {
00868 int entID;
00869 char target[2048];
00870 } T_G_ICARUS_USE;
00871
00872 typedef struct
00873 {
00874 int entID;
00875 char name[2048];
00876 } T_G_ICARUS_KILL;
00877
00878 typedef struct
00879 {
00880 int entID;
00881 char name[2048];
00882 } T_G_ICARUS_REMOVE;
00883
00884 typedef struct
00885 {
00886 int taskID;
00887 int entID;
00888 char type[2048];
00889 char name[2048];
00890 } T_G_ICARUS_PLAY;
00891
00892 typedef struct
00893 {
00894 int entID;
00895 int type;
00896 char name[2048];
00897 float value;
00898 } T_G_ICARUS_GETFLOAT;
00899
00900 typedef struct
00901 {
00902 int entID;
00903 int type;
00904 char name[2048];
00905 vec3_t value;
00906 } T_G_ICARUS_GETVECTOR;
00907
00908 typedef struct
00909 {
00910 int entID;
00911 int type;
00912 char name[2048];
00913 char value[2048];
00914 } T_G_ICARUS_GETSTRING;
00915
00916 typedef struct
00917 {
00918 char filename[2048];
00919 } T_G_ICARUS_SOUNDINDEX;
00920 typedef struct
00921 {
00922 char string[2048];
00923 } T_G_ICARUS_GETSETIDFORSTRING;
00924
00925 #endif //G_PUBLIC_H