diff --git a/polymer/eduke32/source/_functio.h b/polymer/eduke32/source/_functio.h index 49073f4a2..30b402ed2 100644 --- a/polymer/eduke32/source/_functio.h +++ b/polymer/eduke32/source/_functio.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/_rts.h b/polymer/eduke32/source/_rts.h index 5c1b16cd0..98c81a20a 100644 --- a/polymer/eduke32/source/_rts.h +++ b/polymer/eduke32/source/_rts.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/actors.c b/polymer/eduke32/source/actors.c index 0b5a74f8f..486e8c9af 100644 --- a/polymer/eduke32/source/actors.c +++ b/polymer/eduke32/source/actors.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -19,7 +21,6 @@ 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" extern char numenvsnds,actor_tog; diff --git a/polymer/eduke32/source/anim.c b/polymer/eduke32/source/anim.c index e4c1ad913..0a6d2bc6b 100644 --- a/polymer/eduke32/source/anim.c +++ b/polymer/eduke32/source/anim.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c index 6a49bd22c..4527b7a30 100644 --- a/polymer/eduke32/source/astub.c +++ b/polymer/eduke32/source/astub.c @@ -1,11 +1,11 @@ //------------------------------------------------------------------------- /* Copyright (C) 1996, 2003 - 3D Realms Entertainment -Copyright (C) 2005 - Richard Gobeille (Mapster32 functionality) +Copyright (C) 2004, 2007 - EDuke32 developers -This file is part of Mapster32 +This file is part of EDuke32 -Mapster32 is free software; you can redistribute it and/or +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. @@ -18,10 +18,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 05/24/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/config.c b/polymer/eduke32/source/config.c index 201a6f0a8..b9d8285dc 100644 --- a/polymer/eduke32/source/config.c +++ b/polymer/eduke32/source/config.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/config.h b/polymer/eduke32/source/config.h index fd59443c0..face7d421 100644 --- a/polymer/eduke32/source/config.h +++ b/polymer/eduke32/source/config.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/develop.h b/polymer/eduke32/source/develop.h index 74b962674..81031b4cf 100644 --- a/polymer/eduke32/source/develop.h +++ b/polymer/eduke32/source/develop.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 7863f88e1..d62b3614d 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/funct.h b/polymer/eduke32/source/funct.h index 1a4e013b6..3139f5119 100644 --- a/polymer/eduke32/source/funct.h +++ b/polymer/eduke32/source/funct.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- @@ -215,7 +212,7 @@ extern void LoadActor(long sActor); extern long GetGameVar(const char *szGameLabel, long lDefault, int iActor, int iPlayer); extern void DumpGameVars(FILE *fp); -extern void AddLog(const char *psz); +// extern void AddLog(const char *psz, ...); extern void ResetSystemDefaults(void); extern void InitGameVarPointers(void); diff --git a/polymer/eduke32/source/function.h b/polymer/eduke32/source/function.h index 21449dc45..c94c73fad 100644 --- a/polymer/eduke32/source/function.h +++ b/polymer/eduke32/source/function.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index a7e4ab7f0..74a92e19e 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -6552,57 +6554,60 @@ void animatesprites(long x,long y,short a,long smoothratio) } } - if ((display_mirror == 1 || screenpeek != p || s->owner == -1) && ud.multimode > 1 && ud.showweapons && sprite[ps[p].i].extra > 0 && ps[p].curr_weapon > 0) + if ((display_mirror == 1 || screenpeek != p || s->owner == -1) && ud.multimode > 1) { - memcpy((spritetype *)&tsprite[spritesortcnt],(spritetype *)t,sizeof(spritetype)); - - tsprite[spritesortcnt].statnum = 99; - - tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3); - if (t->yrepeat < 4) t->yrepeat = 4; - - tsprite[spritesortcnt].shade = t->shade; - tsprite[spritesortcnt].cstat = 0; - - tsprite[spritesortcnt].picnum = (ps[p].curr_weapon==GROW_WEAPON?GROWSPRITEICON:weapon_sprites[ps[p].curr_weapon]); - - if (s->owner >= 0) - tsprite[spritesortcnt].z = ps[p].posz-(12<<8); - else tsprite[spritesortcnt].z = s->z-(51<<8); - if (tsprite[spritesortcnt].picnum == HEAVYHBOMB) + if (ud.showweapons && sprite[ps[p].i].extra > 0 && ps[p].curr_weapon > 0) { - tsprite[spritesortcnt].xrepeat = 10; - tsprite[spritesortcnt].yrepeat = 10; + memcpy((spritetype *)&tsprite[spritesortcnt],(spritetype *)t,sizeof(spritetype)); + + tsprite[spritesortcnt].statnum = 99; + + tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3); + if (t->yrepeat < 4) t->yrepeat = 4; + + tsprite[spritesortcnt].shade = t->shade; + tsprite[spritesortcnt].cstat = 0; + + tsprite[spritesortcnt].picnum = (ps[p].curr_weapon==GROW_WEAPON?GROWSPRITEICON:weapon_sprites[ps[p].curr_weapon]); + + if (s->owner >= 0) + tsprite[spritesortcnt].z = ps[p].posz-(12<<8); + else tsprite[spritesortcnt].z = s->z-(51<<8); + if (tsprite[spritesortcnt].picnum == HEAVYHBOMB) + { + tsprite[spritesortcnt].xrepeat = 10; + tsprite[spritesortcnt].yrepeat = 10; + } + else + { + tsprite[spritesortcnt].xrepeat = 16; + tsprite[spritesortcnt].yrepeat = 16; + } + tsprite[spritesortcnt].pal = 0; + spritesortcnt++; } - else + + if (sync[p].extbits & (1<<7) && !ud.pause_on) { - tsprite[spritesortcnt].xrepeat = 16; - tsprite[spritesortcnt].yrepeat = 16; + memcpy((spritetype *)&tsprite[spritesortcnt],(spritetype *)t,sizeof(spritetype)); + + tsprite[spritesortcnt].statnum = 99; + + tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3); + if (t->yrepeat < 4) t->yrepeat = 4; + + tsprite[spritesortcnt].cstat = 0; + + tsprite[spritesortcnt].picnum = RESPAWNMARKERGREEN; + + if (s->owner >= 0) + tsprite[spritesortcnt].z = ps[p].posz-(20<<8); + else tsprite[spritesortcnt].z = s->z-(96<<8); + tsprite[spritesortcnt].xrepeat = 32; + tsprite[spritesortcnt].yrepeat = 32; + tsprite[spritesortcnt].pal = 20; + spritesortcnt++; } - tsprite[spritesortcnt].pal = 0; - spritesortcnt++; - } - - if ((display_mirror == 1 || screenpeek != p || s->owner == -1) && ud.multimode > 1 && sync[p].extbits & (1<<7) && !ud.pause_on) - { - memcpy((spritetype *)&tsprite[spritesortcnt],(spritetype *)t,sizeof(spritetype)); - - tsprite[spritesortcnt].statnum = 99; - - tsprite[spritesortcnt].yrepeat = (t->yrepeat>>3); - if (t->yrepeat < 4) t->yrepeat = 4; - - tsprite[spritesortcnt].cstat = 0; - - tsprite[spritesortcnt].picnum = RESPAWNMARKERGREEN; - - if (s->owner >= 0) - tsprite[spritesortcnt].z = ps[p].posz-(20<<8); - else tsprite[spritesortcnt].z = s->z-(96<<8); - tsprite[spritesortcnt].xrepeat = 32; - tsprite[spritesortcnt].yrepeat = 32; - tsprite[spritesortcnt].pal = 20; - spritesortcnt++; } if (s->owner == -1) diff --git a/polymer/eduke32/source/gamedef.c b/polymer/eduke32/source/gamedef.c index 1d28af3a6..8b4eb826e 100644 --- a/polymer/eduke32/source/gamedef.c +++ b/polymer/eduke32/source/gamedef.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -125,721 +127,730 @@ static const char *translatelabeltype(long type) #define NUMKEYWORDS (signed int)(sizeof(keyw)/sizeof(keyw[0])) -static const char *keyw[] = { - "definelevelname", // 0 defines level name - "actor", // 1 defines an actor - "addammo", // 2 adds ammo to a weapon - "ifrnd", // 3 checks against a randomizer - "enda", // 4 ends an actor definition - "ifcansee", // 5 checks if the player can see an object - "ifhitweapon", // 6 checks if an object was hit by a weapon - "action", // 7 defines an action if used outside a state or actor, otherwise triggers actor to perform action - "ifpdistl", // 8 checks if player distance is less than value - "ifpdistg", // 9 checks if player distance is more than value - "else", // 10 used with if checks - "strength", // 11 sets health - "break", // 12 stops processing - "shoot", // 13 shoots a projectile - "palfrom", // 14 used for player screen shading effect, sets p->pals_time and p->pals[0-2] - "sound", // 15 plays a sound that was defined with definesound - "fall", // 16 causes actor to fall to sector floor height - "state", // 17 begins defining a state if used outside a state or actor, otherwise calls a state - "ends", // 18 ends defining a state - "define", // 19 defines a value - "", // 20 was previously used to define a comment - "ifai", // 21 checks if actor is currently performing a specific ai function - "killit", // 22 kills an actor - "addweapon", // 23 adds a weapon to the closest player - "ai", // 24 sets an ai function to be used by an actor - "addphealth", // 25 adds health to the player - "ifdead", // 26 checks if actor is dead - "ifsquished", // 27 checks if actor has been squished - "sizeto", // 28 gradually increases actor size until it matches parameters given - "{", // 29 used to indicate segments of code - "}", // 30 used to indicate segments of code - "spawn", // 31 spawns an actor - "move", // 32 - "ifwasweapon", // 33 - "ifaction", // 34 - "ifactioncount", // 35 - "resetactioncount", // 36 - "debris", // 37 - "pstomp", // 38 - "", // 39 was previously used to define the start of a comment block - "cstat", // 40 - "ifmove", // 41 - "resetplayer", // 42 - "ifonwater", // 43 - "ifinwater", // 44 - "ifcanshoottarget", // 45 - "ifcount", // 46 - "resetcount", // 47 - "addinventory", // 48 - "ifactornotstayput", // 49 - "hitradius", // 50 - "ifp", // 51 - "count", // 52 - "ifactor", // 53 - "music", // 54 - "include", // 55 - "ifstrength", // 56 - "definesound", // 57 - "guts", // 58 - "ifspawnedby", // 59 - "gamestartup", // 60 - "wackplayer", // 61 - "ifgapzl", // 62 - "ifhitspace", // 63 - "ifoutside", // 64 - "ifmultiplayer", // 65 - "operate", // 66 - "ifinspace", // 67 - "debug", // 68 - "endofgame", // 69 - "ifbulletnear", // 70 - "ifrespawn", // 71 - "iffloordistl", // 72 - "ifceilingdistl", // 73 - "spritepal", // 74 - "ifpinventory", // 75 - "betaname", // 76 - "cactor", // 77 - "ifphealthl", // 78 - "definequote", // 79 - "quote", // 80 - "ifinouterspace", // 81 - "ifnotmoving", // 82 - "respawnhitag", // 83 - "tip", // 84 - "ifspritepal", // 85 - "money", // 86 - "soundonce", // 87 - "addkills", // 88 - "stopsound", // 89 - "ifawayfromwall", // 90 - "ifcanseetarget", // 91 - "globalsound", // 92 - "lotsofglass", // 93 - "ifgotweaponce", // 94 - "getlastpal", // 95 - "pkick", // 96 - "mikesnd", // 97 - "useractor", // 98 - "sizeat", // 99 - "addstrength", // 100 [#] - "cstator", // 101 - "mail", // 102 - "paper", // 103 - "tossweapon", // 104 - "sleeptime", // 105 - "nullop", // 106 - "definevolumename", // 107 - "defineskillname", // 108 - "ifnosounds", // 109 - "clipdist", // 110 - "ifangdiffl", // 111 - "gamevar", // 112 - "ifvarl", // 113 - "ifvarg", // 114 - "setvarvar", // 115 - "setvar", // 116 - "addvarvar", // 117 - "addvar", // 118 - "ifvarvarl", // 119 - "ifvarvarg", // 120 - "addlogvar", // 121 - "addlog", // 122 - "onevent", // 123 - "endevent", // 124 - "ifvare", // 125 - "ifvarvare", // 126 - "spgetlotag", // 127 - "spgethitag", // 128 - "sectgetlotag", // 129 - "sectgethitag", // 130 - "ifsound", // 131 - "gettexturefloor", // 132 - "gettextureceiling", // 133 - "inittimer", // 134 - "starttrack", // 135 - "randvar", // 136 - "enhanced", // 137 - "getangletotarget", // 138 - "getactorangle", // 139 - "setactorangle", // 140 - "mulvar", // 141 - "mulvarvar", // 142 - "divvar", // 143 - "divvarvar", // 144 - "modvar", // 145 - "modvarvar", // 146 - "andvar", // 147 - "andvarvar", // 148 - "orvar", // 149 - "orvarvar", // 150 - "getplayerangle", // 151 - "setplayerangle", // 152 - "lockplayer", // 153 - "setsector", // 154 - "getsector", // 155 - "setactor", // 156 - "getactor", // 157 - "setwall", // 158 - "getwall", // 159 - "findnearactor", // 160 - "findnearactorvar", // 161 - "setactorvar", // 162 - "getactorvar", // 163 - "espawn", // 164 - "getplayer", // 165 - "setplayer", // 166 - "sqrt", // 167 - "eventloadactor", // 168 - "espawnvar", // 169 - "getuserdef", // 170 - "setuserdef", // 171 - "subvarvar", // 172 - "subvar", // 173 - "ifvarn", // 174 - "ifvarvarn", // 175 - "ifvarand", // 176 - "ifvarvarand", // 177 - "myos", // 178 - "myospal", // 179 - "displayrand", // 180 - "sin", // 181 - "xorvarvar", // 182 - "xorvar", // 183 - "randvarvar", // 184 - "myosx", // 185 - "myospalx", // 186 - "gmaxammo", // 187 - "smaxammo", // 188 - "startlevel", // 189 - "eshoot", // 190 - "qspawn", // 191 - "rotatesprite", // 192 - "defineprojectile", // 193 - "spriteshadow", // 194 - "cos", // 195 - "eshootvar", // 196 - "findnearactor3d", // 197 - "findnearactor3dvar", // 198 - "flash", // 199 - "qspawnvar", // 200 - "eqspawn", // 201 - "eqspawnvar", // 202 - "minitext", // 203 - "gametext", // 204 - "digitalnumber", // 205 - "addweaponvar", // 206 - "setprojectile", // 207 - "angoff", // 208 - "updatesector", // 209 - "insertspriteq", // 210 - "angoffvar", // 211 - "whilevarn", // 212 - "switch", // 213 - "case", // 214 - "default", // 215 - "endswitch", // 216 - "shootvar", // 217 - "soundvar", // 218 - "findplayer", // 219 - "findotherplayer", // 220 - "activatebysector", // 221 sectnum, spriteid - "operatesectors", // 222 sectnum, spriteid - "operaterespawns", // 223 lotag - "operateactivators", // 224 lotag, player index - "operatemasterswitches", // 225 lotag - "checkactivatormotion", // 226 lotag - "zshoot", // 227 zvar projnum - "dist", // 228 sprite1 sprite2 - "ldist", // 229 sprite1 sprite2 - "shiftvarl", // 230 - "shiftvarr", // 231 - "spritenvg", // 232 - "getangle", // 233 - "whilevarvarn", // 234 - "hitscan", // 235 - "time", // 236 - "getplayervar", // 237 - "setplayervar", // 238 - "mulscale", // 239 - "setaspect", // 240 - "ezshoot", // 241 - "spritenoshade", // 242 - "movesprite", // 243 - "checkavailweapon", // 244 - "soundoncevar", // 245 - "updatesectorz", // 246 - "stopallsounds", // 247 - "ssp", // 248 - "stopsoundvar", // 249 - "displayrandvar", // 250 - "displayrandvarvar", // 251 - "checkavailinven", // 252 - "globalsoundvar", // 253 - "guniqhudid", // 254 - "getprojectile", // 255 - "getthisprojectile", // 256 - "setthisprojectile", // 257 - "definecheat", // 258 - "cheatkeys", // 259 - "userquote", // 260 - "precache", // 261 - "definegamefuncname", // 262 - "redefinequote", // 263 - "qsprintf", // 264 - "getpname", // 265 - "qstrcat", // 266 - "qstrcpy", // 267 - "setsprite", // 268 - "rotatepoint", // 269 - "dragpoint", // 270 - "getzrange", // 271 - "changespritestat", // 272 - "getceilzofslope", // 273 - "getflorzofslope", // 274 - "neartag", // 275 - "definegametype", // 276 - "changespritesect", // 277 - "spriteflags", // 278 - "savegamevar", // 279 - "readgamevar", // 280 - "findnearsprite", // 281 - "findnearspritevar", // 282 - "findnearsprite3d", // 283 - "findnearsprite3dvar", // 284 - "dynamicremap", // 285 - "setinput", // 286 - "getinput", // 287 - "save", // 288 - "cansee", // 289 - "canseespr", // 290 - "findnearactorz", // 291 - "findnearactorzvar", // 292 - "findnearspritez", // 293 - "findnearspritezvar", // 294 - "zshootvar", // 295 - "ezshootvar", // 296 - "getcurraddress", // 297 - "jump", // 298 - "qstrlen", // 299 - "getincangle", // 300 - "quake", // 301 - "" - }; +static const char *keyw[] = + { + "definelevelname", // 0 defines level name + "actor", // 1 defines an actor + "addammo", // 2 adds ammo to a weapon + "ifrnd", // 3 checks against a randomizer + "enda", // 4 ends an actor definition + "ifcansee", // 5 checks if the player can see an object + "ifhitweapon", // 6 checks if an object was hit by a weapon + "action", // 7 defines an action if used outside a state or actor, otherwise triggers actor to perform action + "ifpdistl", // 8 checks if player distance is less than value + "ifpdistg", // 9 checks if player distance is more than value + "else", // 10 used with if checks + "strength", // 11 sets health + "break", // 12 stops processing + "shoot", // 13 shoots a projectile + "palfrom", // 14 used for player screen shading effect, sets p->pals_time and p->pals[0-2] + "sound", // 15 plays a sound that was defined with definesound + "fall", // 16 causes actor to fall to sector floor height + "state", // 17 begins defining a state if used outside a state or actor, otherwise calls a state + "ends", // 18 ends defining a state + "define", // 19 defines a value + "", // 20 was previously used to define a comment + "ifai", // 21 checks if actor is currently performing a specific ai function + "killit", // 22 kills an actor + "addweapon", // 23 adds a weapon to the closest player + "ai", // 24 sets an ai function to be used by an actor + "addphealth", // 25 adds health to the player + "ifdead", // 26 checks if actor is dead + "ifsquished", // 27 checks if actor has been squished + "sizeto", // 28 gradually increases actor size until it matches parameters given + "{", // 29 used to indicate segments of code + "}", // 30 used to indicate segments of code + "spawn", // 31 spawns an actor + "move", // 32 + "ifwasweapon", // 33 + "ifaction", // 34 + "ifactioncount", // 35 + "resetactioncount", // 36 + "debris", // 37 + "pstomp", // 38 + "", // 39 was previously used to define the start of a comment block + "cstat", // 40 + "ifmove", // 41 + "resetplayer", // 42 + "ifonwater", // 43 + "ifinwater", // 44 + "ifcanshoottarget", // 45 + "ifcount", // 46 + "resetcount", // 47 + "addinventory", // 48 + "ifactornotstayput", // 49 + "hitradius", // 50 + "ifp", // 51 + "count", // 52 + "ifactor", // 53 + "music", // 54 + "include", // 55 + "ifstrength", // 56 + "definesound", // 57 + "guts", // 58 + "ifspawnedby", // 59 + "gamestartup", // 60 + "wackplayer", // 61 + "ifgapzl", // 62 + "ifhitspace", // 63 + "ifoutside", // 64 + "ifmultiplayer", // 65 + "operate", // 66 + "ifinspace", // 67 + "debug", // 68 + "endofgame", // 69 + "ifbulletnear", // 70 + "ifrespawn", // 71 + "iffloordistl", // 72 + "ifceilingdistl", // 73 + "spritepal", // 74 + "ifpinventory", // 75 + "betaname", // 76 + "cactor", // 77 + "ifphealthl", // 78 + "definequote", // 79 + "quote", // 80 + "ifinouterspace", // 81 + "ifnotmoving", // 82 + "respawnhitag", // 83 + "tip", // 84 + "ifspritepal", // 85 + "money", // 86 + "soundonce", // 87 + "addkills", // 88 + "stopsound", // 89 + "ifawayfromwall", // 90 + "ifcanseetarget", // 91 + "globalsound", // 92 + "lotsofglass", // 93 + "ifgotweaponce", // 94 + "getlastpal", // 95 + "pkick", // 96 + "mikesnd", // 97 + "useractor", // 98 + "sizeat", // 99 + "addstrength", // 100 [#] + "cstator", // 101 + "mail", // 102 + "paper", // 103 + "tossweapon", // 104 + "sleeptime", // 105 + "nullop", // 106 + "definevolumename", // 107 + "defineskillname", // 108 + "ifnosounds", // 109 + "clipdist", // 110 + "ifangdiffl", // 111 + "gamevar", // 112 + "ifvarl", // 113 + "ifvarg", // 114 + "setvarvar", // 115 + "setvar", // 116 + "addvarvar", // 117 + "addvar", // 118 + "ifvarvarl", // 119 + "ifvarvarg", // 120 + "addlogvar", // 121 + "addlog", // 122 + "onevent", // 123 + "endevent", // 124 + "ifvare", // 125 + "ifvarvare", // 126 + "spgetlotag", // 127 + "spgethitag", // 128 + "sectgetlotag", // 129 + "sectgethitag", // 130 + "ifsound", // 131 + "gettexturefloor", // 132 + "gettextureceiling", // 133 + "inittimer", // 134 + "starttrack", // 135 + "randvar", // 136 + "enhanced", // 137 + "getangletotarget", // 138 + "getactorangle", // 139 + "setactorangle", // 140 + "mulvar", // 141 + "mulvarvar", // 142 + "divvar", // 143 + "divvarvar", // 144 + "modvar", // 145 + "modvarvar", // 146 + "andvar", // 147 + "andvarvar", // 148 + "orvar", // 149 + "orvarvar", // 150 + "getplayerangle", // 151 + "setplayerangle", // 152 + "lockplayer", // 153 + "setsector", // 154 + "getsector", // 155 + "setactor", // 156 + "getactor", // 157 + "setwall", // 158 + "getwall", // 159 + "findnearactor", // 160 + "findnearactorvar", // 161 + "setactorvar", // 162 + "getactorvar", // 163 + "espawn", // 164 + "getplayer", // 165 + "setplayer", // 166 + "sqrt", // 167 + "eventloadactor", // 168 + "espawnvar", // 169 + "getuserdef", // 170 + "setuserdef", // 171 + "subvarvar", // 172 + "subvar", // 173 + "ifvarn", // 174 + "ifvarvarn", // 175 + "ifvarand", // 176 + "ifvarvarand", // 177 + "myos", // 178 + "myospal", // 179 + "displayrand", // 180 + "sin", // 181 + "xorvarvar", // 182 + "xorvar", // 183 + "randvarvar", // 184 + "myosx", // 185 + "myospalx", // 186 + "gmaxammo", // 187 + "smaxammo", // 188 + "startlevel", // 189 + "eshoot", // 190 + "qspawn", // 191 + "rotatesprite", // 192 + "defineprojectile", // 193 + "spriteshadow", // 194 + "cos", // 195 + "eshootvar", // 196 + "findnearactor3d", // 197 + "findnearactor3dvar", // 198 + "flash", // 199 + "qspawnvar", // 200 + "eqspawn", // 201 + "eqspawnvar", // 202 + "minitext", // 203 + "gametext", // 204 + "digitalnumber", // 205 + "addweaponvar", // 206 + "setprojectile", // 207 + "angoff", // 208 + "updatesector", // 209 + "insertspriteq", // 210 + "angoffvar", // 211 + "whilevarn", // 212 + "switch", // 213 + "case", // 214 + "default", // 215 + "endswitch", // 216 + "shootvar", // 217 + "soundvar", // 218 + "findplayer", // 219 + "findotherplayer", // 220 + "activatebysector", // 221 sectnum, spriteid + "operatesectors", // 222 sectnum, spriteid + "operaterespawns", // 223 lotag + "operateactivators", // 224 lotag, player index + "operatemasterswitches", // 225 lotag + "checkactivatormotion", // 226 lotag + "zshoot", // 227 zvar projnum + "dist", // 228 sprite1 sprite2 + "ldist", // 229 sprite1 sprite2 + "shiftvarl", // 230 + "shiftvarr", // 231 + "spritenvg", // 232 + "getangle", // 233 + "whilevarvarn", // 234 + "hitscan", // 235 + "time", // 236 + "getplayervar", // 237 + "setplayervar", // 238 + "mulscale", // 239 + "setaspect", // 240 + "ezshoot", // 241 + "spritenoshade", // 242 + "movesprite", // 243 + "checkavailweapon", // 244 + "soundoncevar", // 245 + "updatesectorz", // 246 + "stopallsounds", // 247 + "ssp", // 248 + "stopsoundvar", // 249 + "displayrandvar", // 250 + "displayrandvarvar", // 251 + "checkavailinven", // 252 + "globalsoundvar", // 253 + "guniqhudid", // 254 + "getprojectile", // 255 + "getthisprojectile", // 256 + "setthisprojectile", // 257 + "definecheat", // 258 + "cheatkeys", // 259 + "userquote", // 260 + "precache", // 261 + "definegamefuncname", // 262 + "redefinequote", // 263 + "qsprintf", // 264 + "getpname", // 265 + "qstrcat", // 266 + "qstrcpy", // 267 + "setsprite", // 268 + "rotatepoint", // 269 + "dragpoint", // 270 + "getzrange", // 271 + "changespritestat", // 272 + "getceilzofslope", // 273 + "getflorzofslope", // 274 + "neartag", // 275 + "definegametype", // 276 + "changespritesect", // 277 + "spriteflags", // 278 + "savegamevar", // 279 + "readgamevar", // 280 + "findnearsprite", // 281 + "findnearspritevar", // 282 + "findnearsprite3d", // 283 + "findnearsprite3dvar", // 284 + "dynamicremap", // 285 + "setinput", // 286 + "getinput", // 287 + "save", // 288 + "cansee", // 289 + "canseespr", // 290 + "findnearactorz", // 291 + "findnearactorzvar", // 292 + "findnearspritez", // 293 + "findnearspritezvar", // 294 + "zshootvar", // 295 + "ezshootvar", // 296 + "getcurraddress", // 297 + "jump", // 298 + "qstrlen", // 299 + "getincangle", // 300 + "quake", // 301 + "showview", // 302 + "" + }; -LABELS sectorlabels[]= { - { "wallptr", SECTOR_WALLPTR, 0, 0 }, - { "wallnum", SECTOR_WALLNUM, 0, 0 }, - { "ceilingz", SECTOR_CEILINGZ, 0, 0 }, - { "floorz", SECTOR_FLOORZ, 0, 0 }, - { "ceilingstat", SECTOR_CEILINGSTAT, 0, 0 }, - { "floorstat", SECTOR_FLOORSTAT, 0, 0 }, - { "ceilingpicnum", SECTOR_CEILINGPICNUM, 0, 0 }, - { "ceilingslope", SECTOR_CEILINGSLOPE, 0, 0 }, - { "ceilingshade", SECTOR_CEILINGSHADE, 0, 0 }, - { "ceilingpal", SECTOR_CEILINGPAL, 0, 0 }, - { "ceilingxpanning", SECTOR_CEILINGXPANNING, 0, 0 }, - { "ceilingypanning", SECTOR_CEILINGYPANNING, 0, 0 }, - { "floorpicnum", SECTOR_FLOORPICNUM, 0, 0 }, - { "floorslope", SECTOR_FLOORSLOPE, 0, 0 }, - { "floorshade", SECTOR_FLOORSHADE, 0, 0 }, - { "floorpal", SECTOR_FLOORPAL, 0, 0 }, - { "floorxpanning", SECTOR_FLOORXPANNING, 0, 0 }, - { "floorypanning", SECTOR_FLOORYPANNING, 0, 0 }, - { "visibility", SECTOR_VISIBILITY, 0, 0 }, - { "alignto", SECTOR_ALIGNTO, 0, 0 }, - { "lotag", SECTOR_LOTAG, 0, 0 }, - { "hitag", SECTOR_HITAG, 0, 0 }, - { "extra", SECTOR_EXTRA, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; +LABELS sectorlabels[]= + { + { "wallptr", SECTOR_WALLPTR, 0, 0 }, + { "wallnum", SECTOR_WALLNUM, 0, 0 }, + { "ceilingz", SECTOR_CEILINGZ, 0, 0 }, + { "floorz", SECTOR_FLOORZ, 0, 0 }, + { "ceilingstat", SECTOR_CEILINGSTAT, 0, 0 }, + { "floorstat", SECTOR_FLOORSTAT, 0, 0 }, + { "ceilingpicnum", SECTOR_CEILINGPICNUM, 0, 0 }, + { "ceilingslope", SECTOR_CEILINGSLOPE, 0, 0 }, + { "ceilingshade", SECTOR_CEILINGSHADE, 0, 0 }, + { "ceilingpal", SECTOR_CEILINGPAL, 0, 0 }, + { "ceilingxpanning", SECTOR_CEILINGXPANNING, 0, 0 }, + { "ceilingypanning", SECTOR_CEILINGYPANNING, 0, 0 }, + { "floorpicnum", SECTOR_FLOORPICNUM, 0, 0 }, + { "floorslope", SECTOR_FLOORSLOPE, 0, 0 }, + { "floorshade", SECTOR_FLOORSHADE, 0, 0 }, + { "floorpal", SECTOR_FLOORPAL, 0, 0 }, + { "floorxpanning", SECTOR_FLOORXPANNING, 0, 0 }, + { "floorypanning", SECTOR_FLOORYPANNING, 0, 0 }, + { "visibility", SECTOR_VISIBILITY, 0, 0 }, + { "alignto", SECTOR_ALIGNTO, 0, 0 }, + { "lotag", SECTOR_LOTAG, 0, 0 }, + { "hitag", SECTOR_HITAG, 0, 0 }, + { "extra", SECTOR_EXTRA, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS walllabels[]= { - { "x", WALL_X, 0, 0 }, - { "y", WALL_Y, 0, 0 }, - { "point2", WALL_POINT2, 0, 0 }, - { "nextwall", WALL_NEXTWALL, 0, 0 }, - { "nextsector", WALL_NEXTSECTOR, 0, 0 }, - { "cstat", WALL_CSTAT, 0, 0 }, - { "picnum", WALL_PICNUM, 0, 0 }, - { "overpicnum", WALL_OVERPICNUM, 0, 0 }, - { "shade", WALL_SHADE, 0, 0 }, - { "pal", WALL_PAL, 0, 0 }, - { "xrepeat", WALL_XREPEAT, 0, 0 }, - { "yrepeat", WALL_YREPEAT, 0, 0 }, - { "xpanning", WALL_XPANNING, 0, 0 }, - { "ypanning", WALL_YPANNING, 0, 0 }, - { "lotag", WALL_LOTAG, 0, 0 }, - { "hitag", WALL_HITAG, 0, 0 }, - { "extra", WALL_EXTRA, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; +LABELS walllabels[]= + { + { "x", WALL_X, 0, 0 }, + { "y", WALL_Y, 0, 0 }, + { "point2", WALL_POINT2, 0, 0 }, + { "nextwall", WALL_NEXTWALL, 0, 0 }, + { "nextsector", WALL_NEXTSECTOR, 0, 0 }, + { "cstat", WALL_CSTAT, 0, 0 }, + { "picnum", WALL_PICNUM, 0, 0 }, + { "overpicnum", WALL_OVERPICNUM, 0, 0 }, + { "shade", WALL_SHADE, 0, 0 }, + { "pal", WALL_PAL, 0, 0 }, + { "xrepeat", WALL_XREPEAT, 0, 0 }, + { "yrepeat", WALL_YREPEAT, 0, 0 }, + { "xpanning", WALL_XPANNING, 0, 0 }, + { "ypanning", WALL_YPANNING, 0, 0 }, + { "lotag", WALL_LOTAG, 0, 0 }, + { "hitag", WALL_HITAG, 0, 0 }, + { "extra", WALL_EXTRA, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS actorlabels[]= { - { "x", ACTOR_X, 0, 0 }, - { "y", ACTOR_Y, 0, 0 }, - { "z", ACTOR_Z, 0, 0 }, - { "cstat", ACTOR_CSTAT, 0, 0 }, - { "picnum", ACTOR_PICNUM, 0, 0 }, - { "shade", ACTOR_SHADE, 0, 0 }, - { "pal", ACTOR_PAL, 0, 0 }, - { "clipdist", ACTOR_CLIPDIST, 0, 0 }, - { "detail", ACTOR_DETAIL, 0, 0 }, - { "xrepeat", ACTOR_XREPEAT, 0, 0 }, - { "yrepeat", ACTOR_YREPEAT, 0, 0 }, - { "xoffset", ACTOR_XOFFSET, 0, 0 }, - { "yoffset", ACTOR_YOFFSET, 0, 0 }, - { "sectnum", ACTOR_SECTNUM, 0, 0 }, - { "statnum", ACTOR_STATNUM, 0, 0 }, - { "ang", ACTOR_ANG, 0, 0 }, - { "owner", ACTOR_OWNER, 0, 0 }, - { "xvel", ACTOR_XVEL, 0, 0 }, - { "yvel", ACTOR_YVEL, 0, 0 }, - { "zvel", ACTOR_ZVEL, 0, 0 }, - { "lotag", ACTOR_LOTAG, 0, 0 }, - { "hitag", ACTOR_HITAG, 0, 0 }, - { "extra", ACTOR_EXTRA, 0, 0 }, +LABELS actorlabels[]= + { + { "x", ACTOR_X, 0, 0 }, + { "y", ACTOR_Y, 0, 0 }, + { "z", ACTOR_Z, 0, 0 }, + { "cstat", ACTOR_CSTAT, 0, 0 }, + { "picnum", ACTOR_PICNUM, 0, 0 }, + { "shade", ACTOR_SHADE, 0, 0 }, + { "pal", ACTOR_PAL, 0, 0 }, + { "clipdist", ACTOR_CLIPDIST, 0, 0 }, + { "detail", ACTOR_DETAIL, 0, 0 }, + { "xrepeat", ACTOR_XREPEAT, 0, 0 }, + { "yrepeat", ACTOR_YREPEAT, 0, 0 }, + { "xoffset", ACTOR_XOFFSET, 0, 0 }, + { "yoffset", ACTOR_YOFFSET, 0, 0 }, + { "sectnum", ACTOR_SECTNUM, 0, 0 }, + { "statnum", ACTOR_STATNUM, 0, 0 }, + { "ang", ACTOR_ANG, 0, 0 }, + { "owner", ACTOR_OWNER, 0, 0 }, + { "xvel", ACTOR_XVEL, 0, 0 }, + { "yvel", ACTOR_YVEL, 0, 0 }, + { "zvel", ACTOR_ZVEL, 0, 0 }, + { "lotag", ACTOR_LOTAG, 0, 0 }, + { "hitag", ACTOR_HITAG, 0, 0 }, + { "extra", ACTOR_EXTRA, 0, 0 }, - // hittype labels... - { "htcgg", ACTOR_HTCGG, 0, 0 }, - { "htpicnum", ACTOR_HTPICNUM, 0, 0 }, - { "htang", ACTOR_HTANG, 0, 0 }, - { "htextra", ACTOR_HTEXTRA, 0, 0 }, - { "htowner", ACTOR_HTOWNER, 0, 0 }, - { "htmovflag", ACTOR_HTMOVFLAG, 0, 0 }, - { "httempang", ACTOR_HTTEMPANG, 0, 0 }, - { "htactorstayput", ACTOR_HTACTORSTAYPUT, 0, 0 }, - { "htdispicnum", ACTOR_HTDISPICNUM, 0, 0 }, - { "httimetosleep", ACTOR_HTTIMETOSLEEP, 0, 0 }, - { "htfloorz", ACTOR_HTFLOORZ, 0, 0 }, - { "htceilingz", ACTOR_HTCEILINGZ, 0, 0 }, - { "htlastvx", ACTOR_HTLASTVX, 0, 0 }, - { "htlastvy", ACTOR_HTLASTVY, 0, 0 }, - { "htbposx", ACTOR_HTBPOSX, 0, 0 }, - { "htbposy", ACTOR_HTBPOSY, 0, 0 }, - { "htbposz", ACTOR_HTBPOSZ, 0, 0 }, - { "htg_t", ACTOR_HTG_T, LABEL_HASPARM2, 8 }, + // hittype labels... + { "htcgg", ACTOR_HTCGG, 0, 0 }, + { "htpicnum", ACTOR_HTPICNUM, 0, 0 }, + { "htang", ACTOR_HTANG, 0, 0 }, + { "htextra", ACTOR_HTEXTRA, 0, 0 }, + { "htowner", ACTOR_HTOWNER, 0, 0 }, + { "htmovflag", ACTOR_HTMOVFLAG, 0, 0 }, + { "httempang", ACTOR_HTTEMPANG, 0, 0 }, + { "htactorstayput", ACTOR_HTACTORSTAYPUT, 0, 0 }, + { "htdispicnum", ACTOR_HTDISPICNUM, 0, 0 }, + { "httimetosleep", ACTOR_HTTIMETOSLEEP, 0, 0 }, + { "htfloorz", ACTOR_HTFLOORZ, 0, 0 }, + { "htceilingz", ACTOR_HTCEILINGZ, 0, 0 }, + { "htlastvx", ACTOR_HTLASTVX, 0, 0 }, + { "htlastvy", ACTOR_HTLASTVY, 0, 0 }, + { "htbposx", ACTOR_HTBPOSX, 0, 0 }, + { "htbposy", ACTOR_HTBPOSY, 0, 0 }, + { "htbposz", ACTOR_HTBPOSZ, 0, 0 }, + { "htg_t", ACTOR_HTG_T, LABEL_HASPARM2, 8 }, - // model flags + // model flags - { "angoff", ACTOR_ANGOFF, 0, 0 }, - { "pitch", ACTOR_PITCH, 0, 0 }, - { "roll", ACTOR_ROLL, 0, 0 }, - { "mdxoff", ACTOR_MDXOFF, 0, 0 }, - { "mdyoff", ACTOR_MDYOFF, 0, 0 }, - { "mdzoff", ACTOR_MDZOFF, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; + { "angoff", ACTOR_ANGOFF, 0, 0 }, + { "pitch", ACTOR_PITCH, 0, 0 }, + { "roll", ACTOR_ROLL, 0, 0 }, + { "mdxoff", ACTOR_MDXOFF, 0, 0 }, + { "mdyoff", ACTOR_MDYOFF, 0, 0 }, + { "mdzoff", ACTOR_MDZOFF, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS playerlabels[]= { - { "zoom", PLAYER_ZOOM, 0, 0 }, - { "exitx", PLAYER_EXITX, 0, 0 }, - { "exity", PLAYER_EXITY, 0, 0 }, - { "loogiex", PLAYER_LOOGIEX, LABEL_HASPARM2, 64 }, - { "loogiey", PLAYER_LOOGIEY, LABEL_HASPARM2, 64 }, - { "numloogs", PLAYER_NUMLOOGS, 0, 0 }, - { "loogcnt", PLAYER_LOOGCNT, 0, 0 }, - { "posx", PLAYER_POSX, 0, 0 }, - { "posy", PLAYER_POSY, 0, 0 }, - { "posz", PLAYER_POSZ, 0, 0 }, - { "horiz", PLAYER_HORIZ, 0, 0 }, - { "ohoriz", PLAYER_OHORIZ, 0, 0 }, - { "ohorizoff", PLAYER_OHORIZOFF, 0, 0 }, - { "invdisptime", PLAYER_INVDISPTIME, 0, 0 }, - { "bobposx", PLAYER_BOBPOSX, 0, 0 }, - { "bobposy", PLAYER_BOBPOSY, 0, 0 }, - { "oposx", PLAYER_OPOSX, 0, 0 }, - { "oposy", PLAYER_OPOSY, 0, 0 }, - { "oposz", PLAYER_OPOSZ, 0, 0 }, - { "pyoff", PLAYER_PYOFF, 0, 0 }, - { "opyoff", PLAYER_OPYOFF, 0, 0 }, - { "posxv", PLAYER_POSXV, 0, 0 }, - { "posyv", PLAYER_POSYV, 0, 0 }, - { "poszv", PLAYER_POSZV, 0, 0 }, - { "last_pissed_time", PLAYER_LAST_PISSED_TIME, 0, 0 }, - { "truefz", PLAYER_TRUEFZ, 0, 0 }, - { "truecz", PLAYER_TRUECZ, 0, 0 }, - { "player_par", PLAYER_PLAYER_PAR, 0, 0 }, - { "visibility", PLAYER_VISIBILITY, 0, 0 }, - { "bobcounter", PLAYER_BOBCOUNTER, 0, 0 }, - { "weapon_sway", PLAYER_WEAPON_SWAY, 0, 0 }, - { "pals_time", PLAYER_PALS_TIME, 0, 0 }, - { "randomflamex", PLAYER_RANDOMFLAMEX, 0, 0 }, - { "crack_time", PLAYER_CRACK_TIME, 0, 0 }, - { "aim_mode", PLAYER_AIM_MODE, 0, 0 }, - { "ang", PLAYER_ANG, 0, 0 }, - { "oang", PLAYER_OANG, 0, 0 }, - { "angvel", PLAYER_ANGVEL, 0, 0 }, - { "cursectnum", PLAYER_CURSECTNUM, 0, 0 }, - { "look_ang", PLAYER_LOOK_ANG, 0, 0 }, - { "last_extra", PLAYER_LAST_EXTRA, 0, 0 }, - { "subweapon", PLAYER_SUBWEAPON, 0, 0 }, - { "ammo_amount", PLAYER_AMMO_AMOUNT, LABEL_HASPARM2, MAX_WEAPONS }, - { "wackedbyactor", PLAYER_WACKEDBYACTOR, 0, 0 }, - { "frag", PLAYER_FRAG, 0, 0 }, - { "fraggedself", PLAYER_FRAGGEDSELF, 0, 0 }, - { "curr_weapon", PLAYER_CURR_WEAPON, 0, 0 }, - { "last_weapon", PLAYER_LAST_WEAPON, 0, 0 }, - { "tipincs", PLAYER_TIPINCS, 0, 0 }, - { "horizoff", PLAYER_HORIZOFF, 0, 0 }, - { "wantweaponfire", PLAYER_WANTWEAPONFIRE, 0, 0 }, - { "holoduke_amount", PLAYER_HOLODUKE_AMOUNT, 0, 0 }, - { "newowner", PLAYER_NEWOWNER, 0, 0 }, - { "hurt_delay", PLAYER_HURT_DELAY, 0, 0 }, - { "hbomb_hold_delay", PLAYER_HBOMB_HOLD_DELAY, 0, 0 }, - { "jumping_counter", PLAYER_JUMPING_COUNTER, 0, 0 }, - { "airleft", PLAYER_AIRLEFT, 0, 0 }, - { "knee_incs", PLAYER_KNEE_INCS, 0, 0 }, - { "access_incs", PLAYER_ACCESS_INCS, 0, 0 }, - { "fta", PLAYER_FTA, 0, 0 }, - { "ftq", PLAYER_FTQ, 0, 0 }, - { "access_wallnum", PLAYER_ACCESS_WALLNUM, 0, 0 }, - { "access_spritenum", PLAYER_ACCESS_SPRITENUM, 0, 0 }, - { "kickback_pic", PLAYER_KICKBACK_PIC, 0, 0 }, - { "got_access", PLAYER_GOT_ACCESS, 0, 0 }, - { "weapon_ang", PLAYER_WEAPON_ANG, 0, 0 }, - { "firstaid_amount", PLAYER_FIRSTAID_AMOUNT, 0, 0 }, - { "somethingonplayer", PLAYER_SOMETHINGONPLAYER, 0, 0 }, - { "on_crane", PLAYER_ON_CRANE, 0, 0 }, - { "i", PLAYER_I, 0, 0 }, - { "one_parallax_sectnum", PLAYER_ONE_PARALLAX_SECTNUM, 0, 0 }, - { "over_shoulder_on", PLAYER_OVER_SHOULDER_ON, 0, 0 }, - { "random_club_frame", PLAYER_RANDOM_CLUB_FRAME, 0, 0 }, - { "fist_incs", PLAYER_FIST_INCS, 0, 0 }, - { "one_eighty_count", PLAYER_ONE_EIGHTY_COUNT, 0, 0 }, - { "cheat_phase", PLAYER_CHEAT_PHASE, 0, 0 }, - { "dummyplayersprite", PLAYER_DUMMYPLAYERSPRITE, 0, 0 }, - { "extra_extra8", PLAYER_EXTRA_EXTRA8, 0, 0 }, - { "quick_kick", PLAYER_QUICK_KICK, 0, 0 }, - { "heat_amount", PLAYER_HEAT_AMOUNT, 0, 0 }, - { "actorsqu", PLAYER_ACTORSQU, 0, 0 }, - { "timebeforeexit", PLAYER_TIMEBEFOREEXIT, 0, 0 }, - { "customexitsound", PLAYER_CUSTOMEXITSOUND, 0, 0 }, - { "weaprecs[16]", PLAYER_WEAPRECS, 0, 0 }, - { "weapreccnt", PLAYER_WEAPRECCNT, 0, 0 }, - { "interface_toggle_flag", PLAYER_INTERFACE_TOGGLE_FLAG, 0, 0 }, - { "rotscrnang", PLAYER_ROTSCRNANG, 0, 0 }, - { "dead_flag", PLAYER_DEAD_FLAG, 0, 0 }, - { "show_empty_weapon", PLAYER_SHOW_EMPTY_WEAPON, 0, 0 }, - { "scuba_amount", PLAYER_SCUBA_AMOUNT, 0, 0 }, - { "jetpack_amount", PLAYER_JETPACK_AMOUNT, 0, 0 }, - { "steroids_amount", PLAYER_STEROIDS_AMOUNT, 0, 0 }, - { "shield_amount", PLAYER_SHIELD_AMOUNT, 0, 0 }, - { "holoduke_on", PLAYER_HOLODUKE_ON, 0, 0 }, - { "pycount", PLAYER_PYCOUNT, 0, 0 }, - { "weapon_pos", PLAYER_WEAPON_POS, 0, 0 }, - { "frag_ps", PLAYER_FRAG_PS, 0, 0 }, - { "transporter_hold", PLAYER_TRANSPORTER_HOLD, 0, 0 }, - { "last_full_weapon", PLAYER_LAST_FULL_WEAPON, 0, 0 }, - { "footprintshade", PLAYER_FOOTPRINTSHADE, 0, 0 }, - { "boot_amount", PLAYER_BOOT_AMOUNT, 0, 0 }, - { "scream_voice", PLAYER_SCREAM_VOICE, 0, 0 }, - { "gm", PLAYER_GM, 0, 0 }, - { "on_warping_sector", PLAYER_ON_WARPING_SECTOR, 0, 0 }, - { "footprintcount", PLAYER_FOOTPRINTCOUNT, 0, 0 }, - { "hbomb_on", PLAYER_HBOMB_ON, 0, 0 }, - { "jumping_toggle", PLAYER_JUMPING_TOGGLE, 0, 0 }, - { "rapid_fire_hold", PLAYER_RAPID_FIRE_HOLD, 0, 0 }, - { "on_ground", PLAYER_ON_GROUND, 0, 0 }, - { "name", PLAYER_NAME, LABEL_ISSTRING, 32 }, - { "inven_icon", PLAYER_INVEN_ICON, 0, 0 }, - { "buttonpalette", PLAYER_BUTTONPALETTE, 0, 0 }, - { "jetpack_on", PLAYER_JETPACK_ON, 0, 0 }, - { "spritebridge", PLAYER_SPRITEBRIDGE, 0, 0 }, - { "lastrandomspot", PLAYER_LASTRANDOMSPOT, 0, 0 }, - { "scuba_on", PLAYER_SCUBA_ON, 0, 0 }, - { "footprintpal", PLAYER_FOOTPRINTPAL, 0, 0 }, - { "heat_on", PLAYER_HEAT_ON, 0, 0 }, - { "holster_weapon", PLAYER_HOLSTER_WEAPON, 0, 0 }, - { "falling_counter", PLAYER_FALLING_COUNTER, 0, 0 }, - { "gotweapon", PLAYER_GOTWEAPON, LABEL_HASPARM2, MAX_WEAPONS }, - { "refresh_inventory", PLAYER_REFRESH_INVENTORY, 0, 0 }, - { "palette", PLAYER_PALETTE, 0, 0 }, - { "toggle_key_flag", PLAYER_TOGGLE_KEY_FLAG, 0, 0 }, - { "knuckle_incs", PLAYER_KNUCKLE_INCS, 0, 0 }, - { "walking_snd_toggle", PLAYER_WALKING_SND_TOGGLE, 0, 0 }, - { "palookup", PLAYER_PALOOKUP, 0, 0 }, - { "hard_landing", PLAYER_HARD_LANDING, 0, 0 }, - { "max_+_rooms", PLAYER_MAX_SECRET_ROOMS, 0, 0 }, - { "secret_rooms", PLAYER_SECRET_ROOMS, 0, 0 }, - { "pals", PLAYER_PALS, LABEL_HASPARM2, 2 }, - { "max_actors_killed", PLAYER_MAX_ACTORS_KILLED, 0, 0 }, - { "actors_killed", PLAYER_ACTORS_KILLED, 0, 0 }, - { "return_to_center", PLAYER_RETURN_TO_CENTER, 0, 0 }, - { "runspeed", PLAYER_RUNSPEED, 0, 0 }, - { "sbs", PLAYER_SBS, 0, 0 }, - { "reloading", PLAYER_RELOADING, 0, 0 }, - { "auto_aim", PLAYER_AUTO_AIM, 0, 0 }, - { "movement_lock", PLAYER_MOVEMENT_LOCK, 0, 0 }, - { "sound_pitch", PLAYER_SOUND_PITCH, 0, 0 }, - { "weaponswitch", PLAYER_WEAPONSWITCH, 0, 0 }, - { "team", PLAYER_TEAM, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; +LABELS playerlabels[]= + { + { "zoom", PLAYER_ZOOM, 0, 0 }, + { "exitx", PLAYER_EXITX, 0, 0 }, + { "exity", PLAYER_EXITY, 0, 0 }, + { "loogiex", PLAYER_LOOGIEX, LABEL_HASPARM2, 64 }, + { "loogiey", PLAYER_LOOGIEY, LABEL_HASPARM2, 64 }, + { "numloogs", PLAYER_NUMLOOGS, 0, 0 }, + { "loogcnt", PLAYER_LOOGCNT, 0, 0 }, + { "posx", PLAYER_POSX, 0, 0 }, + { "posy", PLAYER_POSY, 0, 0 }, + { "posz", PLAYER_POSZ, 0, 0 }, + { "horiz", PLAYER_HORIZ, 0, 0 }, + { "ohoriz", PLAYER_OHORIZ, 0, 0 }, + { "ohorizoff", PLAYER_OHORIZOFF, 0, 0 }, + { "invdisptime", PLAYER_INVDISPTIME, 0, 0 }, + { "bobposx", PLAYER_BOBPOSX, 0, 0 }, + { "bobposy", PLAYER_BOBPOSY, 0, 0 }, + { "oposx", PLAYER_OPOSX, 0, 0 }, + { "oposy", PLAYER_OPOSY, 0, 0 }, + { "oposz", PLAYER_OPOSZ, 0, 0 }, + { "pyoff", PLAYER_PYOFF, 0, 0 }, + { "opyoff", PLAYER_OPYOFF, 0, 0 }, + { "posxv", PLAYER_POSXV, 0, 0 }, + { "posyv", PLAYER_POSYV, 0, 0 }, + { "poszv", PLAYER_POSZV, 0, 0 }, + { "last_pissed_time", PLAYER_LAST_PISSED_TIME, 0, 0 }, + { "truefz", PLAYER_TRUEFZ, 0, 0 }, + { "truecz", PLAYER_TRUECZ, 0, 0 }, + { "player_par", PLAYER_PLAYER_PAR, 0, 0 }, + { "visibility", PLAYER_VISIBILITY, 0, 0 }, + { "bobcounter", PLAYER_BOBCOUNTER, 0, 0 }, + { "weapon_sway", PLAYER_WEAPON_SWAY, 0, 0 }, + { "pals_time", PLAYER_PALS_TIME, 0, 0 }, + { "randomflamex", PLAYER_RANDOMFLAMEX, 0, 0 }, + { "crack_time", PLAYER_CRACK_TIME, 0, 0 }, + { "aim_mode", PLAYER_AIM_MODE, 0, 0 }, + { "ang", PLAYER_ANG, 0, 0 }, + { "oang", PLAYER_OANG, 0, 0 }, + { "angvel", PLAYER_ANGVEL, 0, 0 }, + { "cursectnum", PLAYER_CURSECTNUM, 0, 0 }, + { "look_ang", PLAYER_LOOK_ANG, 0, 0 }, + { "last_extra", PLAYER_LAST_EXTRA, 0, 0 }, + { "subweapon", PLAYER_SUBWEAPON, 0, 0 }, + { "ammo_amount", PLAYER_AMMO_AMOUNT, LABEL_HASPARM2, MAX_WEAPONS }, + { "wackedbyactor", PLAYER_WACKEDBYACTOR, 0, 0 }, + { "frag", PLAYER_FRAG, 0, 0 }, + { "fraggedself", PLAYER_FRAGGEDSELF, 0, 0 }, + { "curr_weapon", PLAYER_CURR_WEAPON, 0, 0 }, + { "last_weapon", PLAYER_LAST_WEAPON, 0, 0 }, + { "tipincs", PLAYER_TIPINCS, 0, 0 }, + { "horizoff", PLAYER_HORIZOFF, 0, 0 }, + { "wantweaponfire", PLAYER_WANTWEAPONFIRE, 0, 0 }, + { "holoduke_amount", PLAYER_HOLODUKE_AMOUNT, 0, 0 }, + { "newowner", PLAYER_NEWOWNER, 0, 0 }, + { "hurt_delay", PLAYER_HURT_DELAY, 0, 0 }, + { "hbomb_hold_delay", PLAYER_HBOMB_HOLD_DELAY, 0, 0 }, + { "jumping_counter", PLAYER_JUMPING_COUNTER, 0, 0 }, + { "airleft", PLAYER_AIRLEFT, 0, 0 }, + { "knee_incs", PLAYER_KNEE_INCS, 0, 0 }, + { "access_incs", PLAYER_ACCESS_INCS, 0, 0 }, + { "fta", PLAYER_FTA, 0, 0 }, + { "ftq", PLAYER_FTQ, 0, 0 }, + { "access_wallnum", PLAYER_ACCESS_WALLNUM, 0, 0 }, + { "access_spritenum", PLAYER_ACCESS_SPRITENUM, 0, 0 }, + { "kickback_pic", PLAYER_KICKBACK_PIC, 0, 0 }, + { "got_access", PLAYER_GOT_ACCESS, 0, 0 }, + { "weapon_ang", PLAYER_WEAPON_ANG, 0, 0 }, + { "firstaid_amount", PLAYER_FIRSTAID_AMOUNT, 0, 0 }, + { "somethingonplayer", PLAYER_SOMETHINGONPLAYER, 0, 0 }, + { "on_crane", PLAYER_ON_CRANE, 0, 0 }, + { "i", PLAYER_I, 0, 0 }, + { "one_parallax_sectnum", PLAYER_ONE_PARALLAX_SECTNUM, 0, 0 }, + { "over_shoulder_on", PLAYER_OVER_SHOULDER_ON, 0, 0 }, + { "random_club_frame", PLAYER_RANDOM_CLUB_FRAME, 0, 0 }, + { "fist_incs", PLAYER_FIST_INCS, 0, 0 }, + { "one_eighty_count", PLAYER_ONE_EIGHTY_COUNT, 0, 0 }, + { "cheat_phase", PLAYER_CHEAT_PHASE, 0, 0 }, + { "dummyplayersprite", PLAYER_DUMMYPLAYERSPRITE, 0, 0 }, + { "extra_extra8", PLAYER_EXTRA_EXTRA8, 0, 0 }, + { "quick_kick", PLAYER_QUICK_KICK, 0, 0 }, + { "heat_amount", PLAYER_HEAT_AMOUNT, 0, 0 }, + { "actorsqu", PLAYER_ACTORSQU, 0, 0 }, + { "timebeforeexit", PLAYER_TIMEBEFOREEXIT, 0, 0 }, + { "customexitsound", PLAYER_CUSTOMEXITSOUND, 0, 0 }, + { "weaprecs[16]", PLAYER_WEAPRECS, 0, 0 }, + { "weapreccnt", PLAYER_WEAPRECCNT, 0, 0 }, + { "interface_toggle_flag", PLAYER_INTERFACE_TOGGLE_FLAG, 0, 0 }, + { "rotscrnang", PLAYER_ROTSCRNANG, 0, 0 }, + { "dead_flag", PLAYER_DEAD_FLAG, 0, 0 }, + { "show_empty_weapon", PLAYER_SHOW_EMPTY_WEAPON, 0, 0 }, + { "scuba_amount", PLAYER_SCUBA_AMOUNT, 0, 0 }, + { "jetpack_amount", PLAYER_JETPACK_AMOUNT, 0, 0 }, + { "steroids_amount", PLAYER_STEROIDS_AMOUNT, 0, 0 }, + { "shield_amount", PLAYER_SHIELD_AMOUNT, 0, 0 }, + { "holoduke_on", PLAYER_HOLODUKE_ON, 0, 0 }, + { "pycount", PLAYER_PYCOUNT, 0, 0 }, + { "weapon_pos", PLAYER_WEAPON_POS, 0, 0 }, + { "frag_ps", PLAYER_FRAG_PS, 0, 0 }, + { "transporter_hold", PLAYER_TRANSPORTER_HOLD, 0, 0 }, + { "last_full_weapon", PLAYER_LAST_FULL_WEAPON, 0, 0 }, + { "footprintshade", PLAYER_FOOTPRINTSHADE, 0, 0 }, + { "boot_amount", PLAYER_BOOT_AMOUNT, 0, 0 }, + { "scream_voice", PLAYER_SCREAM_VOICE, 0, 0 }, + { "gm", PLAYER_GM, 0, 0 }, + { "on_warping_sector", PLAYER_ON_WARPING_SECTOR, 0, 0 }, + { "footprintcount", PLAYER_FOOTPRINTCOUNT, 0, 0 }, + { "hbomb_on", PLAYER_HBOMB_ON, 0, 0 }, + { "jumping_toggle", PLAYER_JUMPING_TOGGLE, 0, 0 }, + { "rapid_fire_hold", PLAYER_RAPID_FIRE_HOLD, 0, 0 }, + { "on_ground", PLAYER_ON_GROUND, 0, 0 }, + { "name", PLAYER_NAME, LABEL_ISSTRING, 32 }, + { "inven_icon", PLAYER_INVEN_ICON, 0, 0 }, + { "buttonpalette", PLAYER_BUTTONPALETTE, 0, 0 }, + { "jetpack_on", PLAYER_JETPACK_ON, 0, 0 }, + { "spritebridge", PLAYER_SPRITEBRIDGE, 0, 0 }, + { "lastrandomspot", PLAYER_LASTRANDOMSPOT, 0, 0 }, + { "scuba_on", PLAYER_SCUBA_ON, 0, 0 }, + { "footprintpal", PLAYER_FOOTPRINTPAL, 0, 0 }, + { "heat_on", PLAYER_HEAT_ON, 0, 0 }, + { "holster_weapon", PLAYER_HOLSTER_WEAPON, 0, 0 }, + { "falling_counter", PLAYER_FALLING_COUNTER, 0, 0 }, + { "gotweapon", PLAYER_GOTWEAPON, LABEL_HASPARM2, MAX_WEAPONS }, + { "refresh_inventory", PLAYER_REFRESH_INVENTORY, 0, 0 }, + { "palette", PLAYER_PALETTE, 0, 0 }, + { "toggle_key_flag", PLAYER_TOGGLE_KEY_FLAG, 0, 0 }, + { "knuckle_incs", PLAYER_KNUCKLE_INCS, 0, 0 }, + { "walking_snd_toggle", PLAYER_WALKING_SND_TOGGLE, 0, 0 }, + { "palookup", PLAYER_PALOOKUP, 0, 0 }, + { "hard_landing", PLAYER_HARD_LANDING, 0, 0 }, + { "max_+_rooms", PLAYER_MAX_SECRET_ROOMS, 0, 0 }, + { "secret_rooms", PLAYER_SECRET_ROOMS, 0, 0 }, + { "pals", PLAYER_PALS, LABEL_HASPARM2, 2 }, + { "max_actors_killed", PLAYER_MAX_ACTORS_KILLED, 0, 0 }, + { "actors_killed", PLAYER_ACTORS_KILLED, 0, 0 }, + { "return_to_center", PLAYER_RETURN_TO_CENTER, 0, 0 }, + { "runspeed", PLAYER_RUNSPEED, 0, 0 }, + { "sbs", PLAYER_SBS, 0, 0 }, + { "reloading", PLAYER_RELOADING, 0, 0 }, + { "auto_aim", PLAYER_AUTO_AIM, 0, 0 }, + { "movement_lock", PLAYER_MOVEMENT_LOCK, 0, 0 }, + { "sound_pitch", PLAYER_SOUND_PITCH, 0, 0 }, + { "weaponswitch", PLAYER_WEAPONSWITCH, 0, 0 }, + { "team", PLAYER_TEAM, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS projectilelabels[]= { - { "workslike", PROJ_WORKSLIKE, 0, 0 }, - { "spawns", PROJ_SPAWNS, 0, 0 }, - { "sxrepeat", PROJ_SXREPEAT, 0, 0 }, - { "syrepeat", PROJ_SYREPEAT, 0, 0 }, - { "sound", PROJ_SOUND, 0, 0 }, - { "isound", PROJ_ISOUND, 0, 0 }, - { "vel", PROJ_VEL, 0, 0 }, - { "extra", PROJ_EXTRA, 0, 0 }, - { "decal", PROJ_DECAL, 0, 0 }, - { "trail", PROJ_TRAIL, 0, 0 }, - { "txrepeat", PROJ_TXREPEAT, 0, 0 }, - { "tyrepeat", PROJ_TYREPEAT, 0, 0 }, - { "toffset", PROJ_TOFFSET, 0, 0 }, - { "tnum", PROJ_TNUM, 0, 0 }, - { "drop", PROJ_DROP, 0, 0 }, - { "cstat", PROJ_CSTAT, 0, 0 }, - { "clipdist", PROJ_CLIPDIST, 0, 0 }, - { "shade", PROJ_SHADE, 0, 0 }, - { "xrepeat", PROJ_XREPEAT, 0, 0 }, - { "yrepeat", PROJ_YREPEAT, 0, 0 }, - { "pal", PROJ_PAL, 0, 0 }, - { "extra_rand", PROJ_EXTRA_RAND, 0, 0 }, - { "hitradius", PROJ_HITRADIUS, 0, 0 }, - { "velmult", PROJ_VEL_MULT, 0, 0 }, - { "offset", PROJ_OFFSET, 0, 0 }, - { "bounces", PROJ_BOUNCES, 0, 0 }, - { "bsound", PROJ_BSOUND, 0, 0 }, - { "range", PROJ_RANGE, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; +LABELS projectilelabels[]= + { + { "workslike", PROJ_WORKSLIKE, 0, 0 }, + { "spawns", PROJ_SPAWNS, 0, 0 }, + { "sxrepeat", PROJ_SXREPEAT, 0, 0 }, + { "syrepeat", PROJ_SYREPEAT, 0, 0 }, + { "sound", PROJ_SOUND, 0, 0 }, + { "isound", PROJ_ISOUND, 0, 0 }, + { "vel", PROJ_VEL, 0, 0 }, + { "extra", PROJ_EXTRA, 0, 0 }, + { "decal", PROJ_DECAL, 0, 0 }, + { "trail", PROJ_TRAIL, 0, 0 }, + { "txrepeat", PROJ_TXREPEAT, 0, 0 }, + { "tyrepeat", PROJ_TYREPEAT, 0, 0 }, + { "toffset", PROJ_TOFFSET, 0, 0 }, + { "tnum", PROJ_TNUM, 0, 0 }, + { "drop", PROJ_DROP, 0, 0 }, + { "cstat", PROJ_CSTAT, 0, 0 }, + { "clipdist", PROJ_CLIPDIST, 0, 0 }, + { "shade", PROJ_SHADE, 0, 0 }, + { "xrepeat", PROJ_XREPEAT, 0, 0 }, + { "yrepeat", PROJ_YREPEAT, 0, 0 }, + { "pal", PROJ_PAL, 0, 0 }, + { "extra_rand", PROJ_EXTRA_RAND, 0, 0 }, + { "hitradius", PROJ_HITRADIUS, 0, 0 }, + { "velmult", PROJ_VEL_MULT, 0, 0 }, + { "offset", PROJ_OFFSET, 0, 0 }, + { "bounces", PROJ_BOUNCES, 0, 0 }, + { "bsound", PROJ_BSOUND, 0, 0 }, + { "range", PROJ_RANGE, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS userdefslabels[]= { - // { "", 1, 0, 0 }, - { "god", USERDEFS_GOD, 0, 0 }, - { "warp_on", USERDEFS_WARP_ON, 0, 0 }, - { "cashman", USERDEFS_CASHMAN, 0, 0 }, - { "eog", USERDEFS_EOG, 0, 0 }, - { "showallmap", USERDEFS_SHOWALLMAP, 0, 0 }, - { "show_help", USERDEFS_SHOW_HELP, 0, 0 }, - { "scrollmode", USERDEFS_SCROLLMODE, 0, 0 }, - { "clipping", USERDEFS_CLIPPING, 0, 0 }, - { "user_name", USERDEFS_USER_NAME, LABEL_HASPARM2, MAXPLAYERS }, - { "ridecule", USERDEFS_RIDECULE, LABEL_HASPARM2 | LABEL_ISSTRING, 10 }, - { "savegame", USERDEFS_SAVEGAME, LABEL_HASPARM2 | LABEL_ISSTRING, 10 }, - { "pwlockout", USERDEFS_PWLOCKOUT, LABEL_ISSTRING, 128 }, - { "rtsname;", USERDEFS_RTSNAME, LABEL_ISSTRING, 128 }, - { "overhead_on", USERDEFS_OVERHEAD_ON, 0, 0 }, - { "last_overhead", USERDEFS_LAST_OVERHEAD, 0, 0 }, - { "showweapons", USERDEFS_SHOWWEAPONS, 0, 0 }, +LABELS userdefslabels[]= + { + // { "", 1, 0, 0 }, + { "god", USERDEFS_GOD, 0, 0 }, + { "warp_on", USERDEFS_WARP_ON, 0, 0 }, + { "cashman", USERDEFS_CASHMAN, 0, 0 }, + { "eog", USERDEFS_EOG, 0, 0 }, + { "showallmap", USERDEFS_SHOWALLMAP, 0, 0 }, + { "show_help", USERDEFS_SHOW_HELP, 0, 0 }, + { "scrollmode", USERDEFS_SCROLLMODE, 0, 0 }, + { "clipping", USERDEFS_CLIPPING, 0, 0 }, + { "user_name", USERDEFS_USER_NAME, LABEL_HASPARM2, MAXPLAYERS }, + { "ridecule", USERDEFS_RIDECULE, LABEL_HASPARM2 | LABEL_ISSTRING, 10 }, + { "savegame", USERDEFS_SAVEGAME, LABEL_HASPARM2 | LABEL_ISSTRING, 10 }, + { "pwlockout", USERDEFS_PWLOCKOUT, LABEL_ISSTRING, 128 }, + { "rtsname;", USERDEFS_RTSNAME, LABEL_ISSTRING, 128 }, + { "overhead_on", USERDEFS_OVERHEAD_ON, 0, 0 }, + { "last_overhead", USERDEFS_LAST_OVERHEAD, 0, 0 }, + { "showweapons", USERDEFS_SHOWWEAPONS, 0, 0 }, - { "pause_on", USERDEFS_PAUSE_ON, 0, 0 }, - { "from_bonus", USERDEFS_FROM_BONUS, 0, 0 }, - { "camerasprite", USERDEFS_CAMERASPRITE, 0, 0 }, - { "last_camsprite", USERDEFS_LAST_CAMSPRITE, 0, 0 }, - { "last_level", USERDEFS_LAST_LEVEL, 0, 0 }, - { "secretlevel", USERDEFS_SECRETLEVEL, 0, 0 }, + { "pause_on", USERDEFS_PAUSE_ON, 0, 0 }, + { "from_bonus", USERDEFS_FROM_BONUS, 0, 0 }, + { "camerasprite", USERDEFS_CAMERASPRITE, 0, 0 }, + { "last_camsprite", USERDEFS_LAST_CAMSPRITE, 0, 0 }, + { "last_level", USERDEFS_LAST_LEVEL, 0, 0 }, + { "secretlevel", USERDEFS_SECRETLEVEL, 0, 0 }, - { "const_visibility", USERDEFS_CONST_VISIBILITY, 0, 0 }, - { "uw_framerate", USERDEFS_UW_FRAMERATE, 0, 0 }, - { "camera_time", USERDEFS_CAMERA_TIME, 0, 0 }, - { "folfvel", USERDEFS_FOLFVEL, 0, 0 }, - { "folavel", USERDEFS_FOLAVEL, 0, 0 }, - { "folx", USERDEFS_FOLX, 0, 0 }, - { "foly", USERDEFS_FOLY, 0, 0 }, - { "fola", USERDEFS_FOLA, 0, 0 }, - { "reccnt", USERDEFS_RECCNT, 0, 0 }, + { "const_visibility", USERDEFS_CONST_VISIBILITY, 0, 0 }, + { "uw_framerate", USERDEFS_UW_FRAMERATE, 0, 0 }, + { "camera_time", USERDEFS_CAMERA_TIME, 0, 0 }, + { "folfvel", USERDEFS_FOLFVEL, 0, 0 }, + { "folavel", USERDEFS_FOLAVEL, 0, 0 }, + { "folx", USERDEFS_FOLX, 0, 0 }, + { "foly", USERDEFS_FOLY, 0, 0 }, + { "fola", USERDEFS_FOLA, 0, 0 }, + { "reccnt", USERDEFS_RECCNT, 0, 0 }, - { "entered_name", USERDEFS_ENTERED_NAME, 0, 0 }, - { "screen_tilting", USERDEFS_SCREEN_TILTING, 0, 0 }, - { "shadows", USERDEFS_SHADOWS, 0, 0 }, - { "fta_on", USERDEFS_FTA_ON, 0, 0 }, - { "executions", USERDEFS_EXECUTIONS, 0, 0 }, - { "auto_run", USERDEFS_AUTO_RUN, 0, 0 }, - { "coords", USERDEFS_COORDS, 0, 0 }, - { "tickrate", USERDEFS_TICKRATE, 0, 0 }, - { "m_coop", USERDEFS_M_COOP, 0, 0 }, - { "coop", USERDEFS_COOP, 0, 0 }, - { "screen_size", USERDEFS_SCREEN_SIZE, 0, 0 }, - { "lockout", USERDEFS_LOCKOUT, 0, 0 }, - { "crosshair", USERDEFS_CROSSHAIR, 0, 0 }, - { "wchoice[MAXPLAYERS][MAX_WEAPONS]", USERDEFS_WCHOICE, 0, 0 }, - { "playerai", USERDEFS_PLAYERAI, 0, 0 }, - { "respawn_monsters", USERDEFS_RESPAWN_MONSTERS, 0, 0 }, - { "respawn_items", USERDEFS_RESPAWN_ITEMS, 0, 0 }, - { "respawn_inventory", USERDEFS_RESPAWN_INVENTORY, 0, 0 }, - { "recstat", USERDEFS_RECSTAT, 0, 0 }, - { "monsters_off", USERDEFS_MONSTERS_OFF, 0, 0 }, - { "brightness", USERDEFS_BRIGHTNESS, 0, 0 }, - { "m_respawn_items", USERDEFS_M_RESPAWN_ITEMS, 0, 0 }, - { "m_respawn_monsters", USERDEFS_M_RESPAWN_MONSTERS, 0, 0 }, - { "m_respawn_inventory", USERDEFS_M_RESPAWN_INVENTORY, 0, 0 }, - { "m_recstat", USERDEFS_M_RECSTAT, 0, 0 }, - { "m_monsters_off", USERDEFS_M_MONSTERS_OFF, 0, 0 }, - { "detail", USERDEFS_DETAIL, 0, 0 }, - { "m_ffire", USERDEFS_M_FFIRE, 0, 0 }, - { "ffire", USERDEFS_FFIRE, 0, 0 }, - { "m_player_skill", USERDEFS_M_PLAYER_SKILL, 0, 0 }, - { "m_level_number", USERDEFS_M_LEVEL_NUMBER, 0, 0 }, - { "m_volume_number", USERDEFS_M_VOLUME_NUMBER, 0, 0 }, - { "multimode", USERDEFS_MULTIMODE, 0, 0 }, - { "player_skill", USERDEFS_PLAYER_SKILL, 0, 0 }, - { "level_number", USERDEFS_LEVEL_NUMBER, 0, 0 }, - { "volume_number", USERDEFS_VOLUME_NUMBER, 0, 0 }, - { "m_marker", USERDEFS_M_MARKER, 0, 0 }, - { "marker", USERDEFS_MARKER, 0, 0 }, - { "mouseflip", USERDEFS_MOUSEFLIP, 0, 0 }, - { "statusbarscale", USERDEFS_STATUSBARSCALE, 0, 0 }, - { "drawweapon", USERDEFS_DRAWWEAPON, 0, 0 }, - { "mouseaiming", USERDEFS_MOUSEAIMING, 0, 0 }, - { "weaponswitch", USERDEFS_WEAPONSWITCH, 0, 0 }, - { "democams", USERDEFS_DEMOCAMS, 0, 0 }, - { "color", USERDEFS_COLOR, 0, 0 }, - { "msgdisptime", USERDEFS_MSGDISPTIME, 0, 0 }, - { "statusbarmode", USERDEFS_STATUSBARMODE, 0, 0 }, - { "m_noexits", USERDEFS_M_NOEXITS, 0, 0 }, - { "noexits", USERDEFS_NOEXITS, 0, 0 }, - { "autovote", USERDEFS_AUTOVOTE, 0, 0 }, - { "automsg", USERDEFS_AUTOMSG, 0, 0 }, - { "idplayers", USERDEFS_IDPLAYERS, 0, 0 }, - { "team", USERDEFS_TEAM, 0, 0 }, - { "myx", USERDEFS_MYX, 0, 0 }, - { "omyx", USERDEFS_OMYX, 0, 0 }, - { "myxvel", USERDEFS_MYXVEL, 0, 0 }, - { "myy", USERDEFS_MYY, 0, 0 }, - { "omyy", USERDEFS_OMYY, 0, 0 }, - { "myyvel", USERDEFS_MYYVEL, 0, 0 }, - { "myz", USERDEFS_MYZ, 0, 0 }, - { "omyz", USERDEFS_OMYZ, 0, 0 }, - { "myzvel", USERDEFS_MYZVEL, 0, 0 }, - { "myhoriz", USERDEFS_MYHORIZ, 0, 0 }, - { "omyhoriz", USERDEFS_OMYHORIZ, 0, 0 }, - { "myhorizoff", USERDEFS_MYHORIZOFF, 0, 0 }, - { "omyhorizoff", USERDEFS_OMYHORIZOFF, 0, 0 }, - { "myang", USERDEFS_MYANG, 0, 0 }, - { "omyang", USERDEFS_OMYANG, 0, 0 }, - { "mycursectnum", USERDEFS_MYCURSECTNUM, 0, 0 }, - { "myjumpingcounter", USERDEFS_MYJUMPINGCOUNTER, 0, 0 }, - { "myjumpingtoggle", USERDEFS_MYJUMPINGTOGGLE, 0, 0 }, - { "myonground", USERDEFS_MYONGROUND, 0, 0 }, - { "myhardlanding", USERDEFS_MYHARDLANDING, 0, 0 }, - { "myreturntocenter", USERDEFS_MYRETURNTOCENTER, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; + { "entered_name", USERDEFS_ENTERED_NAME, 0, 0 }, + { "screen_tilting", USERDEFS_SCREEN_TILTING, 0, 0 }, + { "shadows", USERDEFS_SHADOWS, 0, 0 }, + { "fta_on", USERDEFS_FTA_ON, 0, 0 }, + { "executions", USERDEFS_EXECUTIONS, 0, 0 }, + { "auto_run", USERDEFS_AUTO_RUN, 0, 0 }, + { "coords", USERDEFS_COORDS, 0, 0 }, + { "tickrate", USERDEFS_TICKRATE, 0, 0 }, + { "m_coop", USERDEFS_M_COOP, 0, 0 }, + { "coop", USERDEFS_COOP, 0, 0 }, + { "screen_size", USERDEFS_SCREEN_SIZE, 0, 0 }, + { "lockout", USERDEFS_LOCKOUT, 0, 0 }, + { "crosshair", USERDEFS_CROSSHAIR, 0, 0 }, + { "wchoice[MAXPLAYERS][MAX_WEAPONS]", USERDEFS_WCHOICE, 0, 0 }, + { "playerai", USERDEFS_PLAYERAI, 0, 0 }, + { "respawn_monsters", USERDEFS_RESPAWN_MONSTERS, 0, 0 }, + { "respawn_items", USERDEFS_RESPAWN_ITEMS, 0, 0 }, + { "respawn_inventory", USERDEFS_RESPAWN_INVENTORY, 0, 0 }, + { "recstat", USERDEFS_RECSTAT, 0, 0 }, + { "monsters_off", USERDEFS_MONSTERS_OFF, 0, 0 }, + { "brightness", USERDEFS_BRIGHTNESS, 0, 0 }, + { "m_respawn_items", USERDEFS_M_RESPAWN_ITEMS, 0, 0 }, + { "m_respawn_monsters", USERDEFS_M_RESPAWN_MONSTERS, 0, 0 }, + { "m_respawn_inventory", USERDEFS_M_RESPAWN_INVENTORY, 0, 0 }, + { "m_recstat", USERDEFS_M_RECSTAT, 0, 0 }, + { "m_monsters_off", USERDEFS_M_MONSTERS_OFF, 0, 0 }, + { "detail", USERDEFS_DETAIL, 0, 0 }, + { "m_ffire", USERDEFS_M_FFIRE, 0, 0 }, + { "ffire", USERDEFS_FFIRE, 0, 0 }, + { "m_player_skill", USERDEFS_M_PLAYER_SKILL, 0, 0 }, + { "m_level_number", USERDEFS_M_LEVEL_NUMBER, 0, 0 }, + { "m_volume_number", USERDEFS_M_VOLUME_NUMBER, 0, 0 }, + { "multimode", USERDEFS_MULTIMODE, 0, 0 }, + { "player_skill", USERDEFS_PLAYER_SKILL, 0, 0 }, + { "level_number", USERDEFS_LEVEL_NUMBER, 0, 0 }, + { "volume_number", USERDEFS_VOLUME_NUMBER, 0, 0 }, + { "m_marker", USERDEFS_M_MARKER, 0, 0 }, + { "marker", USERDEFS_MARKER, 0, 0 }, + { "mouseflip", USERDEFS_MOUSEFLIP, 0, 0 }, + { "statusbarscale", USERDEFS_STATUSBARSCALE, 0, 0 }, + { "drawweapon", USERDEFS_DRAWWEAPON, 0, 0 }, + { "mouseaiming", USERDEFS_MOUSEAIMING, 0, 0 }, + { "weaponswitch", USERDEFS_WEAPONSWITCH, 0, 0 }, + { "democams", USERDEFS_DEMOCAMS, 0, 0 }, + { "color", USERDEFS_COLOR, 0, 0 }, + { "msgdisptime", USERDEFS_MSGDISPTIME, 0, 0 }, + { "statusbarmode", USERDEFS_STATUSBARMODE, 0, 0 }, + { "m_noexits", USERDEFS_M_NOEXITS, 0, 0 }, + { "noexits", USERDEFS_NOEXITS, 0, 0 }, + { "autovote", USERDEFS_AUTOVOTE, 0, 0 }, + { "automsg", USERDEFS_AUTOMSG, 0, 0 }, + { "idplayers", USERDEFS_IDPLAYERS, 0, 0 }, + { "team", USERDEFS_TEAM, 0, 0 }, + { "myx", USERDEFS_MYX, 0, 0 }, + { "omyx", USERDEFS_OMYX, 0, 0 }, + { "myxvel", USERDEFS_MYXVEL, 0, 0 }, + { "myy", USERDEFS_MYY, 0, 0 }, + { "omyy", USERDEFS_OMYY, 0, 0 }, + { "myyvel", USERDEFS_MYYVEL, 0, 0 }, + { "myz", USERDEFS_MYZ, 0, 0 }, + { "omyz", USERDEFS_OMYZ, 0, 0 }, + { "myzvel", USERDEFS_MYZVEL, 0, 0 }, + { "myhoriz", USERDEFS_MYHORIZ, 0, 0 }, + { "omyhoriz", USERDEFS_OMYHORIZ, 0, 0 }, + { "myhorizoff", USERDEFS_MYHORIZOFF, 0, 0 }, + { "omyhorizoff", USERDEFS_OMYHORIZOFF, 0, 0 }, + { "myang", USERDEFS_MYANG, 0, 0 }, + { "omyang", USERDEFS_OMYANG, 0, 0 }, + { "mycursectnum", USERDEFS_MYCURSECTNUM, 0, 0 }, + { "myjumpingcounter", USERDEFS_MYJUMPINGCOUNTER, 0, 0 }, + { "myjumpingtoggle", USERDEFS_MYJUMPINGTOGGLE, 0, 0 }, + { "myonground", USERDEFS_MYONGROUND, 0, 0 }, + { "myhardlanding", USERDEFS_MYHARDLANDING, 0, 0 }, + { "myreturntocenter", USERDEFS_MYRETURNTOCENTER, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; -LABELS inputlabels[]= { - { "avel", INPUT_AVEL, 0, 0 }, - { "horz", INPUT_HORZ, 0, 0 }, - { "fvel", INPUT_FVEL, 0, 0 }, - { "svel", INPUT_SVEL, 0, 0 }, - { "bits", INPUT_BITS, 0, 0 }, - { "extbits", INPUT_EXTBITS, 0, 0 }, - { "", -1, 0, 0 } // END OF LIST - }; +LABELS inputlabels[]= + { + { "avel", INPUT_AVEL, 0, 0 }, + { "horz", INPUT_HORZ, 0, 0 }, + { "fvel", INPUT_FVEL, 0, 0 }, + { "svel", INPUT_SVEL, 0, 0 }, + { "bits", INPUT_BITS, 0, 0 }, + { "extbits", INPUT_EXTBITS, 0, 0 }, + { "", -1, 0, 0 } // END OF LIST + }; static void skipcomments(void) { char c; - + while ((c = *textptr)) { if (c == ' ' || c == '\t' || c == '\r') @@ -1043,14 +1054,21 @@ char CheckEventSync(int iEventID) return 1; } -void AddLog(const char *psz) +#if 0 +void AddLog(const char *psz, ...) { - Bstrcpy(tempbuf,psz); - if (tempbuf[Bstrlen(psz)] != '\n') + va_list va; + + va_start(va, psz); + Bvsnprintf(tempbuf, sizeof(tempbuf), psz, va); + va_end(va); + + if (tempbuf[Bstrlen(tempbuf)] != '\n') Bstrcat(tempbuf,"\n"); if (qsetmode == 200) OSD_Printf(tempbuf); else initprintf(tempbuf); } +#endif static long GetDefID(const char *szGameLabel) { @@ -2389,7 +2407,7 @@ static int parsecommand(void) { if (*(scriptptr-1) == 32767) { - *(scriptptr-1) = 32768; + *(scriptptr-1) = 32768; ReportError(-1); initprintf("%s:%ld: warning: tried to set cstat 32767, using 32768 instead.\n",compilefile,line_number); } @@ -3027,7 +3045,7 @@ static int parsecommand(void) case CON_INITTIMER: case CON_LOCKPLAYER: case CON_SHOOTVAR: - case CON_QUAKE: + case CON_QUAKE: if (!CheckEventSync(current_event)) ReportError(WARNING_EVENTSYNC); case CON_JUMP: @@ -3373,6 +3391,16 @@ static int parsecommand(void) transmultvars(12); break; + case CON_SHOWVIEW: + if (parsing_event == 0 && parsing_state == 0) + { + ReportError(ERROR_EVENTONLY); + error++; + } + + transmultvars(10); + break; + case CON_GETZRANGE: transmultvars(4); transmultvarstype(GAMEVAR_FLAG_READONLY,4); diff --git a/polymer/eduke32/source/gamedef.h b/polymer/eduke32/source/gamedef.h index 34a288162..1dd6d104b 100644 --- a/polymer/eduke32/source/gamedef.h +++ b/polymer/eduke32/source/gamedef.h @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -776,5 +778,6 @@ enum keywords { CON_QSTRLEN, // 299 CON_GETINCANGLE, // 300 CON_QUAKE, // 301 + CON_SHOWVIEW, // 302 END }; diff --git a/polymer/eduke32/source/gamedefs.h b/polymer/eduke32/source/gamedefs.h index 23693623c..eada8dfa4 100644 --- a/polymer/eduke32/source/gamedefs.h +++ b/polymer/eduke32/source/gamedefs.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/gameexec.c b/polymer/eduke32/source/gameexec.c index ad6912b1f..2705fb146 100644 --- a/polymer/eduke32/source/gameexec.c +++ b/polymer/eduke32/source/gameexec.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -28,10 +30,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "osd.h" -static int g_i,g_p; +int g_i,g_p; static long g_x,*g_t; static spritetype *g_sp; -int killit_flag; +static int killit_flag; extern int32 scripthandle; @@ -3016,7 +3018,7 @@ void OnEvent(int iEventID, int iActor, int iPlayer, long lDist) { if (iEventID >= MAXGAMEEVENTS) { - AddLog("Invalid Event ID"); + OSD_Printf("OnEvent(): invalid event ID"); return; } @@ -3031,7 +3033,7 @@ void OnEvent(int iEventID, int iActor, int iPlayer, long lDist) int og_i=g_i, og_p=g_p, okillit_flag=killit_flag; long og_x=g_x, *og_t=g_t, *oinsptr=insptr; spritetype *og_sp=g_sp; - + g_i = iActor; // current sprite ID g_p = iPlayer; // current player ID g_x = lDist; // ? @@ -3588,8 +3590,6 @@ static void parseifelse(long condition) // long *it = 0x00589a04; -long instruction = 0; - static int parse(void) { long j, l, s, tw; @@ -3602,34 +3602,32 @@ static int parse(void) tw = *insptr; - instruction = tw; -// initprintf("instruction %ld\n",tw); switch (tw) { case CON_REDEFINEQUOTE: - insptr++; - { - int q = *insptr++, i = *insptr++; - if (fta_quotes[q] == NULL || redefined_quotes[i] == NULL) + insptr++; { - OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,q,i); + int q = *insptr++, i = *insptr++; + if (fta_quotes[q] == NULL || redefined_quotes[i] == NULL) + { + OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,q,i); + break; + } + Bstrcpy(fta_quotes[q],redefined_quotes[i]); break; } - Bstrcpy(fta_quotes[q],redefined_quotes[i]); - break; - } case CON_GETTHISPROJECTILE: case CON_SETTHISPROJECTILE: - insptr++; - { - // syntax [gs]etplayer[].x - // - int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; - - DoThisProjectile(tw==CON_SETTHISPROJECTILE,lVar1,lLabelID,lVar2); - break; - } + insptr++; + { + // syntax [gs]etplayer[].x + // + int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; + + DoThisProjectile(tw==CON_SETTHISPROJECTILE,lVar1,lLabelID,lVar2); + break; + } case CON_IFRND: insptr++; @@ -3637,7 +3635,6 @@ static int parse(void) break; case CON_IFCANSHOOTTARGET: - if (g_x > 1024) { short temphit, sclip = 768, angdif = 16; @@ -3778,7 +3775,7 @@ static int parse(void) if (g_sp->picnum == APLAYER) j--; parseifelse(j < 0); - break; + break; case CON_AI: insptr++; @@ -4237,68 +4234,68 @@ static int parse(void) case CON_OPERATEACTIVATORS: case CON_SETASPECT: case CON_SSP: - insptr++; - { - int var1 = GetGameVarID(*insptr++,g_i,g_p), var2; - if (tw == CON_OPERATEACTIVATORS && *insptr == g_iThisActorID) + insptr++; { - var2 = g_p; - insptr++; - } - else var2 = GetGameVarID(*insptr++,g_i,g_p); + int var1 = GetGameVarID(*insptr++,g_i,g_p), var2; + if (tw == CON_OPERATEACTIVATORS && *insptr == g_iThisActorID) + { + var2 = g_p; + insptr++; + } + else var2 = GetGameVarID(*insptr++,g_i,g_p); - switch (tw) - { - case CON_ACTIVATEBYSECTOR: - activatebysector(var1, var2); - break; - case CON_OPERATESECTORS: - operatesectors(var1, var2); - break; - case CON_OPERATEACTIVATORS: - operateactivators(var1, var2); - break; - case CON_SETASPECT: - setaspect(var1, var2); - break; - case CON_SSP: - ssp(var1, var2); + switch (tw) + { + case CON_ACTIVATEBYSECTOR: + activatebysector(var1, var2); + break; + case CON_OPERATESECTORS: + operatesectors(var1, var2); + break; + case CON_OPERATEACTIVATORS: + operateactivators(var1, var2); + break; + case CON_SETASPECT: + setaspect(var1, var2); + break; + case CON_SSP: + ssp(var1, var2); + break; + } break; } - break; - } case CON_CANSEESPR: - insptr++; - { - int lVar1 = GetGameVarID(*insptr++,g_i,g_p), lVar2 = GetGameVarID(*insptr++,g_i,g_p); + insptr++; + { + int lVar1 = GetGameVarID(*insptr++,g_i,g_p), lVar2 = GetGameVarID(*insptr++,g_i,g_p); - SetGameVarID(*insptr++, cansee(sprite[lVar1].x,sprite[lVar1].y,sprite[lVar1].z,sprite[lVar1].sectnum, - sprite[lVar2].x,sprite[lVar2].y,sprite[lVar2].z,sprite[lVar2].sectnum), g_i, g_p); - break; - } + SetGameVarID(*insptr++, cansee(sprite[lVar1].x,sprite[lVar1].y,sprite[lVar1].z,sprite[lVar1].sectnum, + sprite[lVar2].x,sprite[lVar2].y,sprite[lVar2].z,sprite[lVar2].sectnum), g_i, g_p); + break; + } case CON_OPERATERESPAWNS: case CON_OPERATEMASTERSWITCHES: case CON_CHECKACTIVATORMOTION: - insptr++; - { - int var1 = GetGameVarID(*insptr++,g_i,g_p); - - switch (tw) + insptr++; { - case CON_OPERATERESPAWNS: - operaterespawns(var1); - break; - case CON_OPERATEMASTERSWITCHES: - operatemasterswitches(var1); - break; - case CON_CHECKACTIVATORMOTION: - SetGameVarID(g_iReturnVarID, check_activator_motion(var1), g_i, g_p); + int var1 = GetGameVarID(*insptr++,g_i,g_p); + + switch (tw) + { + case CON_OPERATERESPAWNS: + operaterespawns(var1); + break; + case CON_OPERATEMASTERSWITCHES: + operatemasterswitches(var1); + break; + case CON_CHECKACTIVATORMOTION: + SetGameVarID(g_iReturnVarID, check_activator_motion(var1), g_i, g_p); + break; + } break; } - break; - } case CON_INSERTSPRITEQ: insptr++; @@ -4306,96 +4303,96 @@ static int parse(void) break; case CON_QSTRLEN: - insptr++; - { - int i=*insptr++; - j=GetGameVarID(*insptr++, g_i, g_p); - if (fta_quotes[j] == NULL) + insptr++; { - SetGameVarID(i,-1,g_i,g_p); + int i=*insptr++; + j=GetGameVarID(*insptr++, g_i, g_p); + if (fta_quotes[j] == NULL) + { + SetGameVarID(i,-1,g_i,g_p); + break; + } + SetGameVarID(i,Bstrlen(fta_quotes[j]),g_i,g_p); break; } - SetGameVarID(i,Bstrlen(fta_quotes[j]),g_i,g_p); - break; - } case CON_GETPNAME: case CON_QSTRCAT: case CON_QSTRCPY: case CON_CHANGESPRITESTAT: case CON_CHANGESPRITESECT: - insptr++; - { - int i = GetGameVarID(*insptr++, g_i, g_p), j; - if (tw == CON_GETPNAME && *insptr == g_iThisActorID) + insptr++; { - j = g_p; - insptr++; - } - else j = GetGameVarID(*insptr++, g_i, g_p); - - switch (tw) - { - case CON_GETPNAME: - if (fta_quotes[i] != NULL) + int i = GetGameVarID(*insptr++, g_i, g_p), j; + if (tw == CON_GETPNAME && *insptr == g_iThisActorID) { - if (ud.user_name[j][0]) - Bstrcpy(fta_quotes[i],ud.user_name[j]); - else Bsprintf(fta_quotes[i],"%d",j); + j = g_p; + insptr++; + } + else j = GetGameVarID(*insptr++, g_i, g_p); + + switch (tw) + { + case CON_GETPNAME: + if (fta_quotes[i] != NULL) + { + if (ud.user_name[j][0]) + Bstrcpy(fta_quotes[i],ud.user_name[j]); + else Bsprintf(fta_quotes[i],"%d",j); + } + else OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,i); + break; + case CON_QSTRCAT: + if (fta_quotes[i] != NULL && fta_quotes[j] != NULL) + Bstrncat(fta_quotes[i],fta_quotes[j],(MAXQUOTELEN-1)-Bstrlen(fta_quotes[i])); + else OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,i,j); + break; + case CON_QSTRCPY: + if (fta_quotes[i] != NULL && fta_quotes[j] != NULL) + Bstrcpy(fta_quotes[i],fta_quotes[j]); + else OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,i,j); + break; + case CON_CHANGESPRITESTAT: + changespritestat(i,j); + break; + case CON_CHANGESPRITESECT: + changespritesect(i,j); + break; } - else OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,i); - break; - case CON_QSTRCAT: - if (fta_quotes[i] != NULL && fta_quotes[j] != NULL) - Bstrncat(fta_quotes[i],fta_quotes[j],(MAXQUOTELEN-1)-Bstrlen(fta_quotes[i])); - else OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,i,j); - break; - case CON_QSTRCPY: - if (fta_quotes[i] != NULL && fta_quotes[j] != NULL) - Bstrcpy(fta_quotes[i],fta_quotes[j]); - else OSD_Printf("%s %d null quote %d %d\n",__FILE__,__LINE__,i,j); - break; - case CON_CHANGESPRITESTAT: - changespritestat(i,j); - break; - case CON_CHANGESPRITESECT: - changespritesect(i,j); break; } - break; - } case CON_STARTLEVEL: - insptr++; // skip command - { - // from 'level' cheat in game.c (about line 6250) - int volnume=GetGameVarID(*insptr++,g_i,g_p), levnume=GetGameVarID(*insptr++,g_i,g_p); - - if (volnume > MAXVOLUMES-1 || volnume < 0) + insptr++; // skip command { - OSD_Printf("parse():CON_STARTLEVEL: invalid volume (%d)\n",volnume); + // from 'level' cheat in game.c (about line 6250) + int volnume=GetGameVarID(*insptr++,g_i,g_p), levnume=GetGameVarID(*insptr++,g_i,g_p); + + if (volnume > MAXVOLUMES-1 || volnume < 0) + { + OSD_Printf("parse():CON_STARTLEVEL: invalid volume (%d)\n",volnume); + break; + } + + if (levnume > MAXLEVELS-1 || levnume < 0) + { + OSD_Printf("parse():CON_STARTLEVEL: invalid level (%d)\n",levnume); + break; + } + + ud.m_volume_number = ud.volume_number = volnume; + ud.m_level_number = ud.level_number = levnume; + if (numplayers > 1 && myconnectindex == connecthead) + mpchangemap(volnume,levnume); + else + { + ps[myconnectindex].gm |= MODE_EOL; + display_bonus_screen = 0; + } // MODE_RESTART; + break; } - if (levnume > MAXLEVELS-1 || levnume < 0) - { - OSD_Printf("parse():CON_STARTLEVEL: invalid level (%d)\n",levnume); - break; - } - - ud.m_volume_number = ud.volume_number = volnume; - ud.m_level_number = ud.level_number = levnume; - if (numplayers > 1 && myconnectindex == connecthead) - mpchangemap(volnume,levnume); - else - { - ps[myconnectindex].gm |= MODE_EOL; - display_bonus_screen = 0; - } // MODE_RESTART; - - break; - } - case CON_MYOSX: case CON_MYOSPALX: case CON_MYOS: @@ -4559,7 +4556,7 @@ static int parse(void) } case CON_INITTIMER: - insptr++; + insptr++; j = GetGameVarID(*insptr++, g_i, g_p); if (timer != j) { @@ -4576,35 +4573,35 @@ static int parse(void) case CON_ESPAWNVAR: case CON_EQSPAWNVAR: case CON_QSPAWNVAR: - insptr++; - { - int lIn=GetGameVarID(*insptr++, g_i, g_p); - j = -1; - if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS) - j = spawn(g_i, lIn); - switch (tw) + insptr++; { - case CON_EQSPAWNVAR: - if (j != -1) - insertspriteq(j); - case CON_ESPAWNVAR: - SetGameVarID(g_iReturnVarID, j, g_i, g_p); - break; - case CON_QSPAWNVAR: - if (j != -1) - insertspriteq(j); + int lIn=GetGameVarID(*insptr++, g_i, g_p); + j = -1; + if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS) + j = spawn(g_i, lIn); + switch (tw) + { + case CON_EQSPAWNVAR: + if (j != -1) + insertspriteq(j); + case CON_ESPAWNVAR: + SetGameVarID(g_iReturnVarID, j, g_i, g_p); + break; + case CON_QSPAWNVAR: + if (j != -1) + insertspriteq(j); + break; + } break; } - break; - } case CON_ESPAWN: case CON_EQSPAWN: case CON_QSPAWN: insptr++; - + j=-1; - + if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS) j = spawn(g_i,*insptr++); else insptr++; @@ -4628,7 +4625,7 @@ static int parse(void) case CON_EZSHOOT: case CON_ZSHOOT: insptr++; - + if (tw == CON_ZSHOOT || tw == CON_EZSHOOT) { hittype[g_i].temp_data[9] = GetGameVarID(*insptr++, g_i, g_p); @@ -4676,7 +4673,7 @@ static int parse(void) case CON_STOPSOUNDVAR: case CON_SOUNDONCEVAR: case CON_GLOBALSOUNDVAR: - insptr++; + insptr++; j=GetGameVarID(*insptr++, g_i, g_p); switch (tw) @@ -4727,14 +4724,46 @@ static int parse(void) break; } + case CON_SHOWVIEW: + insptr++; + { + int x=GetGameVarID(*insptr++,g_i,g_p); + int y=GetGameVarID(*insptr++,g_i,g_p); + int z=GetGameVarID(*insptr++,g_i,g_p); + int a=GetGameVarID(*insptr++,g_i,g_p); + int horiz=GetGameVarID(*insptr++,g_i,g_p); + int sect=GetGameVarID(*insptr++,g_i,g_p); + long x1=scale(GetGameVarID(*insptr++,g_i,g_p),xdim,320); + long y1=scale(GetGameVarID(*insptr++,g_i,g_p),ydim,200); + long x2=scale(GetGameVarID(*insptr++,g_i,g_p),xdim,320); + long y2=scale(GetGameVarID(*insptr++,g_i,g_p),ydim,200); + + if (x1 > x2) swaplong(&x1,&x2); + if (y1 > y2) swaplong(&y1,&y2); + +#if defined(USE_OPENGL) && defined(POLYMOST) + j = glprojectionhacks; + glprojectionhacks = 0; +#endif + setview(x1,y1,x2,y2); + drawrooms(x,y,z,a,horiz,sect); + display_mirror = 1; animatesprites(x,y,a,65536L); display_mirror = 0; + drawmasks(); + vscrn(); +#if defined(USE_OPENGL) && defined(POLYMOST) + glprojectionhacks = j; +#endif + break; + } + case CON_ROTATESPRITE: insptr++; { int x=GetGameVarID(*insptr++,g_i,g_p), y=GetGameVarID(*insptr++,g_i,g_p), z=GetGameVarID(*insptr++,g_i,g_p); int a=GetGameVarID(*insptr++,g_i,g_p), tilenum=GetGameVarID(*insptr++,g_i,g_p), shade=GetGameVarID(*insptr++,g_i,g_p); int pal=GetGameVarID(*insptr++,g_i,g_p), orientation=GetGameVarID(*insptr++,g_i,g_p); - int x1=GetGameVarID(*insptr++,g_i,g_p), y1=GetGameVarID(*insptr++,g_i,g_p); - int x2=GetGameVarID(*insptr++,g_i,g_p), y2=GetGameVarID(*insptr++,g_i,g_p); + long x1=GetGameVarID(*insptr++,g_i,g_p), y1=GetGameVarID(*insptr++,g_i,g_p); + long x2=GetGameVarID(*insptr++,g_i,g_p), y2=GetGameVarID(*insptr++,g_i,g_p); rotatesprite(x<<16,y<<16,z,a,tilenum,shade,pal,2|orientation,x1,y1,x2,y2); break; @@ -4957,30 +4986,30 @@ static int parse(void) break; case CON_DEBRIS: - insptr++; - { - int dnum = *insptr++; - - if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS) - for (j=(*insptr)-1;j>=0;j--) - { - if (g_sp->picnum == BLIMP && dnum == SCRAP1) - s = 0; - else s = (TRAND%3); - - l = EGS(g_sp->sectnum, - g_sp->x+(TRAND&255)-128,g_sp->y+(TRAND&255)-128,g_sp->z-(8<<8)-(TRAND&8191), - dnum+s,g_sp->shade,32+(TRAND&15),32+(TRAND&15), - TRAND&2047,(TRAND&127)+32, - -(TRAND&2047),g_i,5); - if (g_sp->picnum == BLIMP && dnum == SCRAP1) - sprite[l].yvel = weaponsandammosprites[j%14]; - else sprite[l].yvel = -1; - sprite[l].pal = g_sp->pal; - } insptr++; - } - break; + { + int dnum = *insptr++; + + if (g_sp->sectnum >= 0 && g_sp->sectnum < MAXSECTORS) + for (j=(*insptr)-1;j>=0;j--) + { + if (g_sp->picnum == BLIMP && dnum == SCRAP1) + s = 0; + else s = (TRAND%3); + + l = EGS(g_sp->sectnum, + g_sp->x+(TRAND&255)-128,g_sp->y+(TRAND&255)-128,g_sp->z-(8<<8)-(TRAND&8191), + dnum+s,g_sp->shade,32+(TRAND&15),32+(TRAND&15), + TRAND&2047,(TRAND&127)+32, + -(TRAND&2047),g_i,5); + if (g_sp->picnum == BLIMP && dnum == SCRAP1) + sprite[l].yvel = weaponsandammosprites[j%14]; + else sprite[l].yvel = -1; + sprite[l].pal = g_sp->pal; + } + insptr++; + } + break; case CON_COUNT: insptr++; @@ -5003,35 +5032,35 @@ static int parse(void) break; case CON_SAVE: - insptr++; - { - time_t curtime; + insptr++; + { + time_t curtime; - lastsavedpos = *insptr++; + lastsavedpos = *insptr++; + + if ((movesperpacket == 4 && connecthead != myconnectindex) || lastsavedpos > 9) + break; + + curtime = time(NULL); + Bstrcpy(tempbuf,asctime(localtime(&curtime))); + clearbuf(ud.savegame[lastsavedpos],sizeof(ud.savegame[lastsavedpos]),0); + Bsprintf(ud.savegame[lastsavedpos],"Auto"); + for (j=0;j<13;j++) + Bmemcpy(&ud.savegame[lastsavedpos][j+4],&tempbuf[j+3],sizeof(tempbuf[j+3])); + ud.savegame[lastsavedpos][j+4] = '\0'; + OSD_Printf("Saving to slot %d\n",lastsavedpos); + + KB_FlushKeyboardQueue(); + + screencapt = 1; + displayrooms(myconnectindex,65536); + screencapt = 0; + if (ud.multimode > 1) + saveplayer(-1-(lastsavedpos)); + else saveplayer(lastsavedpos); - if ((movesperpacket == 4 && connecthead != myconnectindex) || lastsavedpos > 9) break; - - curtime = time(NULL); - Bstrcpy(tempbuf,asctime(localtime(&curtime))); - clearbuf(ud.savegame[lastsavedpos],sizeof(ud.savegame[lastsavedpos]),0); - Bsprintf(ud.savegame[lastsavedpos],"Auto"); - for (j=0;j<13;j++) - Bmemcpy(&ud.savegame[lastsavedpos][j+4],&tempbuf[j+3],sizeof(tempbuf[j+3])); - ud.savegame[lastsavedpos][j+4] = '\0'; - OSD_Printf("Saving to slot %d\n",lastsavedpos); - - KB_FlushKeyboardQueue(); - - screencapt = 1; - displayrooms(myconnectindex,65536); - screencapt = 0; - if (ud.multimode > 1) - saveplayer(-1-(lastsavedpos)); - else saveplayer(lastsavedpos); - - break; - } + } case CON_QUAKE: insptr++; @@ -5394,431 +5423,429 @@ static int parse(void) break; case CON_QSPRINTF: - insptr++; - { - int dq = *insptr++, sq = *insptr++; - if (fta_quotes[sq] != NULL && fta_quotes[dq] != NULL) + insptr++; { - int var1 = GetGameVarID(*insptr++, g_i, g_p), var2 = GetGameVarID(*insptr++, g_i, g_p); - int var3 = GetGameVarID(*insptr++, g_i, g_p), var4 = GetGameVarID(*insptr++, g_i, g_p); - Bstrcpy(tempbuf,fta_quotes[sq]); - Bsprintf(fta_quotes[dq],tempbuf,var1,var2,var3,var4); + int dq = *insptr++, sq = *insptr++; + if (fta_quotes[sq] != NULL && fta_quotes[dq] != NULL) + { + int var1 = GetGameVarID(*insptr++, g_i, g_p), var2 = GetGameVarID(*insptr++, g_i, g_p); + int var3 = GetGameVarID(*insptr++, g_i, g_p), var4 = GetGameVarID(*insptr++, g_i, g_p); + Bstrcpy(tempbuf,fta_quotes[sq]); + Bsprintf(fta_quotes[dq],tempbuf,var1,var2,var3,var4); + break; + } + if (fta_quotes[sq] == NULL) OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,sq); + if (fta_quotes[dq] == NULL) OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,dq); + insptr += 5; break; } - if (fta_quotes[sq] == NULL) OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,sq); - if (fta_quotes[dq] == NULL) OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,dq); - insptr += 5; - break; - } case CON_ADDLOG: { insptr++; - Bsprintf(g_szBuf,"CONLOG: L=%ld",*insptr++); - AddLog(g_szBuf); + OSD_Printf("CONLOG: L=%ld\n",*insptr++); break; } case CON_ADDLOGVAR: - insptr++; - { - int m=1; - char szBuf[256]; - long l=*insptr++, lVarID = *insptr; - - if ((lVarID >= iGameVarCount) || lVarID < 0) + insptr++; { - if (*insptr==MAXGAMEVARS) // addlogvar for a constant? Har. - insptr++; - else if (*insptr&(MAXGAMEVARS<<1)) + int m=1; + char szBuf[256]; + long l=*insptr++, lVarID = *insptr; + + if ((lVarID >= iGameVarCount) || lVarID < 0) { - m = -1; - lVarID ^= (MAXGAMEVARS<<1); + if (*insptr==MAXGAMEVARS) // addlogvar for a constant? Har. + insptr++; + else if (*insptr&(MAXGAMEVARS<<1)) + { + m = -1; + lVarID ^= (MAXGAMEVARS<<1); + } + else + { + // invalid varID + insptr++; + OSD_Printf("CONLOGVAR: L=%ld INVALID VARIABLE\n",l); + break; // out of switch + } + } + Bsprintf(szBuf,"CONLOGVAR: L=%ld %s ",l, aGameVars[lVarID].szLabel); + strcpy(g_szBuf,szBuf); + + if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_READONLY) + { + Bsprintf(szBuf," (read-only)"); + strcat(g_szBuf,szBuf); + } + if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_PERPLAYER) + { + Bsprintf(szBuf," (Per Player. Player=%d)",g_p); + } + else if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_PERACTOR) + { + Bsprintf(szBuf," (Per Actor. Actor=%d)",g_i); } else { - // invalid varID - insptr++; - Bsprintf(g_szBuf,"CONLOGVAR: L=%ld INVALID VARIABLE",l); - AddLog(g_szBuf); - break; // out of switch + Bsprintf(szBuf," (Global)"); } + Bstrcat(g_szBuf,szBuf); + Bsprintf(szBuf," =%ld\n", GetGameVarID(lVarID, g_i, g_p)*m); + Bstrcat(g_szBuf,szBuf); + OSD_Printf(g_szBuf); + insptr++; + break; } - Bsprintf(szBuf,"CONLOGVAR: L=%ld %s ",l, aGameVars[lVarID].szLabel); - strcpy(g_szBuf,szBuf); - - if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_READONLY) - { - Bsprintf(szBuf," (read-only)"); - strcat(g_szBuf,szBuf); - } - if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_PERPLAYER) - { - Bsprintf(szBuf," (Per Player. Player=%d)",g_p); - } - else if (aGameVars[lVarID].dwFlags & GAMEVAR_FLAG_PERACTOR) - { - Bsprintf(szBuf," (Per Actor. Actor=%d)",g_i); - } - else - { - Bsprintf(szBuf," (Global)"); - } - strcat(g_szBuf,szBuf); - Bsprintf(szBuf," =%ld", GetGameVarID(lVarID, g_i, g_p)*m); - strcat(g_szBuf,szBuf); - AddLog(g_szBuf); - insptr++; - break; - } case CON_SETSECTOR: case CON_GETSECTOR: - insptr++; - { - // syntax [gs]etsector[].x - // - int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; - - DoSector(tw==CON_SETSECTOR, lVar1, lLabelID, lVar2); - break; - } + insptr++; + { + // syntax [gs]etsector[].x + // + int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; + + DoSector(tw==CON_SETSECTOR, lVar1, lLabelID, lVar2); + break; + } case CON_SQRT: - insptr++; - { - // syntax sqrt - int lInVarID=*insptr++, lOutVarID=*insptr++; - - SetGameVarID(lOutVarID, ksqrt(GetGameVarID(lInVarID, g_i, g_p)), g_i, g_p); - break; - } + insptr++; + { + // syntax sqrt + int lInVarID=*insptr++, lOutVarID=*insptr++; + + SetGameVarID(lOutVarID, ksqrt(GetGameVarID(lInVarID, g_i, g_p)), g_i, g_p); + break; + } case CON_FINDNEARACTOR: case CON_FINDNEARSPRITE: case CON_FINDNEARACTOR3D: case CON_FINDNEARSPRITE3D: - insptr++; - { - // syntax findnearactorvar - // gets the sprite ID of the nearest actor within max dist - // that is of into - // -1 for none found - // - int lType=*insptr++, lMaxDist=*insptr++, lVarID=*insptr++; - int lFound=-1, lTemp, j, k; - - for (k=0;k=0) + // syntax findnearactorvar + // gets the sprite ID of the nearest actor within max dist + // that is of into + // -1 for none found + // + int lType=*insptr++, lMaxDist=*insptr++, lVarID=*insptr++; + int lFound=-1, lTemp, j, k; + + for (k=0;k=0) { - if (tw==CON_FINDNEARACTOR3D || tw==CON_FINDNEARSPRITE3D) - lTemp=dist(&sprite[g_i], &sprite[j]); - else lTemp=ldist(&sprite[g_i], &sprite[j]); - if (lTemp < lMaxDist) + if (sprite[j].picnum == lType && j != g_i) { - lFound=j; - j = MAXSPRITES; - break; + if (tw==CON_FINDNEARACTOR3D || tw==CON_FINDNEARSPRITE3D) + lTemp=dist(&sprite[g_i], &sprite[j]); + else lTemp=ldist(&sprite[g_i], &sprite[j]); + if (lTemp < lMaxDist) + { + lFound=j; + j = MAXSPRITES; + break; + } } + j = nextspritestat[j]; } - j = nextspritestat[j]; + if ((tw==CON_FINDNEARACTOR||tw==CON_FINDNEARACTOR3D) || j == MAXSPRITES) + break; } - if ((tw==CON_FINDNEARACTOR||tw==CON_FINDNEARACTOR3D) || j == MAXSPRITES) - break; + SetGameVarID(lVarID, lFound, g_i, g_p); + break; } - SetGameVarID(lVarID, lFound, g_i, g_p); - break; - } case CON_FINDNEARACTORVAR: case CON_FINDNEARSPRITEVAR: case CON_FINDNEARACTOR3DVAR: case CON_FINDNEARSPRITE3DVAR: - insptr++; - { - // syntax findnearactorvar - // gets the sprite ID of the nearest actor within max dist - // that is of into - // -1 for none found - // - int lType=*insptr++, lMaxDist=GetGameVarID(*insptr++, g_i, g_p), lVarID=*insptr++; - int lFound=-1, lTemp, j, k; - - for (k=0;k=0) + // syntax findnearactorvar + // gets the sprite ID of the nearest actor within max dist + // that is of into + // -1 for none found + // + int lType=*insptr++, lMaxDist=GetGameVarID(*insptr++, g_i, g_p), lVarID=*insptr++; + int lFound=-1, lTemp, j, k; + + for (k=0;k=0) { - if (tw==CON_FINDNEARACTOR3DVAR || tw==CON_FINDNEARSPRITE3DVAR) - lTemp=dist(&sprite[g_i], &sprite[j]); - else lTemp=ldist(&sprite[g_i], &sprite[j]); - if (lTemp < lMaxDist) + if (sprite[j].picnum == lType && j != g_i) { - lFound=j; - j = MAXSPRITES; - break; + if (tw==CON_FINDNEARACTOR3DVAR || tw==CON_FINDNEARSPRITE3DVAR) + lTemp=dist(&sprite[g_i], &sprite[j]); + else lTemp=ldist(&sprite[g_i], &sprite[j]); + if (lTemp < lMaxDist) + { + lFound=j; + j = MAXSPRITES; + break; + } } + j = nextspritestat[j]; } - j = nextspritestat[j]; + if ((tw==CON_FINDNEARACTORVAR||tw==CON_FINDNEARACTOR3DVAR) || j == MAXSPRITES) + break; } - if ((tw==CON_FINDNEARACTORVAR||tw==CON_FINDNEARACTOR3DVAR) || j == MAXSPRITES) - break; + SetGameVarID(lVarID, lFound, g_i, g_p); + break; } - SetGameVarID(lVarID, lFound, g_i, g_p); - break; - } case CON_FINDNEARACTORZVAR: case CON_FINDNEARSPRITEZVAR: - insptr++; - { - // syntax findnearactorvar - // gets the sprite ID of the nearest actor within max dist - // that is of into - // -1 for none found - // - int lType=*insptr++, lMaxDist=GetGameVarID(*insptr++, g_i, g_p), lMaxZDist=GetGameVarID(*insptr++, g_i, g_p); - int lVarID=*insptr++, lFound=-1, lTemp, lTemp2, j, k; - - for (k=0;k=0) + // syntax findnearactorvar + // gets the sprite ID of the nearest actor within max dist + // that is of into + // -1 for none found + // + int lType=*insptr++, lMaxDist=GetGameVarID(*insptr++, g_i, g_p), lMaxZDist=GetGameVarID(*insptr++, g_i, g_p); + int lVarID=*insptr++, lFound=-1, lTemp, lTemp2, j, k; + + for (k=0;k=0) { - lTemp=ldist(&sprite[g_i], &sprite[j]); - if (lTemp < lMaxDist) + if (sprite[j].picnum == lType && j != g_i) { - lTemp2=klabs(sprite[g_i].z-sprite[j].z); - if (lTemp2 < lMaxZDist) + lTemp=ldist(&sprite[g_i], &sprite[j]); + if (lTemp < lMaxDist) { - lFound=j; - j = MAXSPRITES; - break; + lTemp2=klabs(sprite[g_i].z-sprite[j].z); + if (lTemp2 < lMaxZDist) + { + lFound=j; + j = MAXSPRITES; + break; + } } } + j = nextspritestat[j]; } - j = nextspritestat[j]; + if (tw==CON_FINDNEARACTORZVAR || j == MAXSPRITES) + break; } - if (tw==CON_FINDNEARACTORZVAR || j == MAXSPRITES) - break; - } - SetGameVarID(lVarID, lFound, g_i, g_p); + SetGameVarID(lVarID, lFound, g_i, g_p); - break; - } + break; + } case CON_FINDNEARACTORZ: case CON_FINDNEARSPRITEZ: - insptr++; - { - // syntax findnearactorvar - // gets the sprite ID of the nearest actor within max dist - // that is of into - // -1 for none found - // - int lType=*insptr++, lMaxDist=*insptr++, lMaxZDist=*insptr++, lVarID=*insptr++; - int lTemp, lTemp2, lFound=-1, j, k; - - for (k=0;k=0) + // syntax findnearactorvar + // gets the sprite ID of the nearest actor within max dist + // that is of into + // -1 for none found + // + int lType=*insptr++, lMaxDist=*insptr++, lMaxZDist=*insptr++, lVarID=*insptr++; + int lTemp, lTemp2, lFound=-1, j, k; + + for (k=0;k=0) { - lTemp=ldist(&sprite[g_i], &sprite[j]); - if (lTemp < lMaxDist) + if (sprite[j].picnum == lType && j != g_i) { - lTemp2=klabs(sprite[g_i].z-sprite[j].z); - if (lTemp2 < lMaxZDist) + lTemp=ldist(&sprite[g_i], &sprite[j]); + if (lTemp < lMaxDist) { - lFound=j; - j = MAXSPRITES; - break; + lTemp2=klabs(sprite[g_i].z-sprite[j].z); + if (lTemp2 < lMaxZDist) + { + lFound=j; + j = MAXSPRITES; + break; + } } } + j = nextspritestat[j]; } - j = nextspritestat[j]; + if (tw==CON_FINDNEARACTORZ || j == MAXSPRITES) + break; } - if (tw==CON_FINDNEARACTORZ || j == MAXSPRITES) - break; + SetGameVarID(lVarID, lFound, g_i, g_p); + break; } - SetGameVarID(lVarID, lFound, g_i, g_p); - break; - } case CON_FINDPLAYER: case CON_FINDOTHERPLAYER: - insptr++; - { - // syntax findnearactorvar - // gets the sprite ID of the nearest actor within max dist - // that is of into - // -1 for none found - // - long var1 = *insptr++, d; + insptr++; + { + // syntax findnearactorvar + // gets the sprite ID of the nearest actor within max dist + // that is of into + // -1 for none found + // + long var1 = *insptr++, d; - if (tw == CON_FINDPLAYER) j=findplayer(&sprite[g_i],&d); - else if (tw == CON_FINDOTHERPLAYER) j=findotherplayer(g_i,&d); + if (tw == CON_FINDPLAYER) j=findplayer(&sprite[g_i],&d); + else if (tw == CON_FINDOTHERPLAYER) j=findotherplayer(g_i,&d); - SetGameVarID(g_iReturnVarID, j, g_i, g_p); - SetGameVarID(var1, d, g_i, g_p); + SetGameVarID(g_iReturnVarID, j, g_i, g_p); + SetGameVarID(var1, d, g_i, g_p); - break; - } + break; + } case CON_SETPLAYER: case CON_GETPLAYER: - insptr++; - { - // syntax [gs]etplayer[].x - // - int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2; - // HACK: need to have access to labels structure at run-time... - - switch (lLabelID) + insptr++; { - case PLAYER_AMMO_AMOUNT: - case PLAYER_GOTWEAPON: - case PLAYER_PALS: - case PLAYER_LOOGIEX: - case PLAYER_LOOGIEY: - lParm2=GetGameVarID(*insptr++, g_i, g_p); - break; - default: - lParm2=0; + // syntax [gs]etplayer[].x + // + int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2; + // HACK: need to have access to labels structure at run-time... + + switch (lLabelID) + { + case PLAYER_AMMO_AMOUNT: + case PLAYER_GOTWEAPON: + case PLAYER_PALS: + case PLAYER_LOOGIEX: + case PLAYER_LOOGIEY: + lParm2=GetGameVarID(*insptr++, g_i, g_p); + break; + default: + lParm2=0; + break; + } + lVar2=*insptr++; + + DoPlayer(tw==CON_SETPLAYER, lVar1, lLabelID, lVar2, lParm2); break; } - lVar2=*insptr++; - - DoPlayer(tw==CON_SETPLAYER, lVar1, lLabelID, lVar2, lParm2); - break; - } case CON_SETINPUT: case CON_GETINPUT: - insptr++; - { - // syntax [gs]etplayer[].x - // - int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; + insptr++; + { + // syntax [gs]etplayer[].x + // + int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; - DoInput(tw==CON_SETINPUT, lVar1, lLabelID, lVar2); - break; - } + DoInput(tw==CON_SETINPUT, lVar1, lLabelID, lVar2); + break; + } case CON_GETUSERDEF: case CON_SETUSERDEF: - insptr++; - { - // syntax [gs]etuserdef.xxx - // - int lLabelID=*insptr++, lVar2=*insptr++; + insptr++; + { + // syntax [gs]etuserdef.xxx + // + int lLabelID=*insptr++, lVar2=*insptr++; - DoUserDef(tw==CON_SETUSERDEF, lLabelID, lVar2); - break; - } + DoUserDef(tw==CON_SETUSERDEF, lLabelID, lVar2); + break; + } case CON_GETPROJECTILE: case CON_SETPROJECTILE: - insptr++; - { - // syntax [gs]etplayer[].x - // - int lVar1=GetGameVarID(*insptr++, g_i, g_p), lLabelID=*insptr++, lVar2=*insptr++; - - DoProjectile(tw==CON_SETPROJECTILE,lVar1,lLabelID,lVar2); - break; - } + insptr++; + { + // syntax [gs]etplayer[].x + // + int lVar1=GetGameVarID(*insptr++, g_i, g_p), lLabelID=*insptr++, lVar2=*insptr++; + + DoProjectile(tw==CON_SETPROJECTILE,lVar1,lLabelID,lVar2); + break; + } case CON_SETWALL: case CON_GETWALL: - insptr++; - { - // syntax [gs]etwall[].x - // - int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; + insptr++; + { + // syntax [gs]etwall[].x + // + int lVar1=*insptr++, lLabelID=*insptr++, lVar2=*insptr++; - DoWall(tw==CON_SETWALL, lVar1, lLabelID, lVar2); - break; - } + DoWall(tw==CON_SETWALL, lVar1, lLabelID, lVar2); + break; + } case CON_SETACTORVAR: case CON_GETACTORVAR: - insptr++; - { - // syntax [gs]etactorvar[]. - // gets the value of the per-actor variable varx into VAR - // - int lSprite=GetGameVarID(*insptr++, g_i, g_p), lVar1=*insptr++, lVar2=*insptr++; - - if (tw == CON_SETACTORVAR) + insptr++; { - SetGameVarID(lVar1, GetGameVarID(lVar2, g_i, g_p), lSprite, g_p); + // syntax [gs]etactorvar[]. + // gets the value of the per-actor variable varx into VAR + // + int lSprite=GetGameVarID(*insptr++, g_i, g_p), lVar1=*insptr++, lVar2=*insptr++; + + if (tw == CON_SETACTORVAR) + { + SetGameVarID(lVar1, GetGameVarID(lVar2, g_i, g_p), lSprite, g_p); + break; + } + SetGameVarID(lVar2, GetGameVarID(lVar1, lSprite, g_p), g_i, g_p); break; } - SetGameVarID(lVar2, GetGameVarID(lVar1, lSprite, g_p), g_i, g_p); - break; - } case CON_SETPLAYERVAR: case CON_GETPLAYERVAR: - insptr++; - { - int iPlayer; - - if (*insptr != g_iThisActorID) - iPlayer=GetGameVarID(*insptr, g_i, g_p); - else iPlayer = g_p; - insptr++; { - int lVar1=*insptr++, lVar2=*insptr++; - - if (tw == CON_SETPLAYERVAR) + int iPlayer; + + if (*insptr != g_iThisActorID) + iPlayer=GetGameVarID(*insptr, g_i, g_p); + else iPlayer = g_p; + + insptr++; { - SetGameVarID(lVar1, GetGameVarID(lVar2, g_i, g_p), g_i, iPlayer); + int lVar1=*insptr++, lVar2=*insptr++; + + if (tw == CON_SETPLAYERVAR) + { + SetGameVarID(lVar1, GetGameVarID(lVar2, g_i, g_p), g_i, iPlayer); + break; + } + SetGameVarID(lVar2, GetGameVarID(lVar1, g_i, iPlayer), g_i, g_p); break; } - SetGameVarID(lVar2, GetGameVarID(lVar1, g_i, iPlayer), g_i, g_p); - break; } - } case CON_SETACTOR: case CON_GETACTOR: - insptr++; - { - // syntax [gs]etactor[].x - // - - int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2; - - switch (lLabelID) + insptr++; { - case ACTOR_HTG_T: - lParm2=GetGameVarID(*insptr++, g_i, g_p); - break; - default: - lParm2=0; + // syntax [gs]etactor[].x + // + + int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2; + + switch (lLabelID) + { + case ACTOR_HTG_T: + lParm2=GetGameVarID(*insptr++, g_i, g_p); + break; + default: + lParm2=0; + break; + } + lVar2=*insptr++; + + DoActor(tw==CON_SETACTOR, lVar1, lLabelID, lVar2, lParm2); break; } - lVar2=*insptr++; - - DoActor(tw==CON_SETACTOR, lVar1, lLabelID, lVar2, lParm2); - break; - } case CON_GETANGLETOTARGET: - insptr++; + insptr++; // hittype[g_i].lastvx and lastvy are last known location of target. SetGameVarID(*insptr++, getangle(hittype[g_i].lastvx-g_sp->x,hittype[g_i].lastvy-g_sp->y), g_i, g_p); break; @@ -5835,14 +5862,14 @@ static int parse(void) case CON_CHECKAVAILWEAPON: case CON_CHECKAVAILINVEN: - insptr++; + insptr++; j = g_p; if (*insptr != g_iThisActorID) j=GetGameVarID(*insptr, g_i, g_p); - + insptr++; - + if (j < MAXPLAYERS) { if (tw == CON_CHECKAVAILWEAPON) @@ -5880,19 +5907,19 @@ static int parse(void) break; case CON_RANDVAR: - insptr++; + insptr++; SetGameVarID(*insptr, mulscale(krand(), *(insptr+1)+1, 16), g_i, g_p); insptr += 2; break; case CON_DISPLAYRANDVAR: - insptr++; + insptr++; SetGameVarID(*insptr, mulscale(rand(), *(insptr+1)+1, 15), g_i, g_p); insptr += 2; break; case CON_MULVAR: - insptr++; + insptr++; SetGameVarID(*insptr, GetGameVarID(*insptr, g_i, g_p) * *(insptr+1), g_i, g_p); insptr += 2; break; @@ -5926,14 +5953,14 @@ static int parse(void) break; case CON_XORVAR: - insptr++; + insptr++; SetGameVarID(*insptr,GetGameVarID(*insptr, g_i, g_p) ^ *(insptr+1), g_i, g_p); insptr += 2; break; case CON_SETVARVAR: insptr++; - j=*insptr++; + j=*insptr++; SetGameVarID(j, GetGameVarID(*insptr++, g_i, g_p), g_i, g_p); break; @@ -5963,7 +5990,7 @@ static int parse(void) case CON_MULVARVAR: insptr++; - j=*insptr++; + j=*insptr++; SetGameVarID(j, GetGameVarID(j, g_i, g_p)*GetGameVarID(*insptr++, g_i, g_p), g_i, g_p); break; @@ -5972,30 +5999,30 @@ static int parse(void) j=*insptr++; { int l2=GetGameVarID(*insptr++, g_i, g_p); - + if (l2==0) gameexit("CON_DIVVARVAR: Divide by zero."); - + SetGameVarID(j, GetGameVarID(j, g_i, g_p)/l2 , g_i, g_p); break; } case CON_MODVARVAR: insptr++; - j=*insptr++; + j=*insptr++; { int l2=GetGameVarID(*insptr++, g_i, g_p); - + if (l2==0) gameexit("CON_MODVARVAR: Mod by zero."); - + SetGameVarID(j, GetGameVarID(j, g_i, g_p) % l2, g_i, g_p); break; } case CON_ANDVARVAR: insptr++; - j=*insptr++; + j=*insptr++; SetGameVarID(j, GetGameVarID(j, g_i, g_p) & GetGameVarID(*insptr++, g_i, g_p), g_i, g_p); break; @@ -6147,7 +6174,7 @@ static int parse(void) { insptr=savedinsptr; insptr++; - i=*insptr++; + i=*insptr++; j=0; if (GetGameVarID(i, g_i, g_p) != *insptr) @@ -6166,8 +6193,8 @@ static int parse(void) { insptr=savedinsptr; insptr++; - i=*insptr++; - k=*(insptr); + i=*insptr++; + k=*(insptr); j=0; if (GetGameVarID(i, g_i, g_p) != GetGameVarID(k, g_i, g_p)) @@ -6299,7 +6326,7 @@ static int parse(void) case CON_QUOTE: insptr++; - + if (fta_quotes[*insptr] == NULL) { OSD_Printf("%s %d null quote %d\n",__FILE__,__LINE__,*insptr); @@ -6317,7 +6344,7 @@ static int parse(void) insptr++; break; } - adduserquote(fta_quotes[*insptr++]); + adduserquote(fta_quotes[*insptr++]); break; case CON_IFINOUTERSPACE: @@ -6418,7 +6445,7 @@ void LoadActor(long iActor) deletesprite(g_i); return; } - + while (1) if (parse()) break; if (killit_flag == 1) diff --git a/polymer/eduke32/source/gamevars.c b/polymer/eduke32/source/gamevars.c index 20d73d8ae..30a4c8fff 100755 --- a/polymer/eduke32/source/gamevars.c +++ b/polymer/eduke32/source/gamevars.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -23,6 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "duke3d.h" #include "gamedef.h" +extern int g_i,g_p; + static void FreeGameVars(void) { // call this function as many times as needed. @@ -139,7 +143,7 @@ int ReadGameVars(long fil) if (kdfread(&l,sizeof(l),1,fil) != 1) goto corrupt; if (kdfread(g_szBuf,l,1,fil) != 1) goto corrupt; g_szBuf[l]=0; - AddLog(g_szBuf); + OSD_Printf("%s\n",g_szBuf); #if 0 { @@ -413,25 +417,25 @@ static int GetGameID(const char *szGameLabel) long GetGameVarID(int id, int iActor, int iPlayer) { int inv=0; - + if (id == g_iThisActorID) return iActor; - + if (id<0 || id >= iGameVarCount) { if (id==MAXGAMEVARS) return(*insptr++); - + if (!(id&(MAXGAMEVARS<<1))) { - AddLog("GetGameVarID: Invalid Game ID"); + OSD_Printf("GetGameVarID(): invalid gamevar ID (%d)\n",id); return -1; } - + inv=1; id ^= (MAXGAMEVARS<<1); } - + if (aGameVars[id].dwFlags & GAMEVAR_FLAG_PERPLAYER) { // for the current player @@ -439,34 +443,34 @@ long GetGameVarID(int id, int iActor, int iPlayer) { //Bsprintf(g_szBuf,"GetGameVarID(%d, %d, %d) returns %ld\n",id,iActor,iPlayer, aGameVars[id].plValues[iPlayer]); //AddLog(g_szBuf); - if (inv) return (-aGameVars[id].plValues[iPlayer]); + if (inv) return(-aGameVars[id].plValues[iPlayer]); return (aGameVars[id].plValues[iPlayer]); } - - if (inv) return (-aGameVars[id].lValue); + + if (inv) return(-aGameVars[id].lValue); return (aGameVars[id].lValue); } - + if (aGameVars[id].dwFlags & GAMEVAR_FLAG_PERACTOR) { // for the current actor if (iActor >= 0 && iActor <=MAXSPRITES) { - if (inv) return (-aGameVars[id].plValues[iActor]); + if (inv) return(-aGameVars[id].plValues[iActor]); return (aGameVars[id].plValues[iActor]); } - - if (inv) return (-aGameVars[id].lValue); + + if (inv) return(-aGameVars[id].lValue); return (aGameVars[id].lValue); } - + if (aGameVars[id].dwFlags & GAMEVAR_FLAG_PLONG) { - if (inv) return (-(*((long*)aGameVars[id].lValue))); + if (inv) return(-(*((long*)aGameVars[id].lValue))); return(*((long*)aGameVars[id].lValue)); } - - if (inv) return (-aGameVars[id].lValue); + + if (inv) return(-aGameVars[id].lValue); return (aGameVars[id].lValue); } @@ -474,25 +478,35 @@ void SetGameVarID(int id, long lValue, int iActor, int iPlayer) { if (id<0 || id >= iGameVarCount) { - AddLog("Invalid Game ID"); + OSD_Printf("SetGameVarID(): tried to set invalid gamevar ID (%d) from sprite %d (%d), player %d\n",id,g_i,sprite[g_i].picnum,g_p); return; } //Bsprintf(g_szBuf,"SGVI: %d ('%s') to %ld for %d %d",id,aGameVars[id].szLabel,lValue,iActor,iPlayer); //AddLog(g_szBuf); - if ((aGameVars[id].dwFlags & GAMEVAR_FLAG_PERPLAYER) && (iPlayer != -1)) + if (aGameVars[id].dwFlags & GAMEVAR_FLAG_PERPLAYER) { + if (iPlayer < 0 || iPlayer > MAXPLAYERS-1) + { + OSD_Printf("SetGameVarID(): invalid player (%d) for per-player gamevar %s from sprite %d (%d), player %d\n",iPlayer,aGameVars[id].szLabel,g_i,sprite[g_i].picnum,g_p); + return; + } // for the current player aGameVars[id].plValues[iPlayer]=lValue; return; } - - if ((aGameVars[id].dwFlags & GAMEVAR_FLAG_PERACTOR) && (iActor != -1)) + + if ((aGameVars[id].dwFlags & GAMEVAR_FLAG_PERACTOR)) { + if (iActor < 0 || iActor > MAXSPRITES-1) + { + OSD_Printf("SetGameVarID(): invalid sprite (%d) for per-actor gamevar %s from sprite %d (%d), player %d\n",iActor,aGameVars[id].szLabel,g_i,sprite[g_i].picnum,g_p); + return; + } // for the current actor aGameVars[id].plValues[iActor]=lValue; return; } - + if (aGameVars[id].dwFlags & GAMEVAR_FLAG_PLONG) { // set the value at pointer @@ -532,7 +546,7 @@ static long *GetGameValuePtr(const char *szGameLabel) { if (!aGameVars[i].plValues) { - AddLog("INTERNAL ERROR: NULL array !!!"); + OSD_Printf("GetGameValuePtr(): INTERNAL ERROR: NULL array !!!\n"); } return aGameVars[i].plValues; } @@ -609,7 +623,7 @@ void ResetSystemDefaults(void) // for(i=0;i 8192 || WHEELDOWN) { @@ -134,7 +135,6 @@ static int probe_(int type,int x,int y,int i,int n) MOUSE_ClearButton(WHEELDOWN_MOUSE); sound(KICK_HIT); probey++; - minfo.dz = 0; } } diff --git a/polymer/eduke32/source/misc/gameres.rc b/polymer/eduke32/source/misc/gameres.rc index 34d13fcec..94e79b487 100644 --- a/polymer/eduke32/source/misc/gameres.rc +++ b/polymer/eduke32/source/misc/gameres.rc @@ -29,16 +29,17 @@ BEGIN #ifdef JFAUD CONTROL "S&ound driver:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 5, 28, 50, 8 CONTROL "", IDCSOUNDDRV, "COMBOBOX", CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 60, 26, 110, 56 -#else - CONTROL "S&ound driver:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_DISABLED | WS_VISIBLE, 5, 28, 50, 8 - CONTROL "", IDCSOUNDDRV, "COMBOBOX", CBS_DROPDOWNLIST | WS_CHILD | WS_DISABLED | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 60, 26, 110, 56 -#endif CONTROL "&MIDI device:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_DISABLED | WS_VISIBLE, 5, 44, 50, 8 CONTROL "", IDCMIDIDEV, "COMBOBOX", CBS_DROPDOWNLIST | WS_CHILD | WS_DISABLED | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 60, 42, 110, 56 - CONTROL "Input devices:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 5, 80, 50, 8 CONTROL "Mo&use", IDCINPUTMOUSE, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 60, 80, 49, 8 CONTROL "&Joystick", IDCINPUTJOY, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 110, 80, 49, 8 +#else + CONTROL "Input devices:", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE, 5, 28, 50, 8 + CONTROL "Mo&use", IDCINPUTMOUSE, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 60, 28, 49, 8 + CONTROL "&Joystick", IDCINPUTJOY, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 110, 28, 49, 8 +#endif + CONTROL "&Always show configuration on start", IDCALWAYSSHOW, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 116, 140, 8 END diff --git a/polymer/eduke32/source/names.h b/polymer/eduke32/source/names.h index aa4803f84..76ef2c99d 100644 --- a/polymer/eduke32/source/names.h +++ b/polymer/eduke32/source/names.h @@ -1,28 +1,26 @@ -//------------------------------------------------------------------------- -/* -Copyright (C) 1996, 2003 - 3D Realms Entertainment -Copyright (C) 2004, 2005 - Richard Gobeille (EDuke32 functionality) - -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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -*/ -//------------------------------------------------------------------------- +//------------------------------------------------------------------------- +/* +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. +*/ +//------------------------------------------------------------------------- #define SECTOREFFECTOR 1 #define ACTIVATOR 2 diff --git a/polymer/eduke32/source/namesdyn.c b/polymer/eduke32/source/namesdyn.c index d934ece3a..e6f40b97c 100644 --- a/polymer/eduke32/source/namesdyn.c +++ b/polymer/eduke32/source/namesdyn.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/namesdyn.h b/polymer/eduke32/source/namesdyn.h index 793053e26..d523efabe 100644 --- a/polymer/eduke32/source/namesdyn.h +++ b/polymer/eduke32/source/namesdyn.h @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -17,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index 19fb2989b..1c5870075 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -1,5 +1,9 @@ //------------------------------------------------------------------------- /* +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 @@ -664,7 +668,7 @@ cvar[] = { "snd_numvoices", "snd_numvoices: the number of concurrent sounds", (void*)&NumVoices, CVAR_INT, 0, 0, 32 }, { "snd_reversestereo", "snd_reversestereo: reverses the stereo channels", (void*)&ReverseStereo, CVAR_BOOL, 0, 0, 16 }, }; - + static int osdcmd_cvar_set(const osdfuncparm_t *parm) { int showval = (parm->numparms == 0); diff --git a/polymer/eduke32/source/player.c b/polymer/eduke32/source/player.c index 34f3bb80e..9c41c9111 100644 --- a/polymer/eduke32/source/player.c +++ b/polymer/eduke32/source/player.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 @@ -2659,7 +2661,8 @@ void getinput(int snum) if ((p->gm&MODE_MENU) || (p->gm&MODE_TYPE) || (ud.pause_on && !KB_KeyPressed(sc_Pause)) || (numplayers > 1 && totalclock < 10)) // HACK: kill getinput() for the first 10 tics of a new map in multi { - CONTROL_GetInput(&info); + if (!(p->gm&MODE_MENU)) + CONTROL_GetInput(&info); memset(&lastinfo, 0, sizeof(lastinfo)); loc.fvel = vel = 0; loc.svel = svel = 0; diff --git a/polymer/eduke32/source/premap.c b/polymer/eduke32/source/premap.c index 55cc0c61f..1120be8be 100644 --- a/polymer/eduke32/source/premap.c +++ b/polymer/eduke32/source/premap.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/rts.c b/polymer/eduke32/source/rts.c index 7427bc80c..97b7c802b 100644 --- a/polymer/eduke32/source/rts.c +++ b/polymer/eduke32/source/rts.c @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/rts.h b/polymer/eduke32/source/rts.h index f55ef83f7..7f320f0b4 100644 --- a/polymer/eduke32/source/rts.h +++ b/polymer/eduke32/source/rts.h @@ -1,13 +1,14 @@ //------------------------------------------------------------------------- /* 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 Duke Nukem 3D version 1.5 - Atomic Edition +This file is part of EDuke32 -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +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 @@ -18,10 +19,6 @@ 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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) */ //------------------------------------------------------------------------- diff --git a/polymer/eduke32/source/savegame.c b/polymer/eduke32/source/savegame.c index 8163122b7..1e2bce2f9 100644 --- a/polymer/eduke32/source/savegame.c +++ b/polymer/eduke32/source/savegame.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/sector.c b/polymer/eduke32/source/sector.c index 4860543d8..cdfc0332c 100644 --- a/polymer/eduke32/source/sector.c +++ b/polymer/eduke32/source/sector.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/soundefs.h b/polymer/eduke32/source/soundefs.h index 806e7050e..102d8fac3 100644 --- a/polymer/eduke32/source/soundefs.h +++ b/polymer/eduke32/source/soundefs.h @@ -1,24 +1,26 @@ -//------------------------------------------------------------------------- -/* -Copyright (C) 2005 - EDuke32 team - -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. -*/ -//------------------------------------------------------------------------- +//------------------------------------------------------------------------- +/* +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. +*/ +//------------------------------------------------------------------------- #define KICK_HIT 0 #define PISTOL_RICOCHET 1 diff --git a/polymer/eduke32/source/sounds.c b/polymer/eduke32/source/sounds.c index 397b88323..033568920 100644 --- a/polymer/eduke32/source/sounds.c +++ b/polymer/eduke32/source/sounds.c @@ -1,6 +1,8 @@ //------------------------------------------------------------------------- /* -Copyright (C) 2005 - EDuke32 team +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 diff --git a/polymer/eduke32/source/sounds.h b/polymer/eduke32/source/sounds.h index 25a989b87..ffe43a2a9 100644 --- a/polymer/eduke32/source/sounds.h +++ b/polymer/eduke32/source/sounds.h @@ -1,29 +1,26 @@ -//------------------------------------------------------------------------- -/* -Copyright (C) 1996, 2003 - 3D Realms Entertainment - -This file is part of Duke Nukem 3D version 1.5 - Atomic Edition - -Duke Nukem 3D is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -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. - -Original Source: 1996 - Todd Replogle -Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms -Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com) -*/ -//------------------------------------------------------------------------- +//------------------------------------------------------------------------- +/* +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. +*/ +//------------------------------------------------------------------------- //**************************************************************************** //