/* =========================================================================== Copyright (C) 2000 - 2013, Raven Software, Inc. Copyright (C) 2001 - 2013, Activision, Inc. Copyright (C) 2013 - 2015, OpenJK contributors This file is part of the OpenJK source code. OpenJK is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . =========================================================================== */ // Filename:- fields.h // #ifndef FIELDS_H #define FIELDS_H // // fields are needed for spawning from the entity string // and saving / loading games // #define FFL_SPAWNTEMP 1 #define MAX_GHOULINST_SIZE 16384 #ifndef FOFS #define FOFS(x) offsetof(gentity_t, x) // usually already defined in qshared.h #endif #define STOFS(x) offsetof(spawn_temp_t, x) #define LLOFS(x) offsetof(level_locals_t, x) #define CLOFS(x) offsetof(gclient_t, x) #define NPCOFS(x) offsetof(gNPC_t, x) // #define strFOFS(x) #x,FOFS(x) #define strSTOFS(x) #x,STOFS(x) #define strLLOFS(x) #x,LLOFS(x) #define strCLOFS(x) #x,CLOFS(x) #define strNPCOFS(x) #x,NPCOFS(x) typedef enum { // F_INT, // F_SHORT, // F_FLOAT, F_STRING, // string // F_VECTOR, // F_ANGLEHACK, // One var, presumed to be index 1 of vector F_NULL, // A ptr to null out F_ITEM, // Item pointer handling // F_MMOVE, // Mmove pointer handling // F_OSD, // ObjectSpawnData object handling F_GCLIENT, // Client pointer handling F_GENTITY, // gentity_t ptr handling F_BOOLPTR, // Generic pointer that is recreated later, could be left alone, but clearer if only 0/1 rather than 0/alloc // F_PLAYERSTATE, F_BEHAVIORSET, // special scripting string ptr array handler F_ALERTEVENT, // special handler for alertevent struct in level_locals_t F_AIGROUPS, // some AI grouping stuff of Mike's // F_BODYQUEUE, // special handler for dead body ptr array - MCG /* F_THINK_F, // All types of function pointers F_BLOCKED_F, F_TOUCH_F, F_USE_F, F_PLUSE_F, F_PAIN_F, F_DIE_F, F_RESPAWN_F, */ F_GROUP, F_IGNORE } fieldtypeSAVE_t; typedef struct { const char *psName; size_t iOffset; fieldtypeSAVE_t eFieldType; int iFlags; } field_t; extern field_t fields[]; #endif // #ifndef FIELDS_H //////////////////////// eof //////////////////////////