Import JASCmdStack, std-vector work, Z2StatusMgr OK (#2029)

* Import JASCmdStack

* Work on std-vector

* Z2StatusMgr OK
This commit is contained in:
hatal175
2024-01-11 01:16:40 +02:00
committed by GitHub
parent 99f0efe975
commit f342bd7171
43 changed files with 483 additions and 1277 deletions
+150 -189
View File
@@ -1,84 +1,14 @@
//
// Generated By: dol2asm
// Translation Unit: Z2StatusMgr
// Z2StatusMgr
//
#include "Z2AudioLib/Z2StatusMgr.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2Param.h"
#include "d/com/d_com_inf_game.h"
#include "d/s/d_s_play.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__11Z2StatusMgrFv();
extern "C" void heartGaugeOn__11Z2StatusMgrFv();
extern "C" void processHeartGaugeSound__11Z2StatusMgrFv();
extern "C" void talkIn__11Z2StatusMgrFv();
extern "C" void talkOut__11Z2StatusMgrFv();
extern "C" void menuIn__11Z2StatusMgrFv();
extern "C" void menuOut__11Z2StatusMgrFv();
extern "C" bool isMovieDemo__11Z2StatusMgrFv();
extern "C" void setDemoName__11Z2StatusMgrFPc();
extern "C" void processTime__11Z2StatusMgrFv();
extern "C" bool checkDayTime__11Z2StatusMgrFv();
extern "C" void setEventBit__11Z2StatusMgrFPv();
extern "C" void setCameraPolygonPos__11Z2StatusMgrFP3Vec();
extern "C" void setCameraGroupInfo__11Z2StatusMgrFUc();
extern "C" void setCameraInWaterDepth__11Z2StatusMgrFf();
extern "C" extern char const* const Z2StatusMgr__stringBase0;
//
// External References:
//
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seMoveVolumeAll__7Z2SeMgrFfUl();
extern "C" void talkInSe__7Z2SeMgrFv();
extern "C" void talkOutSe__7Z2SeMgrFv();
extern "C" void menuInSe__7Z2SeMgrFv();
extern "C" void subBgmStart__8Z2SeqMgrFUl();
extern "C" void subBgmStop__8Z2SeqMgrFv();
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
extern "C" void bgmStreamStop__8Z2SeqMgrFUl();
extern "C" void talkInBgm__8Z2SeqMgrFv();
extern "C" void talkOutBgm__8Z2SeqMgrFv();
extern "C" void menuInBgm__8Z2SeqMgrFv();
extern "C" void menuOutBgm__8Z2SeqMgrFv();
extern "C" void setBattleBgmOff__8Z2SeqMgrFb();
extern "C" void sceneBgmStart__10Z2SceneMgrFv();
extern "C" void setUnderWaterFx__11Z2FxLineMgrFb();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern u8 struct_80450860[4];
extern "C" extern u8 data_80450B40[4];
extern "C" extern u8 data_80450B60[4];
extern "C" extern u8 data_80450B80[4];
extern "C" extern Z2SeqMgr* data_80450B84;
extern "C" extern Z2SeMgr* data_80450B88;
extern "C" extern u8 pauseTimer__9dScnPly_c[4];
extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* ############################################################################################## */
/* 80455A18-80455A1C 004018 0004+00 1/1 0/0 0/0 .sdata2 @3395 */
SECTION_SDATA2 static f32 lit_3395 = 10000000.0f;
/* 80455A1C-80455A20 00401C 0004+00 3/3 0/0 0/0 .sdata2 @3396 */
SECTION_SDATA2 static u8 lit_3396[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 802B5F1C-802B5F70 2B085C 0054+00 0/0 1/1 0/0 .text __ct__11Z2StatusMgrFv */
Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) {
mHour = 0;
@@ -90,14 +20,12 @@ Z2StatusMgr::Z2StatusMgr() : JASGlobalInstance(this) {
mIsMenuIn = false;
mCameraMapInfo = 0;
f32 temp_f0 = lit_3395;
mPolygonPosition.x = temp_f0;
mPolygonPosition.y = temp_f0;
mPolygonPosition.z = temp_f0;
mPolygonPosition.x = 10000000.0f;
mPolygonPosition.y = 10000000.0f;
mPolygonPosition.z = 10000000.0f;
f32 temp_f0_2 = FLOAT_LABEL(lit_3396);
mUnderwaterDepth = temp_f0_2;
mCameraInWaterDepthRatio = temp_f0_2;
mUnderwaterDepth = 0.0f;
mCameraInWaterDepthRatio = 0.0f;
mDemoStatus = 0;
mHeartGaugeOn = 0;
@@ -108,22 +36,32 @@ void Z2StatusMgr::heartGaugeOn() {
mHeartGaugeOn = 2;
}
/* ############################################################################################## */
/* 80455A20-80455A24 004020 0004+00 3/3 0/0 0/0 .sdata2 @3467 */
SECTION_SDATA2 static f32 lit_3467 = 1.0f;
/* 80455A24-80455A28 004024 0004+00 1/1 0/0 0/0 .sdata2 @3468 */
SECTION_SDATA2 static f32 lit_3468 = -1.0f;
/* 802B5F7C-802B60CC 2B08BC 0150+00 0/0 1/1 0/0 .text processHeartGaugeSound__11Z2StatusMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2StatusMgr::processHeartGaugeSound() {
nofralloc
#include "asm/Z2AudioLib/Z2StatusMgr/processHeartGaugeSound__11Z2StatusMgrFv.s"
void Z2StatusMgr::processHeartGaugeSound() {
if (!i_dComIfGp_event_runCheck() && mHeartGaugeOn != 0) {
if (dScnPly_c::isPause()) {
mHeartGaugeOn--;
}
if (Z2GetLink() == NULL) {
return;
}
u32 linkHp = Z2GetLink()->getLinkHp();
if (linkHp == 0) {
return;
}
if (Z2GetSeqMgr()->isItemGetDemo()) {
return;
}
if (linkHp <= 2) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_3, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
} else if (linkHp <= 4) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_2, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
} else if (linkHp <= 6) {
Z2GetSeMgr()->seStartLevel(Z2SE_ALMOST_DIE_ALERM_1, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
}
}
#pragma pop
/* 802B60CC-802B6104 2B0A0C 0038+00 0/0 1/1 0/0 .text talkIn__11Z2StatusMgrFv */
void Z2StatusMgr::talkIn() {
@@ -247,90 +185,109 @@ SECTION_DEAD static char const* const stringBase_8039BED6 = "D_SB07";
SECTION_DEAD static char const* const stringBase_8039BEDD = "D_SB08";
SECTION_DEAD static char const* const stringBase_8039BEE4 = "D_SB09";
SECTION_DEAD static char const* const stringBase_8039BEEB = "D_SB10";
SECTION_DEAD static char const* const stringBase_8039BEF2 = "force_end";
SECTION_DEAD static char const* const stringBase_8039BEFC = "SAVEREQ";
SECTION_DEAD static char const* const stringBase_8039BF04 = "SAVEGID";
SECTION_DEAD static char const* const stringBase_8039BF0C = "demo36_01";
SECTION_DEAD static char const* const stringBase_8039BF16 = "demo36_02";
SECTION_DEAD static char const* const stringBase_8039BF20 = "demo37_01";
SECTION_DEAD static char const* const stringBase_8039BF2A = "demo31";
SECTION_DEAD static char const* const stringBase_8039BF31 = "demo";
SECTION_DEAD static char const* const stringBase_8039BF36 = "force_start";
SECTION_DEAD static char const* const stringBase_8039BF42 = "KAGO_HIKARI";
SECTION_DEAD static char const* const stringBase_8039BF4E = "KAGO_YAMI";
SECTION_DEAD static char const* const stringBase_8039BF58 = "HYRULEOP";
SECTION_DEAD static char const* const stringBase_8039BF61 = "R00_start";
SECTION_DEAD static char const* const stringBase_8039BF6B = "B_W_START";
SECTION_DEAD static char const* const stringBase_8039BF75 = "L0_rampart01";
SECTION_DEAD static char const* const stringBase_8039BF82 = "R22-opening";
SECTION_DEAD static char const* const stringBase_8039BF8E = "R01-start";
SECTION_DEAD static char const* const stringBase_8039BF98 = "LV3R00OP";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039BFA1 = "\0\0\0\0\0\0";
#pragma pop
/* 803CA508-803CA5C0 -00001 00B8+00 1/1 0/0 0/0 .data @3732 */
SECTION_DATA static void* lit_3732[46] = {
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x438),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x3F8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x3C0),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x45C),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x480),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4A4),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4E8),
(void*)(((char*)setDemoName__11Z2StatusMgrFPc) + 0x4C8),
};
/* 80455A28-80455A30 004028 0008+00 1/1 0/0 0/0 .sdata2 @3731 */
SECTION_SDATA2 static f64 lit_3731 = 4503599627370496.0 /* cast u32 to float */;
/* 802B61E8-802B671C 2B0B28 0534+00 1/0 7/7 11/11 .text setDemoName__11Z2StatusMgrFPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2StatusMgr::setDemoName(char* param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2StatusMgr/setDemoName__11Z2StatusMgrFPc.s"
void Z2StatusMgr::setDemoName(char* demoName) {
if (mDemoStatus == 11) {
mDemoStatus = 0;
if (Z2GetSceneMgr()->isInGame()) {
Z2GetSceneMgr()->sceneBgmStart();
}
}
if (demoName == NULL) {
if (mDemoStatus == 3) {
Z2GetSeqMgr()->setBattleBgmOff(false);
} else if (mDemoStatus == 4) {
Z2GetSeqMgr()->i_unMuteSceneBgm(struct_80450861);
} else if (mDemoStatus == 5) {
Z2GetSeqMgr()->subBgmStop();
} else if (mDemoStatus == 9) {
Z2GetSeqMgr()->bgmStreamStop(0x3c);
}
if (mDemoStatus != 8) {
mDemoStatus = 0;
}
} else {
bool bVar1 = false;
if (mDemoStatus == 8) {
if (strcmp(demoName, "force_end") == 0) {
mDemoStatus = 0;
}
} else if (strcmp(demoName, "SAVEREQ") == 0 || strcmp(demoName, "SAVEGID") == 0) {
mDemoStatus = 11;
} else if (strcmp(demoName, "demo36_01") == 0 || strcmp(demoName, "demo36_02") == 0) {
mDemoStatus = 4;
Z2GetSeqMgr()->i_muteSceneBgm(0x1e, 0.0f);
} else if (strcmp(demoName, "demo37_01") == 0) {
mDemoStatus = 12;
Z2GetSoundMgr()->getSeMgr()->getCategory(9)->getParams()->moveVolume(0.0f, 0);
} else if (strncmp(demoName, "demo31", 6) == 0) {
mDemoStatus = 13;
Z2GetSeMgr()->seMoveVolumeAll(0.0f, 0);
} else if (strncmp(demoName, "demo", 4) == 0) {
mDemoStatus = 2;
} else if (strcmp(demoName, "force_start") == 0) {
mDemoStatus = 8;
} else if (strcmp(demoName, "force_end") == 0) {
mDemoStatus = 0;
} else if (strcmp(demoName, "KAGO_HIKARI") == 0) {
mDemoStatus = 6;
} else if (strcmp(demoName, "KAGO_YAMI") == 0) {
mDemoStatus = 7;
} else if (strcmp(demoName, "HYRULEOP") == 0) {
mDemoStatus = 10;
} else {
switch (Z2GetSceneMgr()->getCurrentSceneNum()) {
case 0xe:
if (strcmp(demoName, "R00_start") == 0) {
mDemoStatus = 5;
Z2GetSeqMgr()->subBgmStart(Z2BGM_HIDDEN_VIL_D1);
}
break;
case 5:
if (strcmp(demoName, "B_W_START") == 0) {
Z2GetSeqMgr()->bgmStreamPrepare(0x200005f);
Z2GetSeqMgr()->bgmStreamPlay();
mDemoStatus = 9;
}
break;
case 4:
if (strcmp(demoName, "L0_rampart01") == 0) {
bVar1 = true;
}
break;
case 0x28:
if (strcmp(demoName, "R22-opening") == 0) {
bVar1 = true;
}
break;
case 0x2b:
if (strcmp(demoName, "R01-start") == 0) {
bVar1 = true;
}
break;
case 0x2e:
if (strcmp(demoName, "LV3R00OP") == 0) {
bVar1 = true;
}
break;
case 0x31:
if (strcmp(demoName, "R00_start") == 0) {
bVar1 = true;
}
break;
}
if (bVar1) {
Z2GetSeqMgr()->setBattleBgmOff(true);
mDemoStatus = 3;
} else if (mDemoStatus == 0) {
mDemoStatus = 1;
}
}
}
}
#pragma pop
/* 802B671C-802B6734 2B105C 0018+00 0/0 1/1 0/0 .text processTime__11Z2StatusMgrFv */
void Z2StatusMgr::processTime() {
@@ -362,21 +319,25 @@ void Z2StatusMgr::setCameraPolygonPos(Vec* i_polygonPos) {
/* 802B6784-802B6788 2B10C4 0004+00 0/0 1/1 0/0 .text setCameraGroupInfo__11Z2StatusMgrFUc */
void Z2StatusMgr::setCameraGroupInfo(u8) {}
/* ############################################################################################## */
/* 80455A30-80455A34 004030 0004+00 1/1 0/0 0/0 .sdata2 @3798 */
SECTION_SDATA2 static f32 lit_3798 = 2000.0f;
/* 80455A34-80455A38 004034 0004+00 1/1 0/0 0/0 .sdata2 @3799 */
SECTION_SDATA2 static f32 lit_3799 = 1.0f / 5.0f;
/* 802B6788-802B6840 2B10C8 00B8+00 0/0 2/2 0/0 .text setCameraInWaterDepth__11Z2StatusMgrFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2StatusMgr::setCameraInWaterDepth(f32 param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2StatusMgr/setCameraInWaterDepth__11Z2StatusMgrFf.s"
void Z2StatusMgr::setCameraInWaterDepth(f32 depth) {
if (0.0f == depth) {
mCameraInWaterDepthRatio = 0.0f;
Z2GetFxLineMgr()->setUnderWaterFx(false);
} else {
if (Z2GetLink() != NULL) {
if (Z2GetLink()->isInWater()) {
if (depth >= 2000.0f) {
mCameraInWaterDepthRatio = 1.0f;
} else {
mCameraInWaterDepthRatio =
Z2Calc::getParamByExp(depth, 0.0f, 2000.0f, 0.2f, 0.0f, 1.0f, Z2Calc::CURVE_SIGN_0);
}
Z2GetFxLineMgr()->setUnderWaterFx(true);
}
}
}
mUnderwaterDepth = depth;
}
#pragma pop
/* 8039BC88-8039BC88 0282E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */