OMH (oh my heck) ITS SANTA
This commit is contained in:
parent
4ddc1af831
commit
b915e7315d
3 changed files with 82 additions and 2 deletions
|
@ -40,7 +40,7 @@ void ActNpc034(NPCHAR *npc);
|
||||||
void ActNpc037(NPCHAR *npc);
|
void ActNpc037(NPCHAR *npc);
|
||||||
void ActNpc038(NPCHAR *npc);
|
void ActNpc038(NPCHAR *npc);
|
||||||
void ActNpc039(NPCHAR *npc);
|
void ActNpc039(NPCHAR *npc);
|
||||||
|
void ActNpc040(NPCHAR *npc);
|
||||||
void ActNpc041(NPCHAR *npc);
|
void ActNpc041(NPCHAR *npc);
|
||||||
void ActNpc042(NPCHAR *npc);
|
void ActNpc042(NPCHAR *npc);
|
||||||
void ActNpc043(NPCHAR *npc);
|
void ActNpc043(NPCHAR *npc);
|
||||||
|
|
|
@ -10,6 +10,86 @@
|
||||||
#include "Back.h"
|
#include "Back.h"
|
||||||
#include "Triangle.h"
|
#include "Triangle.h"
|
||||||
|
|
||||||
|
//Santa
|
||||||
|
void ActNpc040(NPCHAR *npc)
|
||||||
|
{
|
||||||
|
RECT rcLeft[7];
|
||||||
|
RECT rcRight[7];
|
||||||
|
|
||||||
|
rcLeft[0] = {0, 32, 16, 48};
|
||||||
|
rcLeft[1] = {16, 32, 32, 48};
|
||||||
|
rcLeft[2] = {32, 32, 48, 48};
|
||||||
|
rcLeft[3] = {0, 32, 16, 48};
|
||||||
|
rcLeft[4] = {48, 32, 64, 48};
|
||||||
|
rcLeft[5] = {0, 32, 16, 48};
|
||||||
|
rcLeft[6] = {64, 32, 80, 48};
|
||||||
|
|
||||||
|
rcRight[0] = {0, 48, 16, 64};
|
||||||
|
rcRight[1] = {16, 48, 32, 64};
|
||||||
|
rcRight[2] = {32, 48, 48, 64};
|
||||||
|
rcRight[3] = {0, 48, 16, 64};
|
||||||
|
rcRight[4] = {48, 48, 64, 64};
|
||||||
|
rcRight[5] = {0, 48, 16, 64};
|
||||||
|
rcRight[6] = {64, 48, 80, 64};
|
||||||
|
|
||||||
|
switch ( npc->act_no )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
npc->act_no = 1;
|
||||||
|
npc->ani_no = 0;
|
||||||
|
npc->ani_wait = 0;
|
||||||
|
case 1:
|
||||||
|
if (Random(0, 120) == 10)
|
||||||
|
{
|
||||||
|
npc->act_no = 2;
|
||||||
|
npc->act_wait = 0;
|
||||||
|
npc->ani_no = 1;
|
||||||
|
}
|
||||||
|
if (npc->x - 0x4000 < gMC.x && npc->x + 0x4000 > gMC.x && npc->y - 0x4000 < gMC.y && npc->y + 0x2000 > gMC.y)
|
||||||
|
{
|
||||||
|
if (npc->x <= gMC.x)
|
||||||
|
npc->direct = 2;
|
||||||
|
else
|
||||||
|
npc->direct = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (++npc->act_wait > 8)
|
||||||
|
{
|
||||||
|
npc->act_no = 1;
|
||||||
|
npc->ani_no = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
npc->act_no = 4;
|
||||||
|
npc->ani_no = 2;
|
||||||
|
npc->ani_wait = 0;
|
||||||
|
case 4:
|
||||||
|
if (++npc->ani_wait > 4)
|
||||||
|
{
|
||||||
|
npc->ani_wait = 0;
|
||||||
|
npc->ani_no++;
|
||||||
|
}
|
||||||
|
if (npc->ani_no > 5)
|
||||||
|
npc->ani_no = 2;
|
||||||
|
if (npc->direct)
|
||||||
|
npc->x += 0x200;
|
||||||
|
else
|
||||||
|
npc->x -= 0x200;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
npc->ani_no = 6;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (npc->direct)
|
||||||
|
npc->rect = rcRight[npc->ani_no];
|
||||||
|
else
|
||||||
|
npc->rect = rcLeft[npc->ani_no];
|
||||||
|
}
|
||||||
|
|
||||||
//Busted Door
|
//Busted Door
|
||||||
void ActNpc041(NPCHAR *npc)
|
void ActNpc041(NPCHAR *npc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -96,7 +96,7 @@ NPCFUNCTION gpNpcFuncTbl[361] =
|
||||||
ActNpc037,
|
ActNpc037,
|
||||||
ActNpc038,
|
ActNpc038,
|
||||||
ActNpc039,
|
ActNpc039,
|
||||||
nullptr,
|
ActNpc040,
|
||||||
ActNpc041,
|
ActNpc041,
|
||||||
ActNpc042,
|
ActNpc042,
|
||||||
ActNpc043,
|
ActNpc043,
|
||||||
|
|
Loading…
Add table
Reference in a new issue