From f08c1c3aa6d3f54192b7d1aed63c72523d320558 Mon Sep 17 00:00:00 2001 From: Clownacy Date: Mon, 18 Feb 2019 13:24:10 +0000 Subject: [PATCH] Added some bugfixes and cleanup --- src/NpcAct000.cpp | 6 ++++++ src/NpcAct080.cpp | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/NpcAct000.cpp b/src/NpcAct000.cpp index 7659e3cd..ee8a0118 100644 --- a/src/NpcAct000.cpp +++ b/src/NpcAct000.cpp @@ -123,9 +123,15 @@ void ActNpc001(NPCHAR *npc) if (npc->x <= 0x9FFF) npc->cond = 0; +#ifdef FIX_BUGS + //Limit speed + if (npc->xm < -0x5FF) + npc->xm = -0x5FF; +#else //Limit speed (except pixel applied it to the X position) if (npc->x < -0x5FF) npc->x = -0x5FF; +#endif //Bounce off walls if (npc->flag & 1) diff --git a/src/NpcAct080.cpp b/src/NpcAct080.cpp index 6bd867f8..f7b30fb8 100644 --- a/src/NpcAct080.cpp +++ b/src/NpcAct080.cpp @@ -57,7 +57,7 @@ void ActNpc080(NPCHAR *npc) npc->ani_no = 1; npc->ani_wait = 0; npc->act_no = 2; - npc->bits &= ~0x20u; + npc->bits &= ~0x20; } if (gMC.x >= npc->x) @@ -91,16 +91,16 @@ void ActNpc080(NPCHAR *npc) npc->xm = 0x400; } - if (gMC.x >= npc->x) - { - npc->direct = 2; - npc->xm = 0x100; - } - else + if (gMC.x < npc->x) { npc->direct = 0; npc->xm = -0x100; } + else + { + npc->direct = 2; + npc->xm = 0x100; + } break; @@ -150,10 +150,17 @@ void ActNpc080(NPCHAR *npc) if (npc->xm < -0x400) npc->xm = -0x400; +#ifdef FIX_BUGS + if (npc->ym > 0x5FF) + npc->ym = 0x5FF; + if (npc->ym < -0x5FF) + npc->ym = -0x5FF; +#else if (npc->ym > 0x5FF) npc->xm = 0x5FF; if (npc->ym < -0x5FF) npc->xm = -0x5FF; +#endif npc->x += npc->xm; npc->y += npc->ym;