Link PSMainSide_DirectorMgr.cpp

This commit is contained in:
HeartPiece 2024-06-25 17:54:28 +10:00
parent 5ca796943f
commit d4fe82fcc2
8 changed files with 69 additions and 2962 deletions

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAIInitData.cpp">JAudio//JAI/JAIInitData.cpp</a> | 10317 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JStage/object-light.cpp">JStudio_JStage/object-light.cpp</a> | 10504 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASDSPChannel.cpp">JAudio//JAS/JASDSPChannel.cpp</a> | 11896 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASTaskThread.cpp">JAudio//JAS/JASTaskThread.cpp</a> | 12200 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASWSParser.cpp">JAudio//JAS/JASWSParser.cpp</a> | 12435 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPADynamicsBlock.cpp">JParticle/JPADynamicsBlock.cpp</a> | 12718 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/resource.cpp">JMessage/resource.cpp</a> | 13104 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/stb.cpp">JStudio/stb.cpp</a> | 13283 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/resource.cpp">JMessage/resource.cpp</a> | 13104 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/stb.cpp">JStudio/stb.cpp</a> | 13328 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DJoint.cpp">J3D/J3DJoint.cpp</a> | 13780 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASAiCtrl.cpp">JAudio//JAS/JASAiCtrl.cpp</a> | 14267 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DShape.cpp">J3D/J3DShape.cpp</a> | 14990 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DMaterial.cpp">J2D/J2DMaterial.cpp</a> | 15401 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JParticle/object-particle.cpp">JStudio_JParticle/object-particle.cpp</a> | 16851 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DCluster.cpp">J3D/J3DCluster.cpp</a> | 18929 |
@ -183,8 +183,8 @@
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_CreaturePrm.cpp">PSMainSide_CreaturePrm.cpp</a> | 2600 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_ObjCalc.cpp">PSMainSide_ObjCalc.cpp</a> | 7679 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Sound.cpp">PSMainSide_Sound.cpp</a> | 11782 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_BossMgr.cpp">PSMainSide_BossMgr.cpp</a> | 17462 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_DirectorMgr.cpp">PSMainSide_DirectorMgr.cpp</a> | 24980 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Director.cpp">PSMainSide_Director.cpp</a> | 28380 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Se.cpp">PSMainSide_Se.cpp</a> | 45066 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Scene.cpp">PSMainSide_Scene.cpp</a> | 49598 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_ObjSound.cpp">PSMainSide_ObjSound.cpp</a> | 74677 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Factory.cpp">PSMainSide_Factory.cpp</a> | 88157 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Director.cpp">PSMainSide_Director.cpp</a> | 28380 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Se.cpp">PSMainSide_Se.cpp</a> | 45066 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Scene.cpp">PSMainSide_Scene.cpp</a> | 49598 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_ObjSound.cpp">PSMainSide_ObjSound.cpp</a> | 74677 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/utilityU/PSMainSide_Factory.cpp">PSMainSide_Factory.cpp</a> | 88157 | | |

View File

