summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2025-09-17 08:01:59 -0400
committerGitHub <noreply@github.com>2025-09-17 15:01:59 +0300
commitfe5e8aff986950b5a6fc1e7e5a7b308cb2a2a0f3 (patch)
treeeb7839c7370e6a209ffbc0404ca42b2c560f2405 /src
parent2106c56f60a5552aa7175e65a65181958fce4012 (diff)
More miscellaneous TU improvements (#2665)
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_alink_crawl.inc5
-rw-r--r--src/d/actor/d_a_e_hp.cpp2
-rw-r--r--src/d/actor/d_a_e_pz.cpp47
-rw-r--r--src/d/actor/d_a_npc_ykm.cpp250
-rw-r--r--src/d/actor/d_a_npc_ykw.cpp45
-rw-r--r--src/d/actor/d_a_npc_zra.cpp173
-rw-r--r--src/d/actor/d_a_obj_toby.cpp29
-rw-r--r--src/d/d_drawlist.cpp16
-rw-r--r--src/d/d_ev_camera.cpp20
-rw-r--r--src/d/d_kankyo.cpp145
-rw-r--r--src/d/d_kankyo_rain.cpp143
-rw-r--r--src/f_op/f_op_actor_mng.cpp2
-rw-r--r--src/m_Do/m_Do_ext.cpp162
13 files changed, 530 insertions, 509 deletions
diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc
index 0a05a0b172..e4ceac8a64 100644
--- a/src/d/actor/d_a_alink_crawl.inc
+++ b/src/d/actor/d_a_alink_crawl.inc
@@ -391,7 +391,10 @@ void daAlink_c::setCrawlMoveAngle() {
}
mLinkGndChk.SetPos(&sp20);
- sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().GroundCross(&mLinkGndChk) - sp38.y,
+ // dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some
+ // reason here that breaks the match. This is the only place in the code so
+ // far (September 2025) where it causes issues.
+ sp2C.set(sp20.x - sp38.x, ((cBgS&)dComIfG_Bgsp()).GroundCross(&mLinkGndChk) - sp38.y,
sp20.z - sp38.z);
if (cLib_distanceAngleS(sp2C.atan2sY_XZ(), shape_angle.x) > 0x800) {
diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp
index 7af721d871..e63916738f 100644
--- a/src/d/actor/d_a_e_hp.cpp
+++ b/src/d/actor/d_a_e_hp.cpp
@@ -768,7 +768,7 @@ void daE_HP_c::executeDead() {
-1, 0, 0);
}
- if (fopAcM_IsExecuting(field_0x784)) {
+ if (fopAcM_IsExecuting(field_0x784) != FALSE) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
if (player->eventInfo.chkCondition(8)) {
field_0x778 =
diff --git a/src/d/actor/d_a_e_pz.cpp b/src/d/actor/d_a_e_pz.cpp
index 297fcf191e..011a8e46dc 100644
--- a/src/d/actor/d_a_e_pz.cpp
+++ b/src/d/actor/d_a_e_pz.cpp
@@ -199,8 +199,8 @@ static u8 l_initHIO;
static daE_PZ_HIO_c l_HIO;
/* 80761E29 0003+00 data_80761E29 None */
-static u8 data_80761E28;
-static u8 data_80761E29;
+static u8 lbl_222_bss_70;
+static u8 lbl_222_bss_71;
/* 80758A94-80758BA0 000614 010C+00 3/3 0/0 0/0 .text mPzScaleSet__8daE_PZ_cFb */
bool daE_PZ_c::mPzScaleSet(bool param_0) {
@@ -481,6 +481,7 @@ void daE_PZ_c::executeOpeningDemo() {
cXyz sp108;
cXyz spFC;
+ f32 var_f31 = 0.0f;
fopAc_ac_c* parent;
int sp28 = 22;
@@ -645,11 +646,11 @@ void daE_PZ_c::executeOpeningDemo() {
if (mAnm != 0xD) {
setBck(0xD, 2, 3.0f, 1.0f);
- parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
+ // fakematch, fpcM_GetID should be fopAcM_GetID
+ parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
}
- field_0x7d8 = 0;
- data_80761E29 = 0;
+ lbl_222_bss_71 = field_0x7d8 = 0;
if (field_0x7d0 == 0) {
field_0x7d0 = 120;
@@ -743,9 +744,8 @@ void daE_PZ_c::executeOpeningDemo() {
}
break;
case 130:
- field_0x7d8 = 2;
- data_80761E29 = 2;
- data_80761E28 = 0;
+ lbl_222_bss_71 = field_0x7d8 = 2;
+ lbl_222_bss_70 = 0;
case 30:
if (!eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(this, 2, 0xFFFF, 3);
@@ -764,11 +764,13 @@ void daE_PZ_c::executeOpeningDemo() {
sp120.set(mPzCenterInit_dt[7]);
sp108 = mDemoCameraCenter - sp120;
- cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, sp108.abs() / 20.0f, 1.0f);
+ var_f31 = sp108.abs() / 20.0f;
+ cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, var_f31, 1.0f);
sp114.set(mPzEyeInit_dt[7]);
spFC = mDemoCameraEye - sp114;
- cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, spFC.abs() / 20.0f, 1.0f);
+ var_f31 = spFC.abs() / 20.0f;
+ cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, var_f31, 1.0f);
if (field_0x7d0 == 0) {
if (fopAcM_SearchByID(parentActorID, &parent) && parent != NULL) {
@@ -851,7 +853,7 @@ void daE_PZ_c::executeOpeningDemo() {
if (field_0x7d7 != 0) {
if (field_0x7d7 == 1) {
- data_80761E28 = 1;
+ lbl_222_bss_70 = 1;
mDemoCameraCenter.set(mPzCenterInit_dt[17]);
mDemoCameraEye.set(mPzEyeInit_dt[17]);
@@ -956,11 +958,13 @@ void daE_PZ_c::executeOpeningDemo() {
case 106:
sp120.set(mPzCenterInit_dt[12]);
sp108 = mDemoCameraCenter - sp120;
- cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, sp108.abs() / 10.0f, 1.0f);
+ var_f31 = sp108.abs() / 10.0f;
+ cLib_addCalcPos(&mDemoCameraCenter, sp120, 0.7f, var_f31, 1.0f);
sp114.set(mPzEyeInit_dt[12]);
spFC = mDemoCameraEye - sp114;
- cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, spFC.abs() / 10.0f, 1.0f);
+ var_f31 = spFC.abs() / 10.0f;
+ cLib_addCalcPos(&mDemoCameraEye, sp114, 0.7f, var_f31, 1.0f);
if (field_0x7d0 != 0 || sp108.abs() > 2.0f || spFC.abs() > 2.0f) {
break;
@@ -998,10 +1002,10 @@ void daE_PZ_c::executeOpeningDemo() {
case 109:
if (mAnm == 0xB && mpModelMorf->isStop()) {
setBck(0xD, 2, 3.0f, 1.0f);
- parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
+ // fakematch, fpcM_GetID should be fopAcM_GetID
+ parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
- field_0x7d8 = 2;
- data_80761E29 = 2;
+ lbl_222_bss_71 = field_0x7d8 = 2;
}
if (mAnm != 0xB && mAnm != 0xD) {
@@ -1147,11 +1151,12 @@ void daE_PZ_c::executeOpeningDemo() {
} else {
daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 0, 0);
}
-
+
mDemoCameraCenter.set(mPzCenterInit_dt[3]);
mDemoCameraEye.set(mPzEyeInit_dt[4]);
- parentActorID = fopAcM_createChild(PROC_E_PZ, fopAcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
+ // fakematch, fpcM_GetID should be fopAcM_GetID
+ parentActorID = fopAcM_createChild(PROC_E_PZ, fpcM_GetID(this), sp28 + arg0, &field_0x7a8, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1, NULL);
setBck(0xC, 0, 10.0f, 1.0f);
daPy_getPlayerActorClass()->changeDemoMode(0x10, 0, 0, 0);
@@ -1447,7 +1452,7 @@ void daE_PZ_c::executeAttack() {
}
var_r27++;
- if (data_80761E29 != var_r28) {
+ if (lbl_222_bss_71 != var_r28) {
field_0x7d8 = var_r28;
var_r27 = 100;
}
@@ -1967,7 +1972,7 @@ void daE_PZ_c::executeSummonsBullet() {
if (((daE_PZ_c*)sp8C)->field_0x7dc[field_0x7d7] == 0) {
sp84 = BIRTH_DT[((daE_PZ_c*)sp8C)->field_0x7d8].parameters;
- data_80761E29 = ((daE_PZ_c*)sp8C)->field_0x7d8;
+ lbl_222_bss_71 = ((daE_PZ_c*)sp8C)->field_0x7d8;
if (((daE_PZ_c*)sp8C)->field_0x7d8 == 2) {
sp84 |= field_0x7d7 << 8;
@@ -2062,7 +2067,7 @@ void daE_PZ_c::executeSummonsBullet() {
if (((daE_PZ_c*)sp88)->field_0x841 != 0) {
field_0x7d7 = 1;
- if (data_80761E28 == 0) {
+ if (lbl_222_bss_70 == 0) {
break;
}
diff --git a/src/d/actor/d_a_npc_ykm.cpp b/src/d/actor/d_a_npc_ykm.cpp
index 0096d18966..11d95b4532 100644
--- a/src/d/actor/d_a_npc_ykm.cpp
+++ b/src/d/actor/d_a_npc_ykm.cpp
@@ -179,6 +179,15 @@ static int l_bmdData[6][2] = {
{BMDR_LEAF, YKM3},
};
+enum BmdIndex {
+ BMD_INDEX_YKM,
+ BMD_INDEX_YKM_TOMATO,
+ BMD_INDEX_YKM_LEAF,
+ BMD_INDEX_YKM_CHEESE,
+ BMD_INDEX_FISH,
+ BMD_INDEX_LEAF,
+};
+
/* 80B5DB38-80B5DB88 -00001 0050+00 0/1 0/0 0/0 .data l_evtList */
static daNpcT_evtData_c l_evtList[10] = {
{"", 0},
@@ -547,21 +556,26 @@ cPhs__Step daNpc_ykM_c::create() {
/* 80B53990-80B53F00 000590 0570+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_ykM_cFv */
int daNpc_ykM_c::CreateHeap() {
- // NONMATCHING
- J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[mTwilight ? 0 : 1][1]],
- l_bmdData[mTwilight ? 0 : 1][0]);
+ void* mdlData_p = NULL;
+ J3DModel* model = NULL;
+
+ int sp40 = mTwilight == 1 ? BMD_INDEX_YKM : BMD_INDEX_YKM;
+ int arcNameIdx = l_bmdData[sp40][1];
+ int resIndex = l_bmdData[sp40][0];
+ mdlData_p = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex);
if (mdlData_p == NULL) {
return 1;
}
- mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020284);
+ int sp34 = 0x11020284;
+ mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp34);
if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) {
return 0;
}
- J3DModel* model = mpMorf[0]->getModel();
- for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
- mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ model = mpMorf[0]->getModel();
+ for (u16 i = 0; i < ((J3DModelData*)mdlData_p)->getJointNum(); i++) {
+ ((J3DModelData*)mdlData_p)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
}
model->setUserArea((uintptr_t)this);
@@ -570,66 +584,74 @@ int daNpc_ykM_c::CreateHeap() {
return 0;
}
- static int const bmdTypeList[3] = {1, 2, 3};
+ static BmdIndex const bmdTypeList[3] = {BMD_INDEX_YKM_TOMATO, BMD_INDEX_YKM_LEAF, BMD_INDEX_YKM_CHEESE};
switch (mType) {
- case TYPE_COOK:
- for (int i = 0; i < 3; i++) {
- if (l_bmdData[bmdTypeList[i]][0] >= 0) {
- mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[i]][1]], l_bmdData[bmdTypeList[i]][0]);
- } else {
- mdlData_p = NULL;
- }
+ case TYPE_COOK:
+ for (int i = 0; i < 3; i++) {
+ if (l_bmdData[bmdTypeList[i]][0] >= 0) {
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[i]][1]], l_bmdData[bmdTypeList[i]][0]);
+ } else {
+ mdlData_p = NULL;
+ }
- // field_0xe4c holds a Pumpkin, Leaf, and Cheese model (in that order)
- if (mdlData_p != NULL) {
- field_0xe4c[i] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
- } else {
- field_0xe4c[i] = NULL;
- }
+ // field_0xe4c holds a Pumpkin, Leaf, and Cheese model (in that order)
+ if (mdlData_p != NULL) {
+ field_0xe4c[i] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084);
+ } else {
+ field_0xe4c[i] = NULL;
}
- break;
+ }
+ break;
- case TYPE_2:
- mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[4][1]], l_bmdData[4][0]);
+ case TYPE_2:
+ sp40 = BMD_INDEX_FISH;
+ arcNameIdx = l_bmdData[sp40][1];
+ resIndex = l_bmdData[sp40][0];
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex);
- JUT_ASSERT(1595, 0 != mdlData_p);
+ JUT_ASSERT(1595, 0 != mdlData_p);
- mFishModelMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1,
- NULL, 0x80000, 0x11000084);
- if (mFishModelMorf == NULL || mFishModelMorf->getModel() == NULL) {
- return 0;
- }
+ sp34 = 0x11000084;
+ mFishModelMorf = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1,
+ NULL, 0x80000, sp34);
+ if (mFishModelMorf == NULL || mFishModelMorf->getModel() == NULL) {
+ return 0;
+ }
- mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[5][1]], l_bmdData[5][0]);
+ sp40 = BMD_INDEX_LEAF;
+ arcNameIdx = l_bmdData[BMD_INDEX_LEAF][1];
+ resIndex = l_bmdData[BMD_INDEX_LEAF][0];
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex);
- JUT_ASSERT(1622, 0 != mdlData_p);
+ JUT_ASSERT(1622, 0 != mdlData_p);
- mLeafModelMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1,
- NULL, 0x80000, 0x11000084);
- if (mLeafModelMorf == NULL || mLeafModelMorf->getModel() == NULL) {
- return 0;
- }
- setLeafAnm(ANM_LEAF_WAIT_A, 0.0f);
+ sp34 = 0x11000084;
+ mLeafModelMorf = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1,
+ NULL, 0x80000, sp34);
+ if (mLeafModelMorf == NULL || mLeafModelMorf->getModel() == NULL) {
+ return 0;
+ }
+ setLeafAnm(ANM_LEAF_WAIT_A, 0.0f);
- mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]);
- if (mdlData_p != NULL) {
- field_0xe4c[1] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
- } else {
- field_0xe4c[1] = NULL;
- }
- break;
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]);
+ if (mdlData_p != NULL) {
+ field_0xe4c[1] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084);
+ } else {
+ field_0xe4c[1] = NULL;
+ }
+ break;
- case TYPE_3:
- break;
+ case TYPE_3:
+ break;
- case TYPE_4:
- mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]);
- if (mdlData_p != NULL) {
- field_0xe4c[1] = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084);
- } else {
- field_0xe4c[1] = NULL;
- }
- break;
+ case TYPE_4:
+ mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[1]][1]], l_bmdData[bmdTypeList[1]][0]);
+ if (mdlData_p != NULL) {
+ field_0xe4c[1] = mDoExt_J3DModel__create((J3DModelData*)mdlData_p, 0x80000, 0x11000084);
+ } else {
+ field_0xe4c[1] = NULL;
+ }
+ break;
}
if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, FALSE)) {
@@ -864,8 +886,8 @@ BOOL daNpc_ykM_c::isDelete() {
}
/* 80B548A8-80B54B44 0014A8 029C+00 1/1 0/0 0/0 .text reset__11daNpc_ykM_cFv */
+// NONMATCHING - m_nextID load issue, regalloc
void daNpc_ykM_c::reset() {
- // NONMATCHING
csXyz angle;
int iVar1 = (u8*)&field_0x1588 - (u8*)&mpNextAction;
@@ -878,7 +900,7 @@ void daNpc_ykM_c::reset() {
}
memset(&mpNextAction, 0, iVar1);
-
+
if (getPathID() != 0xFF) {
mPath.initialize();
mPath.setPathInfo(getPathID(), fopAcM_GetRoomNo(this), 0);
@@ -894,6 +916,8 @@ void daNpc_ykM_c::reset() {
angle.y = home.angle.y;
switch (mType) {
+ case TYPE_COOK:
+ break;
case TYPE_2:
field_0x1568 = -20.0f;
field_0x1579 = 1;
@@ -1277,8 +1301,9 @@ void daNpc_ykM_c::afterMoved() {
}
/* 80B55A64-80B560B4 002664 0650+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_ykM_cFv */
+// NONMATCHING - HIO load issue
void daNpc_ykM_c::setAttnPos() {
- // NONMATCHING
+ fopAc_ac_c* otherYkmP = NULL;
cXyz sp104(80.0f, 30.0f, 0.0f);
cXyz sp110(80.0f, 0.0f, 0.0f);
@@ -1291,25 +1316,26 @@ void daNpc_ykM_c::setAttnPos() {
}
f32 fVar1 = cM_s2rad((s16)(mCurAngle.y - field_0xd7e.y));
- f32 fVar2 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_max;
- f32 fVar3 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_min;
- f32 fVar4 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_max;
- f32 fVar5 = field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_min;
- f32 fVar6 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_max;
- f32 fVar7 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_min;
- f32 fVar8 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_max;
- f32 fVar9 = field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_min;
- J3DModel* model = mpMorf[0]->getModel();
- mJntAnm.setParam(this, model, &sp104, getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(), fVar9, fVar8, fVar7, fVar6, fVar5, fVar4, fVar3,
- fVar2, daNpc_ykM_Param_c::m.common.neck_rotation_ratio, fVar1, &sp110);
-
+ mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp104,
+ getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(),
+ field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_min,
+ field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleX_max,
+ field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_min,
+ field_0x1575 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.body_angleY_max,
+ field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_min,
+ field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleX_max,
+ field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_min,
+ field_0x1574 != 0 ? 0.0f : daNpc_ykM_Param_c::m.common.head_angleY_max,
+ daNpc_ykM_Param_c::m.common.neck_rotation_ratio, fVar1, &sp110);
+
if (mJntAnm.getMode() == daNpcT_JntAnm_c::LOOK_MODE_8) {
mJntAnm.calcJntRad(0.1f, 1.0f, fVar1);
} else {
mJntAnm.calcJntRad(0.2f, 1.0f, fVar1);
}
- model = mpMorf[0]->getModel();
+ J3DModel* model = mpMorf[0]->getModel();
+ J3DModelData* modelData = model->getModelData();
cXyz sp11c(current.pos);
sp11c.y += field_0x1568;
mDoMtx_stack_c::transS(sp11c);
@@ -1336,7 +1362,7 @@ void daNpc_ykM_c::setAttnPos() {
mDoMtx_stack_c::multVecZero(&sp128);
Mtx mtx;
- MTXCopy(mDoMtx_stack_c::get(), mtx);
+ cMtx_copy(mDoMtx_stack_c::get(), mtx);
mFishModelMorf->getModel()->setBaseTRMtx(mtx);
mFishModelMorf->modelCalc();
@@ -1348,7 +1374,7 @@ void daNpc_ykM_c::setAttnPos() {
if (mLeafModelMorf != NULL) {
mLeafModelMorf->play(0, 0);
- fopAc_ac_c* otherYkmP = getOtherYkmP(5);
+ otherYkmP = getOtherYkmP(5);
if (otherYkmP != NULL) {
mDoMtx_stack_c::transS(otherYkmP->current.pos);
mDoMtx_stack_c::ZXYrotM(otherYkmP->shape_angle);
@@ -2042,7 +2068,7 @@ int daNpc_ykM_c::cutGetTomatoPuree(int i_cutIndex) {
}
}
- int iVar2[2] = {0, -1};
+ int iVar2[2] = {-1, -1};
daObj_Gadget_c* actor_p;
f32 fVar1;
int iVar1;
@@ -2260,7 +2286,7 @@ int daNpc_ykM_c::cutGetTaste(int i_cutIndex) {
break;
}
}
- int iVar2[2] = {0, -1};
+ int iVar2[2] = {-1, -1};
daObj_Gadget_c* actor_p;
f32 fVar1;
int iVar1;
@@ -2397,8 +2423,7 @@ int daNpc_ykM_c::cutGetTaste(int i_cutIndex) {
/* 80B58A38-80B59500 005638 0AC8+00 1/0 0/0 0/0 .text cutLv5DungeonClear__11daNpc_ykM_cFi */
int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) {
- // NONMATCHING
- daPy_py_c* player = daPy_getPlayerActorClass();
+ daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass();
cXyz work;
int rv = 0;
int prm = -1;
@@ -2415,6 +2440,8 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) {
}
fopAc_ac_c* actor_p;
+ s16 sVar1;
+ s16 angleY;
if (dComIfGp_getEventManager().getIsAddvance(i_cutIndex)) {
switch (prm) {
case 0:
@@ -2429,7 +2456,8 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) {
mMotionSeqMngr.setNo(MOTION_RUN, -1.0f, FALSE, 0);
mSound.startCreatureVoice(Z2SE_YKM_V_DASH, -1);
mEventTimer = timer;
- daPy_getPlayerActorClass()->setPlayerPosAndAngle(&player->current.pos, fopAcM_searchActorAngleY(player, this), 0);
+ angleY = fopAcM_searchActorAngleY(player, this);
+ ((daPy_py_c*)daPy_getPlayerActorClass())->setPlayerPosAndAngle(&player->current.pos, angleY, 0);
dComIfGp_getEvent().setPt2(this);
break;
@@ -2525,7 +2553,6 @@ int daNpc_ykM_c::cutLv5DungeonClear(int i_cutIndex) {
}
int iVar2[2] = {-1, -1};
- s16 sVar1;
switch (prm) {
case 0:
rv = 1;
@@ -2967,8 +2994,8 @@ static u8 const lit_7385[8] = {
/* 80B5A128-80B5A224 006D28 00FC+00 1/1 0/0 0/0 .text setDialogueMotion__11daNpc_ykM_cFv */
void daNpc_ykM_c::setDialogueMotion() {
- // NONMATCHING
- u32 uVar1 = field_0x154c >> 1;
+ int uVar1 = field_0x154c;
+ uVar1 >>= 1;
if (0.5f < cM_rnd()) {
if (cM_rnd() - 0.5f < 0.0f) {
@@ -3319,7 +3346,6 @@ BOOL daNpc_ykM_c::cook(void* param_1) {
/* 80B5B260-80B5BE08 007E60 0BA8+00 2/0 0/0 0/0 .text race__11daNpc_ykM_cFPv */
BOOL daNpc_ykM_c::race(void* param_1) {
- // NONMATCHING
cXyz work;
fopAc_ac_c* actors[2] = {this, daPy_getPlayerActorClass()};
s16 sVar1;
@@ -3397,7 +3423,8 @@ BOOL daNpc_ykM_c::race(void* param_1) {
}
if (field_0x157e == 0) {
- do {
+ int idx;
+ while (true) {
if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) {
if (mPath.getArg0() == 0) {
mSound.startCreatureSound(Z2SE_YM_SNOBO_JUMP, 0, -1);
@@ -3408,46 +3435,47 @@ BOOL daNpc_ykM_c::race(void* param_1) {
if (mPath.setNextIdx(mPath.getNumPnts()) != 0) {
field_0x1585 = 1;
mMotionSeqMngr.setNo(MOTION_SB_GOAL, -1.0f, FALSE, 0);
- break;
- }
- }
+ } else {
+ if (field_0x157e == 0) {
+ continue;
+ }
- int idx;
- if (field_0x157e != 0) {
- if (!mStagger.checkStagger()) {
- mMotionSeqMngr.setNo(MOTION_SB_JUMP_A, -1.0f, FALSE, 0);
- }
+ if (!mStagger.checkStagger()) {
+ mMotionSeqMngr.setNo(MOTION_SB_JUMP_A, -1.0f, FALSE, 0);
+ }
- field_0x1514 = current.pos;
+ field_0x1514 = current.pos;
+ idx = mPath.getIdx();
+ field_0x1520 = mPath.getPntPos(idx);
+ current.angle.y = cLib_targetAngleY(&field_0x1514, &field_0x1520);
+ int iVar3 = (int)((field_0x1520 - field_0x1514).absXZ() / speedF) + 1;
+ speed.y = (field_0x1520.y - field_0x1514.y) + fabsf(gravity) * iVar3 * iVar3 * 0.5f;
+ speed.y /= iVar3;
+ }
+ } else {
idx = mPath.getIdx();
- field_0x1520 = mPath.getPntPos(idx);
- current.angle.y = cLib_targetAngleY(&field_0x1514, &field_0x1520);
- int iVar3 = (int)((field_0x1520 - field_0x1514).absXZ() / speedF) + 1;
- speed.y = (field_0x1520.y - field_0x1514.y) + iVar3 * iVar3 * fabsf(gravity) * 0.5f;
- speed.y /= iVar3;
+ work = mPath.getPntPos(idx);
}
-
- idx = mPath.getIdx();
- work = mPath.getPntPos(idx);
break;
- } while (field_0x157e == 0);
+ }
}
if (field_0x1585 == 0 && field_0x157e == 0) {
- current.angle.y = cLib_targetAngleY(&current.pos, &work);
+ s16 angleY = cLib_targetAngleY(&current.pos, &work);
+ current.angle.y = angleY;
cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 8, 0x100);
mCurAngle.y = shape_angle.y;
if (!mStagger.checkStagger() && (mMotionSeqMngr.getNo() != MOTION_SB_JUMP_C || mMotionSeqMngr.checkEndSequence())) {
- int sVar2 = sVar1 - mCurAngle.y;
- if (0.0f < cM_sht2d(sVar2)) {
- if (4.0f < cM_sht2d(sVar2)) {
+ angleY -= mCurAngle.y;
+ if (0.0f < cM_sht2d(angleY)) {
+ if (4.0f < cM_sht2d(angleY)) {
mMotionSeqMngr.setNo(MOTION_SB_TURNL, 24.0f, FALSE, 0);
} else {
mMotionSeqMngr.setNo(MOTION_SB_WAIT, 24.0f, FALSE, 0);
}
} else {
- if (cM_sht2d(sVar2) < -4.0f) {
+ if (cM_sht2d(angleY) < -4.0f) {
mMotionSeqMngr.setNo(MOTION_SB_TURNR, 24.0f, FALSE, 0);
} else {
mMotionSeqMngr.setNo(MOTION_SB_WAIT, 24.0f, FALSE, 0);
@@ -3455,9 +3483,9 @@ BOOL daNpc_ykM_c::race(void* param_1) {
}
}
- s16 sVar3 = -fopAcM_getPolygonAngle(mGndChk, current.angle.y + 0x4000);
+ angleY = -fopAcM_getPolygonAngle(mGndChk, current.angle.y + 0x4000);
cLib_addCalcAngleS2(&mCurAngle.x, mGroundAngle, 6, 0x200);
- cLib_addCalcAngleS2(&mCurAngle.z, sVar3, 6, 0x200);
+ cLib_addCalcAngleS2(&mCurAngle.z, angleY, 6, 0x200);
int iVar1 = field_0x1560 - field_0x1558.field_0x0;
f32 fVar2 = daNpc_ykM_Param_c::m.slide_speed * cM_scos(mGroundAngle);
@@ -3472,9 +3500,10 @@ BOOL daNpc_ykM_c::race(void* param_1) {
field_0x1540 = 8;
}
- int iVar2 = cLib_minMaxLimit<int>(iVar1 + daNpc_ykM_Param_c::m.competition_prm_a, 0, daNpc_ykM_Param_c::m.competition_prm_b);
+ iVar1 += daNpc_ykM_Param_c::m.competition_prm_a;
+ int iVar2 = cLib_minMaxLimit<int>(iVar1, 0, daNpc_ykM_Param_c::m.competition_prm_b);
if (iVar2 > 0) {
- fVar2 *= daNpc_ykM_Param_c::m.competition_prm_c * 0.1f * abs(iVar2) + 1.0f;
+ fVar2 *= abs(iVar2) * 0.1f * daNpc_ykM_Param_c::m.competition_prm_c + 1.0f;
}
}
@@ -3561,7 +3590,6 @@ BOOL daNpc_ykM_c::talk(void* param_1) {
#ifdef DEBUG
BOOL daNpc_ykM_c::test(void* param_1) {
- // NONMATCHING
switch (mMode) {
case 1:
speedF = 0.0f;
diff --git a/src/d/actor/d_a_npc_ykw.cpp b/src/d/actor/d_a_npc_ykw.cpp
index c34a17ae4c..ce3db4a1d8 100644
--- a/src/d/actor/d_a_npc_ykw.cpp
+++ b/src/d/actor/d_a_npc_ykw.cpp
@@ -408,21 +408,20 @@ f32 dummy_1f() {
}
/* 80B5F34C-80B5F5C8 00052C 027C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_ykW_cFv */
-// NONMATCHING - regalloc
int daNpc_ykW_c::CreateHeap() {
- J3DModelData* modelData = NULL;
+ void* mdlData_p = NULL;
J3DModel* model = NULL;
int bmdDataIdx = 0;
int arcNameIdx = l_bmdData[bmdDataIdx][1];
int resIndex = l_bmdData[bmdDataIdx][0];
- modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex);
- if (modelData == NULL) {
+ mdlData_p = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resIndex);
+ if (mdlData_p == NULL) {
return 0;
}
int temp1 = 0x11020284;
- mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound,
+ mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound,
0x80000, temp1);
if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) {
@@ -434,8 +433,8 @@ int daNpc_ykW_c::CreateHeap() {
}
model = mpMorf[0]->getModel();
- for (u16 i = 0; i < modelData->getJointNum(); i++) {
- modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ for (u16 i = 0; i < ((J3DModelData*)mdlData_p)->getJointNum(); i++) {
+ ((J3DModelData*)mdlData_p)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
}
model->setUserArea((uintptr_t)this);
@@ -992,7 +991,7 @@ void daNpc_ykW_c::afterMoved() {
}
/* 80B60F08-80B614D0 0020E8 05C8+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_ykW_cFv */
-// NONMATCHING - HIO load issue
+// NONMATCHING - HIO load issue, regalloc
void daNpc_ykW_c::setAttnPos() {
cXyz unkXyz1(0.0f, 50.0f, 0.0f);
if (field_0x106a != 0) {
@@ -2790,7 +2789,6 @@ int daNpc_ykW_c::walk(void* param_0) {
}
/* 80B6591C-80B6640C 006AFC 0AF0+00 2/0 0/0 0/0 .text race__11daNpc_ykW_cFPv */
-// NONMATCHING - multiple issues
int daNpc_ykW_c::race(void* param_0) {
int unkInt1;
s16 targetAngleY;
@@ -2878,8 +2876,8 @@ int daNpc_ykW_c::race(void* param_0) {
field_0x106e = 0;
}
- do {
- if (field_0x106e == 0) {
+ if (field_0x106e == 0) {
+ while (true) {
if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) {
if (mPath.getArg0() == 0) {
mSound.startCreatureSound(Z2SE_YW_SNOBO_JUMP, 0, -1);
@@ -2890,7 +2888,11 @@ int daNpc_ykW_c::race(void* param_0) {
field_0x1064 = 1;
field_0x1065 = 1;
mMotionSeqMngr.setNo(32, -1.0f, 0, 0);
- } else if (field_0x106e != 0) {
+ } else {
+ if (field_0x106e == 0) {
+ continue;
+ }
+
if (!mStagger.checkStagger()) {
mMotionSeqMngr.setNo(25, -1.0f, 0, 0);
}
@@ -2908,10 +2910,11 @@ int daNpc_ykW_c::race(void* param_0) {
idx = mPath.getIdx();
unkXyz1 = mPath.getPntPos(idx);
}
+ break;
}
- } while (field_0x1064 == 0);
+ }
- if (field_0x106e == 0) {
+ if (field_0x1064 == 0 && field_0x106e == 0) {
targetAngleY = cLib_targetAngleY(&current.pos, &unkXyz1);
current.angle.y = targetAngleY;
cLib_addCalcAngleS2(&shape_angle.y, current.angle.y, 4, 0x200);
@@ -2935,20 +2938,20 @@ int daNpc_ykW_c::race(void* param_0) {
targetAngleY = -fopAcM_getPolygonAngle(mGndChk, (s16)(current.angle.y + 0x4000));
cLib_addCalcAngleS2(&mCurAngle.x, mGroundAngle, 6, 0x200);
cLib_addCalcAngleS2(&mCurAngle.z, targetAngleY, 6, 0x200);
- unkInt1 = field_0x104c - field_0x1044.field_0x0;
+ int unkInt2 = field_0x104c - field_0x1044.field_0x0;
unkFloat1 = HIO_PARAM(this)->mSlidingSpeed * cM_scos(mGroundAngle);
if (mStagger.checkStagger()) {
unkFloat1 *= 0.0f;
} else {
- unkInt1 += HIO_PARAM(this)->mCompetParamA;
- unkInt1 = cLib_minMaxLimit<int>(unkInt1, 0, HIO_PARAM(this)->mCompetParamB);
- if (unkInt1 > 0) {
- unkFloat1 *= (f32)abs(unkInt1) * 0.1f * HIO_PARAM(this)->mCompetParamC + 1.0f;
+ unkInt2 += HIO_PARAM(this)->mCompetParamA;
+ unkInt2 = cLib_minMaxLimit<int>(unkInt2, 0, HIO_PARAM(this)->mCompetParamB);
+ if (unkInt2 > 0) {
+ unkFloat1 *= (f32)abs(unkInt2) * 0.1f * HIO_PARAM(this)->mCompetParamC + 1.0f;
}
}
cLib_chaseF(&speedF, unkFloat1, HIO_PARAM(this)->mSlidingAccel);
- mSound.startCreatureSound(Z2SE_YW_SNOBO_RIDE, speedF, -1);
- mSound.startCreatureVoice(Z2SE_YW_V_SNOBO_RIDING, -1);
+ mSound.startCreatureSoundLevel(Z2SE_YW_SNOBO_RIDE, speedF, -1);
+ mSound.startCreatureVoiceLevel(Z2SE_YW_V_SNOBO_RIDING, -1);
}
}
attention_info.flags = 0;
diff --git a/src/d/actor/d_a_npc_zra.cpp b/src/d/actor/d_a_npc_zra.cpp
index 214e245694..f621822fa1 100644
--- a/src/d/actor/d_a_npc_zra.cpp
+++ b/src/d/actor/d_a_npc_zra.cpp
@@ -9,6 +9,7 @@
#include "SSystem/SComponent/c_math.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "Z2AudioLib/Z2Instances.h"
#include "f_op/f_op_actor_mng.h"
#include "f_op/f_op_kankyo_mng.h"
#include "d/d_com_inf_game.h"
@@ -2402,177 +2403,7 @@ static int daNpc_zrA_IsDelete(void* i_this) {
#include "d/actor/d_a_npc_zra.inc"
-/* ############################################################################################## */
-/* 80B8DAB4-80B8DAB8 000074 0004+00 0/0 0/0 0/0 .bss
- * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAB4[4];
-#pragma pop
-
-/* 80B8DAB8-80B8DABC 000078 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14JASAudioThread> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAB8[4];
-#pragma pop
-
-/* 80B8DABC-80B8DAC0 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DABC[4];
-#pragma pop
-
-/* 80B8DAC0-80B8DAC4 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAC0[4];
-#pragma pop
-
-/* 80B8DAC4-80B8DAC8 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAC4[4];
-#pragma pop
-
-/* 80B8DAC8-80B8DACC 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAC8[4];
-#pragma pop
-
-/* 80B8DACC-80B8DAD0 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DACC[4];
-#pragma pop
-
-/* 80B8DAD0-80B8DAD4 000090 0004+00 0/0 0/0 0/0 .bss
- * sInstance__36JASGlobalInstance<15JAISoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAD0[4];
-#pragma pop
-
-/* 80B8DAD4-80B8DAD8 000094 0004+00 0/0 0/0 0/0 .bss
- * sInstance__35JASGlobalInstance<14Z2SoundStarter> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAD4[4];
-#pragma pop
-
-/* 80B8DAD8-80B8DADC 000098 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAD8[4];
-#pragma pop
-
-/* 80B8DADC-80B8DAE0 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DADC[4];
-#pragma pop
-
-/* 80B8DAE0-80B8DAE4 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAE0[4];
-#pragma pop
-
-/* 80B8DAE4-80B8DAE8 0000A4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAIStreamMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAE4[4];
-#pragma pop
-
-/* 80B8DAE8-80B8DAEC 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAE8[4];
-#pragma pop
-
-/* 80B8DAEC-80B8DAF0 0000AC 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAISoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAEC[4];
-#pragma pop
-
-/* 80B8DAF0-80B8DAF4 0000B0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13JAUSoundTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAF0[4];
-#pragma pop
-
-/* 80B8DAF4-80B8DAF8 0000B4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAF4[4];
-#pragma pop
-
-/* 80B8DAF8-80B8DAFC 0000B8 0004+00 0/0 0/0 0/0 .bss
- * sInstance__33JASGlobalInstance<12JAUSoundInfo> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAF8[4];
-#pragma pop
-
-/* 80B8DAFC-80B8DB00 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DAFC[4];
-#pragma pop
-
-/* 80B8DB00-80B8DB04 0000C0 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB00[4];
-#pragma pop
-
-/* 80B8DB04-80B8DB08 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB04[4];
-#pragma pop
-
-/* 80B8DB08-80B8DB0C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB08[4];
-#pragma pop
-
-/* 80B8DB0C-80B8DB10 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB0C[4];
-#pragma pop
-
-/* 80B8DB10-80B8DB14 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr>
- */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB10[4];
-#pragma pop
-
-/* 80B8DB14-80B8DB18 0000D4 0004+00 0/0 0/0 0/0 .bss
- * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */
-#pragma push
-#pragma force_active on
-static u8 data_80B8DB14[4];
-#pragma pop
+AUDIO_INSTANCES
/* 80B8D8DC-80B8D8FC -00001 0020+00 1/0 0/0 0/0 .data daNpc_zrA_MethodTable */
static actor_method_class daNpc_zrA_MethodTable = {
diff --git a/src/d/actor/d_a_obj_toby.cpp b/src/d/actor/d_a_obj_toby.cpp
index 76d7514413..863ed4bef1 100644
--- a/src/d/actor/d_a_obj_toby.cpp
+++ b/src/d/actor/d_a_obj_toby.cpp
@@ -50,6 +50,17 @@ static s8 r11yuka_image[192] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
+class daObj_Toby_HIO_c : public JORReflexible{
+public:
+ /* 80D1378C */ daObj_Toby_HIO_c();
+ /* 80D15534 */ virtual ~daObj_Toby_HIO_c() {}
+
+ void genMessage(JORMContext*);
+
+ /* 0x4 */ s8 field_0x4;
+ /* 0x8 */ f32 field_0x8;
+};
+
/* 80D1378C-80D137B0 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daObj_Toby_HIO_cFv */
daObj_Toby_HIO_c::daObj_Toby_HIO_c() {
field_0x4 = -1;
@@ -435,24 +446,24 @@ static int daObj_Toby_Delete(obj_toby_class* i_this) {
// nonmatching - regalloc
static int useHeapInit(fopAc_ac_c* a_this) {
obj_toby_class* i_this = (obj_toby_class*)a_this;
- J3DModelData* modelData;
- J3DModelData* modelData2;
+ void* modelData;
+ void* modelData2;
yuka_s* pYuka;
-
+
if (i_this->field_0x577 == 0) {
- modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 4);
+ modelData = dComIfG_getObjectRes(i_this->mArcName, 4);
JUT_ASSERT(868, modelData != 0);
- modelData2 = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 5);
+ modelData2 = dComIfG_getObjectRes(i_this->mArcName, 5);
// !@bug assert on wrong variable. not really meaningful.
JUT_ASSERT(872, modelData != 0);
pYuka = i_this->mYukas;
for (int i = 0; i < i_this->mYukaNum; i++, pYuka++) {
- i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084);
+ i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084);
if (i_this->mYukas[i].mModel1 == NULL) {
return 0;
}
- i_this->mYukas[i].mModel2 = mDoExt_J3DModel__create(modelData2, 0x20000, 0x11000084);
+ i_this->mYukas[i].mModel2 = mDoExt_J3DModel__create((J3DModelData*)modelData2, 0x20000, 0x11000084);
if (i_this->mYukas[i].mModel2 == NULL) {
return 0;
}
@@ -467,11 +478,11 @@ static int useHeapInit(fopAc_ac_c* a_this) {
}
} else if (i_this->field_0x577 == 1) {
a_this->field_0x567 = 1;
- modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mArcName, 6);
+ modelData = dComIfG_getObjectRes(i_this->mArcName, 6);
JUT_ASSERT(907, modelData != 0);
for (int i = 0; i < i_this->mYukaNum; i++) {
- i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084);
+ i_this->mYukas[i].mModel1 = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x20000, 0x11000084);
if (i_this->mYukas[i].mModel1 == NULL) {
return 0;
}
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp
index 6580716bb7..2932f7c642 100644
--- a/src/d/d_drawlist.cpp
+++ b/src/d/d_drawlist.cpp
@@ -1636,20 +1636,16 @@ void dDlst_shadowControl_c::draw(Mtx param_0) {
GXSetAlphaUpdate(GX_DISABLE);
}
-/* 803A8D9C-803A8DCC 005EBC 0030+00 0/0 0/0 0/0 .data mtx_adj$5842 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static Mtx mtx_adj = {
- {0.5f, 0.0f, 0.0f, 0.5f},
- {0.0f, -0.5f, 0.0f, 0.5f},
- {0.0f, 0.0f, 1.0f, 0.0f},
-};
-#pragma pop
-
/* 80055C74-80055F1C 0505B4 02A8+00 0/0 1/1 1/1 .text
* setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c */
int dDlst_shadowControl_c::setReal(u32 param_1, s8 param_2, J3DModel* param_3, cXyz* param_4,
f32 param_5, f32 param_6, dKy_tevstr_c* param_7) {
+ static Mtx mtx_adj = {
+ {0.5f, 0.0f, 0.0f, 0.5f},
+ {0.0f, -0.5f, 0.0f, 0.5f},
+ {0.0f, 0.0f, 1.0f, 0.0f},
+ };
+
f32 fVar1;
f32 dVar16 = (param_2 == 0) ? 1.0f : (1.0f - 0.003000000026077032f * param_6);
if (dVar16 <= 0.0f) {
diff --git a/src/d/d_ev_camera.cpp b/src/d/d_ev_camera.cpp
index b24ae80977..7dfe184844 100644
--- a/src/d/d_ev_camera.cpp
+++ b/src/d/d_ev_camera.cpp
@@ -4142,23 +4142,3 @@ bool dCamera_c::bspTransEvCamera() {
bool dCamera_c::portalWarpEvCamera() {
return true;
}
-
-/* 8009771C-80097738 09205C 001C+00 11/11 22/22 0/0 .text attentionPos__9dCamera_cFP10fopAc_ac_c */
-cXyz dCamera_c::attentionPos(fopAc_ac_c* a_this) {
- return a_this->attention_info.position;
-}
-
-/* 80097738-8009775C 092078 0024+00 10/10 10/10 0/0 .text directionOf__9dCamera_cFP10fopAc_ac_c */
-cSAngle dCamera_c::directionOf(fopAc_ac_c* a_this) {
- return a_this->shape_angle.y;
-}
-
-/* 8009775C-80097778 09209C 001C+00 9/9 20/20 0/0 .text positionOf__9dCamera_cFP10fopAc_ac_c */
-cXyz dCamera_c::positionOf(fopAc_ac_c* a_this) {
- return a_this->current.pos;
-}
-
-/* 8009778C-800977A8 0920CC 001C+00 1/1 2/2 0/0 .text eyePos__9dCamera_cFP10fopAc_ac_c */
-cXyz dCamera_c::eyePos(fopAc_ac_c* a_this) {
- return a_this->eyePos;
-}
diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp
index fd52937efe..c71ab89fa7 100644
--- a/src/d/d_kankyo.cpp
+++ b/src/d/d_kankyo.cpp
@@ -3,10 +3,12 @@
#include "d/d_kankyo.h"
#include <dolphin.h>
#include <dolphin/gf/GFPixel.h>
+
#include "SSystem/SComponent/c_counter.h"
#include "SSystem/SComponent/c_math.h"
#include "d/actor/d_a_kytag08.h"
#include "d/actor/d_a_player.h"
+#include "d/d_debug_viewer.h"
#include "d/d_kankyo_rain.h"
#include "d/d_kankyo_static.h"
#include "d/d_meter2_info.h"
@@ -3526,6 +3528,7 @@ void dScnKy_env_light_c::setLightTevColorType(J3DModelData*, dKy_tevstr_c*) {}
// NONMATCHING - some minor issues with dKyd_maple_col_getp
static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c* tevstr_p,
int lightType) {
+ int i;
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
MtxP view_mtx = j3dSys.getViewMtx();
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
@@ -3597,7 +3600,7 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c*
if (view_mtx != NULL) {
if (lightType != 2) {
- for (int i = 0; i < 6; i++) {
+ for (i = 0; i < 6; i++) {
material_p->setLight(i + 2, &tevstr_p->mLights[i]);
}
} else if (g_env_light.fishing_hole_season >= 1 && g_env_light.fishing_hole_season <= 4)
@@ -3635,7 +3638,7 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c*
material_p->setAmbColor(0, &amb_col);
- for (int i = 0; i < 6; i++) {
+ for (i = 0; i < 6; i++) {
if (i <= 1) {
J3DLightInfo* var_r28;
if (i == 0) {
@@ -3649,13 +3652,12 @@ static void setLightTevColorType_MAJI_sub(J3DMaterial* material_p, dKy_tevstr_c*
var_r28 = &kankyo->global_maple_col_change[i].light_obj.getLightInfo();
}
- color_RGB_class maple_color;
maple_color.r =
- dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].r;
+ dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].r;
maple_color.g =
- dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].g;
+ dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].g;
maple_color.b =
- dKyd_maple_col_getp()[(g_env_light.fishing_hole_season + (i * 4))].b;
+ dKyd_maple_col_getp()[(g_env_light.fishing_hole_season - 1 + (i * 4))].b;
var_f31 = var_r28->mColor.r / 95.0f;
var_f31 *= var_f31;
@@ -4285,7 +4287,6 @@ BOOL dKy_lightswitch_check(stage_pure_lightvec_info_class* stage_light_info_p, c
}
/* 801A6278-801A6C20 1A0BB8 09A8+00 2/2 0/0 0/0 .text dKy_setLight_nowroom_common__Fcf */
-// NONMATCHING - some issues with lightStatusPt loads
void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
@@ -4386,7 +4387,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
lightStatusPt[i + 2].mDistFn = (GXDistAttnFn)room_light_info[i].dist_atten_type;
lightStatusPt[i + 2].mCutoff = room_light_info[i].spotCutoff;
dKy_lightdir_set(room_light_info[i].directionX, room_light_info[i].directionY,
- &lightStatusPt[i + 2].mLightDir);
+ &((&lightStatusPt[i] + 2))->mLightDir);
} else {
lightStatusPt[i + 2].mRefDist = 0.0f;
lightStatusPt[i + 2].mRefBrightness = 0.99999f;
@@ -4402,11 +4403,11 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
lightMask |= lightMaskData[3];
if (i == 0) {
- lightStatusPt[i + 2].position = kankyo->sun_pos;
+ ((&lightStatusPt[i] + 2))->position = kankyo->sun_pos;
} else if (camera != 0) {
- lightStatusPt[i + 2].position = camera->lookat.eye + kankyo->moon_pos;
+ ((&lightStatusPt[i] + 2))->position = camera->lookat.eye + kankyo->moon_pos;
} else {
- lightStatusPt[i + 2].position = kankyo->moon_pos;
+ ((&lightStatusPt[i] + 2))->position = kankyo->moon_pos;
}
lightStatusPt[i + 2].mRefDist = 10000.0f;
@@ -4423,17 +4424,17 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
J3DLightInfo* room_light = &room_tevstr->mLights[i].getLightInfo();
if (room_light != NULL) {
- lightStatusPt[i + 2].color =
+ ((&lightStatusPt[i] + 2))->color =
dKy_light_influence_col(&room_light->mColor, light_ratio);
} else {
- lightStatusPt[i + 2].color =
+ ((&lightStatusPt[i] + 2))->color =
dKy_light_influence_col(&g_env_light.dungeonlight[i].mColor, light_ratio);
}
if (room_no == dComIfGp_roomControl_getStayNo() && room_light_info != NULL &&
i < room_light_info_num)
{
- g_env_light.dungeonlight[i].mPosition = lightStatusPt[i + 2].position;
+ g_env_light.dungeonlight[i].mPosition = ((&lightStatusPt[i] + 2))->position;
g_env_light.dungeonlight[i].mRefDistance = lightStatusPt[i + 2].mRefDist;
g_env_light.dungeonlight[i].mCutoffAngle = lightStatusPt[i + 2].mCutoff;
g_env_light.dungeonlight[i].mAngleAttenuation = lightStatusPt[i + 2].mSpotFn;
@@ -4476,7 +4477,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
lightStatusPt[j + 2].position.z = kankyo->field_0x0c18[i].mPos.z;
}
- lightStatusPt[j + 2].color = dKy_light_influence_col(&kankyo->field_0x0c18[i].mColor, light_ratio);
+ ((&lightStatusPt[j] + 2))->color = dKy_light_influence_col(&kankyo->field_0x0c18[i].mColor, light_ratio);
lightStatusPt[j + 2].mRefDist = kankyo->field_0x0c18[i].mRefDistance;
lightStatusPt[j + 2].mRefBrightness = 0.99999f;
lightStatusPt[j + 2].field_0x1c = 1;
@@ -4486,7 +4487,7 @@ void dKy_setLight_nowroom_common(char room_no, f32 light_ratio) {
dKy_lightdir_set(kankyo->field_0x0c18[i].mAngleX,
kankyo->field_0x0c18[i].mAngleY,
- &lightStatusPt[j + 2].mLightDir);
+ &((&lightStatusPt[j] + 2))->mLightDir);
break;
}
}
@@ -4505,33 +4506,35 @@ void dKy_setLight_nowroom(char room_no) {
}
/* 801A6C58-801A6D4C 1A1598 00F4+00 0/0 1/1 2/2 .text dKy_setLight_nowroom_grass__Fcf */
-// NONMATCHING - weird branching
void dKy_setLight_nowroom_grass(char room_no, f32 light_ratio) {
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
MtxP view_mtx = j3dSys.getViewMtx();
+ dStage_FileList_dt_c* filelist = NULL;
if (dComIfGp_roomControl_getStatusRoomDt(room_no) != NULL) {
- dStage_FileList_dt_c* filelist = dComIfGp_roomControl_getStatusRoomDt(room_no)->getFileListInfo();
+ filelist = dComIfGp_roomControl_getStatusRoomDt(room_no)->getFileListInfo();
if (filelist == NULL) {
return;
}
+ } else {
+ return;
+ }
- int grass_light = dStage_FileList_dt_GRASSLIGHT(filelist);
+ int grass_light = dStage_FileList_dt_GRASSLIGHT(filelist);
- f32 grass_light_ratio;
- if (grass_light >= 0xFF) {
- grass_light_ratio = 1.0f;
- } else {
- grass_light_ratio = grass_light / 100.0f;
- }
+ f32 grass_light_ratio;
+ if (grass_light >= 0xFF) {
+ grass_light_ratio = 1.0f;
+ } else {
+ grass_light_ratio = grass_light / 100.0f;
+ }
- if (light_ratio == 0.0f) {
- dKy_setLight_nowroom_common(room_no, grass_light_ratio);
- } else {
- dKy_setLight_nowroom_common(room_no, light_ratio);
- }
+ if (light_ratio == 0.0f) {
+ dKy_setLight_nowroom_common(room_no, grass_light_ratio);
+ } else {
+ dKy_setLight_nowroom_common(room_no, light_ratio);
}
}
@@ -5948,7 +5951,6 @@ void dKy_twilight_camelight_set() {
}
/* 801AB01C-801AB270 1A595C 0254+00 1/1 0/0 0/0 .text dKy_WaterIn_Light_set__Fv */
-// NONMATCHING - some weirdness with temp stores
void dKy_WaterIn_Light_set() {
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
@@ -5956,6 +5958,9 @@ void dKy_WaterIn_Light_set() {
int sp10 = 0;
int spC = 0;
+ f32 var_f31, var_f30, var_f29, var_f28, var_f27, var_f26;
+ f32 var_f25 = -100000000.0f;
+ var_f29 = 200.0f;
int sp8 = 1;
if (strcmp(dComIfGp_getStartStageName(), "F_SP109") == 0 ||
@@ -5965,7 +5970,12 @@ void dKy_WaterIn_Light_set() {
sp8 = 3;
}
- for (int i = 0; i < 6; i++) {
+#if PLATFORM_SHIELD
+ for (int i = 0; i < 6; i++)
+#else
+ int i = 0;
+#endif
+ {
if (kankyo->field_0x0c18[i].field_0x26 != 1) {
dKy_twi_wolflight_set(i);
kankyo->field_0x0c18[i].mColor.r = 0x8A;
@@ -5973,9 +5983,9 @@ void dKy_WaterIn_Light_set() {
kankyo->field_0x0c18[i].mColor.b = 0xBC;
kankyo->field_0x0c18[i].mColor.a = 0xFD;
- f32 var_f26 = 0.0f;
+ var_f26 = 0.0f;
if (player_p != NULL) {
- f32 var_f31 = camera->lookat.eye.y - player_p->current.pos.y;
+ var_f31 = camera->lookat.eye.y - player_p->current.pos.y;
if (var_f31 < 0.0f) {
var_f31 = 0.0f;
}
@@ -5990,30 +6000,48 @@ void dKy_WaterIn_Light_set() {
kankyo->field_0x0c18[i].mAngleAttenuation = 2;
kankyo->field_0x0c18[i].mDistAttenuation = 3;
- f32* var_r30 = &kankyo->field_0x0c18[i].mRefDistance;
- f32* var_r29 = &kankyo->field_0x0c18[i].mCutoffAngle;
-
if (strcmp(dComIfGp_getStartStageName(), "D_MN01A") == 0) {
dBgS_CamGndChk_Wtr sp28;
cXyz sp1C;
sp8 = 1;
- *var_r29 = 60.0f;
+ kankyo->field_0x0c18[i].mCutoffAngle = 60.0f;
sp1C = camera->lookat.eye;
sp1C.y += 100000.0f;
sp28.SetPos(&sp1C);
- f32 var_f30 = (dComIfG_Bgsp().GroundCross(&sp28) - camera->lookat.eye.y) / 3000.0f;
+ var_f25 = dComIfG_Bgsp().GroundCross(&sp28);
+ var_f30 = (var_f25 - camera->lookat.eye.y) / 3000.0f;
if (var_f30 < 0.0f) {
var_f30 = 0.0f;
}
if (var_f30 > 1.0f) {
var_f30 = 1.0f;
}
- *var_r30 *= var_f30;
+ kankyo->field_0x0c18[i].mRefDistance *= var_f30;
+ }
+
+#if DEBUG
+ if (g_kankyoHIO.field_0x686 != 0) {
+ sp8 = g_kankyoHIO.field_0x686 - 1;
}
- f32 var_f29, var_f28, var_f27;
+ switch (sp8) {
+ case 0:
+ dDbVw_Report(0x176, 0x1c, "W-LS[S]");
+ break;
+ case 1:
+ dDbVw_Report(0x176, 0x1c, "W-LS[M]");
+ break;
+ case 2:
+ dDbVw_Report(0x176, 0x1c, "W-LS[L]");
+ break;
+ case 3:
+ dDbVw_Report(0x176, 0x1c, "W-LS[LL]");
+ break;
+ }
+#endif
+
switch (sp8) {
case 0:
case 1:
@@ -6023,7 +6051,6 @@ void dKy_WaterIn_Light_set() {
break;
case 2:
case 3:
- case 4:
default:
var_f29 = 200.0f;
var_f28 = 2.0f;
@@ -6031,13 +6058,39 @@ void dKy_WaterIn_Light_set() {
break;
}
- kankyo->field_0x127c = var_f29;
- *var_r30 *= var_f28;
- *var_r29 *= var_f27;
+#if DEBUG
+ if (g_kankyoHIO.field_0x6d9 == 0) {
+#endif
+ kankyo->field_0x127c = var_f29;
+ kankyo->field_0x0c18[i].mRefDistance *= var_f28;
+ kankyo->field_0x0c18[i].mCutoffAngle *= var_f27;
+#if DEBUG
+ }
+
+ static int S_mLighSize_pat_old = 0x63;
+ if (S_mLighSize_pat_old != g_kankyoHIO.field_0x686) {
+ S_mLighSize_pat_old = g_kankyoHIO.field_0x686;
+
+ g_kankyoHIO.field_0x6e0 = var_f29;
+ g_kankyoHIO.field_0x6e4 = var_f28;
+ g_kankyoHIO.field_0x6e8 = var_f27;
+ g_kankyoHIO.field_0x01c.dKankyo_lightHIOInfoUpDateF();
+ }
+
+ if (g_kankyoHIO.field_0x6d9 != 0) {
+ kankyo->field_0x127c = g_kankyoHIO.field_0x6e0;
+ kankyo->field_0x0c18[i].mRefDistance *= g_kankyoHIO.field_0x6e4;
+ kankyo->field_0x0c18[i].mCutoffAngle *= g_kankyoHIO.field_0x6e8;
+ }
+#endif
+
kankyo->field_0x0c18[i].field_0x26 = 1;
sp10 = 1;
+
+#if PLATFORM_SHIELD
+ break;
+#endif
}
- break;
}
}
diff --git a/src/d/d_kankyo_rain.cpp b/src/d/d_kankyo_rain.cpp
index dd95a4d08e..eafc35da51 100644
--- a/src/d/d_kankyo_rain.cpp
+++ b/src/d/d_kankyo_rain.cpp
@@ -2354,6 +2354,12 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* ppos, GXColor& unused, u8** tex) {
u8 draw_sun = false;
u16 date = dComIfGs_getDate();
+#if VERSION == VERSION_GCN_JPN
+ if (g_env_light.hide_vrbox) {
+ return;
+ }
+#endif
+
if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0) {
sun_packet->mMoonAlpha = 1.0f;
sun_packet->mSunAlpha = 0.0f;
@@ -2595,7 +2601,7 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* ppos, GXColor& unused, u8** tex) {
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_COPY);
-
+
size *= 2.3f;
color_reg0.a = 40.0f * sun_packet->mMoonAlpha;
@@ -2706,6 +2712,12 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) {
static s16 S_rot_work1 = 0;
static s16 S_rot_work2 = 0;
+#if VERSION == VERSION_GCN_JPN
+ if (g_env_light.hide_vrbox) {
+ return;
+ }
+#endif
+
Mtx camMtx;
Mtx rotMtx;
@@ -2724,7 +2736,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) {
if (!(sun_visibility < 0.1f)) {
dKy_set_eyevect_calc2(camera, &spFC, 8000.0f, 8000.0f);
-
+
GXColor color_reg0;
color_reg0.r = sun_packet->mColor.r;
color_reg0.g = sun_packet->mColor.g;
@@ -2768,7 +2780,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) {
MTXConcat(camMtx, rotMtx, camMtx);
GXLoadPosMtxImm(drawMtx, GX_PNMTX0);
GXSetCurrentMtx(GX_PNMTX0);
-
+
if (sun_packet->field_0x6c > 0.0f) {
spC = S_rot_work1 - 0x7F6;
spA = S_rot_work2 + 0x416B;
@@ -2783,7 +2795,7 @@ void dKyr_drawLenzflare(Mtx drawMtx, cXyz* ppos, GXColor& param_2, u8** tex) {
GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE);
GXSetNumTexGens(0);
GXSetNumTevStages(1);
-
+
color_reg0.a = sun_packet->field_0x6c * (15.0f * (spA8 * spA8 * spA8));
GXSetTevColor(GX_TEVREG0, color_reg0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
@@ -4089,16 +4101,22 @@ void dKyr_drawStar(Mtx drawMtx, u8** tex) {
csXyz(0, 30000, 19000),
};
+#if VERSION == VERSION_GCN_JPN
+ if (g_env_light.hide_vrbox) {
+ return;
+ }
+#endif
+
if (star_packet->mEffectNum != 0) {
if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0 && dComIfG_play_c::getLayerNo(0) == 0) {
gwolf_howl_stage = true;
- } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 ||
+ } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 ||
((strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0) && dComIfGp_roomControl_getStayNo() == 0))
{
// draw stars on the opposite skybox hemisphere as well for water reflections
draw_mirrored = true;
}
-
+
if (strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0 && dKy_daynight_check()) {
sp38 = true;
}
@@ -4125,7 +4143,7 @@ void dKyr_drawStar(Mtx drawMtx, u8** tex) {
moon_pos.z = -9072.0f + camera->lookat.eye.z;
}
}
-
+
mDoLib_project(&moon_pos, &moon_proj);
GXSetNumChans(1);
@@ -4570,12 +4588,17 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
GXTexObj texobj;
cXyz proj;
- int j;
- int k;
+ f32 rot;
+ f32 spCC;
int pass = 1;
-
f32 spC4 = 0.0f;
+#if VERSION == VERSION_GCN_JPN
+ if (g_env_light.hide_vrbox) {
+ return;
+ }
+#endif
+
cXyz sp15C;
cXyz sp150;
cXyz sp144;
@@ -4586,7 +4609,27 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
cXyz sp108;
cXyz spFC;
+ f32 spC0;
+ f32 spBC;
+ f32 spB8;
+ f32 spB4;
+ f32 spB0;
+ f32 spAC;
+ f32 spA8;
+ f32 spA4;
+ f32 spA0;
+ f32 sp9C;
+ f32 sp98;
+ f32 sp94;
+ f32 sp90;
+ f32 sp8C;
+
+ int sp88;
+ int sp84;
int sp80 = 0;
+ GXColor color_reg1;
+
+ int j, k;
if (camera2 != NULL) {
spC4 = camera2->mCamera.TrimHeight();
@@ -4599,11 +4642,14 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
return;
}
- f32 rot = cAngle::s2d(fopCamM_GetBank(camera));
- int sp88 = 0;
- f32 spCC = 100000.0f;
+ rot = cAngle::s2d(fopCamM_GetBank(camera));
+
+ sp88 = 0;
+ spCC = 100000.0f;
f32 unused;
+ f32 y_pos;
+
if (dComIfGd_getView() != NULL) {
f32 sp70 = 0.0f;
dStage_FileList_dt_c* filelist = NULL;
@@ -4613,15 +4659,15 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
if (filelist != NULL) {
sp70 = dStage_FileList_dt_SeaLevel(filelist);
+ }
- #ifdef DEBUG
- if (g_kankyoHIO.field_0x0b4) {
- sp70 = g_kankyoHIO.field_0x0b8;
- } else {
- g_kankyoHIO.field_0x0b8 = sp70;
- }
- #endif
+#ifdef DEBUG
+ if (g_kankyoHIO.field_0x0b4) {
+ sp70 = g_kankyoHIO.field_0x0b8;
+ } else {
+ g_kankyoHIO.field_0x0b8 = sp70;
}
+#endif
unused = 1.0f - (0.09f * (camera->lookat.eye.y - sp70));
}
@@ -4646,7 +4692,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
color.g = g_env_light.vrbox_kumo_bottom_col.g;
color.b = g_env_light.vrbox_kumo_bottom_col.b;
- GXColor color_reg1;
color_reg1.r = 0;
color_reg1.g = 0;
color_reg1.b = 0;
@@ -4665,7 +4710,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, color);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET);
-
+
if (pass == 0) {
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
GXSetZCompLoc(GX_FALSE);
@@ -4695,21 +4740,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
cXyz pos[4];
if (!(vrkumo_packet->mVrkumoEff[k].mAlpha <= 0.0000000001f) && (pass != 0 || !(vrkumo_packet->mVrkumoEff[k].mAlpha < 0.45f))) {
- f32 spC0;
- f32 spBC;
- f32 spB8;
- f32 spB4;
- f32 spB0;
- f32 spAC;
- f32 spA8;
- f32 spA4;
- f32 spA0;
- f32 sp9C;
- f32 sp98;
- f32 sp94;
- f32 sp90;
- f32 sp8C;
-
f32 sp68;
f32 sp64;
f32 sp60;
@@ -4721,13 +4751,13 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
static f32 howa_loop_cnt = 0.0f;
- #ifdef DEBUG
+#ifdef DEBUG
spAC = g_kankyoHIO.field_0x3f4;
spA8 = g_kankyoHIO.field_0x3f8;
- #else
+#else
spAC = 0.6f;
spA8 = 0.84f;
- #endif
+#endif
if (dKy_darkworld_check()) {
spAC = 0.8f;
@@ -4776,7 +4806,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
sp60 = sp68 * (0.2f + (0.2f * (k / 100.0f)));
sp5C = sp68 * (0.55f + (0.3f * (k / 100.0f)));
spFC = vrkumo_packet->mVrkumoEff[k].mPosition;
-
+
spA4 = 0.0f;
spA0 = 0.0f;
@@ -4896,18 +4926,21 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
pos[2] += camera->lookat.eye;
pos[3] += camera->lookat.eye;
- int sp84 = 0;
+ sp84 = 0;
if (dComIfGd_getView()->fovy > 40.0f) {
cXyz spF0;
+
+ f32 x;
+ f32 y;
+ f32 z;
for (int sp3C = 0; sp3C < 4; sp3C++) {
spF0 = pos[sp3C];
- Vec sp48;
- sp48.x = 100.0f;
- sp48.y = 100.0f;
- sp48.z = 100.0f;
+ x = 100.0f;
+ y = 100.0f;
+ z = 100.0f;
mDoLib_project(&spF0, &proj);
- if (proj.x > -sp48.x && proj.x < (608.0f + sp48.x) && proj.y > -sp48.y && proj.y < (458.0f + sp48.z)) {
+ if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) {
break;
}
@@ -4944,17 +4977,20 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
sp84 = 0;
if (dComIfGd_getView()->fovy > 40.0f) {
cXyz spE4;
+
+ f32 x;
+ f32 y;
+ f32 z;
for (int sp2C = 0; sp2C < 4; sp2C++) {
spE4 = pos[sp2C];
spE4.y = -pos[sp2C].y;
- Vec sp38;
- sp38.x = 100.0f;
- sp38.y = 100.0f;
- sp38.z = 100.0f;
+ x = 100.0f;
+ y = 100.0f;
+ z = 100.0f;
mDoLib_project(&spE4, &proj);
- if (proj.x > -sp38.x && proj.x < (608.0f + sp38.x) && proj.y > -sp38.y && proj.y < (458.0f + sp38.z)) {
+ if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) {
break;
}
@@ -4965,7 +5001,6 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
}
if (sp84 == 0) {
- f32 y_pos;
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
y_pos = -pos[0].y;
@@ -5443,7 +5478,7 @@ void dKyr_odour_draw(Mtx drawMtx, u8** tex) {
for (int i = 0; i < 2000; i++) {
EF_ODOUR_EFF* effect = &odour_packet->mOdourEff[i];
- camera_class* camera = dComIfGp_getCamera(0);
+ camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
cXyz pos[4];
Vec sp64, sp58;
cXyz sp4C;
diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp
index 6f54360418..c530b8de15 100644
--- a/src/f_op/f_op_actor_mng.cpp
+++ b/src/f_op/f_op_actor_mng.cpp
@@ -2104,7 +2104,7 @@ bool fopAcM_lc_c::lineCheck(cXyz const* i_start, cXyz const* i_end, fopAc_ac_c c
/* 8001DCBC-8001DD1C 0185FC 0060+00 1/1 10/10 108/108 .text gndCheck__11fopAcM_gc_cFPC4cXyz */
bool fopAcM_gc_c::gndCheck(cXyz const* i_pos) {
mGndCheck.SetPos(i_pos);
- mGroundY = dComIfG_Bgsp().GroundCross(&mGndCheck);
+ mGroundY = (f32)dComIfG_Bgsp().GroundCross(&mGndCheck);
return -1000000000.0f != mGroundY;
}
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index 5288636ec2..3c28dc8e07 100644
--- a/src/m_Do/m_Do_ext.cpp
+++ b/src/m_Do/m_Do_ext.cpp
@@ -3,23 +3,26 @@
* Model, Animation, and Heap Functions
*/
-#include "m_Do/m_Do_ext.h"
-#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
+#include "d/dolzel.h"
+
+#include <dolphin/gf/GFPixel.h>
+#include <dolphin/gx.h>
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
+#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h"
#include "JSystem/JKernel/JKRAssertHeap.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
-#include "JSystem/JUtility/JUTResFont.h"
#include "JSystem/JUtility/JUTCacheFont.h"
-#include "stdio.h"
+#include "JSystem/JUtility/JUTResFont.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
-#include <dolphin/gx.h>
-#include <dolphin/gf/GFPixel.h>
#include "global.h"
+#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_mtx.h"
+#include "stdio.h"
/* 8000D0AC-8000D320 0079EC 0274+00 5/5 0/0 0/0 .text
* mDoExt_setJ3DData__FPA4_fPC16J3DTransformInfoUs */
@@ -305,6 +308,12 @@ void mDoExt_modelTexturePatch(J3DModelData* i_modelData) {
}
}
+static void dummy1() {
+ ((J3DTevBlock*)NULL)->patch();
+ ((J3DColorBlock*)NULL)->patchLight();
+ ((J3DPEBlock*)NULL)->patch();
+}
+
/* 8000DBD8-8000DC2C 008518 0054+00 3/3 0/0 0/0 .text mDoExt_modelDiff__FP8J3DModel */
static void mDoExt_modelDiff(J3DModel* i_model) {
i_model->calcMaterial();
@@ -391,6 +400,92 @@ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) {
}
}
+// this needs a lot of work still
+static void dummy2() {
+ J3DGXColor gxColor;
+ J3DColorChan colorChan;
+ J3DTexCoord texCoord;
+ J3DGXColorS10 gxColorS10;
+ J3DIndTevStage indTevStage;
+ J3DTevOrder tevOrder;
+ J3DTevSwapModeTable tevSwapModeTable;
+ J3DIndTexOrder indTexOrder;
+ J3DIndTexMtx indTexMtx;
+ J3DIndTexCoordScale indTexCoordScale;
+
+ J3DColorBlock* colorBlock = NULL;
+ colorBlock->setColorChanNum((const u8*)NULL);
+ colorBlock->setMatColor(0, gxColor);
+ colorBlock->setColorChan(0, colorChan);
+ colorBlock->setAmbColor(0, gxColor);
+
+ J3DTexGenBlock* texGenBlock = NULL;
+ texGenBlock->setTexGenNum((const u32*)NULL);
+ texGenBlock->setTexCoord(0, NULL);
+
+ J3DTevBlock* tevBlock = NULL;
+ tevBlock->setTevStageNum((const u8*)NULL);
+ tevBlock->setTevColor(0, J3DGXColorS10());
+ tevBlock->setTevKColor(0, gxColor);
+ tevBlock->setTevOrder(0, tevOrder);
+ tevBlock->setTevKColorSel(0, (const u8*)NULL);
+ tevBlock->setTevKAlphaSel(0, (const u8*)NULL);
+ tevBlock->setTevSwapModeTable(0, tevSwapModeTable);
+ tevBlock->setTexNo(0, (const u16*)NULL);
+ J3DTevStage tevStage;
+ tevBlock->setTevStage(0, tevStage);
+ tevBlock->setIndTevStage(0, indTevStage);
+
+ J3DIndBlock* indBlock = NULL;
+ indBlock->setIndTexStageNum(0);
+ indBlock->setIndTexMtx(0, indTexMtx);
+ indBlock->setIndTexCoordScale(0, indTexCoordScale);
+ indTexCoordScale.~J3DIndTexCoordScale();
+
+ J3DPEBlock* peBlock = NULL;
+ J3DAlphaComp alphaComp;
+ peBlock->setAlphaComp(alphaComp);
+ J3DBlend blend;
+ peBlock->setBlend(blend);
+ J3DZMode zMode;
+ peBlock->setZMode(zMode);
+ u8 compLoc;
+ peBlock->setZCompLoc(&compLoc);
+
+ colorBlock->getColorChanNum();
+ colorBlock->getMatColor(0);
+ colorBlock->getColorChan(0);
+ colorBlock->getAmbColor(0);
+
+ texGenBlock->getTexGenNum();
+ texGenBlock->getTexCoord(0);
+ texGenBlock->getTexMtx(0);
+
+ tevBlock->getTevStageNum();
+ tevBlock->getTevColor(0);
+ tevBlock->getTevKColor(0);
+ tevBlock->getTevOrder(0);
+ tevBlock->getTevKColorSel(0);
+ tevBlock->getTevKAlphaSel(0);
+ tevBlock->getTevSwapModeTable(0);
+ tevBlock->getTexNo(0);
+ tevBlock->getTevStage(0);
+ tevBlock->getIndTevStage(0);
+
+ indBlock = NULL;
+ indBlock->getIndTexStageNum();
+ indBlock->getIndTexOrder(0);
+ indBlock->getIndTexMtx(0);
+ indBlock->getIndTexCoordScale(0);
+
+ peBlock = NULL;
+ peBlock->getFog();
+ peBlock->getAlphaComp();
+ peBlock->getBlend();
+ peBlock->getZMode();
+ peBlock->getZCompLoc();
+}
+
/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text create__21mDoExt_invisibleModelFP8J3DModelUc */
int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) {
J3DModelData* model_data = i_model->getModelData();
@@ -491,19 +586,15 @@ void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareMo
}
}
-/* ############################################################################################## */
-/* 803740FC-803740FC 00075C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-// MWCC ignores mapping of some japanese characters using the
-// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
+static const char* dummy3() {
+ // MWCC ignores mapping of some japanese characters using the
+ // byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
-// "ソリッドヒープちゃうがな!\n"
-// "This isn't a solid heap! \n"
-SECTION_DEAD static char const* const stringBase_803740FC =
- "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82\xAA\x82"
- "\xC8\x81\x49\x0A";
-#pragma pop
+ // "ソリッドヒープちゃうがな!\n"
+ // "This isn't a solid heap! \n"
+ return "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82"
+ "\xAA\x82\xC8\x81\x49\x0A";
+}
/* 8000EA80-8000ECC0 0093C0 0240+00 0/0 0/0 6/6 .text mDoExt_setupStageTexture__FP12J3DModelData
*/
@@ -1387,7 +1478,7 @@ int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_
// NONMATCHING regalloc
void mDoExt_McaMorfSO::calc() {
if (mpModel != NULL) {
- u16 jnt_no = J3DMtxCalc::getJoint()->getJntNo();
+ u16 jnt_no = getJoint()->getJntNo();
j3dSys.setCurrentMtxCalc(this);
J3DTransformInfo trans;
@@ -1494,7 +1585,7 @@ void mDoExt_McaMorfSO::setAnm(J3DAnmTransform* i_anm, int i_attr, f32 i_morf, f3
setPlayMode(i_attr);
setPlaySpeed(i_rate);
-
+
if (i_rate >= 0.0f) {
setFrame(i_start);
} else {
@@ -1669,7 +1760,7 @@ mDoExt_McaMorf2::~mDoExt_McaMorf2() {
*var_r29 = *sp2C;
JMAEulerToQuat(var_r29->mRotation.x, var_r29->mRotation.y, var_r29->mRotation.z, var_r26);
-
+
var_r29++;
var_r26++;
}
@@ -1745,7 +1836,7 @@ void mDoExt_McaMorf2::calc() {
if (mpCallback1 != NULL) {
mpCallback1->execute(jnt_no, &spF0[0]);
}
-
+
JMAEulerToQuat(spF0[0].mRotation.x, spF0[0].mRotation.y, spF0[0].mRotation.z,
var_r27);
J3DMtxCalcCalcTransformMaya::calcTransform(spF0[0]);
@@ -1886,7 +1977,7 @@ void mDoExt_McaMorf2::setAnm(J3DAnmTransform* param_0, J3DAnmTransform* param_1,
setPlayMode(i_attr);
setPlaySpeed(i_speed);
-
+
if (i_speed >= 0.0f) {
setFrame(i_start);
} else {
@@ -2044,7 +2135,6 @@ void mDoExt_invJntPacket::draw() {
}
/* 800123D0-800125DC 00CD10 020C+00 2/2 0/0 0/0 .text init__15mDoExt_3Dline_cFUsii */
-// NONMATCHING - regalloc, probably some types are wrong
int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
field_0x0 = new cXyz[param_0];
if (field_0x0 == NULL) {
@@ -2052,7 +2142,7 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
}
if (param_1 != 0) {
- field_0x4 = new f32[param_1];
+ field_0x4 = new f32[param_0];
if (field_0x4 == NULL) {
return 0;
}
@@ -2072,23 +2162,23 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
return 0;
}
- field_0x10 = new mDoExt_3Dline_field_0x10_c[param_0];
+ field_0x10 = new mDoExt_3Dline_field_0x10_c[sp20];
if (field_0x10 == NULL) {
return 0;
}
- field_0x14 = new mDoExt_3Dline_field_0x10_c[param_0];
+ field_0x14 = new mDoExt_3Dline_field_0x10_c[sp20];
if (field_0x14 == NULL) {
return 0;
}
if (param_2) {
- field_0x18 = new mDoExt_3Dline_field_0x18_c[param_0];
+ field_0x18 = new mDoExt_3Dline_field_0x18_c[sp20];
if (field_0x18 == NULL) {
return 0;
}
- field_0x1c = new mDoExt_3Dline_field_0x18_c[param_0];
+ field_0x1c = new mDoExt_3Dline_field_0x18_c[sp20];
if (field_0x1c == NULL) {
return 0;
}
@@ -3107,17 +3197,3 @@ OSThread* mDoExt_GetCurrentRunningThread() {
return thread;
}
-
-/* 80014E20-80014E7C 00F760 005C+00 1/0 2/2 0/0 .text __dt__26mDoExt_3DlineMatSortPacketFv */
-mDoExt_3DlineMatSortPacket::~mDoExt_3DlineMatSortPacket() {
-}
-
-/* 80014E7C-80014E84 00F7BC 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat1_cFv */
-int mDoExt_3DlineMat1_c::getMaterialID() {
- return 1;
-}
-
-/* 80014E84-80014E8C 00F7C4 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat0_cFv */
-int mDoExt_3DlineMat0_c::getMaterialID() {
- return 0;
-}