d_kankyo_wether / d_eye_hl (#178)

* d_eye_hl / d_kankyo_wether wip

* more d_kankyo_wether + format

* remove asm

* some d_kankyo wip

* fix dccs vtable

* some m_Do_graphic / d_meter2_draw work
This commit is contained in:
TakaRikka
2022-01-25 12:24:14 -08:00
committed by GitHub
parent 6f4d068f1d
commit 612f26c132
241 changed files with 3715 additions and 9755 deletions
+3 -4
View File
@@ -3324,7 +3324,6 @@ extern "C" u8 BaseY__4cXyz[12];
extern "C" u8 BaseZ__4cXyz[12];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 g_whiteColor;
extern "C" u16 m_branchId__7dDemo_c[1 + 3 /* padding */];
extern "C" extern u8 data_80450B38[4];
extern "C" f32 mGroundY__11fopAcM_gc_c;
@@ -3582,10 +3581,10 @@ void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s1
mDoMtx_stack_c::YrotM(-mCollisionRot.y);
concatMagneBootInvMtx();
mDoMtx_stack_c::transM(-tmp.x, -tmp.y, -tmp.z);
PSMTXConcat(*mDoMtx_stack_c::get(), param_0, *mDoMtx_stack_c::get());
PSMTXCopy(*mDoMtx_stack_c::get(), param_0);
PSMTXConcat(mDoMtx_stack_c::get(), param_0, mDoMtx_stack_c::get());
PSMTXCopy(mDoMtx_stack_c::get(), param_0);
if (param_4 != 0) {
PSMTXCopy(*mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
PSMTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
}
}
+2 -2
View File
@@ -172,7 +172,7 @@ int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_S
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
mDoMtx_stack_c::YrotM(mCollisionRot.y);
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
} else {
PSMTXCopy(*param_4, field_0x56c);
}
@@ -222,7 +222,7 @@ bool dBgS_MoveBgActor::MoveBGExecute() {
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
mDoMtx_stack_c::YrotM(mCollisionRot.y);
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
} else {
PSMTXCopy(*tmp, field_0x56c);
}
+19 -175
View File
@@ -3,7 +3,8 @@
// Translation Unit: d/cc/d_cc_s
//
//#include "d/cc/d_cc_s.h"
#include "d/cc/d_cc_s.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -11,139 +12,12 @@
// Types:
//
struct csXyz {};
struct mDoMtx_stack_c {
/* 8000CF0C */ void ZXYrotS(csXyz const&);
static u8 now[48];
};
struct fopAc_ac_c {};
struct cXyz {
static u8 BaseZ[12];
};
struct dPa_control_c {
/* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
};
struct dJntCol_c {
/* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
};
struct dCcD_GObjInf {
/* 800843DC */ void ChkAtNoGuard();
};
struct cCcD_GObjInf {};
struct cCcD_ShapeAttr {
struct Shape {};
};
struct cCcD_Stts {
/* 80263934 */ void PlusCcMove(f32, f32, f32);
/* 80263970 */ void PlusDmg(int);
};
struct cCcD_GStts {};
struct cCcD_Obj {
/* 80263A48 */ void GetAc();
};
struct dCcD_GStts {};
struct dCcS {
/* 8002FF40 */ ~dCcS();
/* 80085ED4 */ void Ct();
/* 80085F08 */ void Dt();
/* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*);
/* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*);
/* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
/* 800861B4 */ void ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*,
cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80086240 */ void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*,
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80086360 */ void GetRank(u8);
/* 80086404 */ bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*);
/* 8008640C */ void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32);
/* 80086754 */ void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*);
/* 8008685C */ void ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*,
dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*,
dCcD_GStts*, cXyz*, bool);
/* 80086AC0 */ void SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*,
cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*,
cCcD_GStts*, cXyz*);
/* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
/* 80086FBC */ void chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*,
fopAc_ac_c*);
/* 800872A8 */ void MoveAfterCheck();
/* 800872AC */ void DrawAfter();
/* 800872B0 */ void Move();
/* 800872D0 */ void Draw();
/* 8008730C */ void MassClear();
/* 80087330 */ void ChkAtTgMtrlHit(u8, u8);
/* 8008734C */ void ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*,
cCcD_GStts*);
static u8 m_mtrl_hit_tbl[64];
};
struct dCcMassS_Mng {
/* 800855E4 */ void Ct();
/* 80085CF0 */ void Clear();
};
struct dCcD_GAtTgCoCommonBase {
/* 80083678 */ void SetHitApid(unsigned int);
/* 80083718 */ void SetEffCounterTimer();
/* 80083748 */ void ChkEffCounter();
};
struct cM3dGSphS {};
struct cM3dGSph {
/* 8026F6A8 */ void Set(cM3dGSphS const&);
};
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
/* 8026EFA4 */ ~cM3dGCps();
/* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
};
struct cM3dGAab {};
struct cCcS {
/* 80264A94 */ void Ct();
/* 80264B60 */ void Dt();
/* 80265CCC */ void Move();
/* 80265D30 */ void DrawClear();
/* 80265DF4 */ void SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*);
};
struct cCcD_SphAttr {
/* 8008721C */ ~cCcD_SphAttr();
/* 802646E0 */ void CalcAabBox();
};
struct cCcD_DivideInfo {
/* 80263368 */ void Chk(cCcD_DivideInfo const&) const;
};
struct cCcD_DivideArea {
/* 802636A0 */ void CalcDivideInfoOverArea(cCcD_DivideInfo*, cM3dGAab const&);
};
struct cCcD_CpsAttr {
/* 80263FC4 */ void CalcAabBox();
};
struct Vec {};
//
// Forward References:
//
@@ -211,13 +85,6 @@ extern "C" void Set__8cM3dGCpsFRC4cXyzRC4cXyzf();
extern "C" void Set__8cM3dGSphFRC9cM3dGSphS();
extern "C" void cLib_distanceAngleS__Fss();
extern "C" void __dl__FPv();
extern "C" void PSMTXMultVecSR();
extern "C" void PSVECAdd();
extern "C" void PSVECSubtract();
extern "C" void PSVECScale();
extern "C" void PSVECNormalize();
extern "C" void PSVECMag();
extern "C" void PSVECDotProduct();
extern "C" void _savegpr_17();
extern "C" void _savegpr_23();
extern "C" void _savegpr_24();
@@ -237,33 +104,22 @@ extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__12cCcD_CpsAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 BaseZ__4cXyz[12];
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
//
// Declarations:
//
/* 80085ED4-80085F08 080814 0034+00 0/0 1/1 0/0 .text Ct__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Ct() {
nofralloc
#include "asm/d/cc/d_cc_s/Ct__4dCcSFv.s"
void dCcS::Ct() {
cCcS::Ct();
mMass_Mng.Ct();
}
#pragma pop
/* 80085F08-80085F28 080848 0020+00 0/0 1/1 0/0 .text Dt__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Dt() {
nofralloc
#include "asm/d/cc/d_cc_s/Dt__4dCcSFv.s"
void dCcS::Dt() {
cCcS::Dt();
}
#pragma pop
/* ############################################################################################## */
/* 80452778-8045277C 000D78 0004+00 3/3 0/0 0/0 .sdata2 @3705 */
@@ -311,7 +167,7 @@ void dCcS::CalcTgPlusDmg(cCcD_Obj* param_0, cCcD_Obj* param_1, cCcD_Stts* param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
asm bool dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
cCcD_GObjInf const* param_3, cCcD_Stts* param_4,
cCcD_Stts* param_5, cCcD_GStts* param_6, cCcD_GStts* param_7) {
nofralloc
@@ -581,7 +437,8 @@ asm void dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_SphAttr::~cCcD_SphAttr() {
// asm cCcD_SphAttr::~cCcD_SphAttr() {
extern "C" asm void __dt__12cCcD_SphAttrFv() {
nofralloc
#include "asm/d/cc/d_cc_s/__dt__12cCcD_SphAttrFv.s"
}
@@ -598,34 +455,21 @@ void dCcS::DrawAfter() {
}
/* 800872B0-800872D0 081BF0 0020+00 0/0 1/1 0/0 .text Move__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Move() {
nofralloc
#include "asm/d/cc/d_cc_s/Move__4dCcSFv.s"
void dCcS::Move() {
cCcS::Move();
}
#pragma pop
/* 800872D0-8008730C 081C10 003C+00 0/0 1/1 0/0 .text Draw__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Draw() {
nofralloc
#include "asm/d/cc/d_cc_s/Draw__4dCcSFv.s"
void dCcS::Draw() {
DrawAfter();
DrawClear();
mMass_Mng.Clear();
}
#pragma pop
/* 8008730C-80087330 081C4C 0024+00 0/0 0/0 1/1 .text MassClear__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::MassClear() {
nofralloc
#include "asm/d/cc/d_cc_s/MassClear__4dCcSFv.s"
void dCcS::MassClear() {
mMass_Mng.Clear();
}
#pragma pop
/* ############################################################################################## */
/* 803AC3A4-803AC3E4 0094C4 0040+00 1/1 0/0 0/0 .data m_mtrl_hit_tbl__4dCcS */
@@ -651,7 +495,7 @@ asm void dCcS::ChkAtTgMtrlHit(u8 param_0, u8 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
asm bool dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
cCcD_GStts* param_2, cCcD_GStts* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts.s"
+3 -9
View File
@@ -230,7 +230,6 @@ extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__15cCcD_DivideInfoFv();
extern "C" extern char const* const d_com_d_com_inf_game__stringBase0;
extern "C" extern u32 g_whiteColor;
extern "C" extern u32 g_saftyWhiteColor;
//
@@ -1327,7 +1326,7 @@ dTimer_c* dComIfG_play_c::getTimerPtr() {
}
void dComIfG_inf_c::ct() {
field_0x1ddf8 = 0xFF;
mFadeBrightness = 255;
play.ct();
mWorldDark = 0;
field_0x1ddfa = -1;
@@ -1348,12 +1347,7 @@ SECTION_DEAD static char const* const stringBase_80379043 = "F_SP102";
#pragma pop
/* 80450600-80450604 000080 0004+00 0/0 18/18 2/2 .sdata g_clearColor */
SECTION_SDATA extern u8 g_clearColor[4] = {
0x00,
0x00,
0x00,
0x00,
};
SECTION_SDATA extern GXColor g_clearColor = {0, 0, 0, 0};
/* 80450604-80450608 000084 0004+00 1/1 10/10 15/15 .sdata g_blackColor */
SECTION_SDATA extern GXColor g_blackColor = {0, 0, 0, 255};
@@ -2591,7 +2585,7 @@ asm void dComIfGs_staffroll_next_go_check() {
/* ############################################################################################## */
/* 80450608-8045060C 000088 0004+00 0/0 6/6 11/11 .sdata g_whiteColor */
SECTION_SDATA extern u32 g_whiteColor = 0xFFFFFFFF;
SECTION_SDATA extern GXColor g_whiteColor = {255, 255, 255, 255};
/* 8045060C-80450610 00008C 0004+00 0/0 3/3 3/3 .sdata g_saftyWhiteColor */
SECTION_SDATA extern u32 g_saftyWhiteColor = 0xA0A0A0FF;
+4 -3
View File
@@ -4,6 +4,7 @@
//
#include "d/d_bomb.h"
#include "d/d_procname.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
@@ -14,13 +15,13 @@ bool dBomb_c::checkStateCarry() {
}
bool dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 4);
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 4);
}
bool dBomb_c::checkWaterBomb(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && daNbomb_c::checkWaterBomb());
return (fopAcM_GetName(&mActor) == PROC_NBOMB && daNbomb_c::checkWaterBomb());
}
bool dBomb_c::checkInsectBombMove(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 7);
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 7);
}
+1 -1
View File
@@ -184,7 +184,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
/* ############################################################################################## */
/* 8037B140-8037B180 0077A0 0040+00 1/1 0/0 0/0 .rodata black_tex */
SECTION_RODATA static u8 const black_tex[64] = {
SECTION_RODATA static u8 const black_tex[64] ALIGN_DECL(32) = {
0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+76 -43
View File
@@ -4,7 +4,10 @@
//
#include "d/d_eye_hl.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/os/OS.h"
#include "dolphin/types.h"
//
@@ -26,52 +29,45 @@ extern "C" extern u8 struct_80450FBC[4];
// External References:
//
extern "C" void OSReport_Error();
extern "C" void getName__10JUTNameTabCFUs();
extern "C" void _savegpr_27();
extern "C" void _restgpr_27();
extern "C" void strcmp();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_envHIO[68];
//
// Declarations:
//
/* ############################################################################################## */
/* 8037B100-8037B100 007760 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037B100 =
"目のハイライトテクスチャーがありません!\n";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8037B12A = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
#pragma pop
/* 8009C964-8009CA28 0972A4 00C4+00 0/0 2/2 0/0 .text entry__8dEyeHL_cFP12J3DModelDataPCc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_c::entry(J3DModelData* param_0, char const* param_1) {
nofralloc
#include "asm/d/d_eye_hl/entry__8dEyeHL_cFP12J3DModelDataPCc.s"
void dEyeHL_c::entry(J3DModelData* p_mData, char const* name) {
J3DTexture* tex = p_mData->getTexture();
JUTNameTab* tex_nametab = p_mData->getTextureName();
if (tex != NULL && tex_nametab != NULL) {
for (u16 i = 0; i < tex->getNum(); i++) {
const char* tex_name = tex_nametab->getName(i);
if (tex_name != NULL && !strcmp(tex_name, name)) {
m_timg = tex->getResTIMG(i);
m_lodBias = m_timg->LODBias;
dEyeHL_mng_c::entry(this);
return;
}
}
}
// "Eye Highlight Texture doesn't exist!\n"
OSReport_Error("目のハイライトテクスチャーがありません!\n");
}
#pragma pop
/* 8009CA28-8009CA48 097368 0020+00 0/0 3/3 0/0 .text remove__8dEyeHL_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_c::remove() {
nofralloc
#include "asm/d/d_eye_hl/remove__8dEyeHL_cFv.s"
void dEyeHL_c::remove() {
dEyeHL_mng_c::remove(this);
}
#pragma pop
/* ############################################################################################## */
/* 80450FA8-80450FB0 0004A8 0004+04 3/3 0/0 0/0 .sbss m_obj__12dEyeHL_mng_c */
u8 dEyeHL_mng_c::m_obj[4 + 4 /* padding */];
dEyeHL_mng_c* dEyeHL_mng_c::m_obj;
/* 80452C10-80452C14 001210 0004+00 1/1 0/0 0/0 .sdata2 @3862 */
SECTION_SDATA2 static f32 lit_3862 = 2.0f;
@@ -79,7 +75,30 @@ SECTION_SDATA2 static f32 lit_3862 = 2.0f;
/* 80452C14-80452C18 001214 0004+00 1/1 0/0 0/0 .sdata2 @3863 */
SECTION_SDATA2 static f32 lit_3863 = 45.0f;
inline BOOL dComIfGp_event_runCheck() {
return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
/* 8009CA48-8009CB14 097388 00CC+00 0/0 1/1 0/0 .text update__12dEyeHL_mng_cFv */
// small issue with cLib_minMaxLimit
#ifdef NONMATCHING
void dEyeHL_mng_c::update() {
dEyeHL_mng_c* obj = m_obj;
if (g_envHIO[0x10] == 0 || !dComIfGp_event_runCheck()) {
for (; obj != NULL; obj = obj->m_next) {
obj->m_timg->LODBias = obj->m_lodBias;
}
} else {
s16 tmp = 2.0f * (dComIfGd_getView()->field_0xd0 - 45.0f);
for (; obj != NULL; obj = obj->m_next) {
ResTIMG* timg = obj->m_timg;
timg->LODBias = obj->m_lodBias + tmp;
timg->LODBias = cLib_minMaxLimit(timg->LODBias, (s16)-400, (s16)399);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -88,27 +107,41 @@ asm void dEyeHL_mng_c::update() {
#include "asm/d/d_eye_hl/update__12dEyeHL_mng_cFv.s"
}
#pragma pop
#endif
/* 8009CB14-8009CB34 097454 0020+00 1/1 0/0 0/0 .text entry__12dEyeHL_mng_cFP8dEyeHL_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_mng_c::entry(dEyeHL_c* param_0) {
nofralloc
#include "asm/d/d_eye_hl/entry__12dEyeHL_mng_cFP8dEyeHL_c.s"
void dEyeHL_mng_c::entry(dEyeHL_c* i_obj) {
if (m_obj != NULL) {
m_obj->m_pre = i_obj;
}
i_obj->m_next = m_obj;
m_obj = i_obj;
}
#pragma pop
/* 8009CB34-8009CB88 097474 0054+00 1/1 0/0 0/0 .text remove__12dEyeHL_mng_cFP8dEyeHL_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
nofralloc
#include "asm/d/d_eye_hl/remove__12dEyeHL_mng_cFP8dEyeHL_c.s"
void dEyeHL_mng_c::remove(dEyeHL_c* i_obj) {
if (i_obj->m_timg != NULL) {
dEyeHL_mng_c* prev = i_obj->m_pre;
dEyeHL_mng_c* next = i_obj->m_next;
if (next != NULL) {
next->m_pre = prev;
}
if (prev == NULL) {
m_obj = next;
} else {
prev->m_next = next;
next = m_obj;
}
i_obj->m_timg->LODBias = i_obj->m_lodBias;
i_obj->m_timg = NULL;
i_obj->m_pre = NULL;
i_obj->m_next = NULL;
}
}
#pragma pop
/* ############################################################################################## */
/* 80450FB0-80450FB8 -00001 0008+00 0/0 2/2 0/0 .sbss None */
@@ -116,7 +149,7 @@ asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
/* 80450FB1 0001+00 data_80450FB1 None */
/* 80450FB2 0006+00 data_80450FB2 None */
extern u8 struct_80450FB0[8];
u8 struct_80450FB0[8];
u8 struct_80450FB0[8] ALIGN_DECL(8);
/* 80450FB8-80450FBC -00001 0004+00 0/0 1/1 0/0 .sbss None */
/* 80450FB8 0001+00 data_80450FB8 None */
+7 -4
View File
@@ -8,6 +8,8 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
//
// Types:
//
@@ -42,12 +44,8 @@ extern "C" void dKyw_wether_move_draw__Fv();
extern "C" void dKyw_wether_draw__Fv();
extern "C" void dKy_FiveSenses_fullthrottle_dark__Fv();
extern "C" void framework__10Z2EnvSeMgrFv();
extern "C" void OSGetTime();
extern "C" void OSTicksToCalendarTime();
extern "C" void strcmp();
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 g_mEnvSeMgr[780];
@@ -55,6 +53,11 @@ extern "C" extern u8 g_mEnvSeMgr[780];
// Declarations:
//
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
void dKankyo_DayProc() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
static bool dKyeff_Draw(dKyeff_c* ptr) {
dKyw_wether_draw();
return true;
+454 -343
View File
File diff suppressed because it is too large Load Diff
+99 -80
View File
@@ -66,76 +66,101 @@ extern "C" extern u8 g_env_light[4880];
//
/* 803A8E98-803A9198 005FB8 0300+00 1/1 0/0 0/0 .data l_kydata_BloomInf_tbl */
SECTION_DATA static u8 l_kydata_BloomInf_tbl[768] = {
// Each is 0xc long; All u8's
0x01, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF, 0x54, //
0x00, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF, 0x54, //
0x01, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00, //
0x01, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
0x01, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B, 0x78, //
0x01, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D, //
0x00, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, //
0x00, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32, //
0x00, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82, //
0x00, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1, 0x80, //
0x01, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79, 0x60, //
0x00, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x11, //
0x00, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A, 0xBB, //
0x00, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E, //
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
static dKydata_BloomInfo_c l_kydata_BloomInf_tbl[BLOOMINFO_MAX] = {
{BLOOM_SOFT, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00},
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60}, // Twilight
{BLOOM_CLEAR, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
0x60}, // Twilight Weak
{BLOOM_CLEAR, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Senses
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Morning 0)
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Morning 1)
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Afternoon)
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Evening 0)
{BLOOM_SOFT, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Evening 1)
{BLOOM_SOFT, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Night)
{BLOOM_CLEAR, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Bulblin Camp Fire
{BLOOM_SOFT, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Palace of Twilight
{BLOOM_SOFT, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // demo28_03
{BLOOM_SOFT, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Golden Bug Glow
{BLOOM_SOFT, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Cloud Sea
{BLOOM_CLEAR, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF,
0x54}, // Zora's Domain Outside (Twilight)
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF,
0x54}, // Zora's Domain Inside (Twilight)
{BLOOM_SOFT, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00}, // Senses-like
{BLOOM_SOFT, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF,
0xFF}, // Sacred Grove Time Travel
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Sewers
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C,
0xC8}, // Flashback Scene
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7,
0x49}, // Twilight Gate
{BLOOM_SOFT, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Underwater (Normal)
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Dungeon Normal Weak
{BLOOM_SOFT, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Dungeon Normal Strong
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Lava
{BLOOM_CLEAR, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Goron Mines - No Lava
{BLOOM_SOFT, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B,
0x78}, // Sacred Grove Past
{BLOOM_SOFT, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Castle
{BLOOM_CLEAR, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D}, // Empty
{BLOOM_CLEAR, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64}, // Empty
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32}, // Empty
{BLOOM_CLEAR, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1,
0x80}, // Demo: Flashback Scene
{BLOOM_SOFT, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79,
0x60}, // Demo: Fake Twilight
{BLOOM_CLEAR, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
0x11}, // Demo: demo32_03
{BLOOM_CLEAR, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A,
0xBB}, // Demo: Twilight Flashback Scene
{BLOOM_CLEAR, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF,
0x00}, // Demo: demo31_20
{BLOOM_CLEAR, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
0x60}, // Demo: Lava W
{BLOOM_CLEAR, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E}, // Empty
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF}, // Empty
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Empty
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8}, // Empty
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
};
/* 803A9198-803A92A8 -00001 0110+00 1/1 0/0 0/0 .data l_darkworld_tbl */
static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
static dKydata_darkworldInfo_c l_darkworld_tbl[34] = {
{"R_SP30", UNCLEARABLE}, // UNUSED - Unknown Room
{"T_SP05", TEST}, // UNUSED - E3 2005 Warp Test (Old)
{"T_SP05A", TEST}, // UNUSED - Ito Warp Test
@@ -172,13 +197,8 @@ static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
{"D_SB10", FARON}, // Faron Woods Cave
};
// TODO: wrong type
// Only thing I can easily find: the byte is written to 8042DD4D and it seems to control the Y
// pos(?) (essentially brightness) of the soft spotlight that is on wolf Link during twilight? Will
// need more investigation before can be changed to appropriate type. Leaving this way since the
// stageNames are already converted.
/* 803A92A8-803A93C8 -00001 0120+00 1/1 0/0 0/0 .data l_light_size_tbl */
static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
static dKydata_lightsizeInfo_c l_light_size_tbl[36] = {
{"R_SP01", 0}, // Ordon Interiors
{"R_SP108", 0}, // Coro's Lantern Shop
{"F_SP109", 2}, // Kakariko Village
@@ -217,9 +237,8 @@ static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
{"D_SB10", 0}, // Faron Woods Cave
};
// TODO: wrong type
/* 803A93C8-803A9410 -00001 0048+00 1/1 0/0 0/0 .data l_light_size_tbl_tw */
static dKyd_darkworldTblEntry l_light_size_tbl_tw[9] = {
static dKydata_lightsizeInfo_c l_light_size_tbl_tw[9] = {
{"F_SP109", 2}, // Kakariko Village
{"F_SP110", 2}, // Death Mountain
{"R_SP209", 2}, // Sanctuary Basement
@@ -445,23 +464,23 @@ void* dKyd_maple_col_getp() {
}
/* 80056A70-80056A7C 0513B0 000C+00 0/0 4/4 0/0 .text dKyd_darkworld_tbl_getp__Fv */
dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp() {
dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp() {
return l_darkworld_tbl;
}
/* 80056A7C-80056A88 0513BC 000C+00 0/0 1/1 0/0 .text dKyd_light_size_tbl_getp__Fv */
void* dKyd_light_size_tbl_getp() {
dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp() {
return l_light_size_tbl;
}
/* 80056A88-80056A94 0513C8 000C+00 0/0 1/1 0/0 .text dKyd_light_tw_size_tbl_getp__Fv */
void* dKyd_light_tw_size_tbl_getp() {
dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp() {
return l_light_size_tbl_tw;
}
/* 80056A94-80056AA8 0513D4 0014+00 0/0 1/1 0/0 .text dKyd_BloomInf_tbl_getp__Fi */
void* dKyd_BloomInf_tbl_getp(int tblIdx) {
return &l_kydata_BloomInf_tbl[tblIdx * 0xC];
dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int tblIdx) {
return &l_kydata_BloomInf_tbl[tblIdx];
}
/* 8037A1C0-8037A1C0 006820 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
File diff suppressed because it is too large Load Diff
+56 -54
View File
@@ -17,14 +17,13 @@ struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dMpath_n {
struct dTexObjAggregate_c {
/* 8003C85C */ void create();
/* 8003C8F4 */ void remove();
/* 8003D740 */ ~dTexObjAggregate_c() {remove();};
/* 8003D740 */ ~dTexObjAggregate_c() { remove(); };
inline dTexObjAggregate_c() {
for(int i = 0;i<7;i++) {
for (int i = 0; i < 7; i++) {
mTexObjs[i] = NULL;
}
}
@@ -34,7 +33,7 @@ struct dMpath_n {
static dTexObjAggregate_c m_texObjAgg;
};
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c)==28);
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28);
//
// Forward References:
@@ -245,42 +244,43 @@ asm void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
*/
void dRenderingFDAmap_c::drawBack() const {
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGBA,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
GXColor* colorPtr = getBackColor();
GXSetTevColor(GX_TEVREG0,*colorPtr);
GXBegin(GX_QUADS,GX_VTXFMT0,4);
GXPosition3f32(-field_0x8,-field_0xc,0);
GXPosition3f32(field_0x8,-field_0xc,0);
GXPosition3f32(field_0x8,field_0xc,0);
GXPosition3f32(-field_0x8,field_0xc,0);
GXSetTevColor(GX_TEVREG0, *colorPtr);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(-field_0x8, -field_0xc, 0);
GXPosition3f32(field_0x8, -field_0xc, 0);
GXPosition3f32(field_0x8, field_0xc, 0);
GXPosition3f32(-field_0x8, field_0xc, 0);
GXEnd();
}
/* 8003D188-8003D320 037AC8 0198+00 1/0 8/0 0/0 .text preRenderingMap__18dRenderingFDAmap_cFv */
void dRenderingFDAmap_c::preRenderingMap() {
GXSetViewport(0.0f,0.0f,field_0x1c,field_0x1e,0.0f,1.0f);
GXSetScissor(0,0,field_0x1c,field_0x1e);
GXSetViewport(0.0f, 0.0f, field_0x1c, field_0x1e, 0.0f, 1.0f);
GXSetScissor(0, 0, field_0x1c, field_0x1e);
GXSetNumChans(1);
GXSetNumTevStages(1);
GXSetChanCtrl(GX_COLOR0A0,GX_FALSE,GX_SRC_REG,GX_SRC_REG,GX_LIGHT_NULL,GX_DF_NONE,GX_AF_NONE);
GXSetAlphaCompare(GX_ALWAYS,0,GX_AOP_OR,GX_ALWAYS,0);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
GX_AF_NONE);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetZCompLoc(GX_TRUE);
GXSetZMode(GX_FALSE,GX_ALWAYS,GX_FALSE);
GXSetBlendMode(GX_BM_NONE,GX_BL_SRC_ALPHA,GX_BL_INV_SRC_ALPHA,GX_LO_CLEAR);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXColor color = g_clearColor;
GXSetFog(GX_FOG_NONE,0.0f,0.0f,0.0f,0.0f,color);
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, color);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_FALSE);
GXSetNumIndStages(0);
GXSetClipMode(GX_FALSE);
setTevSettingNonTextureDirectColor();
float right = field_0x8*0.5f;
float top = field_0xc*0.5f;
float right = field_0x8 * 0.5f;
float top = field_0xc * 0.5f;
Mtx44 matrix;
C_MTXOrtho(matrix,top,-top,-right,right,0.0f,10000.0f);
GXSetProjection(matrix,GX_ORTHOGRAPHIC);
GXLoadPosMtxImm(g_mDoMtx_identity,GX_PNMTX0);
C_MTXOrtho(matrix, top, -top, -right, right, 0.0f, 10000.0f);
GXSetProjection(matrix, GX_ORTHOGRAPHIC);
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
GXSetCurrentMtx(0);
drawBack();
}
@@ -308,53 +308,55 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* line) {
s32 width = getDecorationLineWidth(line->unk1);
if (width<=0) {
if (width <= 0) {
return;
}
setTevSettingIntensityTextureToCI();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
GXSetVtxDesc(GX_VA_TEX0,GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_POS_XY,GX_F32,0);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_TEX0,GX_POS_XYZ,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
GXSetNumTevStages(1);
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6],GX_TEXMAP0);
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6], GX_TEXMAP0);
u16* unk = line->unk4;
s32 unk2 = line->unk2;
GXSetLineWidth(width,GX_TO_ONE);
GXSetPointSize(width,GX_TO_ONE);
GXColor* lineColorPtr = getDecoLineColor(line->unk0&0x3f,line->unk1);
GXColor lineColor = *lineColorPtr;
GXSetTevColor(GX_TEVREG0,lineColor);
lineColor.r = lineColor.r-4;
GXSetTevColor(GX_TEVREG1,lineColor);
for (int i = 0; i<unk2; unk++,i++) {
GXSetLineWidth(width, GX_TO_ONE);
GXSetPointSize(width, GX_TO_ONE);
GXColor* lineColorPtr = getDecoLineColor(line->unk0 & 0x3f, line->unk1);
GXColor lineColor = *lineColorPtr;
GXSetTevColor(GX_TEVREG0, lineColor);
lineColor.r = lineColor.r - 4;
GXSetTevColor(GX_TEVREG1, lineColor);
for (int i = 0; i < unk2; unk++, i++) {
#ifndef HYRULE_FIELD_SPEEDHACK
if(i<unk2-1) {
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_ZERO,GX_CC_ZERO,GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXBegin(GX_LINESTRIP,GX_VTXFMT0,2);
if (i < unk2 - 1) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 2);
GXPosition1x16(unk[0]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
GXPosition1x16(unk[1]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
}
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_KONST,GX_CC_TEXC,GX_CC_C1);
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_TEXA);
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
#endif
GXBegin(GX_POINTS,GX_VTXFMT0,1);
GXBegin(GX_POINTS, GX_VTXFMT0, 1);
GXPosition1x16(unk[0]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
GXEnd();
}
setTevSettingNonTextureDirectColor();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGB,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_F32, 0);
}
/* 8003D68C-8003D6B8 037FCC 002C+00 1/0 6/0 0/0 .text getDecoLineColor__18dRenderingFDAmap_cFii */
+2 -2
View File
@@ -937,7 +937,7 @@ asm void J2DTextBox::getBlack() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DPicture::getWhite() const {
asm JUtility::TColor J2DPicture::getWhite() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getWhite__10J2DPictureCFv.s"
}
@@ -947,7 +947,7 @@ asm void J2DPicture::getWhite() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DPicture::getBlack() const {
asm JUtility::TColor J2DPicture::getBlack() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getBlack__10J2DPictureCFv.s"
}
-1
View File
@@ -263,7 +263,6 @@ extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" extern void* __vt__10CSTControl[4];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_clearColor[4];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
+578 -145
View File
@@ -6,7 +6,9 @@
#include "d/meter/d_meter2_draw.h"
#include "JSystem/J2DGraph/J2DAnmLoader.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_kantera_icon_meter.h"
#include "d/meter/d_meter_HIO.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -14,14 +16,6 @@
// Types:
//
struct dKantera_icon_c {
/* 801AE938 */ dKantera_icon_c();
/* 801AEB7C */ void setAlphaRate(f32);
/* 801AEBA0 */ void setPos(f32, f32);
/* 801AEBF4 */ void setScale(f32, f32);
/* 801AEC44 */ void setNowGauge(u16, u16);
};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
@@ -231,57 +225,46 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
// Declarations:
//
inline bool dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) {
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, param_1);
}
/* ############################################################################################## */
/* 80398258-80398280 0248B8 0028+00 4/4 0/0 0/0 .rodata a_tag$3949 */
SECTION_RODATA static u8 const a_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x61, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74,
static u64 const a_tag[5] = {
'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4', 'cont_at',
};
COMPILER_STRIP_GATE(0x80398258, &a_tag);
/* 80398280-803982A8 0248E0 0028+00 0/1 0/0 0/0 .rodata b_tag$3950 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const b_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x62, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74,
static u64 const b_tag[5] = {
'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt',
};
COMPILER_STRIP_GATE(0x80398280, &b_tag);
#pragma pop
/* 803982A8-803982D0 024908 0028+00 0/1 0/0 0/0 .rodata z_tag$3951 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const z_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x7A, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x72, 0x74,
static u64 const z_tag[5] = {
'cont_zt1', 'cont_zt2', 'cont_zt3', 'cont_zt4', 'cont_rt',
};
COMPILER_STRIP_GATE(0x803982A8, &z_tag);
#pragma pop
/* 803982D0-803982F8 024930 0028+00 0/1 0/0 0/0 .rodata x_tag$3952 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const x_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x78, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x35,
static u64 const x_tag[5] = {
'cont_xt1', 'cont_xt2', 'cont_xt3', 'cont_xt4', 'cont_xt5',
};
COMPILER_STRIP_GATE(0x803982D0, &x_tag);
#pragma pop
/* 803982F8-80398320 024958 0028+00 0/1 0/0 0/0 .rodata y_tag$3953 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const y_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x79, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x35,
static u64 const y_tag[5] = {
'cont_yt1', 'cont_yt2', 'cont_yt3', 'cont_yt4', 'cont_yt5',
};
COMPILER_STRIP_GATE(0x803982F8, &y_tag);
#pragma pop
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -307,17 +290,9 @@ SECTION_DEAD static char const* const stringBase_803989BF = "";
#pragma pop
/* 803BF328-803BF350 -00001 0028+00 1/1 0/0 0/0 .data bmg_filename$3954 */
SECTION_DATA static void* bmg_filename[10] = {
(void*)&d_meter_d_meter2_draw__stringBase0,
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0xB),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x16),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x21),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x2C),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x37),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x42),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x4D),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x58),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x63),
SECTION_DATA static char* bmg_filename[10] = {
"zel_00.bmg", "zel_01.bmg", "zel_02.bmg", "zel_03.bmg", "zel_04.bmg",
"zel_05.bmg", "zel_06.bmg", "zel_07.bmg", "zel_08.bmg", "zel_99.bmg",
};
/* 803BF350-803BF554 01C470 0204+00 1/1 0/0 0/0 .data i_action_num$8471 */
@@ -527,6 +502,91 @@ SECTION_SDATA2 static f32 lit_4185 = 20.0f;
/* 8020FAB4-802102F8 20A3F4 0844+00 0/0 1/1 0/0 .text __ct__13dMeter2Draw_cFP10JKRExpHeap
*/
#ifdef NONMATCHING
dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* p_heap) {
mp_heap = p_heap;
JKRHeap* heap = mDoExt_setCurrentHeap(dComIfGp_getMsgExpHeap());
void* msg_res = JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
dMeter2Info_setMsgResource(msg_res);
void* stg_msg_res = JKRGetTypeResource('ROOT', bmg_filename[dMsgObject_getGroupID()],
dComIfGp_getMsgDtArchive(1));
dMeter2Info_setStageMsgResource(stg_msg_res);
void* msg_unit_res = JKRGetTypeResource('ROOT', "zel_unit.bmg", dComIfGp_getMsgDtArchive(0));
dMeter2Info_setMsgUnitResource(msg_unit_res);
mDoExt_setCurrentHeap(heap);
mpScreen = new J2DScreen();
mpScreen->setPriority("zelda_game_image.blo", 0x20000, dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpScreen);
mpScreen->search('ju_ring5')->hide();
field_0x73c = 0.0f;
for (int i = 0; i < 2; i++) {
mpKanteraMeter[i] = new dKantera_icon_c();
}
mpKanteraScreen = new J2DScreen();
mpKanteraScreen->setPriority("zelda_game_image_kantera.blo", 0x20000,
dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpKanteraScreen);
mpPikariScreen = new J2DScreen();
mpPikariScreen->setPriority("zelda_icon_pikari.blo", 0x20000, dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpPikariScreen);
mpPikariParent = new CPaneMgr(mpPikariScreen, 'pika_n', 0, NULL);
field_0x548 = ((J2DPicture*)mpPikariScreen->search('pika00'))->getBlack();
field_0x54c = ((J2DPicture*)mpPikariScreen->search('pika00'))->getWhite();
OSInitFastCast();
void* pikari_bck = JKRGetNameResource("zelda_icon_pikari.bck", dComIfGp_getMain2DArchive());
mPikariBck = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(pikari_bck);
playPikariBckAnimation(1.0f);
void* pikari_bpk = JKRGetNameResource("zelda_icon_pikari.bpk", dComIfGp_getMain2DArchive());
mPikariBpk = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(pikari_bpk);
mPikariBpk->searchUpdateMaterialID(mpPikariScreen);
playPikariBpkAnimation(1.0f);
mpParent = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
for (int i = 0; i < 5; i++) {
mpAText[i] = new CPaneMgr(mpScreen, a_tag[i], 0, NULL);
((J2DTextBox*)mpAText[i]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpAText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
((J2DTextBox*)mpAText[i]->getPanePtr())->setCharSpace(g_drawHIO.mAButtonFontSpacing);
mpBText[i] = new CPaneMgr(mpScreen, b_tag[i], 0, NULL);
((J2DTextBox*)mpBText[i]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpBText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][2] = new CPaneMgr(mpScreen, z_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][0] = new CPaneMgr(mpScreen, x_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][1] = new CPaneMgr(mpScreen, y_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFont(mDoExt_getMesgFont());
}
J2DTextBox::TFontSize font_size = {lit_4184, lit_4185};
for (int i = 0; i < 5; i++) {
((J2DTextBox*)mpAText[i]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpBText[i]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFontSize(font_size);
}
init();
field_0xa8 = 0;
field_0x1e4 = 0;
field_0x2fc = 0;
field_0x36c = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -535,36 +595,437 @@ asm dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* param_0) {
#include "asm/d/meter/d_meter2_draw/__ct__13dMeter2Draw_cFP10JKRExpHeap.s"
}
#pragma pop
#endif
/* 802102F8-80210FB0 20AC38 0CB8+00 1/0 0/0 0/0 .text __dt__13dMeter2Draw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeter2Draw_c::~dMeter2Draw_c() {
nofralloc
#include "asm/d/meter/d_meter2_draw/__dt__13dMeter2Draw_cFv.s"
dMeter2Draw_c::~dMeter2Draw_c() {
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgResource());
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgUnitResource());
dComIfGp_getItemIconArchive()->removeResourceAll();
delete mpScreen;
mpScreen = NULL;
delete mpKanteraScreen;
mpKanteraScreen = NULL;
for (int i = 0; i < 2; i++) {
delete mpKanteraMeter[i];
mpKanteraMeter[i] = NULL;
}
delete mpParent;
mpParent = NULL;
delete mpPikariScreen;
mpPikariScreen = NULL;
delete mpPikariParent;
mpPikariParent = NULL;
delete mPikariBck;
mPikariBck = NULL;
delete mPikariBpk;
mPikariBpk = NULL;
for (int i = 0; i < 5; i++) {
delete mpAText[i];
mpAText[i] = NULL;
delete mpBText[i];
mpBText[i] = NULL;
for (int j = 0; j < 3; j++) {
delete mpXYText[i][j];
mpXYText[i][j] = NULL;
}
}
delete mpLifeParent;
mpLifeParent = NULL;
for (int i = 0; i < 20; i++) {
delete mpLifeParts[i];
mpLifeParts[i] = NULL;
delete mpHeartMask[i];
mpHeartMask[i] = NULL;
delete mpHeartBase[i];
mpHeartBase[i] = NULL;
delete mpLifeTexture[i][0];
mpLifeTexture[i][0] = NULL;
delete mpLifeTexture[i][1];
mpLifeTexture[i][1] = NULL;
}
delete mpBigHeart;
mpBigHeart = NULL;
delete mpMagicParent;
mpMagicParent = NULL;
delete mpMagicBase;
mpMagicBase = NULL;
delete mpMagicFrameL;
mpMagicFrameL = NULL;
delete mpMagicFrameR;
mpMagicFrameR = NULL;
for (int i = 0; i < 3; i++) {
delete field_0x53c[i];
field_0x53c[i] = NULL;
}
delete mpMagicMeter;
mpMagicMeter = NULL;
for (int i = 0; i < 2; i++) {
delete mpSIParent[i];
mpSIParent[i] = NULL;
}
delete mpLightDropParent;
mpLightDropParent = NULL;
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 3; j++) {
if (mpSIParts[i][j] != NULL) {
delete mpSIParts[i][j];
mpSIParts[i][j] = NULL;
}
}
}
delete mpRupeeKeyParent;
mpRupeeKeyParent = NULL;
for (int i = 0; i < 4; i++) {
delete mpRupeeTexture[i][0];
mpRupeeTexture[i][0] = NULL;
delete mpRupeeTexture[i][1];
mpRupeeTexture[i][1] = NULL;
}
for (int i = 0; i < 3; i++) {
delete mpRupeeParent[i];
mpRupeeParent[i] = NULL;
}
for (int i = 0; i < 5; i++) {
delete mpKeyTexture[i];
mpKeyTexture[i] = NULL;
}
delete mpKeyParent;
mpKeyParent = NULL;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
mp_heap->free(mpItemBTex[i][j]);
mpItemBTex[i][j] = NULL;
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
mp_heap->free(mpItemXYTex[i][j][k]);
mpItemXYTex[i][j][k] = NULL;
}
}
}
delete mpItemB;
mpItemB = NULL;
mpItemBPane = NULL;
for (int i = 0; i < 2; i++) {
if (mpItemXY[i] != NULL) {
delete mpItemXY[i];
mpItemXY[i] = NULL;
}
}
delete mpItemR;
mpItemR = NULL;
for (int i = 0; i < 3; i++) {
mpItemXYPane[i] = NULL;
}
delete mpLightB;
mpLightB = NULL;
for (int i = 0; i < 3; i++) {
if (mpLightXY[i] != NULL) {
delete mpLightXY[i];
mpLightXY[i] = NULL;
}
}
delete mpBTextA;
mpBTextA = NULL;
delete mpBTextB;
mpBTextB = NULL;
for (int i = 0; i < 3; i++) {
if (mpBTextXY[i] != NULL) {
delete mpBTextXY[i];
mpBTextXY[i] = NULL;
}
}
delete mpTextA;
mpTextA = NULL;
delete mpTextB;
mpTextB = NULL;
for (int i = 0; i < 3; i++) {
delete mpTextXY[i];
mpTextXY[i] = NULL;
}
delete mpTextI;
mpTextI = NULL;
delete mpTextM;
mpTextM = NULL;
for (int i = 0; i < 5; i++) {
if (mpJujiI[i] != NULL) {
delete mpJujiI[i];
mpJujiI[i] = NULL;
}
if (mpJujiM[i] != NULL) {
delete mpJujiM[i];
mpJujiM[i] = NULL;
}
}
delete mpButtonParent;
mpButtonParent = NULL;
delete mpButtonA;
mpButtonA = NULL;
delete mpButtonB;
mpButtonB = NULL;
delete mpButtonMidona;
mpButtonMidona = NULL;
for (int i = 0; i < 3; i++) {
delete mpButtonXY[i];
mpButtonXY[i] = NULL;
}
if (mpUzu != NULL) {
delete mpUzu;
mpUzu = NULL;
}
delete mpButtonCrossParent;
mpButtonCrossParent = NULL;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
if (mpItemNumTex[i][j] != NULL) {
delete mpItemNumTex[i][j];
mpItemNumTex[i][j] = NULL;
}
}
}
for (int i = 0; i < 3; i++) {
if (field_0x9c[i] != NULL) {
delete field_0x9c[i];
field_0x9c[i] = NULL;
}
}
}
#pragma pop
/* 80210FB0-8021135C 20B8F0 03AC+00 1/1 0/0 0/0 .text init__13dMeter2Draw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::init() {
nofralloc
#include "asm/d/meter/d_meter2_draw/init__13dMeter2Draw_cFv.s"
void dMeter2Draw_c::init() {
f32 tmp_0 = FLOAT_LABEL(lit_4182);
field_0x608 = tmp_0;
field_0x60c = tmp_0;
for (int i = 0; i < 3; i++) {
field_0x620[i] = tmp_0;
field_0x610[i] = tmp_0;
}
f32 tmp_0_1 = FLOAT_LABEL(lit_4182);
field_0x61c = tmp_0_1;
for (int i = 0; i < 16; i++) {
field_0x62c[i] = tmp_0_1;
field_0x66c[i] = tmp_0_1;
}
field_0x759 = 0;
field_0x75a = 0;
for (int i = 0; i < 3; i++) {
field_0x75c[i] = 0;
}
field_0x75f = 0;
field_0x756 = -1;
field_0x760 = 0;
int j = 0;
f32 tmp_0_3 = FLOAT_LABEL(lit_4182);
for (; j < 3; j++) {
field_0x6ac[j] = tmp_0_3;
field_0x6b8[j] = tmp_0_3;
field_0x6c4[j] = tmp_0_3;
field_0x6d0[j] = tmp_0_3;
}
f32 tmp_0_4 = FLOAT_LABEL(lit_4182);
field_0x6dc = tmp_0_4;
field_0x6e0 = tmp_0_4;
field_0x6e4 = tmp_0_4;
field_0x6e8 = tmp_0_4;
field_0x6ec = tmp_0_4;
field_0x6f0 = tmp_0_4;
mHUDScale = g_drawHIO.mHUDScale;
mHUDAlpha = g_drawHIO.mHUDAlpha;
mButtonsPosX = tmp_0_4;
mButtonsPosY = tmp_0_4;
mButtonsScale = lit_4183;
field_0x78c = g_drawHIO.mButtonDisplayBackScale;
field_0x790 = tmp_0_4;
mLifeGaugeHeartAlpha = g_drawHIO.mLifeGaugeHeartAlpha;
mLifeGaugeBaseAlpha = g_drawHIO.mLifeGaugeBaseAlpha;
mHeartAlpha = g_drawHIO.mHeartAlpha;
mLargeHeartAlpha = g_drawHIO.mLargeHeartAlpha;
field_0x7a4 = tmp_0_4;
mMagicMeterAlpha = g_drawHIO.mMagicMeterAlpha;
mMagicMeterFrameAlpha = g_drawHIO.mMagicMeterFrameAlpha;
field_0x7b0 = tmp_0_4;
mLanternMeterAlpha = g_drawHIO.mLanternMeterAlpha;
mLanternMeterFrameAlpha = g_drawHIO.mLanternMeterFrameAlpha;
field_0x7bc = tmp_0_4;
mOxygenMeterAlpha = g_drawHIO.mOxygenMeterAlpha;
mOxygenMeterFrameAlpha = g_drawHIO.mOxygenMeterFrameAlpha;
field_0x7c8 = tmp_0_4;
field_0x861 = 0;
field_0x860 = 0;
field_0x7cc = g_drawHIO.mHUDAlpha;
field_0x7d0 = g_drawHIO.mRupeeKeyAlpha;
mRupeeAlpha = g_drawHIO.mRupeeAlpha;
mRupeeFrameAlpha = g_drawHIO.mRupeeFrameAlpha;
mRupeeCountAlpha = g_drawHIO.mRupeeCountAlpha;
field_0x7e0 = g_drawHIO.mHUDAlpha;
field_0x7e4 = g_drawHIO.mRupeeKeyAlpha;
mKeyAlpha = g_drawHIO.mKeyAlpha;
mKeyNumAlpha = g_drawHIO.mKeyNumAlpha;
field_0x7f0 = g_drawHIO.mHUDAlpha;
mMainHUDButtonsAlpha = g_drawHIO.mMainHUDButtonsAlpha;
mButtonDisplayBackAlpha = g_drawHIO.mButtonDisplayBackAlpha;
mAButtonAlpha = g_drawHIO.mAButtonAlpha;
mBButtonAlpha = g_drawHIO.mBButtonAlpha;
mXButtonAlpha = g_drawHIO.mXButtonAlpha;
mYButtonAlpha = g_drawHIO.mYButtonAlpha;
field_0x80c = g_drawHIO.field_0x168;
field_0x810 = g_drawHIO.mZButtonAlpha;
for (int i = 0; i < 2; i++) {
mBItemBaseAlpha[i] = g_drawHIO.mBItemBaseAlpha[i];
mXButtonItemBaseAlpha[i] = g_drawHIO.mXButtonItemBaseAlpha[i];
mYButtonItemBaseAlpha[i] = g_drawHIO.mYButtonItemBaseAlpha[i];
field_0x82c[i] = g_drawHIO.field_0x298[i];
}
mZButtonItemBaseAlpha = g_drawHIO.mZButtonItemBaseAlpha;
mButtonBaseAlpha = g_drawHIO.mButtonBaseAlpha;
mAButtonFontSpacing = g_drawHIO.mAButtonFontSpacing;
mDPadButtonAlpha = g_drawHIO.mDPadButtonAlpha;
mDPadButtonITEMAlpha = g_drawHIO.mDPadButtonITEMAlpha;
mDPadButtonMAPAlpha = g_drawHIO.mDPadButtonMAPAlpha;
field_0x84c = g_drawHIO.mAButtonFontColor.r;
field_0x84d = g_drawHIO.mAButtonFontColor.g;
field_0x84e = g_drawHIO.mAButtonFontColor.b;
field_0x84f = g_drawHIO.mAButtonFontColor.a;
field_0x850 = g_drawHIO.mBButtonFontColor.r;
field_0x851 = g_drawHIO.mBButtonFontColor.g;
field_0x852 = g_drawHIO.mBButtonFontColor.b;
field_0x853 = g_drawHIO.mBButtonFontColor.a;
field_0x854 = g_drawHIO.field_0x2f0.r;
field_0x855 = g_drawHIO.field_0x2f0.g;
field_0x856 = g_drawHIO.field_0x2f0.b;
field_0x857 = g_drawHIO.field_0x2f0.a;
field_0x858 = g_drawHIO.mZButtonFontColor.r;
field_0x859 = g_drawHIO.mZButtonFontColor.g;
field_0x85a = g_drawHIO.mZButtonFontColor.b;
field_0x85b = g_drawHIO.mZButtonFontColor.a;
field_0x85c = g_drawHIO.mXYButtonFontColor.r;
field_0x85d = g_drawHIO.mXYButtonFontColor.g;
field_0x85e = g_drawHIO.mXYButtonFontColor.b;
field_0x85f = g_drawHIO.mXYButtonFontColor.a;
setItemParamX(0);
setItemParamY(0);
setItemParamZ(0);
setItemParamB(0);
initLife();
initMagic();
initLightDrop();
initRupeeKey();
initButton();
initButtonCross();
field_0x772 = 0;
}
#pragma pop
/* 8021135C-8021151C 20BC9C 01C0+00 0/0 1/1 0/0 .text exec__13dMeter2Draw_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::exec(u32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/exec__13dMeter2Draw_cFUl.s"
void dMeter2Draw_c::exec(u32 param_0) {
if (mHUDScale != g_drawHIO.mHUDScale) {
mHUDScale = g_drawHIO.mHUDScale;
mpParent->scale(g_drawHIO.mHUDScale, g_drawHIO.mHUDScale);
}
if (mHUDAlpha != g_drawHIO.mHUDAlpha) {
mHUDAlpha = g_drawHIO.mHUDAlpha;
mpParent->setAlphaRate(g_drawHIO.mHUDAlpha);
}
if (param_0 & 0x1000000) {
if (mButtonsPosX != g_drawHIO.mRingHUDButtonsPosX ||
mButtonsPosY != g_drawHIO.mRingHUDButtonsPosY) {
mButtonsPosX = g_drawHIO.mRingHUDButtonsPosX;
mButtonsPosY = g_drawHIO.mRingHUDButtonsPosY;
mpButtonParent->paneTrans(g_drawHIO.mRingHUDButtonsPosX, g_drawHIO.mRingHUDButtonsPosY);
}
if (mButtonsScale != g_drawHIO.mRingHUDButtonsScale) {
mButtonsScale = g_drawHIO.mRingHUDButtonsScale;
mpButtonParent->scale(g_drawHIO.mRingHUDButtonsScale, g_drawHIO.mRingHUDButtonsScale);
}
} else {
if (mButtonsPosX != g_drawHIO.mMainHUDButtonsPosX ||
mButtonsPosY != g_drawHIO.mMainHUDButtonsPosY) {
mButtonsPosX = g_drawHIO.mMainHUDButtonsPosX;
mButtonsPosY = g_drawHIO.mMainHUDButtonsPosY;
mpButtonParent->paneTrans(g_drawHIO.mMainHUDButtonsPosX, g_drawHIO.mMainHUDButtonsPosY);
}
if (mButtonsScale != g_drawHIO.mMainHUDButtonsScale) {
mButtonsScale = g_drawHIO.mMainHUDButtonsScale;
mpButtonParent->scale(g_drawHIO.mMainHUDButtonsScale, g_drawHIO.mMainHUDButtonsScale);
}
}
}
#pragma pop
/* ############################################################################################## */
/* 80454890-80454894 002E90 0004+00 1/1 0/0 0/0 .sdata2 @4921 */
@@ -704,6 +1165,7 @@ SECTION_DEAD static char const* const stringBase_80398A0A = "zelda_game_image_sa
#pragma pop
/* 80211E64-80212190 20C7A4 032C+00 1/1 0/0 0/0 .text initMagic__13dMeter2Draw_cFv */
// matches with literals
#ifdef NONMATCHING
void dMeter2Draw_c::initMagic() {
field_0x550 = 0.0f;
@@ -714,21 +1176,22 @@ void dMeter2Draw_c::initMagic() {
mpMagicFrameL = new CPaneMgr(mpKanteraScreen, 'm_w_l_n', 2, NULL);
mpMagicFrameR = new CPaneMgr(mpKanteraScreen, 'm_w_r_n', 2, NULL);
mpMagicMeter = new CPaneMgr(mpKanteraScreen, 'mm_00', 0, NULL);
OSInitFastCast();
void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk",
dComIfGp_getMain2DArchive());
field_0x53c = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[0]->searchUpdateMaterialID(mpKanteraScreen);
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk",
dComIfGp_getMain2DArchive());
field_0x540 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x540->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[1]->searchUpdateMaterialID(mpKanteraScreen);
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk",
dComIfGp_getMain2DArchive());
field_0x544 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x544->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[2] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[2]->searchUpdateMaterialID(mpKanteraScreen);
field_0x558 = 0.0f;
mpMagicParent->setAlphaRate(0.0f);
@@ -751,10 +1214,9 @@ void dMeter2Draw_c::initMagic() {
g_drawHIO.mMagicMeterPosY + offsetY);
setAlphaMagicChange(true);
u16 oil = dComIfGs_getOil();
u16 max_oil = dComIfGs_getMaxOil();
drawKantera(max_oil, oil, g_drawHIO.mLanternMeterPosX + offsetX,
g_drawHIO.mLanternMeterPosY + (g_drawHIO.mNoMagicPosY + offsetY));
drawKantera((u16)dComIfGs_getMaxOil(), (u16)dComIfGs_getOil(),
g_drawHIO.mLanternMeterPosX + offsetX,
g_drawHIO.mNoMagicPosY + (g_drawHIO.mLanternMeterPosY + offsetY));
setAlphaKanteraChange(true);
}
#else
@@ -908,35 +1370,28 @@ asm void dMeter2Draw_c::initButtonCross() {
#pragma pop
/* 80213CEC-80213D6C 20E62C 0080+00 3/3 0/0 0/0 .text playPikariBckAnimation__13dMeter2Draw_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::playPikariBckAnimation(f32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/playPikariBckAnimation__13dMeter2Draw_cFf.s"
void dMeter2Draw_c::playPikariBckAnimation(f32 frame) {
mpPikariParent->getPanePtr()->setAnimation(mPikariBck);
mPikariBck->setFrame(frame);
mpPikariParent->getPanePtr()->animationTransform();
mpPikariParent->getPanePtr()->setAnimation((J2DAnmTransformKey*)NULL);
}
#pragma pop
/* 80213D6C-80213E3C 20E6AC 00D0+00 1/1 0/0 0/0 .text
* setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor.s"
void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* p_anmcolor) {
mpPikariScreen->search('pika00')->setAnimation(p_anmcolor);
mpPikariScreen->search('moya00')->setAnimation(p_anmcolor);
mpPikariScreen->search('moyabs')->setAnimation(p_anmcolor);
}
#pragma pop
/* 80213E3C-80213E94 20E77C 0058+00 3/3 0/0 0/0 .text playPikariBpkAnimation__13dMeter2Draw_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::playPikariBpkAnimation(f32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/playPikariBpkAnimation__13dMeter2Draw_cFf.s"
void dMeter2Draw_c::playPikariBpkAnimation(f32 frame) {
setPikariBpkAnimation(mPikariBpk);
mPikariBpk->setFrame(frame);
mpPikariScreen->animation();
setPikariBpkAnimation(NULL);
}
#pragma pop
/* 80213E94-80213FF0 20E7D4 015C+00 1/1 0/0 0/0 .text
* playOxygenBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
@@ -1414,14 +1869,12 @@ asm void dMeter2Draw_c::drawButtonC(u8 param_0, bool param_1) {
#pragma pop
/* 802179C0-80217A10 212300 0050+00 1/1 1/1 0/0 .text drawButtonS__13dMeter2Draw_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::drawButtonS(u8 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/drawButtonS__13dMeter2Draw_cFUc.s"
void dMeter2Draw_c::drawButtonS(u8 param_0) {
getActionString(param_0, 1, &field_0x767);
if (param_0 != 0) {
field_0x767 = 7;
}
}
#pragma pop
/* 80217A10-80217AB4 212350 00A4+00 0/0 1/1 0/0 .text drawButtonBin__13dMeter2Draw_cFUc
*/
@@ -1671,14 +2124,10 @@ asm void dMeter2Draw_c::setButtonIconAlpha(int param_0, u8 param_1, u32 param_2,
/* 8021A29C-8021A2F4 214BDC 0058+00 1/1 0/0 0/0 .text getNumberTexture__13dMeter2Draw_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getNumberTexture(int param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/getNumberTexture__13dMeter2Draw_cFi.s"
ResTIMG* dMeter2Draw_c::getNumberTexture(int i) {
return (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG',
dMeter2Info_getNumberTextureName(i));
}
#pragma pop
/* ############################################################################################## */
/* 80430158-80430178 05CE78 0020+00 1/1 0/0 0/0 .bss i_text_buf$8454 */
@@ -1795,14 +2244,9 @@ asm void dMeter2Draw_c::drawKanteraMeter(u8 param_0, f32 param_1) {
/* 8021B0C8-8021B104 215A08 003C+00 0/0 3/3 0/0 .text isButtonVisible__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::isButtonVisible() {
nofralloc
#include "asm/d/meter/d_meter2_draw/isButtonVisible__13dMeter2Draw_cFv.s"
u8 dMeter2Draw_c::isButtonVisible() {
return (mpButtonParent->getAlphaRate() == FLOAT_LABEL(lit_4182)) ^ 1;
}
#pragma pop
/* ############################################################################################## */
/* 804548E8-804548EC 002EE8 0004+00 2/2 0/0 0/0 .sdata2 @8992 */
@@ -1986,14 +2430,13 @@ asm void dMeter2Draw_c::setItemParamB(u8 param_0) {
/* 8021BB6C-8021BBB4 2164AC 0048+00 1/1 0/0 0/0 .text getFishingType__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getFishingType() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getFishingType__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getFishingType() {
if (dMeter2Info_isGameStatus(1) && getCanoeFishing()) {
return true;
} else {
return false;
}
}
#pragma pop
/* ############################################################################################## */
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -2010,14 +2453,14 @@ SECTION_DEAD static char const* const pad_80398A77 = "";
/* 8021BBB4-8021BC24 2164F4 0070+00 2/2 1/1 0/0 .text getCanoeFishing__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getCanoeFishing() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getCanoeFishing__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getCanoeFishing() {
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
g_dComIfG_gameInfo.play.mPlayer[0]->checkCanoeRide()) {
return TRUE;
} else {
return FALSE;
}
}
#pragma pop
/* 8021BC24-8021BC54 216564 0030+00 0/0 1/1 0/0 .text getCameraSubject__13dMeter2Draw_cFv
*/
@@ -2043,14 +2486,9 @@ asm void dMeter2Draw_c::getItemSubject() {
/* 8021BCAC-8021BCC0 2165EC 0014+00 0/0 1/1 0/0 .text getPlayerSubject__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getPlayerSubject() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getPlayerSubject__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getPlayerSubject() {
return dComIfGp_checkPlayerStatus0(0, 0x8000000);
}
#pragma pop
/* 8021BCC0-8021BDD0 216600 0110+00 2/2 2/2 0/0 .text isBButtonShow__13dMeter2Draw_cFb */
#pragma push
@@ -2064,14 +2502,9 @@ asm void dMeter2Draw_c::isBButtonShow(bool param_0) {
/* 8021BDD0-8021BDDC 216710 000C+00 0/0 1/1 0/0 .text getButtonTimer__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getButtonTimer() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getButtonTimer__13dMeter2Draw_cFv.s"
s16 dMeter2Draw_c::getButtonTimer() {
return mpButtonParent->getAlphaTimer();
}
#pragma pop
/* ############################################################################################## */
/* 803988B8-803988D0 024F18 0018+00 0/0 0/0 0/0 .rodata tag$7759 */
+8 -8
View File
@@ -1011,38 +1011,38 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
mBItemBasePosY[i] = 0.0f;
}
mBItemBaseAlpha = 0.5f;
field_0x23c = 0.5f;
mBItemBaseAlpha[0] = 0.5f;
mBItemBaseAlpha[1] = 0.5f;
mXButtonItemBaseScale = 1.5f;
mXButtonItemBasePosX = 14.0f;
mXButtonItemBasePosY = -12.0f;
mXButtonItemBaseAlpha = 0.5f;
mXButtonItemBaseAlpha[0] = 0.5f;
mXButtonItemBaseNoItemScale = 1.5f;
mXButtonItemBaseNoItemPosX = 0.0f;
mXButtonItemBaseNoItemPosY = 0.0f;
mXButtonItemBaseNoItemAlpha = 1.0f;
mXButtonItemBaseAlpha[1] = 1.0f;
mYButtonItemBaseScale = 1.5f;
mYButtonItemBasePosX = -15.0f;
mYButtonItemBasePosY = -12.0f;
mYButtonItemBaseAlpha = 0.5f;
mYButtonItemBaseAlpha[0] = 0.5f;
mYButtonItemBaseNoItemScale = 1.5f;
mYButtonItemBaseNoItemPosX = 0.0f;
mYButtonItemBaseNoItemPosY = 0.0f;
mYButtonItemBaseNoItemAlpha = 0.5f;
mYButtonItemBaseAlpha[1] = 0.5f;
field_0x280 = 1.5f;
field_0x288 = 0.0f;
field_0x290 = 6.0f;
field_0x298 = 0.5f;
field_0x298[0] = 0.5f;
field_0x284 = 1.0f;
field_0x28c = 0.0f;
field_0x294 = 4.0f;
field_0x29c = 1.0f;
field_0x298[1] = 1.0f;
mZButtonItemBaseScale = 1.0f;
mZButtonItemBasePosX = 0.0f;
+2 -2
View File
@@ -447,7 +447,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
static u8 s_groupID[2 + 6 /* padding */];
/* 80232A3C-80232A44 -00001 0008+00 0/0 0/0 0/0 .text dMsgObject_getGroupID__Fv */
s32 dMsgObject_getGroupID() {
s16 dMsgObject_getGroupID() {
return (s32) * (s16*)(&s_groupID);
}
@@ -1802,7 +1802,7 @@ asm void dMsgObject_c::setProcessID(unsigned int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgObject_c::getActor() {
asm fopAc_ac_c* dMsgObject_c::getActor() {
nofralloc
#include "asm/d/msg/d_msg_object/getActor__12dMsgObject_cFv.s"
}
+1 -1
View File
@@ -202,7 +202,7 @@ SECTION_SDATA2 static f32 lit_3721[1 + 1 /* padding */] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::getAlphaRate() {
asm f32 CPaneMgrAlpha::getAlphaRate() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/getAlphaRate__13CPaneMgrAlphaFv.s"
}
+5 -5
View File
@@ -1906,11 +1906,11 @@ SECTION_SDATA2 static u32 lit_5199 = 0xFFFFFFFF;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
f32 param_12) {
asm u32 dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
f32 param_12) {
nofralloc
#include "asm/d/particle/d_particle/func_8004CA90.s"
}