d_a_obj_wsStick, d_a_obj_onsenTaru OK (#2268)

* d_a_obj_wsStick, d_a_obj_onsenTaru OK

* d_a_obj_pdtile OK

* d_a_obj_stone equivalent

* d_a_npc_lf OK

* Z2SoundMgr OK

* Remove fixed nonmatching comment

* d_a_obj_kantera OK

* Remove unneeded header

* daMyna_c::deleteItem matching

* d_a_obj_crvsteel OK
This commit is contained in:
hatal175
2024-12-24 12:36:01 +02:00
committed by GitHub
parent e3842d6d39
commit 87f3899f11
30 changed files with 1964 additions and 3000 deletions
+11 -8
View File
@@ -119,7 +119,7 @@ void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
}
}
field_0x340[idx] = **param_0;
Vec cam_pos = Z2GetAudience()->getAudioCamPos();
Vec cam_pos = Z2GetAudience()->getAudioCamPos(0);
if (field_0x340[idx].y > cam_pos.y) {
field_0x340[idx].y = cam_pos.y;
}
@@ -266,19 +266,19 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
break;
case Z2SE_SY_TALK_START:
case Z2SE_SY_TALK_END:
if (Z2GetSceneMgr()->getCurrentSceneNum() != 0) {
if (Z2GetStatusMgr()->getDemoStatus() != 0) {
return false;
}
break;
case Z2SE_SY_TALK_NEXT:
if (Z2GetSceneMgr()->isMovieDemo()) {
if (Z2GetStatusMgr()->isMovieDemo()) {
i_soundID = Z2SE_SY_DEMO_MESSAGE_NEXT;
}
break;
case Z2SE_SY_TALK_WIN_CLOSE:
if (Z2GetSceneMgr()->getCurrentSceneNum() == 1) {
if (Z2GetStatusMgr()->getDemoStatus() == 1) {
i_soundID = Z2SE_SY_TALK_END;
} else if (Z2GetSceneMgr()->isMovieDemo()) {
} else if (Z2GetStatusMgr()->isMovieDemo()) {
i_soundID = Z2SE_SY_DEMO_MESSAGE_END;
}
break;
@@ -287,11 +287,13 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
return false;
}
break;
case Z2SE_OBJ_CHANDELIER_SWING:
if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
case Z2SE_OBJ_CHANDELIER_SWING: {
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
if (i_pos->y > tmp.y) {
return false;
}
break;
}
case Z2SE_OBJ_CHANDLV5_SWING:
i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
Z2Calc::CURVE_SIGN_2);
@@ -313,7 +315,8 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
Z2Calc::CURVE_SIGN_2);
break;
case Z2SE_OBJ_L8_B_FOG_FLY:
if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
if (i_pos->y > tmp.y) {
return false;
}
break;
-4
View File
@@ -1,5 +1,4 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SoundMgr
//
@@ -169,7 +168,6 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
/* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */
// NONMATCHING extra load
void Z2SoundMgr::calc() {
mSeMgr.calc();
if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) {
@@ -358,7 +356,6 @@ void Z2SoundMgr::initParams() {
/* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text
* multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */
// NONMATCHING extra load
void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
@@ -373,7 +370,6 @@ void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
/* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID
*/
// NONMATCHING extra load
bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
if (i_soundID.isAnonymous()) {
return false;
+1 -1
View File
@@ -463,7 +463,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
if (param_1 == NULL || Z2GetLink() == NULL || Z2GetLink()->getCurrentPos() == NULL) {
return;
}
Vec local_60 = Z2GetAudience()->getAudioCamPos();
Vec local_60 = Z2GetAudience()->getAudioCamPos(0);
f32 dVar13 = sqrtf(VECSquareDistance(param_1, &local_60));
if (dVar13 > 2100.0f && field_0x04) {
field_0x04->stop();
+1 -1
View File
@@ -847,7 +847,7 @@ void daE_OctBg_c::damage_check() {
dScnPly_c::setPauseTimer(0);
field_0x8c0.ClrTgHit();
field_0x5bc.startCreatureVoice(Z2SE_EN_BG_V_DAMAGE, -1);
if (field_0xb30.mpCollider->ChkAtType(0x4000)) {
if (field_0xb30.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
setAction(&daE_OctBg_c::hook);
} else {
setAction(&daE_OctBg_c::damage);
+4 -4
View File
@@ -1362,12 +1362,11 @@ void daMyna_c::deleteItem(int i_itemIndex) {
}
/* 80949144-80949190 0035C4 004C+00 0/0 0/0 0/0 .text deleteItem__8daMyna_cFUi */
// Nonmatching, no clue what's going on here
void daMyna_c::deleteItem(fpc_ProcID i_itemId) {
for (int i = 0; i < mNumShopItems; i++) {
if (i_itemId == mShopItems[i].mTargetActorID) {
mShopItems[i].mTargetActorID = -1;
mShopItems[i].mItemStatus = 4;
mShopItems[i_itemId].mTargetActorID = -1;
mShopItems[i_itemId].mItemStatus = 4;
}
}
}
@@ -1791,7 +1790,7 @@ void daMyna_c::playDefaultWaitAnime() {
setAnimeType(1, 0.0f);
}
break;
case 6:
case 6: {
cXyz local_58;
cXyz local_64;
cXyz stack_70;
@@ -1818,6 +1817,7 @@ void daMyna_c::playDefaultWaitAnime() {
setAnimeType(1, 6.0f);
}
break;
}
case 5:
cXyz local_94;
cXyz stack_a0;
+81 -83
View File
@@ -55,7 +55,7 @@ static int daNPC_LF_Draw(npc_lf_class* i_this) {
for (int i = 0; i < i_this->mIter; i++, fish++) {
if (fish->field_0x17 == 0) {
if (j == 0) {
g_env_light.settingTevStruct(0, &fish->field_0x04, &i_this->tevStr);
g_env_light.settingTevStruct(0, &fish->mPos, &i_this->tevStr);
}
j++;
@@ -77,151 +77,150 @@ static u8 data_80A6AA90;
/* 80A6AAA0-80A6AABC 000018 001C+00 4/4 0/0 0/0 .bss l_HIO */
static daNPC_LF_HIO_c l_HIO;
f32 dummyLiteral1() { return 50.0f; }
f32 dummyLiteral2() { return 0.0f; }
/* 80A69D90-80A6A1B8 000310 0428+00 1/1 0/0 0/0 .text npc_lf_move__FP10fopAc_ac_cP4lf_s
*/
// NONMATCHING - still missing some instructions + float literals
static void npc_lf_move(fopAc_ac_c* param_0, lf_s* param_1) {
static void npc_lf_move(fopAc_ac_c* param_0, lf_s* pFish) {
cXyz pos;
s16 maxStepAngle;
f32 maxStep;
if ((u8)(param_1->field_0x18) == 0) {
param_1->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
if ((pFish->field_0x18 & 7) == 0) {
pFish->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
}
switch (param_1->field_0x1c) {
switch (pFish->field_0x1c) {
case 0:
if (param_1->field_0x38[0] == 0) {
if (pFish->field_0x38[0] == 0) {
for (int i = 0; i < 100; i++) {
param_1->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
param_1->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
param_1->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
pFish->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
pFish->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
pFish->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
pos = param_1->field_0x20 - param_1->field_0x04;
pos = pFish->field_0x20 - pFish->mPos;
pos.y = 0.0f;
if (pos.abs() > 250.0f) {
param_1->field_0x1c = 1;
param_1->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
pFish->field_0x1c = 1;
pFish->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
break;
}
}
}
param_1->field_0x40 = 0.1f;
maxStepAngle = 0x400;
maxStep = 0.5f;
break;
case 1:
if (param_1->field_0x38[0] != 0) {
param_1->field_0x1c = 0;
param_1->field_0x38[0] = cM_rndF(10.0f);
}
param_1->field_0x40 = l_HIO.field_0x0c;
pFish->field_0x40 = 0.1f;
maxStepAngle = 0;
maxStep = 0.05f;
break;
case 1:
if (pFish->field_0x38[0] == 0) {
pFish->field_0x1c = 0;
pFish->field_0x38[0] = 10.0f + cM_rndF(10.0f);
}
pFish->field_0x40 = l_HIO.field_0x0c;
maxStepAngle = 0x400;
maxStep = 0.5f;
break;
}
if (param_1->field_0x38[1] == 0) {
if (pFish->field_0x38[1] != 0) {
maxStep = 0.5f;
param_1->field_0x40 = l_HIO.field_0x14;
pFish->field_0x40 = l_HIO.field_0x14;
maxStepAngle = 0x600;
} else {
if (param_1->mDistFromPlayer < l_HIO.field_0x18) {
param_1->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
if (pFish->mDistFromPlayer < l_HIO.field_0x18) {
pFish->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
if (param_1->field_0x1c == 1)
param_1->field_0x1c = 0;
if (pFish->field_0x1c == 1)
pFish->field_0x1c = 0;
}
}
pos = param_1->field_0x20 - param_1->field_0x04;
s16 old_pos_y = param_1->field_0x10.y;
pos = pFish->field_0x20 - pFish->mPos;
s16 old_pos_y = pFish->mAngle.y;
cLib_addCalcAngleS2(&param_1->field_0x10.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
cLib_addCalcAngleS2(&param_1->field_0x10.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
cLib_addCalcAngleS2(&pFish->mAngle.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
cLib_addCalcAngleS2(&pFish->mAngle.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
f32 float1 = (old_pos_y - param_1->field_0x10.y);
float1 *= 5.0f;
f32 float2 = 4000.0f;
old_pos_y -= pFish->mAngle.y;
f32 float1 = old_pos_y * 5.0f;
if (float1 > 4000.0f) {
if (float1 < -4000.0f) {
float2 = -4000.0f;
}
float1 = 4000.0f;
} else {
float2 = 4000.0f;
if (float1 < -4000.0f) {
float1 = -4000.0f;
}
}
cLib_addCalc2(&param_1->field_0x58, float2, 0.5f, 1000.0f);
cLib_addCalc2(&param_1->field_0x44, (param_1->field_0x3c * l_HIO.field_0x08), 1.0f, maxStep);
cLib_addCalc2(&pFish->field_0x58, float1, 0.5f, 1000.0f);
cLib_addCalc2(&pFish->field_0x44, (pFish->field_0x3c * l_HIO.field_0x10), 1.0f, maxStep);
}
/* 80A6A1B8-80A6A420 000738 0268+00 1/1 0/0 0/0 .text action__FP10fopAc_ac_cP4lf_s */
// NONMATCHING - second for loop incorrect
static void action(fopAc_ac_c* param_0, lf_s* param_1) {
static void action(fopAc_ac_c* param_0, lf_s* pFish) {
cXyz pos;
param_1->field_0x18++;
pFish->field_0x18++;
for (int i = 0; i < 2; i++) {
if (param_1->field_0x38[i] != 0) {
param_1->field_0x38[i]--;
if (pFish->field_0x38[i] != 0) {
pFish->field_0x38[i]--;
}
}
switch (param_1->mActionMode) {
switch (pFish->mActionMode) {
case npc_lf_class::ACT_MOVE:
npc_lf_move(param_0,param_1);
npc_lf_move(param_0,pFish);
}
cMtx_YrotS(*calc_mtx,param_1->field_0x10.y);
cMtx_XrotM(*calc_mtx,param_1->field_0x10.x);
cMtx_YrotS(*calc_mtx,pFish->mAngle.y);
cMtx_XrotM(*calc_mtx,pFish->mAngle.x);
pos.x = 0.0f;
pos.y = 0.0f;
pos.z = param_1->field_0x44 * l_HIO.field_0x08;
pos.z = pFish->field_0x44 * l_HIO.field_0x08;
MtxPosition(&pos,&pos);
param_1->field_0x04 += pos;
pFish->mPos += pos;
cLib_addCalc2(&param_1->field_0x3c,param_1->field_0x40,1.0f,0.2f);
cLib_addCalc2(&param_1->field_0x5c,(param_1->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
cLib_addCalc2(&pFish->field_0x3c,pFish->field_0x40,1.0f,0.2f);
cLib_addCalc2(&pFish->field_0x5c,(pFish->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
param_1->field_0x4c[1] = param_1->field_0x3c * 13000.0f + 2000.0f;
param_1->field_0x4c[0] += param_1->field_0x4c[1];
pFish->field_0x4c[1] = pFish->field_0x3c * 13000.0f + 2000.0f;
pFish->field_0x4c[0] += pFish->field_0x4c[1];
for (int i = 0, j = 0; i < 3; i++, j++) {
f32 tmp = wp[j] * param_1->field_0x5c;
param_1->field_0x50[i] = tmp * cM_ssin(param_1->field_0x4c[j]);
for (int i = 0; i < 3; i++) {
pFish->field_0x50[i + 1] = cM_ssin(-15000 * i + pFish->field_0x4c[0]) * pFish->field_0x5c * wp[i];
}
param_1->field_0x50[0] = param_1->field_0x5c * cM_ssin((param_1->field_0x4c[0] - 7000)) * 0.3f;
pFish->field_0x50[0] = pFish->field_0x5c * cM_ssin((pFish->field_0x4c[0] - 7000)) * -0.3f;
mDoMtx_stack_c::transS(param_1->field_0x04.x,param_1->field_0x04.y,param_1->field_0x04.z);
mDoMtx_stack_c::YrotM(param_1->field_0x10.y + param_1->field_0x50[0]);
mDoMtx_stack_c::XrotM(param_1->field_0x10.x);
f32 value = param_1->field_0x60 * l_HIO.field_0x08;
mDoMtx_stack_c::transS(pFish->mPos.x,pFish->mPos.y,pFish->mPos.z);
mDoMtx_stack_c::YrotM(pFish->mAngle.y + pFish->field_0x50[0]);
mDoMtx_stack_c::XrotM(pFish->mAngle.x);
f32 value = pFish->field_0x60 * l_HIO.field_0x08;
mDoMtx_stack_c::scaleM(value,value,value);
param_1->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
pFish->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80A6A420-80A6A514 0009A0 00F4+00 2/1 0/0 0/0 .text daNPC_LF_Execute__FP12npc_lf_class
*/
// NONMATCHING - regalloc
static int daNPC_LF_Execute(npc_lf_class* i_this) {
camera_class* camera = dComIfGp_getCamera(0);
lf_s* fish = i_this->mFish;
static int daNPC_LF_Execute(npc_lf_class* i_this2) {
npc_lf_class* i_this = (npc_lf_class*) i_this2;
view_class* camera;
lf_s* fish;
cXyz pos;
cXyz pos2;
camera = dComIfGp_getCamera(0);
fish = i_this->mFish;
for (int i = 0; i < i_this->mIter; i++, fish++) {
cXyz pos;
pos.x = fish->field_0x04.x - camera->lookat.eye.x;
pos.z = fish->field_0x04.z - camera->lookat.eye.z;
pos.x = fish->mPos.x - camera->lookat.eye.x;
pos.z = fish->mPos.z - camera->lookat.eye.z;
f32 res = JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z));
if (res < 1500.0f) {
if (JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z)) < 1500.0f) {
fish->field_0x17 = 0;
action(i_this, fish);
} else {
@@ -276,7 +275,6 @@ static int useHeapInit(fopAc_ac_c* i_this) {
}
/* 80A6A650-80A6A8A4 000BD0 0254+00 1/0 0/0 0/0 .text daNPC_LF_Create__FP10fopAc_ac_c */
// NONMATCHING - float literals
static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
fopAcM_SetupActor(i_this, npc_lf_class);
npc_lf_class* a_this = static_cast<npc_lf_class*>(i_this);
@@ -319,10 +317,10 @@ static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
for (int i = 0; i < a_this->mIter; i++, fish++) {
fish->mActionMode = npc_lf_class::ACT_MOVE;
fish->field_0x04.x = a_this->current.pos.x + cM_rndFX(300.0f);
fish->field_0x04.y = a_this->current.pos.y + cM_rndFX(50.0f);
fish->field_0x04.z = a_this->current.pos.z + cM_rndFX(300.0f);
fish->field_0x10.y = cM_rndF(65536.0f);
fish->mPos.x = a_this->current.pos.x + cM_rndFX(300.0f);
fish->mPos.y = a_this->current.pos.y + cM_rndFX(50.0f);
fish->mPos.z = a_this->current.pos.z + cM_rndFX(300.0f);
fish->mAngle.y = cM_rndF(65536.0f);
fish->field_0x48 = cM_rndFX(0.1f) + 0.6f;
fish->field_0x60 = cM_rndFX(0.1f) + 0.6f;
// fish++;
+112 -274
View File
@@ -4,228 +4,169 @@
*/
#include "d/actor/d_a_obj_crvsteel.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" static void daObjCRVSTEEL_Create__FP10fopAc_ac_c();
extern "C" static void daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c();
extern "C" void OpenSet__15daObjCRVSTEEL_cFff();
extern "C" void CloseSet__15daObjCRVSTEEL_cFf();
extern "C" void CloseExecute__15daObjCRVSTEEL_cFv();
extern "C" void OpenExecute__15daObjCRVSTEEL_cFv();
extern "C" void Action__15daObjCRVSTEEL_cFv();
extern "C" void setBaseMtx__15daObjCRVSTEEL_cFv();
extern "C" static void daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c();
extern "C" static void daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c();
extern "C" void CreateHeap__15daObjCRVSTEEL_cFv();
extern "C" void create__15daObjCRVSTEEL_cFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" static bool daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c();
extern "C" void Create__15daObjCRVSTEEL_cFv();
extern "C" void Execute__15daObjCRVSTEEL_cFPPA3_A4_f();
extern "C" void Draw__15daObjCRVSTEEL_cFv();
extern "C" void Delete__15daObjCRVSTEEL_cFv();
extern "C" static void func_80BD61F0();
extern "C" static void func_80BD61F8();
extern "C" extern char const* const d_a_obj_crvsteel__stringBase0;
//
// External References:
//
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __dl__FPv();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" f32 mGroundY__11fopAcM_gc_c;
//
// Declarations:
//
/* 80BD5BB8-80BD5BD8 000078 0020+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Create__FP10fopAc_ac_c */
static void daObjCRVSTEEL_Create(fopAc_ac_c* param_0) {
// NONMATCHING
static int daObjCRVSTEEL_Create(fopAc_ac_c* i_this) {
return static_cast<daObjCRVSTEEL_c*>(i_this)->create();
}
/* 80BD5BD8-80BD5BFC 000098 0024+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c */
static void daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* param_0) {
// NONMATCHING
static int daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* i_this) {
i_this->MoveBGDelete();
return 1;
}
/* 80BD5BFC-80BD5C18 0000BC 001C+00 0/0 0/0 1/1 .text OpenSet__15daObjCRVSTEEL_cFff */
void daObjCRVSTEEL_c::OpenSet(f32 param_0, f32 param_1) {
// NONMATCHING
void daObjCRVSTEEL_c::OpenSet(f32 param_1, f32 param_2) {
speed.y = param_1;
mMaxHeight = current.pos.y + param_2;
mAction = 1;
}
/* 80BD5C18-80BD5C28 0000D8 0010+00 0/0 0/0 1/1 .text CloseSet__15daObjCRVSTEEL_cFf */
void daObjCRVSTEEL_c::CloseSet(f32 param_0) {
// NONMATCHING
void daObjCRVSTEEL_c::CloseSet(f32 param_1) {
speed.y = param_1;
mAction = 2;
}
/* ############################################################################################## */
/* 80BD6208-80BD620C 000000 0004+00 3/3 0/0 0/0 .rodata @3789 */
SECTION_RODATA static f32 const lit_3789 = 5.0f;
COMPILER_STRIP_GATE(0x80BD6208, &lit_3789);
/* 80BD5C28-80BD5CA0 0000E8 0078+00 1/1 0/0 0/0 .text CloseExecute__15daObjCRVSTEEL_cFv
*/
void daObjCRVSTEEL_c::CloseExecute() {
// NONMATCHING
current.pos.y += speed.y;
if (current.pos.y < mMinHeight) {
current.pos.y = mMinHeight;
fopAcM_effSmokeSet1(&mSmokeParticle1, &mSmokeParticle2, &current.pos, 0, 5.0f, &tevStr, 1);
mAction = 0;
}
}
/* 80BD5CA0-80BD5CC8 000160 0028+00 1/1 0/0 0/0 .text OpenExecute__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::OpenExecute() {
// NONMATCHING
current.pos.y += speed.y;
if (current.pos.y > mMaxHeight) {
current.pos.y = mMaxHeight;
}
}
/* 80BD5CC8-80BD5D10 000188 0048+00 1/1 0/0 0/0 .text Action__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::Action() {
// NONMATCHING
switch(mAction) {
case 0:
break;
case 1:
OpenExecute();
break;
case 2:
CloseExecute();
break;
}
}
/* 80BD5D10-80BD5D6C 0001D0 005C+00 1/1 0/0 0/0 .text setBaseMtx__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::setBaseMtx() {
// NONMATCHING
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle);
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80BD5D6C-80BD5D98 00022C 002C+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c */
static void daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* param_0) {
// NONMATCHING
static int daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* i_this) {
return i_this->Draw();
}
/* 80BD5D98-80BD5DB8 000258 0020+00 2/1 0/0 0/0 .text daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c
*/
static void daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* param_0) {
// NONMATCHING
static int daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* i_this) {
return i_this->MoveBGExecute();
}
/* ############################################################################################## */
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BD623C = "CrvSteel";
SECTION_DEAD static char const* const stringBase_80BD6245 = "U_CrvSteelGate.bmd";
#pragma pop
/* 80BD626C-80BD6270 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crvsteel__stringBase0;
static char* l_arcName = "CrvSteel";
/* 80BD5DB8-80BD5E30 000278 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::CreateHeap() {
// NONMATCHING
int daObjCRVSTEEL_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "U_CrvSteelGate.bmd");
JUT_ASSERT(86, modelData != 0);
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
return mModel != NULL ? TRUE : FALSE;
}
/* ############################################################################################## */
/* 80BD620C-80BD6210 000004 0004+00 0/1 0/0 0/0 .rodata @3900 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3900 = -9.0f;
COMPILER_STRIP_GATE(0x80BD620C, &lit_3900);
#pragma pop
/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
int daObjCRVSTEEL_c::create() {
fopAcM_SetupActor(this, daObjCRVSTEEL_c);
int rv = dComIfG_resLoad(&mPhase, l_arcName);
if (rv == cPhs_COMPLEATE_e) {
gravity = -9.0f;
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "U_CrvSteelGate.dzb");
JUT_ASSERT()
if (dzb_id == -1) {
OS_REPORT("dzbデータが見つかりませんでした!<%s>\n\n", l_arcName);
JUT_PANIC(443, dzb_id != -1);
}
rv = MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL);
if (rv == cPhs_ERROR_e) {
return rv;
}
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
&mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
cXyz cStack_30(current.pos.x, current.pos.y + 100.0f,
current.pos.z);
if (fopAcM_gc_c::gndCheck(&cStack_30)) {
current.pos.y = fopAcM_gc_c::getGroundY();
mMinHeight = current.pos.y;
}
fopAcM_setCullSizeBox(this, -400.0f, 0.0f, -50.0f, 400.0f, 900.0f, 50.0f);
daObjCRVSTEEL_Execute(this);
}
return rv;
}
/* 80BD6210-80BD6214 000008 0004+00 0/1 0/0 0/0 .rodata @3901 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3901 = 100.0f;
COMPILER_STRIP_GATE(0x80BD6210, &lit_3901);
#pragma pop
/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
*/
static int daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
return 1;
}
/* 80BD6214-80BD6218 00000C 0004+00 0/1 0/0 0/0 .rodata @3902 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3902 = -400.0f;
COMPILER_STRIP_GATE(0x80BD6214, &lit_3902);
#pragma pop
/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
int daObjCRVSTEEL_c::Create() {
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0, 1000.0f);
return cPhs_COMPLEATE_e;
}
/* 80BD6218-80BD621C 000010 0004+00 0/1 0/0 0/0 .rodata @3903 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3903[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BD6218, &lit_3903);
#pragma pop
/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
int daObjCRVSTEEL_c::Execute(Mtx** param_1) {
Action();
*param_1 = &mBgMtx;
setBaseMtx();
return 1;
}
/* 80BD621C-80BD6220 000014 0004+00 0/1 0/0 0/0 .rodata @3904 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3904 = -50.0f;
COMPILER_STRIP_GATE(0x80BD621C, &lit_3904);
#pragma pop
/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
int daObjCRVSTEEL_c::Draw() {
g_env_light.settingTevStruct(8, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mModel);
return 1;
}
/* 80BD6220-80BD6224 000018 0004+00 0/1 0/0 0/0 .rodata @3905 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3905 = 400.0f;
COMPILER_STRIP_GATE(0x80BD6220, &lit_3905);
#pragma pop
/* 80BD6224-80BD6228 00001C 0004+00 0/1 0/0 0/0 .rodata @3906 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3906 = 900.0f;
COMPILER_STRIP_GATE(0x80BD6224, &lit_3906);
#pragma pop
/* 80BD6228-80BD622C 000020 0004+00 0/1 0/0 0/0 .rodata @3907 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3907 = 50.0f;
COMPILER_STRIP_GATE(0x80BD6228, &lit_3907);
#pragma pop
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BD6258 = "U_CrvSteelGate.dzb";
#pragma pop
/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
int daObjCRVSTEEL_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}
/* 80BD6270-80BD6290 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCRVSTEEL_Method */
static actor_method_class l_daObjCRVSTEEL_Method = {
(process_method_func)daObjCRVSTEEL_Create__FP10fopAc_ac_c,
(process_method_func)daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c,
(process_method_func)daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c,
(process_method_func)daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c,
(process_method_func)daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c,
(process_method_func)daObjCRVSTEEL_Create,
(process_method_func)daObjCRVSTEEL_Delete,
(process_method_func)daObjCRVSTEEL_Execute,
(process_method_func)daObjCRVSTEEL_IsDelete,
(process_method_func)daObjCRVSTEEL_Draw,
};
/* 80BD6290-80BD62C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_CRVSTEEL */
@@ -246,107 +187,4 @@ extern actor_process_profile_definition g_profile_Obj_CRVSTEEL = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80BD62C0-80BD62E4 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80BD61F8,
(void*)NULL,
(void*)NULL,
(void*)func_80BD61F0,
};
/* 80BD62E4-80BD630C 000078 0028+00 1/1 0/0 0/0 .data __vt__15daObjCRVSTEEL_c */
SECTION_DATA extern void* __vt__15daObjCRVSTEEL_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__15daObjCRVSTEEL_cFv,
(void*)Create__15daObjCRVSTEEL_cFv,
(void*)Execute__15daObjCRVSTEEL_cFPPA3_A4_f,
(void*)Draw__15daObjCRVSTEEL_cFv,
(void*)Delete__15daObjCRVSTEEL_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::create() {
// NONMATCHING
}
/* 80BD6030-80BD60A0 0004F0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
*/
static bool daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
return true;
}
/* ############################################################################################## */
/* 80BD622C-80BD6230 000024 0004+00 0/1 0/0 0/0 .rodata @3947 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3947 = -1000.0f;
COMPILER_STRIP_GATE(0x80BD622C, &lit_3947);
#pragma pop
/* 80BD6230-80BD6234 000028 0004+00 0/1 0/0 0/0 .rodata @3948 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3948 = -500.0f;
COMPILER_STRIP_GATE(0x80BD6230, &lit_3948);
#pragma pop
/* 80BD6234-80BD6238 00002C 0004+00 0/1 0/0 0/0 .rodata @3949 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3949 = 1000.0f;
COMPILER_STRIP_GATE(0x80BD6234, &lit_3949);
#pragma pop
/* 80BD6238-80BD623C 000030 0004+00 0/1 0/0 0/0 .rodata @3950 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3950 = 500.0f;
COMPILER_STRIP_GATE(0x80BD6238, &lit_3950);
#pragma pop
/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::Create() {
// NONMATCHING
}
/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
void daObjCRVSTEEL_c::Execute(f32 (**param_0)[3][4]) {
// NONMATCHING
}
/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::Draw() {
// NONMATCHING
}
/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::Delete() {
// NONMATCHING
}
/* 80BD61F0-80BD61F8 0006B0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80BD61F0() {
// NONMATCHING
}
/* 80BD61F8-80BD6200 0006B8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80BD61F8() {
// NONMATCHING
}
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+82 -257
View File
@@ -4,124 +4,15 @@
*/
#include "d/actor/d_a_obj_kantera.h"
#include "d/actor/d_a_player.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_a_itembase_static.h"
#include "d/d_com_inf_game.h"
#include "d/d_item.h"
#include "d/d_item_data.h"
#include "d/d_procname.h"
#include "dol2asm.h"
#include "f_op/f_op_actor_mng.h"
//
// Forward References:
//
extern "C" static void Reflect__FP4cXyzRC13cBgS_PolyInfof();
extern "C" void __dt__8cM3dGPlaFv();
extern "C" void initBaseMtx__15daItemKantera_cFv();
extern "C" void setBaseMtx__15daItemKantera_cFv();
extern "C" void Create__15daItemKantera_cFv();
extern "C" bool __CreateHeap__15daItemKantera_cFv();
extern "C" void create__15daItemKantera_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void bg_check__15daItemKantera_cFv();
extern "C" void actionInit__15daItemKantera_cFv();
extern "C" void actionWaitInit__15daItemKantera_cFv();
extern "C" void actionWait__15daItemKantera_cFv();
extern "C" void initActionOrderGetDemo__15daItemKantera_cFv();
extern "C" void actionOrderGetDemo__15daItemKantera_cFv();
extern "C" void actionGetDemo__15daItemKantera_cFv();
extern "C" void execute__15daItemKantera_cFv();
extern "C" void draw__15daItemKantera_cFv();
extern "C" void _delete__15daItemKantera_cFv();
extern "C" static void daItemKantera_Draw__FP15daItemKantera_c();
extern "C" static void daItemKantera_Execute__FP15daItemKantera_c();
extern "C" static void daItemKantera_Delete__FP15daItemKantera_c();
extern "C" static void daItemKantera_Create__FP10fopAc_ac_c();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" static void func_80C39630();
extern "C" static void func_80C39638();
extern "C" extern char const* const d_a_obj_kantera__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
extern "C" void fopAcM_orderItemEvent__FP10fopAc_ac_cUsUs();
extern "C" void fopAcM_createItemForTrBoxDemo__FPC4cXyziiiPC5csXyzPC4cXyz();
extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void hide__12daItemBase_cFv();
extern "C" void show__12daItemBase_cFv();
extern "C" void chkDraw__12daItemBase_cFv();
extern "C" void CheckFieldItemCreateHeap__FP10fopAc_ac_c();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void setPtI_Id__14dEvt_control_cFUi();
extern "C" void endCheckOld__16dEvent_manager_cFPCc();
extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void checkItemGet__FUci();
extern "C" void DeleteBase__12daItemBase_cFPCc();
extern "C" bool clothCreate__12daItemBase_cFv();
extern "C" void DrawBase__12daItemBase_cFv();
extern "C" void RotateYBase__12daItemBase_cFv();
extern "C" void setListStart__12daItemBase_cFv();
extern "C" void settingBeforeDraw__12daItemBase_cFv();
extern "C" void setTevStr__12daItemBase_cFv();
extern "C" void setShadow__12daItemBase_cFv();
extern "C" void animEntry__12daItemBase_cFv();
extern "C" void chkFlag__12daItemBase_cFi();
extern "C" void getTevFrm__12daItemBase_cFv();
extern "C" void getBtpFrm__12daItemBase_cFv();
extern "C" void getShadowSize__12daItemBase_cFv();
extern "C" void getCollisionH__12daItemBase_cFv();
extern "C" void getCollisionR__12daItemBase_cFv();
extern "C" void __ml__4cXyzCFf();
extern "C" void cM_atan2s__Fff();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" void* field_item_res__10dItem_data[1020];
extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
extern "C" extern void* __vt__12daItemBase_c[17 + 1 /* padding */];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 data_80C39860[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80C39648-80C3968C 000000 0044+00 4/4 0/0 0/0 .rodata l_cyl_src */
const static dCcD_SrcCyl l_cyl_src = {
{
@@ -137,144 +28,21 @@ const static dCcD_SrcCyl l_cyl_src = {
} // mCyl
};
/* 80C3968C-80C39690 000044 0004+00 0/3 0/0 0/0 .rodata @3855 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3855[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80C3968C, &lit_3855);
#pragma pop
/* 80C39690-80C39698 000048 0008+00 0/1 0/0 0/0 .rodata @3856 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3856[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C39690, &lit_3856);
#pragma pop
/* 80C39698-80C396A0 000050 0008+00 0/1 0/0 0/0 .rodata @3857 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3857[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C39698, &lit_3857);
#pragma pop
/* 80C396A0-80C396A8 000058 0008+00 0/1 0/0 0/0 .rodata @3858 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3858[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C396A0, &lit_3858);
#pragma pop
/* 80C396DC-80C396E8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80C396E8-80C396FC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
};
#pragma pop
/* 80C396FC-80C39708 -00001 000C+00 0/1 0/0 0/0 .data @4184 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4184[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)actionInit__15daItemKantera_cFv,
};
#pragma pop
/* 80C39708-80C39714 -00001 000C+00 0/1 0/0 0/0 .data @4185 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4185[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)actionWait__15daItemKantera_cFv,
};
#pragma pop
/* 80C39714-80C39720 -00001 000C+00 0/1 0/0 0/0 .data @4186 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4186[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)actionOrderGetDemo__15daItemKantera_cFv,
};
#pragma pop
/* 80C39720-80C3972C -00001 000C+00 0/1 0/0 0/0 .data @4187 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_4187[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)actionGetDemo__15daItemKantera_cFv,
};
#pragma pop
/* 80C3972C-80C3975C 000050 0030+00 0/1 0/0 0/0 .data l_demoFunc$4183 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 l_demoFunc[48] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
static actor_method_class l_daItemKantera_Method = {
(process_method_func)daItemKantera_Create__FP10fopAc_ac_c,
(process_method_func)daItemKantera_Delete__FP15daItemKantera_c,
(process_method_func)daItemKantera_Execute__FP15daItemKantera_c,
0,
(process_method_func)daItemKantera_Draw__FP15daItemKantera_c,
};
/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
extern actor_process_profile_definition g_profile_Obj_Kantera = {
fpcLy_CURRENT_e, // mLayerID
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_Kantera, // mProcName
&g_fpcLf_Method.base, // sub_method
sizeof(daItemKantera_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
238, // mPriority
&l_daItemKantera_Method, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
UNK_REL_DATA
/* 80C38678-80C38974 000078 02FC+00 1/1 0/0 0/0 .text Reflect__FP4cXyzRC13cBgS_PolyInfof
*/
static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_1, f32 param_2) {
// NONMATCHING
static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_2, f32 param_3) {
cM3dGPla acStack_3c;
if (dComIfG_Bgsp().GetTriPla(param_2, &acStack_3c) != 0) {
cXyz cStack_48;
f32 dVar5 = i_xyz->absXZ();
C_VECReflect(i_xyz, &acStack_3c.mNormal, &cStack_48);
*i_xyz = (cStack_48 * dVar5) * param_3;
return i_xyz->absXZ();
}
return 0.0f;
}
/* 80C389BC-80C389F8 0003BC 003C+00 1/1 0/0 0/0 .text initBaseMtx__15daItemKantera_cFv */
@@ -347,8 +115,8 @@ int daItemKantera_c::create() {
}
/* 80C38F78-80C39068 000978 00F0+00 1/1 0/0 0/0 .text bg_check__15daItemKantera_cFv */
// NONMATCHING lfs not correct
void daItemKantera_c::bg_check() {
f32 dVar6 = 0.7f;
if (mAcch.ChkWallHit()) {
if (speedF > 5.0f) {
Reflect(&speed, mAcchCir, 1.0f);
@@ -360,7 +128,9 @@ void daItemKantera_c::bg_check() {
if (speedF > 5.0f) {
Reflect(&l_speed, mAcchCir, 0.7f);
}
speed.y = -field_0x93c.y * 0.7f;
f32 tmp = field_0x93c.y;
tmp = -tmp;
speed.y = tmp * dVar6;
if (speed.y < 3.0f) {
fopAcM_SetSpeedF(this, 0.0f);
}
@@ -388,17 +158,32 @@ int daItemKantera_c::actionWaitInit() {
return 1;
}
/* ############################################################################################## */
/* 80C396C8-80C396CC 000080 0004+00 0/1 0/0 0/0 .rodata @4145 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4145 = 9.0f / 10.0f;
COMPILER_STRIP_GATE(0x80C396C8, &lit_4145);
#pragma pop
/* 80C3911C-80C39234 000B1C 0118+00 1/0 0/0 0/0 .text actionWait__15daItemKantera_cFv */
int daItemKantera_c::actionWait() {
// NONMATCHING
fopAcM_posMoveF(this, mCcStts.GetCCMoveP());
mAcch.CrrPos(dComIfG_Bgsp());
bg_check();
if (mAcch.ChkGroundHit()) {
cLib_onBit(attention_info.flags, 0x10UL);
speedF *= 0.9f;
if (speedF < 1.0f) {
speedF = 0.0f;
}
} else {
cLib_offBit(attention_info.flags, 0x10UL);
}
daPy_py_c* player = daPy_getPlayerActorClass();
if (fopAcM_checkCarryNow(this)) {
cLib_offBit(attention_info.flags, 0x10UL);
if (player->getGrabUpStart()) {
fopAcM_cancelCarryNow(this);
initActionOrderGetDemo();
}
} else {
cLib_onBit(attention_info.flags, 0x10UL);
}
attention_info.position = current.pos;
return 1;
}
/* 80C39234-80C392D0 000C34 009C+00 1/1 0/0 0/0 .text initActionOrderGetDemo__15daItemKantera_cFv
@@ -442,7 +227,19 @@ int daItemKantera_c::actionGetDemo() {
/* 80C393B0-80C394DC 000DB0 012C+00 1/1 0/0 0/0 .text execute__15daItemKantera_cFv */
int daItemKantera_c::execute() {
// NONMATCHING
static daItemKantera_c::actionFunc l_demoFunc[4] = {
&daItemKantera_c::actionInit,
&daItemKantera_c::actionWait,
&daItemKantera_c::actionOrderGetDemo,
&daItemKantera_c::actionGetDemo,
};
field_0x93c = speed;
field_0x930++;
(this->*(l_demoFunc[mStatus]))();
eyePos = current.pos;
attention_info.position = current.pos;
setBaseMtx();
return 1;
}
/* 80C394DC-80C39530 000EDC 0054+00 1/1 0/0 0/0 .text draw__15daItemKantera_cFv */
@@ -480,3 +277,31 @@ static int daItemKantera_Delete(daItemKantera_c* i_this) {
static int daItemKantera_Create(fopAc_ac_c* i_this) {
return static_cast<daItemKantera_c*>(i_this)->create();
}
/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
static actor_method_class l_daItemKantera_Method = {
(process_method_func)daItemKantera_Create,
(process_method_func)daItemKantera_Delete,
(process_method_func)daItemKantera_Execute,
NULL,
(process_method_func)daItemKantera_Draw,
};
/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
extern actor_process_profile_definition g_profile_Obj_Kantera = {
fpcLy_CURRENT_e, // mLayerID
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Obj_Kantera, // mProcName
&g_fpcLf_Method.base, // sub_method
sizeof(daItemKantera_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // sub_method
238, // mPriority
&l_daItemKantera_Method, // sub_method
0x00040100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -165,7 +165,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
u8 power = i_AtInfo->mpCollider->GetAtAtp();
if (i_AtInfo->mPowerType == 0) {
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -179,7 +179,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
power = 200;
}
} else if (i_AtInfo->mPowerType == 6) {
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -193,7 +193,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
} else if (i_AtInfo->mPowerType == 4) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
power = 200;
} else if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -247,7 +247,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
power = 40;
}
} else if (i_AtInfo->mPowerType == 7) {
if (i_AtInfo->mpCollider->ChkAtType(0x420008)) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ | AT_TYPE_20000 | AT_TYPE_IRON_BALL)) {
power = 50;
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
power = 27;
@@ -337,7 +337,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
if (i_AtInfo->mpCollider->ChkAtType(0x8000) ||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_8000) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL))
{
i_AtInfo->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
@@ -358,7 +358,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
}
i_AtInfo->mHitStatus = 0;
if (i_AtInfo->mpCollider->ChkAtType(0x40) ||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_40) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK))