Files
af/include/m_submenu.h
Anghelo Carvajal fd05811213 m_trademark OK (#192)
* C file

* trademark_init

* trademark_cancel, trademark_move, trademark_main

* trademark_draw

* trademark_goto_demo_scene and func_80805360_jp

* set_npc_4_title_demo

* func_80804C40_jp

* trademark_cleanup

* func_808052B8_jp

* func_80805104_jp

* func_80804F78_jp

* func_80804EE0_jp

* fix warnings

* small cleanup

* fix build

* some fixes

* stuff

* some cleanups

* Fix rebase

* Import data

* Migrate bss

* cleanup

* Save substruct

* format

* TrademarkState and some other stuff

* remove fake match

* stuff I missed

* whoops

* Stupid `-Wtype-limits`

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>

* Review

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>

* Update src/overlays/gamestates/ovl_trademark/m_trademark.c

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>

* clang-tidy changes???

* review

---------

Co-authored-by: Prakxo <87568477+Prakxo@users.noreply.github.com>
Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
2024-05-30 14:00:57 -07:00

126 lines
3.9 KiB
C

#ifndef M_SUBMENU_H
#define M_SUBMENU_H
#include "ultra64.h"
#include "m_mail.h"
#include "z64math.h"
#include "libc/stdint.h"
#include "other_types.h"
#include "unk.h"
struct Game_Play;
struct Submenu;
struct struct_8085E9B0;
typedef enum mSMMoveProcIndex {
/* 0 */ MSM_MOVE_PROC_WAIT,
/* 1 */ MSM_MOVE_PROC_PREWAIT,
/* 2 */ MSM_MOVE_PROC_LINKWAIT,
/* 3 */ MSM_MOVE_PROC_PLAY,
/* 4 */ MSM_MOVE_PROC_END,
/* 5 */ MSM_MOVE_PROC_MAX
} mSMMoveProcIndex;
typedef enum InventoryItemList {
/* 0 */ INVENTORY_ITEM_LIST_0,
/* 1 */ INVENTORY_ITEM_LIST_1,
/* 2 */ INVENTORY_ITEM_LIST_ENTRUST,
/* 3 */ INVENTORY_ITEM_LIST_3,
/* 4 */ INVENTORY_ITEM_LIST_4,
/* 5 */ INVENTORY_ITEM_LIST_SELL,
/* 6 */ INVENTORY_ITEM_LIST_GIVE,
/* 7 */ INVENTORY_ITEM_LIST_7,
/* 8 */ INVENTORY_ITEM_LIST_TAKE,
/* 9 */ INVENTORY_ITEM_LIST_FURNITURE,
/* 10 */ INVENTORY_ITEM_LIST_MINIDISK,
/* 11 */ INVENTORY_ITEM_LIST_SHRINE,
/* 12 */ INVENTORY_ITEM_LIST_C,
/* 13 */ INVENTORY_ITEM_LIST_ECHANGE,
/* 14 */ INVENTORY_ITEM_LIST_E,
/* 15 */ INVENTORY_ITEM_LIST_F,
/* 16 */ INVENTORY_ITEM_LIST_MAX
} InventoryItemList;
typedef enum SubmenuProgramId {
/* 0 */ SUBMENU_PROGRAM_0, // inventory, NONE? DEFAULT?
/* 1 */ SUBMENU_PROGRAM_1, // inventory
/* 2 */ SUBMENU_PROGRAM_2,
/* 3 */ SUBMENU_PROGRAM_3,
/* 4 */ SUBMENU_PROGRAM_LEDIT,
/* 5 */ SUBMENU_PROGRAM_MAP,
/* 6 */ SUBMENU_PROGRAM_6,
/* 7 */ SUBMENU_PROGRAM_7,
/* 8 */ SUBMENU_PROGRAM_8,
/* 9 */ SUBMENU_PROGRAM_9,
/* 10 */ SUBMENU_PROGRAM_10,
/* 11 */ SUBMENU_PROGRAM_11,
/* 12 */ SUBMENU_PROGRAM_BOARD,
/* 13 */ SUBMENU_PROGRAM_13,
/* 14 */ SUBMENU_PROGRAM_14,
/* 15 */ SUBMENU_PROGRAM_15,
/* 16 */ SUBMENU_PROGRAM_16,
/* 17 */ SUBMENU_PROGRAM_17,
/* 18 */ SUBMENU_PROGRAM_18,
/* 19 */ SUBMENU_PROGRAM_19,
/* 20 */ SUBMENU_PROGRAM_CATALOG,
/* 21 */ SUBMENU_PROGRAM_MAX
} SubmenuProgramId;
typedef void (*SubmenuMoveFunc)(struct Submenu*);
typedef void (*SubmenuDrawFunc)(struct Submenu*, struct Game_Play*);
typedef struct Submenu {
/* 0x00 */ s32 unk_00;
/* 0x04 */ SubmenuProgramId programId;
/* 0x08 */ SubmenuProgramId unk_08;
/* 0x0C */ mSMMoveProcIndex moveProcIndex;
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ void* linkedAllocStart;
/* 0x28 */ void* linkedAllocEnd;
/* 0x2C */ struct struct_8085E9B0* unk_2C;
/* 0x30 */ SubmenuMoveFunc move;
/* 0x34 */ SubmenuDrawFunc draw;
/* 0x38 */ Mail_c mail;
/* 0xDC */ u8 unk_DC;
/* 0xDD */ u8 unk_DD;
/* 0xDE */ u8 unk_DE;
/* 0xDF */ u8 unk_DF;
/* 0xE0 */ u16 unk_E0;
/* 0xE2 */ u8 unk_E2;
/* 0xE3 */ u8 unk_E3;
/* 0xE4 */ xyz_t unk_E4;
} Submenu; // size = 0xF0
s32 SubmenuArea_IsPlayer(void);
void* mSM_ovlptr_dllcnv(void* vram, Submenu* submenu);
void mSM_submenu_ovlptr_init(struct Game_Play* game_play);
void mSM_submenu_ovlptr_cleanup(Submenu* submenu);
void load_player(Submenu* submenu);
void mSM_submenu_ct(Submenu* submenu);
void mSM_submenu_dt(Submenu* submenu);
void mSM_open_submenu(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3);
void mSM_open_submenu_new(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3, s32 arg4);
void mSM_open_submenu_new2(Submenu* submenu, SubmenuProgramId programId, s32 arg2, s32 arg3, s32 arg4, s32 arg5);
void mSM_submenu_ctrl(struct Game_Play* game_play);
void mSM_submenu_move(Submenu* submenu);
void mSM_submenu_draw(Submenu* submenu, struct Game_Play* game_play);
u32 mSM_check_open_inventory_itemlist(InventoryItemList itemlist, s32 arg1) ;
// void mSM_Object_Exchange_keep_new();
// void mSM_Object_Exchange_keep_new_MenuTexAndPallet();
void mSM_Object_Exchange_keep_new_Menu(struct Game_Play* play);
// void mSM_Get_ground_tex_p();
// void mSM_Get_ground_pallet_p();
#endif