Implement & link ac_present_npc

This commit is contained in:
Cuyler36
2025-05-12 01:57:57 -04:00
parent 75ef0f18b9
commit 526b5af4a9
7 changed files with 544 additions and 20 deletions
+16 -7
View File
@@ -20,18 +20,27 @@ enum {
aPRD_TYPE_NUM
};
enum {
aPRD_ACTION_FIRST_SET,
aPRD_ACTION_PL_COME_OUT_WAIT,
aPRD_ACTION_PRESENT_WAIT,
aPRD_ACTION_RETIRE_NPC_WAIT,
aPRD_ACTION_NUM
};
typedef struct present_demo_actor_s PRESENT_DEMO_ACTOR;
typedef void (*aPRD_ACTION_PROC)(PRESENT_DEMO_ACTOR* present_demo, GAME* game);
struct present_demo_actor_s {
ACTOR actor_class;
int action;
aPRD_ACTION_PROC action_proc;
ACTOR* world_actor;
int _180;
int type;
mActor_name_t present;
/* 0x000 */ ACTOR actor_class;
/* 0x174 */ int action;
/* 0x178 */ aPRD_ACTION_PROC action_proc;
/* 0x17C */ ACTOR* world_actor;
/* 0x180 */ int _180;
/* 0x184 */ int type;
/* 0x188 */ mActor_name_t present;
};
extern ACTOR_PROFILE Present_Demo_Profile;
+20 -2
View File
@@ -2,12 +2,31 @@
#define AC_PRESENT_NPC_H
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
#define aPST_PRESENT_TYPE_GOLDEN_ROD (1 << 0)
#define aPST_PRESENT_TYPE_GOLDEN_NET (1 << 1)
typedef struct present_npc_actor_s PRESENT_NPC_ACTOR;
typedef void (*aPST_THINK_PROC)(PRESENT_NPC_ACTOR* actor, GAME_PLAY* play);
typedef void (*aPST_TALK_PROC)(PRESENT_NPC_ACTOR* actor);
struct present_npc_actor_s {
NPC_ACTOR npc_class;
int think_idx;
int next_think_idx;
aPST_THINK_PROC think_proc;
int talk_type;
aPST_TALK_PROC talk_proc;
u8 _9A8;
u8 umbrella_flag;
};
extern ACTOR_PROFILE Present_Npc_Profile;
#ifdef __cplusplus
@@ -15,4 +34,3 @@ extern ACTOR_PROFILE Present_Npc_Profile;
#endif
#endif
+1 -1
View File
@@ -164,7 +164,7 @@ typedef struct Save_s {
/* 0x024186 */ lbRTC_day_t rainbow_day;
/* 0x024187 */ u8 rainbow_reserved;
/* 0x024188 */ u8 _24188;
/* 0x024189 */ u8 _24189;
/* 0x024189 */ u8 first_present;
/* 0x02418A */ u8 town_day;
/* 0x02418B */ u8 _2418B[0x24198 - 0x2418B];
/* 0x024198 */ OSTime travel_hard_time;