Implement ac_my_room_msg_ctrl.c_inc

This commit is contained in:
Cuyler36
2024-04-04 04:34:22 -04:00
parent 5083c7f2ba
commit 97c4e85ada
17 changed files with 2427 additions and 340 deletions
+2 -1
View File
@@ -21,4 +21,5 @@ section_defs:
bss:
- name: .bss
balign: 4
- name: .sbss
- name: .sbss
label_prefix: ".L"
+2 -1
View File
@@ -1,4 +1,5 @@
path: dump/foresta.rel
address: 0x803701C0
bss_address: 0x8125A7C0
dol: config/dol.yml
dol: config/dol.yml
label_prefix: ".L"
+86 -87
View File
@@ -21,7 +21,7 @@ extern "C" {
#define NESTAG_GID "GID"
#define NESTAG_GNM "GNM"
#define NESTAG_CPN "CPN"
#define NESTAG_OFS "OFS" /* Offset into the shared highscore data to read/write at */
#define NESTAG_OFS "OFS" /* Offset into the shared highscore data to read/write at */
#define NESTAG_HSC "HSC"
#define NESTAG_GNO "GNO"
#define NESTAG_BBR "BBR"
@@ -47,122 +47,122 @@ typedef void* (*MALLOC_ALIGN_FUNC)(size_t size, u32 align);
typedef void (*MALLOC_FREE_FUNC)(void* ptr);
typedef int (*MALLOC_GETMEMBLOCKSIZE_FUNC)(void* ptr);
typedef int (*MALLOC_GETTOTALFREESIZE_FUNC)();
typedef struct malloc_s {
MALLOC_ALIGN_FUNC malloc_align;
MALLOC_FREE_FUNC free;
MALLOC_GETMEMBLOCKSIZE_FUNC getmemblocksize;
MALLOC_GETTOTALFREESIZE_FUNC gettotalfreesize;
MALLOC_ALIGN_FUNC malloc_align;
MALLOC_FREE_FUNC free;
MALLOC_GETMEMBLOCKSIZE_FUNC getmemblocksize;
MALLOC_GETTOTALFREESIZE_FUNC gettotalfreesize;
} Famicom_MallocInfo;
enum filer_demo_mode {
FILER_DEMO_MODE_NORMAL,
FILER_DEMO_MODE_AUTO,
FILER_DEMO_MODE_NORMAL,
FILER_DEMO_MODE_AUTO,
FILER_DEMO_MODE_NUM
FILER_DEMO_MODE_NUM
};
#define FAMICOM_SAVE_DATA_NAME_LEN 8
#define FAMICOM_MORI_NAME_LEN 16
typedef struct FamicomSaveDataHeader {
u8 name[FAMICOM_SAVE_DATA_NAME_LEN];
u8 _08;
u8 _09;
u8 headerSize;
u8 checksum;
u16 size;
u8 no_save;
u8 _temp[FAMICOM_SAVE_HEADER_SIZE - 0x000F];
u8 name[FAMICOM_SAVE_DATA_NAME_LEN];
u8 _08;
u8 _09;
u8 headerSize;
u8 checksum;
u16 size;
u8 no_save;
u8 _temp[FAMICOM_SAVE_HEADER_SIZE - 0x000F];
} FamicomSaveDataHeader;
enum {
MEMCARD_COMMENT_TYPE_NONE,
MEMCARD_COMMENT_TYPE_DEFAULT,
MEMCARD_COMMENT_TYPE_COPY_ROM, // converts rom's comment but converts "] ROM" to "] SAVE"
MEMCARD_COMMENT_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' comment
MEMCARD_COMMENT_TYPE_NONE,
MEMCARD_COMMENT_TYPE_DEFAULT,
MEMCARD_COMMENT_TYPE_COPY_ROM, // converts rom's comment but converts "] ROM" to "] SAVE"
MEMCARD_COMMENT_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' comment
};
enum {
MEMCARD_BANNER_TYPE_NONE,
MEMCARD_BANNER_TYPE_DEFAULT,
MEMCARD_BANNER_TYPE_COPY_ROM, // copies the NES rom save's banner
MEMCARD_BANNER_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' banner
MEMCARD_BANNER_TYPE_NONE,
MEMCARD_BANNER_TYPE_DEFAULT,
MEMCARD_BANNER_TYPE_COPY_ROM, // copies the NES rom save's banner
MEMCARD_BANNER_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' banner
};
enum {
MEMCARD_ICON_TYPE_NONE,
MEMCARD_ICON_TYPE_DEFAULT,
MEMCARD_ICON_TYPE_COPY_ROM, // copies the NES rom save's icon
MEMCARD_ICON_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' icon
MEMCARD_ICON_TYPE_NONE,
MEMCARD_ICON_TYPE_DEFAULT,
MEMCARD_ICON_TYPE_COPY_ROM, // copies the NES rom save's icon
MEMCARD_ICON_TYPE_COPY_EMBEDDED // uses the embedded and unique 'save' icon
};
enum {
FAMICOM_RESULT_OK,
FAMICOM_RESULT_NOSPACE,
FAMICOM_RESULT_NOENTRY,
FAMICOM_RESULT_BROKEN,
FAMICOM_RESULT_WRONGDEVICE,
FAMICOM_RESULT_WRONGENCODING,
FAMICOM_RESULT_NOCARD,
FAMICOM_RESULT_NOFILE
FAMICOM_RESULT_OK,
FAMICOM_RESULT_NOSPACE,
FAMICOM_RESULT_NOENTRY,
FAMICOM_RESULT_BROKEN,
FAMICOM_RESULT_WRONGDEVICE,
FAMICOM_RESULT_WRONGENCODING,
FAMICOM_RESULT_NOCARD,
FAMICOM_RESULT_NOFILE
};
typedef struct MemcardGameHeader_t {
u8 _00;
u8 _01;
u8 mori_name[16];
u16 nesrom_size;
u16 nestags_size;
u16 icon_format;
u16 icon_flags;
u16 comment_img_size; /* Size of comment + banner + icon */
struct {
u8 has_comment_img:1;
u8 comment_type:2;
u8 banner_type:2;
u8 icon_type:2;
u8 no_copy_flag:1;
} flags0;
struct {
u8 no_move_flag:1;
u8 banner_fmt:2;
u8 reserved:5;
} flags1;
u16 pad;
u8 _00;
u8 _01;
u8 mori_name[FAMICOM_MORI_NAME_LEN];
u16 nesrom_size;
u16 nestags_size;
u16 icon_format;
u16 icon_flags;
u16 comment_img_size; /* Size of comment + banner + icon */
struct {
u8 has_comment_img : 1;
u8 comment_type : 2;
u8 banner_type : 2;
u8 icon_type : 2;
u8 no_copy_flag : 1;
} flags0;
struct {
u8 no_move_flag : 1;
u8 banner_fmt : 2;
u8 reserved : 5;
} flags1;
u16 pad;
} MemcardGameHeader_t;
/* sizeof (FamicomCommon) == 0xB8 */
typedef struct FamicomCommon {
/* 0x00 */ ksNesCommonWorkObj* wp;
/* 0x04 */ ksNesStateObj* sp;
/* 0x08 */ u8* nesromp;
/* 0x0C */ u8* chrramp;
/* 0x10 */ u8* bbramp;
/* 0x14 */ u8* noise_bufp;
/* 0x18 */ u8* chr_to_i8_bufp;
/* 0x1C */ u8* result_bufp;
/* 0x20 */ u8* highscore_flagsp;
/* 0x24 */ u8* nesinfo_tagsp;
/* 0x28 */ int _28;
/* 0x2C */ u8 nesrom_memcard; // TRUE: rom is loaded from memcard, FALSE: rom is loaded internally
/* 0x2D */ u8 rom_no;
/* 0x2E */ s8 save_pl_no;
/* 0x2F */ u8 mura_save_name[33];
/* 0x50 */ u8 famicom_save_name[33];
/* 0x74 */ FamicomSaveDataHeader* save_data_header;
/* 0x78 */ u8* internal_save_datap;
/* 0x7C */ size_t save_data_total_size;
/* 0x80 */ size_t save_data_single_size;
/* 0x84 */ int _84;
/* 0x88 */ u8* save_data_name;
/* 0x8C */ u8 _8C;
/* 0x8D */ u8 low_res_mode;
/* 0x8E */ MemcardGameHeader_t memcard_game_header;
/* 0xB0 */ u8* memcard_save_comment;
/* 0xB4 */ size_t unused_save_data_start_ofs;
/* 0x00 */ ksNesCommonWorkObj* wp;
/* 0x04 */ ksNesStateObj* sp;
/* 0x08 */ u8* nesromp;
/* 0x0C */ u8* chrramp;
/* 0x10 */ u8* bbramp;
/* 0x14 */ u8* noise_bufp;
/* 0x18 */ u8* chr_to_i8_bufp;
/* 0x1C */ u8* result_bufp;
/* 0x20 */ u8* highscore_flagsp;
/* 0x24 */ u8* nesinfo_tagsp;
/* 0x28 */ int _28;
/* 0x2C */ u8 nesrom_memcard; // TRUE: rom is loaded from memcard, FALSE: rom is loaded internally
/* 0x2D */ u8 rom_no;
/* 0x2E */ s8 save_pl_no;
/* 0x2F */ u8 mura_save_name[33];
/* 0x50 */ u8 famicom_save_name[33];
/* 0x74 */ FamicomSaveDataHeader* save_data_header;
/* 0x78 */ u8* internal_save_datap;
/* 0x7C */ size_t save_data_total_size;
/* 0x80 */ size_t save_data_single_size;
/* 0x84 */ int _84;
/* 0x88 */ u8* save_data_name;
/* 0x8C */ u8 _8C;
/* 0x8D */ u8 low_res_mode;
/* 0x8E */ MemcardGameHeader_t memcard_game_header;
/* 0xB0 */ u8* memcard_save_comment;
/* 0xB4 */ size_t unused_save_data_start_ofs;
} FamicomCommon;
extern Famicom_MallocInfo* my_malloc_current;
extern u8 save_game_image;
extern u8** nesrom_filename_ptrs;
@@ -213,7 +213,6 @@ extern u8* nesinfo_get_moriName();
extern void nesinfo_init();
extern void highscore_setup_flags(u8* flags);
#ifdef __cplusplus
}
#endif
+1 -1
View File
@@ -220,7 +220,7 @@ struct furniture_actor_s {
f32 dynamic_work_f[2]; /* reserved for any use by each unique furniture actor */
s16 layer; /* layer the furniture actor resides on */
s16 _83E;
s16 open_music_disk; /* set when a music player is interacted with */
s16 demo_status; /* set when a music player is interacted with */
s16 dust_timer;
mActor_name_t items[aFTR_KEEP_ITEM_COUNT]; /* used for holding items (music players & wardrobes) */
int _84C;
+10 -5
View File
@@ -15,12 +15,12 @@ extern "C" {
#define MONO(id) (id | 0x1000)
#define SE_FLAG_15(id) (id | 0x8000)
//TODO: Make the rest of Sound Effects with parameters
// TODO: Make the rest of Sound Effects with parameters
#define SE_REGISTER MONO(0x50)
typedef enum audio_sound_effects{
typedef enum audio_sound_effects {
NA_SE_START,
NA_SE_CURSOL,
NA_SE_CURSOL,
NA_SE_MENU_EXIT,
NA_SE_ZOOMUP = 4,
@@ -109,14 +109,19 @@ typedef enum audio_sound_effects{
NA_SE_KARABURI = 0x43A,
NA_SE_ROD_STROKE_SMALL = 0x445,
NA_SE_SCOOP_TREE_HIT = 0x448,
NA_SE_SCOOP_ITEM_HIT,
NA_SE_AXE_BALL_HIT,
NA_SE_COIN_GASAGOSO = 0x465,
}AudioSE;
} AudioSE;
typedef enum bgm_e {
BGM_MD0 = 128,
} BGM_e;
#ifdef __cplusplus
}
+3 -3
View File
@@ -11,7 +11,7 @@ extern "C" {
/* sizeof(struct game_famicom_emu_s) == 0xE0 */
typedef struct game_famicom_emu_s {
/* 0x00 */ GAME game;
/* 0x00 */ GAME game;
} GAME_FAMICOM_EMU;
extern Famicom_MallocInfo my_malloc_func;
@@ -19,8 +19,8 @@ extern Famicom_MallocInfo my_malloc_func;
extern void famicom_emu_main(GAME* game);
extern void famicom_emu_init(GAME* game);
extern void famicom_emu_cleanup(GAME* game);
extern int famicom_gba_getImage(u32 rom_id, int* ptr);
extern void famicom_gba_removeImage(void* );
extern void* famicom_gba_getImage(u32 rom_id, size_t* size);
extern void famicom_gba_removeImage(void*);
#ifdef __cplusplus
}
+8 -8
View File
@@ -12,12 +12,12 @@ extern "C" {
#endif
typedef struct {
u16 mFileID; // _00
u16 mHash; // _02
u32 mFlag; // _04
u32 mDataOffset; // _08
u32 mSize; // _0C
void* mData; // _10
u16 mFileID; // _00
u16 mHash; // _02
u32 mFlag; // _04
u32 mDataOffset; // _08
u32 mSize; // _0C
void* mData; // _10
} CSDIFileEntry;
extern void* JC_JFWSystem_getSystemConsole();
@@ -116,8 +116,8 @@ extern void* JC_JUTFader_new(int ul_x, int ul_y, int br_x, int br_y, u32* color)
extern void JC_JUTFader_delete(void* fader);
extern void JC_JFWDisplay_changeToDoubleXfb(void* manager);
extern u32 JC__JKRGetResource(char* resourceName);
extern int JC__JKRGetMemBlockSize(int, u32);
extern void* JC__JKRGetResource(const char* resourceName);
extern u32 JC__JKRGetMemBlockSize(int, void*);
extern void JC__JKRRemoveResource(void* res);
+69 -61
View File
@@ -15,94 +15,94 @@ typedef struct choice_s mChoice_c;
typedef struct choice_data_s mChoice_Data_c;
enum choice {
mChoice_CHOICE0,
mChoice_CHOICE1,
mChoice_CHOICE2,
mChoice_CHOICE3,
mChoice_CHOICE4,
mChoice_CHOICE5,
mChoice_CHOICE0,
mChoice_CHOICE1,
mChoice_CHOICE2,
mChoice_CHOICE3,
mChoice_CHOICE4,
mChoice_CHOICE5,
mChoice_CHOICE_NUM
mChoice_CHOICE_NUM
};
enum {
mChoice_AUTOMOVE_STOPPED,
mChoice_AUTOMOVE_INCREMENT_WAIT,
mChoice_AUTOMOVE_INCREMENT,
mChoice_AUTOMOVE_DECREMENT_WAIT,
mChoice_AUTOMOVE_DECREMENT,
mChoice_AUTOMOVE_STOPPED,
mChoice_AUTOMOVE_INCREMENT_WAIT,
mChoice_AUTOMOVE_INCREMENT,
mChoice_AUTOMOVE_DECREMENT_WAIT,
mChoice_AUTOMOVE_DECREMENT,
mChoice_AUTOMOVE_NUM
mChoice_AUTOMOVE_NUM
};
enum {
mChoice_MAIN_HIDE,
mChoice_MAIN_APPEAR,
mChoice_MAIN_NORMAL,
mChoice_MAIN_DISAPPEAR,
mChoice_MAIN_HIDE,
mChoice_MAIN_APPEAR,
mChoice_MAIN_NORMAL,
mChoice_MAIN_DISAPPEAR,
mChoice_MAIN_INDEX_NUM
mChoice_MAIN_INDEX_NUM
};
struct choice_data_s {
u8 strings[mChoice_CHOICE_NUM][mChoice_CHOICE_STRING_LEN];
int string_lens[mChoice_CHOICE_NUM];
u8 determination_string[mChoice_CHOICE_STRING_LEN];
int determination_len;
int choice_num;
int selected_choice_idx;
u8 strings[mChoice_CHOICE_NUM][mChoice_CHOICE_STRING_LEN];
int string_lens[mChoice_CHOICE_NUM];
u8 determination_string[mChoice_CHOICE_STRING_LEN];
int determination_len;
int choice_num;
int selected_choice_idx;
};
struct choice_s {
/* Current XY position (centered) */
/* 0x00 */ f32 center_x;
/* 0x04 */ f32 center_y;
/* Current XY position (centered) */
/* 0x00 */ f32 center_x;
/* 0x04 */ f32 center_y;
/* Initial XY position */
/* 0x08 */ f32 center_x_begin;
/* 0x0C */ f32 center_y_begin;
/* Initial XY position */
/* 0x08 */ f32 center_x_begin;
/* 0x0C */ f32 center_y_begin;
/* Target XY position */
/* 0x10 */ f32 center_x_target;
/* 0x14 */ f32 center_y_target;
/* Target XY position */
/* 0x10 */ f32 center_x_target;
/* 0x14 */ f32 center_y_target;
/* Text settings */
/* 0x18 */ rgba_t text_color;
/* 0x1C */ f32 text_scale_x;
/* 0x20 */ f32 text_scale_y;
/* 0x24 */ f32 text_x;
/* 0x28 */ f32 text_y;
/* Text settings */
/* 0x18 */ rgba_t text_color;
/* 0x1C */ f32 text_scale_x;
/* 0x20 */ f32 text_scale_y;
/* 0x24 */ f32 text_x;
/* 0x28 */ f32 text_y;
/* Window scaling XY */
/* 0x2C */ f32 scale_x;
/* 0x30 */ f32 scale_y;
/* Window scaling XY */
/* 0x2C */ f32 scale_x;
/* 0x30 */ f32 scale_y;
/* Text related data */
/* 0x34 */ mChoice_Data_c data;
/* Text related data */
/* 0x34 */ mChoice_Data_c data;
/* 0xC8 */ int selected_choice_idx;
/* 0xCC */ rgba_t selected_choice_text_color;
/* 0xD0 */ rgba_t background_color;
/* 0xC8 */ int selected_choice_idx;
/* 0xCC */ rgba_t selected_choice_text_color;
/* 0xD4 */ f32 _D4;
/* 0xD8 */ f32 _D8;
/* 0xD0 */ rgba_t background_color;
/* 0xDC */ f32 scale; // total choice window scaling percentage
/* 0xD4 */ f32 _D4;
/* 0xD8 */ f32 _D8;
/* 0xE0 */ int main_index;
/* 0xE4 */ int requested_main_index;
/* 0xDC */ f32 scale; // total choice window scaling percentage
/* 0xE8 */ int window_visible_flag;
/* 0xEC */ int font_visible_flag;
/* 0xE0 */ int main_index;
/* 0xE4 */ int requested_main_index;
/* 0xF0 */ int choice_automove_type;
/* 0xF4 */ f32 choice_automove_timer;
/* 0xE8 */ int window_visible_flag;
/* 0xEC */ int font_visible_flag;
/* 0xF8 */ f32 timer;
/* 0xF0 */ int choice_automove_type;
/* 0xF4 */ f32 choice_automove_timer;
/* 0xFC */ u8 no_b_flag; // can't press B to select last option
/* 0xFD */ u8 no_close_flag; // pressing B won't auto-cancel the choice selection?
/* 0xF8 */ f32 timer;
/* 0xFC */ u8 no_b_flag; // can't press B to select last option
/* 0xFD */ u8 no_close_flag; // pressing B won't auto-cancel the choice selection?
};
extern void mChoice_Main(mChoice_c* choice, GAME* game);
@@ -114,13 +114,21 @@ extern mChoice_c* mChoice_Get_base_window_p();
extern void mChoice_Change_request_main_index(mChoice_c* choice, int request_main_index);
extern int mChoice_check_main_index(mChoice_c* choice);
extern int mChoice_check_main_normal(mChoice_c* choice);
extern void mChoice_Set_choice_data( mChoice_c* choice, u8* str0, int str0_len, u8* str1, int str1_len, u8* str2, int str2_len, u8* str3, int str3_len, u8* str4, int str4_len, u8* str5, int str5_len);
extern void mChoice_Set_choice_data(mChoice_c* choice, u8* str0, int str0_len, u8* str1, int str1_len, u8* str2,
int str2_len, u8* str3, int str3_len, u8* str4, int str4_len, u8* str5,
int str5_len);
extern int mChoice_Get_ChoseNum(mChoice_c* choice);
extern void mChoice_Clear_ChoseNum(mChoice_c* choice);
extern void mChoice_Load_ChoseStringFromRom(mChoice_c* choice, u8* str, int str_no, ACTOR* actor);
extern void mChoice_no_b_set(mChoice_c* choice);
extern void mChoice_no_b_close_set(mChoice_c* choice);
/* Macros */
#define mChoice_GET_CHOSENUM() mChoice_Get_ChoseNum(mChoice_Get_base_window_p())
#define mChoice_CLEAR_CHOSENUM() mChoice_Clear_ChoseNum(mChoice_Get_base_window_p())
#define mChoice_NO_B_SET() mChoice_no_b_set(mChoice_Get_base_window_p())
#define mChoice_NO_B_CLOSE_SET() mChoice_no_b_close_set(mChoice_Get_base_window_p())
#ifdef __cplusplus
}
#endif
+2
View File
@@ -341,6 +341,8 @@ extern common_data_t common_data;
#define Player_Palette_Get(idx) (Common_Get(now_private->my_org[idx].palette))
#define Player_Design_Get(idx) (Common_GetPointer(now_private->my_org[idx].design))
#define Now_Private (Common_Get(now_private))
#define Able_Sisters_Palette_Get(idx) (Save_Get(needlework.original_design[idx].palette))
#define Able_Sisters_Design_Get(idx) (Save_GetPointer(needlework.original_design[idx].design))
#define Able_Sisters_Cloth_Palette_Get(idx) (Able_Sisters_Palette_Get(idx))
+186 -160
View File
@@ -21,86 +21,86 @@ extern "C" {
#define mMsg_BUTTON_TURN_TIME 60.0f
enum {
mMsg_INDEX_HIDE,
mMsg_INDEX_APPEAR,
mMsg_INDEX_NORMAL,
mMsg_INDEX_CURSOL,
mMsg_INDEX_DISAPPEAR,
mMsg_INDEX_APPEAR_WAIT,
mMsg_INDEX_WAIT,
mMsg_INDEX_DISAPPEAR_WAIT,
mMsg_INDEX_HIDE,
mMsg_INDEX_APPEAR,
mMsg_INDEX_NORMAL,
mMsg_INDEX_CURSOL,
mMsg_INDEX_DISAPPEAR,
mMsg_INDEX_APPEAR_WAIT,
mMsg_INDEX_WAIT,
mMsg_INDEX_DISAPPEAR_WAIT,
mMsg_INDEX_NUM
mMsg_INDEX_NUM
};
enum {
mMsg_FREE_STR0,
mMsg_FREE_STR1,
mMsg_FREE_STR2,
mMsg_FREE_STR3,
mMsg_FREE_STR4,
mMsg_FREE_STR5,
mMsg_FREE_STR6,
mMsg_FREE_STR7,
mMsg_FREE_STR8,
mMsg_FREE_STR9,
mMsg_FREE_STR10,
mMsg_FREE_STR11,
mMsg_FREE_STR12,
mMsg_FREE_STR13,
mMsg_FREE_STR14,
mMsg_FREE_STR15,
mMsg_FREE_STR16,
mMsg_FREE_STR17,
mMsg_FREE_STR18,
mMsg_FREE_STR19,
mMsg_FREE_STR0,
mMsg_FREE_STR1,
mMsg_FREE_STR2,
mMsg_FREE_STR3,
mMsg_FREE_STR4,
mMsg_FREE_STR5,
mMsg_FREE_STR6,
mMsg_FREE_STR7,
mMsg_FREE_STR8,
mMsg_FREE_STR9,
mMsg_FREE_STR10,
mMsg_FREE_STR11,
mMsg_FREE_STR12,
mMsg_FREE_STR13,
mMsg_FREE_STR14,
mMsg_FREE_STR15,
mMsg_FREE_STR16,
mMsg_FREE_STR17,
mMsg_FREE_STR18,
mMsg_FREE_STR19,
mMsg_FREE_STR_NUM
mMsg_FREE_STR_NUM
};
enum {
mMsg_ITEM_STR0,
mMsg_ITEM_STR1,
mMsg_ITEM_STR2,
mMsg_ITEM_STR3,
mMsg_ITEM_STR4,
mMsg_ITEM_STR0,
mMsg_ITEM_STR1,
mMsg_ITEM_STR2,
mMsg_ITEM_STR3,
mMsg_ITEM_STR4,
mMsg_ITEM_STR_NUM
mMsg_ITEM_STR_NUM
};
enum {
mMsg_MAIL_STR0,
mMsg_MAIL_STR0,
mMsg_MAIL_STR_NUM
mMsg_MAIL_STR_NUM
};
enum {
mMsg_RESULT_VOID,
mMsg_RESULT_FALSE,
mMsg_RESULT_TRUE,
mMsg_RESULT_VOID,
mMsg_RESULT_FALSE,
mMsg_RESULT_TRUE,
mMsg_RESULT_NUM
mMsg_RESULT_NUM
};
#define mMsg_STATUS_FLAG_SOUND_CUT (1 << 0) // 0x000001
#define mMsg_STATUS_FLAG_SOUND_CUT (1 << 0) // 0x000001
#define mMsg_STATUS_FLAG_NO_SE_PAGE_OKURI (1 << 1) // 0x000002
#define mMsg_STATUS_FLAG_NO_ZOOMUP (1 << 2) // 0x000004
#define mMsg_STATUS_FLAG_LAST_DELAY (1 << 3) // 0x000008
#define mMsg_STATUS_FLAG_SPEC_VOICE (1 << 4) // 0x000010
#define mMsg_STATUS_FLAG_VOICE_ENTRY (1 << 5) // 0x000020
#define mMsg_STATUS_FLAG_IDLING_REQ (1 << 6) // 0x000040
#define mMsg_STATUS_FLAG_IDLING_NOW (1 << 7) // 0x000080
#define mMsg_STATUS_FLAG_FAST_TEXT (1 << 8) // 0x000100
#define mMsg_STATUS_FLAG_NOT_PAUSE_FRAME (1 << 9) // 0x000200
#define mMsg_STATUS_FLAG_UTTER (1 << 10) // 0x000400
#define mMsg_STATUS_FLAG_NO_ZOOMDOWN (1 << 11) /* When set, mMsg_sound_ZOOMDOWN_[SHORT, LONG]() sfx will not play */
#define mMsg_STATUS_FLAG_VOICE_CLICK (1 << 12) // 0x001000
#define mMsg_STATUS_FLAG_VOICE_SILENT (1 << 13) // 0x002000
#define mMsg_STATUS_FLAG_CURSOL_JUST (1 << 14) /* Sets cursor justification */
#define mMsg_STATUS_FLAG_CUT_ARTICLE (1 << 15) // 0x008000
#define mMsg_STATUS_FLAG_CAPITALIZE (1 << 16) // 0x010000
#define mMsg_STATUS_FLAG_USE_AM (1 << 17) /* 'AM' when set, 'PM' when not set */
#define mMsg_STATUS_FLAG_18 (1 << 18) // 0x040000
#define mMsg_STATUS_FLAG_NO_ZOOMUP (1 << 2) // 0x000004
#define mMsg_STATUS_FLAG_LAST_DELAY (1 << 3) // 0x000008
#define mMsg_STATUS_FLAG_SPEC_VOICE (1 << 4) // 0x000010
#define mMsg_STATUS_FLAG_VOICE_ENTRY (1 << 5) // 0x000020
#define mMsg_STATUS_FLAG_IDLING_REQ (1 << 6) // 0x000040
#define mMsg_STATUS_FLAG_IDLING_NOW (1 << 7) // 0x000080
#define mMsg_STATUS_FLAG_FAST_TEXT (1 << 8) // 0x000100
#define mMsg_STATUS_FLAG_NOT_PAUSE_FRAME (1 << 9) // 0x000200
#define mMsg_STATUS_FLAG_UTTER (1 << 10) // 0x000400
#define mMsg_STATUS_FLAG_NO_ZOOMDOWN (1 << 11) /* When set, mMsg_sound_ZOOMDOWN_[SHORT, LONG]() sfx will not play */
#define mMsg_STATUS_FLAG_VOICE_CLICK (1 << 12) // 0x001000
#define mMsg_STATUS_FLAG_VOICE_SILENT (1 << 13) // 0x002000
#define mMsg_STATUS_FLAG_CURSOL_JUST (1 << 14) /* Sets cursor justification */
#define mMsg_STATUS_FLAG_CUT_ARTICLE (1 << 15) // 0x008000
#define mMsg_STATUS_FLAG_CAPITALIZE (1 << 16) // 0x010000
#define mMsg_STATUS_FLAG_USE_AM (1 << 17) /* 'AM' when set, 'PM' when not set */
#define mMsg_STATUS_FLAG_18 (1 << 18) // 0x040000
typedef struct message_window_s mMsg_Window_c;
typedef struct message_data_s mMsg_Data_c;
@@ -108,160 +108,160 @@ typedef struct message_data_s mMsg_Data_c;
/* These are hinted at due to the 8-byte alignment forced onto these structs */
typedef struct {
int saved_main_index;
int saved_main_index;
} mMsg_MainAppearWait_Data_c;
typedef struct {
int saved_main_index;
int saved_main_index;
} mMsg_MainDisappearWait_Data_c;
typedef struct {
int last_main_index;
int last_main_index;
} mMsg_MainWait_Data_c;
typedef union {
mMsg_MainAppearWait_Data_c main_appear_wait;
mMsg_MainDisappearWait_Data_c main_disappear_wait;
mMsg_MainWait_Data_c main_wait;
u64 align;
mMsg_MainAppearWait_Data_c main_appear_wait;
mMsg_MainDisappearWait_Data_c main_disappear_wait;
mMsg_MainWait_Data_c main_wait;
u64 align;
} mMsg_Main_Data_c;
typedef struct {
ACTOR* speaker_actor;
int msg_no;
int name_shown_flag;
rgba_t window_color;
ACTOR* speaker_actor;
int msg_no;
int name_shown_flag;
rgba_t window_color;
} mMsg_Request_MainAppear_Data_c;
typedef struct {
int last_main_index;
u32 setup_flag;
int last_main_index;
u32 setup_flag;
} mMsg_Request_MainAppearWait_Data_c;
typedef struct {
int wait_flag;
int wait_flag;
} mMsg_Request_MainCursor_Data_c;
typedef struct {
int last_main_index;
int last_main_index;
} mMsg_Request_MainDisappearWait_Data_c;
typedef struct {
int wait_flag;
int wait_flag;
} mMsg_Request_MainNormal_Data_c;
typedef struct {
int last_main_index;
int last_main_index;
} mMsg_Request_MainWait_Data_c;
typedef union {
mMsg_Request_MainAppear_Data_c request_main_appear;
mMsg_Request_MainAppearWait_Data_c request_main_appear_wait;
mMsg_Request_MainCursor_Data_c request_main_cursor;
mMsg_Request_MainDisappearWait_Data_c request_main_disappear_wait;
mMsg_Request_MainNormal_Data_c request_main_normal;
mMsg_Request_MainWait_Data_c request_main_wait;
u64 align;
mMsg_Request_MainAppear_Data_c request_main_appear;
mMsg_Request_MainAppearWait_Data_c request_main_appear_wait;
mMsg_Request_MainCursor_Data_c request_main_cursor;
mMsg_Request_MainDisappearWait_Data_c request_main_disappear_wait;
mMsg_Request_MainNormal_Data_c request_main_normal;
mMsg_Request_MainWait_Data_c request_main_wait;
u64 align;
} mMsg_Request_Data_c;
typedef union {
u8 data[mMsg_MSG_BUF_SIZE] ATTRIBUTE_ALIGN(32);
u64 align;
u8 data[mMsg_MSG_BUF_SIZE] ATTRIBUTE_ALIGN(32);
u64 align;
} mMsg_MsgBuf_c;
struct message_data_s {
int data_loaded;
int msg_no;
int msg_len;
int cut;
int data_loaded;
int msg_no;
int msg_len;
int cut;
mMsg_MsgBuf_c text_buf;
mMsg_MsgBuf_c text_buf;
};
struct message_window_s {
/* 0x000 */ int data_loaded;
/* 0x004 */ int msg_no;
/* 0x008 */ int _008;
/* 0x00C */ mMsg_Data_c* msg_data;
/* 0x010 */ f32 center_x;
/* 0x014 */ f32 center_y;
/* 0x018 */ f32 width;
/* 0x01C */ f32 height;
/* 0x020 */ ACTOR* client_actor_p;
/* 0x024 */ int show_actor_name;
/* 0x028 */ int client_name_len;
/* 0x02C */ f32 nameplate_x;
/* 0x030 */ f32 nameplate_y;
/* 0x000 */ int data_loaded;
/* 0x004 */ int msg_no;
/* 0x008 */ int _008;
/* 0x00C */ mMsg_Data_c* msg_data;
/* 0x010 */ f32 center_x;
/* 0x014 */ f32 center_y;
/* 0x018 */ f32 width;
/* 0x01C */ f32 height;
/* 0x034 */ int show_continue_button;
/* 0x020 */ ACTOR* client_actor_p;
/* 0x024 */ int show_actor_name;
/* 0x028 */ int client_name_len;
/* 0x02C */ f32 nameplate_x;
/* 0x030 */ f32 nameplate_y;
/* 0x038 */ u8 free_str[mMsg_FREE_STR_NUM][mMsg_FREE_STRING_LEN];
/* 0x178 */ int free_str_article[mMsg_FREE_STR_NUM];
/* 0x034 */ int show_continue_button;
/* 0x1C8 */ u8 item_str[mMsg_ITEM_STR_NUM][mIN_ITEM_NAME_LEN];
/* 0x218 */ int item_str_article[mMsg_ITEM_STR_NUM];
/* 0x038 */ u8 free_str[mMsg_FREE_STR_NUM][mMsg_FREE_STRING_LEN];
/* 0x178 */ int free_str_article[mMsg_FREE_STR_NUM];
/* 0x22C */ u8 mail_str[mMsg_MAIL_STR_NUM][mMsg_MAIL_STRING_LEN];
/* 0x1C8 */ u8 item_str[mMsg_ITEM_STR_NUM][mIN_ITEM_NAME_LEN];
/* 0x218 */ int item_str_article[mMsg_ITEM_STR_NUM];
/* 0x2B0 */ rgba_t name_text_color;
/* 0x2B4 */ rgba_t name_background_color;
/* 0x22C */ u8 mail_str[mMsg_MAIL_STR_NUM][mMsg_MAIL_STRING_LEN];
/* 0x2B8 */ rgba_t window_background_color;
/* 0x2BC */ rgba_t font_color[mMsg_MAX_LINE];
/* 0x2B0 */ rgba_t name_text_color;
/* 0x2B4 */ rgba_t name_background_color;
/* 0x2CC */ rgba_t continue_button_color;
/* 0x2B8 */ rgba_t window_background_color;
/* 0x2BC */ rgba_t font_color[mMsg_MAX_LINE];
/* 0x2D0 */ f32 font_scale_x;
/* 0x2D4 */ f32 font_scale_y;
/* 0x2CC */ rgba_t continue_button_color;
/* 0x2D8 */ int _2D8;
/* 0x2DC */ int _2DC;
/* 0x2D0 */ f32 font_scale_x;
/* 0x2D4 */ f32 font_scale_y;
/* 0x2E0 */ int text_lines;
/* 0x2E4 */ int now_display_line;
/* 0x2D8 */ int _2D8;
/* 0x2DC */ int _2DC;
/* 0x2E8 */ mChoice_c choice_window;
/* 0x2E0 */ int text_lines;
/* 0x2E4 */ int now_display_line;
/* 0x3E8 */ int _3E8;
/* 0x2E8 */ mChoice_c choice_window;
/* 0x3EC */ u16 end_timer;
/* 0x3EE */ s16 animal_voice_idx;
/* 0x3F0 */ int voice_sfx_idx;
/* 0x3F4 */ u8 voice_idx;
/* 0x3F5 */ u8 voice2_idx;
/* 0x3F6 */ u8 voice3_idx;
/* 0x3F7 */ s8 hide_choice_window_timer;
/* 0x3F8 */ u8 force_voice_enable_flag;
/* 0x3FC */ int spec;
/* 0x400 */ u8 free_str_color_idx[4];
/* 0x408 */ u8 _404[8]; // unused?
/* 0x40C */ u32 status_flags;
/* 0x3E8 */ int _3E8;
/* 0x410 */ f32 timer;
/* 0x414 */ f32 cursor_timer;
/* 0x418 */ f32 continue_button_timer;
/* 0x3EC */ u16 end_timer;
/* 0x3EE */ s16 animal_voice_idx;
/* 0x3F0 */ int voice_sfx_idx;
/* 0x3F4 */ u8 voice_idx;
/* 0x3F5 */ u8 voice2_idx;
/* 0x3F6 */ u8 voice3_idx;
/* 0x3F7 */ s8 hide_choice_window_timer;
/* 0x3F8 */ u8 force_voice_enable_flag;
/* 0x3FC */ int spec;
/* 0x400 */ u8 free_str_color_idx[4];
/* 0x408 */ u8 _404[8]; // unused?
/* 0x40C */ u32 status_flags;
/* 0x41C */ int start_text_cursor_idx;
/* 0x420 */ int end_text_cursor_idx;
/* 0x424 */ f32 window_scale;
/* 0x428 */ f32 text_scale;
/* 0x410 */ f32 timer;
/* 0x414 */ f32 cursor_timer;
/* 0x418 */ f32 continue_button_timer;
/* 0x42C */ int requested_main_index;
/* 0x430 */ int requested_priority;
/* 0x41C */ int start_text_cursor_idx;
/* 0x420 */ int end_text_cursor_idx;
/* 0x424 */ f32 window_scale;
/* 0x428 */ f32 text_scale;
/* 0x434 */ int main_index;
/* 0x438 */ int draw_flag;
/* 0x43C */ int cancel_flag;
/* 0x440 */ int cancelable_flag;
/* 0x444 */ int continue_msg_no;
/* 0x448 */ int continue_cancel_flag;
/* 0x44C */ int force_next;
/* 0x450 */ int lock_continue;
/* 0x454 */ u8 now_utter;
/* 0x42C */ int requested_main_index;
/* 0x430 */ int requested_priority;
/* 0x458 */ mMsg_Main_Data_c main_data;
/* 0x460 */ mMsg_Request_Data_c request_data;
/* 0x434 */ int main_index;
/* 0x438 */ int draw_flag;
/* 0x43C */ int cancel_flag;
/* 0x440 */ int cancelable_flag;
/* 0x444 */ int continue_msg_no;
/* 0x448 */ int continue_cancel_flag;
/* 0x44C */ int force_next;
/* 0x450 */ int lock_continue;
/* 0x454 */ u8 now_utter;
/* 0x458 */ mMsg_Main_Data_c main_data;
/* 0x460 */ mMsg_Request_Data_c request_data;
};
extern void mMsg_aram_init();
@@ -279,7 +279,8 @@ extern int mMsg_Check_not_series_main_wait(mMsg_Window_c* msg_p);
extern int mMsg_Check_main_hide(mMsg_Window_c* msg_p);
extern int mMsg_request_main_forceoff();
extern int mMsg_request_main_disappear(mMsg_Window_c* msg_p);
extern int mMsg_request_main_appear(mMsg_Window_c* msg_p, ACTOR* client_actor_p, int show_name, rgba_t* window_color, int msg_no, int request_priority);
extern int mMsg_request_main_appear(mMsg_Window_c* msg_p, ACTOR* client_actor_p, int show_name, rgba_t* window_color,
int msg_no, int request_priority);
extern int mMsg_request_main_disappear_wait_type1(mMsg_Window_c* msg_p);
extern int mMsg_request_main_disappear_wait_type2(mMsg_Window_c* msg_p);
extern int mMsg_request_main_appear_wait_type2(mMsg_Window_c* msg_p, int clear_flag);
@@ -323,13 +324,15 @@ extern int mMsg_CopyDay(u8* data, int start_idx, int len);
extern int mMsg_CopyHour(u8* data, int start_idx, int len);
extern int mMsg_CopyMin(u8* data, int start_idx, int len);
extern int mMsg_CopySec(u8* data, int start_idx, int len);
extern int mMsg_CopyFree(mMsg_Window_c* msg_p, int str_no, u8* data, int start_idx, int len, int article, u32 capitalize);
extern int mMsg_CopyFree(mMsg_Window_c* msg_p, int str_no, u8* data, int start_idx, int len, int article,
u32 capitalize);
extern int mMsg_CopyDetermination(mMsg_Window_c* msg_p, u8* data, int start_idx, int len);
extern int mMsg_CopyCountryName(u8 *data, int start_idx, int len, u32 capitalize);
extern int mMsg_CopyCountryName(u8* data, int start_idx, int len, u32 capitalize);
extern int mMsg_CopyIslandName(u8* data, int start_idx, int len, u32 capitalize);
extern int mMsg_CopyAmPm(mMsg_Window_c* msg_p, u8* data, int start_idx, int len);
extern int mMsg_CopyRamdomNumber2(u8* data, int start_idx, int len);
extern int mMsg_CopyItem(mMsg_Window_c* msg_p, int str_no, u8* data, int start_idx, int len, int article, u32 capitalize);
extern int mMsg_CopyItem(mMsg_Window_c* msg_p, int str_no, u8* data, int start_idx, int len, int article,
u32 capitalize);
extern int mMsg_CopyMail(mMsg_Window_c* msg_p, int str_no, u8* data, int start_idx, int len, u32 capitalize);
extern int mMsg_sound_voice_get(int code);
extern int mMsg_sound_voice_get_for_editor(int code);
@@ -339,6 +342,29 @@ extern void mMsg_sound_set_voice_click(mMsg_Window_c* msg_p);
extern void mMsg_sound_set_voice_silent(mMsg_Window_c* msg_p, int update_mode);
extern void mMsg_sound_unset_voice_silent(mMsg_Window_c* msg_p, int update_mode);
/* Macros */
#define mMsg_SET_CONTINUE_MSG_NUM(msg_no) mMsg_Set_continue_msg_num(mMsg_Get_base_window_p(), (msg_no))
#define mMsg_SET_LOCKCONTINUE() mMsg_Set_LockContinue(mMsg_Get_base_window_p())
#define mMsg_UNSET_LOCKCONTINUE() mMsg_Unset_LockContinue(mMsg_Get_base_window_p())
#define mMsg_SET_FORCENEXT() mMsg_Set_ForceNext(mMsg_Get_base_window_p())
#define mMsg_SET_CANCELNORMALCONTINUE() mMsg_Set_CancelNormalContinue(mMsg_Get_base_window_p())
#define mMsg_SET_ITEM_STR_ART(str_no, str, str_len, item_no) \
mMsg_Set_item_str_art(mMsg_Get_base_window_p(), str_no, str, str_len, mIN_get_item_article(item_no))
#define mMsg_SET_FREE_STR(str_no, str, str_len) mMsg_Set_free_str(mMsg_Get_base_window_p(), str_no, str, str_len)
#define mMsg_SET_FREE_STR_CL(str_no, str, str_len, cl) \
mMsg_Set_free_str_cl(mMsg_Get_base_window_p(), str_no, str, str_len, cl)
#define mMsg_SET_FREE_STR_CL_ART(str_no, str, str_len, cl, item_no) \
mMsg_Set_free_str_cl_art(mMsg_Get_base_window_p(), str_no, str, str_len, cl, mIN_get_item_article(item_no))
#define mMsg_GET_MSG_NUM() mMsg_Get_msg_num(mMsg_Get_base_window_p())
#define mMsg_CHECK_MAINNORMALCONTINUE() mMsg_Check_MainNormalContinue(mMsg_Get_base_window_p())
#define mMsg_CHECK_MAINDISAPPEAR() mMsg_Check_MainDisappear(mMsg_Get_base_window_p())
#define mMsg_CHECK_MAINHIDE() mMsg_Check_MainHide(mMsg_Get_base_window_p())
#define mMsg_REQUEST_MAIN_DISAPPEAR() mMsg_request_main_disappear(mMsg_Get_base_window_p())
#ifdef __cplusplus
}
#endif
+2 -1
View File
@@ -17,7 +17,7 @@ extern void mPlib_Clear_controller_data_for_title_demo();
extern void mPlib_request_main_invade_type1(GAME_PLAY* play);
extern mActor_name_t mPlib_Get_itemNo_forWindow();
extern int mPlib_check_able_change_camera_normal_index();
extern void mPlib_request_main_refuse_type1(GAME_PLAY* play);
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 int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z, f32 speed, int flag);
@@ -63,6 +63,7 @@ extern void mPlib_Set_change_color_request();
extern int mPlib_check_player_open_umbrella(GAME_PLAY* play);
extern int mPlib_Check_UKI_COMEBACK_STATUS();
extern int mPlib_check_player_actor_main_index_OutDoorMove(GAME_PLAY* play);
extern int mPlib_request_main_close_furniture_type1(GAME* game);
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p();
+1 -1
View File
@@ -212,7 +212,7 @@ extern void Scene_ct(GAME_PLAY* play, Scene_Word_u* scene_data);
extern void Door_info_ct(Door_info_c* door_info);
extern int goto_other_scene(GAME_PLAY* play, Door_data_c* door_data, int update_player_mode);
extern int goto_next_scene(GAME_PLAY* play, int next_idx, int update_player_mode);
extern int goto_emu_game(GAME_PLAY* play, u8 famicom_rom_id);
extern int goto_emu_game(GAME* game, s16 famicom_rom_id);
extern void return_emu_game(GAME* game);
#ifdef __cplusplus
+2 -4
View File
@@ -334,15 +334,13 @@ static void aAp_CommonHandle(ACTOR* actor, AIRPLANE_ACTOR* airplane, GAME* game)
}
static void aAp_ZbuttonChangeStatus(AIRPLANE_ACTOR* actor, GAME* game) {
GAME_PLAY* play = (GAME_PLAY*)game;
if (chkButton(BUTTON_Z)) {
if (actor->status == aAp_STATUS_PLAYER_CATCH) {
mPlib_request_main_refuse_type1(play);
mPlib_request_main_refuse_type1(game);
actor->status = aAp_STATUS_START_FLY_MOVE;
}
} else if (actor->status == aAp_STATUS_START_FLY_MOVE) {
mPlib_request_main_wait_type3((GAME*)play);
mPlib_request_main_wait_type3(game);
actor->status = aAp_STATUS_PLAYER_CATCH;
}
}
+8
View File
@@ -10,6 +10,10 @@
#include "m_cockroach.h"
#include "m_msg.h"
#include "dolphin/card.h"
#include "m_string.h"
#include "m_house.h"
#include "m_player_lib.h"
#include "GBA2/gba2.h"
enum {
aMR_ICON_LEAF,
@@ -123,6 +127,10 @@ static int aMR_UnitNum2FtrItemNoFtrID(mActor_name_t* item_no, int* ftr_id, int u
static void aMR_ReserveDefaultBgm(ACTOR* actorx, FTR_ACTOR* ftr_actor);
static void aMR_ChangeMDBgm(ACTOR* actorx, FTR_ACTOR* ftr_actor);
static void aMR_SetFurniture2FG(FTR_ACTOR* ftr_actor, xyz_t pos, int on_flag);
static int aMR_FtrIdx2ChangeFtrSwitch(ACTOR* actorx, int ftr_id);
static aFTR_PROFILE* aMR_GetFurnitureProfile(u16 ftr_no);
#include "../src/ac_my_room_msg_ctrl.c_inc"
static aFTR_PROFILE* aMR_GetFurnitureProfile(u16 ftr_no) {
if (ftr_no < FTR_NUM) {
File diff suppressed because it is too large Load Diff
+4 -6
View File
@@ -174,7 +174,7 @@ extern void famicom_emu_cleanup(GAME* game) {
sAdo_SubGameEnd();
}
extern int famicom_gba_getImage(u32 rom_id, int* ptr) {
extern void* famicom_gba_getImage(u32 rom_id, size_t* size) {
static char* names[] = {
"cluclu", "usa_balloon", "donkey", "usa_jr_math", "pinball", "tennis", "usa_golf",
NULL, "usa_baseball", NULL, "usa_donkey3", "donkeyjr", "soccer", "exbike",
@@ -182,8 +182,7 @@ extern int famicom_gba_getImage(u32 rom_id, int* ptr) {
};
char buf[256];
u32 resource;
int block;
void* resource;
char* rom;
if (rom_id > 19) {
@@ -197,9 +196,8 @@ extern int famicom_gba_getImage(u32 rom_id, int* ptr) {
} else {
sprintf(buf, "/FAMICOM/GBA/jb_%s.bin.szs", rom);
resource = JC__JKRGetResource(buf);
if ((resource != 0) && (ptr != NULL)) {
block = JC__JKRGetMemBlockSize(0, resource);
*ptr = block;
if ((resource != NULL) && (size != NULL)) {
*size = JC__JKRGetMemBlockSize(0, resource);
}
}
return resource;
+2 -1
View File
@@ -529,7 +529,8 @@ extern int goto_next_scene(GAME_PLAY* play, int next_idx, int update_player_mode
return res;
}
extern int goto_emu_game(GAME_PLAY* play, u8 famicom_rom_id) {
extern int goto_emu_game(GAME* game, s16 famicom_rom_id) {
GAME_PLAY* play = (GAME_PLAY*)game;
PLAYER_ACTOR* player = get_player_actor_withoutCheck(play);
int res = FALSE;