Skip to content

Commit fcb832d

Browse files
LivewireCBLivewire
andauthored
Z npc support (#432)
* zNPCSupport - added NPCSupport_Startup * clang format pass * zNPCSupport - completed some functions * clang pass * 2 rwrasters * more changes * worked through npcwidget_scenereset and npcwidget_startup * ficed the nonbuilding * a * like 2 functions or smth --------- Co-authored-by: Livewire <cmiller8285@gmail.com>
1 parent 7923cd8 commit fcb832d

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

src/SB/Game/zNPCSupport.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,31 @@ void NPCWidget_ScenePostInit()
108108
{
109109
}
110110

111+
void NPCWidget_Find(en_NPC_UI_WIDGETS)
112+
{
113+
zSceneFindObject(g_hash_uiwidgets[1]);
114+
}
115+
116+
void NPCWidget::Init(en_NPC_UI_WIDGETS)
117+
{
118+
}
119+
120+
void NPCTarget::TargetClear()
121+
{
122+
ent_target = 0; //0x4?
123+
typ_target = NPC_TGT_NONE;
124+
}
125+
126+
void NPCBlinker::Reset()
127+
{
128+
}
129+
130+
void Firework_Release(Firework* firework)
131+
{
132+
firework->Cleanup();
133+
firework->fwstate = FW_STAT_UNUSED;
134+
}
135+
111136
void Firework_ScenePrepare()
112137
{
113138
NPAR_PartySetup(NPAR_TYP_FIREWORKS, NULL, NULL);
@@ -119,6 +144,10 @@ void Firework_SceneFinish()
119144
Firework_SceneReset(1);
120145
}
121146

147+
void Firework::Cleanup()
148+
{
149+
}
150+
122151
void Firework_SceneReset(int)
123152
{
124153
}

src/SB/Game/zNPCSupport.h

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,41 @@ enum en_NPC_UI_WIDGETS
3030
NPC_UI_WIDGETS_unk // Come back after more data is put in
3131
};
3232

33+
enum en_fwstate
34+
{
35+
FW_STAT_UNUSED,
36+
FW_STAT_READY,
37+
FW_STAT_FLIGHT,
38+
FW_STAT_BOOM,
39+
FW_STAT_DONE,
40+
FW_STAT_NOMORE,
41+
FW_STAT_FORCE = 0x7fffffff
42+
};
43+
44+
enum en_fwstyle
45+
{
46+
FW_STYL_DEFAULT,
47+
FW_STYL_JULY4TH,
48+
FW_STYL_XMAS,
49+
FW_STYL_STPATS,
50+
FW_STYL_VALENTINE,
51+
FW_STYL_NOMORE,
52+
FW_STYL_FORCE = 0x7fffffff
53+
};
54+
3355
struct NPCTarget
3456
{
3557
en_npctgt typ_target;
3658
union
3759
{
38-
xEnt* ent_target;
60+
xEnt* ent_target; //0x4
3961
xBase* bas_target;
4062
xVec3 pos_target;
4163
zMovePoint* nav_target;
4264
};
4365
zNPCCommon* npc_owner;
66+
67+
void TargetClear();
4468
};
4569

4670
struct NPCBlinker
@@ -62,6 +86,25 @@ struct NPCWidget
6286
U32 Off(zNPCCommon* npc, U32 theman);
6387
U32 On(zNPCCommon* npc, U32 theman);
6488
void Reset();
89+
void Init(en_NPC_UI_WIDGETS);
90+
};
91+
92+
struct Firework
93+
{
94+
struct
95+
{
96+
en_fwstate fwstate : 8;
97+
en_fwstyle fwstyle : 8;
98+
S32 flg_firework : 16; //0x2
99+
};
100+
F32 tym_lifespan;
101+
F32 tmr_remain; //0x14?
102+
xVec3 pos;
103+
xVec3 vel;
104+
105+
void FlyFlyFly(F32 dt);
106+
void Update(F32 dt);
107+
void Cleanup();
65108
};
66109

67110
bool NPCC_ForceTalkOk();
@@ -82,6 +125,7 @@ void Firework_SceneReset(S32);
82125
void Firework_ScenePrepare();
83126
void Firework_SceneFinish();
84127
void Firework_Timestep(F32 dt);
128+
void Firework_Release(Firework*);
85129
RwTexture* NPCC_FindRWTexture(U32 hashid);
86130
RwTexture* NPCC_FindRWTexture(const char* txtrname);
87131
RwRaster* NPCC_FindRWRaster(const char* txtrname);

0 commit comments

Comments
 (0)