raze-gles/source/duke3d/src/gamedef.h

1631 lines
54 KiB
C
Raw Normal View History

//-------------------------------------------------------------------------
/*
Copyright (C) 2016 EDuke32 developers and contributors
This file is part of EDuke32.
EDuke32 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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#ifndef gamedef_h_
#define gamedef_h_
#include "build.h" // hashtable_t
#include "common.h" // tokenlist
#include "player.h" // projectile_t
#ifdef __cplusplus
extern "C" {
#endif
#define MAXGAMEEVENTS 128
#define LABEL_HASPARM2 1
#define LABEL_ISSTRING 2
#define MAXCHEATLEN 20
#define NUMCHEATCODES (int32_t)ARRAY_SIZE(CheatStrings)
#define VM_INSTMASK 0xfff
#define C_CUSTOMERROR(Text, ...) \
do \
{ \
C_ReportError(-1); \
initprintf("%s:%d: error: " Text "\n", g_scriptFileName, g_lineNumber, ##__VA_ARGS__); \
g_errorCnt++; \
} while (0)
#define C_CUSTOMWARNING(Text, ...) \
do \
{ \
C_ReportError(-1); \
initprintf("%s:%d: warning: " Text "\n", g_scriptFileName, g_lineNumber, ##__VA_ARGS__); \
g_warningCnt++; \
} while (0)
#if !defined LUNATIC
extern intptr_t const * insptr;
extern void VM_ScriptInfo(intptr_t const *ptr, int range);
#endif
extern hashtable_t h_gamefuncs;
#if !defined LUNATIC
extern hashtable_t h_gamevars;
extern hashtable_t h_arrays;
extern hashtable_t h_labels;
extern int32_t g_aimAngleVarID; // var ID of "AUTOAIMANGLE"
extern int32_t g_angRangeVarID; // var ID of "ANGRANGE"
extern int32_t g_hitagVarID; // var ID of "HITAG"
extern int32_t g_lotagVarID; // var ID of "LOTAG"
extern int32_t g_returnVarID; // var ID of "RETURN"
extern int32_t g_textureVarID; // var ID of "TEXTURE"
extern int32_t g_thisActorVarID; // var ID of "THISACTOR"
extern int32_t g_weaponVarID; // var ID of "WEAPON"
extern int32_t g_worksLikeVarID; // var ID of "WORKSLIKE"
extern int32_t g_zRangeVarID; // var ID of "ZRANGE"
// KEEPINSYNC gamevars.c: "special vars for struct access"
enum QuickStructureAccess_t
{
STRUCT_SPRITE,
STRUCT_SECTOR,
STRUCT_WALL,
STRUCT_PLAYER,
STRUCT_ACTORVAR,
STRUCT_PLAYERVAR,
STRUCT_TSPR,
STRUCT_PROJECTILE,
STRUCT_THISPROJECTILE,
STRUCT_USERDEF,
STRUCT_INPUT,
STRUCT_TILEDATA,
STRUCT_PALDATA,
NUMQUICKSTRUCTS,
};
extern int32_t g_structVarIDs;
extern intptr_t apScriptEvents[MAXGAMEEVENTS];
#endif
extern char CheatStrings[][MAXCHEATLEN];
extern char g_scriptFileName[BMAX_PATH];
extern const uint32_t CheatFunctionFlags[];
extern const uint8_t CheatFunctionIDs[];
extern int32_t g_errorCnt;
extern int32_t g_lineNumber;
extern int32_t g_numXStrings;
extern int32_t g_scriptVersion;
extern int32_t g_totalLines;
extern int32_t g_warningCnt;
extern int32_t otherp;
extern const char *EventNames[]; // MAXEVENTS
#if !defined LUNATIC
extern intptr_t *g_scriptPtr;
typedef struct
{
const char *name;
int lId, flags, maxParm2;
} memberlabel_t;
extern const memberlabel_t ActorLabels[];
extern const memberlabel_t InputLabels[];
extern const memberlabel_t PalDataLabels[];
extern const memberlabel_t PlayerLabels[];
extern const memberlabel_t ProjectileLabels[];
extern const memberlabel_t SectorLabels[];
extern const memberlabel_t TileDataLabels[];
extern const memberlabel_t TsprLabels[];
extern const memberlabel_t UserdefsLabels[];
extern const memberlabel_t WallLabels[];
#endif
typedef projectile_t defaultprojectile_t;
extern defaultprojectile_t DefaultProjectile;
int32_t C_AllocQuote(int32_t qnum);
void C_AllocProjectile(int32_t j);
void C_FreeProjectile(int32_t j);
void C_InitQuotes(void);
void C_InitProjectiles(void);
extern int32_t g_numProjectiles;
typedef struct {
int spriteNum;
int playerNum;
int playerDist;
int flags;
union {
spritetype * pSprite;
uspritetype *pUSprite;
};
int32_t * pData;
DukePlayer_t *pPlayer;
actor_t * pActor;
} vmstate_t;
extern vmstate_t vm;
void G_DoGameStartup(const int32_t *params);
void C_DefineMusic(int volumeNum, int levelNum, const char *fileName);
void C_DefineVolumeFlags(int32_t vol, int32_t flags);
void C_UndefineVolume(int32_t vol);
void C_UndefineSkill(int32_t skill);
void C_UndefineLevel(int32_t vol, int32_t lev);
#if defined LUNATIC
void C_DefineSound(int32_t sndidx, const char *fn, int32_t args[5]);
void C_DefineQuote(int32_t qnum, const char *qstr);
void C_DefineVolumeName(int32_t vol, const char *name);
void C_DefineSkillName(int32_t skill, const char *name);
void C_DefineLevelName(int32_t vol, int32_t lev, const char *fn,
int32_t partime, int32_t designertime,
const char *levelname);
void C_DefineGameFuncName(int32_t idx, const char *name);
void C_DefineGameType(int32_t idx, int32_t flags, const char *name);
int32_t C_SetDefName(const char *name);
void C_DefineProjectile(int32_t j, int32_t what, int32_t val);
void C_SetCfgName(const char *cfgname);
#else
void C_ReportError(int32_t iError);
void C_Compile(const char *filenam);
extern int32_t g_errorLineNum;
extern int32_t g_tw;
typedef struct {
const char* token;
int32_t val;
} tokenmap_t;
extern const tokenmap_t iter_tokens[];
// KEEPINSYNC lunatic/con_lang.lua
enum SystemString_t {
STR_MAPNAME,
STR_MAPFILENAME,
STR_PLAYERNAME,
STR_VERSION,
STR_GAMETYPE,
STR_VOLUMENAME,
STR_YOURTIME,
STR_PARTIME,
STR_DESIGNERTIME,
STR_BESTTIME,
};
enum ScriptError_t
{
ERROR_CLOSEBRACKET,
ERROR_EVENTONLY,
ERROR_EXCEEDSMAXTILES,
ERROR_EXPECTEDKEYWORD,
ERROR_FOUNDWITHIN,
ERROR_ISAKEYWORD,
ERROR_NOENDSWITCH,
ERROR_NOTAGAMEDEF,
ERROR_NOTAGAMEVAR,
ERROR_NOTAGAMEARRAY,
ERROR_GAMEARRAYBNC,
ERROR_GAMEARRAYBNO,
ERROR_INVALIDARRAYWRITE,
ERROR_OPENBRACKET,
ERROR_PARAMUNDEFINED,
ERROR_NOTAMEMBER,
ERROR_SYNTAXERROR,
ERROR_VARREADONLY,
ERROR_ARRAYREADONLY,
ERROR_VARTYPEMISMATCH,
WARNING_BADGAMEVAR,
WARNING_DUPLICATECASE,
WARNING_DUPLICATEDEFINITION,
WARNING_EVENTSYNC,
WARNING_LABELSONLY,
WARNING_NAMEMATCHESVAR,
WARNING_VARMASKSKEYWORD,
WARNING_ARRAYMASKSKEYWORD
};
enum PlayerLabel_t
{
PLAYER_ZOOM,
PLAYER_EXITX,
PLAYER_EXITY,
PLAYER_LOOGIEX,
PLAYER_LOOGIEY,
PLAYER_NUMLOOGS,
PLAYER_LOOGCNT,
PLAYER_POSX,
PLAYER_POSY,
PLAYER_POSZ,
PLAYER_HORIZ,
PLAYER_OHORIZ,
PLAYER_OHORIZOFF,
PLAYER_INVDISPTIME,
PLAYER_BOBPOSX,
PLAYER_BOBPOSY,
PLAYER_OPOSX,
PLAYER_OPOSY,
PLAYER_OPOSZ,
PLAYER_PYOFF,
PLAYER_OPYOFF,
PLAYER_POSXV,
PLAYER_POSYV,
PLAYER_POSZV,
PLAYER_LAST_PISSED_TIME,
PLAYER_TRUEFZ,
PLAYER_TRUECZ,
PLAYER_PLAYER_PAR,
PLAYER_VISIBILITY,
PLAYER_BOBCOUNTER,
PLAYER_WEAPON_SWAY,
PLAYER_PALS_TIME,
PLAYER_RANDOMFLAMEX,
PLAYER_CRACK_TIME,
PLAYER_AIM_MODE,
PLAYER_ANG,
PLAYER_OANG,
PLAYER_ANGVEL,
PLAYER_CURSECTNUM,
PLAYER_LOOK_ANG,
PLAYER_LAST_EXTRA,
PLAYER_SUBWEAPON,
PLAYER_AMMO_AMOUNT,
PLAYER_WACKEDBYACTOR,
PLAYER_FRAG,
PLAYER_FRAGGEDSELF,
PLAYER_CURR_WEAPON,
PLAYER_LAST_WEAPON,
PLAYER_TIPINCS,
PLAYER_HORIZOFF,
PLAYER_WANTWEAPONFIRE,
PLAYER_HOLODUKE_AMOUNT,
PLAYER_NEWOWNER,
PLAYER_HURT_DELAY,
PLAYER_HBOMB_HOLD_DELAY,
PLAYER_JUMPING_COUNTER,
PLAYER_AIRLEFT,
PLAYER_KNEE_INCS,
PLAYER_ACCESS_INCS,
PLAYER_FTA,
PLAYER_FTQ,
PLAYER_ACCESS_WALLNUM,
PLAYER_ACCESS_SPRITENUM,
PLAYER_KICKBACK_PIC,
PLAYER_GOT_ACCESS,
PLAYER_WEAPON_ANG,
PLAYER_FIRSTAID_AMOUNT,
PLAYER_SOMETHINGONPLAYER,
PLAYER_ON_CRANE,
PLAYER_I,
PLAYER_ONE_PARALLAX_SECTNUM,
PLAYER_OVER_SHOULDER_ON,
PLAYER_RANDOM_CLUB_FRAME,
PLAYER_FIST_INCS,
PLAYER_ONE_EIGHTY_COUNT,
PLAYER_CHEAT_PHASE,
PLAYER_DUMMYPLAYERSPRITE,
PLAYER_EXTRA_EXTRA8,
PLAYER_QUICK_KICK,
PLAYER_HEAT_AMOUNT,
PLAYER_ACTORSQU,
PLAYER_TIMEBEFOREEXIT,
PLAYER_CUSTOMEXITSOUND,
PLAYER_WEAPRECS,
PLAYER_WEAPRECCNT,
PLAYER_INTERFACE_TOGGLE_FLAG,
PLAYER_ROTSCRNANG,
PLAYER_DEAD_FLAG,
PLAYER_SHOW_EMPTY_WEAPON,
PLAYER_SCUBA_AMOUNT,
PLAYER_JETPACK_AMOUNT,
PLAYER_STEROIDS_AMOUNT,
PLAYER_SHIELD_AMOUNT,
PLAYER_HOLODUKE_ON,
PLAYER_PYCOUNT,
PLAYER_WEAPON_POS,
PLAYER_FRAG_PS,
PLAYER_TRANSPORTER_HOLD,
PLAYER_CLIPDIST,
PLAYER_LAST_FULL_WEAPON,
PLAYER_FOOTPRINTSHADE,
PLAYER_BOOT_AMOUNT,
PLAYER_SCREAM_VOICE,
PLAYER_GM,
PLAYER_ON_WARPING_SECTOR,
PLAYER_FOOTPRINTCOUNT,
PLAYER_HBOMB_ON,
PLAYER_JUMPING_TOGGLE,
PLAYER_RAPID_FIRE_HOLD,
PLAYER_ON_GROUND,
PLAYER_NAME,
PLAYER_INVEN_ICON,
PLAYER_BUTTONPALETTE,
PLAYER_JETPACK_ON,
PLAYER_SPRITEBRIDGE,
PLAYER_LASTRANDOMSPOT,
PLAYER_SCUBA_ON,
PLAYER_FOOTPRINTPAL,
PLAYER_HEAT_ON,
PLAYER_HOLSTER_WEAPON,
PLAYER_FALLING_COUNTER,
PLAYER_GOTWEAPON,
PLAYER_REFRESH_INVENTORY,
PLAYER_PALETTE,
PLAYER_TOGGLE_KEY_FLAG,
PLAYER_KNUCKLE_INCS,
PLAYER_WALKING_SND_TOGGLE,
PLAYER_PALOOKUP,
PLAYER_HARD_LANDING,
PLAYER_MAX_SECRET_ROOMS,
PLAYER_SECRET_ROOMS,
PLAYER_PALS,
PLAYER_MAX_ACTORS_KILLED,
PLAYER_ACTORS_KILLED,
PLAYER_RETURN_TO_CENTER,
PLAYER_RUNSPEED,
PLAYER_SBS,
PLAYER_RELOADING,
PLAYER_AUTO_AIM,
PLAYER_MOVEMENT_LOCK,
PLAYER_SOUND_PITCH,
PLAYER_WEAPONSWITCH,
PLAYER_TEAM,
PLAYER_MAX_PLAYER_HEALTH,
PLAYER_MAX_SHIELD_AMOUNT,
PLAYER_MAX_AMMO_AMOUNT,
PLAYER_LAST_QUICK_KICK,
PLAYER_AUTOSTEP,
PLAYER_AUTOSTEP_SBW,
PLAYER_HUDPAL,
PLAYER_INDEX,
PLAYER_CONNECTED,
PLAYER_END
};
enum UserdefsLabel_t
{
USERDEFS_GOD,
USERDEFS_WARP_ON,
USERDEFS_CASHMAN,
USERDEFS_EOG,
USERDEFS_SHOWALLMAP,
USERDEFS_SHOW_HELP,
USERDEFS_SCROLLMODE,
USERDEFS_CLIPPING,
USERDEFS_USER_NAME,
USERDEFS_RIDECULE,
USERDEFS_SAVEGAME,
USERDEFS_PWLOCKOUT,
USERDEFS_RTSNAME,
USERDEFS_OVERHEAD_ON,
USERDEFS_LAST_OVERHEAD,
USERDEFS_SHOWWEAPONS,
USERDEFS_PAUSE_ON,
USERDEFS_FROM_BONUS,
USERDEFS_CAMERASPRITE,
USERDEFS_LAST_CAMSPRITE,
USERDEFS_LAST_LEVEL,
USERDEFS_SECRETLEVEL,
USERDEFS_CONST_VISIBILITY,
USERDEFS_UW_FRAMERATE,
USERDEFS_CAMERA_TIME,
USERDEFS_FOLFVEL,
USERDEFS_FOLAVEL,
USERDEFS_FOLX,
USERDEFS_FOLY,
USERDEFS_FOLA,
USERDEFS_RECCNT,
USERDEFS_ENTERED_NAME,
USERDEFS_SCREEN_TILTING,
USERDEFS_SHADOWS,
USERDEFS_FTA_ON,
USERDEFS_EXECUTIONS,
USERDEFS_AUTO_RUN,
USERDEFS_COORDS,
USERDEFS_TICKRATE,
USERDEFS_M_COOP,
USERDEFS_COOP,
USERDEFS_SCREEN_SIZE,
USERDEFS_LOCKOUT,
USERDEFS_CROSSHAIR,
USERDEFS_WCHOICE,
USERDEFS_PLAYERAI,
USERDEFS_RESPAWN_MONSTERS,
USERDEFS_RESPAWN_ITEMS,
USERDEFS_RESPAWN_INVENTORY,
USERDEFS_RECSTAT,
USERDEFS_MONSTERS_OFF,
USERDEFS_BRIGHTNESS,
USERDEFS_M_RESPAWN_ITEMS,
USERDEFS_M_RESPAWN_MONSTERS,
USERDEFS_M_RESPAWN_INVENTORY,
USERDEFS_M_RECSTAT,
USERDEFS_M_MONSTERS_OFF,
USERDEFS_DETAIL,
USERDEFS_M_FFIRE,
USERDEFS_FFIRE,
USERDEFS_M_PLAYER_SKILL,
USERDEFS_M_LEVEL_NUMBER,
USERDEFS_M_VOLUME_NUMBER,
USERDEFS_MULTIMODE,
USERDEFS_PLAYER_SKILL,
USERDEFS_LEVEL_NUMBER,
USERDEFS_VOLUME_NUMBER,
USERDEFS_M_MARKER,
USERDEFS_MARKER,
USERDEFS_MOUSEFLIP,
USERDEFS_STATUSBARSCALE,
USERDEFS_DRAWWEAPON,
USERDEFS_MOUSEAIMING,
USERDEFS_WEAPONSWITCH,
USERDEFS_DEMOCAMS,
USERDEFS_COLOR,
USERDEFS_MSGDISPTIME,
USERDEFS_STATUSBARMODE,
USERDEFS_M_NOEXITS,
USERDEFS_NOEXITS,
USERDEFS_AUTOVOTE,
USERDEFS_AUTOMSG,
USERDEFS_IDPLAYERS,
USERDEFS_TEAM,
USERDEFS_VIEWBOB,
USERDEFS_WEAPONSWAY,
USERDEFS_ANGLEINTERPOLATION,
USERDEFS_OBITUARIES,
USERDEFS_LEVELSTATS,
USERDEFS_CROSSHAIRSCALE,
USERDEFS_ALTHUD,
USERDEFS_DISPLAY_BONUS_SCREEN,
USERDEFS_SHOW_LEVEL_TEXT,
USERDEFS_WEAPONSCALE,
USERDEFS_TEXTSCALE,
USERDEFS_RUNKEY_MODE,
USERDEFS_M_ORIGIN_X,
USERDEFS_M_ORIGIN_Y,
USERDEFS_PLAYERBEST,
USERDEFS_MUSICTOGGLE,
USERDEFS_USEVOXELS,
USERDEFS_USEHIGHTILE,
USERDEFS_USEMODELS,
USERDEFS_GAMETYPEFLAGS,
USERDEFS_M_GAMETYPEFLAGS,
USERDEFS_GLOBALFLAGS,
USERDEFS_GLOBALGAMEFLAGS,
USERDEFS_VM_PLAYER,
USERDEFS_VM_SPRITE,
USERDEFS_VM_DISTANCE,
USERDEFS_SOUNDTOGGLE,
USERDEFS_GAMETEXT_TRACKING,
USERDEFS_MGAMETEXT_TRACKING,
USERDEFS_MENUTEXT_TRACKING,
USERDEFS_MAXSPRITESONSCREEN,
USERDEFS_END
};
enum SectorLabel_t
{
SECTOR_WALLPTR,
SECTOR_WALLNUM,
SECTOR_CEILINGZ,
SECTOR_CEILINGZGOAL,
SECTOR_CEILINGZVEL,
SECTOR_FLOORZ,
SECTOR_FLOORZGOAL,
SECTOR_FLOORZVEL,
SECTOR_CEILINGSTAT,
SECTOR_FLOORSTAT,
SECTOR_CEILINGPICNUM,
SECTOR_CEILINGSLOPE,
SECTOR_CEILINGSHADE,
SECTOR_CEILINGPAL,
SECTOR_CEILINGXPANNING,
SECTOR_CEILINGYPANNING,
SECTOR_FLOORPICNUM,
SECTOR_FLOORSLOPE,
SECTOR_FLOORSHADE,
SECTOR_FLOORPAL,
SECTOR_FLOORXPANNING,
SECTOR_FLOORYPANNING,
SECTOR_VISIBILITY,
SECTOR_FOGPAL,
SECTOR_LOTAG,
SECTOR_HITAG,
SECTOR_EXTRA,
SECTOR_CEILINGBUNCH,
SECTOR_FLOORBUNCH,
SECTOR_ULOTAG,
SECTOR_UHITAG,
SECTOR_END
};
enum WallLabel_t
{
WALL_X,
WALL_Y,
WALL_POINT2,
WALL_NEXTWALL,
WALL_NEXTSECTOR,
WALL_CSTAT,
WALL_PICNUM,
WALL_OVERPICNUM,
WALL_SHADE,
WALL_PAL,
WALL_XREPEAT,
WALL_YREPEAT,
WALL_XPANNING,
WALL_YPANNING,
WALL_LOTAG,
WALL_HITAG,
WALL_EXTRA,
WALL_ULOTAG,
WALL_UHITAG,
WALL_BLEND,
WALL_END
};
enum ActorLabel_t
{
ACTOR_X,
ACTOR_Y,
ACTOR_Z,
ACTOR_CSTAT,
ACTOR_PICNUM,
ACTOR_SHADE,
ACTOR_PAL,
ACTOR_CLIPDIST,
ACTOR_DETAIL,
ACTOR_XREPEAT,
ACTOR_YREPEAT,
ACTOR_XOFFSET,
ACTOR_YOFFSET,
ACTOR_SECTNUM,
ACTOR_STATNUM,
ACTOR_ANG,
ACTOR_OWNER,
ACTOR_XVEL,
ACTOR_YVEL,
ACTOR_ZVEL,
ACTOR_LOTAG,
ACTOR_HITAG,
ACTOR_EXTRA,
ACTOR_HTCGG,
ACTOR_HTPICNUM,
ACTOR_HTANG,
ACTOR_HTEXTRA,
ACTOR_HTOWNER,
ACTOR_HTMOVFLAG,
ACTOR_HTTEMPANG,
ACTOR_HTACTORSTAYPUT,
ACTOR_HTDISPICNUM,
ACTOR_HTTIMETOSLEEP,
ACTOR_HTFLOORZ,
ACTOR_HTCEILINGZ,
ACTOR_HTLASTVX,
ACTOR_HTLASTVY,
ACTOR_HTBPOSX,
ACTOR_HTBPOSY,
ACTOR_HTBPOSZ,
ACTOR_HTG_T,
ACTOR_ANGOFF,
ACTOR_PITCH,
ACTOR_ROLL,
ACTOR_MDXOFF,
ACTOR_MDYOFF,
ACTOR_MDZOFF,
ACTOR_MDFLAGS,
ACTOR_XPANNING,
ACTOR_YPANNING,
ACTOR_HTFLAGS,
ACTOR_ALPHA,
ACTOR_ULOTAG,
ACTOR_UHITAG,
ACTOR_ISVALID,
ACTOR_END
};
enum InputLabel_t
{
INPUT_AVEL,
INPUT_HORZ,
INPUT_FVEL,
INPUT_SVEL,
INPUT_BITS,
INPUT_EXTBITS,
INPUT_END
};
enum TileDataLabel_t
{
TILEDATA_XSIZE,
TILEDATA_YSIZE,
TILEDATA_ANIMFRAMES,
TILEDATA_XOFFSET,
TILEDATA_YOFFSET,
TILEDATA_ANIMSPEED,
TILEDATA_ANIMTYPE,
TILEDATA_GAMEFLAGS,
TILEDATA_END
};
enum PalDataLabel_t
{
PALDATA_NOFLOORPAL,
PALDATA_DUMMY, // so the hash table is size 1. remove when another member is added.
PALDATA_END
};
#endif
// KEEPINSYNC lunatic/con_lang.lua
enum ProjectileLabel_t
{
PROJ_WORKSLIKE, // 0
PROJ_SPAWNS,
PROJ_SXREPEAT,
PROJ_SYREPEAT,
PROJ_SOUND,
PROJ_ISOUND, // 5
PROJ_VEL,
PROJ_EXTRA,
PROJ_DECAL,
PROJ_TRAIL,
PROJ_TXREPEAT, // 10
PROJ_TYREPEAT,
PROJ_TOFFSET,
PROJ_TNUM,
PROJ_DROP,
PROJ_CSTAT, // 15
PROJ_CLIPDIST,
PROJ_SHADE,
PROJ_XREPEAT,
PROJ_YREPEAT,
PROJ_PAL, // 20
PROJ_EXTRA_RAND,
PROJ_HITRADIUS,
PROJ_MOVECNT,
PROJ_OFFSET,
PROJ_BOUNCES, // 25
PROJ_BSOUND,
PROJ_RANGE,
PROJ_FLASH_COLOR,
PROJ_USERDATA,
PROJ_END
};
#if !defined LUNATIC
enum IterationTypes_t
{
ITER_ALLSPRITES,
ITER_ALLSECTORS,
ITER_ALLWALLS,
ITER_ACTIVELIGHTS,
ITER_DRAWNSPRITES,
// ---
ITER_SPRITESOFSECTOR,
ITER_SPRITESOFSTATUS,
ITER_WALLSOFSECTOR,
ITER_LOOPOFWALL,
ITER_RANGE,
ITER_END
};
enum ScriptKeywords_t
{
CON_ELSE, // 0
CON_ACTOR, // 1
CON_ADDAMMO, // 2
CON_IFRND, // 3
CON_ENDA, // 4
CON_IFCANSEE, // 5
CON_IFHITWEAPON, // 6
CON_ACTION, // 7
CON_IFPDISTL, // 8
CON_IFPDISTG, // 9
CON_DEFINELEVELNAME, // 10
CON_STRENGTH, // 11
CON_BREAK, // 12
CON_SHOOT, // 13
CON_PALFROM, // 14
CON_SOUND, // 15
CON_FALL, // 16
CON_STATE, // 17
CON_ENDS, // 18
CON_DEFINE, // 19
CON_RETURN, // 20
CON_IFAI, // 21
CON_KILLIT, // 22
CON_ADDWEAPON, // 23
CON_AI, // 24
CON_ADDPHEALTH, // 25
CON_IFDEAD, // 26
CON_IFSQUISHED, // 27
CON_SIZETO, // 28
CON_LEFTBRACE, // 29
CON_RIGHTBRACE, // 30
CON_SPAWN, // 31
CON_MOVE, // 32
CON_IFWASWEAPON, // 33
CON_IFACTION, // 34
CON_IFACTIONCOUNT, // 35
CON_RESETACTIONCOUNT, // 36
CON_DEBRIS, // 37
CON_PSTOMP, // 38
CON_BLOCKCOMMENT, // 39 deprecated
CON_CSTAT, // 40
CON_IFMOVE, // 41
CON_RESETPLAYER, // 42
CON_IFONWATER, // 43
CON_IFINWATER, // 44
CON_IFCANSHOOTTARGET, // 45
CON_IFCOUNT, // 46
CON_RESETCOUNT, // 47
CON_ADDINVENTORY, // 48
CON_IFACTORNOTSTAYPUT, // 49
CON_HITRADIUS, // 50
CON_IFP, // 51
CON_COUNT, // 52
CON_IFACTOR, // 53
CON_MUSIC, // 54
CON_INCLUDE, // 55
CON_IFSTRENGTH, // 56
CON_DEFINESOUND, // 57
CON_GUTS, // 58
CON_IFSPAWNEDBY, // 59
CON_GAMESTARTUP, // 60
CON_WACKPLAYER, // 61
CON_IFGAPZL, // 62
CON_IFHITSPACE, // 63
CON_IFOUTSIDE, // 64
CON_IFMULTIPLAYER, // 65
CON_OPERATE, // 66
CON_IFINSPACE, // 67
CON_DEBUG, // 68
CON_ENDOFGAME, // 69
CON_IFBULLETNEAR, // 70
CON_IFRESPAWN, // 71
CON_IFFLOORDISTL, // 72
CON_IFCEILINGDISTL, // 73
CON_SPRITEPAL, // 74
CON_IFPINVENTORY, // 75
CON_BETANAME, // 76
CON_CACTOR, // 77
CON_IFPHEALTHL, // 78
CON_DEFINEQUOTE, // 79
CON_QUOTE, // 80
CON_IFINOUTERSPACE, // 81
CON_IFNOTMOVING, // 82
CON_RESPAWNHITAG, // 83
CON_TIP, // 84
CON_IFSPRITEPAL, // 85
CON_MONEY, // 86
CON_SOUNDONCE, // 87
CON_ADDKILLS, // 88
CON_STOPSOUND, // 89
CON_IFAWAYFROMWALL, // 90
CON_IFCANSEETARGET, // 91
CON_GLOBALSOUND, // 92
CON_LOTSOFGLASS, // 93
CON_IFGOTWEAPONCE, // 94
CON_GETLASTPAL, // 95
CON_PKICK, // 96
CON_MIKESND, // 97
CON_USERACTOR, // 98
CON_SIZEAT, // 99
CON_ADDSTRENGTH, // 100
CON_CSTATOR, // 101
CON_MAIL, // 102
CON_PAPER, // 103
CON_TOSSWEAPON, // 104
CON_SLEEPTIME, // 105
CON_NULLOP, // 106
CON_DEFINEVOLUMENAME, // 107
CON_DEFINESKILLNAME, // 108
CON_IFNOSOUNDS, // 109
CON_CLIPDIST, // 110
CON_IFANGDIFFL, // 111
CON_GAMEVAR, // 112
CON_IFVARL, // 113
CON_IFVARG, // 114
CON_SETVARVAR, // 115
CON_SETVAR, // 116
CON_ADDVARVAR, // 117
CON_ADDVAR, // 118
CON_IFVARVARL, // 119
CON_IFVARVARG, // 120
CON_ADDLOGVAR, // 121
CON_ADDLOG, // 122
CON_ONEVENT, // 123
CON_ENDEVENT, // 124
CON_IFVARE, // 125
CON_IFVARVARE, // 126
CON_SPGETLOTAG, // 127
CON_SPGETHITAG, // 128
CON_SECTGETLOTAG, // 129
CON_SECTGETHITAG, // 130
CON_IFSOUND, // 131
CON_GETTEXTUREFLOOR, // 132
CON_GETTEXTURECEILING, // 133
CON_INITTIMER, // 134
CON_STARTTRACK, // 135
CON_RANDVAR, // 136
CON_ENHANCED, // 137
CON_GETANGLETOTARGET, // 138
CON_GETACTORANGLE, // 139
CON_SETACTORANGLE, // 140
CON_MULVAR, // 141
CON_MULVARVAR, // 142
CON_DIVVAR, // 143
CON_DIVVARVAR, // 144
CON_MODVAR, // 145
CON_MODVARVAR, // 146
CON_ANDVAR, // 147
CON_ANDVARVAR, // 148
CON_ORVAR, // 149
CON_ORVARVAR, // 150
CON_GETPLAYERANGLE, // 151
CON_SETPLAYERANGLE, // 152
CON_LOCKPLAYER, // 153
CON_SETSECTOR, // 154
CON_GETSECTOR, // 155
CON_SETACTOR, // 156
CON_GETACTOR, // 157
CON_SETWALL, // 158
CON_GETWALL, // 159
CON_FINDNEARACTOR, // 160
CON_FINDNEARACTORVAR, // 161
CON_SETACTORVAR, // 162
CON_GETACTORVAR, // 163
CON_ESPAWN, // 164
CON_GETPLAYER, // 165
CON_SETPLAYER, // 166
CON_SQRT, // 167
CON_EVENTLOADACTOR, // 168
CON_ESPAWNVAR, // 169
CON_GETUSERDEF, // 170
CON_SETUSERDEF, // 171
CON_SUBVARVAR, // 172
CON_SUBVAR, // 173
CON_IFVARN, // 174
CON_IFVARVARN, // 175
CON_IFVARAND, // 176
CON_IFVARVARAND, // 177
CON_MYOS, // 178
CON_MYOSPAL, // 179
CON_DISPLAYRAND, // 180
CON_SIN, // 181
CON_XORVARVAR, // 182
CON_XORVAR, // 183
CON_RANDVARVAR, // 184
CON_MYOSX, // 185
CON_MYOSPALX, // 186
CON_GMAXAMMO, // 187
CON_SMAXAMMO, // 188
CON_STARTLEVEL, // 189
CON_ESHOOT, // 190
CON_QSPAWN, // 191
CON_ROTATESPRITE, // 192
CON_DEFINEPROJECTILE, // 193
CON_SPRITESHADOW, // 194
CON_COS, // 195
CON_ESHOOTVAR, // 196
CON_FINDNEARACTOR3D, // 197
CON_FINDNEARACTOR3DVAR, // 198
CON_FLASH, // 199
CON_QSPAWNVAR, // 200
CON_EQSPAWN, // 201
CON_EQSPAWNVAR, // 202
CON_MINITEXT, // 203
CON_GAMETEXT, // 204
CON_DIGITALNUMBER, // 205
CON_ADDWEAPONVAR, // 206
CON_SETPROJECTILE, // 207
CON_ANGOFF, // 208
CON_UPDATESECTOR, // 209
CON_INSERTSPRITEQ, // 210
CON_ANGOFFVAR, // 211
CON_WHILEVARN, // 212
CON_SWITCH, // 213
CON_CASE, // 214
CON_DEFAULT, // 215
CON_ENDSWITCH, // 216
CON_SHOOTVAR, // 217
CON_SOUNDVAR, // 218
CON_FINDPLAYER, // 219
CON_FINDOTHERPLAYER, // 220
CON_ACTIVATEBYSECTOR, // 221
CON_OPERATESECTORS, // 222
CON_OPERATERESPAWNS, // 223
CON_OPERATEACTIVATORS, // 224
CON_OPERATEMASTERSWITCHES, // 225
CON_CHECKACTIVATORMOTION, // 226
CON_ZSHOOT, // 227
CON_DIST, // 228
CON_LDIST, // 229
CON_SHIFTVARL, // 230
CON_SHIFTVARR, // 231
CON_SPRITENVG, // 232
CON_GETANGLE, // 233
CON_WHILEVARVARN, // 234
CON_HITSCAN, // 235
CON_TIME, // 236
CON_GETPLAYERVAR, // 237
CON_SETPLAYERVAR, // 238
CON_MULSCALE, // 239
CON_SETASPECT, // 240
CON_EZSHOOT, // 241
CON_SPRITENOSHADE, // 242
CON_MOVESPRITE, // 243
CON_CHECKAVAILWEAPON, // 244
CON_SOUNDONCEVAR, // 245
CON_UPDATESECTORZ, // 246
CON_STOPALLSOUNDS, // 247
CON_SSP, // 248
CON_STOPSOUNDVAR, // 249
CON_DISPLAYRANDVAR, // 250
CON_DISPLAYRANDVARVAR, // 251
CON_CHECKAVAILINVEN, // 252
CON_GLOBALSOUNDVAR, // 253
CON_GUNIQHUDID, // 254
CON_GETPROJECTILE, // 255
CON_GETTHISPROJECTILE, // 256
CON_SETTHISPROJECTILE, // 257
CON_DEFINECHEAT, // 258
CON_CHEATKEYS, // 259
CON_USERQUOTE, // 260
CON_PRECACHE, // 261
CON_DEFINEGAMEFUNCNAME, // 262
CON_REDEFINEQUOTE, // 263
CON_QSPRINTF, // 264
CON_GETPNAME, // 265
CON_QSTRCAT, // 266
CON_QSTRCPY, // 267
CON_SETSPRITE, // 268
CON_ROTATEPOINT, // 269
CON_DRAGPOINT, // 270
CON_GETZRANGE, // 271
CON_CHANGESPRITESTAT, // 272
CON_GETCEILZOFSLOPE, // 273
CON_GETFLORZOFSLOPE, // 274
CON_NEARTAG, // 275
CON_DEFINEGAMETYPE, // 276
CON_CHANGESPRITESECT, // 277
CON_SPRITEFLAGS, // 278
CON_SAVEGAMEVAR, // 279
CON_READGAMEVAR, // 280
CON_FINDNEARSPRITE, // 281
CON_FINDNEARSPRITEVAR, // 282
CON_FINDNEARSPRITE3D, // 283
CON_FINDNEARSPRITE3DVAR,// 284
CON_DYNAMICREMAP, // 285
CON_SETINPUT, // 286
CON_GETINPUT, // 287
CON_SAVE, // 288
CON_CANSEE, // 289
CON_CANSEESPR, // 290
CON_FINDNEARACTORZ, // 291
CON_FINDNEARACTORZVAR, // 292
CON_FINDNEARSPRITEZ, // 293
CON_FINDNEARSPRITEZVAR, // 294
CON_ZSHOOTVAR, // 295
CON_EZSHOOTVAR, // 296
CON_GETCURRADDRESS, // 297
CON_JUMP, // 298
CON_QSTRLEN, // 299
CON_GETINCANGLE, // 300
CON_QUAKE, // 301
CON_SHOWVIEW, // 302
CON_HEADSPRITESTAT, // 303
CON_PREVSPRITESTAT, // 304
CON_NEXTSPRITESTAT, // 305
CON_HEADSPRITESECT, // 306
CON_PREVSPRITESECT, // 307
CON_NEXTSPRITESECT, // 308
CON_GETKEYNAME, // 309
CON_QSUBSTR, // 310
CON_GAMETEXTZ, // 311
CON_DIGITALNUMBERZ, // 312
CON_SPRITENOPAL, // 313
CON_HITRADIUSVAR, // 314
CON_ROTATESPRITE16, // 315
CON_GAMEARRAY, // 316
CON_SETARRAY, // 317
CON_RESIZEARRAY, // 318
CON_WRITEARRAYTOFILE, // 319
CON_READARRAYFROMFILE, // 320
CON_STARTTRACKVAR, // 321
CON_QGETSYSSTR, // 322
CON_GETTICKS, // 323
CON_GETTSPR, // 324
CON_SETTSPR, // 325
CON_SAVEMAPSTATE, // 326
CON_LOADMAPSTATE, // 327
CON_CLEARMAPSTATE, // 328
CON_SCRIPTSIZE, // 329
CON_SETGAMENAME, // 330
CON_CMENU, // 331
CON_GETTIMEDATE, // 332
CON_ACTIVATECHEAT, // 333
CON_SETGAMEPALETTE, // 334
CON_SETDEFNAME, // 335
CON_SETCFGNAME, // 336
CON_IFVAROR, // 337
CON_IFVARVAROR, // 338
CON_IFVARXOR, // 339
CON_IFVARVARXOR, // 340
CON_IFVAREITHER, // 341
CON_IFVARVAREITHER, // 342
CON_GETARRAYSIZE, // 343
CON_SAVENN, // 344
CON_COPY, // 345
CON_INV, // 346
CON_SECTOROFWALL, // 347
CON_QSTRNCAT, // 348
CON_IFACTORSOUND, // 349
CON_STOPACTORSOUND, // 350
CON_IFCLIENT, // 351
CON_IFSERVER, // 352
CON_SECTSETINTERPOLATION, // 353
CON_SECTCLEARINTERPOLATION, // 354
CON_CLIPMOVE, // 355
CON_LINEINTERSECT, // 356
CON_RAYINTERSECT, // 357
CON_CALCHYPOTENUSE, // 358
CON_CLIPMOVENOSLIDE, // 359
CON_INCLUDEDEFAULT, // 360
CON_SETACTORSOUNDPITCH, // 361
CON_ECHO, // 362
CON_SHOWVIEWUNBIASED, // 363
CON_ROTATESPRITEA, // 364
CON_SHADETO, // 365
CON_ENDOFLEVEL, // 366
CON_IFPLAYERSL, // 367
CON_ACTIVATE, // 368
CON_QSTRDIM, // 369
CON_SCREENTEXT, // 370
CON_DYNAMICSOUNDREMAP, // 371
CON_SCREENSOUND, // 372
CON_GETMUSICPOSITION, // 373
CON_SETMUSICPOSITION, // 374
CON_UNDEFINEVOLUME, // 375
CON_UNDEFINESKILL, // 376
CON_UNDEFINELEVEL, // 377
CON_STARTCUTSCENE, // 378
CON_IFCUTSCENE, // 379
CON_DEFINEVOLUMEFLAGS, // 380
CON_RESETPLAYERFLAGS, // 381
CON_APPENDEVENT, // 382
CON_DEFSTATE, // 383
CON_SHIFTVARVARL, // 384
CON_SHIFTVARVARR, // 385
CON_IFVARVARLE, // 386
CON_IFVARVARGE, // 387
CON_IFVARVARBOTH, // 388
CON_WHILEVARL, // 389
CON_WHILEVARVARL, // 390
CON_KLABS, // 391
CON_IFVARLE, // 392
CON_IFVARGE, // 393
CON_IFVARBOTH, // 394
CON_MOVESECTOR, // 395
CON_FOR, // 396
CON_NEXTSECTORNEIGHBORZ,// 397
CON_CLAMP, // 398
CON_IFPLAYBACKON, // 399
CON_DIVSCALE, // 400
CON_SCALEVAR, // 401
CON_UNDEFINEGAMEFUNC, // 402
CON_GETCLOSESTCOL, // 403
CON_DRAWLINE256, // 404
CON_DRAWLINERGB, // 405
CON_STARTTRACKSLOT, // 406
CON_STOPALLMUSIC, // 407
CON_END
};
// KEEPINSYNC with the keyword list in lunatic/con_lang.lua
static const tokenmap_t vm_keywords [] ={
{ "action", CON_ACTION },
{ "activate", CON_ACTIVATE },
{ "activatebysector", CON_ACTIVATEBYSECTOR },
{ "activatecheat", CON_ACTIVATECHEAT },
{ "actor", CON_ACTOR },
{ "addammo", CON_ADDAMMO },
{ "addinventory", CON_ADDINVENTORY },
{ "addkills", CON_ADDKILLS },
{ "addlog", CON_ADDLOG },
{ "addlogvar", CON_ADDLOGVAR },
{ "addphealth", CON_ADDPHEALTH },
{ "addstrength", CON_ADDSTRENGTH },
{ "addvar", CON_ADDVAR },
{ "addvarvar", CON_ADDVARVAR },
{ "addweapon", CON_ADDWEAPON },
{ "addweaponvar", CON_ADDWEAPONVAR },
{ "ai", CON_AI },
{ "andvar", CON_ANDVAR },
{ "andvarvar", CON_ANDVARVAR },
{ "angoff", CON_ANGOFF },
{ "angoffvar", CON_ANGOFFVAR },
{ "appendevent", CON_APPENDEVENT },
{ "betaname", CON_BETANAME },
{ "break", CON_BREAK },
{ "cactor", CON_CACTOR },
{ "calchypotenuse", CON_CALCHYPOTENUSE },
{ "cansee", CON_CANSEE },
{ "canseespr", CON_CANSEESPR },
{ "case", CON_CASE },
{ "changespritesect", CON_CHANGESPRITESECT },
{ "changespritestat", CON_CHANGESPRITESTAT },
{ "cheatkeys", CON_CHEATKEYS },
{ "checkactivatormotion", CON_CHECKACTIVATORMOTION },
{ "checkavailinven", CON_CHECKAVAILINVEN },
{ "checkavailweapon", CON_CHECKAVAILWEAPON },
{ "clamp", CON_CLAMP },
{ "clearmapstate", CON_CLEARMAPSTATE },
{ "clipdist", CON_CLIPDIST },
{ "clipmove", CON_CLIPMOVE },
{ "clipmovenoslide", CON_CLIPMOVENOSLIDE },
{ "cmenu", CON_CMENU },
{ "copy", CON_COPY },
{ "cos", CON_COS },
{ "count", CON_COUNT },
{ "cstat", CON_CSTAT },
{ "cstator", CON_CSTATOR },
{ "debris", CON_DEBRIS },
{ "debug", CON_DEBUG },
{ "default", CON_DEFAULT },
{ "define", CON_DEFINE },
{ "definecheat", CON_DEFINECHEAT },
{ "definegamefuncname", CON_DEFINEGAMEFUNCNAME },
{ "definegametype", CON_DEFINEGAMETYPE },
{ "definelevelname", CON_DEFINELEVELNAME },
{ "defineprojectile", CON_DEFINEPROJECTILE },
{ "definequote", CON_DEFINEQUOTE },
{ "defineskillname", CON_DEFINESKILLNAME },
{ "definesound", CON_DEFINESOUND },
{ "definevolumeflags", CON_DEFINEVOLUMEFLAGS },
{ "definevolumename", CON_DEFINEVOLUMENAME },
{ "defstate", CON_DEFSTATE },
{ "digitalnumber", CON_DIGITALNUMBER },
{ "digitalnumberz", CON_DIGITALNUMBERZ },
{ "displayrand", CON_DISPLAYRAND },
{ "displayrandvar", CON_DISPLAYRANDVAR },
{ "displayrandvarvar", CON_DISPLAYRANDVARVAR },
{ "dist", CON_DIST },
{ "divscale", CON_DIVSCALE },
{ "divvar", CON_DIVVAR },
{ "divvarvar", CON_DIVVARVAR },
{ "dragpoint", CON_DRAGPOINT },
{ "drawline256", CON_DRAWLINE256 },
{ "drawlinergb", CON_DRAWLINERGB },
{ "dynamicremap", CON_DYNAMICREMAP },
{ "dynamicsoundremap", CON_DYNAMICSOUNDREMAP },
{ "echo", CON_ECHO },
{ "else", CON_ELSE },
{ "enda", CON_ENDA },
{ "endevent", CON_ENDEVENT },
{ "endofgame", CON_ENDOFGAME },
{ "endoflevel", CON_ENDOFLEVEL },
{ "ends", CON_ENDS },
{ "endswitch", CON_ENDSWITCH },
{ "enhanced", CON_ENHANCED },
{ "eqspawnvar", CON_EQSPAWNVAR },
{ "eshootvar", CON_ESHOOTVAR },
{ "espawnvar", CON_ESPAWNVAR },
{ "eventloadactor", CON_EVENTLOADACTOR },
{ "ezshootvar", CON_EZSHOOTVAR },
{ "fall", CON_FALL },
{ "findnearactor3dvar", CON_FINDNEARACTOR3DVAR },
{ "findnearactorvar", CON_FINDNEARACTORVAR },
{ "findnearactorzvar", CON_FINDNEARACTORZVAR },
{ "findnearsprite3dvar", CON_FINDNEARSPRITE3DVAR },
{ "findnearspritevar", CON_FINDNEARSPRITEVAR },
{ "findnearspritezvar", CON_FINDNEARSPRITEZVAR },
{ "findotherplayer", CON_FINDOTHERPLAYER },
{ "findplayer", CON_FINDPLAYER },
{ "flash", CON_FLASH },
{ "for", CON_FOR },
{ "gamearray", CON_GAMEARRAY },
{ "gamestartup", CON_GAMESTARTUP },
{ "gametext", CON_GAMETEXT },
{ "gametextz", CON_GAMETEXTZ },
{ "gamevar", CON_GAMEVAR },
{ "getactor", CON_GETACTOR },
{ "getactorangle", CON_GETACTORANGLE },
{ "getactorvar", CON_GETACTORVAR },
{ "getangle", CON_GETANGLE },
{ "getangletotarget", CON_GETANGLETOTARGET },
{ "getarraysize", CON_GETARRAYSIZE },
{ "getceilzofslope", CON_GETCEILZOFSLOPE },
{ "getclosestcol", CON_GETCLOSESTCOL },
{ "getcurraddress", CON_GETCURRADDRESS },
{ "getflorzofslope", CON_GETFLORZOFSLOPE },
{ "getincangle", CON_GETINCANGLE },
{ "getinput", CON_GETINPUT },
{ "getkeyname", CON_GETKEYNAME },
{ "getlastpal", CON_GETLASTPAL },
{ "getmusicposition", CON_GETMUSICPOSITION },
{ "getplayer", CON_GETPLAYER },
{ "getplayerangle", CON_GETPLAYERANGLE },
{ "getplayervar", CON_GETPLAYERVAR },
{ "getpname", CON_GETPNAME },
{ "getprojectile", CON_GETPROJECTILE },
{ "getsector", CON_GETSECTOR },
{ "gettextureceiling", CON_GETTEXTURECEILING },
{ "gettexturefloor", CON_GETTEXTUREFLOOR },
{ "getthisprojectile", CON_GETTHISPROJECTILE },
{ "getticks", CON_GETTICKS },
{ "gettimedate", CON_GETTIMEDATE },
{ "gettspr", CON_GETTSPR },
{ "getuserdef", CON_GETUSERDEF },
{ "getwall", CON_GETWALL },
{ "getzrange", CON_GETZRANGE },
{ "globalsound", CON_GLOBALSOUND },
{ "globalsoundvar", CON_GLOBALSOUNDVAR },
{ "gmaxammo", CON_GMAXAMMO },
{ "guniqhudid", CON_GUNIQHUDID },
{ "guts", CON_GUTS },
{ "headspritesect", CON_HEADSPRITESECT },
{ "headspritestat", CON_HEADSPRITESTAT },
{ "hitradius", CON_HITRADIUS },
{ "hitradiusvar", CON_HITRADIUSVAR },
{ "hitscan", CON_HITSCAN },
{ "ifaction", CON_IFACTION },
{ "ifactioncount", CON_IFACTIONCOUNT },
{ "ifactor", CON_IFACTOR },
{ "ifactornotstayput", CON_IFACTORNOTSTAYPUT },
{ "ifactorsound", CON_IFACTORSOUND },
{ "ifai", CON_IFAI },
{ "ifangdiffl", CON_IFANGDIFFL },
{ "ifawayfromwall", CON_IFAWAYFROMWALL },
{ "ifbulletnear", CON_IFBULLETNEAR },
{ "ifcansee", CON_IFCANSEE },
{ "ifcanseetarget", CON_IFCANSEETARGET },
{ "ifcanshoottarget", CON_IFCANSHOOTTARGET },
{ "ifceilingdistl", CON_IFCEILINGDISTL },
{ "ifclient", CON_IFCLIENT },
{ "ifcount", CON_IFCOUNT },
{ "ifcutscene", CON_IFCUTSCENE },
{ "ifdead", CON_IFDEAD },
{ "iffloordistl", CON_IFFLOORDISTL },
{ "ifgapzl", CON_IFGAPZL },
{ "ifgotweaponce", CON_IFGOTWEAPONCE },
{ "ifhitspace", CON_IFHITSPACE },
{ "ifhitweapon", CON_IFHITWEAPON },
{ "ifinouterspace", CON_IFINOUTERSPACE },
{ "ifinspace", CON_IFINSPACE },
{ "ifinwater", CON_IFINWATER },
{ "ifmove", CON_IFMOVE },
{ "ifmultiplayer", CON_IFMULTIPLAYER },
{ "ifnosounds", CON_IFNOSOUNDS },
{ "ifnotmoving", CON_IFNOTMOVING },
{ "ifonwater", CON_IFONWATER },
{ "ifoutside", CON_IFOUTSIDE },
{ "ifp", CON_IFP },
{ "ifpdistg", CON_IFPDISTG },
{ "ifpdistl", CON_IFPDISTL },
{ "ifphealthl", CON_IFPHEALTHL },
{ "ifpinventory", CON_IFPINVENTORY },
{ "ifplaybackon", CON_IFPLAYBACKON },
{ "ifplayersl", CON_IFPLAYERSL },
{ "ifrespawn", CON_IFRESPAWN },
{ "ifrnd", CON_IFRND },
{ "ifserver", CON_IFSERVER },
{ "ifsound", CON_IFSOUND },
{ "ifspawnedby", CON_IFSPAWNEDBY },
{ "ifspritepal", CON_IFSPRITEPAL },
{ "ifsquished", CON_IFSQUISHED },
{ "ifstrength", CON_IFSTRENGTH },
{ "ifvarand", CON_IFVARAND },
{ "ifvarboth", CON_IFVARBOTH },
{ "ifvare", CON_IFVARE },
{ "ifvareither", CON_IFVAREITHER },
{ "ifvarg", CON_IFVARG },
{ "ifvarge", CON_IFVARGE },
{ "ifvarl", CON_IFVARL },
{ "ifvarle", CON_IFVARLE },
{ "ifvarn", CON_IFVARN },
{ "ifvaror", CON_IFVAROR },
{ "ifvarvarand", CON_IFVARVARAND },
{ "ifvarvarboth", CON_IFVARVARBOTH },
{ "ifvarvare", CON_IFVARVARE },
{ "ifvarvareither", CON_IFVARVAREITHER },
{ "ifvarvarg", CON_IFVARVARG },
{ "ifvarvarge", CON_IFVARVARGE },
{ "ifvarvarl", CON_IFVARVARL },
{ "ifvarvarle", CON_IFVARVARLE },
{ "ifvarvarn", CON_IFVARVARN },
{ "ifvarvaror", CON_IFVARVAROR },
{ "ifvarvarxor", CON_IFVARVARXOR },
{ "ifvarxor", CON_IFVARXOR },
{ "ifwasweapon", CON_IFWASWEAPON },
{ "include", CON_INCLUDE },
{ "includedefault", CON_INCLUDEDEFAULT },
{ "inittimer", CON_INITTIMER },
{ "insertspriteq", CON_INSERTSPRITEQ },
{ "inv", CON_INV },
{ "jump", CON_JUMP },
{ "killit", CON_KILLIT },
{ "klabs", CON_KLABS },
{ "ldist", CON_LDIST },
{ "lineintersect", CON_LINEINTERSECT },
{ "loadmapstate", CON_LOADMAPSTATE },
{ "lockplayer", CON_LOCKPLAYER },
{ "lotsofglass", CON_LOTSOFGLASS },
{ "mail", CON_MAIL },
{ "mikesnd", CON_MIKESND },
{ "minitext", CON_MINITEXT },
{ "modvar", CON_MODVAR },
{ "modvarvar", CON_MODVARVAR },
{ "money", CON_MONEY },
{ "move", CON_MOVE },
{ "movesector", CON_MOVESECTOR },
{ "movesprite", CON_MOVESPRITE },
{ "mulscale", CON_MULSCALE },
{ "mulvar", CON_MULVAR },
{ "mulvarvar", CON_MULVARVAR },
{ "music", CON_MUSIC },
{ "myos", CON_MYOS },
{ "myospal", CON_MYOSPAL },
{ "myospalx", CON_MYOSPALX },
{ "myosx", CON_MYOSX },
{ "neartag", CON_NEARTAG },
{ "nextsectorneighborz", CON_NEXTSECTORNEIGHBORZ },
{ "nextspritesect", CON_NEXTSPRITESECT },
{ "nextspritestat", CON_NEXTSPRITESTAT },
{ "nullop", CON_NULLOP },
{ "onevent", CON_ONEVENT },
{ "operate", CON_OPERATE },
{ "operateactivators", CON_OPERATEACTIVATORS },
{ "operatemasterswitches", CON_OPERATEMASTERSWITCHES },
{ "operaterespawns", CON_OPERATERESPAWNS },
{ "operatesectors", CON_OPERATESECTORS },
{ "orvar", CON_ORVAR },
{ "orvarvar", CON_ORVARVAR },
{ "palfrom", CON_PALFROM },
{ "paper", CON_PAPER },
{ "pkick", CON_PKICK },
{ "precache", CON_PRECACHE },
{ "prevspritesect", CON_PREVSPRITESECT },
{ "prevspritestat", CON_PREVSPRITESTAT },
{ "pstomp", CON_PSTOMP },
{ "qgetsysstr", CON_QGETSYSSTR },
{ "qspawnvar", CON_QSPAWNVAR },
{ "qsprintf", CON_QSPRINTF },
{ "qstrcat", CON_QSTRCAT },
{ "qstrcpy", CON_QSTRCPY },
{ "qstrdim", CON_QSTRDIM },
{ "qstrlen", CON_QSTRLEN },
{ "qstrncat", CON_QSTRNCAT },
{ "qsubstr", CON_QSUBSTR },
{ "quake", CON_QUAKE },
{ "quote", CON_QUOTE },
{ "randvar", CON_RANDVAR },
{ "randvarvar", CON_RANDVARVAR },
{ "rayintersect", CON_RAYINTERSECT },
{ "readarrayfromfile", CON_READARRAYFROMFILE },
{ "readgamevar", CON_READGAMEVAR },
{ "redefinequote", CON_REDEFINEQUOTE },
{ "resetactioncount", CON_RESETACTIONCOUNT },
{ "resetcount", CON_RESETCOUNT },
{ "resetplayer", CON_RESETPLAYER },
{ "resetplayerflags", CON_RESETPLAYERFLAGS },
{ "resizearray", CON_RESIZEARRAY },
{ "respawnhitag", CON_RESPAWNHITAG },
{ "return", CON_RETURN },
{ "rotatepoint", CON_ROTATEPOINT },
{ "rotatesprite", CON_ROTATESPRITE },
{ "rotatesprite16", CON_ROTATESPRITE16 },
{ "rotatespritea", CON_ROTATESPRITEA },
{ "save", CON_SAVE },
{ "savegamevar", CON_SAVEGAMEVAR },
{ "savemapstate", CON_SAVEMAPSTATE },
{ "savenn", CON_SAVENN },
{ "scalevar", CON_SCALEVAR },
{ "screensound", CON_SCREENSOUND },
{ "screentext", CON_SCREENTEXT },
{ "scriptsize", CON_SCRIPTSIZE },
{ "sectclearinterpolation", CON_SECTCLEARINTERPOLATION },
{ "sectgethitag", CON_SECTGETHITAG },
{ "sectgetlotag", CON_SECTGETLOTAG },
{ "sectorofwall", CON_SECTOROFWALL },
{ "sectsetinterpolation", CON_SECTSETINTERPOLATION },
{ "setactor", CON_SETACTOR },
{ "setactorangle", CON_SETACTORANGLE },
{ "setactorsoundpitch", CON_SETACTORSOUNDPITCH },
{ "setactorvar", CON_SETACTORVAR },
{ "setarray", CON_SETARRAY },
{ "setaspect", CON_SETASPECT },
{ "setcfgname", CON_SETCFGNAME },
{ "setdefname", CON_SETDEFNAME },
{ "setgamename", CON_SETGAMENAME },
{ "setgamepalette", CON_SETGAMEPALETTE },
{ "setinput", CON_SETINPUT },
{ "setmusicposition", CON_SETMUSICPOSITION },
{ "setplayer", CON_SETPLAYER },
{ "setplayerangle", CON_SETPLAYERANGLE },
{ "setplayervar", CON_SETPLAYERVAR },
{ "setprojectile", CON_SETPROJECTILE },
{ "setsector", CON_SETSECTOR },
{ "setsprite", CON_SETSPRITE },
{ "setthisprojectile", CON_SETTHISPROJECTILE },
{ "settspr", CON_SETTSPR },
{ "setuserdef", CON_SETUSERDEF },
{ "setvar", CON_SETVAR },
{ "setvarvar", CON_SETVARVAR },
{ "setwall", CON_SETWALL },
{ "shadeto", CON_SHADETO },
{ "shiftvarl", CON_SHIFTVARL },
{ "shiftvarr", CON_SHIFTVARR },
{ "shiftvarvarl", CON_SHIFTVARVARL },
{ "shiftvarvarr", CON_SHIFTVARVARR },
{ "shootvar", CON_SHOOTVAR },
{ "showview", CON_SHOWVIEW },
{ "showviewunbiased", CON_SHOWVIEWUNBIASED },
{ "sin", CON_SIN },
{ "sizeat", CON_SIZEAT },
{ "sizeto", CON_SIZETO },
{ "sleeptime", CON_SLEEPTIME },
{ "smaxammo", CON_SMAXAMMO },
{ "sound", CON_SOUND },
{ "soundonce", CON_SOUNDONCE },
{ "soundoncevar", CON_SOUNDONCEVAR },
{ "soundvar", CON_SOUNDVAR },
{ "spawn", CON_SPAWN },
{ "spgethitag", CON_SPGETHITAG },
{ "spgetlotag", CON_SPGETLOTAG },
{ "spriteflags", CON_SPRITEFLAGS },
{ "spritenopal", CON_SPRITENOPAL },
{ "spritenoshade", CON_SPRITENOSHADE },
{ "spritenvg", CON_SPRITENVG },
{ "spritepal", CON_SPRITEPAL },
{ "spriteshadow", CON_SPRITESHADOW },
{ "sqrt", CON_SQRT },
{ "ssp", CON_SSP },
{ "startcutscene", CON_STARTCUTSCENE },
{ "startlevel", CON_STARTLEVEL },
{ "starttrack", CON_STARTTRACK },
{ "starttrackslot", CON_STARTTRACKSLOT },
{ "starttrackvar", CON_STARTTRACKVAR },
{ "state", CON_STATE },
{ "stopactorsound", CON_STOPACTORSOUND },
{ "stopallmusic", CON_STOPALLMUSIC },
{ "stopallsounds", CON_STOPALLSOUNDS },
{ "stopsound", CON_STOPSOUND },
{ "stopsoundvar", CON_STOPSOUNDVAR },
{ "strength", CON_STRENGTH },
{ "subvar", CON_SUBVAR },
{ "subvarvar", CON_SUBVARVAR },
{ "switch", CON_SWITCH },
{ "time", CON_TIME },
{ "tip", CON_TIP },
{ "tossweapon", CON_TOSSWEAPON },
{ "undefinegamefunc", CON_UNDEFINEGAMEFUNC },
{ "undefinelevel", CON_UNDEFINELEVEL },
{ "undefineskill", CON_UNDEFINESKILL },
{ "undefinevolume", CON_UNDEFINEVOLUME },
{ "updatesector", CON_UPDATESECTOR },
{ "updatesectorz", CON_UPDATESECTORZ },
{ "useractor", CON_USERACTOR },
{ "userquote", CON_USERQUOTE },
{ "wackplayer", CON_WACKPLAYER },
{ "whilevarl", CON_WHILEVARL },
{ "whilevarn", CON_WHILEVARN },
{ "whilevarvarl", CON_WHILEVARVARL },
{ "whilevarvarn", CON_WHILEVARVARN },
{ "writearraytofile", CON_WRITEARRAYTOFILE },
{ "xorvar", CON_XORVAR },
{ "xorvarvar", CON_XORVARVAR },
{ "zshootvar", CON_ZSHOOTVAR },
{ "{", CON_LEFTBRACE },
{ "}", CON_RIGHTBRACE },
{ "#define", CON_DEFINE },
{ "#include", CON_INCLUDE },
{ "al", CON_ADDLOGVAR },
{ "var", CON_GAMEVAR },
{ "array", CON_GAMEARRAY },
{ "shiftl", CON_SHIFTVARVARL },
{ "shiftr", CON_SHIFTVARVARR },
{ "rand", CON_RANDVARVAR },
{ "set", CON_SETVARVAR },
{ "add", CON_ADDVARVAR },
{ "sub", CON_SUBVARVAR },
{ "mul", CON_MULVARVAR },
{ "div", CON_DIVVARVAR },
{ "mod", CON_MODVARVAR },
{ "and", CON_ANDVARVAR },
{ "or", CON_ORVARVAR },
{ "xor", CON_XORVARVAR },
{ "ifl", CON_IFVARVARL },
{ "ifle", CON_IFVARVARLE },
{ "ifg", CON_IFVARVARG },
{ "ifge", CON_IFVARVARGE },
{ "ife", CON_IFVARVARE },
{ "ifn", CON_IFVARVARN },
{ "ifand", CON_IFVARVARAND },
{ "ifor", CON_IFVARVAROR },
{ "ifxor", CON_IFVARVARXOR },
{ "ifeither", CON_IFVARVAREITHER },
{ "ifboth", CON_IFVARVARBOTH },
{ "whilen", CON_WHILEVARVARN },
{ "whilel", CON_WHILEVARVARL },
{ "abs", CON_KLABS },
{ "getp", CON_GETPLAYER },
{ "getpv", CON_GETPLAYERVAR },
{ "gets", CON_GETSECTOR },
{ "geta", CON_GETACTOR },
{ "getav", CON_GETACTORVAR },
{ "getw", CON_GETWALL },
{ "getu", CON_GETUSERDEF },
{ "geti", CON_GETINPUT },
{ "setp", CON_SETPLAYER },
{ "setpv", CON_SETPLAYERVAR },
{ "sets", CON_SETSECTOR },
{ "seta", CON_SETACTOR },
{ "setav", CON_SETACTORVAR },
{ "setw", CON_SETWALL },
{ "setu", CON_SETUSERDEF },
{ "seti", CON_SETINPUT },
{ "string", CON_DEFINEQUOTE },
{ "print", CON_QUOTE },
{ "dc", CON_DEFINECHEAT },
{ "ck", CON_CHEATKEYS },
{ "qputs", CON_REDEFINEQUOTE },
{ "espawn", CON_ESPAWNVAR },
{ "qspawn", CON_QSPAWNVAR },
{ "eqspawn", CON_EQSPAWNVAR },
{ "eshoot", CON_ESHOOTVAR },
{ "zshoot", CON_ZSHOOTVAR },
{ "ezshoot", CON_EZSHOOTVAR },
{ "shoot", CON_SHOOTVAR },
{ "findnearactor", CON_FINDNEARACTORVAR },
{ "findnearactor3d", CON_FINDNEARACTOR3DVAR },
{ "findnearactorz", CON_FINDNEARACTORZVAR },
{ "findnearsprite", CON_FINDNEARSPRITEVAR },
{ "findnearsprite3d", CON_FINDNEARSPRITE3DVAR },
{ "findnearspritez", CON_FINDNEARSPRITEZVAR },
};
#define NUMKEYWORDS (int32_t)ARRAY_SIZE(vm_keywords)
#endif
#ifdef __cplusplus
}
#endif
#endif // gamedef_h_