From e42fc5e743d5d18ee109d8d23acea508cd647b5c Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 2 Jan 2022 12:27:36 +0100 Subject: [PATCH] - use the newly added flag to consolidate ifhitsector. --- source/games/duke/src/actors.cpp | 19 ++++++++++++++++++- source/games/duke/src/actors_d.cpp | 17 ----------------- source/games/duke/src/actors_r.cpp | 18 ------------------ source/games/duke/src/dispatch.cpp | 4 ---- source/games/duke/src/duke3d.h | 1 - 5 files changed, 18 insertions(+), 41 deletions(-) diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index 80c8c1ef9..996a720fd 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -4030,6 +4030,23 @@ void handle_se18(DDukeActor *actor, bool morecheck) // //--------------------------------------------------------------------------- +DDukeActor* ifhitsectors(sectortype* sect) +{ + DukeStatIterator it(STAT_MISC); + while (auto a1 = it.Next()) + { + if (actorflag(a1, SFLAG2_TRIGGER_IFHITSECTOR) && sect == a1->sector()) + return a1; + } + return nullptr; +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + void handle_se19(DDukeActor *actor, int BIGFORCE) { auto sc = actor->sector(); @@ -4080,7 +4097,7 @@ void handle_se19(DDukeActor *actor, int BIGFORCE) } else //Not hit yet { - auto hitter = fi.ifhitsectors(actor->sector()); + auto hitter = ifhitsectors(actor->sector()); if (hitter) { FTA(8, &ps[myconnectindex]); diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index 016b265a9..72d389bfb 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -694,23 +694,6 @@ void movefta_d(void) // //--------------------------------------------------------------------------- -DDukeActor* ifhitsectors_d(sectortype* sect) -{ - DukeStatIterator it(STAT_MISC); - while (auto a1 = it.Next()) - { - if (a1->spr.picnum == EXPLOSION2 && sect == a1->sector()) - return a1; - } - return nullptr; -} - -//--------------------------------------------------------------------------- -// -// -// -//--------------------------------------------------------------------------- - int ifhitbyweapon_d(DDukeActor *actor) { int p; diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 015d52172..0c7dde15f 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -613,24 +613,6 @@ void movefta_r(void) // //--------------------------------------------------------------------------- - -DDukeActor* ifhitsectors_r(sectortype* sect) -{ - DukeStatIterator it(STAT_MISC); - while (auto a1 = it.Next()) - { - if (a1->spr.picnum == EXPLOSION2 || (a1->spr.picnum == EXPLOSION3 && sect == a1->sector())) - return a1; - } - return nullptr; -} - -//--------------------------------------------------------------------------- -// -// -// -//--------------------------------------------------------------------------- - int ifhitbyweapon_r(DDukeActor *actor) { int p; diff --git a/source/games/duke/src/dispatch.cpp b/source/games/duke/src/dispatch.cpp index 4087dde6d..1b1e884df 100644 --- a/source/games/duke/src/dispatch.cpp +++ b/source/games/duke/src/dispatch.cpp @@ -70,8 +70,6 @@ void lotsofpaper_d(DDukeActor* s, int n); void lotsoffeathers_r(DDukeActor* s, int n); void guts_d(DDukeActor* s, int gtype, int n, int p); void guts_r(DDukeActor* s, int gtype, int n, int p); -DDukeActor* ifhitsectors_d(sectortype* sectnum); -DDukeActor* ifhitsectors_r(sectortype* sectnum); int ifhitbyweapon_r(DDukeActor* sn); int ifhitbyweapon_d(DDukeActor* sn); void fall_d(DDukeActor* i, int g_p); @@ -134,7 +132,6 @@ void SetDispatcher() lotsofmail_d, lotsofpaper_d, guts_d, - ifhitsectors_d, ifhitbyweapon_d, fall_d, spawnweapondebris_d, @@ -178,7 +175,6 @@ void SetDispatcher() lotsoffeathers_r, lotsoffeathers_r, guts_r, - ifhitsectors_r, ifhitbyweapon_r, fall_r, spawnweapondebris_r, diff --git a/source/games/duke/src/duke3d.h b/source/games/duke/src/duke3d.h index 46a72dbc4..58cfa3588 100644 --- a/source/games/duke/src/duke3d.h +++ b/source/games/duke/src/duke3d.h @@ -95,7 +95,6 @@ struct Dispatcher void (*lotsofmail)(DDukeActor *s, int n); void (*lotsofpaper)(DDukeActor *s, int n); void (*guts)(DDukeActor* s, int gtype, int n, int p); - DDukeActor* (*ifhitsectors)(sectortype* sectnum); int (*ifhitbyweapon)(DDukeActor* sectnum); void (*fall)(DDukeActor* actor, int g_p); bool (*spawnweapondebris)(int picnum, int dnum);