//------------------------------------------------------------------------- /* Copyright (C) 1996, 2003 - 3D Realms Entertainment Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements) Copyright (C) 2004, 2007 - EDuke32 developers 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ //------------------------------------------------------------------------- /* #include "duke3d.h" #include "gamedef.h" #include "osd.h" */ // this is all the crap for accessing the game's structs through the CON VM // I got a 3-4 fps gain by inlining these... static inline void X_AccessUserdef(int iSet, int lLabelID, int lVar2) { int lValue=0; if (g_p != myconnectindex) { // if (lVar2 == MAXGAMEVARS) // insptr++; insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case USERDEFS_GOD: if (iSet) { ud.god = lValue; return; } Gv_SetVar(lVar2, ud.god, g_i, g_p); return; case USERDEFS_WARP_ON: if (iSet) { ud.warp_on = lValue; return; } Gv_SetVar(lVar2, ud.warp_on, g_i, g_p); return; case USERDEFS_CASHMAN: if (iSet) { ud.cashman = lValue; return; } Gv_SetVar(lVar2, ud.cashman, g_i, g_p); return; case USERDEFS_EOG: if (iSet) { ud.eog = lValue; return; } Gv_SetVar(lVar2, ud.eog, g_i, g_p); return; case USERDEFS_SHOWALLMAP: if (iSet) { ud.showallmap = lValue; return; } Gv_SetVar(lVar2, ud.showallmap, g_i, g_p); return; case USERDEFS_SHOW_HELP: if (iSet) { ud.show_help = lValue; return; } Gv_SetVar(lVar2, ud.show_help, g_i, g_p); return; case USERDEFS_SCROLLMODE: if (iSet) { ud.scrollmode = lValue; return; } Gv_SetVar(lVar2, ud.scrollmode, g_i, g_p); return; case USERDEFS_CLIPPING: if (iSet) { ud.clipping = lValue; return; } Gv_SetVar(lVar2, ud.clipping, g_i, g_p); return; // case USERDEFS_USER_NAME: // if(iSet) // { // ud.user_name[MAXPLAYERS][32] = lValue; // return; // } // Gv_SetVar(lVar2, ud.user_name[MAXPLAYERS][32], g_i, g_p); // return; // case USERDEFS_RIDECULE: // if(iSet) // { // ud.ridecule = lValue; // return; // } // Gv_SetVar(lVar2, ud.ridecule, g_i, g_p); // return; // case USERDEFS_SAVEGAME: // if(iSet) // { // ud.savegame = lValue; // return; // } // Gv_SetVar(lVar2, ud.savegame, g_i, g_p); // return; // case USERDEFS_PWLOCKOUT: // if(iSet) // { // ud.pwlockout = lValue; // return; // } // Gv_SetVar(lVar2, ud.pwlockout, g_i, g_p); // return; // case USERDEFS_RTSNAME: // if(iSet) // { // ud.rtsname = lValue; // return; // } // Gv_SetVar(lVar2, ud.rtsname, g_i, g_p); // return; case USERDEFS_OVERHEAD_ON: if (iSet) { ud.overhead_on = lValue; return; } Gv_SetVar(lVar2, ud.overhead_on, g_i, g_p); return; case USERDEFS_LAST_OVERHEAD: if (iSet) { ud.last_overhead = lValue; return; } Gv_SetVar(lVar2, ud.last_overhead, g_i, g_p); return; case USERDEFS_SHOWWEAPONS: if (iSet) { ud.showweapons = lValue; return; } Gv_SetVar(lVar2, ud.showweapons, g_i, g_p); return; case USERDEFS_PAUSE_ON: if (iSet) { ud.pause_on = lValue; return; } Gv_SetVar(lVar2, ud.pause_on, g_i, g_p); return; case USERDEFS_FROM_BONUS: if (iSet) { ud.from_bonus = lValue; return; } Gv_SetVar(lVar2, ud.from_bonus, g_i, g_p); return; case USERDEFS_CAMERASPRITE: if (iSet) { ud.camerasprite = lValue; return; } Gv_SetVar(lVar2, ud.camerasprite, g_i, g_p); return; case USERDEFS_LAST_CAMSPRITE: if (iSet) { ud.last_camsprite = lValue; return; } Gv_SetVar(lVar2, ud.last_camsprite, g_i, g_p); return; case USERDEFS_LAST_LEVEL: if (iSet) { ud.last_level = lValue; return; } Gv_SetVar(lVar2, ud.last_level, g_i, g_p); return; case USERDEFS_SECRETLEVEL: if (iSet) { ud.secretlevel = lValue; return; } Gv_SetVar(lVar2, ud.secretlevel, g_i, g_p); return; case USERDEFS_CONST_VISIBILITY: if (iSet) { ud.const_visibility = lValue; return; } Gv_SetVar(lVar2, ud.const_visibility, g_i, g_p); return; case USERDEFS_UW_FRAMERATE: if (iSet) { ud.uw_framerate = lValue; return; } Gv_SetVar(lVar2, ud.uw_framerate, g_i, g_p); return; case USERDEFS_CAMERA_TIME: if (iSet) { ud.camera_time = lValue; return; } Gv_SetVar(lVar2, ud.camera_time, g_i, g_p); return; case USERDEFS_FOLFVEL: if (iSet) { ud.folfvel = lValue; return; } Gv_SetVar(lVar2, ud.folfvel, g_i, g_p); return; case USERDEFS_FOLAVEL: if (iSet) { ud.folavel = lValue; return; } Gv_SetVar(lVar2, ud.folavel, g_i, g_p); return; case USERDEFS_FOLX: if (iSet) { ud.folx = lValue; return; } Gv_SetVar(lVar2, ud.folx, g_i, g_p); return; case USERDEFS_FOLY: if (iSet) { ud.foly = lValue; return; } Gv_SetVar(lVar2, ud.foly, g_i, g_p); return; case USERDEFS_FOLA: if (iSet) { ud.fola = lValue; return; } Gv_SetVar(lVar2, ud.fola, g_i, g_p); return; case USERDEFS_RECCNT: if (iSet) { ud.reccnt = lValue; return; } Gv_SetVar(lVar2, ud.reccnt, g_i, g_p); return; case USERDEFS_ENTERED_NAME: if (iSet) { ud.entered_name = lValue; return; } Gv_SetVar(lVar2, ud.entered_name, g_i, g_p); return; case USERDEFS_SCREEN_TILTING: if (iSet) { ud.screen_tilting = lValue; return; } Gv_SetVar(lVar2, ud.screen_tilting, g_i, g_p); return; case USERDEFS_SHADOWS: if (iSet) { ud.shadows = lValue; return; } Gv_SetVar(lVar2, ud.shadows, g_i, g_p); return; case USERDEFS_FTA_ON: if (iSet) { ud.fta_on = lValue; return; } Gv_SetVar(lVar2, ud.fta_on, g_i, g_p); return; case USERDEFS_EXECUTIONS: if (iSet) { ud.executions = lValue; return; } Gv_SetVar(lVar2, ud.executions, g_i, g_p); return; case USERDEFS_AUTO_RUN: if (iSet) { ud.auto_run = lValue; return; } Gv_SetVar(lVar2, ud.auto_run, g_i, g_p); return; case USERDEFS_COORDS: if (iSet) { ud.coords = lValue; return; } Gv_SetVar(lVar2, ud.coords, g_i, g_p); return; case USERDEFS_TICKRATE: if (iSet) { ud.tickrate = lValue; return; } Gv_SetVar(lVar2, ud.tickrate, g_i, g_p); return; case USERDEFS_M_COOP: if (iSet) { ud.m_coop = lValue; return; } Gv_SetVar(lVar2, ud.m_coop, g_i, g_p); return; case USERDEFS_COOP: if (iSet) { ud.coop = lValue; return; } Gv_SetVar(lVar2, ud.coop, g_i, g_p); return; case USERDEFS_SCREEN_SIZE: if (iSet) { if (ud.screen_size != lValue) { ud.screen_size = lValue; G_UpdateScreenArea(); } return; } Gv_SetVar(lVar2, ud.screen_size, g_i, g_p); return; case USERDEFS_LOCKOUT: if (iSet) { ud.lockout = lValue; return; } Gv_SetVar(lVar2, ud.lockout, g_i, g_p); return; case USERDEFS_CROSSHAIR: if (iSet) { ud.crosshair = lValue; return; } Gv_SetVar(lVar2, ud.crosshair, g_i, g_p); return; // case USERDEFS_WCHOICE: // if(iSet) // { // ud.wchoice = lValue; // return; // } // Gv_SetVar(lVar2, ud.wchoice, g_i, g_p); // return; case USERDEFS_PLAYERAI: if (iSet) { ud.playerai = lValue; return; } Gv_SetVar(lVar2, ud.playerai, g_i, g_p); return; case USERDEFS_RESPAWN_MONSTERS: if (iSet) { ud.respawn_monsters = lValue; return; } Gv_SetVar(lVar2, ud.respawn_monsters, g_i, g_p); return; case USERDEFS_RESPAWN_ITEMS: if (iSet) { ud.respawn_items = lValue; return; } Gv_SetVar(lVar2, ud.respawn_items, g_i, g_p); return; case USERDEFS_RESPAWN_INVENTORY: if (iSet) { ud.respawn_inventory = lValue; return; } Gv_SetVar(lVar2, ud.respawn_inventory, g_i, g_p); return; case USERDEFS_RECSTAT: if (iSet) { ud.recstat = lValue; return; } Gv_SetVar(lVar2, ud.recstat, g_i, g_p); return; case USERDEFS_MONSTERS_OFF: if (iSet) { ud.monsters_off = lValue; return; } Gv_SetVar(lVar2, ud.monsters_off, g_i, g_p); return; case USERDEFS_BRIGHTNESS: if (iSet) { ud.brightness = lValue; return; } Gv_SetVar(lVar2, ud.brightness, g_i, g_p); return; case USERDEFS_M_RESPAWN_ITEMS: if (iSet) { ud.m_respawn_items = lValue; return; } Gv_SetVar(lVar2, ud.m_respawn_items, g_i, g_p); return; case USERDEFS_M_RESPAWN_MONSTERS: if (iSet) { ud.m_respawn_monsters = lValue; return; } Gv_SetVar(lVar2, ud.m_respawn_monsters, g_i, g_p); return; case USERDEFS_M_RESPAWN_INVENTORY: if (iSet) { ud.m_respawn_inventory = lValue; return; } Gv_SetVar(lVar2, ud.m_respawn_inventory, g_i, g_p); return; case USERDEFS_M_RECSTAT: if (iSet) { ud.m_recstat = lValue; return; } Gv_SetVar(lVar2, ud.m_recstat, g_i, g_p); return; case USERDEFS_M_MONSTERS_OFF: if (iSet) { ud.m_monsters_off = lValue; return; } Gv_SetVar(lVar2, ud.m_monsters_off, g_i, g_p); return; case USERDEFS_DETAIL: if (iSet) { ud.detail = lValue; return; } Gv_SetVar(lVar2, ud.detail, g_i, g_p); return; case USERDEFS_M_FFIRE: if (iSet) { ud.m_ffire = lValue; return; } Gv_SetVar(lVar2, ud.m_ffire, g_i, g_p); return; case USERDEFS_FFIRE: if (iSet) { ud.ffire = lValue; return; } Gv_SetVar(lVar2, ud.ffire, g_i, g_p); return; case USERDEFS_M_PLAYER_SKILL: if (iSet) { ud.m_player_skill = lValue; return; } Gv_SetVar(lVar2, ud.m_player_skill, g_i, g_p); return; case USERDEFS_M_LEVEL_NUMBER: if (iSet) { ud.m_level_number = lValue; return; } Gv_SetVar(lVar2, ud.m_level_number, g_i, g_p); return; case USERDEFS_M_VOLUME_NUMBER: if (iSet) { ud.m_volume_number = lValue; return; } Gv_SetVar(lVar2, ud.m_volume_number, g_i, g_p); return; case USERDEFS_MULTIMODE: if (iSet) { ud.multimode = lValue; return; } Gv_SetVar(lVar2, ud.multimode, g_i, g_p); return; case USERDEFS_PLAYER_SKILL: if (iSet) { ud.player_skill = lValue; return; } Gv_SetVar(lVar2, ud.player_skill, g_i, g_p); return; case USERDEFS_LEVEL_NUMBER: if (iSet) { ud.level_number = lValue; return; } Gv_SetVar(lVar2, ud.level_number, g_i, g_p); return; case USERDEFS_VOLUME_NUMBER: if (iSet) { ud.volume_number = lValue; return; } Gv_SetVar(lVar2, ud.volume_number, g_i, g_p); return; case USERDEFS_M_MARKER: if (iSet) { ud.m_marker = lValue; return; } Gv_SetVar(lVar2, ud.m_marker, g_i, g_p); return; case USERDEFS_MARKER: if (iSet) { ud.marker = lValue; return; } Gv_SetVar(lVar2, ud.marker, g_i, g_p); return; case USERDEFS_MOUSEFLIP: if (iSet) { ud.mouseflip = lValue; return; } Gv_SetVar(lVar2, ud.mouseflip, g_i, g_p); return; case USERDEFS_STATUSBARSCALE: if (iSet) { ud.statusbarscale = lValue; return; } Gv_SetVar(lVar2, ud.statusbarscale, g_i, g_p); return; case USERDEFS_DRAWWEAPON: if (iSet) { ud.drawweapon = lValue; return; } Gv_SetVar(lVar2, ud.drawweapon, g_i, g_p); return; case USERDEFS_MOUSEAIMING: if (iSet) { ud.mouseaiming = lValue; return; } Gv_SetVar(lVar2, ud.mouseaiming, g_i, g_p); return; case USERDEFS_WEAPONSWITCH: if (iSet) { ud.weaponswitch = lValue; return; } Gv_SetVar(lVar2, ud.weaponswitch, g_i, g_p); return; case USERDEFS_DEMOCAMS: if (iSet) { ud.democams = lValue; return; } Gv_SetVar(lVar2, ud.democams, g_i, g_p); return; case USERDEFS_COLOR: if (iSet) { ud.color = lValue; return; } Gv_SetVar(lVar2, ud.color, g_i, g_p); return; case USERDEFS_MSGDISPTIME: if (iSet) { ud.msgdisptime = lValue; return; } Gv_SetVar(lVar2, ud.msgdisptime, g_i, g_p); return; case USERDEFS_STATUSBARMODE: if (iSet) { ud.statusbarmode = lValue; return; } Gv_SetVar(lVar2, ud.statusbarmode, g_i, g_p); return; case USERDEFS_M_NOEXITS: if (iSet) { ud.m_noexits = lValue; return; } Gv_SetVar(lVar2, ud.m_noexits, g_i, g_p); return; case USERDEFS_NOEXITS: if (iSet) { ud.noexits = lValue; return; } Gv_SetVar(lVar2, ud.noexits, g_i, g_p); return; case USERDEFS_AUTOVOTE: if (iSet) { ud.autovote = lValue; return; } Gv_SetVar(lVar2, ud.autovote, g_i, g_p); return; case USERDEFS_AUTOMSG: if (iSet) { ud.automsg = lValue; return; } Gv_SetVar(lVar2, ud.automsg, g_i, g_p); return; case USERDEFS_IDPLAYERS: if (iSet) { ud.idplayers = lValue; return; } Gv_SetVar(lVar2, ud.idplayers, g_i, g_p); return; case USERDEFS_TEAM: if (iSet) { ud.team = lValue; return; } Gv_SetVar(lVar2, ud.team, g_i, g_p); return; case USERDEFS_VIEWBOB: if (iSet) { ud.viewbob = lValue; return; } Gv_SetVar(lVar2, ud.viewbob, g_i, g_p); return; case USERDEFS_WEAPONSWAY: if (iSet) { ud.weaponsway = lValue; return; } Gv_SetVar(lVar2, ud.weaponsway, g_i, g_p); return; case USERDEFS_ANGLEINTERPOLATION: if (iSet) { ud.angleinterpolation = lValue; return; } Gv_SetVar(lVar2, ud.angleinterpolation, g_i, g_p); return; case USERDEFS_OBITUARIES: if (iSet) { ud.obituaries = lValue; return; } Gv_SetVar(lVar2, ud.obituaries, g_i, g_p); return; case USERDEFS_LEVELSTATS: if (iSet) { ud.levelstats = lValue; return; } Gv_SetVar(lVar2, ud.levelstats, g_i, g_p); return; case USERDEFS_CROSSHAIRSCALE: if (iSet) { ud.crosshairscale = lValue; return; } Gv_SetVar(lVar2, ud.crosshairscale, g_i, g_p); return; case USERDEFS_ALTHUD: if (iSet) { ud.althud = lValue; return; } Gv_SetVar(lVar2, ud.althud, g_i, g_p); return; case USERDEFS_DISPLAY_BONUS_SCREEN: if (iSet) { ud.display_bonus_screen = lValue; return; } Gv_SetVar(lVar2, ud.display_bonus_screen, g_i, g_p); return; case USERDEFS_SHOW_LEVEL_TEXT: if (iSet) { ud.show_level_text = lValue; return; } Gv_SetVar(lVar2, ud.show_level_text, g_i, g_p); return; case USERDEFS_WEAPONSCALE: if (iSet) { ud.weaponscale = lValue; return; } Gv_SetVar(lVar2, ud.weaponscale, g_i, g_p); return; case USERDEFS_TEXTSCALE: if (iSet) { ud.textscale = lValue; return; } Gv_SetVar(lVar2, ud.textscale, g_i, g_p); return; default: return; } } static inline void X_AccessActiveProjectile(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0,proj=g_i; if (lVar1 != g_iThisActorID) proj=Gv_GetVar(lVar1, g_i, g_p); if ((proj < 0 || proj >= MAXSPRITES) && g_scriptSanityChecks) { // OSD_Printf("X_AccessActiveProjectile(): invalid projectile (%d)\n",proj); OSD_Printf(CON_ERROR "tried to %s %s on invalid target projectile (%d) %d %d from %s\n",g_errorLineNum,keyw[g_tw], iSet?"set":"get",ProjectileLabels[lLabelID].name,proj,g_i,g_sp->picnum, (lVar1= ud.multimode) && g_scriptSanityChecks) { // OSD_Printf("X_AccessPlayer(): invalid target player (%d) %d\n",iPlayer,g_i); OSD_Printf(CON_ERROR "tried to %s %s on invalid target player (%d) from spr %d gv %s\n",g_errorLineNum,keyw[g_tw], iSet?"set":"get",PlayerLabels[lLabelID].name,iPlayer,g_i, (lVar1= PlayerLabels[lLabelID].maxParm2)) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "tried to %s invalid %s position %d on player (%d) from spr %d\n",g_errorLineNum,keyw[g_tw], iSet?"set":"get",PlayerLabels[lLabelID].name,lParm2,iPlayer,g_i); insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case PLAYER_ZOOM: if (iSet) { g_player[iPlayer].ps->zoom=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->zoom, g_i, g_p); return; case PLAYER_EXITX: if (iSet) { g_player[iPlayer].ps->exitx=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->exitx, g_i, g_p); return; case PLAYER_EXITY: if (iSet) { g_player[iPlayer].ps->exity=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->exity, g_i, g_p); return; case PLAYER_LOOGIEX: if (iSet) { g_player[iPlayer].ps->loogiex[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->loogiex[lParm2], g_i, g_p); return; case PLAYER_LOOGIEY: if (iSet) { g_player[iPlayer].ps->loogiey[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->loogiey[lParm2], g_i, g_p); return; case PLAYER_NUMLOOGS: if (iSet) { g_player[iPlayer].ps->numloogs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->numloogs, g_i, g_p); return; case PLAYER_LOOGCNT: if (iSet) { g_player[iPlayer].ps->loogcnt=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->loogcnt, g_i, g_p); return; case PLAYER_POSX: if (iSet) { g_player[iPlayer].ps->posx=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->posx, g_i, g_p); return; case PLAYER_POSY: if (iSet) { g_player[iPlayer].ps->posy=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->posy, g_i, g_p); return; case PLAYER_POSZ: if (iSet) { g_player[iPlayer].ps->posz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->posz, g_i, g_p); return; case PLAYER_HORIZ: if (iSet) { g_player[iPlayer].ps->horiz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->horiz, g_i, g_p); return; case PLAYER_OHORIZ: if (iSet) { g_player[iPlayer].ps->ohoriz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->ohoriz, g_i, g_p); return; case PLAYER_OHORIZOFF: if (iSet) { g_player[iPlayer].ps->ohorizoff=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->ohorizoff, g_i, g_p); return; case PLAYER_INVDISPTIME: if (iSet) { g_player[iPlayer].ps->invdisptime=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->invdisptime, g_i, g_p); return; case PLAYER_BOBPOSX: if (iSet) { g_player[iPlayer].ps->bobposx=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->bobposx, g_i, g_p); return; case PLAYER_BOBPOSY: if (iSet) { g_player[iPlayer].ps->bobposy=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->bobposy, g_i, g_p); return; case PLAYER_OPOSX: if (iSet) { g_player[iPlayer].ps->oposx=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->oposx, g_i, g_p); return; case PLAYER_OPOSY: if (iSet) { g_player[iPlayer].ps->oposy=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->oposy, g_i, g_p); return; case PLAYER_OPOSZ: if (iSet) { g_player[iPlayer].ps->oposz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->oposz, g_i, g_p); return; case PLAYER_PYOFF: if (iSet) { g_player[iPlayer].ps->pyoff=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->pyoff, g_i, g_p); return; case PLAYER_OPYOFF: if (iSet) { g_player[iPlayer].ps->opyoff=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->opyoff, g_i, g_p); return; case PLAYER_POSXV: if (iSet) { g_player[iPlayer].ps->posxv=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->posxv, g_i, g_p); return; case PLAYER_POSYV: if (iSet) { g_player[iPlayer].ps->posyv=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->posyv, g_i, g_p); return; case PLAYER_POSZV: if (iSet) { g_player[iPlayer].ps->poszv=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->poszv, g_i, g_p); return; case PLAYER_LAST_PISSED_TIME: if (iSet) { g_player[iPlayer].ps->last_pissed_time=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->last_pissed_time, g_i, g_p); return; case PLAYER_TRUEFZ: if (iSet) { g_player[iPlayer].ps->truefz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->truefz, g_i, g_p); return; case PLAYER_TRUECZ: if (iSet) { g_player[iPlayer].ps->truecz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->truecz, g_i, g_p); return; case PLAYER_PLAYER_PAR: if (iSet) { g_player[iPlayer].ps->player_par=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->player_par, g_i, g_p); return; case PLAYER_VISIBILITY: if (iSet) { g_player[iPlayer].ps->visibility=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->visibility, g_i, g_p); return; case PLAYER_BOBCOUNTER: if (iSet) { g_player[iPlayer].ps->bobcounter=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->bobcounter, g_i, g_p); return; case PLAYER_WEAPON_SWAY: if (iSet) { g_player[iPlayer].ps->weapon_sway=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weapon_sway, g_i, g_p); return; case PLAYER_PALS_TIME: if (iSet) { g_player[iPlayer].ps->pals_time=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->pals_time, g_i, g_p); return; case PLAYER_RANDOMFLAMEX: if (iSet) { g_player[iPlayer].ps->randomflamex=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->randomflamex, g_i, g_p); return; case PLAYER_CRACK_TIME: if (iSet) { g_player[iPlayer].ps->crack_time=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->crack_time, g_i, g_p); return; case PLAYER_AIM_MODE: if (iSet) { g_player[iPlayer].ps->aim_mode=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->aim_mode, g_i, g_p); return; case PLAYER_ANG: if (iSet) { g_player[iPlayer].ps->ang=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->ang, g_i, g_p); return; case PLAYER_OANG: if (iSet) { g_player[iPlayer].ps->oang=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->oang, g_i, g_p); return; case PLAYER_ANGVEL: if (iSet) { g_player[iPlayer].ps->angvel=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->angvel, g_i, g_p); return; case PLAYER_CURSECTNUM: if (iSet) { g_player[iPlayer].ps->cursectnum=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->cursectnum, g_i, g_p); return; case PLAYER_LOOK_ANG: if (iSet) { g_player[iPlayer].ps->look_ang=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->look_ang, g_i, g_p); return; case PLAYER_LAST_EXTRA: if (iSet) { g_player[iPlayer].ps->last_extra=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->last_extra, g_i, g_p); return; case PLAYER_SUBWEAPON: if (iSet) { g_player[iPlayer].ps->subweapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->subweapon, g_i, g_p); return; case PLAYER_AMMO_AMOUNT: if (iSet) { g_player[iPlayer].ps->ammo_amount[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->ammo_amount[lParm2], g_i, g_p); return; case PLAYER_WACKEDBYACTOR: if (iSet) { g_player[iPlayer].ps->wackedbyactor=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->wackedbyactor, g_i, g_p); return; case PLAYER_FRAG: if (iSet) { g_player[iPlayer].ps->frag=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->frag, g_i, g_p); return; case PLAYER_FRAGGEDSELF: if (iSet) { g_player[iPlayer].ps->fraggedself=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->fraggedself, g_i, g_p); return; case PLAYER_CURR_WEAPON: if (iSet) { g_player[iPlayer].ps->curr_weapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->curr_weapon, g_i, g_p); return; case PLAYER_LAST_WEAPON: if (iSet) { g_player[iPlayer].ps->last_weapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->last_weapon, g_i, g_p); return; case PLAYER_TIPINCS: if (iSet) { g_player[iPlayer].ps->tipincs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->tipincs, g_i, g_p); return; case PLAYER_HORIZOFF: if (iSet) { g_player[iPlayer].ps->horizoff=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->horizoff, g_i, g_p); return; case PLAYER_WANTWEAPONFIRE: if (iSet) { g_player[iPlayer].ps->wantweaponfire=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->wantweaponfire, g_i, g_p); return; case PLAYER_HOLODUKE_AMOUNT: if (iSet) { g_player[iPlayer].ps->holoduke_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->holoduke_amount, g_i, g_p); return; case PLAYER_NEWOWNER: if (iSet) { g_player[iPlayer].ps->newowner=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->newowner, g_i, g_p); return; case PLAYER_HURT_DELAY: if (iSet) { g_player[iPlayer].ps->hurt_delay=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->hurt_delay, g_i, g_p); return; case PLAYER_HBOMB_HOLD_DELAY: if (iSet) { g_player[iPlayer].ps->hbomb_hold_delay=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->hbomb_hold_delay, g_i, g_p); return; case PLAYER_JUMPING_COUNTER: if (iSet) { g_player[iPlayer].ps->jumping_counter=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->jumping_counter, g_i, g_p); return; case PLAYER_AIRLEFT: if (iSet) { g_player[iPlayer].ps->airleft=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->airleft, g_i, g_p); return; case PLAYER_KNEE_INCS: if (iSet) { g_player[iPlayer].ps->knee_incs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->knee_incs, g_i, g_p); return; case PLAYER_ACCESS_INCS: if (iSet) { g_player[iPlayer].ps->access_incs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->access_incs, g_i, g_p); return; case PLAYER_FTA: if (iSet) { g_player[iPlayer].ps->fta=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->fta, g_i, g_p); return; case PLAYER_FTQ: if (iSet) { g_player[iPlayer].ps->ftq=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->ftq, g_i, g_p); return; case PLAYER_ACCESS_WALLNUM: if (iSet) { g_player[iPlayer].ps->access_wallnum=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->access_wallnum, g_i, g_p); return; case PLAYER_ACCESS_SPRITENUM: if (iSet) { g_player[iPlayer].ps->access_spritenum=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->access_spritenum, g_i, g_p); return; case PLAYER_KICKBACK_PIC: if (iSet) { g_player[iPlayer].ps->kickback_pic=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->kickback_pic, g_i, g_p); return; case PLAYER_GOT_ACCESS: if (iSet) { g_player[iPlayer].ps->got_access=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->got_access, g_i, g_p); return; case PLAYER_WEAPON_ANG: if (iSet) { g_player[iPlayer].ps->weapon_ang=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weapon_ang, g_i, g_p); return; case PLAYER_FIRSTAID_AMOUNT: if (iSet) { g_player[iPlayer].ps->firstaid_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->firstaid_amount, g_i, g_p); return; case PLAYER_SOMETHINGONPLAYER: if (iSet) { g_player[iPlayer].ps->somethingonplayer=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->somethingonplayer, g_i, g_p); return; case PLAYER_ON_CRANE: if (iSet) { g_player[iPlayer].ps->on_crane=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->on_crane, g_i, g_p); return; case PLAYER_I: if (iSet) { g_player[iPlayer].ps->i=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->i, g_i, g_p); return; case PLAYER_ONE_PARALLAX_SECTNUM: if (iSet) { g_player[iPlayer].ps->one_parallax_sectnum=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->one_parallax_sectnum, g_i, g_p); return; case PLAYER_OVER_SHOULDER_ON: if (iSet) { g_player[iPlayer].ps->over_shoulder_on=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->over_shoulder_on, g_i, g_p); return; case PLAYER_RANDOM_CLUB_FRAME: if (iSet) { g_player[iPlayer].ps->random_club_frame=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->random_club_frame, g_i, g_p); return; case PLAYER_FIST_INCS: if (iSet) { g_player[iPlayer].ps->fist_incs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->fist_incs, g_i, g_p); return; case PLAYER_ONE_EIGHTY_COUNT: if (iSet) { g_player[iPlayer].ps->one_eighty_count=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->one_eighty_count, g_i, g_p); return; case PLAYER_CHEAT_PHASE: if (iSet) { g_player[iPlayer].ps->cheat_phase=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->cheat_phase, g_i, g_p); return; case PLAYER_DUMMYPLAYERSPRITE: if (iSet) { g_player[iPlayer].ps->dummyplayersprite=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->dummyplayersprite, g_i, g_p); return; case PLAYER_EXTRA_EXTRA8: if (iSet) { g_player[iPlayer].ps->extra_extra8=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->extra_extra8, g_i, g_p); return; case PLAYER_QUICK_KICK: if (iSet) { g_player[iPlayer].ps->quick_kick=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->quick_kick, g_i, g_p); return; case PLAYER_HEAT_AMOUNT: if (iSet) { g_player[iPlayer].ps->heat_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->heat_amount, g_i, g_p); return; case PLAYER_ACTORSQU: if (iSet) { g_player[iPlayer].ps->actorsqu=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->actorsqu, g_i, g_p); return; case PLAYER_TIMEBEFOREEXIT: if (iSet) { g_player[iPlayer].ps->timebeforeexit=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->timebeforeexit, g_i, g_p); return; case PLAYER_CUSTOMEXITSOUND: if (iSet) { g_player[iPlayer].ps->customexitsound=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->customexitsound, g_i, g_p); return; case PLAYER_WEAPRECS: if (iSet) { g_player[iPlayer].ps->weaprecs[15]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weaprecs[15], g_i, g_p); return; case PLAYER_WEAPRECCNT: if (iSet) { g_player[iPlayer].ps->weapreccnt=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weapreccnt, g_i, g_p); return; case PLAYER_INTERFACE_TOGGLE_FLAG: if (iSet) { g_player[iPlayer].ps->interface_toggle_flag=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->interface_toggle_flag, g_i, g_p); return; case PLAYER_ROTSCRNANG: if (iSet) { g_player[iPlayer].ps->rotscrnang=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->rotscrnang, g_i, g_p); return; case PLAYER_DEAD_FLAG: if (iSet) { g_player[iPlayer].ps->dead_flag=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->dead_flag, g_i, g_p); return; case PLAYER_SHOW_EMPTY_WEAPON: if (iSet) { g_player[iPlayer].ps->show_empty_weapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->show_empty_weapon, g_i, g_p); return; case PLAYER_SCUBA_AMOUNT: if (iSet) { g_player[iPlayer].ps->scuba_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->scuba_amount, g_i, g_p); return; case PLAYER_JETPACK_AMOUNT: if (iSet) { g_player[iPlayer].ps->jetpack_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->jetpack_amount, g_i, g_p); return; case PLAYER_STEROIDS_AMOUNT: if (iSet) { g_player[iPlayer].ps->steroids_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->steroids_amount, g_i, g_p); return; case PLAYER_SHIELD_AMOUNT: if (iSet) { g_player[iPlayer].ps->shield_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->shield_amount, g_i, g_p); return; case PLAYER_HOLODUKE_ON: if (iSet) { g_player[iPlayer].ps->holoduke_on=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->holoduke_on, g_i, g_p); return; case PLAYER_PYCOUNT: if (iSet) { g_player[iPlayer].ps->pycount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->pycount, g_i, g_p); return; case PLAYER_WEAPON_POS: if (iSet) { g_player[iPlayer].ps->weapon_pos=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weapon_pos, g_i, g_p); return; case PLAYER_FRAG_PS: if (iSet) { g_player[iPlayer].ps->frag_ps=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->frag_ps, g_i, g_p); return; case PLAYER_TRANSPORTER_HOLD: if (iSet) { g_player[iPlayer].ps->transporter_hold=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->transporter_hold, g_i, g_p); return; case PLAYER_LAST_FULL_WEAPON: if (iSet) { g_player[iPlayer].ps->last_full_weapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->last_full_weapon, g_i, g_p); return; case PLAYER_FOOTPRINTSHADE: if (iSet) { g_player[iPlayer].ps->footprintshade=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->footprintshade, g_i, g_p); return; case PLAYER_BOOT_AMOUNT: if (iSet) { g_player[iPlayer].ps->boot_amount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->boot_amount, g_i, g_p); return; case PLAYER_SCREAM_VOICE: if (iSet) { g_player[iPlayer].ps->scream_voice=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->scream_voice, g_i, g_p); return; case PLAYER_GM: if (iSet) { g_player[iPlayer].ps->gm=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->gm, g_i, g_p); return; case PLAYER_ON_WARPING_SECTOR: if (iSet) { g_player[iPlayer].ps->on_warping_sector=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->on_warping_sector, g_i, g_p); return; case PLAYER_FOOTPRINTCOUNT: if (iSet) { g_player[iPlayer].ps->footprintcount=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->footprintcount, g_i, g_p); return; case PLAYER_HBOMB_ON: if (iSet) { g_player[iPlayer].ps->hbomb_on=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->hbomb_on, g_i, g_p); return; case PLAYER_JUMPING_TOGGLE: if (iSet) { g_player[iPlayer].ps->jumping_toggle=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->jumping_toggle, g_i, g_p); return; case PLAYER_RAPID_FIRE_HOLD: if (iSet) { g_player[iPlayer].ps->rapid_fire_hold=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->rapid_fire_hold, g_i, g_p); return; case PLAYER_ON_GROUND: if (iSet) { g_player[iPlayer].ps->on_ground=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->on_ground, g_i, g_p); return; /* case PLAYER_NAME: if (iSet) { g_player[iPlayer].ps->name[32]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->name[32], g_i, g_p); return;*/ case PLAYER_INVEN_ICON: if (iSet) { g_player[iPlayer].ps->inven_icon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->inven_icon, g_i, g_p); return; case PLAYER_BUTTONPALETTE: if (iSet) { g_player[iPlayer].ps->buttonpalette=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->buttonpalette, g_i, g_p); return; case PLAYER_JETPACK_ON: if (iSet) { g_player[iPlayer].ps->jetpack_on=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->jetpack_on, g_i, g_p); return; case PLAYER_SPRITEBRIDGE: if (iSet) { g_player[iPlayer].ps->spritebridge=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->spritebridge, g_i, g_p); return; case PLAYER_LASTRANDOMSPOT: if (iSet) { g_player[iPlayer].ps->lastrandomspot=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->lastrandomspot, g_i, g_p); return; case PLAYER_SCUBA_ON: if (iSet) { g_player[iPlayer].ps->scuba_on=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->scuba_on, g_i, g_p); return; case PLAYER_FOOTPRINTPAL: if (iSet) { g_player[iPlayer].ps->footprintpal=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->footprintpal, g_i, g_p); return; case PLAYER_HEAT_ON: if (iSet) { { if (g_player[iPlayer].ps->heat_on != lValue) { g_player[iPlayer].ps->heat_on=lValue; P_UpdateScreenPal(g_player[iPlayer].ps); } } return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->heat_on, g_i, g_p); return; case PLAYER_HOLSTER_WEAPON: if (iSet) { g_player[iPlayer].ps->holster_weapon=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->holster_weapon, g_i, g_p); return; case PLAYER_FALLING_COUNTER: if (iSet) { g_player[iPlayer].ps->falling_counter=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->falling_counter, g_i, g_p); return; case PLAYER_GOTWEAPON: if (iSet) { g_player[iPlayer].ps->gotweapon[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->gotweapon[lParm2], g_i, g_p); return; case PLAYER_REFRESH_INVENTORY: if (iSet) { g_player[iPlayer].ps->refresh_inventory=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->refresh_inventory, g_i, g_p); return; // case PLAYER_PALETTE: // if(iSet) // { // g_player[iPlayer].ps->palette=lValue; // } // return; } // { // Gv_SetVar(lVar2, g_player[iPlayer].ps->palette, g_i, g_p); // } // return; case PLAYER_TOGGLE_KEY_FLAG: if (iSet) { g_player[iPlayer].ps->toggle_key_flag=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->toggle_key_flag, g_i, g_p); return; case PLAYER_KNUCKLE_INCS: if (iSet) { g_player[iPlayer].ps->knuckle_incs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->knuckle_incs, g_i, g_p); return; case PLAYER_WALKING_SND_TOGGLE: if (iSet) { g_player[iPlayer].ps->walking_snd_toggle=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->walking_snd_toggle, g_i, g_p); return; case PLAYER_PALOOKUP: if (iSet) { g_player[iPlayer].ps->palookup=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->palookup, g_i, g_p); return; case PLAYER_HARD_LANDING: if (iSet) { g_player[iPlayer].ps->hard_landing=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->hard_landing, g_i, g_p); return; case PLAYER_MAX_SECRET_ROOMS: if (iSet) { g_player[iPlayer].ps->max_secret_rooms=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->max_secret_rooms, g_i, g_p); return; case PLAYER_SECRET_ROOMS: if (iSet) { g_player[iPlayer].ps->secret_rooms=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->secret_rooms, g_i, g_p); return; case PLAYER_PALS: if (iSet) { g_player[iPlayer].ps->pals[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->pals[lParm2], g_i, g_p); return; case PLAYER_MAX_ACTORS_KILLED: if (iSet) { g_player[iPlayer].ps->max_actors_killed=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->max_actors_killed, g_i, g_p); return; case PLAYER_ACTORS_KILLED: if (iSet) { g_player[iPlayer].ps->actors_killed=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->actors_killed, g_i, g_p); return; case PLAYER_RETURN_TO_CENTER: if (iSet) { g_player[iPlayer].ps->return_to_center=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->return_to_center, g_i, g_p); return; case PLAYER_RUNSPEED: if (iSet) { g_player[iPlayer].ps->runspeed=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->runspeed, g_i, g_p); return; case PLAYER_SBS: if (iSet) { g_player[iPlayer].ps->sbs=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->sbs, g_i, g_p); return; case PLAYER_RELOADING: if (iSet) { g_player[iPlayer].ps->reloading=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->reloading, g_i, g_p); return; case PLAYER_AUTO_AIM: if (iSet) { g_player[iPlayer].ps->auto_aim=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->auto_aim, g_i, g_p); return; case PLAYER_MOVEMENT_LOCK: if (iSet) { g_player[iPlayer].ps->movement_lock=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->movement_lock, g_i, g_p); return; case PLAYER_SOUND_PITCH: if (iSet) { g_player[iPlayer].ps->sound_pitch=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->sound_pitch, g_i, g_p); return; case PLAYER_WEAPONSWITCH: if (iSet) { g_player[iPlayer].ps->weaponswitch=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->weaponswitch, g_i, g_p); return; case PLAYER_TEAM: if (iSet) { g_player[iPlayer].ps->team=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->team, g_i, g_p); return; case PLAYER_MAX_PLAYER_HEALTH: if (iSet) { g_player[iPlayer].ps->max_player_health = lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->max_player_health, g_i, g_p); return; case PLAYER_MAX_SHIELD_AMOUNT: if (iSet) { g_player[iPlayer].ps->max_shield_amount = lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->max_shield_amount, g_i, g_p); return; case PLAYER_MAX_AMMO_AMOUNT: if (iSet) { g_player[iPlayer].ps->max_ammo_amount[lParm2]=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->max_ammo_amount[lParm2], g_i, g_p); return; case PLAYER_LAST_QUICK_KICK: if (iSet) { g_player[iPlayer].ps->last_quick_kick=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].ps->last_quick_kick, g_i, g_p); return; default: return; } } static inline void X_AccessPlayerInput(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0; int iPlayer=g_p; if (lVar1 != g_iThisActorID) iPlayer=Gv_GetVar(lVar1, g_i, g_p); if ((iPlayer<0 || iPlayer >= ud.multimode) && g_scriptSanityChecks) { insptr += (lVar2 == MAXGAMEVARS); OSD_Printf(CON_ERROR "invalid target player (%d) %d\n",g_errorLineNum,keyw[g_tw],iPlayer,g_i); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case INPUT_AVEL: if (iSet) { g_player[iPlayer].sync->avel=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->avel, g_i, g_p); return; case INPUT_HORZ: if (iSet) { g_player[iPlayer].sync->horz=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->horz, g_i, g_p); return; case INPUT_FVEL: if (iSet) { g_player[iPlayer].sync->fvel=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->fvel, g_i, g_p); return; case INPUT_SVEL: if (iSet) { g_player[iPlayer].sync->svel=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->svel, g_i, g_p); return; case INPUT_BITS: if (iSet) { g_player[iPlayer].sync->bits=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->bits, g_i, g_p); return; case INPUT_EXTBITS: if (iSet) { g_player[iPlayer].sync->extbits=lValue; return; } Gv_SetVar(lVar2, g_player[iPlayer].sync->extbits, g_i, g_p); return; default: return; } } static inline void X_AccessWall(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0; int iWall = Gv_GetVar(lVar1, g_i, g_p); if ((iWall<0 || iWall >= numwalls) && g_scriptSanityChecks) { insptr += (lVar2 == MAXGAMEVARS); OSD_Printf(CON_ERROR "Invalid wall %d\n",g_errorLineNum,keyw[g_tw],iWall); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case WALL_X: if (iSet) { wall[iWall].x=lValue; return; } Gv_SetVar(lVar2, wall[iWall].x, g_i, g_p); return; case WALL_Y: if (iSet) { wall[iWall].y=lValue; return; } Gv_SetVar(lVar2, wall[iWall].y, g_i, g_p); return; case WALL_POINT2: if (iSet) { wall[iWall].point2=lValue; return; } Gv_SetVar(lVar2, wall[iWall].point2, g_i, g_p); return; case WALL_NEXTWALL: if (iSet) { wall[iWall].nextwall=lValue; return; } Gv_SetVar(lVar2, wall[iWall].nextwall, g_i, g_p); return; case WALL_NEXTSECTOR: if (iSet) { wall[iWall].nextsector=lValue; return; } Gv_SetVar(lVar2, wall[iWall].nextsector, g_i, g_p); return; case WALL_CSTAT: if (iSet) { wall[iWall].cstat=lValue; return; } Gv_SetVar(lVar2, wall[iWall].cstat, g_i, g_p); return; case WALL_PICNUM: if (iSet) { wall[iWall].picnum=lValue; return; } Gv_SetVar(lVar2, wall[iWall].picnum, g_i, g_p); return; case WALL_OVERPICNUM: if (iSet) { wall[iWall].overpicnum=lValue; return; } Gv_SetVar(lVar2, wall[iWall].overpicnum, g_i, g_p); return; case WALL_SHADE: if (iSet) { wall[iWall].shade=lValue; return; } Gv_SetVar(lVar2, wall[iWall].shade, g_i, g_p); return; case WALL_PAL: if (iSet) { wall[iWall].pal=lValue; return; } Gv_SetVar(lVar2, wall[iWall].pal, g_i, g_p); return; case WALL_XREPEAT: if (iSet) { wall[iWall].xrepeat=lValue; return; } Gv_SetVar(lVar2, wall[iWall].xrepeat, g_i, g_p); return; case WALL_YREPEAT: if (iSet) { wall[iWall].yrepeat=lValue; return; } Gv_SetVar(lVar2, wall[iWall].yrepeat, g_i, g_p); return; case WALL_XPANNING: if (iSet) { wall[iWall].xpanning=lValue; return; } Gv_SetVar(lVar2, wall[iWall].xpanning, g_i, g_p); return; case WALL_YPANNING: if (iSet) { wall[iWall].ypanning=lValue; return; } Gv_SetVar(lVar2, wall[iWall].ypanning, g_i, g_p); return; case WALL_LOTAG: if (iSet) { wall[iWall].lotag=lValue; return; } Gv_SetVar(lVar2, wall[iWall].lotag, g_i, g_p); return; case WALL_HITAG: if (iSet) { wall[iWall].hitag=lValue; return; } Gv_SetVar(lVar2, wall[iWall].hitag, g_i, g_p); return; case WALL_EXTRA: if (iSet) { wall[iWall].extra=lValue; return; } Gv_SetVar(lVar2, wall[iWall].extra, g_i, g_p); return; default: return; } } static inline void X_AccessSector(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0; int iSector=sprite[g_i].sectnum; if (lVar1 != g_iThisActorID) iSector=Gv_GetVar(lVar1, g_i, g_p); if ((iSector<0 || iSector >= numsectors) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "Invalid sector %d\n",g_errorLineNum,keyw[g_tw],iSector); insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case SECTOR_WALLPTR: if (iSet) { sector[iSector].wallptr=lValue; return; } Gv_SetVar(lVar2, sector[iSector].wallptr,g_i,g_p); return; case SECTOR_WALLNUM: if (iSet) { sector[iSector].wallnum=lValue; return; } Gv_SetVar(lVar2, sector[iSector].wallnum,g_i,g_p); return; case SECTOR_CEILINGZ: if (iSet) { sector[iSector].ceilingz=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingz,g_i,g_p); return; case SECTOR_FLOORZ: if (iSet) { sector[iSector].floorz=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorz,g_i,g_p); return; case SECTOR_CEILINGSTAT: if (iSet) { sector[iSector].ceilingstat=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingstat,g_i,g_p); return; case SECTOR_FLOORSTAT: if (iSet) { sector[iSector].floorstat=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorstat,g_i,g_p); return; case SECTOR_CEILINGPICNUM: if (iSet) { sector[iSector].ceilingpicnum=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingpicnum,g_i,g_p); return; case SECTOR_CEILINGSLOPE: if (iSet) { sector[iSector].ceilingheinum=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingheinum,g_i,g_p); return; case SECTOR_CEILINGSHADE: if (iSet) { sector[iSector].ceilingshade=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingshade,g_i,g_p); return; case SECTOR_CEILINGPAL: if (iSet) { sector[iSector].ceilingpal=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingpal,g_i,g_p); return; case SECTOR_CEILINGXPANNING: if (iSet) { sector[iSector].ceilingxpanning=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingxpanning,g_i,g_p); return; case SECTOR_CEILINGYPANNING: if (iSet) { sector[iSector].ceilingypanning=lValue; return; } Gv_SetVar(lVar2, sector[iSector].ceilingypanning,g_i,g_p); return; case SECTOR_FLOORPICNUM: if (iSet) { sector[iSector].floorpicnum=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorpicnum,g_i,g_p); return; case SECTOR_FLOORSLOPE: if (iSet) { sector[iSector].floorheinum=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorheinum,g_i,g_p); return; case SECTOR_FLOORSHADE: if (iSet) { sector[iSector].floorshade=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorshade,g_i,g_p); return; case SECTOR_FLOORPAL: if (iSet) { sector[iSector].floorpal=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorpal,g_i,g_p); return; case SECTOR_FLOORXPANNING: if (iSet) { sector[iSector].floorxpanning=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorxpanning,g_i,g_p); return; case SECTOR_FLOORYPANNING: if (iSet) { sector[iSector].floorypanning=lValue; return; } Gv_SetVar(lVar2, sector[iSector].floorypanning,g_i,g_p); return; case SECTOR_VISIBILITY: if (iSet) { sector[iSector].visibility=lValue; return; } Gv_SetVar(lVar2, sector[iSector].visibility,g_i,g_p); return; case SECTOR_ALIGNTO: if (iSet) { sector[iSector].filler=lValue; return; } Gv_SetVar(lVar2, sector[iSector].filler,g_i,g_p); return; case SECTOR_LOTAG: if (iSet) { sector[iSector].lotag=lValue; return; } Gv_SetVar(lVar2, sector[iSector].lotag,g_i,g_p); return; case SECTOR_HITAG: if (iSet) { sector[iSector].hitag=lValue; return; } Gv_SetVar(lVar2, sector[iSector].hitag,g_i,g_p); return; case SECTOR_EXTRA: if (iSet) { sector[iSector].extra=lValue; return; } Gv_SetVar(lVar2, sector[iSector].extra,g_i,g_p); return; default: return; } } static inline void X_AccessSprite(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2) { int lValue=0; int iActor=g_i; if (lVar1 != g_iThisActorID) iActor=Gv_GetVar(lVar1, g_i, g_p); if ((iActor < 0 || iActor >= MAXSPRITES) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "tried to %s %s on invalid target sprite (%d) from spr %d pic %d gv %s\n",g_errorLineNum,keyw[g_tw], iSet?"set":"get",ActorLabels[lLabelID].name,iActor,g_i,g_sp->picnum, (lVar1= ActorLabels[lLabelID].maxParm2)) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "tried to %s invalid %s position %d on sprite (%d) from spr %d\n",g_errorLineNum,keyw[g_tw], iSet?"set":"get",ActorLabels[lLabelID].name,lParm2,iActor,g_i); insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case ACTOR_X: if (iSet) { sprite[iActor].x=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].x,g_i,g_p); return; case ACTOR_Y: if (iSet) { sprite[iActor].y=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].y,g_i,g_p); return; case ACTOR_Z: if (iSet) { sprite[iActor].z=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].z,g_i,g_p); return; case ACTOR_CSTAT: if (iSet) { sprite[iActor].cstat=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].cstat,g_i,g_p); return; case ACTOR_PICNUM: if (iSet) { sprite[iActor].picnum=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].picnum,g_i,g_p); return; case ACTOR_SHADE: if (iSet) { sprite[iActor].shade=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].shade,g_i,g_p); return; case ACTOR_PAL: if (iSet) { sprite[iActor].pal=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].pal,g_i,g_p); return; case ACTOR_CLIPDIST: if (iSet) { sprite[iActor].clipdist=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].clipdist,g_i,g_p); return; case ACTOR_DETAIL: if (iSet) { sprite[iActor].filler=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].filler,g_i,g_p); return; case ACTOR_XREPEAT: if (iSet) { sprite[iActor].xrepeat=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].xrepeat,g_i,g_p); return; case ACTOR_YREPEAT: if (iSet) { sprite[iActor].yrepeat=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].yrepeat,g_i,g_p); return; case ACTOR_XOFFSET: if (iSet) { sprite[iActor].xoffset=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].xoffset,g_i,g_p); return; case ACTOR_YOFFSET: if (iSet) { sprite[iActor].yoffset=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].yoffset,g_i,g_p); return; case ACTOR_SECTNUM: if (iSet) { changespritesect(iActor,lValue); return; } Gv_SetVar(lVar2, sprite[iActor].sectnum,g_i,g_p); return; case ACTOR_STATNUM: if (iSet) { changespritestat(iActor,lValue); return; } Gv_SetVar(lVar2, sprite[iActor].statnum,g_i,g_p); return; case ACTOR_ANG: if (iSet) { sprite[iActor].ang=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].ang,g_i,g_p); return; case ACTOR_OWNER: if (iSet) { sprite[iActor].owner=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].owner,g_i,g_p); return; case ACTOR_XVEL: if (iSet) { sprite[iActor].xvel=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].xvel,g_i,g_p); return; case ACTOR_YVEL: if (iSet) { sprite[iActor].yvel=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].yvel,g_i,g_p); return; case ACTOR_ZVEL: if (iSet) { sprite[iActor].zvel=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].zvel,g_i,g_p); return; case ACTOR_LOTAG: if (iSet) { sprite[iActor].lotag=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].lotag,g_i,g_p); return; case ACTOR_HITAG: if (iSet) { sprite[iActor].hitag=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].hitag,g_i,g_p); return; case ACTOR_EXTRA: if (iSet) { sprite[iActor].extra=lValue; return; } Gv_SetVar(lVar2, sprite[iActor].extra,g_i,g_p); return; case ACTOR_HTCGG: if (iSet) { ActorExtra[iActor].cgg=lValue; return; } Gv_SetVar(lVar2, ActorExtra[iActor].cgg, g_i, g_p); return; case ACTOR_HTPICNUM : if (iSet) { ActorExtra[iActor].picnum=lValue; return; } Gv_SetVar(lVar2, ActorExtra[iActor].picnum, g_i, g_p); return; case ACTOR_HTANG: if (iSet) { ActorExtra[iActor].ang=lValue; return; } Gv_SetVar(lVar2, ActorExtra[iActor].ang, g_i, g_p); return; case ACTOR_HTEXTRA: if (iSet) { ActorExtra[iActor].extra=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].extra, g_i, g_p); return; case ACTOR_HTOWNER: if (iSet) { ActorExtra[iActor].owner=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].owner, g_i, g_p); return; case ACTOR_HTMOVFLAG: if (iSet) { ActorExtra[iActor].movflag=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].movflag, g_i, g_p); return; case ACTOR_HTTEMPANG: if (iSet) { ActorExtra[iActor].tempang=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].tempang, g_i, g_p); return; case ACTOR_HTACTORSTAYPUT: if (iSet) { ActorExtra[iActor].actorstayput=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].actorstayput, g_i, g_p); return; case ACTOR_HTDISPICNUM: if (iSet) { ActorExtra[iActor].dispicnum=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].dispicnum, g_i, g_p); return; case ACTOR_HTTIMETOSLEEP: if (iSet) { ActorExtra[iActor].timetosleep=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].timetosleep, g_i, g_p); return; case ACTOR_HTFLOORZ: if (iSet) { ActorExtra[iActor].floorz=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].floorz, g_i, g_p); return; case ACTOR_HTCEILINGZ: if (iSet) { ActorExtra[iActor].ceilingz=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].ceilingz, g_i, g_p); return; case ACTOR_HTLASTVX: if (iSet) { ActorExtra[iActor].lastvx=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].lastvx, g_i, g_p); return; case ACTOR_HTLASTVY: if (iSet) { ActorExtra[iActor].lastvy=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].lastvy, g_i, g_p); return; case ACTOR_HTBPOSX: if (iSet) { ActorExtra[iActor].bposx=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].bposx, g_i, g_p); return; case ACTOR_HTBPOSY: if (iSet) { ActorExtra[iActor].bposy=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].bposy, g_i, g_p); return; case ACTOR_HTBPOSZ: if (iSet) { ActorExtra[iActor].bposz=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].bposz, g_i, g_p); return; case ACTOR_HTG_T: if (iSet) { ActorExtra[iActor].temp_data[lParm2]=lValue; return; } Gv_SetVar(lVar2, ActorExtra[iActor].temp_data[lParm2], g_i, g_p); return; case ACTOR_ANGOFF: if (iSet) { spriteext[iActor].angoff=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].angoff, g_i, g_p); return; case ACTOR_PITCH: if (iSet) { spriteext[iActor].pitch=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].pitch, g_i, g_p); return; case ACTOR_ROLL: if (iSet) { spriteext[iActor].roll=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].roll, g_i, g_p); return; case ACTOR_MDXOFF: if (iSet) { spriteext[iActor].xoff=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].xoff, g_i, g_p); return; case ACTOR_MDYOFF: if (iSet) { spriteext[iActor].yoff=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].yoff, g_i, g_p); return; case ACTOR_MDZOFF: if (iSet) { spriteext[iActor].zoff=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].zoff, g_i, g_p); return; case ACTOR_MDFLAGS: if (iSet) { spriteext[iActor].flags=lValue; return; } Gv_SetVar(lVar2,spriteext[iActor].flags, g_i, g_p); return; case ACTOR_XPANNING: if (iSet) { spriteext[iActor].xpanning=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].xpanning,g_i,g_p); return; case ACTOR_YPANNING: if (iSet) { spriteext[iActor].ypanning=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].ypanning,g_i,g_p); return; case ACTOR_HTFLAGS: if (iSet) { ActorExtra[iActor].flags=lValue; return; } Gv_SetVar(lVar2,ActorExtra[iActor].flags, g_i, g_p); return; default: return; } } static inline void X_AccessTsprite(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0; int iActor=g_i; if (lVar1 != g_iThisActorID) iActor=Gv_GetVar(lVar1, g_i, g_p); if ((iActor < 0 || iActor >= MAXSPRITES) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "invalid target sprite (%d) %d %d\n",g_errorLineNum,keyw[g_tw],iActor,g_i,g_sp->picnum); insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); if ((!spriteext[iActor].tspr) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "Internal bug, tsprite is unavailable\n",g_errorLineNum,keyw[g_tw]); return; } switch (lLabelID) { case ACTOR_X: if (iSet) { spriteext[iActor].tspr->x=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->x,g_i,g_p); return; case ACTOR_Y: if (iSet) { spriteext[iActor].tspr->y=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->y,g_i,g_p); return; case ACTOR_Z: if (iSet) { spriteext[iActor].tspr->z=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->z,g_i,g_p); return; case ACTOR_CSTAT: if (iSet) { spriteext[iActor].tspr->cstat=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->cstat,g_i,g_p); return; case ACTOR_PICNUM: if (iSet) { spriteext[iActor].tspr->picnum=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->picnum,g_i,g_p); return; case ACTOR_SHADE: if (iSet) { spriteext[iActor].tspr->shade=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->shade,g_i,g_p); return; case ACTOR_PAL: if (iSet) { spriteext[iActor].tspr->pal=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->pal,g_i,g_p); return; case ACTOR_CLIPDIST: if (iSet) { spriteext[iActor].tspr->clipdist=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->clipdist,g_i,g_p); return; case ACTOR_DETAIL: if (iSet) { spriteext[iActor].tspr->filler=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->filler,g_i,g_p); return; case ACTOR_XREPEAT: if (iSet) { spriteext[iActor].tspr->xrepeat=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->xrepeat,g_i,g_p); return; case ACTOR_YREPEAT: if (iSet) { spriteext[iActor].tspr->yrepeat=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->yrepeat,g_i,g_p); return; case ACTOR_XOFFSET: if (iSet) { spriteext[iActor].tspr->xoffset=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->xoffset,g_i,g_p); return; case ACTOR_YOFFSET: if (iSet) { spriteext[iActor].tspr->yoffset=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->yoffset,g_i,g_p); return; case ACTOR_SECTNUM: if (iSet) { spriteext[iActor].tspr->sectnum=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->sectnum,g_i,g_p); return; case ACTOR_STATNUM: if (iSet) { spriteext[iActor].tspr->statnum=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->statnum,g_i,g_p); return; case ACTOR_ANG: if (iSet) { spriteext[iActor].tspr->ang=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->ang,g_i,g_p); return; case ACTOR_OWNER: if (iSet) { spriteext[iActor].tspr->owner=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->owner,g_i,g_p); return; #if 1 case ACTOR_XVEL: if (iSet) { spriteext[iActor].tspr->xvel=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->xvel,g_i,g_p); return; case ACTOR_YVEL: if (iSet) { spriteext[iActor].tspr->yvel=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->yvel,g_i,g_p); return; case ACTOR_ZVEL: if (iSet) { spriteext[iActor].tspr->zvel=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->zvel,g_i,g_p); return; case ACTOR_LOTAG: if (iSet) { spriteext[iActor].tspr->lotag=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->lotag,g_i,g_p); return; case ACTOR_HITAG: if (iSet) { spriteext[iActor].tspr->hitag=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->hitag,g_i,g_p); return; case ACTOR_EXTRA: if (iSet) { spriteext[iActor].tspr->extra=lValue; return; } Gv_SetVar(lVar2, spriteext[iActor].tspr->extra,g_i,g_p); return; #endif default: return; } } static inline void X_AccessProjectile(int iSet, int lVar1, int lLabelID, int lVar2) { int lValue=0; if ((lVar1 < 0 || lVar1 >= MAXTILES) && g_scriptSanityChecks) { OSD_Printf(CON_ERROR "invalid tile (%d)\n",g_errorLineNum,keyw[g_tw],lVar1); insptr += (lVar2 == MAXGAMEVARS); return; } if (iSet) lValue=Gv_GetVar(lVar2, g_i, g_p); switch (lLabelID) { case PROJ_WORKSLIKE: if (iSet) { ProjectileData[lVar1].workslike=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].workslike, g_i, g_p); return; case PROJ_SPAWNS: if (iSet) { ProjectileData[lVar1].spawns=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].spawns, g_i, g_p); return; case PROJ_SXREPEAT: if (iSet) { ProjectileData[lVar1].sxrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].sxrepeat, g_i, g_p); return; case PROJ_SYREPEAT: if (iSet) { ProjectileData[lVar1].syrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].syrepeat, g_i, g_p); return; case PROJ_SOUND: if (iSet) { ProjectileData[lVar1].sound=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].sound, g_i, g_p); return; case PROJ_ISOUND: if (iSet) { ProjectileData[lVar1].isound=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].isound, g_i, g_p); return; case PROJ_VEL: if (iSet) { ProjectileData[lVar1].vel=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].vel, g_i, g_p); return; case PROJ_EXTRA: if (iSet) { ProjectileData[lVar1].extra=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].extra, g_i, g_p); return; case PROJ_DECAL: if (iSet) { ProjectileData[lVar1].decal=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].decal, g_i, g_p); return; case PROJ_TRAIL: if (iSet) { ProjectileData[lVar1].trail=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].trail, g_i, g_p); return; case PROJ_TXREPEAT: if (iSet) { ProjectileData[lVar1].txrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].txrepeat, g_i, g_p); return; case PROJ_TYREPEAT: if (iSet) { ProjectileData[lVar1].tyrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].tyrepeat, g_i, g_p); return; case PROJ_TOFFSET: if (iSet) { ProjectileData[lVar1].toffset=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].toffset, g_i, g_p); return; case PROJ_TNUM: if (iSet) { ProjectileData[lVar1].tnum=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].tnum, g_i, g_p); return; case PROJ_DROP: if (iSet) { ProjectileData[lVar1].drop=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].drop, g_i, g_p); return; case PROJ_CSTAT: if (iSet) { ProjectileData[lVar1].cstat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].cstat, g_i, g_p); return; case PROJ_CLIPDIST: if (iSet) { ProjectileData[lVar1].clipdist=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].clipdist, g_i, g_p); return; case PROJ_SHADE: if (iSet) { ProjectileData[lVar1].shade=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].shade, g_i, g_p); return; case PROJ_XREPEAT: if (iSet) { ProjectileData[lVar1].xrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].xrepeat, g_i, g_p); return; case PROJ_YREPEAT: if (iSet) { ProjectileData[lVar1].yrepeat=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].yrepeat, g_i, g_p); return; case PROJ_PAL: if (iSet) { ProjectileData[lVar1].pal=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].pal, g_i, g_p); return; case PROJ_EXTRA_RAND: if (iSet) { ProjectileData[lVar1].extra_rand=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].extra_rand, g_i, g_p); return; case PROJ_HITRADIUS: if (iSet) { ProjectileData[lVar1].hitradius=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].hitradius, g_i, g_p); return; case PROJ_VEL_MULT: if (iSet) { ProjectileData[lVar1].velmult=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].velmult, g_i, g_p); return; case PROJ_OFFSET: if (iSet) { ProjectileData[lVar1].offset=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].offset, g_i, g_p); return; case PROJ_BOUNCES: if (iSet) { ProjectileData[lVar1].bounces=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].bounces, g_i, g_p); return; case PROJ_BSOUND: if (iSet) { ProjectileData[lVar1].bsound=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].bsound, g_i, g_p); return; case PROJ_RANGE: if (iSet) { ProjectileData[lVar1].range=lValue; return; } Gv_SetVar(lVar2, ProjectileData[lVar1].range, g_i, g_p); return; default: return; } }