Added NPC016 (save point)
This commit is contained in:
parent
70046998c3
commit
1861c02819
3 changed files with 58 additions and 1 deletions
|
@ -6,3 +6,5 @@ void ActNpc003(NPCHAR *npc);
|
|||
void ActNpc004(NPCHAR *npc);
|
||||
void ActNpc005(NPCHAR *npc);
|
||||
void ActNpc006(NPCHAR *npc);
|
||||
|
||||
void ActNpc016(NPCHAR *npc);
|
||||
|
|
|
@ -614,3 +614,58 @@ void ActNpc006(NPCHAR *npc)
|
|||
else
|
||||
npc->rect = rcLeft[npc->ani_no];
|
||||
}
|
||||
|
||||
//Save point
|
||||
void ActNpc016(NPCHAR *npc)
|
||||
{
|
||||
RECT rects[8];
|
||||
|
||||
rects[0] = {96, 16, 112, 32};
|
||||
rects[1] = {112, 16, 128, 32};
|
||||
rects[2] = {128, 16, 144, 32};
|
||||
rects[3] = {144, 16, 160, 32};
|
||||
rects[4] = {160, 16, 176, 32};
|
||||
rects[5] = {176, 16, 192, 32};
|
||||
rects[6] = {192, 16, 208, 32};
|
||||
rects[7] = {208, 16, 224, 32};
|
||||
|
||||
switch (npc->act_no)
|
||||
{
|
||||
case 0:
|
||||
npc->bits |= 0x2000u;
|
||||
npc->act_no = 1;
|
||||
|
||||
if (npc->direct == 2)
|
||||
{
|
||||
npc->bits &= ~0x2000u;
|
||||
npc->ym = -0x200;
|
||||
|
||||
for (int i = 0; i < 4; ++i)
|
||||
SetNpChar(4, npc->x + (Random(-12, 12) * 0x200), npc->y + (Random(-12, 12) * 0x200), Random(-341, 341), Random(-0x600, 0), 0, 0, 0x100);
|
||||
}
|
||||
|
||||
// Fallthrough
|
||||
case 1:
|
||||
if (npc->flag & 8)
|
||||
npc->bits |= 0x2000u;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ++npc->ani_wait > 2 )
|
||||
{
|
||||
npc->ani_wait = 0;
|
||||
++npc->ani_no;
|
||||
}
|
||||
|
||||
if ( npc->ani_no > 7 )
|
||||
npc->ani_no = 0;
|
||||
|
||||
npc->ym += 0x40;
|
||||
if ( npc->ym > 0x5FF )
|
||||
npc->ym = 0x5FF;
|
||||
|
||||
npc->y += npc->ym;
|
||||
|
||||
npc->rect = rects[npc->ani_no];
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ NPCFUNCTION gpNpcFuncTbl[] =
|
|||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
&ActNpc016,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
|
|
Loading…
Add table
Reference in a new issue