mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Implement & link ac_boat_demo
This commit is contained in:
@@ -8,6 +8,13 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct boat_s BOAT_ACTOR;
|
||||
|
||||
struct boat_s {
|
||||
ACTOR actor_class;
|
||||
// TODO
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Boat_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -3,11 +3,78 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "m_demo.h"
|
||||
#include "ac_boat.h"
|
||||
#include "ac_npc_sendo.h"
|
||||
#include "ac_ev_castaway.h"
|
||||
#include "m_common_data.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
aBTD_ACTION_SENDO_BIRTH_WAIT,
|
||||
aBTD_ACTION_PL_RIDE_ON_START_WAIT,
|
||||
aBTD_ACTION_PL_RIDE_ON_END_WAIT,
|
||||
aBTD_ACTION_START_CALL_END_WAIT,
|
||||
aBTD_ACTION_SONG_BGM_START_WAIT,
|
||||
aBTD_ACTION_SING_SENDO_START_WAIT,
|
||||
aBTD_ACTION_SING_SENDO_MSG_SET_WAIT,
|
||||
aBTD_ACTION_SENDO_DIALOGUE_START_WAIT,
|
||||
aBTD_ACTION_SING_SENDO_START_WAIT2,
|
||||
aBTD_ACTION_MOVE_BOAT_END_WAIT,
|
||||
aBTD_ACTION_TOUCH_WHARF_END_WAIT,
|
||||
aBTD_ACTION_PL_RIDE_OFF_START_WAIT,
|
||||
aBTD_ACTION_PL_RIDE_OFF_END_WAIT,
|
||||
aBTD_ACTION_ANCHOR_WAIT,
|
||||
|
||||
aBTD_ACTION_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
aBTD_DEMO_PL_RIDE_ON_START,
|
||||
aBTD_DEMO_PL_RIDE_ON_END,
|
||||
aBTD_DEMO_START_CALL_END,
|
||||
aBTD_DEMO_MOVE_BOAT_END,
|
||||
aBTD_DEMO_TOUCH_WHARF_END,
|
||||
aBTD_DEMO_PL_RIDE_OFF_START,
|
||||
aBTD_DEMO_PL_RIDE_OFF_END,
|
||||
aBTD_DEMO_ANCHOR,
|
||||
|
||||
aBTD_DEMO_NUM
|
||||
};
|
||||
|
||||
typedef struct boat_demo_s BOAT_DEMO_ACTOR;
|
||||
|
||||
#define aBTD_GET_DEMO_ACTOR() (BOAT_DEMO_ACTOR*)(Common_Get(clip).demo_clip2->class)
|
||||
|
||||
typedef void (*aBTD_PROC)(BOAT_DEMO_ACTOR*, GAME_PLAY*);
|
||||
|
||||
struct boat_demo_s {
|
||||
ACTOR actor_class;
|
||||
int action;
|
||||
aBTD_PROC action_proc;
|
||||
int demo_act;
|
||||
int song_bgm_timer;
|
||||
BOAT_ACTOR* boat_actor;
|
||||
NPC_SENDO_ACTOR* npc_sendo_actor;
|
||||
EV_CASTAWAY_ACTOR* castaway_actor;
|
||||
int at_island;
|
||||
xyz_t passenger_ofs;
|
||||
f32 boat_speed;
|
||||
int island_npc_info_registered;
|
||||
u8* island_gba_loader_p;
|
||||
u8* island_gba_program_p;
|
||||
u8 player_pattern;
|
||||
u8 sing_dialog_ofs;
|
||||
u8 sing_2nd_part;
|
||||
u8 sing_2nd_part_bgm_no;
|
||||
int sing_msg_no;
|
||||
u16 touch_wharf_timer;
|
||||
u8 touching_wharf;
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Boat_Demo_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ extern "C" {
|
||||
#define aNPC_SPNPC_BIT_CURATOR 0
|
||||
#define aNPC_SPNPC_BIT_GOHOME_NPC 1
|
||||
#define aNPC_SPNPC_BIT_MASK_CAT 2
|
||||
#define aNPC_SPNPC_BIT_CASTAWAY 4
|
||||
#define aNPC_SPNPC_BIT_DOZAEMON 4
|
||||
#define aNPC_SPNPC_BIT_EV_SONCHO 5
|
||||
|
||||
#define aNPC_SPNPC_BIT_GET(field, bit) (((field) >> (bit)) & 1)
|
||||
|
||||
@@ -3,11 +3,19 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "m_actor.h"
|
||||
#include "ac_npc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct npc_sendo_s NPC_SENDO_ACTOR;
|
||||
|
||||
struct npc_sendo_s {
|
||||
NPC_ACTOR npc_class;
|
||||
// TODO
|
||||
};
|
||||
|
||||
extern ACTOR_PROFILE Npc_Sendo_Profile;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -9,6 +9,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
extern int aWeather_ChangingWeather();
|
||||
extern void aWeather_RequestChangeWeatherToIsland();
|
||||
extern void aWeather_RequestChangeWeatherFromIsland();
|
||||
|
||||
extern ACTOR_PROFILE Weather_Profile;
|
||||
|
||||
|
||||
+2
-2
@@ -377,7 +377,7 @@ typedef struct kabu_peddler_event_s {
|
||||
} mEv_kabu_peddler_c;
|
||||
|
||||
typedef struct dozaemon_event_s {
|
||||
u32 flags;
|
||||
u16 flags;
|
||||
} mEv_dozaemon_c;
|
||||
|
||||
typedef union {
|
||||
@@ -552,7 +552,7 @@ typedef struct event_common_save_data {
|
||||
} bridge_flags;
|
||||
u8 ghost_event_type; // 0x72 will spawn wisp, 0x77 won't?
|
||||
u8 soncho_event_type; // checked not equal to 0xFF for summer & fall fishing tournies
|
||||
u8 current_event_state; // used to signal when you've received an item from gracie or woken gulliver up
|
||||
u8 dozaemon_completed; // used to signal when you've received an item from gulliver
|
||||
} mEv_save_common_data_c;
|
||||
|
||||
extern int mEv_CheckFirstJob();
|
||||
|
||||
+4
-4
@@ -44,8 +44,8 @@ typedef struct island_s {
|
||||
/* 0x18CA */ lbRTC_time_c renew_time; /* last time island was visited? */
|
||||
/* 0x18D2 */ u8 unused_18D2[14]; /* unused */
|
||||
/* 0x18E0 */ u8 grass_tex_type; /* grass type */
|
||||
/* 0x18E1 */ u8 last_song_male; /* last song kapp'n sang for a male character */
|
||||
/* 0x18E2 */ u8 last_song_female; /* last song kapp'n sang for a female character */
|
||||
/* 0x18E1 */ u8 last_song_to_island; /* last song kapp'n sang to the island */
|
||||
/* 0x18E2 */ u8 last_song_from_island; /* last song kapp'n sang leaving the island */
|
||||
/* 0x18E3 */ u8 unused_18E3[29]; /* unused */
|
||||
} Island_c;
|
||||
|
||||
@@ -180,8 +180,8 @@ typedef struct island_agb_s {
|
||||
/* 0x3948 */ u16 npc_pal[16];
|
||||
/* 0x3968 */ u8 _3968[20];
|
||||
/* 0x397C */ u8 _397C;
|
||||
/* 0x397D */ u8 last_song_male; /* last song kapp'n sang for a male character */
|
||||
/* 0x397E */ u8 last_song_female; /* last song kapp'n sang for a female character */
|
||||
/* 0x397D */ u8 last_song_to_island; /* last song kapp'n sang for a male character */
|
||||
/* 0x397E */ u8 last_song_from_island; /* last song kapp'n sang for a female character */
|
||||
/* 0x397F */ u8 checksum;
|
||||
} Island_agb_c;
|
||||
|
||||
|
||||
@@ -286,6 +286,8 @@ extern int mMsg_CopyItem(mMsg_Window_c* msg_win, int item_idx, u8* data, int idx
|
||||
extern int mMsg_CopyMail(mMsg_Window_c* msg_win, int mail_idx, u8* data, int idx, int max_size);
|
||||
extern int mMsg_CopyIslandName(u8* data, int idx, int max_size, int capitalize);
|
||||
extern int mMsg_CopyAmPm(mMsg_Window_c* msg_win, u8* data, int idx, int max_size);
|
||||
extern void mMsg_sound_set_voice_silent(mMsg_Window_c* msg_win, int update_voice_mode);
|
||||
extern void mMsg_sound_unset_voice_silent(mMsg_Window_c* msg_win, int update_voice_mode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1858,7 +1858,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define SP_NPC_SONCHO_D078 (SP_NPC_START + 120) // D078
|
||||
#define SP_NPC_SONCHO_D079 (SP_NPC_START + 121) // D079
|
||||
#define SP_NPC_SASHO (SP_NPC_START + 122) // D07A
|
||||
//
|
||||
#define SP_NPC_CASTAWAY (SP_NPC_START + 123) // D07B
|
||||
#define SP_NPC_MAJIN_D07C (SP_NPC_START + 124) // D07C
|
||||
#define SP_NPC_MAJIN_D07D (SP_NPC_START + 125) // D07D
|
||||
#define SP_NPC_MAJIN_BROTHER (SP_NPC_START + 126) // D07E
|
||||
|
||||
Reference in New Issue
Block a user