Added NPC015, NPC018, and NPC020 (chest close, door, and chest open)
This commit is contained in:
parent
ce34eea2dc
commit
27cfd5a575
5 changed files with 122 additions and 3 deletions
1
Makefile
1
Makefile
|
@ -55,6 +55,7 @@ SOURCES = \
|
||||||
MyChar \
|
MyChar \
|
||||||
MycHit \
|
MycHit \
|
||||||
NpcAct000 \
|
NpcAct000 \
|
||||||
|
NpcAct020 \
|
||||||
NpChar \
|
NpChar \
|
||||||
NpcHit \
|
NpcHit \
|
||||||
NpcTbl \
|
NpcTbl \
|
||||||
|
|
|
@ -7,5 +7,9 @@ void ActNpc004(NPCHAR *npc);
|
||||||
void ActNpc005(NPCHAR *npc);
|
void ActNpc005(NPCHAR *npc);
|
||||||
void ActNpc006(NPCHAR *npc);
|
void ActNpc006(NPCHAR *npc);
|
||||||
|
|
||||||
|
void ActNpc015(NPCHAR *npc);
|
||||||
void ActNpc016(NPCHAR *npc);
|
void ActNpc016(NPCHAR *npc);
|
||||||
void ActNpc017(NPCHAR *npc);
|
void ActNpc017(NPCHAR *npc);
|
||||||
|
void ActNpc018(NPCHAR *npc);
|
||||||
|
|
||||||
|
void ActNpc021(NPCHAR *npc);
|
||||||
|
|
|
@ -615,6 +615,63 @@ void ActNpc006(NPCHAR *npc)
|
||||||
npc->rect = rcLeft[npc->ani_no];
|
npc->rect = rcLeft[npc->ani_no];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Chest (closed)
|
||||||
|
void ActNpc015(NPCHAR *npc)
|
||||||
|
{
|
||||||
|
RECT rcLeft[3];
|
||||||
|
|
||||||
|
rcLeft[0] = {240, 0, 256, 16};
|
||||||
|
rcLeft[1] = {256, 0, 272, 16};
|
||||||
|
rcLeft[2] = {272, 0, 288, 16};
|
||||||
|
|
||||||
|
switch (npc->act_no)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
npc->act_no = 1;
|
||||||
|
npc->bits |= 0x2000u;
|
||||||
|
|
||||||
|
if (npc->direct == 2)
|
||||||
|
{
|
||||||
|
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:
|
||||||
|
npc->ani_no = 0;
|
||||||
|
|
||||||
|
if (Random(0, 30) == 0)
|
||||||
|
npc->act_no = 2;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
if (++npc->ani_wait > 1)
|
||||||
|
{
|
||||||
|
npc->ani_wait = 0;
|
||||||
|
++npc->ani_no;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (npc->ani_no > 2)
|
||||||
|
{
|
||||||
|
npc->ani_no = 0;
|
||||||
|
npc->act_no = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
npc->ym += 0x40;
|
||||||
|
if (npc->ym > 0x5FF)
|
||||||
|
npc->ym = 0x5FF;
|
||||||
|
|
||||||
|
npc->y += npc->ym;
|
||||||
|
|
||||||
|
npc->rect = rcLeft[npc->ani_no];
|
||||||
|
}
|
||||||
|
|
||||||
//Save point
|
//Save point
|
||||||
void ActNpc016(NPCHAR *npc)
|
void ActNpc016(NPCHAR *npc)
|
||||||
{
|
{
|
||||||
|
@ -748,3 +805,31 @@ void ActNpc017(NPCHAR *npc)
|
||||||
|
|
||||||
npc->y += npc->ym;
|
npc->y += npc->ym;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Door
|
||||||
|
void ActNpc018(NPCHAR *npc)
|
||||||
|
{
|
||||||
|
RECT rect[2];
|
||||||
|
|
||||||
|
rect[0] = {224, 16, 240, 40};
|
||||||
|
rect[1] = {192, 112, 208, 136};
|
||||||
|
|
||||||
|
switch (npc->act_no)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (npc->direct == 0)
|
||||||
|
npc->rect = rect[0];
|
||||||
|
else
|
||||||
|
npc->rect = rect[1];
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
for (int i = 0; i < 4; ++i)
|
||||||
|
SetNpChar(4, npc->x, npc->y, Random(-341, 341), Random(-0x600, 0), 0, 0, 0x100);
|
||||||
|
|
||||||
|
npc->act_no = 0;
|
||||||
|
npc->rect = rect[0];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
29
src/NpcAct020.cpp
Normal file
29
src/NpcAct020.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#include "WindowsWrapper.h"
|
||||||
|
|
||||||
|
#include "MyChar.h"
|
||||||
|
#include "NpChar.h"
|
||||||
|
#include "Game.h"
|
||||||
|
#include "Sound.h"
|
||||||
|
#include "Back.h"
|
||||||
|
#include "Triangle.h"
|
||||||
|
|
||||||
|
//Chest (open)
|
||||||
|
void ActNpc021(NPCHAR *npc)
|
||||||
|
{
|
||||||
|
switch (npc->act_no)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
npc->act_no = 1;
|
||||||
|
|
||||||
|
if (npc->direct == 2)
|
||||||
|
npc->y += 0x2000;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
RECT rect[0];
|
||||||
|
|
||||||
|
rect[0] = {224, 40, 240, 48};
|
||||||
|
|
||||||
|
npc->rect = rect[0];
|
||||||
|
}
|
|
@ -71,13 +71,13 @@ NPCFUNCTION gpNpcFuncTbl[] =
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
ActNpc015,
|
||||||
ActNpc016,
|
ActNpc016,
|
||||||
ActNpc017,
|
ActNpc017,
|
||||||
|
ActNpc018,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
ActNpc021,
|
||||||
nullptr,
|
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
|
|
Loading…
Add table
Reference in a new issue