Implement & link save_menu.c

This commit is contained in:
Cuyler36
2023-05-30 03:55:27 -04:00
parent bf9e2a3be4
commit f97150bdec
10 changed files with 338 additions and 5 deletions
+11
View File
@@ -2,12 +2,23 @@
#define M_CPAK_H
#include "types.h"
#include "s_cpak.h"
#include "m_private.h"
#include "m_npc.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct contpak_s {
int _00;
sCPk_c save_pak;
} mCPk_c;
extern int mCPk_InitPak(int pak_idx);
extern int mCPk_PakOpen(mCPk_c* cpak, int pak_idx);
extern int mCPk_SavePak(Private_c* private_data, Animal_c* animals, mCPk_c* cpak);
extern mCPk_c* mCPk_get_pkinfo();
#ifdef __cplusplus
}
+3
View File
@@ -279,6 +279,9 @@ extern "C" {
#define mFont_MARKTYPE_CHOICE 4
#define mFont_MARKTYPE_TOTAL 5
#define mFont_MODE_POLY 0
#define mFont_MODE_FONT 1
enum {
mFont_CONT_CODE_BEGIN = 0,
mFont_CONT_CODE_LAST = mFont_CONT_CODE_BEGIN,
+2
View File
@@ -187,6 +187,8 @@ extern void mNpc_ClearCacheName();
extern void mNpc_ClearInAnimal();
extern void mNpc_FirstClearGoodbyMail();
extern void mNpc_ClearIslandNpcRoomData();
extern void mNpc_CopyAnimalPersonalID(AnmPersonalID_c* dst, AnmPersonalID_c* src);
extern AnmPersonalID_c* mNpc_GetOtherAnimalPersonalID(AnmPersonalID_c* ids, int num_ids);
extern void mNpc_PrintRemoveInfo(gfxprint_t* gfxprint);
extern void mNpc_PrintFriendship_fdebug(gfxprint_t* gfxprint);
+1 -1
View File
@@ -132,7 +132,7 @@ typedef struct private_s {
/* 0x1088 */ u16 cloth_idx; /* index value for texture? */
/* 0x108A */ mActor_name_t cloth; /* shirt item */
/* 0x108C */ AnmPersonalID_c stored_anm_id; /* not sure what the function of this is */
/* 0x108C */ AnmPersonalID_c stored_anm_id; /* foriegn animal personal ID leftover from N64? */
/* 0x109A */ mPr_destiny_c destiny; /* player fortune, seemingly called destiny */
/* 0x10A4 */ mPr_birthday_c birthday; /* player birthday */
+7
View File
@@ -11,6 +11,12 @@
extern "C" {
#endif
#define VIEW_UPDATE_LOOKAT (1 << 0) // 1
#define VIEW_UPDATE_SCISSOR (1 << 1) // 2
#define VIEW_UPDATE_PERSPECTIVE (1 << 2) // 4
#define VIEW_UPDATE_ORTHOGRAPHIC (1 << 3) // 8
#define VIEW_UPDATE_ALL (VIEW_UPDATE_LOOKAT | VIEW_UPDATE_SCISSOR | VIEW_UPDATE_PERSPECTIVE | VIEW_UPDATE_ORTHOGRAPHIC) // 15
/* sizeof(struct view_s) == 0x120 */
typedef struct view_s {
GRAPH* graph;
@@ -44,6 +50,7 @@ typedef struct view_s {
} View;
extern void initView(View* view, GRAPH* graph);
extern void showView(View* view, int flags);
#ifdef __cplusplus
}
+20
View File
@@ -0,0 +1,20 @@
#ifndef S_CPAK_H
#define S_CPAK_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct save_pak_s {
u8 unused[0x54];
} sCPk_c;
extern int sCPk_PakOpen(sCPk_c* s_pak);
#ifdef __cplusplus
}
#endif
#endif
+24 -4
View File
@@ -9,16 +9,36 @@
extern "C" {
#endif
enum save_mode {
SAVE_MODE_BEGIN,
SAVE_MODE_FLASHROM = SAVE_MODE_BEGIN,
SAVE_MODE_CPAK,
SAVE_MODE_NUM
};
enum save_error {
SAVE_ERROR_NONE,
SAVE_ERROR_FLASHROM,
SAVE_ERROR_CPAK,
SAVE_ERROR_EXIT,
SAVE_ERROR_NUM
};
/* sizeof(struct game_save_menu_s) == 0x0228 */
typedef struct game_save_menu_s {
/* 0x0000 */ GAME game;
/* 0x00E0 */ View view;
// TODO: finish this
/* 0x0200 */ u8 _temp[0x28];
/* 0x0200 */ u32 frame;
/* 0x0204 */ int mode;
/* 0x0208 */ int error;
/* 0x020C */ int cursor_col[SAVE_MODE_NUM][3];
} GAME_SAVE_MENU;
extern void save_menu_init(GAME_SAVE_MENU* save_menu);
extern void save_menu_cleanup(GAME_SAVE_MENU* save_menu);
extern void save_menu_init(GAME* game);
extern void save_menu_cleanup(GAME* game);
#ifdef __cplusplus
}
+2
View File
@@ -53,6 +53,8 @@ typedef u32 unknown;
#endif
#endif
#define ARRAY_SIZE(arr, type) (sizeof(arr) / sizeof(type))
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define MIN(a, b) (((a) < (b)) ? (a) : (b))