mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Merge pull request #446 from Cuyler36:m_cpedit_ovl
Implement & link m_cpedit_ovl
This commit is contained in:
@@ -1051,6 +1051,10 @@ m_catalog_ovl.c:
|
||||
.text: [0x805C9254, 0x805CC1F4]
|
||||
.rodata: [0x8064AF90, 0x8064B090]
|
||||
.data: [0x806C8AB0, 0x806CB838]
|
||||
m_cpedit_ovl.c:
|
||||
.text: [0x805CC1F4, 0x805CC3E8]
|
||||
.data: [0x806CB838, 0x806CB850]
|
||||
.bss: [0x8133E210, 0x8133E218]
|
||||
m_editEndChk_ovl.c:
|
||||
.text: [0x805D7A64, 0x805D8498]
|
||||
.rodata: [0x8064B2C0, 0x8064B300]
|
||||
|
||||
@@ -2,11 +2,17 @@
|
||||
#define M_CPEDIT_OVL_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_cpedit_ovl_h.h"
|
||||
#include "m_submenu.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct cpedit_ovl_s {
|
||||
u8 pad;
|
||||
};
|
||||
|
||||
extern void mCE_cpedit_ovl_construct(Submenu* submenu);
|
||||
extern void mCE_cpedit_ovl_destruct(Submenu* submenu);
|
||||
extern void mCE_cpedit_ovl_set_proc(Submenu* submenu);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct cpedit_ovl_s mCE_Ovl_c;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "m_mailbox_ovl_h.h"
|
||||
#include "m_needlework_ovl_h.h"
|
||||
#include "m_gba_ovl_h.h"
|
||||
#include "m_cpedit_ovl_h.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -191,7 +192,7 @@ struct submenu_overlay_s {
|
||||
/* 0x9BC */ mBR_Ovl_c* birthday_ovl;
|
||||
/* 0x9C0 */ mCM_Ovl_c* cpmail_ovl;
|
||||
/* 0x9C4 */ void* _9C4;
|
||||
/* 0x9C8 */ void* _9C8;
|
||||
/* 0x9C8 */ mCE_Ovl_c* cpedit_ovl;
|
||||
/* 0x9CC */ mCL_Ovl_c* catalog_ovl;
|
||||
/* 0x9D0 */ mMU_Ovl_c* music_ovl;
|
||||
/* 0x9D4 */ mBN_Overlay_c* bank_ovl;
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#include "m_cpedit_ovl.h"
|
||||
|
||||
#include "m_submenu_ovl.h"
|
||||
|
||||
static mCE_Ovl_c cpedit_ovl_data;
|
||||
|
||||
static void mCE_move_Move(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
submenu->overlay->move_Move_proc(submenu, menu_info);
|
||||
}
|
||||
|
||||
static void mCE_move_Play(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
// empty
|
||||
}
|
||||
|
||||
static void mCE_move_Wait(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
// empty
|
||||
}
|
||||
|
||||
static void mCE_move_Obey(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
// empty
|
||||
}
|
||||
|
||||
static void mCE_move_End(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
submenu->overlay->move_End_proc(submenu, menu_info);
|
||||
}
|
||||
|
||||
typedef void (*mCE_OVL_PROC)(Submenu*, mSM_MenuInfo_c*);
|
||||
|
||||
static void mCE_cpedit_ovl_move(Submenu* submenu) {
|
||||
static mCE_OVL_PROC ovl_move_proc[] = {
|
||||
&mCE_move_Move,
|
||||
&mCE_move_Play,
|
||||
&mCE_move_Wait,
|
||||
&mCE_move_Obey,
|
||||
&mCE_move_End,
|
||||
};
|
||||
|
||||
mSM_Control_c* control = &submenu->overlay->menu_control;
|
||||
mSM_MenuInfo_c* menu_info = &submenu->overlay->menu_info[mSM_OVL_CPEDIT];
|
||||
|
||||
menu_info->pre_move_func(submenu);
|
||||
(*ovl_move_proc[menu_info->proc_status])(submenu, menu_info);
|
||||
if (menu_info->proc_status == mSM_OVL_PROC_PLAY) {
|
||||
control->animation_flag = TRUE;
|
||||
} else {
|
||||
control->animation_flag = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void mCE_cpedit_ovl_draw(Submenu* submenu, GAME* game) {
|
||||
mSM_MenuInfo_c* menu_info = &submenu->overlay->menu_info[mSM_OVL_CPEDIT];
|
||||
|
||||
menu_info->pre_draw_func(submenu, game);
|
||||
}
|
||||
|
||||
extern void mCE_cpedit_ovl_set_proc(Submenu* submenu) {
|
||||
Submenu_Overlay_c* overlay = submenu->overlay;
|
||||
|
||||
overlay->menu_control.menu_move_func = &mCE_cpedit_ovl_move;
|
||||
overlay->menu_control.menu_draw_func = &mCE_cpedit_ovl_draw;
|
||||
}
|
||||
|
||||
static void mCE_cpedit_ovl_init(Submenu* submenu, mSM_MenuInfo_c* menu_info) {
|
||||
submenu->overlay->move_chg_base_proc(menu_info, mSM_MOVE_IN_TOP);
|
||||
}
|
||||
|
||||
extern void mCE_cpedit_ovl_construct(Submenu* submenu) {
|
||||
Submenu_Overlay_c* overlay = submenu->overlay;
|
||||
mSM_MenuInfo_c* menu_info = &overlay->menu_info[mSM_OVL_CPEDIT];
|
||||
|
||||
if (overlay->cpedit_ovl == NULL) {
|
||||
mem_clear((u8*)&cpedit_ovl_data, sizeof(cpedit_ovl_data), 0);
|
||||
overlay->cpedit_ovl = &cpedit_ovl_data;
|
||||
}
|
||||
|
||||
mCE_cpedit_ovl_init(submenu, menu_info);
|
||||
mCE_cpedit_ovl_set_proc(submenu);
|
||||
}
|
||||
|
||||
extern void mCE_cpedit_ovl_destruct(Submenu* submenu) {
|
||||
submenu->overlay->cpedit_ovl = NULL;
|
||||
}
|
||||
Reference in New Issue
Block a user