From 780d4e680adcc37edc87c300f1c1951e2490a0a7 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sat, 12 Apr 2025 23:18:11 -0400 Subject: [PATCH] d_drawlist OK, J2DPicture inline cleanup --- configure.py | 2 +- include/JSystem/J2DGraph/J2DPicture.h | 25 ++++++-- include/JSystem/JUtility/TColor.h | 2 +- include/d/d_com_inf_game.h | 6 +- include/d/d_drawlist.h | 17 +++++ src/JSystem/J2DGraph/J2DPicture.cpp | 12 ++-- src/d/d_com_inf_game.cpp | 2 +- src/d/d_drawlist.cpp | 90 ++++++++++++--------------- src/d/d_ovlp_fade2.cpp | 12 +--- src/f_op/f_op_msg_mng.cpp | 27 ++++---- 10 files changed, 105 insertions(+), 90 deletions(-) diff --git a/configure.py b/configure.py index fe09b291a..906656f43 100755 --- a/configure.py +++ b/configure.py @@ -476,7 +476,7 @@ config.libs = [ Object(NonMatching, "d/d_particle.cpp"), Object(Matching, "d/d_particle_name.cpp"), Object(Matching, "d/d_path.cpp"), - Object(NonMatching, "d/d_drawlist.cpp"), + Object(Matching, "d/d_drawlist.cpp", extra_cflags=['-sym off']), Object(Matching, "d/d_kankyo_data.cpp"), Object(Matching, "d/d_kankyo_wether.cpp"), Object(NonMatching, "d/d_kankyo_rain.cpp"), diff --git a/include/JSystem/J2DGraph/J2DPicture.h b/include/JSystem/J2DGraph/J2DPicture.h index 1efedbf7f..06fb257b7 100644 --- a/include/JSystem/J2DGraph/J2DPicture.h +++ b/include/JSystem/J2DGraph/J2DPicture.h @@ -26,6 +26,10 @@ enum J2DMirror { class J2DPicture : public J2DPane { public: + struct TCornerColor { + // TODO + }; + J2DPicture(); J2DPicture(J2DPane*, JSURandomInputStream*); J2DPicture(const ResTIMG*); @@ -51,15 +55,21 @@ public: void initinfo(); bool insert(const ResTIMG*, u8, f32); bool insert(const char*, u8, f32); + bool append(const ResTIMG* timg, f32 param_1) { return insert(timg, mNumTexture, param_1); } + bool append(const char* name, f32 param_1) { return insert(name, mNumTexture, param_1); } bool remove(u8); + bool remove() { return remove(mNumTexture - 1); } const ResTIMG * changeTexture(const ResTIMG*, u8); const ResTIMG * changeTexture(const char*, u8); void drawFullSet(f32, f32, f32, f32, J2DBinding, J2DMirror, bool, Mtx*); void draw(f32, f32, f32, f32, bool, bool, bool); - void draw(f32 x, f32 y, bool mirrorX, bool mirrorY, bool tumble) { - if (mNumTexture > 0) + void draw(f32 x, f32 y, u8 i, bool mirrorX, bool mirrorY, bool tumble) { + if (i < mNumTexture) draw(x, y, mpTexture[0]->getWidth(), mpTexture[0]->getHeight(), mirrorX, mirrorY, tumble); } + void draw(f32 x, f32 y, bool mirrorX, bool mirrorY, bool tumble) { + draw(x, y, 0, mirrorX, mirrorY, tumble); + } void drawOut(const JGeometry::TBox2&, const JGeometry::TBox2&); void drawTexCoord(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, Mtx*); void setTevMode(); @@ -101,14 +111,19 @@ public: } void setCornerColor(JUtility::TColor c) { setCornerColor(c, c, c, c); } - u8 getNumTexture() { return mNumTexture; } - void setBinding(J2DBinding v) { mBinding = v; } void setMirror(J2DMirror v) {} // untested { mFlag = (mFlag & ~0x03) | v; } J2DMirror getMirror() const { return J2DMirror(mFlag & 0x03); } void setTumble(bool v) {} // untested { mFlag = (mFlag & ~0x04) | (v << 2); } - bool isTumble() const { return mFlag >> 2 & 1; } + bool isTumble() const { return mFlag & 0x04; } + + void load(u8 i) { mpTexture[i]->load((GXTexMapID)i); } + + // TODO + void getBlack() const {} + void getCornerColor(J2DPicture::TCornerColor&) const {} + void getWhite() const {} protected: /* 0x0CC */ JUTTexture* mpTexture[4]; diff --git a/include/JSystem/JUtility/TColor.h b/include/JSystem/JUtility/TColor.h index b0d1ccc30..a9e35a7e3 100644 --- a/include/JSystem/JUtility/TColor.h +++ b/include/JSystem/JUtility/TColor.h @@ -31,4 +31,4 @@ struct TColor : public GXColor { }; } // namespace JUtility -#endif \ No newline at end of file +#endif diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index ca679ef40..5b3633183 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -507,8 +507,8 @@ public: u8 getPictureStatus() { return mPictureStatus; } void setPictureStatusOn() { mPictureStatus = 2; } - u8 getScopeMesgStatus() { return mbCamOverrideFarPlane; } - void setScopeMesgStatus(u8 status) { mbCamOverrideFarPlane = status; } + u8 getScopeMesgStatus() { return mScopeMesgStatus; } + void setScopeMesgStatus(u8 status) { mScopeMesgStatus = status; } void setCurrentGrafPort(J2DOrthoGraph* i_graf) { mCurrentGrafPort = i_graf; } void setCurrentWindow(dDlst_window_c* i_window) { mCurrentWindow = i_window; } @@ -739,7 +739,7 @@ public: /* 0x4928 */ bool mItemSwimTimerStatus; /* 0x4929 */ u8 field_0x4929; /* 0x492A */ u8 mMesgStatus; - /* 0x492B */ u8 mbCamOverrideFarPlane; + /* 0x492B */ u8 mScopeMesgStatus; /* 0x492C */ u8 field_0x492c; /* 0x492D */ u8 field_0x492d; /* 0x492E */ u8 mCurrButtonBAction; diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index d90d57d8b..e0b177519 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -3,6 +3,7 @@ #include "JSystem/J3DGraphBase/J3DDrawBuffer.h" #include "JSystem/J2DGraph/J2DPicture.h" +#include "SSystem/SComponent/c_bg_s_shdw_draw.h" #include "f_op/f_op_view.h" #include "m_Do/m_Do_ext.h" #include "SSystem/SComponent/c_rnd.h" @@ -393,6 +394,22 @@ private: STATIC_ASSERT(sizeof(dDlst_shadowControl_c) == 0x15E28); +class ShdwDrawPoly_c : public cBgS_ShdwDraw { +public: + virtual ~ShdwDrawPoly_c() {} + + void setCenter(cXyz* center) { mCenter = center; } + cXyz* getCenter() { return mCenter; } + void setLightVec(cXyz* lightVec) { mLightVec = lightVec; } + cXyz* getLightVec() { return mLightVec; } + void setPoly(dDlst_shadowPoly_c* poly) { mPoly = poly; } + dDlst_shadowPoly_c* getPoly() { return mPoly; } + + /* 0x34 */ cXyz* mCenter; + /* 0x38 */ cXyz* mLightVec; + /* 0x3C */ dDlst_shadowPoly_c* mPoly; +}; // Size: 0x40 + class dDlst_mirrorPacket : public J3DPacket { public: void init(ResTIMG*); diff --git a/src/JSystem/J2DGraph/J2DPicture.cpp b/src/JSystem/J2DGraph/J2DPicture.cpp index d16ad1cec..c0d7512b0 100644 --- a/src/JSystem/J2DGraph/J2DPicture.cpp +++ b/src/JSystem/J2DGraph/J2DPicture.cpp @@ -82,7 +82,7 @@ J2DPicture::J2DPicture(const ResTIMG* pTimg) { mpTexture[0] = NULL; mNumTexture = 0; if (pTimg) { - insert(pTimg, mNumTexture, 1.0f); + append(pTimg, 1.0f); } mpPalette = NULL; initinfo(); @@ -93,7 +93,7 @@ J2DPicture::J2DPicture(const char* name) { mpTexture[0] = NULL; mNumTexture = 0; if (name) { - insert(name, mNumTexture, 1.0f); + append(name, 1.0f); } mpPalette = NULL; initinfo(); @@ -134,7 +134,7 @@ void J2DPicture::private_initiate(const ResTIMG* pTimg, const ResTLUT* pTlut) { /* 802D35FC-802D3774 .text initinfo__10J2DPictureFv */ void J2DPicture::initinfo() { mMagic = 'PIC1'; - mBinding = J2DBind_Bottom | J2DBind_Top | J2DBind_Right | J2DBind_Left; + setBinding(J2DBinding(J2DBind_Bottom | J2DBind_Top | J2DBind_Right | J2DBind_Left)); mFlag &= 4; mFlag &= 3; setBlendRatio(1.0f, 1.0f, 1.0f, 1.0f); @@ -336,7 +336,7 @@ void J2DPicture::draw(f32 x, f32 y, f32 width, f32 height, bool mirrorX, bool mi } for (u8 i = 0; i < mNumTexture; i++) { if (i < mNumTexture) { - mpTexture[i]->load((GXTexMapID)i); + load(i); } } GXSetNumTexGens(mNumTexture); @@ -400,7 +400,7 @@ void J2DPicture::drawOut(const JGeometry::TBox2& posBox, const JGeometry::T } for (u8 i = 0; i < mNumTexture; i++) { if (i < mNumTexture) { - mpTexture[i]->load((GXTexMapID)i); + load(i); } } GXSetNumTexGens(mNumTexture); @@ -452,7 +452,7 @@ void J2DPicture::drawOut(const JGeometry::TBox2& posBox, const JGeometry::T void J2DPicture::drawTexCoord(f32 x, f32 y, f32 width, f32 height, f32 s0, f32 t0, f32 s1, f32 t1, f32 s2, f32 t2, f32 s3, f32 t3, Mtx* mtx) { for (u8 i = 0; i < mNumTexture; i++) { if (i < mNumTexture) { - mpTexture[i]->load(GXTexMapID(i)); + load(i); } } f32 x2 = x + width; diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 5d7c4413b..484355d44 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -102,7 +102,7 @@ void dComIfG_play_c::itemInit() { mItemSwimTimerStatus = 0; field_0x4929 = 0; mMesgStatus = 0; - mbCamOverrideFarPlane = 0; + mScopeMesgStatus = 0; field_0x492c = 0; field_0x492d = 0; mCurrButtonBAction = 0; diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index cdb86e67f..1e41ab961 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -22,27 +22,10 @@ #include "global.h" #include "weak_bss_3569.h" // IWYU pragma: keep - -class ShdwDrawPoly_c : public cBgS_ShdwDraw { -public: - virtual ~ShdwDrawPoly_c() {} - - void setCenter(cXyz* center) { mCenter = center; } - cXyz* getCenter() { return mCenter; } - void setLightVec(cXyz* lightVec) { mLightVec = lightVec; } - cXyz* getLightVec() { return mLightVec; } - void setPoly(dDlst_shadowPoly_c* poly) { mPoly = poly; } - dDlst_shadowPoly_c* getPoly() { return mPoly; } - - /* 0x34 */ cXyz* mCenter; - /* 0x38 */ cXyz* mLightVec; - /* 0x3C */ dDlst_shadowPoly_c* mPoly; -}; // Size: 0x40 +#include "weak_data_2100_2080.h" // IWYU pragma: keep GXTexObj dDlst_shadowControl_c::mSimpleTexObj; -#include "weak_data_1811.h" // IWYU pragma: keep - /* 800804A4-800804C0 .text setViewPort__14dDlst_window_cFffffff */ void dDlst_window_c::setViewPort(f32 x, f32 y, f32 w, f32 h, f32 n, f32 f) { mViewport.mXOrig = x; @@ -683,7 +666,6 @@ dDlst_2D_c::dDlst_2D_c(ResTIMG* timg, s16 x, s16 y, u8 alpha) { /* 800821B0-80082264 .text draw__10dDlst_2D_cFv */ void dDlst_2D_c::draw() { - /* Nonmatching */ mPicture.setAlpha(mAlpha); mPicture.draw(mX, mY, false, false, false); } @@ -1283,6 +1265,25 @@ void dDlst_shadowPoly_c::draw() { GXEnd(); } +static void dummy() { + // Fakematch to fix the vtable order and weak destructor order of dDlst_shadowReal_c and dDlst_shadowTri_c. + struct { + dDlst_shadowReal_c temp[1]; + }* temp; + delete temp; +} + +/* 80083668-800836E0 .text J3DDrawBuffer__create__FUl */ +static J3DDrawBuffer * J3DDrawBuffer__create(u32 size) { + J3DDrawBuffer * buffer = new J3DDrawBuffer(); + if (buffer != NULL) { + if (buffer->allocBuffer(size) == 0) + return buffer; + delete buffer; + } + return NULL; +} + /* 800836E0-800837F0 .text init__18dDlst_shadowReal_cFv */ void dDlst_shadowReal_c::init() { u32 texDataSize = GXGetTexBufferSize(0x80, 0x80, GX_TF_I4, GX_FALSE, 0); @@ -1344,12 +1345,11 @@ void dDlst_shadowReal_c::imageDraw(Mtx drawMtx) { /* 8008398C-80083B8C .text draw__18dDlst_shadowReal_cFv */ void dDlst_shadowReal_c::draw() { - /* Nonmatching */ if (mState != 1) return; static GXColor l_color = { 0x00, 0x00, 0x00, 0x40 }; - l_color.a = mAlpha; + l_color.a = (mAlpha >> 2) & ~3; GXSetTevColor(GX_TEVREG0, l_color); GXCallDisplayList(l_shadowVolMat, 0x40); @@ -1436,9 +1436,11 @@ BOOL realPolygonCheck(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, dD ShdwDrawPoly_c shdwDrawPoly; cXyz local_8c; cXyz local_98; - f32 var1 = param_1 + param_2 - cLib_maxLimit(param_1 * param_1 * 0.002f, 120.0f); + f32 tmp1 = param_1 * param_1 * 0.002f; + f32 tmp2 = cLib_maxLimit(tmp1, 120.0f); + f32 var1 = param_1 + param_2 - tmp2; local_8c.y = param_0->y - var1; - local_98.y = param_0->y + param_1 * 0.15f; + local_98.y = param_0->y + param_1 * 0.4f; local_98.x = param_0->x + param_3->x * var1; if (local_98.x < param_0->x) { local_8c.x = local_98.x; @@ -1458,7 +1460,7 @@ BOOL realPolygonCheck(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, dD } local_8c.z -= param_1; local_98.z += param_1; - mDoLib_clipper::changeFar(mDoLib_clipper::getFovyRate() * 10000.0f); + mDoLib_clipper::changeFar(mDoLib_clipper::getFovyRate() * 3000.0f); s32 clip = mDoLib_clipper::clip(j3dSys.getViewMtx(), &local_98, &local_8c); mDoLib_clipper::resetFar(); if (clip) { @@ -1487,10 +1489,10 @@ u8 setShadowRealMtx(Mtx r26, Mtx r27, Mtx r28, cXyz* r6, cXyz* r29, f32 f30, f32 int r31 = 200.0f * f1; cXyz local_64 = *r6 - *r29; local_64.y += f31; - f32 tmp = 3000.0f * (50.0f - f31); - if (tmp < 0.8f) { - local_64.x = 0.8f; - local_64.z = 0.8f; + f32 tmp = 0.02f * (50.0f - f31); + if (tmp < 0.0f) { + local_64.x = 0.0f; + local_64.z = 0.0f; } else if (tmp < 1.0f) { local_64.x *= tmp; local_64.z *= tmp; @@ -1534,7 +1536,7 @@ u32 dDlst_shadowReal_c::set(u32 key, s8 param_2, J3DModel* model, cXyz* param_4, } mAlpha = setShadowRealMtx( mViewMtx, mRenderProjMtx, mReceiverProjMtx, &lightPos, param_4, param_5, param_6, &mShadowRealPoly, - param_2 == 0 ? 0.0f : param_6 * 0.00025f + param_2 == 0 ? 0.0f : param_6 * 0.0007f ); if (mAlpha == 0) { return 0; @@ -1673,12 +1675,12 @@ void dDlst_shadowSimple_c::set(cXyz* pos, f32 y, f32 param_3, cXyz* floorNrm, s1 mDoMtx_stack_c::get()[0][2] = 0.0f; mDoMtx_stack_c::get()[0][3] = pos->x; - mDoMtx_stack_c::get()[1][0] = -xs * yy; + mDoMtx_stack_c::get()[1][0] = -floorNrm->x * yy; mDoMtx_stack_c::get()[1][1] = floorNrm->y; mDoMtx_stack_c::get()[1][2] = zz; mDoMtx_stack_c::get()[1][3] = y; - mDoMtx_stack_c::get()[2][0] = xs * zz; + mDoMtx_stack_c::get()[2][0] = floorNrm->x * zz; mDoMtx_stack_c::get()[2][1] = floorNrm->z; mDoMtx_stack_c::get()[2][2] = yy; mDoMtx_stack_c::get()[2][3] = pos->z; @@ -1737,8 +1739,7 @@ void dDlst_shadowControl_c::draw(Mtx drawMtx) { GXSetNumIndStages(0); dKy_GxFog_set(); GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); - GXColor alpha = { 0x00, 0x00, 0x00, 0x20 }; - GXSetChanMatColor(GX_ALPHA0, alpha); + GXSetChanMatColor(GX_ALPHA0, (GXColor){ 0x00, 0x00, 0x00, 0x20 }); GXSetArray(GX_VA_POS, l_shadowVolPos, sizeof(*l_shadowVolPos)); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); GXSetNumTevStages(1); @@ -1851,8 +1852,8 @@ void dDlst_mirrorPacket::draw() { GXSetNumIndStages(0); dKy_GxFog_set(); - static GXColor l_color = { 0xFF, 0xFF, 0xFF, 0xE0 }; - l_color.a = mAlpha; + static GXColor l_color = { 0xFF, 0xFF, 0xFF, 0x40 }; + l_color.a = (mAlpha >> 2) & ~3; GXSetTevColor(GX_TEVREG0, l_color); l_color.a = mDoGph_gInf_c::getBackColor().a; @@ -2060,17 +2061,6 @@ dDlst_list_c::dDlst_list_c() { mpSpotModel = NULL; } -/* 80083668-800836E0 .text J3DDrawBuffer__create__FUl */ -static J3DDrawBuffer * J3DDrawBuffer__create(u32 size) { - J3DDrawBuffer * buffer = new J3DDrawBuffer(); - if (buffer != NULL) { - if (buffer->allocBuffer(size) == 0) - return buffer; - delete buffer; - } - return NULL; -} - /* 80085F6C-800861F4 .text init__12dDlst_list_cFv */ bool dDlst_list_c::init() { mpOpaListSky = J3DDrawBuffer__create(0x20); @@ -2178,9 +2168,9 @@ void dDlst_list_c::reset() { void dDlst_list_c::entryZSortXluDrawList(J3DDrawBuffer* pBuffer, J3DPacket* pPacket, cXyz& pos) { f32 z = -J3DCalcZValue(j3dSys.getViewMtx(), pos); u16 idx; - if (40.05859f < z) { + if (40.058594f < z) { if (9960.941f > z) { - idx = z / 39.05859f; + idx = z / 39.058594f; } else { idx = 0xFF; } @@ -2208,8 +2198,10 @@ void dDlst_list_c::draw(dDlst_base_c** pList, dDlst_base_c** pEnd) { (*pList)->draw(); } -GXColor dDlst_list_c::mWipeColor = { 0, 0, 0, 0 }; +ResTIMG* dDlst_list_c::mToonImage; +ResTIMG* dDlst_list_c::mToonExImage; +GXColor dDlst_list_c::mWipeColor = { 0, 0, 0, 0 }; bool dDlst_list_c::mWipe; f32 dDlst_list_c::mWipeRate = 0.0f; f32 dDlst_list_c::mWipeSpeed = 0.0f; diff --git a/src/d/d_ovlp_fade2.cpp b/src/d/d_ovlp_fade2.cpp index dafe27ff1..823000753 100644 --- a/src/d/d_ovlp_fade2.cpp +++ b/src/d/d_ovlp_fade2.cpp @@ -235,15 +235,6 @@ static cPhs_State dOvlpFd2_Create(void* i_this) { return cPhs_COMPLEATE_e; } -// Fakematch. Manually define this template function here to make it non-weak, fixing the weak function ordering. -template <> -s8 cLib_calcTimer(s8* value) { - if (*(s8*)value != 0) { - *value = *value - 1; - } - return *value; -} - overlap_method_class l_dOvlpFd2_Method = { (process_method_func)dOvlpFd2_Create, (process_method_func)dOvlpFd2_Delete, @@ -281,3 +272,6 @@ overlap_process_profile_definition g_profile_OVERLAP3 = { &l_dOvlpFd2_Method, }; #endif + +// Fakematch to fix the weak func order of cLib_calcTimer(signed char*) +#pragma sym off diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index 91c4040ea..11a9063e9 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -382,14 +382,14 @@ fpc_ProcID fop_Timer_create(s16 param_1, u8 param_2, u16 param_3, u8 param_4, u8 } /* 8002B324-8002B520 .text fopMsgM_messageTypeSelect__FP10fopAc_ac_cP4cXyzPUlPUl */ -uint fopMsgM_messageTypeSelect(fopAc_ac_c* param_1, cXyz* param_2, u32* param_3, u32* param_4) { +fpc_ProcID fopMsgM_messageTypeSelect(fopAc_ac_c* param_1, cXyz* param_2, u32* param_3, u32* param_4) { fopMsgM_msgGet_c msgGet; msgGet.mMsgIdx = 0; msgGet.mGroupID = 0; msgGet.mMsgID = 0; msgGet.mResMsgIdx = 0; - uint pcId; + fpc_ProcID pcId; if(*param_3 >> 0x10 == 0x63) { pcId = fopMsgM_create(PROC_SCP, param_1, param_2, param_3, param_4, NULL); } @@ -463,7 +463,7 @@ fpc_ProcID fopMsgM_messageSet(u32 msgNo, fopAc_ac_c* pActor) { dComIfGp_clearMesgCameraTagInfo(); cXyz lookAtPos = pActor->eyePos; - if(i_msgID == -1) { + if(i_msgID == fpcM_ERROR_PROCESS_ID_e) { i_msgID = fopMsgM_messageTypeSelect(pActor, &lookAtPos, &msgNo, &msgNo); } else if(fopMsgM_IsExecuting(i_msgID)) { @@ -496,7 +496,7 @@ fpc_ProcID fopMsgM_messageSet(u32 msgNo, cXyz* lookAtPos) { dComIfGp_clearMesgAnimeTagInfo(); dComIfGp_clearMesgCameraTagInfo(); - if(i_msgID == -1) { + if(i_msgID == fpcM_ERROR_PROCESS_ID_e) { i_msgID = fopMsgM_messageTypeSelect(NULL, lookAtPos, &msgNo, &msgNo); } else if(fopMsgM_IsExecuting(i_msgID)) { @@ -528,7 +528,7 @@ fpc_ProcID fopMsgM_messageSet(u32 msgNo) { } cXyz lookAtPos(0.0f, 0.0f, 0.0f); - if(i_msgID == -1) { + if(i_msgID == fpcM_ERROR_PROCESS_ID_e) { i_msgID = fopMsgM_messageTypeSelect(NULL, &lookAtPos, &msgNo, &msgNo); } else if(fopMsgM_IsExecuting(i_msgID)) { @@ -582,7 +582,7 @@ u32 fopMsgM_tactMessageSet() { u32 msgNoTemp = 0x5AC; cXyz lookAtPos(0.0f, 0.0f, 0.0f); - if(i_msgID == -1) { + if(i_msgID == fpcM_ERROR_PROCESS_ID_e) { i_msgID = fopMsgM_messageTypeSelect(NULL, &lookAtPos, &msgNoTemp, &msgNoTemp); fopMsgM_tactMsgFlagOn(); } @@ -5139,7 +5139,7 @@ f32 fopMsgM_valueIncrease(int max, int value, u8 mode) { /* 8003C07C-8003C0F8 .text fopMsgM_blendInit__FP18fopMsgM_pane_classPCc */ void fopMsgM_blendInit(fopMsgM_pane_class* i_this, const char* data) { - ((J2DPicture*)i_this->pane)->insert(data, ((J2DPicture*)i_this->pane)->getNumTexture(), 1.0f); + ((J2DPicture*)i_this->pane)->append(data, 1.0f); J2DPicture* pic = (J2DPicture*)i_this->pane; pic->setBlendColorRatio(0.0f, 1.0f, 1.0f, 1.0f); pic->setBlendAlphaRatio(0.0f, 1.0f, 1.0f, 1.0f); @@ -5147,7 +5147,7 @@ void fopMsgM_blendInit(fopMsgM_pane_class* i_this, const char* data) { /* 8003C0F8-8003C16C .text fopMsgM_blendInit__FP10J2DPicturePCc */ void fopMsgM_blendInit(J2DPicture* pic, const char* data) { - pic->insert(data, pic->getNumTexture(), 1.0f); + pic->append(data, 1.0f); pic->setBlendColorRatio(0.0f, 1.0f, 1.0f, 1.0f); pic->setBlendAlphaRatio(0.0f, 1.0f, 1.0f, 1.0f); } @@ -5155,18 +5155,15 @@ void fopMsgM_blendInit(J2DPicture* pic, const char* data) { /* 8003C16C-8003C1D4 .text fopMsgM_blendDraw__FP18fopMsgM_pane_classPCc */ void fopMsgM_blendDraw(fopMsgM_pane_class* i_this, const char* data) { i_this->pane->show(); - // fakematch - forcing the load order/reloads from i_this - J2DPicture* pic = (J2DPicture*)i_this->pane; - pic->remove(pic->getNumTexture() - 1); - pic = (J2DPicture*)i_this->pane; - pic->insert(data, pic->getNumTexture(), 1.0f); + ((J2DPicture*)i_this->pane)->remove(); + ((J2DPicture*)i_this->pane)->append(data, 1.0f); } /* 8003C1D4-8003C234 .text fopMsgM_blendDraw__FP10J2DPicturePCc */ void fopMsgM_blendDraw(J2DPicture* pic, const char* data) { pic->show(); - pic->remove(pic->getNumTexture() - 1); - pic->insert(data, pic->getNumTexture(), 1.0f); + pic->remove(); + pic->append(data, 1.0f); } /* 8003C234-8003C380 .text fopMsgM_setFontsizeCenter__FPcPcPcPcii */