Implement & link ac_ev_broker

This commit is contained in:
Cuyler36
2024-08-14 09:25:32 -04:00
parent 0598a764e6
commit 029a4664f5
6 changed files with 439 additions and 9 deletions
+16 -1
View File
@@ -3,11 +3,27 @@
#include "types.h"
#include "m_actor.h"
#include "ac_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ac_ev_broker EV_BROKER_ACTOR;
typedef void (*aEBRK_ACT_PROC)(EV_BROKER_ACTOR*);
/* sizeof(EV_BROKER_ACTOR) == 0x9AC */
struct ac_ev_broker {
/* 0x000 */ NPC_ACTOR npc_class;
/* 0x994 */ int action;
/* 0x998 */ int next_action;
/* 0x99C */ int action_step;
/* 0x9A0 */ aEBRK_ACT_PROC action_proc;
/* 0x9A4 */ ACTOR* tent_actor;
/* 0x9A8 */ u8 pl_talk_lock;
};
extern ACTOR_PROFILE Ev_Broker_Profile;
#ifdef __cplusplus
@@ -15,4 +31,3 @@ extern ACTOR_PROFILE Ev_Broker_Profile;
#endif
#endif
+9 -8
View File
@@ -252,15 +252,16 @@ typedef void (*aNPC_THINK_PROC)(NPC_ACTOR*, GAME_PLAY*, int);
#define aNPC_THINK_INTERRUPT_OBSTANCE (1 << 2)
#define aNPC_THINK_INTERRUPT_ENTRANCE (1 << 3)
/* sizeof(aNPC_think_info_c) == 0x18 */
typedef struct npc_think_info_s {
int idx;
u8 end_flag;
u8 force_call_flag;
u16 force_call_timer;
int force_call_msg_no;
u8 force_call_camera_type;
aNPC_THINK_PROC think_proc;
u32 interrupt_flags;
/* 0x00 */ int idx;
/* 0x04 */ u8 end_flag;
/* 0x05 */ u8 force_call_flag;
/* 0x06 */ u16 force_call_timer;
/* 0x08 */ int force_call_msg_no;
/* 0x0C */ u8 force_call_camera_type;
/* 0x10 */ aNPC_THINK_PROC think_proc;
/* 0x14 */ u32 interrupt_flags;
} aNPC_think_info_c;
typedef void (*aNPC_SCHEDULE_PROC)(NPC_ACTOR*, GAME_PLAY*, int);
+1
View File
@@ -21,6 +21,7 @@ extern int mPlib_check_able_change_camera_normal_index();
extern void mPlib_request_main_refuse_type1(GAME* game);
extern void mPlib_request_main_wait_type3(GAME* game);
extern void mPlib_Set_able_force_speak_label(ACTOR* actor);
extern void mPlib_Reset_able_force_speak_label(void);
extern int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z, f32 speed, int flag);
extern void mPlib_Set_goal_player_demo_walk(f32 goal_x, f32 goal_z, f32 speed);
extern void mPlib_Set_able_hand_all_item_in_demo(s8 enable);