@ -19,6 +19,7 @@ struct DirectorMgr_Scene : public ::PSSystem::DirectorMgrBase, public JKRDispose
Director_Pikmin = 5, // missing notes when pikmin die
Director_Damage = 6, // distortion when getting hit
Director_Tempo = 7, // slow music when low health
Director_COUNT, // 8
};
DirectorMgr_Scene(DirectorMgr_Scene*, u8);
@ -50,7 +51,7 @@ struct DirectorMgr_Scene_AutoBgm : public DirectorMgr_Scene {
{
}
virtual ~DirectorMgr_Scene_AutoBgm() { } // _08 (weak)
// virtual ~DirectorMgr_Scene_AutoBgm() { } // _08 (weak)
virtual PikminNumberDirector* newPikminNumberDirector(int, u8, ::PSSystem::DirectedBgm&); // _20
// _00 = VTBL 1
@ -61,7 +62,7 @@ struct DirectorMgr_Scene_AutoBgm : public DirectorMgr_Scene {
struct DirectorMgr_Battle : public ::PSSystem::DirectorMgrBase, public JKRDisposer {
DirectorMgr_Battle();
virtual ~DirectorMgr_Battle() { } // _08 (weak)
// virtual ~DirectorMgr_Battle() { } // _08 (weak)
virtual ::PSSystem::DirectorBase* newDirector(u8, ::PSSystem::DirectedBgm&); // _0C
// _00 = VTBL 1 (DirectorMgrBase)
@ -85,7 +86,7 @@ struct DirectorMgr_2PBattle : public ::PSSystem::DirectorMgrBase, public JKRDisp
DirectorMgr_2PBattle();
virtual ~DirectorMgr_2PBattle() { } // _08 (weak)
// virtual ~DirectorMgr_2PBattle() { } // _08 (weak)
virtual ::PSSystem::DirectorBase* newDirector(u8, ::PSSystem::DirectedBgm&); // _0C
// _00 = VTBL 1 (DirectorMgrBase)

View File

@ -1742,7 +1742,7 @@
["utilityU/PSMainSide_Scene", false],
["utilityU/PSMainSide_BossMgr", false],
["utilityU/PSMainSide_Se", false],
["utilityU/PSMainSide_DirectorMgr", false],
["utilityU/PSMainSide_DirectorMgr", true],
["utilityU/PSMainSide_Sound", false],
["utilityU/PSMainSide_TrackMap", true],
["utilityU/PSMainSide_CreaturePrm", false],

View File

@ -463,7 +463,13 @@ bool TControl::forward(u32 time)
u32 statusAnd = 0x0f;
u32 statusOr = 0;
for (JGadget::TContainerEnumerator_<JGadget::TLinkList<JStudio::stb::TObject, -12>> it(mObjectContainer); it.enumerator;) {
// someone typedef JGadget::TLinkList<JStudio::stb::TObject, -12> so we can get rid of this pls
// the issue is C++ requires a space between >s in templates but clang-format eats it
// clang-format off
for (JGadget::TContainerEnumerator_<JGadget::TLinkList<JStudio::stb::TObject, -12> > it(mObjectContainer); it.enumerator;) {
// clang-format on
// this sucks, ideally `*it` should return a `TObject&` or `TObject*`, but idk how to set that up
p = &**it.enumerator;
TObject::TEStatus s;

View File

@ -7,7 +7,7 @@ UTILITY_FILES:=\
$(BUILD_DIR)/asm/utilityU/PSMainSide_Scene.o\
$(BUILD_DIR)/asm/utilityU/PSMainSide_BossMgr.o\
$(BUILD_DIR)/asm/utilityU/PSMainSide_Se.o\
$(BUILD_DIR)/asm/utilityU/PSMainSide_DirectorMgr.o\
$(BUILD_DIR)/src/utilityU/PSMainSide_DirectorMgr.o\
$(BUILD_DIR)/asm/utilityU/PSMainSide_Sound.o\
$(BUILD_DIR)/src/utilityU/PSMainSide_TrackMap.o\
$(BUILD_DIR)/asm/utilityU/PSMainSide_CreaturePrm.o\

View File

@ -12,32 +12,32 @@ namespace PSM {
* @note Size: 0x2D8
*/
DirectorMgr_Scene::DirectorMgr_Scene(DirectorMgr_Scene* owner, u8 type)
: ::PSSystem::DirectorMgrBase(type)
: PSSystem::DirectorMgrBase(type)
, mOwner(owner)
{
if (!isSlave()) {
for (u8 i = 0; i < 8; i++) {
for (u8 i = 0; i < Director_COUNT; i++) {
switch (i) {
case 0:
case 1:
case 2:
case 3:
case Director_Working:
case Director_Treasure:
case Director_EnemyNear:
case Director_Battle:
mCopyActorList[i] = new ListDirectorActor(nullptr);
break;
case 4:
case Director_Ground:
mCopyActorList[i] = new ListDirectorActor(nullptr);
break;
case 5:
case 6:
case 7:
mCopyActorList[i] = new ::PSSystem::DirectorCopyActor(nullptr, nullptr);
case Director_Pikmin:
case Director_Damage:
case Director_Tempo:
mCopyActorList[i] = new PSSystem::DirectorCopyActor(nullptr, nullptr);
break;
default:
JUT_PANICLINE(60, "P2Assert");
}
}
} else {
for (u8 i = 0; i < 8; i++) {
for (u8 i = 0; i < Director_COUNT; i++) {
setCopyActorList(i, mOwner->getCopyActorList(i));
P2ASSERTLINE(69, mCopyActorList[i]);
}
@ -54,24 +54,24 @@ DirectorMgr_Scene::~DirectorMgr_Scene() { }
* @note Address: 0x8046F620
* @note Size: 0x294
*/
void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
void DirectorMgr_Scene::initTrackMap(PSSystem::DirectedBgm& bgm)
{
BgmTrackMapFile file(false);
char* path = bgm.mBmsFileName;
char* bms = path;
// Determine what trackMap file to load, depending on bms/cnd file name
if (!strcmp(bms, "caveglass.bms") || (!strcmp(bms, "caverelax.bms"))) {
if (IS_SAME_STRING(bms, "caveglass.bms") || (IS_SAME_STRING(bms, "caverelax.bms"))) {
path = "/user/Totaka/trackMap_Seq_T.txt";
} else if (!strcmp(bms, "caveconc.bms")) {
} else if (IS_SAME_STRING(bms, "caveconc.bms")) {
path = "/user/Totaka/trackMap_Cond_T.txt";
P2ASSERTLINE(116, bgm.getCastType() == PSSystem::SeqBase::TYPE_AutoBgm);
bms = static_cast<PSAutoBgm::AutoBgm*>(&bgm)->mConductorFilePath;
} else if (!strncmp("new_", bms, strlen("new_"))) {
} else if (IS_SAME_STRING_N("new_", bms, strlen("new_"))) {
path = "/user/Totaka/trackMap_Cond_T.txt";
P2ASSERTLINE(126, bgm.getCastType() == PSSystem::SeqBase::TYPE_AutoBgm);
bms = static_cast<PSAutoBgm::AutoBgm*>(&bgm)->mConductorFilePath;
} else if (!strcmp(bms, "cavesoil.bms") || (!strcmp(bms, "cavemetal.bms"))) {
} else if (IS_SAME_STRING(bms, "cavesoil.bms") || (IS_SAME_STRING(bms, "cavemetal.bms"))) {
path = "/user/Wakai/trackMap_Cond_W.txt";
P2ASSERTLINE(139, bgm.getCastType() == PSSystem::SeqBase::TYPE_AutoBgm);
bms = static_cast<PSAutoBgm::AutoBgm*>(&bgm)->mConductorFilePath;
@ -87,13 +87,13 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
* @note Address: 0x8046F8B4
* @note Size: 0x770
*/
::PSSystem::DirectorBase* DirectorMgr_Scene::newDirector(u8 type, ::PSSystem::DirectedBgm& bgm)
PSSystem::DirectorBase* DirectorMgr_Scene::newDirector(u8 type, PSSystem::DirectedBgm& bgm)
{
PSM::BgmTrackMap& trackMap = mBgmTrackMap;
JUT_ASSERTLINE(161, trackMap.mBasicTrackCount, "track map is\nnot initialized\n");
::PSSystem::DirectorBase* actor = nullptr;
DamageDirector* damage = nullptr;
PSSystem::DirectorBase* actor = nullptr;
PSSystem::DirectorBase* damage = nullptr;
switch (type) {
case Director_Working: {
@ -108,7 +108,8 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
actor = new ActorDirector_Kehai("kehaiD ", trackMap.mKehaiTrackCount, 100, 100, 100);
P2ASSERTLINE(188, actor);
for (u8 i = 0; i < (int)trackMap.mKehaiTrackCount; i++) {
actor->setTrack(i, bgm.getChildTrack(i + trackMap.mBasicTrackCount + trackMap.mOtakaraTrackCount + trackMap.mEventTrackCount));
actor->setTrack(i,
bgm.getChildTrack(i + (trackMap.mEventTrackCount + trackMap.mBasicTrackCount + trackMap.mOtakaraTrackCount)));
}
break;
}
@ -116,8 +117,9 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
actor = new ActorDirector_Battle("battleD ", trackMap.mBattleTrackCount, 100, 100, 100);
P2ASSERTLINE(206, actor);
for (u8 i = 0; i < (int)trackMap.mBattleTrackCount; i++) {
actor->setTrack(i, bgm.getChildTrack(i + trackMap.mBasicTrackCount + trackMap.mOtakaraTrackCount + trackMap.mKehaiTrackCount
+ trackMap.mEventTrackCount));
actor->setTrack(i, bgm.getChildTrack(i
+ (trackMap.mEventTrackCount + trackMap.mBasicTrackCount + trackMap.mOtakaraTrackCount
+ trackMap.mKehaiTrackCount)));
}
break;
}
@ -125,7 +127,7 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
actor = new ActorDirector_TrackOn("OtakaraD", trackMap.mOtakaraTrackCount, 100, 100);
P2ASSERTLINE(219, actor);
for (u8 i = 0; i < (int)trackMap.mOtakaraTrackCount; i++) {
actor->setTrack(i, bgm.getChildTrack(i + trackMap.mEventTrackCount + trackMap.mBasicTrackCount));
actor->setTrack(i, bgm.getChildTrack(i + (trackMap.mEventTrackCount + trackMap.mBasicTrackCount)));
}
break;
}
@ -171,18 +173,17 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
}
}
// some mess here
::PSSystem::DirectorBase* ret = nullptr;
if (actor || (ret = damage, !ret)) {
ret = nullptr;
if (actor && !damage) {
ret = actor;
}
PSSystem::DirectorBase* ret = nullptr;
if (!actor && damage) {
ret = damage;
} else if (actor && !damage) {
ret = actor;
}
P2ASSERTLINE(334, ret);
::PSSystem::DirectorCopyActor* obj = mCopyActorList[type];
PSSystem::DirectorCopyActor* obj = mCopyActorList[type];
if (isSlave()) {
obj->mDirectorParent = ret;
} else {
@ -190,614 +191,13 @@ void DirectorMgr_Scene::initTrackMap(::PSSystem::DirectedBgm& bgm)
}
adaptDirectorActor(ret, type);
return ret;
/*
stwu r1, -0x30(r1)
mflr r0
stw r0, 0x34(r1)
stmw r22, 8(r1)
mr r29, r3
lis r3, lbl_8049DA80@ha
mr r27, r4
addi r26, r29, 0x48
mr r30, r5
addi r31, r3, lbl_8049DA80@l
lbz r0, 0x68(r29)
cmplwi r0, 0
bne lbl_8046F8FC
addi r3, r31, 0
addi r5, r31, 0xfc
li r4, 0xa1
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046F8FC:
clrlwi r0, r27, 0x18
li r25, 0
cmplwi r0, 7
li r28, 0
bgt lbl_8046FF7C
lis r3, lbl_804EF880@ha
slwi r0, r0, 2
addi r3, r3, lbl_804EF880@l
lwzx r0, r3, r0
mtctr r0
bctr
lbl_8046F928:
li r3, 0x68
bl __nw__FUl
or. r0, r3, r3
beq lbl_8046F95C
lbz r5, 0x21(r26)
addi r4, r2, lbl_80520D6C@sda21
lfs f1, lbl_80520D74@sda21(r2)
li r6, 0x64
lfs f2, lbl_80520D78@sda21(r2)
li r7, 0x64
li r8, 0x64
bl __ct__Q23PSM20ActorDirector_ScaledFPCciffllUl
mr r0, r3
lbl_8046F95C:
cmplwi r0, 0
mr r25, r0
bne lbl_8046F97C
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0xad
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046F97C:
li r23, 0
b lbl_8046F9C4
lbl_8046F984:
lbz r0, 0x20(r26)
add r24, r3, r0
cmpwi r24, 0x10
blt lbl_8046F9A8
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046F9A8:
slwi r4, r24, 2
mr r3, r25
addi r0, r4, 0x74
mr r4, r23
lwzx r5, r30, r0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
addi r23, r23, 1
lbl_8046F9C4:
lbz r0, 0x21(r26)
clrlwi r3, r23, 0x18
cmpw r3, r0
blt lbl_8046F984
b lbl_8046FF7C
lbl_8046F9D8:
li r3, 0x6c
bl __nw__FUl
or. r24, r3, r3
beq lbl_8046FA0C
lbz r5, 0x23(r26)
addi r4, r31, 0x11c
li r6, 0x64
li r7, 0x64
li r8, 0x64
bl __ct__Q23PSM19ActorDirector_EnemyFPCcillUl
lis r3, __vt__Q23PSM19ActorDirector_Kehai@ha
addi r0, r3, __vt__Q23PSM19ActorDirector_Kehai@l
stw r0, 0(r24)
lbl_8046FA0C:
cmplwi r24, 0
mr r25, r24
bne lbl_8046FA2C
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0xbc
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FA2C:
li r23, 0
b lbl_8046FA84
lbl_8046FA34:
lbz r4, 0x22(r26)
lbz r0, 0x20(r26)
lbz r3, 0x21(r26)
add r0, r0, r4
add r24, r0, r5
add r24, r3, r24
cmpwi r24, 0x10
blt lbl_8046FA68
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FA68:
slwi r4, r24, 2
mr r3, r25
addi r0, r4, 0x74
mr r4, r23
lwzx r5, r30, r0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
addi r23, r23, 1
lbl_8046FA84:
lbz r0, 0x23(r26)
clrlwi r5, r23, 0x18
cmpw r5, r0
blt lbl_8046FA34
b lbl_8046FF7C
lbl_8046FA98:
li r3, 0x6c
bl __nw__FUl
or. r24, r3, r3
beq lbl_8046FACC
lbz r5, 0x24(r26)
addi r4, r31, 0x128
li r6, 0x64
li r7, 0x64
li r8, 0x64
bl __ct__Q23PSM19ActorDirector_EnemyFPCcillUl
lis r3, __vt__Q23PSM20ActorDirector_Battle@ha
addi r0, r3, __vt__Q23PSM20ActorDirector_Battle@l
stw r0, 0(r24)
lbl_8046FACC:
cmplwi r24, 0
mr r25, r24
bne lbl_8046FAEC
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0xce
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FAEC:
li r24, 0
b lbl_8046FB4C
lbl_8046FAF4:
lbz r3, 0x22(r26)
lbz r0, 0x20(r26)
lbz r4, 0x23(r26)
add r0, r0, r3
lbz r3, 0x21(r26)
add r0, r0, r4
add r23, r0, r5
add r23, r3, r23
cmpwi r23, 0x10
blt lbl_8046FB30
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FB30:
slwi r4, r23, 2
mr r3, r25
addi r0, r4, 0x74
mr r4, r24
lwzx r5, r30, r0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
addi r24, r24, 1
lbl_8046FB4C:
lbz r0, 0x24(r26)
clrlwi r5, r24, 0x18
cmpw r5, r0
blt lbl_8046FAF4
b lbl_8046FF7C
lbl_8046FB60:
li r3, 0x58
bl __nw__FUl
or. r0, r3, r3
beq lbl_8046FB88
lbz r5, 0x22(r26)
addi r4, r31, 0x134
li r6, 0x64
li r7, 0x64
bl __ct__Q23PSM21ActorDirector_TrackOnFPCcill
mr r0, r3
lbl_8046FB88:
cmplwi r0, 0
mr r25, r0
bne lbl_8046FBA8
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0xdb
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FBA8:
li r24, 0
b lbl_8046FBF8
lbl_8046FBB0:
lbz r0, 0x20(r26)
lbz r3, 0x21(r26)
add r23, r0, r4
add r23, r3, r23
cmpwi r23, 0x10
blt lbl_8046FBDC
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FBDC:
slwi r4, r23, 2
mr r3, r25
addi r0, r4, 0x74
mr r4, r24
lwzx r5, r30, r0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
addi r24, r24, 1
lbl_8046FBF8:
lbz r0, 0x22(r26)
clrlwi r4, r24, 0x18
cmpw r4, r0
blt lbl_8046FBB0
b lbl_8046FF7C
lbl_8046FC0C:
mr r3, r30
lwz r12, 0x10(r30)
lwz r12, 0x24(r12)
mtctr r12
bctrl
clrlwi r0, r3, 0x18
cmplwi r0, 3
bne lbl_8046FC64
li r3, 0x58
bl __nw__FUl
or. r23, r3, r3
beq lbl_8046FC5C
lbz r5, 0x25(r26)
addi r4, r31, 0x140
li r6, 0x64
li r7, 0x64
bl __ct__Q23PSM21ActorDirector_TrackOnFPCcill
lis r3, __vt__Q23PSM19GroundDirector_Cave@ha
addi r0, r3, __vt__Q23PSM19GroundDirector_Cave@l
stw r0, 0(r23)
lbl_8046FC5C:
mr r25, r23
b lbl_8046FC9C
lbl_8046FC64:
li r3, 0x68
bl __nw__FUl
or. r0, r3, r3
beq lbl_8046FC98
lbz r5, 0x25(r26)
addi r4, r31, 0x140
lfs f1, lbl_80520D84@sda21(r2)
li r6, 0xc8
lfs f2, lbl_80520D88@sda21(r2)
li r7, 0xc8
li r8, 0xa
bl __ct__Q23PSM20ActorDirector_ScaledFPCciffllUl
mr r0, r3
lbl_8046FC98:
mr r25, r0
lbl_8046FC9C:
cmplwi r25, 0
bne lbl_8046FCB8
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0x113
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FCB8:
li r24, 0
b lbl_8046FD20
lbl_8046FCC0:
lbz r3, 0x22(r26)
lbz r0, 0x20(r26)
lbz r4, 0x23(r26)
add r0, r0, r3
lbz r5, 0x24(r26)
add r0, r0, r4
lbz r3, 0x21(r26)
add r0, r0, r5
add r23, r0, r6
add r23, r3, r23
cmpwi r23, 0x10
blt lbl_8046FD04
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FD04:
slwi r4, r23, 2
mr r3, r25
addi r0, r4, 0x74
mr r4, r24
lwzx r5, r30, r0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
addi r24, r24, 1
lbl_8046FD20:
lbz r0, 0x25(r26)
clrlwi r6, r24, 0x18
cmpw r6, r0
blt lbl_8046FCC0
b lbl_8046FF7C
lbl_8046FD34:
li r4, 0
mr r5, r4
b lbl_8046FD5C
lbl_8046FD40:
clrlwi r3, r5, 0x18
addi r0, r3, 0x26
lbzx r0, r26, r0
cmplwi r0, 0
beq lbl_8046FD58
addi r4, r4, 1
lbl_8046FD58:
addi r5, r5, 1
lbl_8046FD5C:
clrlwi r0, r5, 0x18
cmplwi r0, 0x10
blt lbl_8046FD40
li r5, 0
mr r6, r5
b lbl_8046FD9C
lbl_8046FD74:
clrlwi r3, r6, 0x18
addi r0, r3, 0x36
lbzx r0, r26, r0
cmplwi r0, 0
beq lbl_8046FD98
clrlwi r0, r0, 0x18
slw r0, r0, r3
or r0, r5, r0
clrlwi r5, r0, 0x18
lbl_8046FD98:
addi r6, r6, 1
lbl_8046FD9C:
clrlwi r0, r6, 0x18
cmplwi r0, 8
blt lbl_8046FD74
lwz r12, 0(r29)
mr r3, r29
mr r6, r30
lwz r12, 0x20(r12)
mtctr r12
bctrl
or. r25, r3, r3
bne lbl_8046FDDC
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0x122
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FDDC:
li r23, 0
li r22, 0
b lbl_8046FE38
lbl_8046FDE8:
clrlwi r24, r22, 0x18
addi r0, r24, 0x26
lbzx r0, r26, r0
cmplwi r0, 0
beq lbl_8046FE34
cmpwi r24, 0x10
blt lbl_8046FE18
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x1a3
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FE18:
slwi r3, r24, 2
mr r4, r23
addi r0, r3, 0x74
mr r3, r25
lwzx r5, r30, r0
addi r23, r23, 1
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
lbl_8046FE34:
addi r22, r22, 1
lbl_8046FE38:
clrlwi r0, r22, 0x18
cmplwi r0, 0x10
blt lbl_8046FDE8
mr r3, r30
lwz r12, 0x10(r30)
lwz r12, 0x24(r12)
mtctr r12
bctrl
clrlwi r0, r3, 0x18
cmplwi r0, 3
bne lbl_8046FF7C
li r5, 0
mr r4, r5
b lbl_8046FE94
lbl_8046FE70:
clrlwi r3, r4, 0x18
addi r0, r3, 0x26
lbzx r0, r26, r0
cmplwi r0, 0
beq lbl_8046FE90
slw r0, r0, r3
or r0, r5, r0
clrlwi r5, r0, 0x10
lbl_8046FE90:
addi r4, r4, 1
lbl_8046FE94:
clrlwi r0, r4, 0x18
cmplwi r0, 0x10
blt lbl_8046FE70
sth r5, 0x34c(r30)
b lbl_8046FF7C
lbl_8046FEA8:
li r3, 0x58
bl __nw__FUl
or. r4, r3, r3
beq lbl_8046FEC0
bl __ct__Q23PSM14DamageDirectorFv
mr r4, r3
lbl_8046FEC0:
lbz r0, 0xb4(r30)
mr r28, r4
li r3, 0
cmplwi r0, 1
bne lbl_8046FEE4
lwz r0, 0x70(r30)
cmplwi r0, 0
beq lbl_8046FEE4
li r3, 1
lbl_8046FEE4:
clrlwi. r0, r3, 0x18
bne lbl_8046FF00
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x19f
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FF00:
lwz r5, 0x70(r30)
mr r3, r28
li r4, 0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
b lbl_8046FF7C
lbl_8046FF14:
li r3, 0x54
bl __nw__FUl
or. r4, r3, r3
beq lbl_8046FF2C
bl __ct__Q23PSM25ActorDirector_TempoChangeFv
mr r4, r3
lbl_8046FF2C:
lbz r0, 0xb4(r30)
mr r25, r4
li r3, 0
cmplwi r0, 1
bne lbl_8046FF50
lwz r0, 0x70(r30)
cmplwi r0, 0
beq lbl_8046FF50
li r3, 1
lbl_8046FF50:
clrlwi. r0, r3, 0x18
bne lbl_8046FF6C
addi r5, r31, 0x1c
addi r3, r2, lbl_80520D7C@sda21
li r4, 0x19f
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FF6C:
lwz r5, 0x70(r30)
mr r3, r25
li r4, 0
bl setTrack__Q28PSSystem12DirectorBaseFUcPQ28PSSystem12SeqTrackBase
lbl_8046FF7C:
cmplwi r25, 0
li r22, 0
bne lbl_8046FF98
cmplwi r28, 0
beq lbl_8046FF98
mr r22, r28
b lbl_8046FFAC
lbl_8046FF98:
cmplwi r25, 0
beq lbl_8046FFAC
cmplwi r28, 0
bne lbl_8046FFAC
mr r22, r25
lbl_8046FFAC:
cmplwi r22, 0
bne lbl_8046FFC8
addi r3, r31, 0
addi r5, r31, 0x1c
li r4, 0x14e
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8046FFC8:
lwz r12, 0(r29)
rlwinm r0, r27, 2, 0x16, 0x1d
add r4, r29, r0
mr r3, r29
lwz r12, 0x1c(r12)
lwz r23, 0x24(r4)
mtctr r12
bctrl
clrlwi. r0, r3, 0x18
beq lbl_8046FFF8
stw r22, 8(r23)
b lbl_8046FFFC
lbl_8046FFF8:
stw r22, 4(r23)
lbl_8046FFFC:
mr r3, r29
mr r4, r22
mr r5, r27
bl
adaptDirectorActor__Q23PSM17DirectorMgr_SceneFPQ28PSSystem12DirectorBaseUc mr
r3, r22 lmw r22, 8(r1) lwz r0, 0x34(r1) mtlr r0 addi r1, r1,
0x30 blr
*/
}
/**
* @note Address: 0x80470024
* @note Size: 0xA8
*/
void DirectorMgr_Scene::adaptDirectorActor(::PSSystem::DirectorBase* director, u8 type)
void DirectorMgr_Scene::adaptDirectorActor(PSSystem::DirectorBase* director, u8 type)
{
ListDirectorActor* actor = static_cast<ListDirectorActor*>(mCopyActorList[type]);
switch (type) {
@ -834,7 +234,7 @@ void DirectorMgr_Scene::adaptDirectorActor(::PSSystem::DirectorBase* director, u
* @note Address: 0x804700CC
* @note Size: 0x94
*/
PikminNumberDirector* DirectorMgr_Scene::newPikminNumberDirector(int pikNum, u8 pikMask, ::PSSystem::DirectedBgm& bgm)
PikminNumberDirector* DirectorMgr_Scene::newPikminNumberDirector(int pikNum, u8 pikMask, PSSystem::DirectedBgm& bgm)
{
PikminNumberDirector* director = new PikminNumberDirector(pikNum, pikMask, bgm);
P2ASSERTLINE(412, director);
@ -845,7 +245,7 @@ PikminNumberDirector* DirectorMgr_Scene::newPikminNumberDirector(int pikNum, u8
* @note Address: 0x80470160
* @note Size: 0x90
*/
PikminNumberDirector* DirectorMgr_Scene_AutoBgm::newPikminNumberDirector(int pikNum, u8 pikMask, ::PSSystem::DirectedBgm& bgm)
PikminNumberDirector* DirectorMgr_Scene_AutoBgm::newPikminNumberDirector(int pikNum, u8 pikMask, PSSystem::DirectedBgm& bgm)
{
PikminNumberDirector* director = new PikminNumberDirector_AutoBgm(pikNum, pikMask, bgm);
P2ASSERTLINE(425, director);
@ -857,7 +257,7 @@ PikminNumberDirector* DirectorMgr_Scene_AutoBgm::newPikminNumberDirector(int pik
* @note Size: 0x50
*/
DirectorMgr_Battle::DirectorMgr_Battle()
: ::PSSystem::DirectorMgrBase(2)
: PSSystem::DirectorMgrBase(2)
{
}
@ -865,7 +265,7 @@ DirectorMgr_Battle::DirectorMgr_Battle()
* @note Address: 0x80470240
* @note Size: 0x244
*/
::PSSystem::DirectorBase* DirectorMgr_Battle::newDirector(u8 flag, ::PSSystem::DirectedBgm& bgm)
PSSystem::DirectorBase* DirectorMgr_Battle::newDirector(u8 flag, PSSystem::DirectedBgm& bgm)
{
PSSystem::DirectorBase* director = nullptr;
u8 trackNum = 255;
@ -887,7 +287,7 @@ DirectorMgr_Battle::DirectorMgr_Battle()
BossBgmFader::Mgr* fader = PSSystem::SingletonBase<BossBgmFader::Mgr>::sInstance;
if (fader) {
u8 count = ::PSSystem::SingletonBase<BossBgmFader::Mgr>::getInstance()->mTypedProc.mLinkCount;
u8 count = PSSystem::SingletonBase<BossBgmFader::Mgr>::getInstance()->mTypedProc.mLinkCount;
if (count) {
fader->mTypedProc.mDirectorUpdator = new DirectorUpdator(director, count, DirectorUpdator::TYPE_0);
}
@ -922,7 +322,7 @@ DirectorMgr_Battle::DirectorMgr_Battle()
* @note Size: 0x50
*/
DirectorMgr_2PBattle::DirectorMgr_2PBattle()
: ::PSSystem::DirectorMgrBase(8)
: PSSystem::DirectorMgrBase(8)
{
}
@ -930,9 +330,9 @@ DirectorMgr_2PBattle::DirectorMgr_2PBattle()
* @note Address: 0x804704D4
* @note Size: 0x6B8
*/
::PSSystem::DirectorBase* DirectorMgr_2PBattle::newDirector(u8 type, ::PSSystem::DirectedBgm& bgm)
PSSystem::DirectorBase* DirectorMgr_2PBattle::newDirector(u8 type, PSSystem::DirectedBgm& bgm)
{
::PSSystem::DirectorBase* actor = nullptr;
PSSystem::DirectorBase* actor = nullptr;
switch (type) {
case Director2P_Working: {
actor = new ActorDirector_Scaled("eventD ", 1, 200.0, 1500.0, 100, 100, 100);
@ -1010,4 +410,12 @@ DirectorMgr_2PBattle::DirectorMgr_2PBattle()
return actor;
}
// I'm not thrilled with this solution but utility is a hunk of junk. This makes the dtors spawn correctly so w/e. -HP
static void fuckingHateSymOn(DirectorMgr_2PBattle* battle2P, DirectorMgr_Battle* battle, DirectorMgr_Scene_AutoBgm* autoBGM)
{
delete autoBGM;
delete battle;
delete battle2P;
}
} // namespace PSM

View File

@ -1049,3 +1049,5 @@ You have 4803 out of 10000 Pokos and 115 out of 201 treasures.",2024-06-13 17:40
You have 4839 out of 10000 Pokos and 115 out of 201 treasures.",2024-06-24 00:11:02.360510
4861,2261872,0.48617817396448076,116,411753,0.5776103448662844,"
You have 4861 out of 10000 Pokos and 116 out of 201 treasures.",2024-06-24 04:44:22.482235
4877,2269120,0.48773609563506803,116,412463,0.5786063384470356,"
You have 4877 out of 10000 Pokos and 116 out of 201 treasures.",2024-06-25 17:51:04.193751

1 code_count_in_pokos code_completion_in_bytes code_completion_in_percentage data_count_in_treasures data_completion_in_bytes data_completion_in_percentage sentence created_at
1049
1050
1051
1052
1053