scaffold khFinalResult drawReplace

This commit is contained in:
PikHacker 2024-05-14 02:42:42 -04:00
parent badb46cc2d
commit 34c2c50e95
3 changed files with 138 additions and 76 deletions

View File

@ -35,7 +35,7 @@
| <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/JGadget/std-vector.cpp">JGadget/std-vector.cpp</a> | 16059 | <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/JStudio/stb.cpp">JStudio/stb.cpp</a> | 16978 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JStage/object-camera.cpp">JStudio_JStage/object-camera.cpp</a> | 17767 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DCluster.cpp">J3D/J3DCluster.cpp</a> | 18716 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DTextBoxEx.cpp">J2D/J2DTextBoxEx.cpp</a> | 19100 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DCluster.cpp">J3D/J3DCluster.cpp</a> | 18929 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DTextBoxEx.cpp">J2D/J2DTextBoxEx.cpp</a> | 19100 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASChannel.cpp">JAudio//JAS/JASChannel.cpp</a> | 19212 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/resource.cpp">JMessage/resource.cpp</a> | 19364 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASBNKParser.cpp">JAudio//JAS/JASBNKParser.cpp</a> | 19529 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/fvb.cpp">JStudio/fvb.cpp</a> | 20313 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DTevs.cpp">J3D/J3DTevs.cpp</a> | 20723 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelLoaderCalcSize.cpp">J3D/J3DModelLoaderCalcSize.cpp</a> | 21313 |
@ -101,7 +101,7 @@
### <section id="plugProjectKonoU">plugProjectKonoU</section>
| File | Size (bytes) | File | Size (bytes) |
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khCaveResult.cpp">khCaveResult.cpp</a> | 42208 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khFinalResult.cpp">khFinalResult.cpp</a> | 57607 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khCaveResult.cpp">khCaveResult.cpp</a> | 42208 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khFinalResult.cpp">khFinalResult.cpp</a> | 59951 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khDayEndResult.cpp">khDayEndResult.cpp</a> | 95909 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKonoU/khWorldMap.cpp">khWorldMap.cpp</a> | 195273 |
### <section id="plugProjectMorimuraU">plugProjectMorimuraU</section>

View File

