2020-05-16 08:13:39 +00:00
//-------------------------------------------------------------------------
/*
Copyright ( C ) 1996 , 2003 - 3 D Realms Entertainment
Copyright ( C ) 2000 , 2003 - Matt Saettler ( EDuke Enhancements )
2020-06-28 07:03:31 +00:00
Copyright ( C ) 2020 - Christoph Oelckers
2020-05-16 08:13:39 +00:00
This file is part of Enhanced Duke Nukem 3 D version 1.5 - Atomic Edition
Duke Nukem 3 D 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 , 3 D 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"
2020-07-03 21:56:14 +00:00
# include "names_d.h"
2020-05-16 08:13:39 +00:00
BEGIN_DUKE_NS
void initactorflags_d ( )
{
2020-11-29 12:54:58 +00:00
gs . actorinfo [ COMMANDER ] . gutsoffset = - ( 24 < < 8 ) ;
2020-10-21 22:05:08 +00:00
2020-11-29 12:54:58 +00:00
for ( auto & fa : gs . actorinfo )
2020-10-22 16:51:20 +00:00
{
fa . falladjustz = 24 < < 8 ;
}
2020-11-29 12:54:58 +00:00
gs . actorinfo [ OCTABRAIN ] . falladjustz = gs . actorinfo [ COMMANDER ] . falladjustz = gs . actorinfo [ DRONE ] . falladjustz = 0 ;
2020-10-22 16:51:20 +00:00
2020-05-16 08:13:39 +00:00
setflag ( SFLAG_INTERNAL_BADGUY , {
2020-07-20 21:21:27 +00:00
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 ,
2020-05-16 08:13:39 +00:00
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 } ) ;
2021-05-29 11:12:50 +00:00
setflag ( SFLAG_BOSS , { BOSS1 , BOSS2 , BOSS3 , BOSS4 , BOSS4STAYPUT , BOSS1STAYPUT } ) ;
if ( isWorldTour ( ) ) setflag ( SFLAG_BOSS , { BOSS2STAYPUT , BOSS3STAYPUT , BOSS5 , BOSS5STAYPUT } ) ;
2020-05-16 08:13:39 +00:00
setflag ( SFLAG_NOWATERDIP , { OCTABRAIN , COMMANDER , DRONE } ) ;
setflag ( SFLAG_GREENSLIMEFOOD , { LIZTROOP , LIZMAN , PIGCOP , NEWBEAST } ) ;
if ( isWorldTour ( ) )
{
2020-08-15 08:25:30 +00:00
setflag ( SFLAG_INTERNAL_BADGUY , { FIREFLY } ) ;
2020-09-07 19:38:17 +00:00
setflag ( SFLAG_INTERNAL_BADGUY | SFLAG_NODAMAGEPUSH | SFLAG_BOSS , { BOSS5 } ) ;
2020-05-16 08:13:39 +00:00
}
2020-05-16 08:46:39 +00:00
settileflag ( TFLAG_WALLSWITCH , {
2020-07-20 21:21:27 +00:00
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 ,
2020-05-16 08:46:39 +00:00
DIPSWITCH3 + 1 } ) ;
2020-05-16 10:47:01 +00:00
2020-07-20 21:21:27 +00:00
setflag ( SFLAG_INVENTORY , {
FIRSTAID ,
STEROIDS ,
HEATSENSOR ,
BOOTS ,
JETPACK ,
HOLODUKE ,
AIRTANK } ) ;
2020-05-16 10:47:01 +00:00
2020-07-20 21:21:27 +00:00
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 } ) ;
2020-05-16 21:55:21 +00:00
2020-07-20 21:21:27 +00:00
setflag ( SFLAG_SHRINKAUTOAIM , {
GREENSLIME ,
GREENSLIME + 1 ,
GREENSLIME + 2 ,
GREENSLIME + 3 ,
GREENSLIME + 4 ,
GREENSLIME + 5 ,
GREENSLIME + 6 ,
GREENSLIME + 7 ,
} ) ;
2020-05-16 21:55:21 +00:00
2021-12-29 22:38:53 +00:00
setflag ( SFLAG_HITRADIUSCHECK , {
PODFEM1 ,
FEM1 ,
FEM2 ,
FEM3 ,
FEM4 ,
FEM5 ,
FEM6 ,
FEM7 ,
FEM8 ,
FEM9 ,
FEM10 ,
STATUE ,
STATUEFLASH ,
SPACEMARINE ,
QUEBALL ,
STRIPEBALL
} ) ;
2020-11-29 12:54:58 +00:00
gs . actorinfo [ ORGANTIC ] . aimoffset = 32 < < 8 ;
gs . actorinfo [ ROTATEGUN ] . aimoffset = 32 < < 8 ;
2020-05-21 10:20:44 +00:00
2020-11-29 12:54:58 +00:00
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 ;
2020-05-21 10:20:44 +00:00
2020-07-20 21:21:27 +00:00
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 ;
2020-08-01 12:19:37 +00:00
TILE_FIRE = FIRE ;
2020-07-20 21:21:27 +00:00
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 ;
2020-07-27 18:53:31 +00:00
TILE_EGG = EGG ;
2020-07-03 21:56:14 +00:00
2020-05-16 08:46:39 +00:00
}
2020-05-16 08:13:39 +00:00
END_DUKE_NS