diff --git a/configure.py b/configure.py index 4dda107a0..843d64c8d 100644 --- a/configure.py +++ b/configure.py @@ -302,6 +302,7 @@ LIBS = [ Matching ("d/d_particle_name.cpp"), NonMatching("d/d_s_title.cpp"), NonMatching("d/d_save.cpp"), + NonMatching("d/d_save_init.cpp"), # ? NonMatching("DynamicLink.cpp"), diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h index c9ffae1df..05977488a 100644 --- a/include/d/d_bg_s.h +++ b/include/d/d_bg_s.h @@ -3,6 +3,7 @@ #include "global.h" #include "SSystem/SComponent/c_sxyz.h" +#include "SSystem/SComponent/c_xyz.h" class cBgS_LinChk; class cBgS_GndChk; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index add83040d..7ebce7421 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1,13 +1,13 @@ #ifndef D_COM_D_COM_INF_GAME_H #define D_COM_D_COM_INF_GAME_H -#include "d/d_save.h" #include "d/d_bg_s.h" #include "d/d_cc_s.h" -#include "d/d_stage.h" #include "d/d_event.h" #include "d/d_event_manager.h" #include "d/d_resorce.h" +#include "d/d_save.h" +#include "d/d_stage.h" class JKRArchive; class JKRExpHeap; @@ -269,6 +269,10 @@ public: extern dComIfG_inf_c g_dComIfG_gameInfo; +/** + * === SAVE === + */ + inline u8 dComIfGs_getSelectEquip(int param_0) { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getSelectEquip(param_0); } @@ -277,4 +281,12 @@ inline u8 dComIfGs_getItem(int param_0) { return g_dComIfG_gameInfo.info.getPlayer().getItem().getItem(param_0); } +inline void dComIfGs_setEventReg(u16 i_reg, u8 i_no) { + g_dComIfG_gameInfo.info.getEvent().setEventReg(i_reg, i_no); +} + +/** + * === PLAY === + */ + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_save.h b/include/d/d_save.h index e3792c79c..c45198adf 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -773,6 +773,7 @@ public: /* 8005D860 */ void init(); dSv_player_c& getPlayer() { return mPlayer; } + dSv_event_c& getEvent() { return mEvent; } dSv_memory_c& getSave(int i_stageNo) { return mMemory[i_stageNo]; } void putSave(int i_stageNo, dSv_memory_c i_mem) { mMemory[i_stageNo] = i_mem; } @@ -806,6 +807,7 @@ public: /* 8005ED00 */ int initdata_to_card(char*, int); dSv_player_c& getPlayer() { return mSavedata.getPlayer(); } + dSv_event_c& getEvent() { return mSavedata.getEvent(); } static const int MEMORY_SWITCH = 0x80; static const int DAN_SWITCH = 0x40; diff --git a/include/d/d_save_init.h b/include/d/d_save_init.h new file mode 100644 index 000000000..cc394c658 --- /dev/null +++ b/include/d/d_save_init.h @@ -0,0 +1,6 @@ +#ifndef D_D_SAVE_INIT_H +#define D_D_SAVE_INIT_H + +void setInitEventBit(); + +#endif /* D_D_SAVE_INIT_H */ \ No newline at end of file diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp index 53b2032cb..5384555c3 100644 --- a/src/d/d_save.cpp +++ b/src/d/d_save.cpp @@ -4,6 +4,7 @@ // #include "d/d_save.h" +#include "d/d_save_init.h" #include "d/d_com_inf_game.h" #include "JSystem/JUtility/JUTAssert.h" #include "MSL_C/string.h" @@ -11,8 +12,6 @@ #include "SSystem/SComponent/c_math.h" #include "MSL_C/stdio.h" -extern void setInitEventBit(); - struct daNpc_Sarace_c { static int ship_race_rupee; static int ship_race_result; diff --git a/src/d/d_save_init.cpp b/src/d/d_save_init.cpp index 5f4d501da..15d56a929 100644 --- a/src/d/d_save_init.cpp +++ b/src/d/d_save_init.cpp @@ -1,13 +1,18 @@ -// -// Generated by dtk -// Translation Unit: d_save_init.cpp -// +/** + * d_save_init.cpp + * + */ -#include "d_save_init.h" -#include "dolphin/types.h" +#include "d/d_save_init.h" +#include "d/d_com_inf_game.h" + +// move later +struct daNpc_Kg1_c { + static u8 m_highscore; +}; /* 8005EF88-8005EFDC .text setInitEventBit__Fv */ void setInitEventBit() { - /* Nonmatching */ + dComIfGs_setEventReg(0xBEFF, daNpc_Kg1_c::m_highscore); + dComIfGs_setEventReg(0x7EFF, 0xE); } -