summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure.py28
-rw-r--r--include/JAZelAudio/JAIZelBasic.h21
-rw-r--r--include/JSystem/J3DU/J3DUClipper.h4
-rw-r--r--include/SSystem/SComponent/c_m3d_g_aab.h12
-rw-r--r--include/d/d_com_inf_game.h64
-rw-r--r--include/d/d_save.h3
-rw-r--r--include/f_ap/f_ap_game.h2
-rw-r--r--include/f_op/f_op_actor_mng.h4
-rw-r--r--include/m_Do/m_Do_dvd_thread.h4
-rw-r--r--include/m_Do/m_Do_lib.h6
-rw-r--r--src/JAZelAudio/JAIZelBasic.cpp44
-rw-r--r--src/JSystem/J3DU/J3DUClipper.cpp4
-rw-r--r--src/SSystem/SComponent/c_m3d_g_aab.cpp4
-rw-r--r--src/d/actor/d_a_agb.cpp10
-rw-r--r--src/d/actor/d_a_bomb2.cpp7
-rw-r--r--src/d/actor/d_a_esa.cpp15
-rw-r--r--src/d/actor/d_a_ib.cpp17
-rw-r--r--src/d/actor/d_a_npc_tc.cpp12
-rw-r--r--src/d/actor/d_a_obj_ikada.cpp4
-rw-r--r--src/d/actor/d_a_oship.cpp4
-rw-r--r--src/d/actor/d_a_player_crawl.inc7
-rw-r--r--src/d/actor/d_a_player_fan.inc3
-rw-r--r--src/d/actor/d_a_player_main.cpp58
-rw-r--r--src/d/actor/d_a_player_rope.inc3
-rw-r--r--src/d/actor/d_a_player_whide.inc6
-rw-r--r--src/d/d_a_npc_mk_static.cpp15
-rw-r--r--src/d/d_bg_s_lin_chk.cpp8
-rw-r--r--src/d/d_bg_s_movebg_actor.cpp2
-rw-r--r--src/d/d_bg_w.cpp57
-rw-r--r--src/d/d_com_inf_game.cpp177
-rw-r--r--src/d/d_drawlist.cpp2
-rw-r--r--src/d/d_gameover.cpp11
-rw-r--r--src/d/d_item.cpp141
-rw-r--r--src/d/d_kankyo.cpp49
-rw-r--r--src/d/d_kankyo_wether.cpp43
-rw-r--r--src/d/d_particle.cpp4
-rw-r--r--src/d/d_place_name.cpp4
-rw-r--r--src/d/d_s_menu.cpp4
-rw-r--r--src/d/d_s_name.cpp2
-rw-r--r--src/d/d_save.cpp20
-rw-r--r--src/d/d_wood.cpp53
-rw-r--r--src/f_ap/f_ap_game.cpp24
-rw-r--r--src/f_op/f_op_actor_mng.cpp21
-rw-r--r--src/f_op/f_op_msg_mng.cpp2
-rw-r--r--src/f_op/f_op_overlap_req.cpp3
-rw-r--r--src/f_op/f_op_scene_mng.cpp2
-rw-r--r--src/m_Do/m_Do_audio.cpp52
-rw-r--r--src/m_Do/m_Do_dvd_thread.cpp26
-rw-r--r--src/m_Do/m_Do_gba_com.cpp8
-rw-r--r--src/m_Do/m_Do_machine_exception.cpp33
50 files changed, 813 insertions, 296 deletions
diff --git a/configure.py b/configure.py
index e9f70f46..c6fe0b72 100755
--- a/configure.py
+++ b/configure.py
@@ -388,7 +388,7 @@ config.libs = [
"objects": [
Object(Matching, "m_Do/m_Do_main.cpp"),
Object(Matching, "m_Do/m_Do_printf.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_audio.cpp"),
+ Object(Matching, "m_Do/m_Do_audio.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_controller_pad.cpp"),
Object(NonMatching, "m_Do/m_Do_graphic.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_machine.cpp"),
@@ -397,12 +397,12 @@ config.libs = [
Object(Matching, "m_Do/m_Do_lib.cpp"),
Object(Matching, "m_Do/m_Do_hostIO.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_Reset.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_dvd_thread.cpp"),
+ Object(Matching, "m_Do/m_Do_dvd_thread.cpp"),
Object(Matching, "m_Do/m_Do_DVDError.cpp"),
Object(Matching, "m_Do/m_Do_MemCard.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_MemCardRWmng.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_gba_com.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_machine_exception.cpp"),
+ Object(Matching, "m_Do/m_Do_machine_exception.cpp"),
],
},
{
@@ -424,7 +424,7 @@ config.libs = [
"host": True,
"objects": [
# f_ap
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "f_ap/f_ap_game.cpp"),
+ Object(Matching, "f_ap/f_ap_game.cpp"),
# f_op
Object(Matching, "f_op/f_op_actor.cpp"),
@@ -435,7 +435,7 @@ config.libs = [
Object(Matching, "f_op/f_op_camera_mng.cpp"),
Object(Matching, "f_op/f_op_overlap.cpp"),
Object(Matching, "f_op/f_op_overlap_mng.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "f_op/f_op_overlap_req.cpp"),
+ Object(Matching, "f_op/f_op_overlap_req.cpp"),
Object(Matching, "f_op/f_op_scene.cpp"),
Object(Matching, "f_op/f_op_scene_iter.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "f_op/f_op_scene_mng.cpp"),
@@ -490,13 +490,13 @@ config.libs = [
"progress_category": "game",
"host": True,
"objects": [
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_stage.cpp"),
+ Object(Matching, "d/d_stage.cpp"),
Object(NonMatching, "d/d_map.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_com_inf_game.cpp"),
Object(Matching, "d/d_com_lib_game.cpp"),
Object(Matching, "d/d_com_static.cpp"),
Object(Matching, "d/d_lib.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_save.cpp"),
+ Object(Matching, "d/d_save.cpp"),
Object(Matching, "d/d_save_init.cpp"),
Object(Matching, "d/d_shop.cpp"),
Object(Matching, "d/d_jnt_hit.cpp"),
@@ -541,8 +541,8 @@ config.libs = [
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_bg_s.cpp"),
Object(Matching, "d/d_bg_s_acch.cpp"),
Object(Matching, "d/d_bg_s_func.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_bg_s_lin_chk.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_bg_s_movebg_actor.cpp"),
+ Object(Matching, "d/d_bg_s_lin_chk.cpp"),
+ Object(Matching, "d/d_bg_s_movebg_actor.cpp"),
Object(Matching, "d/d_bg_s_spl_grp_chk.cpp"),
Object(Matching, "d/d_bg_s_wtr_chk.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_bg_w.cpp"),
@@ -564,10 +564,10 @@ config.libs = [
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_seafightgame.cpp"),
Object(Matching, "d/d_spline_path.cpp"),
Object(Matching, "d/d_s_actor_data_mng.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_item.cpp"),
+ Object(Matching, "d/d_item.cpp"),
Object(NonMatching, "d/d_2dnumber.cpp"),
Object(Matching, "d/d_a_npc_cb1_static.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_a_npc_mk_static.cpp"),
+ Object(Matching, "d/d_a_npc_mk_static.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_salvage.cpp"),
Object(Matching, "d/d_snap.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_point_wind.cpp"),
@@ -580,15 +580,15 @@ config.libs = [
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_dai_item.cpp"),
Object(Matching, "d/actor/d_a_demo00.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_disappear.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_esa.cpp"),
+ Object(Matching, "d/actor/d_a_esa.cpp"),
Object(NonMatching, "d/actor/d_a_grid.cpp"),
Object(NonMatching, "d/actor/d_a_himo2.cpp"),
Object(Matching, "d/actor/d_a_hookshot.cpp"),
- Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_ib.cpp"),
+ Object(Matching, "d/actor/d_a_ib.cpp"),
Object(NonMatching, "d/actor/d_a_item.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_itembase.cpp"),
Object(Matching, "d/actor/d_a_nh.cpp"),
- Object(Matching, "d/actor/d_a_npc_fa1.cpp"),
+ Object(Matching, "d/actor/d_a_npc_fa1.cpp"),
Object(NonMatching, "d/actor/d_a_obj_search.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player.cpp"),
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_player_main.cpp"),
diff --git a/include/JAZelAudio/JAIZelBasic.h b/include/JAZelAudio/JAIZelBasic.h
index 38fb8257..970f044d 100644
--- a/include/JAZelAudio/JAIZelBasic.h
+++ b/include/JAZelAudio/JAIZelBasic.h
@@ -154,8 +154,16 @@ public:
void setMinute(s32 i_minute) { mMinute = i_minute; }
void setWeekday(s32 i_weekday) { mWeekday = i_weekday; }
- f32 calcMainBgmVol() { return field_0x0080 * field_0x0084 * field_0x0088 * field_0x008c * field_0x0090 * field_0x0094 * field_0x0098 * field_0x009c * field_0x00ac; }
- f32 calcSubBgmVol() { return field_0x00a0 * field_0x00a4 * field_0x00a8; }
+ f32 calcMainBgmVol() {
+ return field_0x0080 * field_0x0084 * field_0x0088 * field_0x008c * field_0x0090 * field_0x0094 * field_0x0098 * field_0x009c * field_0x00ac;
+ }
+ f32 calcSubBgmVol() {
+#if VERSION == VERSION_DEMO
+ return field_0x00a0 * field_0x00a4;
+#else
+ return field_0x00a0 * field_0x00a4 * field_0x00a8;
+#endif
+ }
void bstHoriOn() { field_0x1dd4 = 1; }
void bstHoriOff() { field_0x1dd4 = 0; }
@@ -201,7 +209,6 @@ public:
/* 0x0020 */ u8 field_0x0020;
/* 0x0021 */ u8 field_0x0021;
- /* 0x0022 */ u8 field_0x0022[0x0024 - 0x0022];
/* 0x0024 */ u8* field_0x0024;
#if VERSION > VERSION_JPN
/* 0x0028 */ int field_0x0028;
@@ -236,7 +243,6 @@ public:
/* 0x0064 */ u8 field_0x0064;
/* 0x0065 */ u8 field_0x0065;
/* 0x0066 */ u8 field_0x0066;
- /* 0x0067 */ u8 field_0x0067[0x0068 - 0x0067];
/* 0x0068 */ JAISound* mpMainBgmSound;
/* 0x006C */ JAISound* mpSubBgmSound;
/* 0x0070 */ JAISound* mpStreamBgmSound;
@@ -253,7 +259,9 @@ public:
/* 0x009C */ f32 field_0x009c;
/* 0x00A0 */ f32 field_0x00a0;
/* 0x00A4 */ f32 field_0x00a4;
+#if VERSION > VERSION_DEMO
/* 0x00A8 */ f32 field_0x00a8;
+#endif
/* 0x00AC */ f32 field_0x00ac;
/* 0x00B0 */ int field_0x00b0;
/* 0x00B4 */ u8 field_0x00b4;
@@ -286,6 +294,9 @@ public:
/* 0x0134 */ u32 mSeNum[MAX_CONCURRENT_SE_NUM];
/* 0x0194 */ u32 field_0x0194[MAX_CONCURRENT_SE_NUM];
/* 0x01F4 */ int field_0x01f4;
+#if VERSION == VERSION_DEMO
+ u8 temppadding[0x60];
+#endif
/* 0x01F8 */ u8 field_0x01f8;
/* 0x01F9 */ u8 field_0x01f9;
/* 0x01FA */ u8 field_0x01fa;
@@ -298,7 +309,9 @@ public:
/* 0x0201 */ u8 field_0x0201;
/* 0x0202 */ u8 field_0x0202[0x0204 - 0x0202];
/* 0x0204 */ u8 field_0x0204;
+#if VERSION > VERSION_DEMO
/* 0x0205 */ u8 field_0x0205;
+#endif
/* 0x0206 */ u8 field_0x0206;
/* 0x0207 */ u8 field_0x0207;
/* 0x0208 */ u8 field_0x0208;
diff --git a/include/JSystem/J3DU/J3DUClipper.h b/include/JSystem/J3DU/J3DUClipper.h
index 113ec60e..7bf7886a 100644
--- a/include/JSystem/J3DU/J3DUClipper.h
+++ b/include/JSystem/J3DU/J3DUClipper.h
@@ -12,8 +12,8 @@ public:
virtual ~J3DUClipper() {}
void init();
void calcViewFrustum();
- s32 clip(const Mtx, Vec, f32);
- s32 clip(const Mtx, Vec*, Vec*);
+ BOOL clip(const Mtx, Vec, f32);
+ BOOL clip(const Mtx, Vec*, Vec*);
u32 clipByBox(J3DModel*);
void setFovy(f32 fovy) { mFovY = fovy; }
diff --git a/include/SSystem/SComponent/c_m3d_g_aab.h b/include/SSystem/SComponent/c_m3d_g_aab.h
index b4ece970..53db9e7d 100644
--- a/include/SSystem/SComponent/c_m3d_g_aab.h
+++ b/include/SSystem/SComponent/c_m3d_g_aab.h
@@ -98,10 +98,18 @@ public:
}
}
bool UnderPlaneYUnder(f32 y) const {
- return mMin.y < y;
+ if (mMin.y < y) {
+ return true;
+ } else {
+ return false;
+ }
}
bool TopPlaneYUnder(f32 y) const {
- return mMax.y < y;
+ if (mMax.y < y) {
+ return true;
+ } else {
+ return false;
+ }
}
void Cross(const cM3dGAab*) const {}
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index c36be434..6fddb926 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -1637,35 +1637,65 @@ inline void dComIfGs_onSymbol(u8 i_no) {
g_dComIfG_gameInfo.save.getPlayer().getCollect().onSymbol(i_no);
}
-inline BOOL dComIfGs_isDungeonItemMap() {
- return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemMap();
-}
+void dComIfGs_onDungeonItemMap(int i_stageNo);
+void dComIfGs_offDungeonItemMap(int i_stageNo);
+BOOL dComIfGs_isDungeonItemMap(int i_stageNo);
+void dComIfGs_onDungeonItemCompass(int i_stageNo);
+void dComIfGs_offDungeonItemCompass(int i_stageNo);
+BOOL dComIfGs_isDungeonItemCompass(int i_stageNo);
+void dComIfGs_onDungeonItemBossKey(int i_stageNo);
+void dComIfGs_offDungeonItemBossKey(int i_stageNo);
+BOOL dComIfGs_isDungeonItemBossKey(int i_stageNo);
+void dComIfGs_onStageBossEnemy(int i_stageNo);
+void dComIfGs_offStageBossEnemy(int i_stageNo);
+BOOL dComIfGs_isStageBossEnemy(int i_stageNo);
+void dComIfGs_onStageLife(int i_stageNo);
+void dComIfGs_offStageLife(int i_stageNo);
+BOOL dComIfGs_isStageLife(int i_stageNo);
inline void dComIfGs_onDungeonItemMap() {
g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemMap();
}
-inline BOOL dComIfGs_isDungeonItemCompass() {
- return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemCompass();
+inline void dComIfGs_offDungeonItemMap() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offDungeonItemMap();
+}
+
+inline BOOL dComIfGs_isDungeonItemMap() {
+ return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemMap();
}
inline void dComIfGs_onDungeonItemCompass() {
g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemCompass();
}
-inline BOOL dComIfGs_isDungeonItemBossKey() {
- return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemBossKey();
+inline void dComIfGs_offDungeonItemCompass() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offDungeonItemCompass();
+}
+
+inline BOOL dComIfGs_isDungeonItemCompass() {
+ return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemCompass();
}
inline void dComIfGs_onDungeonItemBossKey() {
g_dComIfG_gameInfo.save.getMemory().getBit().onDungeonItemBossKey();
}
+inline void dComIfGs_offDungeonItemBossKey() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offDungeonItemBossKey();
+}
+
+inline BOOL dComIfGs_isDungeonItemBossKey() {
+ return g_dComIfG_gameInfo.save.getMemory().getBit().isDungeonItemBossKey();
+}
+
inline void dComIfGs_onStageBossEnemy() {
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossEnemy();
}
-BOOL dComIfGs_isStageBossEnemy(int i_stageNo);
+inline void dComIfGs_offStageBossEnemy() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offStageBossEnemy();
+}
inline BOOL dComIfGs_isStageBossEnemy() {
return g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossEnemy();
@@ -1679,18 +1709,22 @@ inline void dComIfGs_onStageLife() {
g_dComIfG_gameInfo.save.getMemory().getBit().onStageLife();
}
-BOOL dComIfGs_isStageLife(int i_stageNo);
+inline void dComIfGs_offStageLife() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offStageLife();
+}
inline BOOL dComIfGs_isStageLife() {
return g_dComIfG_gameInfo.save.getMemory().getBit().isStageLife();
}
-void dComIfGs_onStageLife(int i_stageNo);
-
inline void dComIfGs_onStageBossDemo() {
g_dComIfG_gameInfo.save.getMemory().getBit().onStageBossDemo();
}
+inline void dComIfGs_offStageBossDemo() {
+ g_dComIfG_gameInfo.save.getMemory().getBit().offStageBossDemo();
+}
+
inline BOOL dComIfGs_isStageBossDemo() {
return g_dComIfG_gameInfo.save.getMemory().getBit().isStageBossDemo();
}
@@ -3217,6 +3251,10 @@ inline int dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
+inline void dComIfGp_roomControl_setStayNo(int stayNo) {
+ dStage_roomControl_c::setStayNo(stayNo);
+}
+
inline dBgW* dComIfGp_roomControl_getBgW(int i_roomNo) {
return g_dComIfG_gameInfo.play.getRoomControl()->getBgW(i_roomNo);
}
@@ -3245,10 +3283,6 @@ inline void dComIfGp_roomControl_checkDrawArea() {
g_dComIfG_gameInfo.play.getRoomControl()->checkDrawArea();
}
-inline void dComIfGp_roomControl_setStayNo(int stayNo) {
- g_dComIfG_gameInfo.play.getRoomControl()->setStayNo(stayNo);
-}
-
inline void dComIfGp_roomControl_setStatusFlag(int i_roomNo, u8 i_flag) {
g_dComIfG_gameInfo.play.getRoomControl()->setStatusFlag(i_roomNo, i_flag);
}
diff --git a/include/d/d_save.h b/include/d/d_save.h
index 77bd5a32..3bf1ac8d 100644
--- a/include/d/d_save.h
+++ b/include/d/d_save.h
@@ -280,10 +280,13 @@ public:
void setCollect(int idx, u8 byte) { mCollect[idx] = byte; }
u8 checkCollect(int idx) { return mCollect[idx]; }
void onTact(u8);
+ void offTact(u8);
BOOL isTact(u8);
void onTriforce(u8);
+ void offTriforce(u8);
BOOL isTriforce(u8);
void onSymbol(u8);
+ void offSymbol(u8);
BOOL isSymbol(u8);
int getTriforceNum();
diff --git a/include/f_ap/f_ap_game.h b/include/f_ap/f_ap_game.h
index c50bcdc5..2f86fa2b 100644
--- a/include/f_ap/f_ap_game.h
+++ b/include/f_ap/f_ap_game.h
@@ -11,7 +11,7 @@ void fapGm_Execute();
class fapGm_HIO_c : public JORReflexible {
public:
fapGm_HIO_c();
- virtual ~fapGm_HIO_c();
+ virtual ~fapGm_HIO_c() {}
void genMessage(JORMContext* ctx);
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 62d92e57..8462ecf9 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -545,8 +545,8 @@ f32 fopAcM_searchActorDistanceXZ(fopAc_ac_c* p_actorA, fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistanceXZ2(fopAc_ac_c* p_actorA, fopAc_ac_c* p_actorB);
s32 fopAcM_rollPlayerCrash(fopAc_ac_c* i_this, f32 distAdjust, u32 flag);
-s32 fopAcM_checkCullingBox(Mtx, f32, f32, f32, f32, f32, f32);
-s32 fopAcM_cullingCheck(fopAc_ac_c*);
+bool fopAcM_checkCullingBox(Mtx, f32, f32, f32, f32, f32, f32);
+BOOL fopAcM_cullingCheck(fopAc_ac_c*);
s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*);
s32 fopAcM_orderTalkXBtnEvent(fopAc_ac_c* i_this, fopAc_ac_c* i_partner);
s32 fopAcM_orderTalkYBtnEvent(fopAc_ac_c* i_this, fopAc_ac_c* i_partner);
diff --git a/include/m_Do/m_Do_dvd_thread.h b/include/m_Do/m_Do_dvd_thread.h
index ad26ee68..e43f7073 100644
--- a/include/m_Do/m_Do_dvd_thread.h
+++ b/include/m_Do/m_Do_dvd_thread.h
@@ -89,8 +89,8 @@ private:
class mDoDvdThd_toMainRam_c : public mDoDvdThd_command_c {
public:
- mDoDvdThd_toMainRam_c(u8);
- static mDoDvdThd_toMainRam_c* create(char const*, u8, JKRHeap*);
+ mDoDvdThd_toMainRam_c(u8 direction);
+ static mDoDvdThd_toMainRam_c* create(char const* path, u8 direction, JKRHeap* heap);
virtual ~mDoDvdThd_toMainRam_c();
virtual BOOL execute();
diff --git a/include/m_Do/m_Do_lib.h b/include/m_Do/m_Do_lib.h
index 8036f417..1484aad9 100644
--- a/include/m_Do/m_Do_lib.h
+++ b/include/m_Do/m_Do_lib.h
@@ -14,15 +14,15 @@ struct mDoLib_clipper {
mClipper.calcViewFrustum();
}
- static s32 clip(const Mtx m, Vec* max, Vec* min) {
+ static BOOL clip(const Mtx m, Vec* max, Vec* min) {
return mClipper.clip(m, max, min);
}
- static s32 clip(const Mtx m, Vec center, f32 radius) {
+ static BOOL clip(const Mtx m, Vec center, f32 radius) {
return mClipper.clip(m, center, radius);
}
- static s32 clip(J3DModel* model) {
+ static BOOL clip(J3DModel* model) {
return mClipper.clipByBox(model);
}
diff --git a/src/JAZelAudio/JAIZelBasic.cpp b/src/JAZelAudio/JAIZelBasic.cpp
index 745ecfbe..7508e7c7 100644
--- a/src/JAZelAudio/JAIZelBasic.cpp
+++ b/src/JAZelAudio/JAIZelBasic.cpp
@@ -41,7 +41,9 @@ JAIZelBasic::JAIZelBasic() {
field_0x00a0 = 1.0f;
field_0x00a4 = 1.0f;
field_0x00ac = 1.0f;
+#if VERSION > VERSION_DEMO
field_0x00a8 = 1.0f;
+#endif
mHour = 0;
mMinute = 0;
mWeekday = 0;
@@ -136,8 +138,10 @@ JAIZelBasic::JAIZelBasic() {
field_0x01fe = 0;
field_0x01ff = 0;
field_0x0200 = 0;
+#if VERSION > VERSION_DEMO
field_0x0205 = 0;
field_0x0066 = 0;
+#endif
#if VERSION > VERSION_JPN
field_0x00bf = 0;
field_0x0028 = 0;
@@ -184,6 +188,7 @@ void JAIZelBasic::gframeProcess() {
/* 802A30A4-802A31C0 .text resetProcess__11JAIZelBasicFv */
void JAIZelBasic::resetProcess() {
+#if VERSION > VERSION_DEMO
OSReport("[JAIZelBasic::resetProcess]\n");
for (int i = 0; i < MAX_CONCURRENT_SE_NUM; i++) {
if (mpSeSound[i]) {
@@ -194,6 +199,8 @@ void JAIZelBasic::resetProcess() {
}
}
menuOut();
+#endif
+
for (int i = 0; i < JAIGlobalParameter::getParamSeqPlayTrackMax(); i++) {
JAInter::SeqUpdateData* data = JAInter::SequenceMgr::getPlayTrackInfo(i);
if (data && data->field_0x48) {
@@ -206,8 +213,11 @@ void JAIZelBasic::resetProcess() {
if (JAInter::SeMgr::seHandle) {
JAInter::SeMgr::seHandle->setSeqInterVolume(SOUNDPARAM_Direct, 0.0f, 1);
}
+
+#if VERSION > VERSION_DEMO
mNextSceneBgmId = 0;
field_0x022e = 0;
+#endif
field_0x022d = 0;
}
@@ -325,8 +335,10 @@ void JAIZelBasic::bgmStop(u32 i_fadeTime, s32 param_2) {
}
mSubBgmNum = -1;
field_0x008c = 1.0f;
+#if VERSION > VERSION_DEMO
field_0x00bb = 0;
field_0x0206 = 0;
+#endif
}
demoBgmStop(i_fadeTime);
field_0x1f3c = 0;
@@ -335,6 +347,10 @@ void JAIZelBasic::bgmStop(u32 i_fadeTime, s32 param_2) {
field_0x0064 = 0;
field_0x0065 = 0;
field_0x00b8 = 0;
+#if VERSION == VERSION_DEMO
+ field_0x00bb = 0;
+ field_0x0206 = 0;
+#endif
field_0x00cb = 0xff;
field_0x00cc = 0;
field_0x0032 = 0;
@@ -595,12 +611,16 @@ void JAIZelBasic::cbPracticeStop() {
mpSubBgmSound = NULL;
mSubBgmNum = -1;
}
+#if VERSION > VERSION_DEMO
field_0x00a8 = 1.0;
+#endif
field_0x009c = 1.0;
if (mpMainBgmSound) {
mpMainBgmSound->setVolume(calcMainBgmVol(), 90, SOUNDPARAM_Unk0);
}
+#if VERSION > VERSION_DEMO
field_0x00d0 = 0;
+#endif
}
/* 802A6508-802A6570 .text checkCbPracticePlay__11JAIZelBasicFv */
@@ -1099,9 +1119,12 @@ void JAIZelBasic::startIsleBgm() {
return;
}
u32 bgmNum;
+#if VERSION > VERSION_DEMO
if (mIslandRoomNo == dIsleRoom_OutsetIsland_e && checkEventBit(0xe20) == 1) {
bgmNum = JA_BGM_ISLAND_LINK_3;
- } else {
+ } else
+#endif
+ {
bgmNum = m_isle_info[mIslandRoomNo].bgmNum;
bgmNum = expandSceneBgmNum(bgmNum);
}
@@ -1393,6 +1416,7 @@ BOOL JAIZelBasic::checkLinkOnBoardSea() {
void JAIZelBasic::setSceneName(char* param_1, s32 roomNo, s32 param_3) {
OSReport("[JAIZelBasic::setSceneName] spot = %s, room = %d\n", param_1, roomNo);
s32 sceneNum = spotNameToId(param_1);
+#if VERSION > VERSION_DEMO
if (sceneNum == 0x75) {
for (int i = 0; i < MAX_CONCURRENT_SE_NUM; i++) {
if (mpSeSound[i]) {
@@ -1410,6 +1434,7 @@ void JAIZelBasic::setSceneName(char* param_1, s32 roomNo, s32 param_3) {
} else {
field_0x0066 = 0;
}
+#endif
setScene(sceneNum, roomNo, 0, param_3);
}
@@ -1533,7 +1558,6 @@ void JAIZelBasic::bgmMute(JAISound**, u32, s32, u32) {
/* 802ABBD0-802ABC3C .text checkStreamPlaying__11JAIZelBasicFUl */
int JAIZelBasic::checkStreamPlaying(u32 param_1) {
- /* Nonmatching */
JAISound* sound = JAInter::StreamMgr::streamUpdate->mpSound;
if (!sound) {
return false;
@@ -1541,7 +1565,10 @@ int JAIZelBasic::checkStreamPlaying(u32 param_1) {
if (JAInter::StreamLib::getPlayingFlag() == 0) {
return false;
}
- return param_1 == sound->mSoundID;
+ if (param_1 != sound->mSoundID) {
+ return false;
+ }
+ return true;
}
/* 802ABC3C-802ABC88 .text stWaterLevelUp__11JAIZelBasicFv */
@@ -1593,8 +1620,7 @@ BOOL JAIZelBasic::checkEventBit(u16 param_1) {
return FALSE;
}
u32 var2 = (param_1 & 0xff00) >> 8;
- u32 var1 = param_1 & 0xff;
- u8 temp = field_0x0024[var2] & var1;
+ u8 temp = field_0x0024[var2] & (param_1 & 0xff);
if (temp) {
return TRUE;
} else {
@@ -1659,10 +1685,10 @@ int JAIZelBasic::checkOnOuterSea(f32* r4) {
if (sp0C.field_0x0 > 50000.0f) {
return 4;
}
- int islandX = ((mIslandRoomNo - 1) % 7) - 3;
- f32 f5 = islandX * 100000.0f;
- int islandY = ((mIslandRoomNo - 1) / 7) - 3;
- f32 f1 = islandY * 100000.0f;
+ int islandX = ((mIslandRoomNo - 1) % 7);
+ f32 f5 = (islandX - 3) * 100000.0f;
+ int islandY = ((mIslandRoomNo - 1) / 7);
+ f32 f1 = (islandY - 3) * 100000.0f;
f32 f2 = mAudioCamera->field_0x0->x - f5;
f32 f1_2 = mAudioCamera->field_0x0->z - f1;
f32 f6 = sp0C.field_0x0 - f2;
diff --git a/src/JSystem/J3DU/J3DUClipper.cpp b/src/JSystem/J3DU/J3DUClipper.cpp
index 8b71c29e..605093e8 100644
--- a/src/JSystem/J3DU/J3DUClipper.cpp
+++ b/src/JSystem/J3DU/J3DUClipper.cpp
@@ -49,7 +49,7 @@ void J3DUClipper::calcViewFrustum() {
}
/* 80256888-802569D0 .text clip__11J3DUClipperFPA4_Cf3Vecf */
-s32 J3DUClipper::clip(const Mtx mtx, Vec pos, float radius) {
+BOOL J3DUClipper::clip(const Mtx mtx, Vec pos, float radius) {
Vec p;
MTXMultVec(mtx, &pos, &p);
@@ -70,7 +70,7 @@ s32 J3DUClipper::clip(const Mtx mtx, Vec pos, float radius) {
}
/* 802569D0-80256CB8 .text clip__11J3DUClipperFPA4_CfP3VecP3Vec */
-s32 J3DUClipper::clip(const Mtx mtx, Vec* pMin, Vec* pMax) {
+BOOL J3DUClipper::clip(const Mtx mtx, Vec* pMin, Vec* pMax) {
s32 clip[6];
for (u32 i = 0; i < ARRAY_SIZE(clip); i++)
clip[i] = 0;
diff --git a/src/SSystem/SComponent/c_m3d_g_aab.cpp b/src/SSystem/SComponent/c_m3d_g_aab.cpp
index 4932804d..3b53627d 100644
--- a/src/SSystem/SComponent/c_m3d_g_aab.cpp
+++ b/src/SSystem/SComponent/c_m3d_g_aab.cpp
@@ -7,8 +7,8 @@
/* 80251CC4-80251D08 .text SetMinMax__8cM3dGAabFRC4cXyz */
void cM3dGAab::SetMinMax(const cXyz& pMinMax) {
- this->SetMin(pMinMax);
- this->SetMax(pMinMax);
+ SetMin(pMinMax);
+ SetMax(pMinMax);
}
/* 80251D08-80251D48 .text SetMin__8cM3dGAabFRC4cXyz */
diff --git a/src/d/actor/d_a_agb.cpp b/src/d/actor/d_a_agb.cpp
index 5c99cc44..53d463d5 100644
--- a/src/d/actor/d_a_agb.cpp
+++ b/src/d/actor/d_a_agb.cpp
@@ -395,9 +395,9 @@ int daAgb_c::uploadSelect() {
mUploadAction = UpAct_UNK3;
#if VERSION <= VERSION_JPN
- l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/client.bin", 0, dMsg_getAgbWorkArea());
+ l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/client.bin", JKRArchive::DEFAULT_MOUNT_DIRECTION, dMsg_getAgbWorkArea());
#elif VERSION == VERSION_USA
- l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/client_u.bin", 0, dMsg_getAgbWorkArea());
+ l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/client_u.bin", JKRArchive::DEFAULT_MOUNT_DIRECTION, dMsg_getAgbWorkArea());
#elif VERSION == VERSION_PAL
char path[28];
char pathNum[4];
@@ -405,7 +405,7 @@ int daAgb_c::uploadSelect() {
sprintf(pathNum, "%d", dComIfGs_getPalLanguage());
strcat(path, pathNum);
strcat(path, ".bin");
- l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, 0, dMsg_getAgbWorkArea());
+ l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, JKRArchive::DEFAULT_MOUNT_DIRECTION, dMsg_getAgbWorkArea());
#endif
JUT_ASSERT(VERSION_SELECT(591, 591, 860, 861), l_gbaCommand != NULL);
@@ -473,7 +473,7 @@ int daAgb_c::uploadMessageLoad() {
field_0x664--;
if (field_0x664 == 0) {
#if VERSION != VERSION_PAL
- l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/msg_LZ.bin", 0, NULL);
+ l_gbaCommand = mDoDvdThd_toMainRam_c::create("/res/Gba/msg_LZ.bin", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
#else
char path[28];
char pathNum[4];
@@ -481,7 +481,7 @@ int daAgb_c::uploadMessageLoad() {
sprintf(pathNum, "%d", dComIfGs_getPalLanguage());
strcat(path, pathNum);
strcat(path, ".bin");
- l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, 0, NULL);
+ l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
#endif
JUT_ASSERT(VERSION_SELECT(715, 715, 1000, 1001), l_gbaCommand != NULL);
diff --git a/src/d/actor/d_a_bomb2.cpp b/src/d/actor/d_a_bomb2.cpp
index c4eb40bd..73c921cd 100644
--- a/src/d/actor/d_a_bomb2.cpp
+++ b/src/d/actor/d_a_bomb2.cpp
@@ -1251,12 +1251,7 @@ namespace daBomb2 {
}
bool Act_c::is_draw() {
- bool draw = false;
- if(mState != 2 && !field_0x743 && ! field_0x742) {
- draw = true;
- }
-
- return draw;
+ return mState != 2 && !field_0x743 && ! field_0x742;
}
void Act_c::draw_nut() {
diff --git a/src/d/actor/d_a_esa.cpp b/src/d/actor/d_a_esa.cpp
index 989457af..13d44f58 100644
--- a/src/d/actor/d_a_esa.cpp
+++ b/src/d/actor/d_a_esa.cpp
@@ -76,7 +76,7 @@ void bg_check(esa_class* i_this) {
sp6C.x = 0.0f;
sp6C.y = 0.0f;
sp6C.z = i_this->speedF;
- mDoMtx_YrotS(*calc_mtx, i_this->current.angle.y);
+ cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
MtxPosition(&sp6C, &sp60);
i_this->speed.x = sp60.x;
i_this->speed.z = sp60.z;
@@ -98,7 +98,7 @@ void esa_1_move(esa_class* i_this) {
sp24.y = cM_rndF(8.0f) + 15.0f;
sp24.z = cM_rndF(5.0f) + 10.0f;
i_this->speedF = sp24.z;
- mDoMtx_YrotS(*calc_mtx, i_this->current.angle.y);
+ cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
MtxPosition(&sp24, &i_this->speed);
i_this->mActionState = 1;
@@ -126,7 +126,7 @@ void esa_1_move(esa_class* i_this) {
sp24.x = 0.0f;
sp24.y = 0.0f;
sp24.z = i_this->speedF;
- mDoMtx_YrotS(*calc_mtx, i_this->current.angle.y);
+ cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
cXyz sp18;
MtxPosition(&sp24, &sp18);
i_this->speed.x = sp18.x;
@@ -200,9 +200,9 @@ static BOOL daEsa_Execute(esa_class* i_this) {
esa_1_move(i_this);
MtxTrans(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z, false);
- mDoMtx_YrotM(*calc_mtx, i_this->current.angle.y);
- mDoMtx_XrotM(*calc_mtx, i_this->current.angle.x);
- mDoMtx_ZrotM(*calc_mtx, i_this->current.angle.z);
+ cMtx_YrotM(*calc_mtx, i_this->current.angle.y);
+ cMtx_XrotM(*calc_mtx, i_this->current.angle.x);
+ cMtx_ZrotM(*calc_mtx, i_this->current.angle.z);
i_this->mpModel->setBaseTRMtx(*calc_mtx);
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &i_this->current.pos, &i_this->tevStr);
@@ -271,8 +271,9 @@ static cPhs_State daEsa_Create(fopAc_ac_c* i_actor) {
}
}
+ f32 f2 = REG0_F(5) + 1.0f;
f32 temp = REG0_F(6) + 0.65f;
- f32 scaleF = temp + cM_rndF(REG0_F(5) + 1.0f - temp);
+ f32 scaleF = temp + cM_rndF(f2 - temp);
cXyz scale(scaleF, scaleF, scaleF);
i_this->mpModel->setBaseScale(scale);
fopAcM_SetMtx(i_this, i_this->mpModel->getBaseTRMtx());
diff --git a/src/d/actor/d_a_ib.cpp b/src/d/actor/d_a_ib.cpp
index 70e9144f..e6ba0cd7 100644
--- a/src/d/actor/d_a_ib.cpp
+++ b/src/d/actor/d_a_ib.cpp
@@ -132,7 +132,7 @@ BOOL daIball_c::createItem() {
itemBitNo = -1;
if (isLimitedItem(items[i])) {
itemBitNo = daIball_prm::getItemBitNo(this);
- if ((itemBitNo == 0x1F || itemBitNo == 0xFF || itemBitNo == -1) || fopAcM_isItemForIb(itemBitNo, items[i], current.roomNo)) {
+ if ((itemBitNo == 0x1F || itemBitNo == 0xFF || itemBitNo == -1) || fopAcM_isItemForIb(itemBitNo, items[i], fopAcM_GetRoomNo(this))) {
itemBitNo = -1;
items[i] = dItemNo_YELLOW_RUPEE_e;
}
@@ -228,7 +228,7 @@ void daIball_c::mode_wait_init() {
void daIball_c::mode_wait() {
if (mAcch.ChkGroundLanding()) {
mPrevSpeedY *= m_data.mBounceSpeedMult;
- if (mPrevSpeedY > gravity - 0.5f) {
+ if (mPrevSpeedY > fopAcM_GetGravity(this) - 0.5f) {
speedF = 0.0f;
} else {
speed.set(0.0f, -mPrevSpeedY, 0.0f);
@@ -337,7 +337,10 @@ void daIball_c::CreateInit() {
mpModel->calc();
dKy_plight_set(&mLight);
+
+#if VERSION > VERSION_DEMO
setPointLight();
+#endif
mLightFlickerMult = 1.0f;
regist(this);
@@ -420,17 +423,17 @@ cPhs_State daIball_c::_daIball_create() {
/* 800F489C-800F4B40 .text CreateHeap__9daIball_cFv */
BOOL daIball_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, ALWAYS_BDL_IB);
- JUT_ASSERT(1135, modelData != NULL);
+ JUT_ASSERT(DEMO_SELECT(1133, 1135), modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000222);
if (!mpModel) { return FALSE; }
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(m_arcname, ALWAYS_BCK_START);
- JUT_ASSERT(1152, pbck != NULL);
+ JUT_ASSERT(DEMO_SELECT(1150, 1152), pbck != NULL);
int ret = mBckAnm.init(modelData, pbck, 1, J3DFrameCtrl::EMode_NONE);
if (!ret) { return FALSE; }
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(m_arcname, ALWAYS_BTK_IB);
- JUT_ASSERT(1164, pbtk != NULL);
+ JUT_ASSERT(DEMO_SELECT(1162, 1164), pbtk != NULL);
ret = mBtkAnm.init(modelData, pbtk, 1, J3DFrameCtrl::EMode_LOOP);
if (!ret) { return FALSE; }
@@ -441,7 +444,7 @@ BOOL daIball_c::CreateHeap() {
J3DAnmTevRegKey* pbrk;
for (int i = 0; i < (int)ARRAY_SIZE(mBrkAnm); i++) {
pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_arcname, brkIds[i]);
- JUT_ASSERT(1182, pbrk != NULL);
+ JUT_ASSERT(DEMO_SELECT(1180, 1182), pbrk != NULL);
ret = mBrkAnm[i].init(modelData, pbrk, TRUE, J3DFrameCtrl::EMode_LOOP);
if (!ret) { return FALSE; }
}
@@ -486,7 +489,7 @@ dCcD_SrcCyl daIball_c::m_cyl_src = {
/* SrcObjAt Type */ 0,
/* SrcObjAt Atp */ 0,
/* SrcObjAt SPrm */ 0,
- /* SrcObjTg Type */ ~(AT_TYPE_LIGHT),
+ /* SrcObjTg Type */ DEMO_SELECT(AT_TYPE_ALL, ~(AT_TYPE_LIGHT)),
/* SrcObjTg SPrm */ cCcD_TgSPrm_Set_e | cCcD_TgSPrm_IsOther_e,
/* SrcObjCo SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_IsOther_e | cCcD_CoSPrm_VsGrpAll_e,
/* SrcGObjAt Se */ 0,
diff --git a/src/d/actor/d_a_npc_tc.cpp b/src/d/actor/d_a_npc_tc.cpp
index 0114149e..54111072 100644
--- a/src/d/actor/d_a_npc_tc.cpp
+++ b/src/d/actor/d_a_npc_tc.cpp
@@ -729,7 +729,7 @@ void daNpc_Tc_c::anmAtr(u16 i_msgStatus) {
/* 0000156C-00001618 .text stopTower__10daNpc_Tc_cFv */
void daNpc_Tc_c::stopTower() {
- JUT_ASSERT(VERSION_SELECT(0x3F5, 0x3F4, 0x3F4, 0x3F4), m_tower_actor != NULL);
+ JUT_ASSERT(DEMO_SELECT(0x3F5, 0x3F4), m_tower_actor != NULL);
daObjSmplbg::Act_c* tower = m_tower_actor;
switch (mType) {
@@ -747,7 +747,7 @@ void daNpc_Tc_c::stopTower() {
/* 00001618-000017A4 .text startTower__10daNpc_Tc_cFv */
void daNpc_Tc_c::startTower() {
- JUT_ASSERT(VERSION_SELECT(0x408, 0x407, 0x407, 0x407), m_tower_actor != NULL);
+ JUT_ASSERT(DEMO_SELECT(0x408, 0x407), m_tower_actor != NULL);
daObjSmplbg::Act_c* tower = m_tower_actor;
cXyz temp;
@@ -1142,7 +1142,7 @@ void daNpc_Tc_c::lookBack() {
/* 000024C4-00002594 .text statusWait__10daNpc_Tc_cFv */
void daNpc_Tc_c::statusWait() {
if (mType == TYPE_WHITE || mType == TYPE_RED) {
- JUT_ASSERT(VERSION_SELECT(0x5FE, 0x601, 0x601, 0x601), m_tower_actor != NULL);
+ JUT_ASSERT(DEMO_SELECT(0x5FE, 0x601), m_tower_actor != NULL);
if (m_tower_actor->isStop()) {
mAnmPrmIdx = ANM_PRM_IDX_WAIT04;
@@ -1875,7 +1875,7 @@ daNpc_Tc_c::daNpc_Tc_c() {}
/* 000045D0-000047DC .text _createHeap__10daNpc_Tc_cFv */
BOOL daNpc_Tc_c::_createHeap() {
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Tc", TC_BDL_TC));
- JUT_ASSERT(VERSION_SELECT(0xA26, 0xA30, 0xA30, 0xA30), modelData != NULL);
+ JUT_ASSERT(DEMO_SELECT(0xA26, 0xA30), modelData != NULL);
mpMorf = new mDoExt_McaMorf(
modelData,
@@ -1891,10 +1891,10 @@ BOOL daNpc_Tc_c::_createHeap() {
}
m_jnt.setHeadJntNum(2);
- JUT_ASSERT(VERSION_SELECT(0xA36, 0xA40, 0xA40, 0xA40), m_jnt.getHeadJntNum() >= 0);
+ JUT_ASSERT(DEMO_SELECT(0xA36, 0xA40), m_jnt.getHeadJntNum() >= 0);
m_jnt.setBackboneJntNum(1);
- JUT_ASSERT(VERSION_SELECT(0xA38, 0xA42, 0xA42, 0xA42), m_jnt.getBackboneJntNum() >= 0);
+ JUT_ASSERT(DEMO_SELECT(0xA38, 0xA42), m_jnt.getBackboneJntNum() >= 0);
modelData->getJointNodePointer(2)->setCallBack(nodeCallBack);
modelData->getJointNodePointer(1)->setCallBack(nodeCallBack);
mpMorf->getModel()->setUserArea(reinterpret_cast<u32>(this));
diff --git a/src/d/actor/d_a_obj_ikada.cpp b/src/d/actor/d_a_obj_ikada.cpp
index c2c92504..8311df8e 100644
--- a/src/d/actor/d_a_obj_ikada.cpp
+++ b/src/d/actor/d_a_obj_ikada.cpp
@@ -1154,8 +1154,8 @@ bool daObj_Ikada_c::_execute() {
if (isWave()) {
f32 s = scale.x;
- s32 uVar5 = fopAcM_checkCullingBox(mpModel->getBaseTRMtx(), s * -1000.0f, s * -50.0f, s * -1000.0f, s * 1000.0f, s * 1000.0f, s * 1000.0f);
- if (speedF <= 2.0f || uVar5 & 0xFF || fopAcM_searchPlayerDistanceXZ(this) > 18000.0f) {
+ bool uVar5 = fopAcM_checkCullingBox(mpModel->getBaseTRMtx(), s * -1000.0f, s * -50.0f, s * -1000.0f, s * 1000.0f, s * 1000.0f, s * 1000.0f);
+ if (speedF <= 2.0f || uVar5 || fopAcM_searchPlayerDistanceXZ(this) > 18000.0f) {
mWaveRCallback.end();
mWaveLCallback.end();
mSplashCallBack.end();
diff --git a/src/d/actor/d_a_oship.cpp b/src/d/actor/d_a_oship.cpp
index 2a066ab2..528d0985 100644
--- a/src/d/actor/d_a_oship.cpp
+++ b/src/d/actor/d_a_oship.cpp
@@ -851,10 +851,10 @@ bool daOship_c::_execute() {
setCollision();
setMtx();
- s32 cull_box_check = fopAcM_checkCullingBox(mpModel->getBaseTRMtx(), -300.0f, -100.0f, -650.0f, 300.0f, 700.0f, 800.0f);
+ bool cull_box_check = fopAcM_checkCullingBox(mpModel->getBaseTRMtx(), -300.0f, -100.0f, -650.0f, 300.0f, 700.0f, 800.0f);
if (fopAcM_GetSpeedF(this) <= 2.0f ||
- (cull_box_check & 0xFF) ||
+ cull_box_check ||
fopAcM_searchActorDistanceXZ(this, dComIfGp_getPlayer(0)) > 18000.0f) {
mWaveCallback2.remove();
mWaveCallback1.remove();
diff --git a/src/d/actor/d_a_player_crawl.inc b/src/d/actor/d_a_player_crawl.inc
index 6a8905ff..7e526a5f 100644
--- a/src/d/actor/d_a_player_crawl.inc
+++ b/src/d/actor/d_a_player_crawl.inc
@@ -209,15 +209,14 @@ void daPy_lk_c::crawlBgCheck(cXyz* param_0, cXyz* param_1) {
/* 801390B8-801392BC .text checkCrawlSideWall__9daPy_lk_cFP4cXyzP4cXyzP4cXyzP4cXyzPsPs */
BOOL daPy_lk_c::checkCrawlSideWall(cXyz* param_1, cXyz* param_2, cXyz* param_3, cXyz* param_4, s16* param_5, s16* param_6) {
- cXyz local_78;
- cXyz local_90;
-
mLinkLinChk.Set(param_1, param_2, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
*param_3 = mLinkLinChk.GetCross();
cM3dGPla* plane = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
*param_5 = cM_atan2s(plane->GetNP()->x, plane->GetNP()->z);
- local_90 = *param_3 + (plane->mNormal * 75.0f);
+ cXyz local_78;
+ cXyz local_90;
+ local_90 = *param_3 + (*plane->GetNP() * 75.0f);
local_78 = (local_90 + *param_3) * 0.5f;
mLinkLinChk.Set(&local_78, &local_90, this);
if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) {
diff --git a/src/d/actor/d_a_player_fan.inc b/src/d/actor/d_a_player_fan.inc
index d0a0baff..22974fcd 100644
--- a/src/d/actor/d_a_player_fan.inc
+++ b/src/d/actor/d_a_player_fan.inc
@@ -147,9 +147,10 @@ void daPy_lk_c::setSmallFanModel() {
/* 8014C0C0-8014C254 .text setParachuteFanModel__9daPy_lk_cFf */
void daPy_lk_c::setParachuteFanModel(f32 f31) {
+ J3DModelData* modelData;
J3DAnmTransform* bck = getItemAnimeResource(LKANM_BCK_FANBA);
JKRHeap* oldHeap = setItemHeap();
- J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_FANB));
+ modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_FANB));
mpParachuteFanMorf = new mDoExt_McaMorf(
modelData,
diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp
index f1d0c0f5..5d07fd51 100644
--- a/src/d/actor/d_a_player_main.cpp
+++ b/src/d/actor/d_a_player_main.cpp
@@ -493,21 +493,25 @@ BOOL daPy_lk_c::jointCB1() {
Quaternion* quaternion;
trans_info = m_old_fdata->getOldFrameTransInfo(0x21);
quaternion = m_old_fdata->getOldFrameQuaternion(0x21);
+
mDoMtx_stack_c::ZrotS(mFootData[1].field_0x008);
mDoMtx_stack_c::revConcat(mpCLModel->getAnmMtx(0x20));
mpCLModel->setAnmMtx(0x20, mDoMtx_stack_c::get());
+
mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
mDoMtx_stack_c::quatM(quaternion);
- trans_info++;
- quaternion++;
mDoMtx_stack_c::ZrotM(mFootData[1].field_0x00A);
mpCLModel->setAnmMtx(0x21, mDoMtx_stack_c::get());
- mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
- mDoMtx_stack_c::quatM(quaternion);
trans_info++;
quaternion++;
+
+ mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
+ mDoMtx_stack_c::quatM(quaternion);
mDoMtx_stack_c::ZrotM(mFootData[1].field_0x002);
mpCLModel->setAnmMtx(0x22, mDoMtx_stack_c::get());
+ trans_info++;
+ quaternion++;
+
mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
mDoMtx_stack_c::quatM(quaternion);
mpCLModel->setAnmMtx(0x23, mDoMtx_stack_c::get());
@@ -517,18 +521,21 @@ BOOL daPy_lk_c::jointCB1() {
mDoMtx_stack_c::ZrotS(mFootData[0].field_0x008);
mDoMtx_stack_c::revConcat(mpCLModel->getAnmMtx(0x25));
mpCLModel->setAnmMtx(0x25, mDoMtx_stack_c::get());
+
mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
mDoMtx_stack_c::quatM(quaternion);
- trans_info++;
- quaternion++;
mDoMtx_stack_c::ZrotM(mFootData[0].field_0x00A);
mpCLModel->setAnmMtx(0x26, mDoMtx_stack_c::get());
- mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
- mDoMtx_stack_c::quatM(quaternion);
trans_info++;
quaternion++;
+
+ mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
+ mDoMtx_stack_c::quatM(quaternion);
mDoMtx_stack_c::ZrotM(mFootData[0].field_0x002);
mpCLModel->setAnmMtx(0x27, mDoMtx_stack_c::get());
+ trans_info++;
+ quaternion++;
+
mDoMtx_stack_c::transM(trans_info->mTranslate.x, trans_info->mTranslate.y, trans_info->mTranslate.z);
mDoMtx_stack_c::quatM(quaternion);
mpCLModel->setAnmMtx(0x28, mDoMtx_stack_c::get());
@@ -1033,17 +1040,17 @@ BOOL daPy_lk_c::checkPlayerGuard() const {
/* 8010558C-801056E4 .text setOutPower__9daPy_lk_cFfsi */
void daPy_lk_c::setOutPower(f32 param_1, s16 param_2, int param_3) {
- f32 fVar1 = m3644;
- if (fVar1 < 0.1f) {
+ if (m3644 < 0.1f) {
m3640 = param_2;
m3644 = param_1;
} else {
- f32 dVar5 = fVar1 * cM_ssin(m3640) + param_1 * cM_ssin(param_2);
- f32 dVar4 = fVar1 * cM_scos(m3640) + param_1 * cM_scos(param_2);
+ f32 dVar5 = m3644 * cM_ssin(m3640) + param_1 * cM_ssin(param_2);
+ f32 dVar4 = m3644 * cM_scos(m3640) + param_1 * cM_scos(param_2);
m3640 = cM_atan2s(dVar5, dVar4);
dVar4 = std::sqrtf(dVar5 * dVar5 + dVar4 * dVar4);
m3644 = dVar4;
}
+
if (param_3 != 0) {
onNoResetFlg1(daPyFlg1_UNK10000000);
}
@@ -6220,17 +6227,8 @@ BOOL daPy_lk_c::procMove() {
setSpeedAndAngleNormal(m_HIO->mMove.m.field_0x0);
if (!checkNextMode(0) && !changeFrontWallTypeProc() && !checkIceSlipFall()) {
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_N_WALK_e) {
- // Fakematch. Retail regalloc doesn't match unless all three of these vars are given temps.
- // But demo only matches with this:
- // if (mNormalSpeed > mMaxNormalSpeed * m_HIO->mMove.m.field_0x2C) {
- // mNormalSpeed = mMaxNormalSpeed * m_HIO->mMove.m.field_0x2C;
- // }
- f32 vel = mNormalSpeed;
- f32 temp1 = mMaxNormalSpeed;
- f32 temp2 = m_HIO->mMove.m.field_0x2C;
- if (vel > temp1 * temp2) {
- vel = temp1 * temp2;
- mNormalSpeed = vel;
+ if (mNormalSpeed > mMaxNormalSpeed * m_HIO->mMove.m.field_0x2C) {
+ mNormalSpeed = m_HIO->mMove.m.field_0x2C * mMaxNormalSpeed;
}
}
setBlendMoveAnime(-1.0f);
@@ -8639,6 +8637,7 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4)
if (dVar9 > 10.0f) {
dVar9 = 10.0f;
}
+
mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[0], mDoMtx_stack_c::get());
spE8.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]);
@@ -8647,6 +8646,7 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4)
mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[2], mDoMtx_stack_c::get());
spD0.set(0.0f, mDoMtx_stack_c::get()[1][3] + 3.25f, mDoMtx_stack_c::get()[2][3]);
+
spAC = spDC - spE8;
spA0 = spD0 - spDC;
spB8.x = spD0.x;
@@ -8689,8 +8689,10 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4)
spC4.z = sp58.z + f2 * sp70.z;
sp94 = spC4 - spE8;
sp88 = spB8 - spC4;
+
mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(0), mDoMtx_stack_c::get());
sp64.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]);
+
s16 r29 = cM_atan2s(-sp64.y, -sp64.z);
s16 r27 = cM_atan2s(sp94.y, sp94.z);
s16 r26 = cM_atan2s(sp88.y, sp88.z);
@@ -10908,6 +10910,8 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
pos = &current.pos;
}
+ int subsector_x;
+ int subsector_z;
int quad_x = (1.0f / 50000.0f) * (350000.0f + pos->x);
int quad_z = (1.0f / 50000.0f) * (350000.0f + pos->z);
if (quad_x < 0) {
@@ -10920,9 +10924,8 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
} else if (quad_z > 13) {
quad_z = 13;
}
-
- int subsector_z = (quad_z & 1) << 1;
- int subsector_x = quad_x & 1;
+ subsector_z = (quad_z & 1) << 1;
+ subsector_x = quad_x & 1;
int sector_num = (quad_z >> 1) * 7 + (quad_x >> 1);
int scls_idx = subsector_x + (sector_num << 2) + subsector_z;
@@ -12352,9 +12355,10 @@ void daPy_lk_c::playerInit() {
int num_linktex_headers_seen = 0;
J3DTexture* texture = mpCLModelData->getTexture();
JUT_ASSERT(VERSION_SELECT(21577, 21684, 21764, 21764), texture != NULL);
+ u16 tex_no;
JUTNameTab* textureName = mpCLModelData->getTextureName();
JUT_ASSERT(VERSION_SELECT(21579, 21686, 21766, 21766), textureName != NULL);
- for (u16 tex_no = 0; tex_no < texture->getNum(); tex_no++) {
+ for (tex_no = 0; tex_no < texture->getNum(); tex_no++) {
const char* texName = textureName->getName(tex_no);
if (strcmp(texName, "linktexS3TC") != 0) {
continue;
diff --git a/src/d/actor/d_a_player_rope.inc b/src/d/actor/d_a_player_rope.inc
index 057e5f97..a8e6bbb2 100644
--- a/src/d/actor/d_a_player_rope.inc
+++ b/src/d/actor/d_a_player_rope.inc
@@ -1044,7 +1044,8 @@ BOOL daPy_lk_c::procRopeDown_init() {
} else {
himo2_class* rope = (himo2_class*)mActorKeepRope.getActor();
cXyz* temp = &rope->m1120[34].m10;
- m35A4 = mRopePos.y - DEMO_SELECT(temp->z, temp->y);
+ f32 temp2 = DEMO_SELECT(temp->z, temp->y);
+ m35A4 = mRopePos.y - temp2;
}
if (current.pos.y <= m35A4) {
diff --git a/src/d/actor/d_a_player_whide.inc b/src/d/actor/d_a_player_whide.inc
index ee374e2b..4e97831b 100644
--- a/src/d/actor/d_a_player_whide.inc
+++ b/src/d/actor/d_a_player_whide.inc
@@ -99,7 +99,7 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* i_start, cXyz* i_end, cXyz* param
local_3c.z = param_2->z + cM_ssin(sVar7) * m_HIO->mWall.m.field_0x50;
mGndChk.SetPos(&local_3c);
f32 f31 = dComIfG_Bgsp()->GroundCross(&mGndChk);
- if (-G_CM3D_F_INF != f31 && (!cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y))) {
+ if (-G_CM3D_F_INF != f31 && !cBgW_CheckBGround(dComIfG_Bgsp()->GetTriPla(mGndChk)->GetNP()->y)) {
return NULL;
}
@@ -140,8 +140,8 @@ cM3dGPla* daPy_lk_c::getWHideModePolygon(cXyz* i_start, cXyz* i_end, cXyz* param
}
cM3dGPla* triPla;
triPla = dComIfG_Bgsp()->GetTriPla(mLinkLinChk);
- iVar4 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
- if (sVar7 != (s16)iVar4) {
+ int iVar4 = cM_atan2s(triPla->GetNP()->x, triPla->GetNP()->z);
+ if (sVar7 != iVar4) {
return NULL;
}
}
diff --git a/src/d/d_a_npc_mk_static.cpp b/src/d/d_a_npc_mk_static.cpp
index 789816e0..895325a6 100644
--- a/src/d/d_a_npc_mk_static.cpp
+++ b/src/d/d_a_npc_mk_static.cpp
@@ -87,7 +87,8 @@ f32 daNpc_Mk_Static_c::getSpeedF(f32 param_1, f32 param_2) {
} else if (m8 >= (ma >> 1)) {
fVar2 = param_2;
} else {
- fVar2 = m8 * ((2.0f / ma) * (param_2 - param_1)) + param_1;
+ f32 f4 = (2.0f / ma);
+ fVar2 = m8 * (f4 * (param_2 - param_1)) + param_1;
}
f32 result = fVar2 * m4;
@@ -117,7 +118,7 @@ u8 daNpc_Mk_Static_c::goFarLink_3(fopAc_ac_c* param_1, dNpc_PathRun_c* param_2)
cXyz local_60 = dStack_74.getPoint(mPointIndex2);
cXyz local_6c = dStack_74.getPoint(mPointIndex1);
- s16 sVar4 = cLib_targetAngleY(fopAcM_GetPosition_p(param_1), fopAcM_GetPosition_p(link_actor));
+ s16 sVar4 = cLib_targetAngleY(&param_1->current.pos, &link_actor->current.pos);
s16 sVar5 = cLib_targetAngleY(&local_60, &local_6c);
cM3dGLin unusedLine;
@@ -244,8 +245,9 @@ u8 daNpc_Mk_Static_c::runAwayProc(fopAc_ac_c* param_1, dNpc_PathRun_c* param_2,
turnPath(param_1, param_2, 2);
break;
}
- case 3:
- if ((link_actor->current.pos - param_1->current.pos).absXZ() < 800.0f) {
+ case 3: {
+ f32 temp = (link_actor->current.pos - param_1->current.pos).absXZ();
+ if (temp < 800.0f) {
me = 10;
u8 uVar6 = goFarLink_2(param_1, param_2);
runaway_com2(param_2, uVar6);
@@ -256,13 +258,12 @@ u8 daNpc_Mk_Static_c::runAwayProc(fopAc_ac_c* param_1, dNpc_PathRun_c* param_2,
m8 += 3;
}
break;
-
+ }
case 1:
case 2:
f32 fVar9 = (link_actor->current.pos - param_1->current.pos).absXZ();
- u8 options = (m0 == 1) ? (u8)2 : (u8)3;
- if (walkPath(param_1, param_2, options)) {
+ if (walkPath(param_1, param_2, (m0 == 1) ? (u8)2 : (u8)3)) {
if (fVar9 > 900.0f) {
return 3;
} else {
diff --git a/src/d/d_bg_s_lin_chk.cpp b/src/d/d_bg_s_lin_chk.cpp
index 7d21ac10..30f03445 100644
--- a/src/d/d_bg_s_lin_chk.cpp
+++ b/src/d/d_bg_s_lin_chk.cpp
@@ -8,5 +8,11 @@
/* 800A5678-800A56B8 .text Set__11dBgS_LinChkFP4cXyzP4cXyzP10fopAc_ac_c */
void dBgS_LinChk::Set(cXyz* pi_start, cXyz* pi_end, fopAc_ac_c* pi_actor) {
- Set2(pi_start, pi_end, pi_actor ? fopAcM_GetID(pi_actor) : fpcM_ERROR_PROCESS_ID_e);
+ u32 id;
+ if (pi_actor != NULL) {
+ id = fopAcM_GetID(pi_actor);
+ } else {
+ id = fpcM_ERROR_PROCESS_ID_e;
+ }
+ Set2(pi_start, pi_end, id);
}
diff --git a/src/d/d_bg_s_movebg_actor.cpp b/src/d/d_bg_s_movebg_actor.cpp
index ecbba4b6..c1d7246d 100644
--- a/src/d/d_bg_s_movebg_actor.cpp
+++ b/src/d/d_bg_s_movebg_actor.cpp
@@ -36,7 +36,9 @@ BOOL dBgS_MoveBgActor::MoveBGCreateHeap() {
mpBgW->SetCrrFunc(m_set_func);
}
} else {
+#if VERSION > VERSION_DEMO
mpBgW = NULL;
+#endif
return FALSE;
}
diff --git a/src/d/d_bg_w.cpp b/src/d/d_bg_w.cpp
index c535c54e..74686570 100644
--- a/src/d/d_bg_w.cpp
+++ b/src/d/d_bg_w.cpp
@@ -35,8 +35,8 @@ void dBgW::positionWallCorrect(dBgS_Acch* acch, f32 dist, cM3dGPla& plane, cXyz*
f32 move = speed * dist;
pupper_pos->x += move * plane.mNormal.x;
pupper_pos->z += move * plane.mNormal.z;
- JUT_ASSERT(0xd0, !isnan(pupper_pos->x));
- JUT_ASSERT(0xd1, !isnan(pupper_pos->z));
+ JUT_ASSERT(208, !isnan(pupper_pos->x));
+ JUT_ASSERT(209, !isnan(pupper_pos->z));
}
/* 800A5E64-800A6DF8 .text RwgWallCorrect__4dBgWFP9dBgS_AcchUs */
@@ -195,7 +195,7 @@ bool dBgW::RwgWallCorrect(dBgS_Acch* pwi, u16 i_poly_idx) {
f32 onx = -tri->m_plane.GetNP()->x;
f32 ony = -tri->m_plane.GetNP()->z;
- JUT_ASSERT(463, !(cM3d_IsZero(onx) && cM3d_IsZero(ony)));
+ JUT_ASSERT(DEMO_SELECT(444, 463), !(cM3d_IsZero(onx) && cM3d_IsZero(ony)));
if (spE0 < spE4) {
if ((spE0 > spDC) || (std::fabsf(spE0 - spDC) < 0.008f)) {
@@ -207,8 +207,8 @@ bool dBgW::RwgWallCorrect(dBgS_Acch* pwi, u16 i_poly_idx) {
pwi->GetPos()->x += cx0 - spF0;
pwi->GetPos()->z += cy0 - spF4;
- JUT_ASSERT(484, !isnan(pwi->GetPos()->x));
- JUT_ASSERT(485, !isnan(pwi->GetPos()->z));
+ JUT_ASSERT(DEMO_SELECT(465, 484), !isnan(pwi->GetPos()->x));
+ JUT_ASSERT(DEMO_SELECT(466, 485), !isnan(pwi->GetPos()->z));
pwi->CalcMovePosWork();
pwi->SetWallCirHit(cir_index);
@@ -229,8 +229,8 @@ bool dBgW::RwgWallCorrect(dBgS_Acch* pwi, u16 i_poly_idx) {
pwi->GetPos()->x += cx1 - spF8;
pwi->GetPos()->z += cy1 - spFC;
- JUT_ASSERT(524, !isnan(pwi->GetPos()->x));
- JUT_ASSERT(525, !isnan(pwi->GetPos()->z));
+ JUT_ASSERT(DEMO_SELECT(505, 524), !isnan(pwi->GetPos()->x));
+ JUT_ASSERT(DEMO_SELECT(506, 525), !isnan(pwi->GetPos()->z));
pwi->CalcMovePosWork();
pwi->SetWallCirHit(cir_index);
@@ -298,9 +298,7 @@ bool dBgW::WallCorrectGrpRp(dBgS_Acch* acch, int grp_id, int depth) {
if (ChkGrpThrough(grp_id, acch->GetGrpPassChk(), depth))
return false;
- cBgW_GrpElm* grp = &pm_grp[grp_id];
-
- if (!grp->aab.Cross(acch->GetWallBmdCylP()))
+ if (!pm_grp[grp_id].aab.Cross(acch->GetWallBmdCylP()))
return false;
bool ret = false;
@@ -308,11 +306,12 @@ bool dBgW::WallCorrectGrpRp(dBgS_Acch* acch, int grp_id, int depth) {
if (tree_idx != 0xFFFF && WallCorrectRp(acch, tree_idx))
ret = true;
+ depth++;
s32 child_idx = pm_bgd->m_g_tbl[grp_id].m_first_child;
while (true) {
if (child_idx == 0xFFFF)
break;
- if (WallCorrectGrpRp(acch, child_idx, depth + 1))
+ if (WallCorrectGrpRp(acch, child_idx, depth))
ret = true;
child_idx = pm_bgd->m_g_tbl[child_idx].m_next_sibling;
}
@@ -347,8 +346,7 @@ bool dBgW::RwgRoofChk(u16 poly_index, dBgS_RoofChk* chk) {
/* 800A72E0-800A7514 .text RoofChkRp__4dBgWFP12dBgS_RoofChki */
bool dBgW::RoofChkRp(dBgS_RoofChk* chk, int i) {
cBgW_NodeTree* node = &m_nt_tbl[i];
- // if (!node->CrossY(chk->GetPosP()) || !node->UnderPlaneYUnder(chk->GetNowY()) || node->TopPlaneYUnder(chk->GetPosP()->y))
- if (!node->CrossY(chk->GetPosP()) || !(node->GetMinY() < chk->GetNowY()) || node->TopPlaneYUnder(chk->GetPosP()->y))
+ if (!node->CrossY(chk->GetPosP()) || !node->UnderPlaneYUnder(chk->GetNowY()) || node->TopPlaneYUnder(chk->GetPosP()->y))
return false;
cBgD_Tree_t* tree = &pm_bgd->m_tree_tbl[i];
@@ -385,8 +383,7 @@ bool dBgW::RoofChkGrpRp(dBgS_RoofChk* chk, int grp_id, int depth) {
cBgW_GrpElm* grp = &pm_grp[grp_id];
- // if (!grp->aab.CrossY(chk->GetPosP()) || !grp->aab.UnderPlaneYUnder(chk->GetNowY()) || grp->aab.TopPlaneYUnder(chk->GetPosP()->y))
- if (!grp->aab.CrossY(chk->GetPosP()) || !(grp->aab.GetMinY() < chk->GetNowY()) || grp->aab.TopPlaneYUnder(chk->GetPosP()->y))
+ if (!grp->aab.CrossY(chk->GetPosP()) || !grp->aab.UnderPlaneYUnder(chk->GetNowY()) || grp->aab.TopPlaneYUnder(chk->GetPosP()->y))
return false;
bool ret = false;
@@ -395,11 +392,12 @@ bool dBgW::RoofChkGrpRp(dBgS_RoofChk* chk, int grp_id, int depth) {
if (tree_idx != 0xFFFF && RoofChkRp(chk, tree_idx))
ret = true;
+ depth++;
s32 child_idx = grpd->m_first_child;
while (true) {
if (child_idx == 0xFFFF)
break;
- if (RoofChkGrpRp(chk, child_idx, depth + 1))
+ if (RoofChkGrpRp(chk, child_idx, depth))
ret = true;
child_idx = pm_bgd->m_g_tbl[child_idx].m_next_sibling;
}
@@ -434,8 +432,7 @@ bool dBgW::RwgSplGrpChk(u16 poly_index, dBgS_SplGrpChk* chk) {
/* 800A783C-800A7A74 .text SplGrpChkRp__4dBgWFP14dBgS_SplGrpChki */
bool dBgW::SplGrpChkRp(dBgS_SplGrpChk* chk, int i) {
cBgW_NodeTree* node = &m_nt_tbl[i];
- // if (!node->CrossY(chk->GetPosP()) || !node->UnderPlaneYUnder(chk->GetRoof()) || node->TopPlaneYUnder(chk->GetHeight()))
- if (!node->CrossY(chk->GetPosP()) || !(node->GetMinY() < chk->GetRoof()) || node->GetMaxY() < chk->GetHeight())
+ if (!node->CrossY(chk->GetPosP()) || !node->UnderPlaneYUnder(chk->GetRoof()) || node->TopPlaneYUnder(chk->GetHeight()))
return false;
cBgD_Tree_t* tree = &pm_bgd->m_tree_tbl[i];
@@ -472,8 +469,7 @@ bool dBgW::SplGrpChkGrpRp(dBgS_SplGrpChk* chk, int grp_id, int depth) {
cBgW_GrpElm* grp = &pm_grp[grp_id];
- // if (!grp->aab.CrossY(chk->GetPosP()) || !grp->aab.UnderPlaneYUnder(chk->GetRoof()) || grp->aab.TopPlaneYUnder(chk->GetHeight()))
- if (!grp->aab.CrossY(chk->GetPosP()) || !(grp->aab.GetMinY() < chk->GetRoof()) || grp->aab.GetMaxY() < chk->GetHeight())
+ if (!grp->aab.CrossY(chk->GetPosP()) || !grp->aab.UnderPlaneYUnder(chk->GetRoof()) || grp->aab.TopPlaneYUnder(chk->GetHeight()))
return false;
bool ret = false;
@@ -482,11 +478,12 @@ bool dBgW::SplGrpChkGrpRp(dBgS_SplGrpChk* chk, int grp_id, int depth) {
if (tree_idx != 0xFFFF && SplGrpChkRp(chk, tree_idx))
ret = true;
+ depth++;
s32 child_idx = grpd->m_first_child;
while (true) {
if (child_idx == 0xFFFF)
break;
- if (SplGrpChkGrpRp(chk, child_idx, depth + 1))
+ if (SplGrpChkGrpRp(chk, child_idx, depth))
ret = true;
child_idx = pm_bgd->m_g_tbl[child_idx].m_next_sibling;
}
@@ -579,11 +576,12 @@ bool dBgW::SphChkGrpRp(dBgS_SphChk* chk, void* user, int grp_id, int depth) {
if (tree_idx != 0xFFFF && SphChkRp(chk, user, tree_idx))
ret = true;
+ depth++;
s32 child_idx = grpd->m_first_child;
while (true) {
if (child_idx == 0xFFFF)
break;
- if (SphChkGrpRp(chk, user, child_idx, depth + 1))
+ if (SphChkGrpRp(chk, user, child_idx, depth))
ret = true;
child_idx = pm_bgd->m_g_tbl[child_idx].m_next_sibling;
}
@@ -601,15 +599,15 @@ void dBgW::positionWallCrrPos(cM3dGTri& plane, dBgS_CrrPos* crr, cXyz* pos, f32
/* 800A819C-800A8964 .text RwgWallCrrPos__4dBgWFUsP11dBgS_CrrPos */
bool dBgW::RwgWallCrrPos(u16 i_poly_index, dBgS_CrrPos* crr) {
- cBgW_RwgElm* rwg_elm;
- cBgD_Tri_t* tri_t;
- cM3dGPla* plane;
bool ret = false;
cM3dGTri tri;
cXyz wall_top_pos = *crr->GetPos();
wall_top_pos.y += crr->GetWallH();
cXyz old_wall_top_pos = *crr->GetOldPos();
old_wall_top_pos.y += crr->GetWallH();
+ cBgW_RwgElm* rwg_elm;
+ cBgD_Tri_t* tri_t;
+ cM3dGPla* plane;
u32 poly_index_z = i_poly_index;
u32 poly_index_x = i_poly_index;
@@ -797,7 +795,7 @@ void dBgW::dummyfunc() {
// TODO: find where this assert actually comes from
// cBgW::RwgShdwDraw ?
int index = 0;
- JUT_ASSERT(0, 0 <= index && index < pm_bgd->m_t_num);
+ JUT_ASSERT(DEMO_SELECT(0, 0), 0 <= index && index < pm_bgd->m_t_num);
}
/* 800A8964-800A8B70 .text WallCrrPosRp__4dBgWFP11dBgS_CrrPosi */
@@ -840,9 +838,7 @@ bool dBgW::WallCrrPosGrpRp(dBgS_CrrPos* crr, int grp_id, int depth) {
if (ChkGrpThrough(grp_id, crr->GetGrpPassChk(), depth))
return false;
- cBgW_GrpElm* grp = &pm_grp[grp_id];
-
- if (!grp->aab.Cross(crr->GetCylP()))
+ if (!pm_grp[grp_id].aab.Cross(crr->GetCylP()))
return false;
bool ret = false;
@@ -850,11 +846,12 @@ bool dBgW::WallCrrPosGrpRp(dBgS_CrrPos* crr, int grp_id, int depth) {
if (tree_idx != 0xFFFF && WallCrrPosRp(crr, tree_idx))
ret = true;
+ depth++;
s32 child_idx = pm_bgd->m_g_tbl[grp_id].m_first_child;
while (true) {
if (child_idx == 0xFFFF)
break;
- if (WallCrrPosGrpRp(crr, child_idx, depth + 1))
+ if (WallCrrPosGrpRp(crr, child_idx, depth))
ret = true;
child_idx = pm_bgd->m_g_tbl[child_idx].m_next_sibling;
}
diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp
index b9a6373c..28fcfa9a 100644
--- a/src/d/d_com_inf_game.cpp
+++ b/src/d/d_com_inf_game.cpp
@@ -216,7 +216,12 @@ int dComIfG_play_c::getLayerNo(int i_roomNo) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "Hyrule") == 0) {
- if (dComIfGs_getTriforceNum() == 8) {
+ if (
+ dComIfGs_getTriforceNum() == 8
+#if VERSION == VERSION_DEMO
+ && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_2C01)
+#endif
+ ) {
return layer | 4;
} else if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_3280)) {
return layer | 2;
@@ -267,14 +272,14 @@ int dComIfG_play_c::getLayerNo(int i_roomNo) {
void dComIfG_play_c::createParticle() {
mParticle = new dPa_control_c();
- JUT_ASSERT(VERSION_SELECT(358, 358, 360, 360), mParticle != NULL);
+ JUT_ASSERT(VERSION_SELECT(350, 358, 360, 360), mParticle != NULL);
}
/* 800528F4-8005297C .text createDemo__14dComIfG_play_cFv */
void dComIfG_play_c::createDemo() {
mDemo = new dDemo_manager_c();
- JUT_ASSERT(VERSION_SELECT(388, 388, 390, 390), mDemo != NULL);
+ JUT_ASSERT(VERSION_SELECT(380, 388, 390, 390), mDemo != NULL);
}
/* 8005297C-800529B8 .text removeDemo__14dComIfG_play_cFv */
@@ -482,9 +487,11 @@ int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName) {
if (!fopScnM_ChangeReq(i_scene, i_procName, fpcNm_OVERLAP0_e, 30)) {
return FALSE;
}
-#endif
+ dComIfGs_setRestartRoomParam(0);
+#else
dComIfGp_offEnableNextStage();
+#endif
dComIfGp_setNextStage("sea_T", 0, 44, 0);
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(), dComIfGp_getNextStageLayer());
@@ -670,9 +677,11 @@ void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8
i_lastMode |= link->checkTinkleShield() << 0x10;
+#if VERSION > VERSION_DEMO
if (link->checkNoResetFlg1(daPy_lk_c::daPyFlg1_SOUP_POWER_UP)) {
i_lastMode |= 0x4000;
}
+#endif
}
g_dComIfG_gameInfo.save.getRestart().setLastSceneInfo(i_lastSpeed, i_lastMode);
@@ -703,6 +712,116 @@ BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) {
}
}
+void dComIfGs_onDungeonItemMap(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_onDungeonItemMap();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onDungeonItemMap();
+}
+
+void dComIfGs_offDungeonItemMap(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offDungeonItemMap();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offDungeonItemMap();
+}
+
+BOOL dComIfGs_isDungeonItemMap(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ return dComIfGs_isDungeonItemMap();
+ } else {
+ return g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().isDungeonItemMap();
+ }
+}
+
+void dComIfGs_onDungeonItemCompass(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_onDungeonItemCompass();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onDungeonItemCompass();
+}
+
+void dComIfGs_offDungeonItemCompass(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offDungeonItemCompass();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offDungeonItemCompass();
+}
+
+BOOL dComIfGs_isDungeonItemCompass(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ return dComIfGs_isDungeonItemCompass();
+ } else {
+ return g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().isDungeonItemCompass();
+ }
+}
+
+void dComIfGs_onDungeonItemBossKey(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_onDungeonItemBossKey();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onDungeonItemBossKey();
+}
+
+void dComIfGs_offDungeonItemBossKey(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offDungeonItemBossKey();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offDungeonItemBossKey();
+}
+
+BOOL dComIfGs_isDungeonItemBossKey(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ return dComIfGs_isDungeonItemBossKey();
+ } else {
+ return g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().isDungeonItemBossKey();
+ }
+}
+
+void dComIfGs_onStageBossEnemy(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_onStageBossEnemy();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onStageBossEnemy();
+}
+
+void dComIfGs_offStageBossEnemy(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offStageBossEnemy();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offStageBossEnemy();
+}
+
/* 800539A8-80053A2C .text dComIfGs_isStageBossEnemy__Fi */
BOOL dComIfGs_isStageBossEnemy(int i_stageNo) {
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
@@ -725,6 +844,16 @@ void dComIfGs_onStageLife(int i_stageNo) {
g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onStageLife();
}
+void dComIfGs_offStageLife(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offStageLife();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offStageLife();
+}
+
/* 80053AAC-80053B30 .text dComIfGs_isStageLife__Fi */
BOOL dComIfGs_isStageLife(int i_stageNo) {
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
@@ -736,6 +865,36 @@ BOOL dComIfGs_isStageLife(int i_stageNo) {
}
}
+void dComIfGs_onStageBossDemo(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_onStageBossDemo();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().onStageBossDemo();
+}
+
+void dComIfGs_offStageBossDemo(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ dComIfGs_offStageBossDemo();
+ }
+
+ g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().offStageBossDemo();
+}
+
+BOOL dComIfGs_isStageBossDemo(int i_stageNo) {
+ stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
+
+ if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) {
+ return dComIfGs_isStageBossDemo();
+ } else {
+ return g_dComIfG_gameInfo.save.getSavedata().getSave(i_stageNo).getBit().isStageBossDemo();
+ }
+}
+
/* 80053B30-80053F70 .text dComIfGs_checkGetItem__FUc */
u8 dComIfGs_checkGetItem(u8 i_itemNo) {
u8 get_item = 0;
@@ -1076,12 +1235,12 @@ static void dummy() {
/* 8005468C-800547BC .text getSceneList__Fi */
stage_scls_info_class* getSceneList(int i_no) {
stage_scls_info_dummy_class* sclsInfo = dComIfGp_getStage().getSclsInfo();
- JUT_ASSERT(VERSION_SELECT(2129, 2129, 2132, 2132), sclsInfo != NULL);
+ JUT_ASSERT(VERSION_SELECT(2114, 2129, 2132, 2132), sclsInfo != NULL);
- JUT_ASSERT(VERSION_SELECT(2131, 2131, 2134, 2134), 0 <= i_no && i_no < sclsInfo->num);
+ JUT_ASSERT(VERSION_SELECT(2116, 2131, 2134, 2134), 0 <= i_no && i_no < sclsInfo->num);
stage_scls_info_class* sclsData = sclsInfo->m_entries;
- JUT_ASSERT(VERSION_SELECT(2133, 2133, 2136, 2136), sclsData != NULL);
+ JUT_ASSERT(VERSION_SELECT(2118, 2133, 2136, 2136), sclsData != NULL);
return &sclsData[i_no];
}
@@ -1220,7 +1379,7 @@ void dComIfGs_setGameStartStage() {
strcpy(stage_name, "sea");
stage_map_info_class* mapInfo = dComIfGp_getStage().getMapInfo();
- JUT_ASSERT(VERSION_SELECT(2359, 2359, 2362, 2362), mapInfo != NULL);
+ JUT_ASSERT(VERSION_SELECT(2344, 2359, 2362, 2362), mapInfo != NULL);
room_no = 4 + dStage_mapInfo_GetOceanX(mapInfo) + ((dStage_mapInfo_GetOceanZ(mapInfo) + 3) * 7);
point = 0;
@@ -1236,7 +1395,9 @@ void dComIfGs_setGameStartStage() {
/* 80054C70-80054CC0 .text dComIfGs_gameStart__Fv */
void dComIfGs_gameStart() {
+#if VERSION > VERSION_DEMO
dComIfGp_offEnableNextStage();
+#endif
s8 roomNo = g_dComIfG_gameInfo.save.getPlayer().getPlayerReturnPlace().getRoomNo();
s16 point = g_dComIfG_gameInfo.save.getPlayer().getPlayerReturnPlace().getPoint();
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp
index 7f492257..fe82a4f5 100644
--- a/src/d/d_drawlist.cpp
+++ b/src/d/d_drawlist.cpp
@@ -1459,7 +1459,7 @@ BOOL realPolygonCheck(cXyz* param_0, f32 casterRadius, f32 heightAgl, cXyz* ligh
bbMax.z += casterRadius;
mDoLib_clipper::changeFar(mDoLib_clipper::getFovyRate() * 3000.0f);
- s32 clip = mDoLib_clipper::clip(j3dSys.getViewMtx(), &bbMax, &bbMin);
+ BOOL clip = mDoLib_clipper::clip(j3dSys.getViewMtx(), &bbMax, &bbMin);
mDoLib_clipper::resetFar();
if (clip) {
return FALSE;
diff --git a/src/d/d_gameover.cpp b/src/d/d_gameover.cpp
index a0f7a63b..bf58e008 100644
--- a/src/d/d_gameover.cpp
+++ b/src/d/d_gameover.cpp
@@ -176,7 +176,7 @@ BOOL dGameover_c::_delete() {
mpHeap->freeAll();
dComIfGp_offHeapLockFlag();
mDoExt_setCurrentHeap(oldHeap);
- dComIfG_resDelete(&mPhs, "Gover");
+ dComIfG_resDeleteDemo(&mPhs, "Gover");
return TRUE;
}
@@ -342,16 +342,13 @@ BOOL dDlst_GameOverScrnDraw_c::anime1(int idx) {
fopMsgM_setInitAlpha(&letter[idx]);
letter[idx].mUserArea++;
- f32 y = (1.0f - acc(5, letter[idx].mUserArea, 0)) * -288.0f;
- fopMsgM_paneTrans(&letter[idx], 0.0f, y);
+ fopMsgM_paneTrans(&letter[idx], 0.0f, (1.0f - acc(5, letter[idx].mUserArea, 0)) * -288.0f);
} else if (letter[idx].mUserArea < 7) {
letter[idx].mUserArea++;
- f32 y = acc(2, letter[idx].mUserArea - 5, 0) * -9.0f;
- fopMsgM_paneTrans(&letter[idx], 0.0f, y);
+ fopMsgM_paneTrans(&letter[idx], 0.0f, acc(2, letter[idx].mUserArea - 5, 0) * -9.0f);
} else if (letter[idx].mUserArea < 9) {
letter[idx].mUserArea++;
- f32 y = (1.0f - acc(2, letter[idx].mUserArea - 7, 0)) * -9.0f;
- fopMsgM_paneTrans(&letter[idx], 0.0f, y);
+ fopMsgM_paneTrans(&letter[idx], 0.0f, (1.0f - acc(2, letter[idx].mUserArea - 7, 0)) * -9.0f);
if (letter[idx].mUserArea == 9)
mDoAud_seStart(JA_SE_EXIT_GAME_OVER);
}
diff --git a/src/d/d_item.cpp b/src/d/d_item.cpp
index 36e38870..22b8f5f1 100644
--- a/src/d/d_item.cpp
+++ b/src/d/d_item.cpp
@@ -589,6 +589,9 @@ void item_func_utuwa_heart() {
dComIfGp_setItemMaxLifeCount(4);
dComIfGp_setItemLifeCount(dComIfGs_getMaxLife());
+#if VERSION == VERSION_DEMO
+ dComIfGs_onStageLife();
+#else
stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo();
if (dStage_stagInfo_GetSaveTbl(stag_info) == dSv_save_c::STAGE_SEA) {
// Didn't get the Heart Container immediately after defeating Helmaroc King.
@@ -597,6 +600,7 @@ void item_func_utuwa_heart() {
} else {
dComIfGs_onStageLife();
}
+#endif
}
/* 800C2FD8-800C2FF0 .text item_func_s_magic__Fv */
@@ -1471,429 +1475,551 @@ void item_func_collectmap62() {
/* 800C4F64-800C4FB8 .text item_func_collectmap61__Fv */
void item_func_collectmap61() {
dComIfGs_onGetCollectMap(61);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(61);
dComIfGs_offCompleteCollectMap(61);
+#endif
}
/* 800C4FB8-800C500C .text item_func_collectmap60__Fv */
void item_func_collectmap60() {
dComIfGs_onGetCollectMap(60);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(60);
dComIfGs_offCompleteCollectMap(60);
+#endif
}
/* 800C500C-800C5060 .text item_func_collectmap59__Fv */
void item_func_collectmap59() {
dComIfGs_onGetCollectMap(59);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(59);
dComIfGs_offCompleteCollectMap(59);
+#endif
}
/* 800C5060-800C50B4 .text item_func_collectmap58__Fv */
void item_func_collectmap58() {
dComIfGs_onGetCollectMap(58);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(58);
dComIfGs_offCompleteCollectMap(58);
+#endif
}
/* 800C50B4-800C5108 .text item_func_collectmap57__Fv */
void item_func_collectmap57() {
dComIfGs_onGetCollectMap(57);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(57);
dComIfGs_offCompleteCollectMap(57);
+#endif
}
/* 800C5108-800C515C .text item_func_collectmap56__Fv */
void item_func_collectmap56() {
dComIfGs_onGetCollectMap(56);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(56);
dComIfGs_offCompleteCollectMap(56);
+#endif
}
/* 800C515C-800C51B0 .text item_func_collectmap55__Fv */
void item_func_collectmap55() {
dComIfGs_onGetCollectMap(55);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(55);
dComIfGs_offCompleteCollectMap(55);
+#endif
}
/* 800C51B0-800C5204 .text item_func_collectmap54__Fv */
void item_func_collectmap54() {
dComIfGs_onGetCollectMap(54);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(54);
dComIfGs_offCompleteCollectMap(54);
+#endif
}
/* 800C5204-800C5258 .text item_func_collectmap53__Fv */
void item_func_collectmap53() {
dComIfGs_onGetCollectMap(53);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(53);
dComIfGs_offCompleteCollectMap(53);
+#endif
}
/* 800C5258-800C52AC .text item_func_collectmap52__Fv */
void item_func_collectmap52() {
dComIfGs_onGetCollectMap(52);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(52);
dComIfGs_offCompleteCollectMap(52);
+#endif
}
/* 800C52AC-800C5300 .text item_func_collectmap51__Fv */
void item_func_collectmap51() {
dComIfGs_onGetCollectMap(51);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(51);
dComIfGs_offCompleteCollectMap(51);
+#endif
}
/* 800C5300-800C5354 .text item_func_collectmap50__Fv */
void item_func_collectmap50() {
dComIfGs_onGetCollectMap(50);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(50);
dComIfGs_offCompleteCollectMap(50);
+#endif
}
/* 800C5354-800C53A8 .text item_func_collectmap49__Fv */
void item_func_collectmap49() {
dComIfGs_onGetCollectMap(49);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(49);
dComIfGs_offCompleteCollectMap(49);
+#endif
}
/* 800C53A8-800C53FC .text item_func_collectmap48__Fv */
void item_func_collectmap48() {
dComIfGs_onGetCollectMap(48);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(48);
dComIfGs_offCompleteCollectMap(48);
+#endif
}
/* 800C53FC-800C5450 .text item_func_collectmap47__Fv */
void item_func_collectmap47() {
dComIfGs_onGetCollectMap(47);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(47);
dComIfGs_offCompleteCollectMap(47);
+#endif
}
/* 800C5450-800C54A4 .text item_func_collectmap46__Fv */
void item_func_collectmap46() {
dComIfGs_onGetCollectMap(46);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(46);
dComIfGs_offCompleteCollectMap(46);
+#endif
}
/* 800C54A4-800C54F8 .text item_func_collectmap45__Fv */
void item_func_collectmap45() {
dComIfGs_onGetCollectMap(45);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(45);
dComIfGs_offCompleteCollectMap(45);
+#endif
}
/* 800C54F8-800C554C .text item_func_collectmap44__Fv */
void item_func_collectmap44() {
dComIfGs_onGetCollectMap(44);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(44);
dComIfGs_offCompleteCollectMap(44);
+#endif
}
/* 800C554C-800C55A0 .text item_func_collectmap43__Fv */
void item_func_collectmap43() {
dComIfGs_onGetCollectMap(43);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(43);
dComIfGs_offCompleteCollectMap(43);
+#endif
}
/* 800C55A0-800C55F4 .text item_func_collectmap42__Fv */
void item_func_collectmap42() {
dComIfGs_onGetCollectMap(42);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(42);
dComIfGs_offCompleteCollectMap(42);
+#endif
}
/* 800C55F4-800C5648 .text item_func_collectmap41__Fv */
void item_func_collectmap41() {
dComIfGs_onGetCollectMap(41);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(41);
dComIfGs_offCompleteCollectMap(41);
+#endif
}
/* 800C5648-800C569C .text item_func_collectmap40__Fv */
void item_func_collectmap40() {
dComIfGs_onGetCollectMap(40);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(40);
dComIfGs_offCompleteCollectMap(40);
+#endif
}
/* 800C569C-800C56F0 .text item_func_collectmap39__Fv */
void item_func_collectmap39() {
dComIfGs_onGetCollectMap(39);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(39);
dComIfGs_offCompleteCollectMap(39);
+#endif
}
/* 800C56F0-800C5744 .text item_func_collectmap38__Fv */
void item_func_collectmap38() {
dComIfGs_onGetCollectMap(38);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(38);
dComIfGs_offCompleteCollectMap(38);
+#endif
}
/* 800C5744-800C5798 .text item_func_collectmap37__Fv */
void item_func_collectmap37() {
dComIfGs_onGetCollectMap(37);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(37);
dComIfGs_offCompleteCollectMap(37);
+#endif
}
/* 800C5798-800C57EC .text item_func_collectmap36__Fv */
void item_func_collectmap36() {
dComIfGs_onGetCollectMap(36);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(36);
dComIfGs_offCompleteCollectMap(36);
+#endif
}
/* 800C57EC-800C5840 .text item_func_collectmap35__Fv */
void item_func_collectmap35() {
dComIfGs_onGetCollectMap(35);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(35);
dComIfGs_offCompleteCollectMap(35);
+#endif
}
/* 800C5840-800C5894 .text item_func_collectmap34__Fv */
void item_func_collectmap34() {
dComIfGs_onGetCollectMap(34);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(34);
dComIfGs_offCompleteCollectMap(34);
+#endif
}
/* 800C5894-800C58E8 .text item_func_collectmap33__Fv */
void item_func_collectmap33() {
dComIfGs_onGetCollectMap(33);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(33);
dComIfGs_offCompleteCollectMap(33);
+#endif
}
/* 800C58E8-800C593C .text item_func_collectmap32__Fv */
void item_func_collectmap32() {
dComIfGs_onGetCollectMap(32);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(32);
dComIfGs_offCompleteCollectMap(32);
+#endif
}
/* 800C593C-800C5990 .text item_func_collectmap31__Fv */
void item_func_collectmap31() {
dComIfGs_onGetCollectMap(31);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(31);
dComIfGs_offCompleteCollectMap(31);
+#endif
}
/* 800C5990-800C59E4 .text item_func_collectmap30__Fv */
void item_func_collectmap30() {
dComIfGs_onGetCollectMap(30);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(30);
dComIfGs_offCompleteCollectMap(30);
+#endif
}
/* 800C59E4-800C5A38 .text item_func_collectmap29__Fv */
void item_func_collectmap29() {
dComIfGs_onGetCollectMap(29);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(29);
dComIfGs_offCompleteCollectMap(29);
+#endif
}
/* 800C5A38-800C5A8C .text item_func_collectmap28__Fv */
void item_func_collectmap28() {
dComIfGs_onGetCollectMap(28);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(28);
dComIfGs_offCompleteCollectMap(28);
+#endif
}
/* 800C5A8C-800C5AE0 .text item_func_collectmap27__Fv */
void item_func_collectmap27() {
dComIfGs_onGetCollectMap(27);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(27);
dComIfGs_offCompleteCollectMap(27);
+#endif
}
/* 800C5AE0-800C5B34 .text item_func_collectmap26__Fv */
void item_func_collectmap26() {
dComIfGs_onGetCollectMap(26);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(26);
dComIfGs_offCompleteCollectMap(26);
+#endif
}
/* 800C5B34-800C5B88 .text item_func_collectmap25__Fv */
void item_func_collectmap25() {
dComIfGs_onGetCollectMap(25);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(25);
dComIfGs_offCompleteCollectMap(25);
+#endif
}
/* 800C5B88-800C5BDC .text item_func_collectmap24__Fv */
void item_func_collectmap24() {
dComIfGs_onGetCollectMap(24);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(24);
dComIfGs_offCompleteCollectMap(24);
+#endif
}
/* 800C5BDC-800C5C30 .text item_func_collectmap23__Fv */
void item_func_collectmap23() {
dComIfGs_onGetCollectMap(23);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(23);
dComIfGs_offCompleteCollectMap(23);
+#endif
}
/* 800C5C30-800C5C84 .text item_func_collectmap22__Fv */
void item_func_collectmap22() {
dComIfGs_onGetCollectMap(22);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(22);
dComIfGs_offCompleteCollectMap(22);
+#endif
}
/* 800C5C84-800C5CD8 .text item_func_collectmap21__Fv */
void item_func_collectmap21() {
dComIfGs_onGetCollectMap(21);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(21);
dComIfGs_offCompleteCollectMap(21);
+#endif
}
/* 800C5CD8-800C5D2C .text item_func_collectmap20__Fv */
void item_func_collectmap20() {
dComIfGs_onGetCollectMap(20);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(20);
dComIfGs_offCompleteCollectMap(20);
+#endif
}
/* 800C5D2C-800C5D80 .text item_func_collectmap19__Fv */
void item_func_collectmap19() {
dComIfGs_onGetCollectMap(19);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(19);
dComIfGs_offCompleteCollectMap(19);
+#endif
}
/* 800C5D80-800C5DD4 .text item_func_collectmap18__Fv */
void item_func_collectmap18() {
dComIfGs_onGetCollectMap(18);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(18);
dComIfGs_offCompleteCollectMap(18);
+#endif
}
/* 800C5DD4-800C5E28 .text item_func_collectmap17__Fv */
void item_func_collectmap17() {
dComIfGs_onGetCollectMap(17);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(17);
dComIfGs_offCompleteCollectMap(17);
+#endif
}
/* 800C5E28-800C5E7C .text item_func_collectmap16__Fv */
void item_func_collectmap16() {
dComIfGs_onGetCollectMap(16);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(16);
dComIfGs_offCompleteCollectMap(16);
+#endif
}
/* 800C5E7C-800C5ED0 .text item_func_collectmap15__Fv */
void item_func_collectmap15() {
dComIfGs_onGetCollectMap(15);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(15);
dComIfGs_offCompleteCollectMap(15);
+#endif
}
/* 800C5ED0-800C5F24 .text item_func_collectmap14__Fv */
void item_func_collectmap14() {
dComIfGs_onGetCollectMap(14);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(14);
dComIfGs_offCompleteCollectMap(14);
+#endif
}
/* 800C5F24-800C5F78 .text item_func_collectmap13__Fv */
void item_func_collectmap13() {
dComIfGs_onGetCollectMap(13);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(13);
dComIfGs_offCompleteCollectMap(13);
+#endif
}
/* 800C5F78-800C5FCC .text item_func_collectmap12__Fv */
void item_func_collectmap12() {
dComIfGs_onGetCollectMap(12);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(12);
dComIfGs_offCompleteCollectMap(12);
+#endif
}
/* 800C5FCC-800C6020 .text item_func_collectmap11__Fv */
void item_func_collectmap11() {
dComIfGs_onGetCollectMap(11);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(11);
dComIfGs_offCompleteCollectMap(11);
+#endif
}
/* 800C6020-800C6074 .text item_func_collectmap10__Fv */
void item_func_collectmap10() {
dComIfGs_onGetCollectMap(10);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(10);
dComIfGs_offCompleteCollectMap(10);
+#endif
}
/* 800C6074-800C60C8 .text item_func_collectmap09__Fv */
void item_func_collectmap09() {
dComIfGs_onGetCollectMap(9);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(9);
dComIfGs_offCompleteCollectMap(9);
+#endif
}
/* 800C60C8-800C6128 .text item_func_collectmap08__Fv */
void item_func_collectmap08() {
dComIfGs_onGetCollectMap(8);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(8);
dComIfGs_offCompleteCollectMap(8);
dComIfGs_offCollectMapTriforce(8);
+#endif
}
/* 800C6128-800C617C .text item_func_collectmap07__Fv */
void item_func_collectmap07() {
dComIfGs_onGetCollectMap(7);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(7);
dComIfGs_offCompleteCollectMap(7);
+#endif
}
/* 800C617C-800C61D0 .text item_func_collectmap06__Fv */
void item_func_collectmap06() {
dComIfGs_onGetCollectMap(6);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(6);
dComIfGs_offCompleteCollectMap(6);
+#endif
}
/* 800C61D0-800C6224 .text item_func_collectmap05__Fv */
void item_func_collectmap05() {
dComIfGs_onGetCollectMap(5);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(5);
dComIfGs_offCompleteCollectMap(5);
+#endif
}
/* 800C6224-800C6278 .text item_func_collectmap04__Fv */
void item_func_collectmap04() {
dComIfGs_onGetCollectMap(4);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(4);
dComIfGs_offCompleteCollectMap(4);
+#endif
}
/* 800C6278-800C62CC .text item_func_collectmap03__Fv */
void item_func_collectmap03() {
dComIfGs_onGetCollectMap(3);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(3);
dComIfGs_offCompleteCollectMap(3);
+#endif
}
/* 800C62CC-800C6320 .text item_func_collectmap02__Fv */
void item_func_collectmap02() {
dComIfGs_onGetCollectMap(2);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(2);
dComIfGs_offCompleteCollectMap(2);
+#endif
}
/* 800C6320-800C6374 .text item_func_collectmap01__Fv */
void item_func_collectmap01() {
dComIfGs_onGetCollectMap(1);
+#if VERSION > VERSION_DEMO
dComIfGs_offOpenCollectMap(1);
dComIfGs_offCompleteCollectMap(1);
+#endif
}
/* 800C6374-800C6378 .text item_func_noentry__Fv */
@@ -2732,9 +2858,13 @@ BOOL isHeart(u8 itemNo) {
/* 800C7D28-800C7D70 .text getItemNoByLife__FUc */
u8 getItemNoByLife(u8 itemNo) {
- int life = dComIfGs_getLife() * 100;
+ int life = dComIfGs_getLife();
+#if VERSION == VERSION_DEMO
+ int max = dComIfGs_getMaxLife();
+#else
int max = dComIfGs_getMaxLife() & 0xFC;
- u8 lifePercent = life / max;
+#endif
+ u8 lifePercent = (100 * life) / max;
if (lifePercent != 100) {
return itemNo;
}
@@ -2752,7 +2882,12 @@ u8 check_itemno(int itemNo) {
if (dComIfGs_getMaxMagic() == 0 && (itemNo == dItemNo_SMALL_MAGIC_e || itemNo == dItemNo_LARGE_MAGIC_e)) {
return dItemNo_GREEN_RUPEE_e;
}
- if (!dComIfGs_isGetItem(0xC, 0) && !dComIfGs_isGetItem(0xC, 1) && !dComIfGs_isGetItem(0xC, 2)) {
+#if VERSION == VERSION_DEMO
+ if (!dComIfGs_isGetItem(0xC, 0))
+#else
+ if (!dComIfGs_isGetItem(0xC, 0) && !dComIfGs_isGetItem(0xC, 1) && !dComIfGs_isGetItem(0xC, 2))
+#endif
+ {
// Does not own any bow.
if (isArrow(itemNo)) {
return dItemNo_GREEN_RUPEE_e;
diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp
index ffa2211f..7ddf6629 100644
--- a/src/d/d_kankyo.cpp
+++ b/src/d/d_kankyo.cpp
@@ -151,7 +151,8 @@ static f32 get_parcent(f32 param_0, f32 param_1, f32 param_2) {
f32 temp_f4 = param_0 - param_1;
if (0.0f != temp_f4) {
- temp_f1 = 1.0f - (param_0 - param_2) / temp_f4;
+ f32 f0 = (param_0 - param_2);
+ temp_f1 = 1.0f - f0 / temp_f4;
if (!(temp_f1 >= 1.0f)) {
return temp_f1;
}
@@ -835,10 +836,11 @@ void dScnKy_env_light_c::setLight() {
int palIdx0;
int palIdx1;
+ u8* initAnmTimer_p = &g_env_light.mInitAnimTimer;
setLight_palno_get(&g_env_light.mEnvrIdxPrev, &g_env_light.mEnvrIdxCurr,
&g_env_light.mColpatPrev, &g_env_light.mColpatCurr, &pale0, &pale1, &pale2,
&pale3, &blendAB, &palIdx0, &palIdx1, &g_env_light.mColPatBlend,
- &g_env_light.mInitAnimTimer);
+ initAnmTimer_p);
stage_palet_info_class* pale0_p = &g_env_light.mpPaletInfo[pale0];
stage_palet_info_class* pale1_p = &g_env_light.mpPaletInfo[pale1];
@@ -1827,24 +1829,24 @@ void setLightTevColorType_sub(J3DMaterial* i_material, dKy_tevstr_c* i_tevstr) {
}
if (i_material->getFog() != NULL) {
- J3DFog* fog_p = i_material->getFog();
- if (fog_p->getFogInfo()->mType != 0) {
- fog_p->getFogInfo()->mStartZ = i_tevstr->mFogStartZ;
- fog_p->getFogInfo()->mEndZ = i_tevstr->mFogEndZ;
- if (fog_p->getFogInfo()->mStartZ > fog_p->getFogInfo()->mEndZ) {
- fog_p->getFogInfo()->mStartZ = fog_p->getFogInfo()->mEndZ;
+ J3DFogInfo* fog_info = i_material->getFog()->getFogInfo();
+ if (fog_info->mType != 0) {
+ fog_info->mStartZ = i_tevstr->mFogStartZ;
+ fog_info->mEndZ = i_tevstr->mFogEndZ;
+ if (fog_info->mStartZ > fog_info->mEndZ) {
+ fog_info->mStartZ = fog_info->mEndZ;
}
- fog_p->getFogInfo()->mNearZ = dComIfGd_getView()->mNear;
- fog_p->getFogInfo()->mFarZ = dComIfGd_getView()->mFar;
- fog_p->getFogInfo()->mColor.r = i_tevstr->mFogColor.r;
- fog_p->getFogInfo()->mColor.g = i_tevstr->mFogColor.g;
- fog_p->getFogInfo()->mColor.b = i_tevstr->mFogColor.b;
- fog_p->getFogInfo()->mAdjEnable = g_env_light.mFogAdjEnable;
+ fog_info->mNearZ = dComIfGd_getView()->mNear;
+ fog_info->mFarZ = dComIfGd_getView()->mFar;
+ fog_info->mColor.r = i_tevstr->mFogColor.r;
+ fog_info->mColor.g = i_tevstr->mFogColor.g;
+ fog_info->mColor.b = i_tevstr->mFogColor.b;
+ fog_info->mAdjEnable = g_env_light.mFogAdjEnable;
- if (fog_p->getFogInfo()->mAdjEnable == true) {
- fog_p->getFogInfo()->mCenter = g_env_light.mFogAdjCenter;
- memcpy(fog_p->getFogInfo()->mFogAdjTable, &g_env_light.mFogAdjTable, sizeof(GXFogAdjTable));
+ if (fog_info->mAdjEnable == true) {
+ fog_info->mCenter = g_env_light.mFogAdjCenter;
+ memcpy(fog_info->mFogAdjTable, &g_env_light.mFogAdjTable, sizeof(GXFogAdjTable));
}
}
}
@@ -2146,7 +2148,7 @@ BOOL phantomship_wether() {
}
}
- if (cur_time > 285.0f || cur_time < 90.0f) {
+ if (cur_time > DEMO_SELECT(330.0f, 285.0f) || cur_time < 90.0f) {
s32 roomNo = dComIfGp_roomControl_getStayNo();
if ((roomNo == dIsleRoom_CrescentMoonIsland_e && weekday == 0) ||
(roomNo == dIsleRoom_DiamondSteppeIsland_e && weekday == 1) ||
@@ -2520,12 +2522,7 @@ void dKy_setLight() {
// eflight
{
- s32 eflight;
- if (pPlayer == NULL) {
- eflight = -1;
- } else {
- eflight = dKy_eflight_influence_id(pPlayer->current.pos, 0);
- }
+ int eflight = pPlayer == NULL ? -1 : dKy_eflight_influence_id(pPlayer->current.pos, 0);
if (eflight < 0) {
lightMask = 1;
@@ -3434,11 +3431,11 @@ void dKy_usonami_set(f32 param_0) {
g_env_light.mWaveChan.mWaveReset = 0;
g_env_light.mWaveChan.mWaveScale = 300.0f;
g_env_light.mWaveChan.mWaveScaleRand = 0.001f;
- g_env_light.mWaveChan.mWaveCounterSpeedScale = 1.2f;
+ g_env_light.mWaveChan.mWaveCounterSpeedScale = DEMO_SELECT(1.3f, 1.2f);
g_env_light.mWaveChan.field_0x2f = 0;
g_env_light.mWaveChan.mWaveScaleBottom = 6.0f;
g_env_light.mWaveChan.mWaveCount = 300;
- g_env_light.mWaveChan.mWaveSpeed = 30.0f;
+ g_env_light.mWaveChan.mWaveSpeed = DEMO_SELECT(60.0f, 30.0f);
}
g_env_light.mWaveChan.mWaveFlatInter = param_0;
diff --git a/src/d/d_kankyo_wether.cpp b/src/d/d_kankyo_wether.cpp
index 13dd9aa2..e4ef004e 100644
--- a/src/d/d_kankyo_wether.cpp
+++ b/src/d/d_kankyo_wether.cpp
@@ -10,6 +10,9 @@
#include "d/d_kankyo_rain.h"
#include "f_op/f_op_camera.h"
#include "m_Do/m_Do_audio.h"
+#if VERSION == VERSION_DEMO
+#include "m_Do/m_Do_controller_pad.h"
+#endif
/* 80086F74-80086FC4 .text dKyw_setDrawPacketList__FP9J3DPacketi */
J3DPacket* dKyw_setDrawPacketList(J3DPacket* i_packet, int) {
@@ -772,7 +775,11 @@ void wether_move_vrkumo() {
{
cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f);
} else {
+#if VERSION == VERSION_DEMO
+ cLib_addCalc(&g_env_light.mVrkumoStrength, 0.0f, 0.1f, 0.003f, 0.0000001f);
+#else
cLib_addCalc(&g_env_light.mVrkumoStrength, 0.0f, 0.08f, 0.002f, 0.00000001f);
+#endif
}
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 &&
@@ -1030,6 +1037,26 @@ void dKyw_wind_set() {
strength = 0.0f;
break;
}
+
+#if VERSION == VERSION_DEMO
+ if (strcmp(dComIfGp_getStartStageName(), "sea_E") == 0) {
+ static u8 button_ositankaina = false;
+ if (CPad_CHECK_HOLD_A(3)) {
+ button_ositankaina = true;
+ }
+ if (button_ositankaina) {
+ wind_vec.x = 0.0f;
+ wind_vec.y = 0.0f;
+ wind_vec.z = -1.0f;
+ strength = 1.0f;
+ } else {
+ wind_vec.x = 0.0f;
+ wind_vec.y = 0.0f;
+ wind_vec.z = -1.0f;
+ strength = 0.0f;
+ }
+ }
+#endif
}
if (g_env_light.mWind.mCustomWindPower > 0.0f) {
@@ -1049,10 +1076,11 @@ void dKyw_wind_set() {
g_env_light.mWind.mWindVec = wind_vec;
g_env_light.mWind.mWindPower = strength;
} else {
- cLib_addCalc(&g_env_light.mWind.mWindVec.x, wind_vec.x, 0.1f, 2.0f, 0.001f);
- cLib_addCalc(&g_env_light.mWind.mWindVec.y, wind_vec.y, 0.1f, 2.0f, 0.001f);
- cLib_addCalc(&g_env_light.mWind.mWindVec.z, wind_vec.z, 0.1f, 2.0f, 0.001f);
- cLib_addCalc(&g_env_light.mWind.mWindPower, strength, 0.1f, 1.0f, 0.005f);
+ f32 scale = 0.1f;
+ cLib_addCalc(&g_env_light.mWind.mWindVec.x, wind_vec.x, scale, 2.0f, 0.001f);
+ cLib_addCalc(&g_env_light.mWind.mWindVec.y, wind_vec.y, scale, 2.0f, 0.001f);
+ cLib_addCalc(&g_env_light.mWind.mWindVec.z, wind_vec.z, scale, 2.0f, 0.001f);
+ cLib_addCalc(&g_env_light.mWind.mWindPower, strength, scale, 1.0f, 0.005f);
}
}
@@ -1261,7 +1289,8 @@ void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* i_direction, f32* i_power) {
cXyz sp30;
cXyz sp24;
- sp30 = env_light.mWind.mWindVec * (env_light.mWind.mWindPower * (1.0f - *i_power));
+ f32 f1 = env_light.mWind.mWindPower * (1.0f - *i_power);
+ sp30 = env_light.mWind.mWindVec * f1;
sp24 = *i_direction * (*i_power * 5.0f);
sp54 = sp30 + sp24;
*i_power = sp54.abs();
@@ -1285,9 +1314,11 @@ cXyz dKyw_get_AllWind_vecpow(cXyz* param_0) {
cXyz sp18;
cXyz direction;
f32 power;
+ dScnKy_env_light_c& env_light = dKy_getEnvlight();
dKyw_pntwind_get_info(param_0, &direction, &power);
- sp24 = g_env_light.mWind.mWindVec * (g_env_light.mWind.mWindPower * (1.0f - power));
+ f32 f1 = env_light.mWind.mWindPower * (1.0f - power);
+ sp24 = env_light.mWind.mWindVec * f1;
sp18 = direction * (power * 5.0f);
vecpow = sp24 + sp18;
diff --git a/src/d/d_particle.cpp b/src/d/d_particle.cpp
index 2087aed1..f46b8e07 100644
--- a/src/d/d_particle.cpp
+++ b/src/d/d_particle.cpp
@@ -481,7 +481,7 @@ void dPa_simpleEcallBack::executeAfter(JPABaseEmitter* param_1) {
dPa_simpleData_c* simpleData = mSimpleData;
param_1->playCreateParticle();
while (mCount != 0) {
- if (mDoLib_clipper::clip(j3dSys.getViewMtx(), simpleData->mPos, 200.0f) == 0) {
+ if (!mDoLib_clipper::clip(j3dSys.getViewMtx(), simpleData->mPos, 200.0f)) {
param_1->setGlobalTranslation(simpleData->mPos.x, simpleData->mPos.y, simpleData->mPos.z);
param_1->setGlobalPrmColor(simpleData->mPrmColor.r, simpleData->mPrmColor.g, simpleData->mPrmColor.b);
param_1->setGlobalAlpha(simpleData->mPrmColor.a);
@@ -682,7 +682,7 @@ bool dPa_control_c::readScene(u8 i_no, mDoDvdThd_toMainRam_c** param_2) {
mSceneNo = i_no;
static char jpcName[32];
sprintf(jpcName, "/res/Particle/Pscene%03d.jpc", i_no);
- *param_2 = mDoDvdThd_toMainRam_c::create(jpcName, 0, NULL);
+ *param_2 = mDoDvdThd_toMainRam_c::create(jpcName, JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
return true;
}
diff --git a/src/d/d_place_name.cpp b/src/d/d_place_name.cpp
index 0e2c83da..23d68ac0 100644
--- a/src/d/d_place_name.cpp
+++ b/src/d/d_place_name.cpp
@@ -154,9 +154,9 @@ cPhs_State dPn_c::_create() {
u32 lang = dComIfGs_getPalLanguage();
char buf[32];
sprintf(buf, "/res/placename/PN%d/pn_%02d_%d.bti", lang, dComIfGp_getNowStageNum() + 1, lang);
- dvd = mDoDvdThd_toMainRam_c::create(buf, 0, mpHeap);
+ dvd = mDoDvdThd_toMainRam_c::create(buf, JKRArchive::DEFAULT_MOUNT_DIRECTION, mpHeap);
#else
- dvd = mDoDvdThd_toMainRam_c::create(name_texture[dComIfGp_getNowStageNum()], 0, mpHeap);
+ dvd = mDoDvdThd_toMainRam_c::create(name_texture[dComIfGp_getNowStageNum()], JKRArchive::DEFAULT_MOUNT_DIRECTION, mpHeap);
#endif
mState = 2;
diff --git a/src/d/d_s_menu.cpp b/src/d/d_s_menu.cpp
index 2819e486..4795dae5 100644
--- a/src/d/d_s_menu.cpp
+++ b/src/d/d_s_menu.cpp
@@ -311,9 +311,9 @@ static BOOL dScnMenu_Delete(menu_of_scene_class* i_this) {
/* 8022F3C4-8022F4B0 .text phase_1__FP19menu_of_scene_class */
cPhs_State phase_1(menu_of_scene_class* i_this) {
- i_this->command = mDoDvdThd_toMainRam_c::create("/res/Menu/Menu1.dat", 0, NULL);
+ i_this->command = mDoDvdThd_toMainRam_c::create("/res/Menu/Menu1.dat", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
JUT_ASSERT(VERSION_SELECT(616, 616, 732, 732), i_this->command != NULL);
- i_this->fontCommand = mDoDvdThd_toMainRam_c::create("/res/Menu/kanfont_fix16.bfn", 0, NULL);
+ i_this->fontCommand = mDoDvdThd_toMainRam_c::create("/res/Menu/kanfont_fix16.bfn", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
JUT_ASSERT(VERSION_SELECT(619, 619, 735, 735), i_this->fontCommand != NULL);
return cPhs_NEXT_e;
}
diff --git a/src/d/d_s_name.cpp b/src/d/d_s_name.cpp
index e4e74938..f4d55826 100644
--- a/src/d/d_s_name.cpp
+++ b/src/d/d_s_name.cpp
@@ -842,7 +842,7 @@ void dScnName_c::NameInDraw() {
/* 80232074-802320C0 .text ShopDemoDataLoad__10dScnName_cFv */
void dScnName_c::ShopDemoDataLoad() {
- field_0x410 = mDoDvdThd_toMainRam_c::create("/res/ShopDemo/zelda_save.bin", 0, NULL);
+ field_0x410 = mDoDvdThd_toMainRam_c::create("/res/ShopDemo/zelda_save.bin", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
mMainProc = 15;
}
diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp
index 24821404..7e8c91a7 100644
--- a/src/d/d_save.cpp
+++ b/src/d/d_save.cpp
@@ -767,6 +767,11 @@ void dSv_player_collect_c::onTact(u8 i_no) {
mTact |= (u8)(1 << i_no);
}
+void dSv_player_collect_c::offTact(u8 i_no) {
+ JUT_ASSERT(DEMO_SELECT(1511, 0), 0 <= i_no && i_no < 8);
+ mTact &= ~(u8)(1 << i_no);
+}
+
/* 8005AF40-8005AFD8 .text isTact__20dSv_player_collect_cFUc */
BOOL dSv_player_collect_c::isTact(u8 i_no) {
JUT_ASSERT(DEMO_SELECT(1526, 1532), 0 <= i_no && i_no < 8);
@@ -779,6 +784,11 @@ void dSv_player_collect_c::onTriforce(u8 i_no) {
mTriforce |= (u8)(1 << i_no);
}
+void dSv_player_collect_c::offTriforce(u8 i_no) {
+ JUT_ASSERT(DEMO_SELECT(1556, 0), 0 <= i_no && i_no < 8);
+ mTriforce &= ~(u8)(1 << i_no);
+}
+
/* 8005B06C-8005B104 .text isTriforce__20dSv_player_collect_cFUc */
BOOL dSv_player_collect_c::isTriforce(u8 i_no) {
JUT_ASSERT(DEMO_SELECT(1571, 1577), 0 <= i_no && i_no < 8);
@@ -791,6 +801,11 @@ void dSv_player_collect_c::onSymbol(u8 i_no) {
mSymbol |= (u8)(1 << i_no);
}
+void dSv_player_collect_c::offSymbol(u8 i_no) {
+ JUT_ASSERT(DEMO_SELECT(1601, 0), 0 <= i_no && i_no < 8);
+ mSymbol &= ~(u8)(1 << i_no);
+}
+
/* 8005B198-8005B230 .text isSymbol__20dSv_player_collect_cFUc */
BOOL dSv_player_collect_c::isSymbol(u8 i_no) {
JUT_ASSERT(DEMO_SELECT(1616, 1622), 0 <= i_no && i_no < 8);
@@ -1125,6 +1140,11 @@ void dSv_memBit_c::onDungeonItem(int i_no) {
mDungeonItem |= (u8)(1 << i_no);
}
+void dSv_memBit_c::offDungeonItem(int i_no) {
+ JUT_ASSERT(DEMO_SELECT(2451, 0), 0 <= i_no && i_no < 6);
+ mDungeonItem &= ~(u8)(1 << i_no);
+}
+
/* 8005C844-8005C8E8 .text isDungeonItem__12dSv_memBit_cFi */
BOOL dSv_memBit_c::isDungeonItem(int i_no) {
JUT_ASSERT(VERSION_SELECT(2466, 2494, 2521, 2521), 0 <= i_no && i_no < 6);
diff --git a/src/d/d_wood.cpp b/src/d/d_wood.cpp
index 8a37725c..0b11c7eb 100644
--- a/src/d/d_wood.cpp
+++ b/src/d/d_wood.cpp
@@ -413,12 +413,13 @@ void dWood::Anm_c::mode_push_into(dWood::Packet_c *packet) {
f32 rotY = 0.0f;
f32 rotX = rotY;
for (s32 i = 0; i < 2; i++) {
+ s32 phaseVelY = attr_sway(SWAY_PUSH, i).phaseVelY;
s32 phaseVelX = attr_sway(SWAY_PUSH, i).phaseVelX;
s32 ampY = attr_sway(SWAY_PUSH, i).ampY;
s32 ampX = attr_sway(SWAY_PUSH, i).ampX;
f32 phaseBiasX = attr_sway(SWAY_PUSH, i).phaseBiasX;
- mPhaseY[i] += attr_sway(SWAY_PUSH, i).phaseVelY;
+ mPhaseY[i] += phaseVelY;
cLib_chaseAngleS(&mPhaseX[i], 0, phaseVelX);
cLib_chaseS(&mAmpY[i], ampY/4, 0x14);
cLib_addCalcAngleS(&mAmpX[i], ampX, 8, 0x14, 5);
@@ -427,9 +428,9 @@ void dWood::Anm_c::mode_push_into(dWood::Packet_c *packet) {
rotX += mAmpX[i] * (phaseBiasX + JMASCos(mPhaseX[i]));
}
- mDoMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
- mDoMtx_XrotM(mModelMtx, (s32)rotX);
- mDoMtx_YrotM(mModelMtx, -mForceDir);
+ cMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
+ cMtx_XrotM(mModelMtx, (s32)rotX);
+ cMtx_YrotM(mModelMtx, -mForceDir);
}
}
@@ -466,9 +467,9 @@ void dWood::Anm_c::mode_push_back(dWood::Packet_c *packet) {
rotX += mAmpX[i] * (phaseBiasX + JMASCos(mPhaseX[i]));
}
- mDoMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
- mDoMtx_XrotM(mModelMtx, (s32)rotX);
- mDoMtx_YrotM(mModelMtx, -mForceDir);
+ cMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
+ cMtx_XrotM(mModelMtx, (s32)rotX);
+ cMtx_YrotM(mModelMtx, -mForceDir);
}
}
@@ -508,12 +509,13 @@ void dWood::Anm_c::mode_norm(dWood::Packet_c *packet) {
f32 rotY = 0.0f;
f32 rotX = rotY;
for (s32 i = 0; i < 2; i++) {
+ s32 phaseVelY = attr_sway(swayID, i).phaseVelY;
s32 phaseVelX = attr_sway(swayID, i).phaseVelX;
s16 ampY = attr_sway(swayID, i).ampY;
s16 ampX = attr_sway(swayID, i).ampX;
f32 phaseBiasX = attr_sway(swayID, i).phaseBiasX;
- mPhaseY[i] += attr_sway(swayID, i).phaseVelY;
+ mPhaseY[i] += phaseVelY;
mPhaseX[i] += phaseVelX;
cLib_chaseS(&mAmpY[i], ampY, 2);
cLib_chaseS(&mAmpX[i], ampX, 2);
@@ -522,9 +524,9 @@ void dWood::Anm_c::mode_norm(dWood::Packet_c *packet) {
rotX += mAmpX[i] * (phaseBiasX + JMASCos(mPhaseX[i]));
}
- mDoMtx_YrotS(mModelMtx, (s16)rotY + mForceDir); // Y Rotation (Yaw)
- mDoMtx_XrotM(mModelMtx, rotX); // X Rotation
- mDoMtx_YrotM(mModelMtx, -mForceDir); // Y Rotation
+ cMtx_YrotS(mModelMtx, (s16)rotY + mForceDir); // Y Rotation (Yaw)
+ cMtx_XrotM(mModelMtx, rotX); // X Rotation
+ cMtx_YrotM(mModelMtx, -mForceDir); // Y Rotation
}
/* 800BE148-800BE154 .text mode_norm_set_wind__Q25dWood5Anm_cFfs */
@@ -576,9 +578,9 @@ void dWood::Anm_c::mode_to_norm(dWood::Packet_c *packet) {
rotX += mAmpX[i] * (phaseBiasX + JMASCos(mPhaseX[i]));
}
- mDoMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
- mDoMtx_XrotM(mModelMtx, rotX);
- mDoMtx_YrotM(mModelMtx, -mForceDir);
+ cMtx_YrotS(mModelMtx, (s16)rotY + mForceDir);
+ cMtx_XrotM(mModelMtx, rotX);
+ cMtx_YrotM(mModelMtx, -mForceDir);
if (mCountdown > 0) {
mCountdown -= 1;
@@ -650,15 +652,15 @@ void dWood::Unit_c::set_mtx(dWood::Anm_c *anim) {
mtx[0][3] += mPos.x;
mtx[1][3] += mPos.y;
mtx[2][3] += mPos.z;
- mDoMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mModelViewMtx);
+ cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mModelViewMtx);
mDoMtx_stack_c::copy(anim[anmIdx].mTrunkModelMtx);
mtx[0][3] = mPos.x;
mtx[1][3] = mPos.y;
mtx[2][3] = mPos.z;
- mDoMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mTrunkModelViewMtx);
+ cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mTrunkModelViewMtx);
- mDoMtx_concat(j3dSys.getViewMtx(), mShadowModelMtx, mShadowModelViewMtx);
+ cMtx_concat(j3dSys.getViewMtx(), mShadowModelMtx, mShadowModelViewMtx);
}
/* 800BEA28-800BEA50 .text clear__Q25dWood6Unit_cFv */
@@ -779,9 +781,9 @@ void dWood::Unit_c::cc_hit_before_cut(dWood::Packet_c *packet) {
f32 newShadowScale = L_attr.kCutShadowScale / L_attr.kUncutShadowScale;
- mDoMtx_copy(mShadowModelMtx, mDoMtx_stack_c::get());
+ cMtx_copy(mShadowModelMtx, mDoMtx_stack_c::get());
mDoMtx_stack_c::scaleM(newShadowScale, 1.0f, newShadowScale);
- mDoMtx_copy(mDoMtx_stack_c::get(), mShadowModelMtx);
+ cMtx_copy(mDoMtx_stack_c::get(), mShadowModelMtx);
}
}
}
@@ -835,7 +837,9 @@ void dWood::Room_c::delete_all_unit() {
Unit_c *unit;
while (unit = mpUnit, unit != NULL) {
mpUnit = unit->mpNext;
- mDoAud_zelAudio_c::getInterface()->seDeleteObject((Vec *)unit);
+#if VERSION > VERSION_DEMO
+ mDoAud_zelAudio_c::getInterface()->seDeleteObject(&unit->mPos);
+#endif
unit->clear();
}
}
@@ -930,10 +934,13 @@ void dWood::Packet_c::update() {
s32 i = 0;
for (Unit_c *unit = mUnit; i < (s32)ARRAY_SIZE(mUnit); i++, unit++) {
if (cLib_checkBit(unit->mFlags, Unit_c::STATE_ACTIVE)) {
- cXyz clipPos(unit->mPos.x, unit->mPos.y + L_attr.kClipCenterYOffset, unit->mPos.z);
- s32 res = mDoLib_clipper::clip(j3dSys.getViewMtx(), clipPos, L_attr.kClipRadius);
+ BOOL clip = mDoLib_clipper::clip(
+ j3dSys.getViewMtx(),
+ cXyz(unit->mPos.x, unit->mPos.y + L_attr.kClipCenterYOffset, unit->mPos.z),
+ L_attr.kClipRadius
+ );
- if (res != 0) {
+ if (clip) {
cLib_onBit(unit->mFlags, Unit_c::STATE_FRUSTUM_CULLED);
} else {
cLib_offBit(unit->mFlags, Unit_c::STATE_FRUSTUM_CULLED);
diff --git a/src/f_ap/f_ap_game.cpp b/src/f_ap/f_ap_game.cpp
index a710bf0e..7764527a 100644
--- a/src/f_ap/f_ap_game.cpp
+++ b/src/f_ap/f_ap_game.cpp
@@ -54,22 +54,10 @@ fapGm_HIO_c::fapGm_HIO_c() {
field_0x20.a = 0xff;
mTriggerThreshLo = 0.9f;
mTriggerThreshHi = 0.6f;
- field_0x3c.r = 0xff;
- field_0x3c.g = 0x96;
- field_0x3c.b = 0;
- field_0x3c.a = 0xff;
- field_0x40.r = 0xff;
- field_0x40.g = 0x78;
- field_0x40.b = 0;
- field_0x40.a = 0xff;
- field_0x44.r = 0;
- field_0x44.g = 0;
- field_0x44.b = 0;
- field_0x44.a = 0xff;
- field_0x48.r = 0;
- field_0x48.g = 0;
- field_0x48.b = 0;
- field_0x48.a = 0xff;
+ field_0x3c = JUtility::TColor(0xff, 0x96, 0x00, 0xff);
+ field_0x40 = JUtility::TColor(0xff, 0x78, 0x00, 0xff);
+ field_0x44 = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
+ field_0x48 = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
field_0x4c = 0;
field_0x4e = 10;
field_0x54 = 0x1b;
@@ -102,7 +90,3 @@ void fapGm_Create() {
g_HIO.mNo = mDoHIO_createChild("ゲームシステム", &g_HIO); // "Game System"
}
-
-/* 80023288-800232D0 .text __dt__11fapGm_HIO_cFv */
-fapGm_HIO_c::~fapGm_HIO_c() {
-}
diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp
index b7ec1016..b48dcd09 100644
--- a/src/f_op/f_op_actor_mng.cpp
+++ b/src/f_op/f_op_actor_mng.cpp
@@ -539,12 +539,16 @@ s32 fopAcM_rollPlayerCrash(fopAc_ac_c* i_this, f32 distAdjust, u32 flag) {
}
/* 800255B4-80025660 .text fopAcM_checkCullingBox__FPA4_fffffff */
-s32 fopAcM_checkCullingBox(Mtx m, f32 x0, f32 y0, f32 z0, f32 x1, f32 y1, f32 z1) {
+bool fopAcM_checkCullingBox(Mtx m, f32 x0, f32 y0, f32 z0, f32 x1, f32 y1, f32 z1) {
Vec p0 = { x0, y0, z0 };
Vec p1 = { x1, y1, z1 };
Mtx viewMtx;
cMtx_concat(j3dSys.getViewMtx(), m, viewMtx);
- return mDoLib_clipper::clip(viewMtx, &p1, &p0) != 0;
+ if (mDoLib_clipper::clip(viewMtx, &p1, &p0)) {
+ return true;
+ } else {
+ return false;
+ }
}
static l_HIO l_hio;
@@ -584,7 +588,7 @@ static void dummy() {
}
/* 80025660-800259A8 .text fopAcM_cullingCheck__FP10fopAc_ac_c */
-s32 fopAcM_cullingCheck(fopAc_ac_c* i_this) {
+BOOL fopAcM_cullingCheck(fopAc_ac_c* i_this) {
MtxP pMtx;
if (fopAcM_GetMtx(i_this) == NULL) {
pMtx = j3dSys.getViewMtx();
@@ -603,7 +607,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c* i_this) {
if (fopAcM_GetCullSize(i_this) == fopAc_CULLBOX_CUSTOM_e) {
if (fopAcM_getCullSizeFar(i_this) > 0.0f) {
mDoLib_clipper::changeFar(cullFar * mDoLib_clipper::getFar());
- s32 ret = mDoLib_clipper::clip(pMtx, fopAcM_getCullSizeBoxMax(i_this), fopAcM_getCullSizeBoxMin(i_this));
+ BOOL ret = mDoLib_clipper::clip(pMtx, fopAcM_getCullSizeBoxMax(i_this), fopAcM_getCullSizeBoxMin(i_this));
mDoLib_clipper::resetFar();
return ret;
} else {
@@ -613,7 +617,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c* i_this) {
fopAc_cullSizeBox* box = &l_cullSizeBox[fopAcM_CULLSIZE_IDX(fopAcM_GetCullSize(i_this))];
if (fopAcM_getCullSizeFar(i_this) > 0.0f) {
mDoLib_clipper::changeFar(cullFar * mDoLib_clipper::getFar());
- s32 ret = mDoLib_clipper::clip(pMtx, &box->max, &box->min);
+ BOOL ret = mDoLib_clipper::clip(pMtx, &box->max, &box->min);
mDoLib_clipper::resetFar();
return ret;
} else {
@@ -624,7 +628,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c* i_this) {
if (fopAcM_GetCullSize(i_this) == fopAc_CULLSPHERE_CUSTOM_e) {
if (fopAcM_getCullSizeFar(i_this) > 0.0f) {
mDoLib_clipper::changeFar(cullFar * mDoLib_clipper::getFar());
- s32 ret = mDoLib_clipper::clip(pMtx, *fopAcM_getCullSizeSphereCenter(i_this), fopAcM_getCullSizeSphereR(i_this));
+ BOOL ret = mDoLib_clipper::clip(pMtx, *fopAcM_getCullSizeSphereCenter(i_this), fopAcM_getCullSizeSphereR(i_this));
mDoLib_clipper::resetFar();
return ret;
} else {
@@ -635,7 +639,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c* i_this) {
fopAc_cullSizeSphere* sphere = &l_cullSizeSphere[fopAcM_CULLSIZE_Q_IDX(fopAcM_GetCullSize(i_this))];
if (fopAcM_getCullSizeFar(i_this) > 0.0f) {
mDoLib_clipper::changeFar(cullFar * mDoLib_clipper::getFar());
- s32 ret = mDoLib_clipper::clip(pMtx, sphere->center, sphere->radius);
+ BOOL ret = mDoLib_clipper::clip(pMtx, sphere->center, sphere->radius);
mDoLib_clipper::resetFar();
return ret;
} else {
@@ -1260,7 +1264,8 @@ fpc_ProcID fopAcM_createIball(cXyz* p_pos, int itemTableIdx, int i_roomNo, csXyz
/* 800278D8-80027920 .text fopAcM_createWarpFlower__FP4cXyzP5csXyziUc */
void fopAcM_createWarpFlower(cXyz* p_pos, csXyz* p_angle, int i_roomNo, u8 param_4) {
- u32 params = param_4;
+ u32 mask = 0x0FFFFFFF;
+ u32 params = mask & param_4;
fopAcM_create(fpcNm_WARPFLOWER_e, params, p_pos, i_roomNo, p_angle);
}
diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp
index 7c40a496..5e87f6eb 100644
--- a/src/f_op/f_op_msg_mng.cpp
+++ b/src/f_op/f_op_msg_mng.cpp
@@ -1474,8 +1474,8 @@ const char* fopMsgM_msgGet_c::getMessage(mesg_header* msg) {
mMsgIdx = i;
if (mMsgNo == info->mEntries[i].mMsgNo) {
JMSMesgEntry_c* entry = &info->mEntries[mMsgIdx];
- mResMsgNo = entry->mMsgNo;
ret = &data[entry->mDataOffs];
+ mResMsgNo = entry->mMsgNo;
break;
}
}
diff --git a/src/f_op/f_op_overlap_req.cpp b/src/f_op/f_op_overlap_req.cpp
index 727a8aaf..e2540d1c 100644
--- a/src/f_op/f_op_overlap_req.cpp
+++ b/src/f_op/f_op_overlap_req.cpp
@@ -78,7 +78,8 @@ static cPhs_State fopOvlpReq_phase_IsCreated(overlap_request_class* i_this) {
static cPhs_State fopOvlpReq_phase_Create(overlap_request_class* i_this) {
fpcLy_SetCurrentLayer(i_this->pCurrentLayer);
- i_this->mPId = fpcSCtRq_Request(fpcLy_CurrentLayer(), i_this->mProcName, NULL, NULL, NULL);
+ s16 procName = i_this->mProcName;
+ i_this->mPId = fpcSCtRq_Request(fpcLy_CurrentLayer(), procName, NULL, NULL, NULL);
return cPhs_NEXT_e;
}
diff --git a/src/f_op/f_op_scene_mng.cpp b/src/f_op/f_op_scene_mng.cpp
index 88307167..08ac4625 100644
--- a/src/f_op/f_op_scene_mng.cpp
+++ b/src/f_op/f_op_scene_mng.cpp
@@ -46,7 +46,7 @@ u32 fopScnM_ReRequest(s16 procName, u32 user) {
void fopScnM_Management() {
if (!fopScnRq_Handler())
- JUT_ASSERT(326, FALSE);
+ JUT_ASSERT(DEMO_SELECT(284, 326), FALSE);
}
void fopScnM_Init() {
diff --git a/src/m_Do/m_Do_audio.cpp b/src/m_Do/m_Do_audio.cpp
index 16fea599..76215e36 100644
--- a/src/m_Do/m_Do_audio.cpp
+++ b/src/m_Do/m_Do_audio.cpp
@@ -53,13 +53,33 @@ JKRExpHeap* mDoAud_audioStreamHeap;
/* 80006DD4-80006F88 .text mDoAud_allocStreamBuffer__Fv */
void mDoAud_allocStreamBuffer() {
- JUT_ASSERT(98, mDoAud_StreamBufferPointer == NULL);
+ JUT_ASSERT(DEMO_SELECT(91, 98), mDoAud_StreamBufferPointer == NULL);
u32 var1 = mDoAud_StreamBufferBlocks;
u32 size;
while (true) {
JAIGlobalParameter::setParamStreamDecodedBufferBlocks(var1);
size = JAInter::StreamLib::getNeedBufferSize();
- JUT_ASSERT(124, mDoAud_audioStreamHeap == NULL);
+ JUT_ASSERT(DEMO_SELECT(117, 124), mDoAud_audioStreamHeap == NULL);
+#if VERSION == VERSION_DEMO
+ mDoAud_audioStreamHeap = zeldaHeap;
+ mDoAud_StreamBufferPointer = JKRAllocFromHeap(zeldaHeap, size, 0);
+ if (!mDoAud_StreamBufferPointer) {
+ JUT_WARN(120, "%s", "zeldaHeap pinch");
+ mDoAud_audioStreamHeap = archiveHeap;
+ mDoAud_StreamBufferPointer = JKRAllocFromHeap(archiveHeap, size, 0);
+ }
+ if (!mDoAud_StreamBufferPointer) {
+ JUT_WARN(124, "%s", "archiveHeap pinch");
+ mDoAud_audioStreamHeap = gameHeap;
+ mDoAud_StreamBufferPointer = JKRAllocFromHeap(gameHeap, size, 0);
+ }
+ if (!mDoAud_StreamBufferPointer && var1 > 3) {
+ var1--;
+ continue;
+ }
+ JUT_ASSERT(135, mDoAud_StreamBufferPointer);
+ break;
+#else
mDoAud_audioStreamHeap = archiveHeap;
mDoAud_StreamBufferPointer = JKRAllocFromHeap(archiveHeap, size, 0);
if (!mDoAud_StreamBufferPointer) {
@@ -79,16 +99,17 @@ void mDoAud_allocStreamBuffer() {
}
JUT_ASSERT(144, mDoAud_StreamBufferPointer);
return;
+#endif
}
bool success = g_mDoAud_zelAudio.allocStreamBuffer(mDoAud_StreamBufferPointer, size);
- JUT_ASSERT(148, success);
+ JUT_ASSERT(DEMO_SELECT(137, 148), success);
}
/* 80006F88-8000703C .text mDoAud_deallocStreamBuffer__Fv */
void mDoAud_deallocStreamBuffer() {
- JUT_ASSERT(174, mDoAud_StreamBufferPointer);
+ JUT_ASSERT(DEMO_SELECT(161, 174), mDoAud_StreamBufferPointer);
bool success = g_mDoAud_zelAudio.deallocStreamBuffer();
- JUT_ASSERT(182, success);
+ JUT_ASSERT(DEMO_SELECT(169, 182), success);
JKRFreeToHeap(mDoAud_audioStreamHeap, mDoAud_StreamBufferPointer);
mDoAud_audioStreamHeap = NULL;
mDoAud_StreamBufferPointer = NULL;
@@ -113,7 +134,11 @@ static mDoDvdThd_mountArchive_c* l_arcCommand;
/* 80007090-80007224 .text mDoAud_Create__Fv */
void mDoAud_Create() {
if (!l_affCommand) {
- l_affCommand = mDoDvdThd_toMainRam_c::create("/Audiores/JaiInit.aaf", 2, NULL);
+#if VERSION == VERSION_DEMO
+ l_affCommand = mDoDvdThd_toMainRam_c::create("/Audiores/JaiInit.aaf", JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL);
+#else
+ l_affCommand = mDoDvdThd_toMainRam_c::create("/Audiores/JaiInit.aaf", JKRArchive::MOUNT_DIRECTION_TAIL, NULL);
+#endif
if (!l_affCommand) {
return;
}
@@ -130,18 +155,27 @@ void mDoAud_Create() {
JAIGlobalParameter::setParamInitDataPointer(l_affCommand->getMemAddress());
JAInter::SequenceMgr::setArchivePointer(l_arcCommand->getArchive());
mDoAud_setupStreamBuffer();
+#if VERSION == VERSION_DEMO
+ g_mDoAud_audioHeap = JKRSolidHeap::create(0x166800, JKRHeap::getCurrentHeap(), false);
if (g_mDoAud_audioHeap) {
-#if VERSION <= VERSION_JPN
+ g_mDoAud_zelAudio.init(g_mDoAud_audioHeap, 0x00a00000);
+ g_mDoAud_audioHeap->adjustSize();
+ }
+#else
+ if (g_mDoAud_audioHeap) {
+#if VERSION == VERSION_JPN
JUTReportConsole("mDoAud_Create g_mDoAud_zelAudio.init before\n");
#endif
JKRSetCurrentHeap(NULL);
g_mDoAud_zelAudio.init(g_mDoAud_audioHeap, 0x00a00000);
JKRSetCurrentHeap(zeldaHeap);
-#if VERSION <= VERSION_JPN
+#if VERSION == VERSION_JPN
JUTReportConsole("mDoAud_Create g_mDoAud_zelAudio.init after\n");
#endif
g_mDoAud_audioHeap->adjustSize();
- } else {
+ }
+#endif
+ else {
OSReport_Error("ヒープ確保失敗につきオーディオ初期化できません\n");
}
g_mDoAud_zelAudio.setEventBit(dComIfGs_getPEventBit());
diff --git a/src/m_Do/m_Do_dvd_thread.cpp b/src/m_Do/m_Do_dvd_thread.cpp
index 3aa2fe62..2403cf49 100644
--- a/src/m_Do/m_Do_dvd_thread.cpp
+++ b/src/m_Do/m_Do_dvd_thread.cpp
@@ -22,10 +22,14 @@ u8 mDoDvdThd::sDefaultDirection = JKRArchive::DEFAULT_MOUNT_DIRECTION;
/* 80017EF8-80017F54 .text main__9mDoDvdThdFPv */
s32 mDoDvdThd::main(void* userData) {
+#if VERSION == VERSION_DEMO
+ JKRThread thread(&l_thread, 0);
+#else
{ JKRThread thread(OSGetCurrentThread(), 0); }
JKRHeap* heap = NULL;
heap->becomeCurrentHeap();
+#endif
mDoDvdThd_param_c* param = (mDoDvdThd_param_c*)userData;
param->mainLoop();
@@ -46,8 +50,10 @@ void mDoDvdThd::suspend() {
/* 80017FD8-80018038 .text my_DVDConvertPathToEntrynum__FPCc */
s32 my_DVDConvertPathToEntrynum(const char* path) {
s32 entryNo = DVDConvertPathToEntrynum(path);
+#if VERSION > VERSION_DEMO
if (entryNo < 0)
JUT_WARN(0x240, "can't open:[%s]\n", path);
+#endif
return entryNo;
}
@@ -158,8 +164,10 @@ mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8 direction) {
mEntryNum = -1;
mArchive = NULL;
mHeap = NULL;
+#if VERSION > VERSION_DEMO
if (direction == JKRArchive::DEFAULT_MOUNT_DIRECTION)
mMountDirection = mDoDvdThd::sDefaultDirection;
+#endif
}
/* 80018554-8001861C .text create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap */
@@ -225,8 +233,10 @@ mDoDvdThd_mountXArchive_c::mDoDvdThd_mountXArchive_c(u8 direction, JKRArchive::E
mEntryNum = -1;
mArchive = NULL;
mMountMode = mountMode;
+#if VERSION > VERSION_DEMO
if (direction == JKRArchive::DEFAULT_MOUNT_DIRECTION)
mMountDirection = mDoDvdThd::sDefaultDirection;
+#endif
}
/* 80018844-8001890C .text create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountMode */
@@ -263,8 +273,10 @@ BOOL mDoDvdThd_mountXArchive_c::execute() {
/* 80018984-800189E0 .text __ct__21mDoDvdThd_toMainRam_cFUc */
mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8 direction) {
mAllocDirection = direction;
+#if VERSION > VERSION_DEMO
if (direction == JKRArchive::DEFAULT_MOUNT_DIRECTION)
mAllocDirection = mDoDvdThd::sDefaultDirection;
+#endif
}
/* 800189E0-80018AA8 .text create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap */
@@ -298,20 +310,20 @@ BOOL mDoDvdThd_toMainRam_c::execute() {
heap = mDoExt_getArchiveHeap();
}
- JKRDvdRipper::EAllocDirection allocDir;
- if (mAllocDirection == JKRDvdRipper::DEFAULT_EALLOC_DIRECTION) {
- allocDir = JKRDvdRipper::ALLOC_DIRECTION_FORWARD;
- } else {
- allocDir = JKRDvdRipper::ALLOC_DIRECTION_BACKWARD;
- }
+ JKRDvdRipper::EAllocDirection allocDir = mAllocDirection == JKRDvdRipper::DEFAULT_EALLOC_DIRECTION ?
+ JKRDvdRipper::ALLOC_DIRECTION_FORWARD :
+ JKRDvdRipper::ALLOC_DIRECTION_BACKWARD;
mData = JKRDvdRipper::loadToMainRAM(mEntryNum, NULL, EXPAND_SWITCH_UNKNOWN1, 0, heap, allocDir, 0, NULL);
- if (mData != NULL)
+ if (mData != NULL) {
mDataSize = heap->getSize(mData);
+ }
+
mIsDone = true;
return mData != NULL;
}
static void dummy2() {
+ OSReport("m_Do_dvd_thread.cpp");
OSReport("mArchive != 0");
OSReport("Halt");
OSReport("archive");
diff --git a/src/m_Do/m_Do_gba_com.cpp b/src/m_Do/m_Do_gba_com.cpp
index 46b8a257..de4b7c73 100644
--- a/src/m_Do/m_Do_gba_com.cpp
+++ b/src/m_Do/m_Do_gba_com.cpp
@@ -86,7 +86,9 @@ void mDoGaC_agbCom_c::mDoGaC_Initial(mDoGaC_DataManag_c* param_0, u8 param_1) {
field_0x4 = 1;
field_0x5 = 0;
mPortNo = 1;
+#if VERSION > VERSION_DEMO
field_0x10e = 0;
+#endif
field_0x7 = 0;
field_0x8 = 0;
field_0x10c = param_1;
@@ -198,9 +200,11 @@ void mDoGaC_agbCom_c::mDoGaC_Connect() {
case 0:
field_0x2 = 1;
JUTGba::getManager()->doProbe(mDoGaC_getPortNo(), ProbeCheck_0, NULL);
+#if VERSION > VERSION_DEMO
if (field_0x10e < 3) {
field_0x10e++;
}
+#endif
break;
case 2:
mDoGaC_ComRestart();
@@ -216,7 +220,9 @@ void mDoGaC_agbCom_c::mDoGaC_Connect() {
mDoGaC_ComClose();
}
+#if VERSION > VERSION_DEMO
field_0x10e = 0;
+#endif
break;
case 4:
break;
@@ -243,9 +249,11 @@ int mDoGaC_agbCom_c::mDoGaC_GbaLink() {
return 1;
}
+#if VERSION > VERSION_DEMO
if (field_0x128 == 1 && field_0x10e < 3) {
return 1;
}
+#endif
return 0;
}
diff --git a/src/m_Do/m_Do_machine_exception.cpp b/src/m_Do/m_Do_machine_exception.cpp
index 765be439..37f4aac9 100644
--- a/src/m_Do/m_Do_machine_exception.cpp
+++ b/src/m_Do/m_Do_machine_exception.cpp
@@ -27,13 +27,29 @@ void print(const char* string) {
sConsole->print(string);
}
-static const char* unused_803396f8 = "--------------------------------------\n";
+static void dummy() {
+ OSReport("--------------------------------------\n");
+}
+
+#if VERSION == VERSION_DEMO
+static void bakaboso() {
+ print("----------------------------\n");
+ print_f("BAKABOSO TIME=%lld\n", OSTicksToMilliseconds(OSGetTime()));
+ print("----------------------------\n");
+}
+#endif
/* 8001BB90-8001BCEC .text dispHeapInfo__Fv */
void dispHeapInfo() {
+#if VERSION == VERSION_DEMO
+ JKRExpHeap* zelda = mDoExt_getZeldaHeap();
+ JKRExpHeap* game = mDoExt_getGameHeap();
+ JKRExpHeap* archive = mDoExt_getArchiveHeap();
+#else
JKRExpHeap* zelda = zeldaHeap;
JKRExpHeap* game = gameHeap;
JKRExpHeap* archive = archiveHeap;
+#endif
u32 zeldaFree = zelda->getFreeSize();
u32 gameFree = game->getFreeSize();
@@ -42,11 +58,19 @@ void dispHeapInfo() {
u32 gameTotal = game->getTotalFreeSize();
u32 archiveTotal = archive->getTotalFreeSize();
+#if VERSION == VERSION_DEMO
+ print("-- Heap Free / TotalFree (KB) --\n");
+ print_f(" Zelda %4d / %4d\n", zeldaFree / 1024, zeldaTotal / 1024);
+ print_f(" Game %4d / %4d\n", gameFree / 1024, gameTotal / 1024);
+ print_f("Archive %4d / %4d\n", archiveFree / 1024, archiveTotal / 1024);
+ print("--------------------------------\n");
+#else
print("-- Heap Free / TotalFree (KB) --\n");
print_f(" Zelda %5d / %5d\n", zeldaFree / 1024, zeldaTotal / 1024);
print_f(" Game %5d / %5d\n", gameFree / 1024, gameTotal / 1024);
print_f("Archive %5d / %5d\n", archiveFree / 1024, archiveTotal / 1024);
print("--------------------------------\n");
+#endif
if (JKRAram::getAramHeap()) {
JKRAram::getAramHeap()->dump();
@@ -59,11 +83,13 @@ void dispHeapInfo() {
archive->dump_sort();
}
+#if VERSION > VERSION_DEMO
/* 8001BCEC-8001BD30 .text dispGameInfo__Fv */
void dispGameInfo() {
print_f("Start StageName:RoomNo [%s:%d]\n", dComIfGp_getStartStageName(),
dComIfGp_getStartStageRoomNo());
}
+#endif
/* 8001BD30-8001BE84 .text dispDateInfo__Fv */
void dispDateInfo() {
@@ -97,8 +123,13 @@ void dispConsoleToTerminal() {
/* 8001BEAC-8001BEDC .text exception_addition__FP10JUTConsole */
void exception_addition(JUTConsole* pConsole) {
sConsole = pConsole;
+#if VERSION == VERSION_DEMO
+ bakaboso();
+#endif
dispHeapInfo();
dispDateInfo();
dispConsoleToTerminal();
+#if VERSION > VERSION_DEMO
dispGameInfo();
+#endif
}