diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index c0d0a5e4a..2a54de8e5 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -54,21 +54,6 @@ void check_fta_sounds_d(DDukeActor* actor) { if (actor->spr.extra > 0) switch (actor->spr.picnum) { - case DTILE_LIZTROOPONTOILET: - case DTILE_LIZTROOPJUSTSIT: - case DTILE_LIZTROOPSHOOT: - case DTILE_LIZTROOPJETPACK: - case DTILE_LIZTROOPDUCKING: - case DTILE_LIZTROOPRUNNING: - case DTILE_LIZTROOP: - S_PlayActorSound(PRED_RECOG, actor); - break; - case DTILE_LIZMAN: - case DTILE_LIZMANSPITTING: - case DTILE_LIZMANFEEDING: - case DTILE_LIZMANJUMP: - S_PlayActorSound(CAPT_RECOG, actor); - break; case DTILE_RECON: S_PlayActorSound(RECO_RECOG, actor); break; diff --git a/source/games/duke/src/spawn.cpp b/source/games/duke/src/spawn.cpp index 3685d8305..7a06e5afd 100644 --- a/source/games/duke/src/spawn.cpp +++ b/source/games/duke/src/spawn.cpp @@ -306,6 +306,7 @@ bool commonEnemySetup(DDukeActor* self, DDukeActor* owner) if (actorflag(self, SFLAG_INTERNAL_BADGUY)) { self->spr.scale = DVector2(0.625, 0.625); + self->clipdist = 20; } else if (self->spr.scale.X == 0 || self->spr.scale.Y == 0) { diff --git a/source/games/duke/src/spawn_d.cpp b/source/games/duke/src/spawn_d.cpp index 08b79b181..1b89e4493 100644 --- a/source/games/duke/src/spawn_d.cpp +++ b/source/games/duke/src/spawn_d.cpp @@ -237,46 +237,16 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* ChangeActorStat(act, STAT_STANDABLE); break; case DTILE_OCTABRAINSTAYPUT: - case DTILE_LIZTROOPSTAYPUT: - case DTILE_LIZMANSTAYPUT: case DTILE_COMMANDERSTAYPUT: act->actorstayput = act->sector(); [[fallthrough]]; case DTILE_ROTATEGUN: case DTILE_DRONE: - case DTILE_LIZTROOPONTOILET: - case DTILE_LIZTROOPJUSTSIT: - case DTILE_LIZTROOPSHOOT: - case DTILE_LIZTROOPJETPACK: - case DTILE_LIZTROOPDUCKING: - case DTILE_LIZTROOPRUNNING: - case DTILE_LIZTROOP: case DTILE_OCTABRAIN: case DTILE_COMMANDER: - case DTILE_LIZMAN: - case DTILE_LIZMANSPITTING: - case DTILE_LIZMANFEEDING: - case DTILE_LIZMANJUMP: case DTILE_ORGANTIC: case DTILE_SHARK: - if (act->spr.pal == 0) - { - switch (act->spr.picnum) - { - case DTILE_LIZTROOPONTOILET: - case DTILE_LIZTROOPSHOOT: - case DTILE_LIZTROOPJETPACK: - case DTILE_LIZTROOPDUCKING: - case DTILE_LIZTROOPRUNNING: - case DTILE_LIZTROOPSTAYPUT: - case DTILE_LIZTROOPJUSTSIT: - case DTILE_LIZTROOP: - act->spr.pal = 22; - break; - } - } - if (act->spr.picnum != DTILE_SHARK) { act->spr.scale = DVector2(0.625, 0.625); diff --git a/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses b/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses index 5e14cbbc1..bd52a0f62 100644 --- a/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses +++ b/wadsrc/static/filter/dukelike/rmapinfo.spawnclasses @@ -281,4 +281,17 @@ spawnclasses 4740 = DukeBoss4 4741 = DukeBoss4Stayput + 2120 = DukeLizMan + 2121 = DukeLizManStayput + 2150 = DukeLizManSpitting + 2160 = DukeLizManFeeding + 2165 = DukeLizManJump + 1680 = DukeLiztrooper + 1681 = DukeLiztrooperRunning + 1682 = DukeLiztrooperStayput + 1715 = DukeLiztrooperShoot + 1725 = DukeLiztrooperJetpack + 1741 = DukeLiztrooperToilet + 1742 = DukeLiztrooperSitting + 1744 = DukeLiztrooperDucking } diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt index 41e374f33..a1e6d486a 100644 --- a/wadsrc/static/zscript.txt +++ b/wadsrc/static/zscript.txt @@ -114,6 +114,8 @@ version "4.10" #include "zscript/games/duke/actors/sixpak.zs" #include "zscript/games/duke/actors/atomichealth.zs" #include "zscript/games/duke/actors/pigcop.zs" +#include "zscript/games/duke/actors/liztroop.zs" +#include "zscript/games/duke/actors/lizman.zs" #include "zscript/games/duke/actors/boss1.zs" #include "zscript/games/duke/actors/boss2.zs" #include "zscript/games/duke/actors/boss3.zs" diff --git a/wadsrc/static/zscript/games/duke/actors/lizman.zs b/wadsrc/static/zscript/games/duke/actors/lizman.zs new file mode 100644 index 000000000..1f81a873d --- /dev/null +++ b/wadsrc/static/zscript/games/duke/actors/lizman.zs @@ -0,0 +1,57 @@ + +class DukeLizMan : DukeActor +{ + default + { + pic "LIZMAN"; + } + + override void PlayFTASound() + { + self.PlayActorSound("CAPT_RECOG"); + } +} + +class DukeLizManSpitting : DukeLizMan +{ + default + { + pic "LIZMANSPITTING"; + } +} + +class DukeLizManFeeding : DukeLizMan +{ + default + { + pic "LIZMANFEEDING"; + } +} + +class DukeLizManJump : DukeLizMan +{ + default + { + pic "LIZMANJUMP"; + } +} + +class DukeLizManStayput : DukeLizMan +{ + default + { + pic "LIZMANSTAYPUT"; + } + + override void PlayFTASound() + { + } + + override void initialize() + { + super.initialize(); + self.actorstayput = self.sector; // make this a flag once everything has been exported. + } + +} + diff --git a/wadsrc/static/zscript/games/duke/actors/liztroop.zs b/wadsrc/static/zscript/games/duke/actors/liztroop.zs new file mode 100644 index 000000000..8f9489c7f --- /dev/null +++ b/wadsrc/static/zscript/games/duke/actors/liztroop.zs @@ -0,0 +1,86 @@ + +class DukeLizTrooper : DukeActor +{ + default + { + pic "LIZTROOP"; + } + + override void Initialize() + { + Super.Initialize(); + if (pal == 0) pal = 22; + } + + override void PlayFTASound() + { + self.PlayActorSound("PRED_RECOG"); + } +} + +class DukeLizTrooperToilet : DukeLizTrooper +{ + default + { + pic "LIZTROOPONTOILET"; + } +} + +class DukeLizTrooperSitting : DukeLizTrooper +{ + default + { + pic "LIZTROOPJUSTSIT"; + } +} + +class DukeLizTrooperShoot : DukeLizTrooper +{ + default + { + pic "LIZTROOPSHOOT"; + } +} + +class DukeLizTrooperJetpack : DukeLizTrooper +{ + default + { + pic "LIZTROOPJETPACK"; + } +} + +class DukeLizTrooperDucking : DukeLizTrooper +{ + default + { + pic "LIZTROOPDUCKING"; + } +} + +class DukeLizTrooperRunning : DukeLizTrooper +{ + default + { + pic "LIZTROOPRUNNING"; + } +} + +class DukeLizTrooperStayput : DukeLizTrooper +{ + default + { + pic "LIZTROOPSTAYPUT"; + } + + override void PlayFTASound() + { + } + + override void initialize() + { + super.initialize(); + self.actorstayput = self.sector; // make this a flag once everything has been exported. + } + +}