Demo work and fakematch cleanup (#1034)

This commit is contained in:
LagoLunatic
2026-05-28 13:49:11 -04:00
committed by GitHub
parent a70388d63f
commit 8b46c357e4
50 changed files with 813 additions and 296 deletions
+14 -14
View File
@@ -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"),
+17 -4
View File
@@ -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;
+2 -2
View File
@@ -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; }
+10 -2
View File
@@ -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 {}
+49 -15
View File
@@ -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);
}
+3
View File
@@ -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();
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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);
+2 -2
View File
@@ -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();
+3 -3
View File
@@ -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);
}
+35 -9
View File
@@ -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;
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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 */
+5 -5
View File
@@ -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);
+1 -6
View File
@@ -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() {
+8 -7
View File
@@ -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());
+10 -7
View File
@@ -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,
+6 -6
View File
@@ -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));
+2 -2
View File
@@ -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();
+2 -2
View File
@@ -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();
+3 -4
View File
@@ -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)) {
+2 -1
View File
@@ -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,
+31 -27
View File
@@ -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;
+2 -1
View File
@@ -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) {
+3 -3
View File
@@ -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;
}
}
+8 -7
View File
@@ -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 {
+7 -1
View File
@@ -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);
}
+2
View File
@@ -36,7 +36,9 @@ BOOL dBgS_MoveBgActor::MoveBGCreateHeap() {
mpBgW->SetCrrFunc(m_set_func);
}
} else {
#if VERSION > VERSION_DEMO
mpBgW = NULL;
#endif
return FALSE;
}
+27 -30
View File
@@ -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;
}
+169 -8
View File
@@ -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();
+1 -1
View File
@@ -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;
+4 -7
View File
@@ -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);
}
+138 -3
View File
@@ -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;
+23 -26
View File
@@ -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;
+37 -6
View File
@@ -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;
+2 -2
View File
@@ -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;
}
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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;
}
+1 -1
View File
@@ -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;
}
+20
View File
@@ -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);
+30 -23
View File
@@ -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);
+4 -20
View File
@@ -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() {
}
+13 -8
View File
@@ -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);
}
+1 -1
View File
@@ -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;
}
}
+2 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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() {
+43 -9
View File
@@ -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());
+19 -7
View File
@@ -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");
+8
View File
@@ -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;
}
+32 -1
View File
@@ -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
}