@ -24,7 +24,7 @@ struct OneResultData {
int mScore3; // _0C
int mScore4; // _10
int mScore5; // _14
u8 _18; // _18
u8 mDoDraw; // _18
};
struct TotalResultData {
@ -116,8 +116,8 @@ struct ObjFinalResult : public ::Screen::ObjBase {
int mScrollTargetPos; // _134
int mScrollMoveProgress; // _138
int mAutoScrollDelay; // _13C
u32 _140; // _140
u32 _144; // _144
u32 mScissorYPos; // _140
u32 mScissorBoundsHeight; // _144
int mState; // _148
u8 mRandAnimCounter1; // _14C
u8 mRandAnimCounter2; // _14D

View File

@ -26,7 +26,7 @@ namespace Screen {
*/
OneResultData::OneResultData(int score1, int score5, int score2, int score3, int score4, const char* bloName, JKRArchive* arc)
: mScore5(score5)
, _18(false)
, mDoDraw(false)
{
mScore1 = score1;
mScore2 = score2;
@ -80,9 +80,15 @@ void TotalResultData::init()
* @note Address: N/A
* @note Size: 0xB0
*/
void TotalResultData::draw(Graphics&, u32, u32)
void TotalResultData::draw(Graphics& gfx, u32 yPos, u32 height)
{
// UNUSED/INLINED
for (int i = 0; i < 16; i++) {
if (mResults[i]->mDoDraw == true) {
gfx.mOrthoGraph.setPort();
GXSetScissor(0, yPos, sys->getRenderModeWidth(), height);
mResults[i]->mScreen->draw(gfx, gfx.mOrthoGraph);
}
}
}
/**
@ -1258,7 +1264,7 @@ void ObjFinalResult::doDraw(Graphics& gfx)
DispFinalResult* disp = static_cast<DispFinalResult*>(getDispMember());
TotalResultData* data = disp->mTotalResultData;
for (int i = 0; i < 16; i++) {
data->mResults[i]->_18 = false;
data->mResults[i]->mDoDraw = false;
}
if (mState == StatusNormal) {
@ -1309,8 +1315,8 @@ void ObjFinalResult::updateCommon()
{
JGeometry::TVec3f pos1 = mScreen->search('Nmask')->getGlbVtx(0);
JGeometry::TVec3f pos2 = mScreen->search('Nmask')->getGlbVtx(3);
_140 = pos1.y + 0.5f;
_144 = pos2.y - pos1.y;
mScissorYPos = pos1.y + 0.5f;
mScissorBoundsHeight = pos2.y - pos1.y;
mAnmTrans5->mCurrentFrame = mAnimTimers[2];
mAnimTimers[2] += 1.0f;
@ -1515,6 +1521,27 @@ void ObjFinalResult::drawReplace(Graphics& gfx, int id)
{
JUT_ASSERTLINE(726, getDispMember()->isID(OWNER_KH, MEMBER_FINAL_RESULT), "disp member err");
DispFinalResult* disp = static_cast<DispFinalResult*>(getDispMember());
int id2 = id * 2 + 1;
TotalResultData* data = disp->mTotalResultData;
u64 mesgIds[16] = {
'8452_00', // "Days Spent:"
'8453_00', // "Pikmin Lost:"
'8454_00', // "Pikmin Lost in Battle:"
'8455_00', // "Pikmin Left Behind:"
'8456_00', // "Pikmin Lost to Fire:"
'8457_00', // "Pikmin Lost to Water:"
'8458_00', // "Pikmin Lost to Electricity:"
'8459_00', // "Pikmin Lost to Explosions:"
'8460_00', // "Pikmin Lost to Poison:"
'8461_00', // "Pikmin Born:"
'8462_00', // "Red Pikmin Born:"
'8463_00', // "Yellow Pikmin Born:"
'8464_00', // "Blue Pikmin Born:"
'8465_00', // "White Pikmin Born:"
'8466_00', // "Purple Pikmin Born:"
'8467_00', // "Total Play Time:"
};
if (id != 7) {
mScreen->search('Nsetp_c')->show();
@ -1523,6 +1550,106 @@ void ObjFinalResult::drawReplace(Graphics& gfx, int id)
mScreen->search('Nsetp_c')->hide();
mScreen->search('Nsetp_d')->show();
}
for (int i = 0; i < 4; i++) {
int count = data->mResults[i]->mScore1;
if (count < 0) {
mCounterData1[i] = 0;
mCounters1[i]->setBlind(true);
} else {
mCounterData1[i] = count;
mCounters1[i]->setBlind(false);
}
mScreen->search('Ttitl0')->setMsgID(mesgIds[id2]);
mScreen->search('Ttitl0s')->setMsgID(mesgIds[id2]);
}
for (int i = 0; i < 4; i++) {
int count = data->mResults[i]->mScore1;
if (count < 0) {
mCounterData2[i] = 0;
mCounters2[i]->setBlind(true);
} else {
mCounterData2[i] = count;
mCounters2[i]->setBlind(false);
}
mScreen->search('Ttitle1')->setMsgID(mesgIds[id]);
mScreen->search('Ttitle1s')->setMsgID(mesgIds[id]);
}
static_cast<J2DPicture*>(mScreen->search('Ptokyop1'))->setBlack(mColor);
static_cast<J2DPicture*>(mScreen->search('Ptomadp1'))->setBlack(mColor);
static_cast<J2DPicture*>(mScreen->search('Pkon1'))->setBlack(mColor);
static_cast<J2DPicture*>(mScreen->search('Pkon3'))->setBlack(mColor);
u64 paneTags1[3] = {
'P1st0_1',
'P2nd0_1',
'P3rd0_1',
};
u64 paneTags2[3] = {
'P1st1_1',
'P2nd1_1',
'P3rd1_1',
};
u64 paneTags3[3] = {
'P1stt3',
'P2ndt3',
'P3rdt3',
};
u64 paneTags4[3] = {
'P1stt1',
'P2ndt1',
'P3rdt1',
};
for (int i = 0; i < 3; i++) {
if (i == data->mResults[id]->mScore5) {
static_cast<J2DPicture*>(mScreen->search(paneTags1[i]))->setBlack(mColor);
} else {
static_cast<J2DPicture*>(mScreen->search(paneTags1[i]))->setBlack(JUtility::TColor(0, 255, 255, 0));
}
if (i == data->mResults[id]->mScore5) {
static_cast<J2DPicture*>(mScreen->search(paneTags2[i]))->setBlack(mColor);
static_cast<J2DPicture*>(mScreen->search(paneTags3[i]))->setBlack(mColor);
static_cast<J2DPicture*>(mScreen->search(paneTags4[i]))->setBlack(mColor);
} else {
static_cast<J2DPicture*>(mScreen->search(paneTags2[i]))->setBlack(JUtility::TColor(0, 255, 255, 0));
static_cast<J2DPicture*>(mScreen->search(paneTags3[i]))->setBlack(JUtility::TColor(0, 255, 255, 0));
static_cast<J2DPicture*>(mScreen->search(paneTags4[i]))->setBlack(JUtility::TColor(0, 255, 255, 0));
}
}
for (int i = 0; i < 4; i++) {
mCounters1[i]->update();
mCounters2[i]->update();
}
gfx.mOrthoGraph.setPort();
GXSetScissor(0, mScissorYPos, sys->getRenderModeHeight(), mScissorBoundsHeight);
mScreen->draw(gfx, gfx.mOrthoGraph);
data->mResults[id]->mDoDraw = true;
J2DPane* image = data->mResults[id]->mScreen->search('Pimage');
J2DPane* pict = mScreen->search('Ppict0');
PSMTXCopy(pict->mGlobalMtx, image->mPositionMtx);
data->mResults[id]->mDoDraw = true;
image = data->mResults[id]->mScreen->search('Pimage');
pict = mScreen->search('Ppict1');
PSMTXCopy(pict->mGlobalMtx, image->mPositionMtx);
data->draw(gfx, mScissorYPos, mScissorBoundsHeight);
/*
stwu r1, -0x160(r1)
mflr r0
@ -2150,71 +2277,6 @@ void SceneFinalResult::doUserCallBackFunc(Resource::MgrCommand*)
} else {
JUT_PANICLINE(864, "failed");
}
/*
stwu r1, -0x40(r1)
mflr r0
lis r5, 0x52534C54@ha
lis r4, lbl_80498CD8@ha
stw r0, 0x44(r1)
addi r6, r5, 0x52534C54@l
li r5, 0x465f
stw r31, 0x3c(r1)
addi r31, r4, lbl_80498CD8@l
li r4, 0x4b48
stw r30, 0x38(r1)
mr r30, r3
lwz r3, 0x21c(r3)
bl isID__Q32og6Screen14DispMemberBaseFUlUx
clrlwi. r0, r3, 0x18
bne lbl_8040EC84
addi r3, r31, 0
addi r5, r31, 0x300
li r4, 0x358
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8040EC84:
addi r3, r30, 4
addi r4, r31, 0x458
bl makeLanguageResName__Q22og9newScreenFPcPCc
addi r3, r1, 8
addi r4, r30, 4
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl mountArchive__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_8040ECDC
lwz r31, 0x34(r3)
li r3, 0x150
bl __nw__FUl
or. r4, r3, r3
beq lbl_8040ECCC
bl __ct__Q32kh6Screen14ObjFinalResultFv
mr r4, r3
lbl_8040ECCC:
mr r3, r30
mr r5, r31
bl registObj__Q26Screen9SceneBaseFPQ26Screen7ObjBaseP10JKRArchive
b lbl_8040ECF0
lbl_8040ECDC:
addi r3, r31, 0
li r4, 0x360
addi r5, r2, lbl_80520198@sda21
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_8040ECF0:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
lwz r30, 0x38(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
}
/**