summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2023-09-26 19:26:04 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2023-09-26 19:26:04 -0400
commitd39c604b83c17cf100fc97f58ea25c8a3d999b7a (patch)
treed6f66c32ac7167944abd85e26cf34b3b946ebc5f /src
parent338a1603594bc7418a002110f0fe15096e99bc1d (diff)
Fix various regswaps caused by casting
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_nh.cpp2
-rw-r--r--src/d/actor/d_a_obj_Ygush00.cpp12
-rw-r--r--src/d/actor/d_a_obj_barrier.cpp78
-rw-r--r--src/d/d_bg_s_movebg_actor.cpp12
-rw-r--r--src/d/d_kankyo.cpp8
-rw-r--r--src/d/d_kankyo_wether.cpp11
6 files changed, 57 insertions, 66 deletions
diff --git a/src/d/actor/d_a_nh.cpp b/src/d/actor/d_a_nh.cpp
index 8a8f0bd6..09db1911 100644
--- a/src/d/actor/d_a_nh.cpp
+++ b/src/d/actor/d_a_nh.cpp
@@ -549,7 +549,7 @@ void daNh_c::playBrkAnm() {
/* 800FACE8-800FAE1C .text draw__6daNh_cFv */
BOOL daNh_c::draw() {
- g_env_light.settingTevStruct(0, &current.pos, &mTevStr);
+ g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &mTevStr);
g_env_light.setLightTevColorType(mpModel, &mTevStr);
J3DModelData* modelData = mpModel->getModelData();
diff --git a/src/d/actor/d_a_obj_Ygush00.cpp b/src/d/actor/d_a_obj_Ygush00.cpp
index 631871a2..107a0955 100644
--- a/src/d/actor/d_a_obj_Ygush00.cpp
+++ b/src/d/actor/d_a_obj_Ygush00.cpp
@@ -62,13 +62,9 @@ bool daObjYgush00_c::create_heap() {
static u32 btk_table[] = { 0x0E, 0x0D, 0x0D, 0x0D };
static u32 bck_table[] = { 0x06, 0x05, 0x05, 0x05 };
- J3DModelData * pModelData;
bool ret = true;
- // TODO regswap
- // r29 -> r30: g_dComIfG_gameInfo.mResControl.mObjectInfo / btkRet
- // r30 -> r29: pModelData
- pModelData = (J3DModelData *)dComIfG_getObjectRes(l_arcname, mdl_table[mType]);
+ void* pModelData = dComIfG_getObjectRes(l_arcname, mdl_table[mType]);
J3DAnmTextureSRTKey * pBtk = (J3DAnmTextureSRTKey *)dComIfG_getObjectRes(l_arcname, btk_table[mType]);
J3DAnmTransform * pBck = (J3DAnmTransform *)dComIfG_getObjectRes(l_arcname, bck_table[mType]);
@@ -76,9 +72,9 @@ bool daObjYgush00_c::create_heap() {
JUT_ASSERT(207, 0);
ret = false;
} else {
- mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000222);
- s32 btkRet = mBtkAnm.init(pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
- s32 bckRet = mBckAnm.init(pModelData, pBck, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
+ mpModel = mDoExt_J3DModel__create((J3DModelData*)pModelData, 0x80000, 0x11000222);
+ s32 btkRet = mBtkAnm.init((J3DModelData*)pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
+ s32 bckRet = mBckAnm.init((J3DModelData*)pModelData, pBck, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
if (!mpModel || !btkRet || !bckRet)
ret = false;
diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp
index a5476382..69d80200 100644
--- a/src/d/actor/d_a_obj_barrier.cpp
+++ b/src/d/actor/d_a_obj_barrier.cpp
@@ -173,12 +173,12 @@ static cXyz l_ef_scale;
// NONMATCHING - load order flipped
void daObjBarrier_c::init_mtx() {
mAnm.mpModel->setBaseScale(mScale);
- mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(shape_angle.y);
mAnm.mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
mDoMtx_stack_c::scaleM(mScale);
- mDoMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
+ cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 0000018C-000001B0 .text solidHeapCB__14daObjBarrier_cFP10fopAc_ac_c */
@@ -187,22 +187,23 @@ int daObjBarrier_c::solidHeapCB(fopAc_ac_c* i_this) {
}
/* 000001B0-00000340 .text init__18daObjBarrier_anm_cFv */
-// NONMATCHING - reg alloc
bool daObjBarrier_anm_c::init() {
bool rt = true;
- J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 10);
- J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 18);
- J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 14);
+ void* modelData = dComIfG_getObjectRes(l_arcName, 10);
+ void* pbtk = dComIfG_getObjectRes(l_arcName, 18);
+ void* pbrk = dComIfG_getObjectRes(l_arcName, 14);
if (modelData == NULL || pbtk == NULL || pbrk == NULL) {
JUT_PANIC(407);
rt = false;
} else {
- mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x1000200);
- BOOL btk_init =
- mBtk.init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
- BOOL brk_init =
- mBrk.init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
+ mpModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x1000200);
+ BOOL btk_init = mBtk.init(
+ (J3DModelData*)modelData, (J3DAnmTextureSRTKey*)pbtk,
+ TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
+ BOOL brk_init = mBrk.init(
+ (J3DModelData*)modelData, (J3DAnmTevRegKey*)pbrk,
+ TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
if (mpModel == NULL || !btk_init || !brk_init) {
rt = false;
@@ -315,11 +316,10 @@ void daObjBarrier_c::brkAnmPlay() {
}
/* 00000884-000009F0 .text break_start_wait_proc__14daObjBarrier_cFv */
-// NONMATCHING - regswap
void daObjBarrier_c::break_start_wait_proc() {
// 0x3980: Saw Hyrule 3 Electric Barrier Demo
if (dComIfGs_isEventBit(0x3980) == true) {
- daPy_py_c* player_p = daPy_getPlayerActorClass();
+ daPy_py_c* player_p = (daPy_py_c*)daPy_getPlayerActorClass();
if ((player_p->current.pos - current.pos).absXZ() >= 8800.0f &&
dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX)
@@ -419,7 +419,7 @@ bool daObjBarrier_ef_c::checkHitActor(fopAc_ac_c* i_checkActor) {
}
/* 00000D5C-000011B8 .text birth__17daObjBarrier_ef_cFP10fopAc_ac_cf4cXyz4cXyzi */
-// NONMATCHING - regalloc
+// NONMATCHING
void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_center, cXyz i_hitPos,
int i_isNoEff) {
if (!i_isNoEff || !checkHitActor(i_hitActor)) {
@@ -442,7 +442,7 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
if (effect_idx == -1) {
f32 var_f1 = -1.0f;
- for (int i = 0; i < 4; i++) {
+ for (int i = 0; i < 4; i++) { // nonmatching
if (mBtk[i].getFrame() > var_f1) {
var_f1 = mBtk[i].getFrame();
effect_idx = i;
@@ -466,21 +466,21 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
J3DModelData* modelData = mpModel[effect_idx]->getModelData();
- J3DAnmTextureSRTKey* btk_anm_p = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 19);
+ void* btk_anm_p = dComIfG_getObjectRes(l_arcName, 19);
JUT_ASSERT(937, btk_anm_p != 0);
- J3DAnmTransform* bck_anm_p = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 7);
+ void* bck_anm_p = dComIfG_getObjectRes(l_arcName, 7);
JUT_ASSERT(942, bck_anm_p != 0);
- J3DAnmTevRegKey* brk_anm_p = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 15);
+ void* brk_anm_p = dComIfG_getObjectRes(l_arcName, 15);
JUT_ASSERT(947, brk_anm_p != 0);
- mBtk[effect_idx].init(modelData, btk_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1,
- true, 0);
- mBck[effect_idx].init(modelData, bck_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1,
- true);
- mBrk[effect_idx].init(modelData, brk_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1,
- true, 0);
+ mBtk[effect_idx].init(modelData, (J3DAnmTextureSRTKey*)btk_anm_p, TRUE,
+ J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, true, 0);
+ mBck[effect_idx].init(modelData, (J3DAnmTransform*)bck_anm_p, TRUE,
+ J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, true);
+ mBrk[effect_idx].init(modelData, (J3DAnmTevRegKey*)brk_anm_p, TRUE,
+ J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, true, 0);
mDoMtx_stack_c::transS(pos.x, pos.y, pos.z);
mDoMtx_stack_c::ZXYrotM(0, angle.y, 0);
@@ -491,28 +491,30 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
}
/* 000011B8-000013E0 .text init__17daObjBarrier_ef_cFv */
-// NONMATCHING - regalloc
bool daObjBarrier_ef_c::init() {
bool rt = true;
- J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 11);
- J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 19);
- J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 7);
- J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 15);
+ void* modelData = dComIfG_getObjectRes(l_arcName, 11);
+ void* pbtk = dComIfG_getObjectRes(l_arcName, 19);
+ void* pbck = dComIfG_getObjectRes(l_arcName, 7);
+ void* pbrk = dComIfG_getObjectRes(l_arcName, 15);
if (modelData == NULL || pbtk == NULL || pbck == NULL || pbrk == NULL) {
JUT_PANIC(1016);
rt = false;
} else {
for (int i = 0; i < 4; i++) {
- mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x5020200);
+ mpModel[i] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x5020200);
setDummyTexture(i);
- BOOL btk_init = mBtk[i].init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0,
- -1, false, 0);
- BOOL bck_init =
- mBck[i].init(modelData, pbck, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false);
- BOOL brk_init = mBrk[i].init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0,
- -1, false, 0);
+ BOOL btk_init = mBtk[i].init(
+ (J3DModelData*)modelData, (J3DAnmTextureSRTKey*)pbtk,
+ TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, false, 0);
+ BOOL bck_init = mBck[i].init(
+ (J3DModelData*)modelData, (J3DAnmTransform*)pbck,
+ TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false);
+ BOOL brk_init = mBrk[i].init(
+ (J3DModelData*)modelData, (J3DAnmTevRegKey*)pbrk,
+ TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false, 0);
if (mpModel[i] == NULL || !btk_init || !bck_init || !brk_init) {
rt = false;
@@ -549,7 +551,6 @@ void daObjBarrier_ef_c::execute() {
}
/* 000014E0-00001638 .text draw__17daObjBarrier_ef_cFv */
-// NONMATCHING - load order
void daObjBarrier_ef_c::draw() {
J3DModel* model_p;
@@ -558,7 +559,8 @@ void daObjBarrier_ef_c::draw() {
if (((active_flags >> i) & 1)) {
model_p = mpModel[i];
- mBtk[i].entry(model_p->getModelData(), getBtkFrame(i));
+ J3DModelData* modelData = model_p->getModelData();
+ mBtk[i].entry(modelData, getBtkFrame(i));
mBck[i].entry(model_p->getModelData(), (s16)getBtkFrame(i));
mBrk[i].entry(model_p->getModelData(), (s16)getBtkFrame(i));
diff --git a/src/d/d_bg_s_movebg_actor.cpp b/src/d/d_bg_s_movebg_actor.cpp
index b745e071..dae989c2 100644
--- a/src/d/d_bg_s_movebg_actor.cpp
+++ b/src/d/d_bg_s_movebg_actor.cpp
@@ -31,17 +31,11 @@ int dBgS_MoveBgActor::MoveBGCreateHeap() {
}
mpBgW = new dBgW();
- if (mpBgW != NULL) {
- cBgD_t* res = (cBgD_t*)dComIfG_getObjectRes(m_name, m_dzb_id);
- if (!mpBgW->Set(res, cBgW::MOVE_BG_e, &mBgMtx)) {
- if (m_set_func != NULL) {
- mpBgW->SetCrrFunc(m_set_func);
- }
- } else {
- goto RET; // probably fake match, clean up later
+ if (mpBgW && !mpBgW->Set((cBgD_t*)dComIfG_getObjectRes(m_name, m_dzb_id), cBgW::MOVE_BG_e, &mBgMtx)) {
+ if (m_set_func != NULL) {
+ mpBgW->SetCrrFunc(m_set_func);
}
} else {
- RET:
mpBgW = NULL;
return 0;
}
diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp
index 4da5c6f7..b39ab1b5 100644
--- a/src/d/d_kankyo.cpp
+++ b/src/d/d_kankyo.cpp
@@ -1746,7 +1746,6 @@ void dScnKy_env_light_c::SetBaseLight() {
}
/* 80193EE4-801940EC .text exeKankyo__18dScnKy_env_light_cFv */
-// NONMATCHING - one block with regswaps
void dScnKy_env_light_c::exeKankyo() {
g_env_light.mColPatMode = g_env_light.mColPatModeGather;
@@ -1788,10 +1787,11 @@ void dScnKy_env_light_c::exeKankyo() {
g_env_light.mColpatPrevGather = 0xFF;
}
- if (g_env_light.mColpatCurrGather != 0xFF) {
- g_env_light.mColpatCurr = g_env_light.mColpatCurrGather;
+ u8 currGather = g_env_light.mColpatCurrGather;
+ if (currGather != 0xFF) {
+ g_env_light.mColpatCurr = currGather;
g_env_light.mColpatCurrGather = 0xFF;
- g_env_light.mColpatWeather = g_env_light.mColpatCurrGather;
+ g_env_light.mColpatWeather = currGather;
}
if (g_env_light.mColPatBlendGather >= 0.0f) {
diff --git a/src/d/d_kankyo_wether.cpp b/src/d/d_kankyo_wether.cpp
index 64883b07..a46fd2c5 100644
--- a/src/d/d_kankyo_wether.cpp
+++ b/src/d/d_kankyo_wether.cpp
@@ -754,9 +754,8 @@ void wether_move_moya() {
}
/* 800891A8-80089698 .text wether_move_vrkumo__Fv */
-// NONMATCHING - almost, regswap
void wether_move_vrkumo() {
- camera_class* camera_p = dComIfGp_getCamera(0);
+ camera_process_class* camera_p = dComIfGp_getCamera(0);
static cXyz r09o(-180000.0f, 750.0f, -200000.0f);
if (strcmp(dComIfGp_getStartStageName(), "Name") != 0) {
@@ -1188,7 +1187,8 @@ void dKyw_pntwind_get_info(cXyz* param_0, cXyz* i_dir, f32* i_power) {
*i_power = 0.0f;
WIND_INFLUENCE* influence;
- for (int i = 0; i < ARRAY_SIZE(g_env_light.mpWindInfluence); i++) {
+ s32 influence_count = ARRAY_SIZE(g_env_light.mpWindInfluence);
+ for (int i = 0; i < influence_count; i++) {
influence = g_env_light.mpWindInfluence[i];
if (influence != NULL) {
f32 dist = param_0->abs(influence->mPos);
@@ -1291,7 +1291,6 @@ cXyz dKyw_get_AllWind_vecpow(cXyz* param_0) {
}
/* 8008A7D0-8008A870 .text dKyw_tact_wind_set__Fss */
-// NONMATCHING - small regswap...
void dKyw_tact_wind_set(s16 i_windX, s16 i_windY) {
dScnKy_env_light_c& env_light = dKy_getEnvlight();
cXyz* wind_vec = dKyw_get_wind_vec();
@@ -1301,10 +1300,10 @@ void dKyw_tact_wind_set(s16 i_windX, s16 i_windY) {
dComIfGs_setWindX(i_windX);
dComIfGs_setWindY(i_windY);
- s16 temp_r29 = -(cM_atan2s(wind_vec->x, wind_vec->z) + 0x4000);
+ i_windY = -(cM_atan2s(wind_vec->x, wind_vec->z) + 0x4000);
env_light.mWind.mTactWindAngleFlags = 1;
- if ((s16)(temp_r29 - env_light.mWind.mTactWindAngleY) < 0) {
+ if ((s16)(i_windY - env_light.mWind.mTactWindAngleY) < 0) {
env_light.mWind.mTactWindAngleFlags |= 0x80;
}
}