//------------------------------------------------------------------------- /* Copyright (C) 1996, 2003 - 3D Realms Entertainment Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements) Copyright (C) 2020 - Christoph Oelckers This file is part of Enhanced 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 EDuke enhancements integrated: 04/13/2003 - Matt Saettler Note: EDuke source was in transition. Changes are in-progress in the source as it is released. */ //------------------------------------------------------------------------- #include "ns.h" #include "global.h" #include "names_d.h" BEGIN_DUKE_NS void initactorflags_d() { gs.actorinfo[COMMANDER].gutsoffset = -(24 << 8); for (auto &fa : gs.actorinfo) { fa.falladjustz = 24 << 8; } gs.actorinfo[OCTABRAIN].falladjustz = gs.actorinfo[COMMANDER].falladjustz = gs.actorinfo[DRONE].falladjustz = 0; setflag(SFLAG_INTERNAL_BADGUY, { SHARK, RECON, DRONE, LIZTROOPONTOILET, LIZTROOPJUSTSIT, LIZTROOPSTAYPUT, LIZTROOPSHOOT, LIZTROOPJETPACK, LIZTROOPDUCKING, LIZTROOPRUNNING, LIZTROOP, OCTABRAIN, COMMANDER, COMMANDERSTAYPUT, PIGCOP, EGG, PIGCOPSTAYPUT, PIGCOPDIVE, LIZMAN, LIZMANSPITTING, LIZMANFEEDING, LIZMANJUMP, ORGANTIC, BOSS1, BOSS2, BOSS3, BOSS4, GREENSLIME, GREENSLIME+1, GREENSLIME+2, GREENSLIME+3, GREENSLIME+4, GREENSLIME+5, GREENSLIME+6, GREENSLIME+7, RAT, ROTATEGUN }); // Some flags taken from RedNukem's init code. This is a good start as any to reduce the insane dependency on tile numbers for making decisions in the play code. A lot more will be added here later. setflag(SFLAG_NODAMAGEPUSH, { TANK, BOSS1, BOSS2, BOSS3, BOSS4, RECON, ROTATEGUN }); setflag(SFLAG_BOSS, { BOSS1, BOSS2, BOSS3, BOSS4, BOSS4STAYPUT, BOSS1STAYPUT }); if (isWorldTour()) setflag(SFLAG_BOSS, { BOSS2STAYPUT, BOSS3STAYPUT, BOSS5, BOSS5STAYPUT }); setflag(SFLAG_NOWATERDIP, { OCTABRAIN, COMMANDER, DRONE }); setflag(SFLAG_GREENSLIMEFOOD, { LIZTROOP, LIZMAN, PIGCOP, NEWBEAST }); if (isWorldTour()) { setflag(SFLAG_INTERNAL_BADGUY, { FIREFLY }); setflag(SFLAG_INTERNAL_BADGUY|SFLAG_NODAMAGEPUSH|SFLAG_BOSS, { BOSS5 }); } settileflag(TFLAG_WALLSWITCH, { HANDPRINTSWITCH, HANDPRINTSWITCH+1, ALIENSWITCH, ALIENSWITCH+1, MULTISWITCH, MULTISWITCH+1, MULTISWITCH+2, MULTISWITCH+3, ACCESSSWITCH, ACCESSSWITCH2, PULLSWITCH, PULLSWITCH+1, HANDSWITCH, HANDSWITCH+1, SLOTDOOR, SLOTDOOR+1, LIGHTSWITCH, LIGHTSWITCH+1, SPACELIGHTSWITCH, SPACELIGHTSWITCH+1, SPACEDOORSWITCH, SPACEDOORSWITCH+1, FRANKENSTINESWITCH, FRANKENSTINESWITCH+1, LIGHTSWITCH2, LIGHTSWITCH2+1, POWERSWITCH1, POWERSWITCH1+1, LOCKSWITCH1, LOCKSWITCH1+1, POWERSWITCH2, POWERSWITCH2+1, DIPSWITCH, DIPSWITCH+1, DIPSWITCH2, DIPSWITCH2+1, TECHSWITCH, TECHSWITCH+1, DIPSWITCH3, DIPSWITCH3+1}); setflag(SFLAG_INVENTORY, { FIRSTAID, STEROIDS, HEATSENSOR, BOOTS, JETPACK, HOLODUKE, AIRTANK }); setflag(SFLAG_ADULT, { FEM1, FEM2, FEM3, FEM4, FEM5, FEM6, FEM7, FEM8, FEM9, FEM10, MAN, MAN2, WOMAN, NAKED1, PODFEM1, FEMMAG1, FEMMAG2, FEMPIC1, FEMPIC2, FEMPIC3, FEMPIC4, FEMPIC5, FEMPIC6, FEMPIC7, BLOODYPOLE, FEM6PAD, STATUE, STATUEFLASH, OOZ, OOZ2, WALLBLOOD1, WALLBLOOD2, WALLBLOOD3, WALLBLOOD4, WALLBLOOD5, WALLBLOOD7, WALLBLOOD8, SUSHIPLATE1, SUSHIPLATE2, SUSHIPLATE3, SUSHIPLATE4, FETUS, FETUSJIB, FETUSBROKE, HOTMEAT, FOODOBJECT16, DOLPHIN1, DOLPHIN2, TOUGHGAL, TAMPON, XXXSTACY, 4946, 4947, 693, 2254, 4560, 4561, 4562, 4498, 4957 }); setflag(SFLAG_SHRINKAUTOAIM, { GREENSLIME, GREENSLIME + 1, GREENSLIME + 2, GREENSLIME + 3, GREENSLIME + 4, GREENSLIME + 5, GREENSLIME + 6, GREENSLIME + 7, }); gs.actorinfo[ORGANTIC].aimoffset = 32 << 8; gs.actorinfo[ROTATEGUN].aimoffset = 32 << 8; gs.weaponsandammosprites[0] = RPGSPRITE; gs.weaponsandammosprites[1] = CHAINGUNSPRITE; gs.weaponsandammosprites[2] = DEVISTATORAMMO; gs.weaponsandammosprites[3] = RPGAMMO; gs.weaponsandammosprites[4] = RPGAMMO; gs.weaponsandammosprites[5] = JETPACK; gs.weaponsandammosprites[6] = SHIELD; gs.weaponsandammosprites[7] = FIRSTAID; gs.weaponsandammosprites[8] = STEROIDS; gs.weaponsandammosprites[9] = RPGAMMO; gs.weaponsandammosprites[10] = RPGAMMO; gs.weaponsandammosprites[11] = RPGSPRITE; gs.weaponsandammosprites[12] = RPGAMMO; gs.weaponsandammosprites[13] = FREEZESPRITE; gs.weaponsandammosprites[14] = FREEZEAMMO; TILE_BOX = BOX; TILE_TREE1 = TREE1; TILE_TREE2 = TREE2; TILE_TIRE = TIRE; TILE_CONE = CONE; TILE_W_FORCEFIELD = W_FORCEFIELD; TILE_CAMERA1 = CAMERA1; TILE_SCRAP6 = SCRAP6; TILE_APLAYER = APLAYER; TILE_DRONE = DRONE; TILE_MENUSCREEN = MENUSCREEN; TILE_SCREENBORDER = BIGHOLE; TILE_VIEWBORDER = VIEWBORDER; TILE_LASERLINE = LASERLINE; TILE_APLAYERTOP = APLAYERTOP; TILE_CAMCORNER = CAMCORNER; TILE_CAMLIGHT = CAMLIGHT; TILE_STATIC = STATIC; TILE_BOTTOMSTATUSBAR = isWorldTour()? WIDESCREENSTATUSBAR : BOTTOMSTATUSBAR; TILE_ATOMICHEALTH = ATOMICHEALTH; TILE_FLOORSLIME = FLOORSLIME; TILE_JIBS6 = JIBS6; TILE_FIRE = FIRE; TILE_WATERBUBBLE = WATERBUBBLE; TILE_SMALLSMOKE = SMALLSMOKE; TILE_BLOODPOOL = BLOODPOOL; TILE_FOOTPRINTS = FOOTPRINTS; TILE_FOOTPRINTS2 = FOOTPRINTS2; TILE_FOOTPRINTS3 = FOOTPRINTS3; TILE_FOOTPRINTS4 = FOOTPRINTS4; TILE_CLOUDYSKIES = CLOUDYSKIES; TILE_ARROW = ARROW; TILE_ACCESSSWITCH = ACCESSSWITCH; TILE_ACCESSSWITCH2 = ACCESSSWITCH2; TILE_GLASSPIECES = GLASSPIECES; TILE_BETAVERSION = BETAVERSION; TILE_MIRROR = MIRROR; TILE_CLOUDYOCEAN = CLOUDYOCEAN; TILE_MOONSKY1 = MOONSKY1; TILE_LA = LA; TILE_LOADSCREEN = LOADSCREEN; TILE_CROSSHAIR = CROSSHAIR; TILE_BIGORBIT1 = BIGORBIT1; TILE_HURTRAIL = HURTRAIL; TILE_FLOORPLASMA = FLOORPLASMA; TILE_EGG = EGG; } END_DUKE_NS