diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-08-28 07:25:03 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-28 16:25:03 +0200 |
| commit | daf45f768d9ae091a97dce1be8d048ac2b7bd54c (patch) | |
| tree | 138798649ad35cb95ff5a0dd49bc7884ed6cdff0 /src | |
| parent | e14b04c54a40e95f0117df44f1186f2d44799ac7 (diff) | |
move J2D / JUTResFont (#144)
* move some JSystem and meter2_info stuff
* more J2D / JUTTexture / JUTPalette
* setup dScnKy_env_light_c
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/a/d_a_alink.cpp | 41 | ||||
| -rw-r--r-- | src/d/a/d_a_player.cpp | 8 | ||||
| -rw-r--r-- | src/d/com/d_com_inf_game.cpp | 2 | ||||
| -rw-r--r-- | src/d/d_drawlist.cpp | 55 | ||||
| -rw-r--r-- | src/d/d_lib.cpp | 3 | ||||
| -rw-r--r-- | src/d/kankyo/d_kankyo.cpp | 99 | ||||
| -rw-r--r-- | src/d/menu/d_menu_window.cpp | 16 | ||||
| -rw-r--r-- | src/d/meter/d_meter2_info.cpp | 505 | ||||
| -rw-r--r-- | src/d/meter/d_meter_HIO.cpp | 61 | ||||
| -rw-r--r-- | src/d/msg/d_msg_flow.cpp | 242 | ||||
| -rw-r--r-- | src/d/pane/d_pane_class.cpp | 88 | ||||
| -rw-r--r-- | src/d/pane/d_pane_class_alpha.cpp | 47 | ||||
| -rw-r--r-- | src/d/particle/d_particle.cpp | 51 | ||||
| -rw-r--r-- | src/f_op/f_op_actor.cpp | 19 | ||||
| -rw-r--r-- | src/f_op/f_op_msg_mng.cpp | 9 |
15 files changed, 500 insertions, 746 deletions
diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 394247747b..3d0cc22845 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -563,11 +563,6 @@ struct daAlinkHIO_atnMove_c0 { static u8 const m[84]; }; -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - struct dPa_control_c { struct level_c { /* 8004B8B4 */ void forceOnEventMove(u32); @@ -640,8 +635,6 @@ struct dBgS_ObjAcch { /* 800D0C6C */ ~dBgS_ObjAcch(); }; -struct _GXTexObj {}; - struct Z2SeqMgr { /* 802AF010 */ void bgmStart(u32, u32, s32); /* 802AF49C */ void subBgmStart(u32); @@ -744,24 +737,6 @@ struct J3DAnmLoaderDataBase { /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); }; -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct J2DAnmTevRegKey {}; - -struct J2DAnmColor {}; - -struct J2DPane { - /* 80126350 */ void setAnimation(J2DAnmTevRegKey*); - /* 80126354 */ void setAnimation(J2DAnmColor*); -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; @@ -3659,30 +3634,14 @@ extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey() extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXBegin(); extern "C" void GXSetCullMode(); extern "C" void GXLoadLightObjImm(); extern "C" void GXSetChanAmbColor(); extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetBlendMode(); extern "C" void GXSetZMode(); extern "C" void GXLoadPosMtxImm(); extern "C" void GXLoadNrmMtxImm(); diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 17e81247f8..be3a7989db 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -149,16 +149,8 @@ extern "C" void __ct__15J3DAnmTransformFsPfPsPf(); extern "C" void __ct__19J3DAnmTextureSRTKeyFv(); extern "C" void __ct__16J3DAnmTexPatternFv(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetTevOrder(); -extern "C" void GXCallDisplayList(); extern "C" void GXLoadPosMtxImm(); extern "C" void GXSetCurrentMtx(); extern "C" void _savegpr_27(); diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index df876851d1..af0e448c2a 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -43,8 +43,6 @@ struct dMapInfo_n { /* 8003EE5C */ void getMapPlayerPos(); }; -struct _GXTexObj {}; - struct dDlst_shadowControl_c { /* 80055C74 */ void setReal(u32, s8, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*); /* 80055F84 */ void setSimple(cXyz*, f32, f32, cXyz*, s16, f32, _GXTexObj*); diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 08b27a7b51..4c6389c504 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -4,6 +4,7 @@ // #include "d/d_drawlist.h" +#include "JSystem/J2DGraph/J2DScreen.h" #include "dol2asm.h" #include "dolphin/mtx/mtx44.h" #include "dolphin/mtx/mtxvec.h" @@ -41,8 +42,6 @@ struct dDlst_shadowTri_c { /* 80056344 */ dDlst_shadowTri_c(); }; -struct _GXTexObj {}; - struct dDlst_shadowSimple_c { /* 8005520C */ void draw(); /* 800553EC */ void set(cXyz*, f32, f32, cXyz*, s16, f32, _GXTexObj*); @@ -76,8 +75,6 @@ struct dDlst_shadowPoly_c { /* 800543B4 */ void draw(); }; -struct ResTIMG {}; - struct dDlst_shadowControl_c { /* 80055684 */ void init(); /* 80055768 */ void reset(); @@ -157,24 +154,14 @@ struct cBgS { /* 80074840 */ void ShdwDraw(cBgS_ShdwDraw*); }; -struct _GXTlutObj {}; - struct ShdwDrawPoly_c { /* 80054A6C */ ~ShdwDrawPoly_c(); }; -struct JUtility { - struct TColor {}; -}; - struct JMath { static u8 sincosTable_[65536]; }; -struct JKRArchive { - /* 802D5B38 */ void getGlbResource(u32, char const*, JKRArchive*); -}; - struct J3DUClipper { /* 8027378C */ void calcViewFrustum(); /* 80273A44 */ void clip(f32 const (*)[4], Vec*, Vec*) const; @@ -186,13 +173,6 @@ struct J3DShape { static u8 sOldVcdVatCmd[4]; }; -struct J2DGrafContext {}; - -struct J2DScreen { - /* 80053BA0 */ void clearAnmTransform(); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); -}; - struct J2DPicture { /* 800539DC */ void getTexture(u8) const; /* 80053C44 */ void setWhite(JUtility::TColor); @@ -200,18 +180,6 @@ struct J2DPicture { /* 802FC050 */ J2DPicture(); }; -struct J2DPane { - /* 80053BC0 */ void calcMtx(); - /* 80053C00 */ void makeMatrix(f32, f32); - /* 80053C3C */ s32 getTypeID() const; - /* 802F8004 */ void clearAnmTransform(); -}; - -struct J2DAnmBase { - /* 80053C94 */ ~J2DAnmBase(); - /* 800569B0 */ void searchUpdateMaterialID(J2DScreen*); -}; - // // Forward References: // @@ -347,15 +315,11 @@ extern "C" void __dt__13J3DDrawBufferFv(); extern "C" void frameInit__13J3DDrawBufferFv(); extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); extern "C" void draw__13J3DDrawBufferCFv(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXSetArray(); extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXPixModeSync(); extern "C" void GXPeekZ(); -extern "C" void GXBegin(); extern "C" void GXSetLineWidth(); extern "C" void GXSetPointSize(); extern "C" void GXSetCullMode(); @@ -363,37 +327,20 @@ extern "C" void GXSetTexCopySrc(); extern "C" void GXSetTexCopyDst(); extern "C" void GXCopyTex(); extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXGetTexBufferSize(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXGetTexObjWrapS(); extern "C" void GXGetTexObjWrapT(); extern "C" void GXGetTexObjTlut(); -extern "C" void GXLoadTexObj(); -extern "C" void GXLoadTlut(); extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevOp(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); extern "C" void GXSetTevSwapModeTable(); extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); extern "C" void GXSetFog(); -extern "C" void GXSetBlendMode(); extern "C" void GXSetColorUpdate(); extern "C" void GXSetAlphaUpdate(); extern "C" void GXSetZMode(); extern "C" void GXSetZCompLoc(); extern "C" void GXSetDither(); -extern "C" void GXCallDisplayList(); extern "C" void GXSetProjection(); extern "C" void GXLoadPosMtxImm(); extern "C" void GXSetCurrentMtx(); diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index cd81232e39..22a375a9f9 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -21,8 +21,6 @@ struct dEvt_control_c { /* 800434D8 */ void searchMapEventData(u8); }; -struct JKRHeap {}; - struct JKRExpandSwitch {}; struct JKRArchive { @@ -75,7 +73,6 @@ extern "C" void __mi__4cXyzCFRC3Vec(); extern "C" void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl(); extern "C" void findFsResource__10JKRArchiveCFPCcUl(); extern "C" void getAramAddress__14JKRAramArchiveFPCc(); -extern "C" void PSMTXMultVec(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 2bcbc344dd..2e453ae48e 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -27,19 +27,6 @@ struct mDoGph_gInf_c { static u8 m_bloom[20]; }; -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); - /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - struct daPy_py_c { /* 8015F424 */ void checkNowWolfEyeUp(); }; @@ -73,38 +60,6 @@ struct dStage_roomControl_c { static u8 mStatus[65792]; }; -struct J3DModelData { - /* 8032600C */ void simpleCalcMaterial(u16, f32 (*)[4]); -}; - -struct dScnKy_env_light_c { - /* 8019F2E8 */ dScnKy_env_light_c(); - /* 8019F4FC */ void setDaytime(); - /* 8019F788 */ void setSunpos(); - /* 8019FA08 */ void getDaytime(); - /* 8019FBCC */ void getDarkDaytime(); - /* 8019FBD4 */ void setLight_palno_get(u8*, u8*, u8*, u8*, u8*, u8*, u8*, u8*, f32*, int*, int*, - f32*, u8*); - /* 801A040C */ void setLight(); - /* 801A133C */ void setLight_bg(dKy_tevstr_c*, _GXColorS10*, _GXColorS10*, f32*, f32*); - /* 801A16C0 */ void setLight_actor(dKy_tevstr_c*, _GXColorS10*, f32*, f32*); - /* 801A1D64 */ void settingTevStruct_colget_actor(cXyz*, dKy_tevstr_c*, _GXColorS10*, - _GXColorS10*, f32*, f32*); - /* 801A1F58 */ void settingTevStruct_colget_player(dKy_tevstr_c*); - /* 801A2128 */ void settingTevStruct_plightcol_plus(cXyz*, dKy_tevstr_c*, _GXColorS10, - _GXColorS10, u8); - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A441C */ void setLightTevColorType(J3DModelData*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); - /* 801A4E90 */ void CalcTevColor(); - /* 801A4F24 */ void Sndpos(); - /* 801A4F64 */ void Eflight_flush_proc(); - /* 801A516C */ void SetBaseLight(); - /* 801A5288 */ void exeKankyo(); - /* 801A56DC */ void drawKankyo(); - /* 801ADBBC */ ~dScnKy_env_light_c(); -}; - struct dRes_info_c {}; struct dRes_control_c { @@ -113,8 +68,6 @@ struct dRes_control_c { struct dPa_levelEcallBack {}; -struct csXyz {}; - struct dPa_control_c { /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, @@ -174,60 +127,27 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct WIND_INF_ENTITY { - /* 8019F4B8 */ ~WIND_INF_ENTITY(); - /* 8019F4F4 */ WIND_INF_ENTITY(); -}; - struct JUTNameTab { /* 802DEAF8 */ void getName(u16) const; }; -struct JPABaseEmitter { - /* 8027EC60 */ void deleteAllParticle(); -}; - struct JMath { static u8 sincosTable_[65536]; }; -struct JKRSolidHeap {}; - struct J3DTexMtxInfo { /* 80325794 */ void setEffectMtx(f32 (*)[4]); }; -struct J3DModel {}; - struct J3DMaterial {}; struct J3DGXColor {}; -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); -}; - struct J3DColorBlock { /* 801A4C08 */ void setLight(u32, J3DLightObj*); /* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*); }; -struct GB_MAPLE_COL_CHANGE { - /* 8019F400 */ GB_MAPLE_COL_CHANGE(); -}; - -struct DUNGEON_LIGHT { - /* 8019F478 */ ~DUNGEON_LIGHT(); - /* 8019F4B4 */ DUNGEON_LIGHT(); -}; - -struct DALKMIST_INFLUENCE {}; - -struct BOSS_LIGHT { - /* 8019F438 */ ~BOSS_LIGHT(); - /* 8019F474 */ BOSS_LIGHT(); -}; - // // Forward References: // @@ -435,7 +355,6 @@ extern "C" extern u8 struct_80451070[8]; SECTION_INIT void memset(); SECTION_INIT void memcpy(); -extern "C" void OSReport_Warning(); extern "C" void mDoAud_setSceneName__FPCcll(); extern "C" void __dt__4cXyzFv(); extern "C" void create__Q213mDoGph_gInf_c7bloom_cFv(); @@ -516,11 +435,6 @@ extern "C" void __as__12J3DLightInfoFRC12J3DLightInfo(); extern "C" void setEffectMtx__13J3DTexMtxInfoFPA4_f(); extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f(); extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXTrans(); -extern "C" void C_MTXLightPerspective(); -extern "C" void PSMTXMultVec(); extern "C" void GXInitLightAttn(); extern "C" void GXInitLightSpot(); extern "C" void GXInitLightDistAttn(); @@ -577,7 +491,6 @@ extern "C" u8 mStatus__20dStage_roomControl_c[65792]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_meter2_info[248]; extern "C" extern u8 g_Counter[12 + 4 /* padding */]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" extern u32 __float_nan; extern "C" extern u8 struct_80450D64[4]; @@ -1714,14 +1627,9 @@ asm void dScnKy_env_light_c::setSunpos() { /* 8019FA08-8019FA10 19A348 0008+00 3/3 5/5 1/1 .text getDaytime__18dScnKy_env_light_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnKy_env_light_c::getDaytime() { - nofralloc -#include "asm/d/kankyo/d_kankyo/getDaytime__18dScnKy_env_light_cFv.s" +f32 dScnKy_env_light_c::getDaytime() { + return mDaytime; } -#pragma pop /* 8019FA10-8019FA3C 19A350 002C+00 2/2 2/2 32/32 .text dKy_getdaytime_hour__Fv */ #pragma push @@ -3596,7 +3504,8 @@ asm void dKy_bg_MAxx_proc(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dScnKy_env_light_c::~dScnKy_env_light_c() { +// asm dScnKy_env_light_c::~dScnKy_env_light_c() { +extern "C" asm void __dt__18dScnKy_env_light_cFv() { nofralloc #include "asm/d/kankyo/d_kankyo/__dt__18dScnKy_env_light_cFv.s" } diff --git a/src/d/menu/d_menu_window.cpp b/src/d/menu/d_menu_window.cpp index 052f0636e2..3a090963b0 100644 --- a/src/d/menu/d_menu_window.cpp +++ b/src/d/menu/d_menu_window.cpp @@ -374,32 +374,16 @@ extern "C" void freeAll__7JKRHeapFv(); extern "C" void getTotalFreeSize__7JKRHeapFv(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXPixModeSync(); -extern "C" void GXBegin(); extern "C" void GXSetCullMode(); extern "C" void GXSetTexCopySrc(); extern "C" void GXSetTexCopyDst(); extern "C" void GXCopyTex(); -extern "C" void GXSetNumChans(); -extern "C" void GXInitTexObj(); -extern "C" void GXInitTexObjLOD(); -extern "C" void GXLoadTexObj(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); extern "C" void GXSetFog(); extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetBlendMode(); extern "C" void GXSetZMode(); extern "C" void GXSetZCompLoc(); extern "C" void GXSetDither(); diff --git a/src/d/meter/d_meter2_info.cpp b/src/d/meter/d_meter2_info.cpp index 8a65704cc4..18833651b0 100644 --- a/src/d/meter/d_meter2_info.cpp +++ b/src/d/meter/d_meter2_info.cpp @@ -4,6 +4,7 @@ // #include "d/meter/d_meter2_info.h" +#include "d/com/d_com_inf_game.h" #include "d/save/d_save.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -125,12 +126,19 @@ extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" void* item_resource__10dItem_data[1530]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // +inline BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id); +} + +inline s8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { + return param_0->field_0x09 >> 1 & 0x1f; +} + /* ############################################################################################## */ /* 80399168-80399168 0257C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push @@ -217,46 +225,39 @@ SECTION_DATA static char* tex_name_5183[10] = { }; /* 803BF81C-803BFA1C 01C93C 0200+00 3/3 6/6 0/0 .data letter_data__12dMenu_Letter */ -SECTION_DATA u8 dMenu_Letter::letter_data[512] = { - 0x09, 0xC5, 0x0A, 0x29, 0x0A, 0x8D, 0x01, 0x0B, 0x09, 0xC6, 0x0A, 0x2A, 0x0A, 0x8E, 0x02, 0x37, - 0x09, 0xC7, 0x0A, 0x2B, 0x0A, 0x8F, 0x02, 0x36, 0x09, 0xC8, 0x0A, 0x2C, 0x0A, 0x90, 0x00, 0x37, - 0x09, 0xC9, 0x0A, 0x2D, 0x0A, 0x91, 0x00, 0x39, 0x09, 0xCA, 0x0A, 0x2E, 0x0A, 0x92, 0x00, 0x67, - 0x09, 0xCB, 0x0A, 0x2F, 0x0A, 0x93, 0x01, 0x09, 0x09, 0xCC, 0x0A, 0x30, 0x0A, 0x94, 0x00, 0x4D, - 0x09, 0xCD, 0x0A, 0x31, 0x0A, 0x95, 0x01, 0x19, 0x09, 0xCE, 0x0A, 0x32, 0x0A, 0x96, 0x01, 0x08, - 0x09, 0xCF, 0x0A, 0x33, 0x0A, 0x97, 0x01, 0x0C, 0x09, 0xD4, 0x0A, 0x38, 0x0A, 0x9E, 0x01, 0x0C, - 0x09, 0xD1, 0x0A, 0x35, 0x0A, 0x9B, 0x00, 0xB6, 0x09, 0xD2, 0x0A, 0x36, 0x0A, 0x9C, 0x00, 0x67, - 0x09, 0xD5, 0x0A, 0x39, 0x0A, 0xA0, 0x03, 0x1C, 0x09, 0xD6, 0x0A, 0x3A, 0x0A, 0xA1, 0x01, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803BFA1C-803BFA28 01CB3C 000C+00 2/2 0/0 0/0 .data __vt__13dMeter2Info_c */ -SECTION_DATA extern void* __vt__13dMeter2Info_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13dMeter2Info_cFv, +SECTION_DATA dMenu_LetterData dMenu_Letter::letter_data[64] = { + {0x09C5, 0x0A29, 0x0A8D, 0x010B}, {0x09C6, 0x0A2A, 0x0A8E, 0x0237}, + {0x09C7, 0x0A2B, 0x0A8F, 0x0236}, {0x09C8, 0x0A2C, 0x0A90, 0x0037}, + {0x09C9, 0x0A2D, 0x0A91, 0x0039}, {0x09CA, 0x0A2E, 0x0A92, 0x0067}, + {0x09CB, 0x0A2F, 0x0A93, 0x0109}, {0x09CC, 0x0A30, 0x0A94, 0x004D}, + {0x09CD, 0x0A31, 0x0A95, 0x0119}, {0x09CE, 0x0A32, 0x0A96, 0x0108}, + {0x09CF, 0x0A33, 0x0A97, 0x010C}, {0x09D4, 0x0A38, 0x0A9E, 0x010C}, + {0x09D1, 0x0A35, 0x0A9B, 0x00B6}, {0x09D2, 0x0A36, 0x0A9C, 0x0067}, + {0x09D5, 0x0A39, 0x0AA0, 0x031C}, {0x09D6, 0x0A3A, 0x0AA1, 0x010A}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, + {0x0000, 0x0000, 0x0000, 0x0000}, {0x0000, 0x0000, 0x0000, 0x0000}, }; /* 8021BDDC-8021BE20 21671C 0044+00 1/1 0/0 0/0 .text __ct__13dMeter2Info_cFv */ @@ -265,15 +266,7 @@ dMeter2Info_c::dMeter2Info_c() { mTempBits = 0; } -/* 8021BE20-8021BE68 216760 0048+00 2/1 0/0 0/0 .text __dt__13dMeter2Info_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMeter2Info_c::~dMeter2Info_c() { - nofralloc -#include "asm/d/meter/d_meter2_info/__dt__13dMeter2Info_cFv.s" -} -#pragma pop +dMeter2Info_c::~dMeter2Info_c() {} /* ############################################################################################## */ /* 80454998-8045499C 002F98 0004+00 4/4 0/0 0/0 .sdata2 @3916 */ @@ -307,6 +300,108 @@ SECTION_SDATA2 static f32 lit_3922[1 + 1 /* padding */] = { }; /* 8021BE68-8021C0E0 2167A8 0278+00 1/1 1/1 0/0 .text init__13dMeter2Info_cFv */ +// just some float issues +#ifdef NONMATCHING +void dMeter2Info_c::init() { + mMsgResource = NULL; + mStageMsgResource = NULL; + mMsgUnitResource = NULL; + mMeterClass = NULL; + mMeterMap = NULL; + mMenuWindowClass = NULL; + + for (int i = 0; i < 4; i++) { + mMeterItemPanePtr[i] = NULL; + } + + unk8 = 0; + mSub2DStatus = 0; + mHorseLifeCount = 0; + mMsgKeyWaitTimer = 0; + unk152 = 0; + mWindowStatus = 0; + unk186 = 0; + + unk84 = FLOAT_LABEL(lit_3916); + unk88 = FLOAT_LABEL(lit_3916); + unk92 = FLOAT_LABEL(lit_3916); + unk96 = 1.0f; + unk100 = 30.0f; + unk104 = 304.0f; + unk108 = 224.0f; + m2DWidth = 608.0f; + m2DHeight = 448.0f; + m2DPosH = FLOAT_LABEL(lit_3916); + m2DPosV = FLOAT_LABEL(lit_3916); + unk128 = FLOAT_LABEL(lit_3916); + mTimeMs = 0; + mMsgTimeMs = 0; + mNowCount = 0; + mMaxCount = 0; + mShopTalkFlag = false; + mMapStatus = 0; + mMapKeyDirection = 0; + mBlinkButton = 0; + mOilGaugeBackUp = 0; + mUseButton = -1; + mDirectUseItem = 0; + mGameStatus = 0; + mTouchKeyCheck = 0; + mWindowAccept = -1; + mMeterString = 0; + mFloatingFlowID = 0; + mFloatingMessageID = 0; + mFloatingMessageTimer = 0; + mFloatingMessageWakuVisible = 0; + resetWarpStatus(); + mPauseStatus = 0; + mGameOverType = 0; + mInsectSelectType = 0xFF; + + cXyz tmp(FLOAT_LABEL(lit_3916), FLOAT_LABEL(lit_3916), FLOAT_LABEL(lit_3916)); + setWarpInfo("", tmp, 0, 0, 0, 0); + + for (int i = 0; i < 4; i++) { + changeWater(i + SLOT_11); + } + + for (int i = 0; i < 4; i++) { + unk196[i] = 0; + unk200[i] = 0; + unk208[i] = 0; + unk212[i] = 0; + } + + unk204 = 0; + unk205 = 0; + unk206 = 0; + unk207 = 0; + unk216 = 0; + unk217 = 0; + unk218 = 0; + unk219 = 0; + mRentalBombBag = 0xFF; + mMiniGameItemSetFlag = 0; + mMiniGameCount = 0; + setSaveStageName(""); + mCollectCursorPosX = 0; + mCollectCursorPosY = 0; + mTableMapRegionNo = 0xFF; + mGoldWolfMapType = 0; + unk231 = 0; + mItemExplainWindowStatus = 0; + mLifeGaugeSE = 0; + mMapDrugFlag = 0; + + for (int i = 0; i < 3; i++) { + if (dComIfGs_isLightDropGetFlag(i)) { + mLightDropGetFlag[i] = 0xFF; + } else { + mLightDropGetFlag[i] = 0; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -315,12 +410,13 @@ asm void dMeter2Info_c::init() { #include "asm/d/meter/d_meter2_info/init__13dMeter2Info_cFv.s" } #pragma pop +#endif /* 8021C0E0-8021C11C 216A20 003C+00 0/0 1/1 2/2 .text setFloatingMessage__13dMeter2Info_cFUssb */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeter2Info_c::setFloatingMessage(u16 param_0, s16 param_1, bool param_2) { +asm int dMeter2Info_c::setFloatingMessage(u16 param_0, s16 param_1, bool param_2) { nofralloc #include "asm/d/meter/d_meter2_info/setFloatingMessage__13dMeter2Info_cFUssb.s" } @@ -338,14 +434,9 @@ asm void dMeter2Info_c::setFloatingFlow(u16 param_0, s16 param_1, bool param_2) /* 8021C1DC-8021C1F0 216B1C 0014+00 0/0 4/4 0/0 .text isFloatingMessageVisible__13dMeter2Info_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMeter2Info_c::isFloatingMessageVisible() { - nofralloc -#include "asm/d/meter/d_meter2_info/isFloatingMessageVisible__13dMeter2Info_cFv.s" +int dMeter2Info_c::isFloatingMessageVisible() { + return mFloatingMessageTimer > 0; } -#pragma pop /* 8021C1F0-8021C218 216B30 0028+00 0/0 1/1 0/0 .text decFloatingMessageTimer__13dMeter2Info_cFv */ @@ -473,24 +564,22 @@ asm int dMeter2Info_c::setMeterString(s32 param_0) { /* 8021C9DC-8021CA04 21731C 0028+00 1/1 3/3 0/0 .text resetWarpStatus__13dMeter2Info_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_c::resetWarpStatus() { - nofralloc -#include "asm/d/meter/d_meter2_info/resetWarpStatus__13dMeter2Info_cFv.s" +void dMeter2Info_c::resetWarpStatus() { + if (mWarpStatus == 2) { + dComIfGs_resetLastWarpAcceptStage(); + } + mWarpStatus = 0; } -#pragma pop /* 8021CA04-8021CA70 217344 006C+00 0/0 2/2 3/3 .text warpInProc__13dMeter2Info_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_c::warpInProc() { - nofralloc -#include "asm/d/meter/d_meter2_info/warpInProc__13dMeter2Info_cFv.s" +void dMeter2Info_c::warpInProc() { + dComIfGs_setWarpMarkFlag(0); + dComIfGs_resetLastWarpAcceptStage(); + + if (dComIfGs_getItem(SLOT_18, true) != LV7_DUNGEON_EXIT) { + dComIfGs_setItem(SLOT_18, DUNGEON_EXIT); + } } -#pragma pop /* 8021CA70-8021CC00 2173B0 0190+00 0/0 1/1 0/0 .text warpOutProc__13dMeter2Info_cFv */ #pragma push @@ -979,35 +1068,123 @@ void dMeter2Info_c::decHotSpringTimer() { } /* 8021DD5C-8021DE18 21869C 00BC+00 2/2 1/1 0/0 .text changeWater__13dMeter2Info_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_c::changeWater(u8 param_0) { - nofralloc -#include "asm/d/meter/d_meter2_info/changeWater__13dMeter2Info_cFUc.s" +void dMeter2Info_c::changeWater(u8 i_slotNo) { + int i_bottleIdx = i_slotNo - SLOT_11; + mHotSpringTimer[i_bottleIdx] = 0; + + if (dComIfGs_getItem(i_slotNo, true) == HOT_SPRING) { + dComIfGs_setItem(i_slotNo, WATER_BOTTLE); + + for (int i = 0; i < 3; i++) { + if (i_slotNo == dComIfGs_getSelectItemIndex(i)) { + dComIfGp_setSelectItem(i); + } + } + } } -#pragma pop /* 8021DE18-8021E0C4 218758 02AC+00 0/0 3/3 3/3 .text setMiniGameItem__13dMeter2Info_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_c::setMiniGameItem(u8 param_0) { - nofralloc -#include "asm/d/meter/d_meter2_info/setMiniGameItem__13dMeter2Info_cFUc.s" +void dMeter2Info_c::setMiniGameItem(u8 param_0) { + bool bvar1 = false; + + if (mMiniGameItemSetFlag) { + bvar1 = true; + } + + if (mRentalBombBag == 0xFF) { + bool bvar2 = false; + + for (int bagIdx = 0; bagIdx < 3; bagIdx++) { + if (!bvar2 && dComIfGs_getItem((u8)(bagIdx + SLOT_15), true) == 0xFF) { + mRentalBombBag = bagIdx; + bvar2 = true; + } + } + if (!bvar2) { + mRentalBombBag = 2; + } + } + + mMiniGameItemSetFlag = param_0; + + for (int i = 0; i < 2; i++) { + unk200[i] = dComIfGs_getMixItemIndex(i); + unk196[i] = dComIfGs_getSelectItemIndex(i); + } + + unk204 = dComIfGs_getBombNum(mRentalBombBag); + unk205 = dComIfGs_getArrowNum(); + unk206 = dComIfGs_getItem(SLOT_4, false); + unk207 = dComIfGs_getItem((u8)(mRentalBombBag + SLOT_15), false); + + if (bvar1) { + for (int i = 0; i < 2; i++) { + dComIfGs_setMixItemIndex(i, unk212[i]); + dComIfGs_setSelectItemIndex(i, unk208[i]); + } + dComIfGs_setItem(SLOT_4, unk218); + dComIfGp_setItem(SLOT_4, unk218); + dComIfGs_setItem((u8)(mRentalBombBag + SLOT_15), unk219); + dComIfGp_setItem((u8)(mRentalBombBag + SLOT_15), unk219); + dComIfGs_setBombNum(mRentalBombBag, unk216); + dComIfGs_setArrowNum(unk217); + } + + dComIfGs_setItem((u8)(mRentalBombBag + SLOT_15), NORMAL_BOMB); + dComIfGp_setItem((u8)(mRentalBombBag + SLOT_15), NORMAL_BOMB); + + if (mMiniGameItemSetFlag != 3) { + dComIfGs_setItem(SLOT_4, BOW); + dComIfGp_setItem(SLOT_4, BOW); + dComIfGs_setMixItemIndex(1, 0xFF); + dComIfGs_setSelectItemIndex(1, 0xFF); + dComIfGs_setMixItemIndex(0, 4); + dComIfGs_setSelectItemIndex(0, (u8)(mRentalBombBag + SLOT_15)); + } + + if (!bvar1) { + dComIfGs_setBombNum(mRentalBombBag, 30); + u8 arrow_max = dComIfGs_getArrowMax(); + dComIfGs_setArrowNum(arrow_max); + } } -#pragma pop /* 8021E0C4-8021E268 218A04 01A4+00 0/0 3/3 4/4 .text resetMiniGameItem__13dMeter2Info_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_c::resetMiniGameItem(bool param_0) { - nofralloc -#include "asm/d/meter/d_meter2_info/resetMiniGameItem__13dMeter2Info_cFb.s" +void dMeter2Info_c::resetMiniGameItem(bool param_0) { + if (mMiniGameItemSetFlag) { + if (param_0) { + for (int i = 0; i < 2; i++) { + unk212[i] = dComIfGs_getMixItemIndex(i); + unk208[i] = dComIfGs_getSelectItemIndex(i); + } + + unk216 = dComIfGs_getBombNum(mRentalBombBag); + unk217 = dComIfGs_getArrowNum(); + unk218 = dComIfGs_getItem(SLOT_4, false); + unk219 = dComIfGs_getItem((u8)(mRentalBombBag + SLOT_15), false); + } + + for (int i = 0; i < 2; i++) { + dComIfGs_setMixItemIndex(i, unk200[i]); + dComIfGs_setSelectItemIndex(i, unk196[i]); + } + + dComIfGs_setItem(SLOT_4, unk206); + dComIfGp_setItem(SLOT_4, unk206); + + dComIfGs_setItem((u8)(mRentalBombBag + SLOT_15), unk207); + dComIfGp_setItem((u8)(mRentalBombBag + SLOT_15), unk207); + + dComIfGs_setBombNum(mRentalBombBag, unk204); + dComIfGs_setArrowNum(unk205); + + if (!param_0) { + mMiniGameItemSetFlag = 0; + mRentalBombBag = 0xFF; + } + } } -#pragma pop /* 8021E268-8021E290 218BA8 0028+00 0/0 0/0 5/5 .text setMiniGameCount__13dMeter2Info_cFSc */ void dMeter2Info_c::setMiniGameCount(s8 pCount) { @@ -1038,7 +1215,7 @@ asm void dMeter2Info_getNowLifeGauge() { /* 8021E2C8-8021E2DC 218C08 0014+00 0/0 11/11 3/3 .text dMeter2Info_getNumberTextureName__Fi */ char* dMeter2Info_getNumberTextureName(int pIndex) { return tex_name_5183[pIndex]; -} // +} /* 804510B8-804510BC 0005B8 0004+00 1/1 0/0 0/0 .sbss tex_name$5188 */ static char* tex_name_5188; @@ -1070,34 +1247,62 @@ asm void dMeter2Info_getPixel(f32 param_0, f32 param_1, f32 param_2, f32 param_3 #pragma pop /* 8021E4B0-8021E530 218DF0 0080+00 0/0 2/2 1/1 .text dMeter2Info_setCloth__FUcb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_setCloth(u8 param_0, bool param_1) { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_setCloth__FUcb.s" +void dMeter2Info_setCloth(u8 i_clothId, bool param_1) { + if ((int)i_clothId >= MAGIC_LV1 || (int)i_clothId < WEARS_CASUAL) { + i_clothId = WEARS_CASUAL; + param_1 = false; + } + + if (param_1 && dComIfGs_getSelectEquipClothes() != NO_ITEM) { + u8 equip_cloth = dComIfGs_getSelectEquipClothes(); + dComIfGs_offItemFirstBit(equip_cloth); + } + dComIfGs_setSelectEquipClothes(i_clothId); + dComIfGp_setSelectEquipClothes(i_clothId); } -#pragma pop /* 8021E530-8021E5D4 218E70 00A4+00 0/0 3/3 3/3 .text dMeter2Info_setSword__FUcb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_setSword(u8 param_0, bool param_1) { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_setSword__FUcb.s" +void dMeter2Info_setSword(u8 i_itemId, bool param_1) { + switch (i_itemId) { + case NO_ITEM: + case WOOD_STICK: + case SWORD: + case MASTER_SWORD: + case LIGHT_SWORD: + break; + default: + i_itemId = NO_ITEM; + param_1 = false; + } + + if (param_1 && dComIfGs_getSelectEquipSword() != 0xFF) { + u8 tmp = dComIfGs_getSelectEquipSword(); + dComIfGs_offItemFirstBit(tmp); + } + dComIfGs_setSelectEquipSword(i_itemId); + dComIfGp_setSelectEquipSword(i_itemId); } -#pragma pop /* 8021E5D4-8021E660 218F14 008C+00 0/0 3/3 0/0 .text dMeter2Info_setShield__FUcb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_setShield(u8 param_0, bool param_1) { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_setShield__FUcb.s" +void dMeter2Info_setShield(u8 i_itemId, bool param_1) { + switch (i_itemId) { + case NO_ITEM: + case WOOD_SHIELD: + case SHIELD: + case HYLIA_SHIELD: + break; + default: + i_itemId = NO_ITEM; + param_1 = false; + } + + if (param_1 && dComIfGs_getSelectEquipShield() != 0xFF) { + u8 tmp = dComIfGs_getSelectEquipShield(); + dComIfGs_offItemFirstBit(tmp); + } + dComIfGs_setSelectEquipShield(i_itemId); + dComIfGp_setSelectEquipShield(i_itemId); } -#pragma pop /* 8021E660-8021E668 218FA0 0008+00 0/0 1/1 0/0 .text dMeter2Info_is2DActiveTouchArea__Fv */ @@ -1106,20 +1311,9 @@ bool dMeter2Info_is2DActiveTouchArea() { } /* 8021E668-8021E688 218FA8 0020+00 0/0 1/1 0/0 .text dMeter2Info_isMapOpenCheck__Fv */ -#ifdef NONMATCHING bool dMeter2Info_isMapOpenCheck() { return dMeter2Info_getMeterMapClass()->isMapOpenCheck(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_isMapOpenCheck() { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_isMapOpenCheck__Fv.s" -} -#pragma pop -#endif /* 8021E688-8021E6E4 218FC8 005C+00 0/0 2/2 0/0 .text dMeter2Info_isItemOpenCheck__Fv */ #ifdef NONMATCHING @@ -1144,27 +1338,57 @@ asm void dMeter2Info_isItemOpenCheck() { /* 8021E6E4-8021E754 219024 0070+00 1/1 2/2 0/0 .text dMeter2Info_getRecieveLetterNum__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_getRecieveLetterNum() { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_getRecieveLetterNum__Fv.s" +u8 dMeter2Info_getRecieveLetterNum() { + u8 letterNum = 0; + + for (int i = 0; i < 0x40; i++) { + if (dComIfGs_isLetterGetFlag(i)) { + letterNum++; + } + } + return letterNum; } -#pragma pop /* 8021E754-8021E804 219094 00B0+00 0/0 4/4 2/2 .text dMeter2Info_getNewLetterNum__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMeter2Info_getNewLetterNum() { - nofralloc -#include "asm/d/meter/d_meter2_info/dMeter2Info_getNewLetterNum__Fv.s" +u8 dMeter2Info_getNewLetterNum() { + u8 letterNum = 0; + + for (int i = 0; i < 0x40; i++) { + if (!dComIfGs_isLetterGetFlag(i) && dMenu_Letter::getLetterName(i) != 0) { + u16 letterEvent = dMenu_Letter::getLetterEventFlag(i); + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[letterEvent])) { + letterNum++; + } + } + } + return letterNum; } -#pragma pop /* 8021E804-8021E8DC 219144 00D8+00 0/0 1/1 0/0 .text dMeter2Info_setNewLetterSender__Fv */ +// regalloc +#ifdef NONMATCHING +int dMeter2Info_setNewLetterSender() { + u8 check = 0; + + for (int i = 0; i < 0x40; i++) { + if (!dComIfGs_isLetterGetFlag(i) && dMenu_Letter::getLetterName(i) != 0) { + u16 letterEvent = dMenu_Letter::getLetterEventFlag(i); + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[letterEvent])) { + if (check == 0) { + u16 letterName = dMenu_Letter::getLetterName(i); + dMsgObject_c::setLetterNameID(letterName); + } else { + dMsgObject_c::setLetterNameID(0); + return 0; + } + check++; + } + } + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1173,6 +1397,7 @@ asm void dMeter2Info_setNewLetterSender() { #include "asm/d/meter/d_meter2_info/dMeter2Info_setNewLetterSender__Fv.s" } #pragma pop +#endif /* 8021E8DC-8021E9D0 21921C 00F4+00 0/0 1/1 0/0 .text dMeter2Info_recieveLetter__Fv */ #pragma push diff --git a/src/d/meter/d_meter_HIO.cpp b/src/d/meter/d_meter_HIO.cpp index bf2c94e26e..7d6af2e5a2 100644 --- a/src/d/meter/d_meter_HIO.cpp +++ b/src/d/meter/d_meter_HIO.cpp @@ -80,11 +80,6 @@ struct dMeter_drawEmpButtonHIO_c { /* 80200DA0 */ ~dMeter_drawEmpButtonHIO_c(); }; -struct dMeter_drawCollectHIO_c { - /* 801FE348 */ dMeter_drawCollectHIO_c(); - /* 80200FE0 */ ~dMeter_drawCollectHIO_c(); -}; - struct dMeter_drawCalibrationHIO_c { /* 801FE954 */ dMeter_drawCalibrationHIO_c(); /* 80200E78 */ ~dMeter_drawCalibrationHIO_c(); @@ -95,17 +90,6 @@ struct dMeter_cursorHIO_c { /* 80201098 */ ~dMeter_cursorHIO_c(); }; -struct cXyz { - /* 80009184 */ ~cXyz(); - /* 800125DC */ cXyz(); -}; - -struct JUtility { - struct TColor { - /* 80193960 */ TColor(); - }; -}; - struct JKRHeap { /* 802CE548 */ void free(void*); }; @@ -353,6 +337,47 @@ SECTION_SDATA2 static f32 lit_3802 = 26.0f; /* 801FE348-801FE4EC 1F8C88 01A4+00 1/1 0/0 0/0 .text __ct__23dMeter_drawCollectHIO_cFv */ +#ifdef NONMATCHING +dMeter_drawCollectHIO_c::dMeter_drawCollectHIO_c() { + mItemScaleSmall = lit_3787; + mItemScaleLarge = lit_3788; + mSaveOptionItemScaleSmall = lit_3787; + mSaveOptionItemScaleLarge = lit_3789; + mBlueFuzzPosX = lit_3790; + mBlueFuzzPosY = lit_3791; + mBlueFuzzScale = lit_3791; + mBlueFuzzAlpha = lit_3792; + mMaskMirrorPos.set(FLOAT_LABEL(lit_3793), FLOAT_LABEL(lit_3793), FLOAT_LABEL(lit_3793)); + mMaskMirrorAngle.set(0, 0, 0); + field_0x9a = false; + mMaskMirrorScale = FLOAT_LABEL(lit_3793); + mMaskMirrorAnimation = lit_3787; + mHeartVesselPosX = lit_3794; + mHeartVesselPosY = lit_3795; + mHeartVesselScale = lit_3796; + mHeartPiecePosX = FLOAT_LABEL(lit_3793); + mHeartPiecePosY = FLOAT_LABEL(lit_3793); + mHeartPieceScale = lit_3787; + mButtonDebugON = false; + mAButtonPosX = lit_3797; + mAButtonPosY = lit_3798; + mAButtonScale = lit_3791; + mBButtonPosX = lit_3797; + mBButtonPosY = lit_3799; + mBButtonScale = lit_3791; + mAButtonTextPosX = lit_3800; + mAButtonTextPosY = lit_3798; + mAButtonTextScale = lit_3789; + mBButtonTextPosX = lit_3801; + mBButtonTextPosY = lit_3802; + mBButtonTextScale = lit_3789; + mColorDebugON = false; + mBasBlack[0].set(0, 0, 0, 0); + mBasWhite[0].set(250, 250, 210, 220); + mBasBlack[1].set(200, 190, 100, 0); + mBasWhite[1].set(200, 190, 100, 175); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -361,6 +386,7 @@ asm dMeter_drawCollectHIO_c::dMeter_drawCollectHIO_c() { #include "asm/d/meter/d_meter_HIO/__ct__23dMeter_drawCollectHIO_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454520-80454524 002B20 0004+00 3/3 0/0 0/0 .sdata2 @3828 */ @@ -1251,7 +1277,8 @@ asm dMeter_drawOptionHIO_c::~dMeter_drawOptionHIO_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dMeter_drawCollectHIO_c::~dMeter_drawCollectHIO_c() { +// asm dMeter_drawCollectHIO_c::~dMeter_drawCollectHIO_c() { +extern "C" asm void __dt__23dMeter_drawCollectHIO_cFv() { nofralloc #include "asm/d/meter/d_meter_HIO/__dt__23dMeter_drawCollectHIO_cFv.s" } diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index 2d9dc7c934..e3ede34992 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -4,6 +4,7 @@ // #include "d/msg/d_msg_flow.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -15,132 +16,11 @@ struct mDoGph_gInf_c { /* 80007FD8 */ void fadeOut(f32, _GXColor&); }; -struct daPy_py_c { - /* 8015F3FC */ void getAttentionOffsetY(); - /* 8015F954 */ void setMidnaMotionNum(int); - /* 8015F968 */ void setMidnaFaceNum(int); - - static u8 m_midnaActor[4]; -}; - -struct daAlink_c { - /* 800B4938 */ void setMidnaMsg(); -}; - -struct dSv_player_status_a_c { - /* 80032A5C */ void getSelectItemIndex(int) const; - /* 80032AA8 */ void getRupeeMax() const; -}; - -struct dSv_player_item_record_c { - /* 80033F6C */ void setBombNum(u8, u8); - /* 80033F7C */ void getBombNum(u8) const; -}; - -struct dSv_player_item_max_c { - /* 800340F8 */ void getBombNum(u8) const; -}; - -struct dSv_player_item_c { - /* 80032FB8 */ void setItem(int, u8); - /* 80033030 */ void getItem(int, bool) const; - /* 80033370 */ void setBottleItemIn(u8, u8); - /* 80033450 */ void setEmptyBottleItemIn(u8); - /* 80033754 */ void checkInsectBottle(); - /* 800337EC */ void checkEmptyBottle(); - /* 80033BEC */ void checkBombBag(u8); - /* 80033C2C */ void setWarashibeItem(u8); -}; - -struct dSv_player_get_item_c { - /* 80033E94 */ void offFirstBit(u8); -}; - -struct dSv_memBit_c { - /* 800347E8 */ void isTbox(int) const; - /* 80034810 */ void onSwitch(int); - /* 80034838 */ void offSwitch(int); - /* 80034860 */ void isSwitch(int) const; - /* 800348EC */ void isItem(int) const; -}; - -struct dSv_light_drop_c { - /* 80034340 */ void getLightDropNum(u8) const; - /* 80034368 */ void onLightDropGetFlag(u8); -}; - -struct dSv_event_tmp_flag_c { - static u8 const tempBitLabels[370 + 2 /* padding */]; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 8003498C */ void onEventBit(u16); - /* 800349A4 */ void offEventBit(u16); - /* 800349BC */ void isEventBit(u16) const; - /* 800349E0 */ void setEventReg(u16, u8); - /* 80034A04 */ void getEventReg(u16) const; -}; - -struct dSv_danBit_c { - /* 80034B98 */ void onSwitch(int); - /* 80034BC0 */ void offSwitch(int); - /* 80034BE8 */ void isSwitch(int) const; - /* 80034C74 */ void isItem(int) const; -}; - -struct dStage_roomControl_c { - /* 80024384 */ void getStatusRoomDt(int); -}; - struct dShopSystem_c { /* 801975F8 */ void isFlag(int); /* 8019A354 */ void setSoldOutFlag(); }; -struct dMsgObject_c { - /* 802370FC */ void isMidonaMessage(); - /* 80237980 */ void isKillMessageFlag(); - /* 80237994 */ void onKillMessageFlag(); - /* 80237A74 */ void setTalkPartner(fopAc_ac_c*); - /* 80237A88 */ void setNowTalkFlowNo(s16); - /* 8023803C */ void changeFlowGroup(s32); - /* 80238098 */ void endFlowGroup(); - /* 80238174 */ void getMsgDtPtr(); - /* 8023822C */ void getStatus(); - /* 8023846C */ void setSelectCursorPos(u8); - /* 802384D8 */ void setArrowNum(u8); - /* 80238544 */ void setSelectWordFlag(u8); - /* 802385B4 */ void getSelectBombBagID(); - /* 802385E0 */ void getSelectBombPrice(); - /* 8023860C */ void setEquipBombInfo(); - /* 8023864C */ void setSelectCancelPos(u8); -}; - -struct dMeter2Info_c { - /* 8021E0C4 */ void resetMiniGameItem(bool); -}; - -struct dComIfG_play_c { - /* 8002B36C */ void setItemBombNumCount(u8, s16); -}; - -struct dAttention_c { - /* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32); - /* 8014B010 */ void getDistTable(int); -}; - -struct cSGlobe { - /* 80271880 */ cSGlobe(cXyz const&); -}; - -struct cSAngle { - /* 80271228 */ void operator-(s16) const; -}; - struct Z2SeMgr { /* 802ADB14 */ void messageSePlay(u16, Vec*, s8); }; @@ -284,7 +164,6 @@ extern "C" u8 mEventList__10dMsgFlow_c[516]; // External References: // -SECTION_INIT void memcpy(); extern "C" void fadeOut__13mDoGph_gInf_cFfR8_GXColor(); extern "C" void fopMsgM_SearchByID__FUi(); extern "C" void fopMsgM_messageSet__FUlP10fopAc_ac_cUl(); @@ -389,15 +268,11 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" extern u8 g_MsgObject_HIO_c[1040]; extern "C" extern u32 g_saftyWhiteColor; -extern "C" extern u8 struct_80450D64[4]; extern "C" u8 m_midnaActor__9daPy_py_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -405,6 +280,14 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // +inline void dComIfGp_setItemRupeeCount(int amount) { + g_dComIfG_gameInfo.play.setItemRupeeCount(amount); +} + +inline void dComIfGp_setItemLifeCount(float amount, u8 type) { + g_dComIfG_gameInfo.play.setItemLifeCount(amount, type); +} + /* ############################################################################################## */ /* 803C14B8-803C14C4 01E5D8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { @@ -1839,14 +1722,15 @@ asm void dMsgFlow_c::nodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { /* 8024B0F0-8024B108 245A30 0018+00 16/16 0/0 0/0 .text getParam__10dMsgFlow_cFPUsPUsPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getParam(u16* param_0, u16* param_1, u8* param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/getParam__10dMsgFlow_cFPUsPUsPUc.s" +// might be fake match +int dMsgFlow_c::getParam(u16* param_0, u16* param_1, u8* param_2) { + u16* tmp = (u16*)param_2; + *param_0 = *tmp; + *param_1 = *(tmp + 1); + + int* tmp2 = (int*)param_2; + return *tmp2; } -#pragma pop /* 8024B108-8024B130 245A48 0028+00 3/3 0/0 0/0 .text getParam__10dMsgFlow_cFPUcPUc */ #pragma push @@ -1859,14 +1743,10 @@ asm void dMsgFlow_c::getParam(u8* param_0, u8* param_1) { #pragma pop /* 8024B130-8024B138 245A70 0008+00 20/20 0/0 0/0 .text getParam__10dMsgFlow_cFPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getParam(u8* param_0) { - nofralloc -#include "asm/d/msg/d_msg_flow/getParam__10dMsgFlow_cFPUc.s" +int dMsgFlow_c::getParam(u8* param_0) { + int* tmp2 = (int*)param_0; + return *tmp2; } -#pragma pop /* 8024B138-8024B180 245A78 0048+00 1/0 0/0 0/0 .text * query001__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ @@ -2467,47 +2347,65 @@ asm void dMsgFlow_c::query053(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024C3FC-8024C488 246D3C 008C+00 1/0 0/0 0/0 .text * event000__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event000(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event000__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event000(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + u16 prm1; + u16 prm0; + + int tmp = getParam(&prm0, &prm1, ¶m_0->param); + if (prm0 != 0) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm0]); + } + if (prm1 != 0) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm1]); + } + return 1; } -#pragma pop /* 8024C488-8024C514 246DC8 008C+00 1/0 0/0 0/0 .text * event001__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event001(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event001__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event001(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + u16 prm1; + u16 prm0; + + int tmp = getParam(&prm0, &prm1, ¶m_0->param); + if (prm0 != 0) { + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm0]); + } + if (prm1 != 0) { + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm1]); + } + return 1; } -#pragma pop /* 8024C514-8024C550 246E54 003C+00 1/0 0/0 0/0 .text * event002__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event002(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event002__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event002(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + int prm0 = getParam(¶m_0->param); + + dComIfGp_setItemRupeeCount(prm0); + return 1; } -#pragma pop /* 8024C550-8024C590 246E90 0040+00 1/0 0/0 0/0 .text * event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// wrong instruction +#ifdef NONMATCHING +int dMsgFlow_c::event003(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + int prm0 = getParam(¶m_0->param); + + dComIfGp_setItemRupeeCount(-prm0); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event003(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event003(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454DA0-80454DA8 0033A0 0008+00 3/3 0/0 0/0 .sdata2 @6040 */ @@ -2515,17 +2413,34 @@ SECTION_SDATA2 static f64 lit_6040 = 4503601774854144.0 /* cast s32 to float */; /* 8024C590-8024C5F0 246ED0 0060+00 1/0 0/0 0/0 .text * event004__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +#ifdef NONMATCHING +int dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + f32 prm0 = getParam(¶m_0->param); + + dComIfGp_setItemLifeCount(prm0, 0); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event004__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024C5F0-8024C654 246F30 0064+00 1/0 0/0 0/0 .text * event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +#ifdef NONMATCHING +int dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + f32 prm0 = getParam(¶m_0->param); + + dComIfGp_setItemLifeCount(-prm0, 0); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2534,6 +2449,7 @@ asm void dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1 #include "asm/d/msg/d_msg_flow/event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024C654-8024C694 246F94 0040+00 1/0 0/0 0/0 .text * event006__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ diff --git a/src/d/pane/d_pane_class.cpp b/src/d/pane/d_pane_class.cpp index d97d79d881..cad38fb7c0 100644 --- a/src/d/pane/d_pane_class.cpp +++ b/src/d/pane/d_pane_class.cpp @@ -11,45 +11,13 @@ // Types: // -struct JUtility { - struct TColor {}; -}; - -struct JSURandomInputStream { - /* 80255328 */ ~JSURandomInputStream(); -}; - struct JSUMemoryInputStream { /* 802552B8 */ ~JSUMemoryInputStream(); /* 802DC520 */ void setBuffer(void const*, s32); }; -struct JSUIosBase { - /* 80255388 */ ~JSUIosBase(); -}; - -struct JSUInputStream { - /* 802DC23C */ ~JSUInputStream(); -}; - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); -}; - -struct JKRExpHeap {}; - -struct JKRArchive {}; - struct JKRAramArchive {}; -struct JGeometry { - template <typename A1> - struct TBox2 {}; - /* TBox2<f32> */ - struct TBox2__template0 {}; -}; - struct J2DWindow { /* 80254000 */ void getBlack() const; /* 8025400C */ void getWhite() const; @@ -62,56 +30,11 @@ struct J2DTextBox { /* 80254408 */ void setBlack(JUtility::TColor); }; -struct J2DScreen { - /* 802F8748 */ void setPriority(JSURandomInputStream*, u32, JKRArchive*); -}; - -struct J2DRotateAxis {}; - -struct J2DPane { - /* 802F7100 */ void getBounds(); - /* 802F71DC */ void rotate(f32, f32, J2DRotateAxis, f32); - /* 802F7A8C */ void getFirstChildPane(); - /* 802F7AC4 */ void getNextChildPane(); - /* 802F7AFC */ void getParentPane(); -}; - struct J2DOrthoGraph { /* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32); /* 802E980C */ void setOrtho(JGeometry::TBox2<f32> const&, f32, f32); }; -struct CPaneMgrAlpha { - /* 802553EC */ CPaneMgrAlpha(); - /* 8025546C */ ~CPaneMgrAlpha(); - /* 80255658 */ void rateCalc(s16, s16, u8); - /* 80255A60 */ void childPaneCount(J2DPane*); - /* 80255ACC */ void childPaneGetAlpha(J2DPane*); - /* 80255B5C */ void childPaneSetAlpha(J2DPane*, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253930 */ CPaneMgr(); - /* 80253A18 */ ~CPaneMgr(); - /* 80253AB4 */ void setAlpha(u8); - /* 80253B2C */ void reinit(); - /* 80253C08 */ void initiate(J2DPane*, JKRExpHeap*); - /* 80254018 */ void childPaneGetSize(J2DPane*); - /* 80254134 */ void childPaneSetSize(J2DPane*, f32, f32); - /* 802542E8 */ void getGlobalPosX(); - /* 80254364 */ void getGlobalPosY(); - /* 80254458 */ void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 802545B0 */ void paneTrans(f32, f32); - /* 80254638 */ void paneScale(f32, f32); - /* 802547CC */ void scaleAnime(s16, f32, f32, u8); - /* 802548BC */ void colorAnime(s16, JUtility::TColor, JUtility::TColor, JUtility::TColor, - JUtility::TColor, u8); - /* 80254C90 */ void getGlobalVtx(J2DPane*, f32 (*)[3][4], u8, bool, s16); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); - /* 80254FB8 */ void getBounds(J2DPane*); -}; - // // Forward References: // @@ -174,8 +97,6 @@ extern "C" void getFirstChildPane__7J2DPaneFv(); extern "C" void getNextChildPane__7J2DPaneFv(); extern "C" void getParentPane__7J2DPaneFv(); extern "C" void setPriority__9J2DScreenFP20JSURandomInputStreamUlP10JKRArchive(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); extern "C" void _savegpr_24(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); @@ -543,7 +464,8 @@ asm void dPaneClass_setPriority(void** param_0, JKRHeap* param_1, J2DScreen* par #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JSUMemoryInputStream::~JSUMemoryInputStream() { +// asm JSUMemoryInputStream::~JSUMemoryInputStream() { +extern "C" asm void __dt__20JSUMemoryInputStreamFv() { nofralloc #include "asm/d/pane/d_pane_class/__dt__20JSUMemoryInputStreamFv.s" } @@ -553,7 +475,8 @@ asm JSUMemoryInputStream::~JSUMemoryInputStream() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JSURandomInputStream::~JSURandomInputStream() { +// asm JSURandomInputStream::~JSURandomInputStream() { +extern "C" asm void __dt__20JSURandomInputStreamFv() { nofralloc #include "asm/d/pane/d_pane_class/__dt__20JSURandomInputStreamFv.s" } @@ -563,7 +486,8 @@ asm JSURandomInputStream::~JSURandomInputStream() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JSUIosBase::~JSUIosBase() { +// asm JSUIosBase::~JSUIosBase() { +extern "C" asm void __dt__10JSUIosBaseFv() { nofralloc #include "asm/d/pane/d_pane_class/__dt__10JSUIosBaseFv.s" } diff --git a/src/d/pane/d_pane_class_alpha.cpp b/src/d/pane/d_pane_class_alpha.cpp index 08141634ec..7d4cd81f0e 100644 --- a/src/d/pane/d_pane_class_alpha.cpp +++ b/src/d/pane/d_pane_class_alpha.cpp @@ -8,53 +8,6 @@ #include "dolphin/types.h" // -// Types: -// - -struct JKRHeap { - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE548 */ void free(void*); -}; - -struct JKRExpHeap {}; - -struct J2DScreen {}; - -struct J2DPane { - /* 802F7A8C */ void getFirstChildPane(); - /* 802F7AC4 */ void getNextChildPane(); -}; - -struct CPaneMgrAlphaMorf { - /* 80255C68 */ CPaneMgrAlphaMorf(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80255CAC */ ~CPaneMgrAlphaMorf(); - /* 80255D48 */ void initiateAlphaMorf(); - /* 80255DD0 */ void setBackupAlpha(); - /* 80255E28 */ void setAlphaMorfRate(f32); - /* 80255E98 */ void childPaneBackupAlpha(J2DPane*); - /* 80255F28 */ void childPaneSetAlphaMorf(J2DPane*, f32); -}; - -struct CPaneMgrAlpha { - /* 802553EC */ CPaneMgrAlpha(); - /* 802553FC */ CPaneMgrAlpha(J2DScreen*, u64, u8, JKRExpHeap*); - /* 8025546C */ ~CPaneMgrAlpha(); - /* 802554E0 */ void initiateAlpha(J2DPane*, JKRExpHeap*); - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 8025564C */ void isVisible(); - /* 80255658 */ void rateCalc(s16, s16, u8); - /* 80255758 */ void setAlpha(u8); - /* 802557D0 */ void setAlphaRate(f32); - /* 80255828 */ void getAlphaRate(); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); - /* 80255964 */ void alphaAnimeLoop(s16, u8, u8, u8); - /* 80255A60 */ void childPaneCount(J2DPane*); - /* 80255ACC */ void childPaneGetAlpha(J2DPane*); - /* 80255B5C */ void childPaneSetAlpha(J2DPane*, u8); -}; - -// // Forward References: // diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a1aaf05966..2c64592c5f 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -19,10 +19,6 @@ struct mDoGph_gInf_c { static u8 mFrameBufferTimg[4]; }; -struct JKRHeap { - /* 802CE500 */ void free(void*, JKRHeap*); -}; - struct mDoDvdThd_toMainRam_c { /* 80016394 */ void create(char const*, u8, JKRHeap*); }; @@ -124,11 +120,6 @@ struct dPa_modelPcallBack { /* 80050038 */ ~dPa_modelPcallBack(); }; -struct J3DModelData { - /* 803260CC */ void syncJ3DSysPointers() const; - /* 803260F8 */ void syncJ3DSysFlags() const; -}; - struct dPa_modelEcallBack { struct model_c { /* 8004A608 */ void set(J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, u8); @@ -311,12 +302,6 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct JKRSolidHeap {}; - -struct JKRExpHeap { - /* 802CEE2C */ void create(u32, JKRHeap*, bool); -}; - struct J3DUClipper { /* 802738FC */ void clip(f32 const (*)[4], Vec, f32) const; }; @@ -325,31 +310,12 @@ struct J3DTexture { /* 8031204C */ void loadGX(u16, _GXTexMapID) const; }; -struct J3DSys { - /* 8031073C */ void reinitGX(); -}; - struct J3DShape { /* 80315300 */ void loadPreDrawSetting() const; static u8 sOldVcdVatCmd[4]; }; -struct J3DAnmTexPattern { - /* 8032B09C */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct J3DAnmTevRegKey { - /* 8032B87C */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct J3DMaterialTable { - /* 8032F6F8 */ void removeTexNoAnimator(J3DAnmTexPattern*); - /* 8032F880 */ void removeTevRegAnimator(J3DAnmTevRegKey*); - /* 8032FBC8 */ void entryTexNoAnimator(J3DAnmTexPattern*); - /* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*); -}; - // // Forward References: // @@ -524,7 +490,6 @@ extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */]; // External References: // -extern "C" void OSReport(); extern "C" void mDoExt_getArchiveHeap__Fv(); extern "C" void mDoExt_createSolidHeapFromGame__FUlUl(); extern "C" void mDoExt_createSolidHeapFromSystem__FUlUl(); @@ -607,32 +572,17 @@ extern "C" void removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void entryTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); -extern "C" void PSMTXMultVec(); -extern "C" void GXSetVtxDesc(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); extern "C" void GXInvalidateVtxCache(); extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXFlush(); -extern "C" void GXBegin(); extern "C" void GXEnableTexOffsets(); extern "C" void GXSetCullMode(); extern "C" void GXSetCoPlanar(); extern "C" void GXSetChanAmbColor(); extern "C" void GXSetChanMatColor(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetBlendMode(); extern "C" void GXSetColorUpdate(); extern "C" void GXSetAlphaUpdate(); extern "C" void GXSetZMode(); @@ -677,7 +627,6 @@ extern "C" u8 s_o_id__8dPa_name[28]; extern "C" u8 mClipper__14mDoLib_clipper[92]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" extern u32 g_whiteColor; extern "C" extern u32 __float_nan; diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index 1767dbbd9b..d7bbf88c78 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -24,10 +24,6 @@ struct daSus_c { /* 800314D4 */ void check(fopAc_ac_c*); }; -struct dScnKy_env_light_c { - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - struct dRes_info_c {}; struct dRes_control_c { @@ -58,21 +54,6 @@ struct dDemo_actor_c { /* 8003815C */ void setActor(fopAc_ac_c*); }; -struct J3DModel {}; - -struct J3DAnmTevRegKey { - /* 8032B87C */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct J3DAnmTextureSRTKey { - /* 8032B1D4 */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct J3DMaterialTable { - /* 8032FCC4 */ void entryTexMtxAnimator(J3DAnmTextureSRTKey*); - /* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*); -}; - // // Forward References: // diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index b4a20a12c5..ec8875c295 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -4,6 +4,7 @@ // // #include "f_op/f_op_msg_mng.h" +#include "JSystem/J2DGraph/J2DPane.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -49,10 +50,6 @@ struct JMath { static u8 sincosTable_[65536]; }; -struct JKRHeap { - /* 802CE448 */ void destroy(); -}; - struct JKRExpHeap { /* 802CEE2C */ void create(u32, JKRHeap*, bool); }; @@ -63,10 +60,6 @@ struct J2DPicture { /* 80020368 */ void insert(char const*, u8, f32); }; -struct J2DPane { - /* 80020158 */ void setAlpha(u8); -}; - // // Forward References: // |
