Clean-up NpcAct020.cpp

So many ASM-inaccuracies lately
This commit is contained in:
Clownacy 2019-11-14 22:22:21 +00:00
parent e99bc72209
commit 97107fee22

View file

@ -1,5 +1,7 @@
#include "NpcAct.h"
#include <stddef.h>
#include "WindowsWrapper.h"
#include "Caret.h"
@ -44,7 +46,7 @@ void ActNpc021(NPCHAR *npc)
npc->act_no = 1;
if (npc->direct == 2)
npc->y += 0x2000;
npc->y += 16 * 0x200;
}
RECT rect = {224, 40, 240, 48};
@ -126,11 +128,11 @@ void ActNpc024(NPCHAR *npc)
switch (npc->act_no)
{
case 0:
npc->y += 0x600;
npc->y += 3 * 0x200;
npc->act_no = 1;
// Fallthrough
case 1:
if (npc->act_wait >= 8 && npc->x - 0x10000 < gMC.x && npc->x + 0x10000 > gMC.x && npc->y - 0x10000 < gMC.y && npc->y + 0x6000 > gMC.y)
if (npc->act_wait >= 8 && npc->x - (128 * 0x200) < gMC.x && npc->x + (128 * 0x200) > gMC.x && npc->y - (128 * 0x200) < gMC.y && npc->y + (48 * 0x200) > gMC.y)
{
if (npc->x > gMC.x)
npc->direct = 0;
@ -154,7 +156,7 @@ void ActNpc024(NPCHAR *npc)
npc->act_wait = 0;
}
if (npc->act_wait >= 8 && npc->x - 0xC000 < gMC.x && npc->x + 0xC000 > gMC.x && npc->y - 0xC000 < gMC.y && npc->y + 0x6000 > gMC.y)
if (npc->act_wait >= 8 && npc->x - (96 * 0x200) < gMC.x && npc->x + (96 * 0x200) > gMC.x && npc->y - (96 * 0x200) < gMC.y && npc->y + (48 * 0x200) > gMC.y)
{
npc->act_no = 2;
npc->ani_no = 0;
@ -210,9 +212,9 @@ void ActNpc024(NPCHAR *npc)
npc->act_no = 5;
npc->ani_no = 2;
npc->xm /= 2;
break;
}
else
{
if (npc->act_wait % 4 == 1)
PlaySoundObject(110, 1);
@ -224,7 +226,6 @@ void ActNpc024(NPCHAR *npc)
if (npc->ani_no > 5)
npc->ani_no = 3;
}
break;
@ -295,7 +296,7 @@ void ActNpc025(NPCHAR *npc)
npc->act_no = 1;
npc->ani_no = 0;
npc->ani_wait = 0;
npc->x += 0x1000;
npc->x += 8 * 0x200;
// Fallthrough
case 1:
if (++npc->act_wait > 150)
@ -309,7 +310,7 @@ void ActNpc025(NPCHAR *npc)
case 2: // Identical to case 4
if (++npc->act_wait <= 0x40)
{
npc->y -= 0x200;
npc->y -= 1 * 0x200;
}
else
{
@ -331,7 +332,7 @@ void ActNpc025(NPCHAR *npc)
case 4: // Identical to case 2
if (++npc->act_wait <= 0x40)
{
npc->y -= 0x200;
npc->y -= 1 * 0x200;
}
else
{
@ -353,7 +354,7 @@ void ActNpc025(NPCHAR *npc)
case 6:
if (++npc->act_wait <= 0x40)
{
npc->y += 0x200;
npc->y += 1 * 0x200;
}
else
{
@ -375,7 +376,7 @@ void ActNpc025(NPCHAR *npc)
case 8:
if (++npc->act_wait <= 0x40)
{
npc->y += 0x200;
npc->y += 1 * 0x200;
}
else
{
@ -418,12 +419,12 @@ void ActNpc026(NPCHAR *npc)
deg = Random(0, 0xFF);
npc->xm = GetCos(deg);
deg += 0x40;
npc->tgt_x = npc->x + 8 * GetCos(deg);
npc->tgt_x = npc->x + (GetCos(deg) * 8);
deg = Random(0, 0xFF);
npc->ym = GetSin(deg);
deg += 0x40;
npc->tgt_y = npc->y + 8 * GetSin(deg);
npc->tgt_y = npc->y + (GetSin(deg) * 8);
npc->act_no = 1;
npc->count1 = 120;
@ -457,17 +458,16 @@ void ActNpc026(NPCHAR *npc)
if (npc->count1 < 120)
{
++npc->count1;
break;
}
else
{
if (npc->x - 0x1000 < gMC.x && npc->x + 0x1000 > gMC.x && npc->y < gMC.y && npc->y + 0xC000 > gMC.y)
if (npc->x - (8 * 0x200) < gMC.x && npc->x + (8 * 0x200) > gMC.x && npc->y < gMC.y && npc->y + (96 * 0x200) > gMC.y)
{
npc->xm /= 2;
npc->ym = 0;
npc->act_no = 3;
npc->bits &= ~NPC_IGNORE_SOLIDITY;
}
}
break;
@ -561,11 +561,11 @@ void ActNpc028(NPCHAR *npc)
switch (npc->act_no)
{
case 0:
npc->y += 0x600;
npc->y += 3 * 0x200;
npc->act_no = 1;
// Fallthrough
case 1:
if (npc->act_wait >= 8 && npc->x - 0x10000 < gMC.x && npc->x + 0x10000 > gMC.x && npc->y - 0x10000 < gMC.y && npc->y + 0x6000 > gMC.y)
if (npc->act_wait >= 8 && npc->x - (128 * 0x200) < gMC.x && npc->x + (128 * 0x200) > gMC.x && npc->y - (128 * 0x200) < gMC.y && npc->y + (48 * 0x200) > gMC.y)
{
if (npc->x > gMC.x)
npc->direct = 0;
@ -589,7 +589,7 @@ void ActNpc028(NPCHAR *npc)
npc->act_wait = 0;
}
if (npc->act_wait >= 8 && npc->x - 0xC000 < gMC.x && npc->x + 0xC000 > gMC.x && npc->y - 0xC000 < gMC.y && npc->y + 0x6000 > gMC.y)
if (npc->act_wait >= 8 && npc->x - (96 * 0x200) < gMC.x && npc->x + (96 * 0x200) > gMC.x && npc->y - (96 * 0x200) < gMC.y && npc->y + (48 * 0x200) > gMC.y)
{
npc->act_no = 2;
npc->ani_no = 0;
@ -603,7 +603,7 @@ void ActNpc028(NPCHAR *npc)
{
npc->act_no = 3;
npc->ani_no = 2;
npc->ym = -1228;
npc->ym = -0x4CC;
PlaySoundObject(30, 1);
if (npc->x > gMC.x)
@ -645,9 +645,9 @@ void ActNpc028(NPCHAR *npc)
npc->act_no = 5;
npc->ani_no = 2;
npc->xm /= 2;
break;
}
else
{
if (npc->act_wait % 4 == 1)
PlaySoundObject(109, 1);
@ -662,7 +662,6 @@ void ActNpc028(NPCHAR *npc)
if (npc->ani_no > 5)
npc->ani_no = 3;
}
break;
@ -739,7 +738,7 @@ void ActNpc029(NPCHAR *npc)
npc->ani_wait = 0;
// Fallthrough
case 1:
if (npc->x - 0x6000 < gMC.x && npc->x + 0x6000 > gMC.x && npc->y - 0x6000 < gMC.y && npc->y + 0x2000 > gMC.y)
if (npc->x - (48 * 0x200) < gMC.x && npc->x + (48 * 0x200) > gMC.x && npc->y - (48 * 0x200) < gMC.y && npc->y + (16 * 0x200) > gMC.y)
npc->ani_no = 1;
else
npc->ani_no = 0;
@ -797,14 +796,14 @@ void ActNpc030(NPCHAR *npc)
if (npc->act_no == 0)
{
npc->act_no = 1;
npc->y += 0x2000;
npc->y += 16 * 0x200;
npc->ani_no = 2;
}
if (++npc->act_wait > 100)
{
npc->act_wait = 0;
SetCaret(npc->x, npc->y - 0x400, 5, 0);
SetCaret(npc->x, npc->y - (2 * 0x200), 5, 0);
}
}
@ -843,7 +842,7 @@ void ActNpc031(NPCHAR *npc)
npc->ani_no = 1;
}
if (npc->x - 0x1000 < gMC.x && npc->x + 0x1000 > gMC.x && npc->y - 0x1000 < gMC.y && npc->y + 0xC000 > gMC.y)
if (npc->x - (8 * 0x200) < gMC.x && npc->x + (8 * 0x200) > gMC.x && npc->y - (8 * 0x200) < gMC.y && npc->y + (96 * 0x200) > gMC.y)
{
npc->ani_no = 0;
npc->act_no = 3;
@ -863,7 +862,7 @@ void ActNpc031(NPCHAR *npc)
case 3:
npc->ani_no = 0;
if (npc->shock || npc->x - 0x2800 > gMC.x || npc->x + 0x2800 < gMC.x)
if (npc->shock || npc->x - (20 * 0x200) > gMC.x || npc->x + (20 * 0x200) < gMC.x)
{
npc->ani_no = 1;
npc->ani_wait = 0;
@ -878,10 +877,10 @@ void ActNpc031(NPCHAR *npc)
if (npc->ym > 0x5FF)
npc->ym = 0x5FF;
if (++npc->act_wait < 20 && (npc->flag & 8) == 0)
if (++npc->act_wait < 20 && !(npc->flag & 8))
break;
if (npc->flag & 8 || npc->y > gMC.y - 0x2000)
if (npc->flag & 8 || npc->y > gMC.y - (16 * 0x200))
{
npc->ani_wait = 0;
npc->ani_no = 2;
@ -1040,9 +1039,9 @@ void ActNpc035(NPCHAR *npc)
if (npc->shock)
{
if (npc->direct == 0)
SetNpChar(103, npc->x - 0x1000, npc->y + 0x1000, 0, 0, npc->direct, 0, 0x100);
SetNpChar(103, npc->x - (8 * 0x200), npc->y + (8 * 0x200), 0, 0, npc->direct, NULL, 0x100);
else
SetNpChar(103, npc->x + 0x1000, npc->y + 0x1000, 0, 0, npc->direct, 0, 0x100);
SetNpChar(103, npc->x + (8 * 0x200), npc->y + (8 * 0x200), 0, 0, npc->direct, NULL, 0x100);
npc->ani_no = 1;
npc->act_no = 2;
@ -1124,12 +1123,12 @@ void ActNpc036(NPCHAR *npc)
--npc->count1;
npc->act_wait = 0;
deg = GetArktan(npc->x - gMC.x, npc->y + 0x800 - gMC.y);
deg += (unsigned char)Random(-16, 16);
deg = GetArktan(npc->x - gMC.x, npc->y + (4 * 0x200) - gMC.y);
deg += (unsigned char)Random(-0x10, 0x10);
ym = GetSin(deg);
xm = GetCos(deg);
SetNpChar(11, npc->x, npc->y + 0x800, xm, ym, 0, 0, 0x100);
SetNpChar(11, npc->x, npc->y + 0x800, xm, ym, 0, NULL, 0x100);
PlaySoundObject(39, 1);
if (npc->count1 == 0)
@ -1204,7 +1203,7 @@ void ActNpc036(NPCHAR *npc)
break;
case 6:
if (npc->y + 0x2000 < gMC.y)
if (npc->y + (16 * 0x200) < gMC.y)
npc->damage = 10;
else
npc->damage = 0;
@ -1220,10 +1219,10 @@ void ActNpc036(NPCHAR *npc)
npc->damage = 0;
for (i = 0; i < 8; ++i)
SetNpChar(4, npc->x + (Random(-12, 12) * 0x200), npc->y + (Random(-12, 12) * 0x200), Random(-341, 341), Random(-0x600, 0), 0, 0, 0x100);
SetNpChar(4, npc->x + (Random(-12, 12) * 0x200), npc->y + (Random(-12, 12) * 0x200), Random(-341, 341), Random(-0x600, 0), 0, NULL, 0x100);
for (i = 0; i < 8; ++i)
SetNpChar(33, npc->x + (Random(-12, 12) * 0x200), npc->y + (Random(-12, 12) * 0x200), Random(-0x400, 0x400), Random(-0x400, 0), 0, 0, 0x100);
SetNpChar(33, npc->x + (Random(-12, 12) * 0x200), npc->y + (Random(-12, 12) * 0x200), Random(-0x400, 0x400), Random(-0x400, 0), 0, NULL, 0x100);
}
break;