mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-26 00:14:33 -04:00
obj_ikada and obj_ita matching (#2753)
This commit is contained in:
+182
-378
@@ -6,281 +6,219 @@
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "d/actor/d_a_obj_ikada.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void RideOn_Angle__12daObjIkada_cFRsfsf();
|
||||
extern "C" void Check_RideOn__12daObjIkada_cFv();
|
||||
extern "C" void initBaseMtx__12daObjIkada_cFv();
|
||||
extern "C" void setBaseMtx__12daObjIkada_cFv();
|
||||
extern "C" static void rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c();
|
||||
extern "C" static void daObjIkada_Draw__FP12daObjIkada_c();
|
||||
extern "C" static void daObjIkada_Execute__FP12daObjIkada_c();
|
||||
extern "C" static bool daObjIkada_IsDelete__FP12daObjIkada_c();
|
||||
extern "C" static void daObjIkada_Delete__FP12daObjIkada_c();
|
||||
extern "C" static void daObjIkada_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void CreateHeap__12daObjIkada_cFv();
|
||||
extern "C" void Create__12daObjIkada_cFv();
|
||||
extern "C" void Execute__12daObjIkada_cFPPA3_A4_f();
|
||||
extern "C" void Draw__12daObjIkada_cFv();
|
||||
extern "C" void Delete__12daObjIkada_cFv();
|
||||
extern "C" static void func_80C274D8();
|
||||
extern "C" static void func_80C274E0();
|
||||
extern "C" extern char const* const d_a_obj_ikada__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_posMoveF__FP10fopAc_ac_cPC4cXyz();
|
||||
extern "C" void waterCheck__11fopAcM_wt_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 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 __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 cM_rndFX__Ff();
|
||||
extern "C" void cLib_addCalc__FPfffff();
|
||||
extern "C" void cLib_addCalcAngleS__FPsssss();
|
||||
extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_29();
|
||||
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" u8 sincosTable___5JMath[65536];
|
||||
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C274F0-80C274F8 000000 0004+04 3/3 0/0 0/0 .rodata @3668 */
|
||||
SECTION_RODATA static u8 const lit_3668[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C274F0, &lit_3668);
|
||||
|
||||
/* 80C274F8-80C27500 000008 0008+00 1/3 0/0 0/0 .rodata @3670 */
|
||||
SECTION_RODATA static u8 const lit_3670[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C274F8, &lit_3670);
|
||||
|
||||
/* 80C269B8-80C26A20 000078 0068+00 1/1 0/0 0/0 .text RideOn_Angle__12daObjIkada_cFRsfsf
|
||||
*/
|
||||
void daObjIkada_c::RideOn_Angle(s16& param_0, f32 param_1, s16 param_2, f32 param_3) {
|
||||
// NONMATCHING
|
||||
static f32 dummy() {
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C27500-80C27508 000010 0008+00 0/1 0/0 0/0 .rodata @3725 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3725[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C27500, &lit_3725);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27508-80C27510 000018 0008+00 0/1 0/0 0/0 .rodata @3726 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3726[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C27508, &lit_3726);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27510-80C27518 000020 0008+00 0/1 0/0 0/0 .rodata @3727 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3727[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C27510, &lit_3727);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27518-80C2751C 000028 0004+00 0/2 0/0 0/0 .rodata @3728 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3728 = 250.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27518, &lit_3728);
|
||||
#pragma pop
|
||||
|
||||
/* 80C2751C-80C27520 00002C 0004+00 0/3 0/0 0/0 .rodata @3729 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3729 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80C2751C, &lit_3729);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27520-80C27524 000030 0004+00 0/2 0/0 0/0 .rodata @3730 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3730 = 1.0f / 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27520, &lit_3730);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27524-80C27528 000034 0004+00 0/3 0/0 0/0 .rodata @3731 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3731 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27524, &lit_3731);
|
||||
#pragma pop
|
||||
/* 80C269B8-80C26A20 000078 0068+00 1/1 0/0 0/0 .text RideOn_Angle__12daObjIkada_cFRsfsf */
|
||||
void daObjIkada_c::RideOn_Angle(s16& param_1, f32 param_2, s16 param_3, f32 param_4) {
|
||||
cLib_addCalcAngleS(¶m_1, param_3 * (param_2 / param_4), 1, 0x100, 1);
|
||||
}
|
||||
|
||||
/* 80C26A20-80C26C50 0000E0 0230+00 1/1 0/0 0/0 .text Check_RideOn__12daObjIkada_cFv */
|
||||
void daObjIkada_c::Check_RideOn() {
|
||||
// NONMATCHING
|
||||
BOOL daObjIkada_c::Check_RideOn() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
cXyz& pos = fopAcM_GetPosition(player);
|
||||
f32 fVar4 = 0.0f;
|
||||
s16 target = 0;
|
||||
|
||||
field_0x5d6 = 1;
|
||||
s16 targetAngleY = cLib_targetAngleY(¤t.pos, &pos);
|
||||
f32 fVar1 = current.pos.abs(pos);
|
||||
f32 fVar2 = fVar1 * cM_scos(targetAngleY - shape_angle.y);
|
||||
f32 fVar3 = -fVar1 * cM_ssin(targetAngleY - shape_angle.y);
|
||||
RideOn_Angle(field_0x5c8.x, fVar2, 0x200, 250.0f);
|
||||
RideOn_Angle(field_0x5c8.z, fVar3, 0x200, 300.0f);
|
||||
fVar4 = 0.0f;
|
||||
field_0x5d6 = 1;
|
||||
|
||||
if (fopAcM_GetSpeedF(player) > fVar4) {
|
||||
target = 0x400;
|
||||
field_0x5ac = 0x150;
|
||||
}
|
||||
|
||||
field_0x5d0 = HREG_F(3) * (1.0f - (std::abs(fVar2) / 2500.0f) * (1.0f - std::abs(fVar3) / 300.0f));
|
||||
cLib_addCalc(&field_0x5a0, target, HREG_F(13) + 0.05f, 100.0f, 0.0f);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 80C26C50-80C26C7C 000310 002C+00 1/1 0/0 0/0 .text initBaseMtx__12daObjIkada_cFv */
|
||||
void daObjIkada_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* 80C26C7C-80C26CD8 00033C 005C+00 2/2 0/0 0/0 .text setBaseMtx__12daObjIkada_cFv */
|
||||
void daObjIkada_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C27528-80C2752C 000038 0004+00 1/1 0/0 0/0 .rodata @3767 */
|
||||
SECTION_RODATA static f32 const lit_3767 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27528, &lit_3767);
|
||||
/* 80C26CD8-80C26D3C 000398 0064+00 1/1 0/0 0/0 .text rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
static void rideCallBack(dBgW* param_1, fopAc_ac_c* a_this, fopAc_ac_c* param_3) {
|
||||
daObjIkada_c* i_this = (daObjIkada_c*)a_this;
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
|
||||
/* 80C2752C-80C27530 00003C 0004+00 1/1 0/0 0/0 .rodata @3768 */
|
||||
SECTION_RODATA static f32 const lit_3768 = -6.0f;
|
||||
COMPILER_STRIP_GATE(0x80C2752C, &lit_3768);
|
||||
if (i_this->field_0x5d6 == 0 && player->current.pos.y - player->old.pos.y < -1.0f) {
|
||||
i_this->field_0x5a4 = -6.0f;
|
||||
}
|
||||
|
||||
/* 80C26CD8-80C26D3C 000398 0064+00 1/1 0/0 0/0 .text
|
||||
* rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
static void rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
|
||||
// NONMATCHING
|
||||
i_this->Check_RideOn();
|
||||
}
|
||||
|
||||
/* 80C26D3C-80C26D68 0003FC 002C+00 1/0 0/0 0/0 .text daObjIkada_Draw__FP12daObjIkada_c
|
||||
*/
|
||||
static void daObjIkada_Draw(daObjIkada_c* param_0) {
|
||||
// NONMATCHING
|
||||
/* 80C26D3C-80C26D68 0003FC 002C+00 1/0 0/0 0/0 .text daObjIkada_Draw__FP12daObjIkada_c */
|
||||
static int daObjIkada_Draw(daObjIkada_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 80C26D68-80C26D88 000428 0020+00 1/0 0/0 0/0 .text daObjIkada_Execute__FP12daObjIkada_c */
|
||||
static void daObjIkada_Execute(daObjIkada_c* param_0) {
|
||||
// NONMATCHING
|
||||
/* 80C26D68-80C26D88 000428 0020+00 1/0 0/0 0/0 .text daObjIkada_Execute__FP12daObjIkada_c */
|
||||
static int daObjIkada_Execute(daObjIkada_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80C26D88-80C26D90 000448 0008+00 1/0 0/0 0/0 .text daObjIkada_IsDelete__FP12daObjIkada_c */
|
||||
static bool daObjIkada_IsDelete(daObjIkada_c* param_0) {
|
||||
return true;
|
||||
/* 80C26D88-80C26D90 000448 0008+00 1/0 0/0 0/0 .text daObjIkada_IsDelete__FP12daObjIkada_c */
|
||||
static int daObjIkada_IsDelete(daObjIkada_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C26D90-80C26DB4 000450 0024+00 1/0 0/0 0/0 .text daObjIkada_Delete__FP12daObjIkada_c
|
||||
*/
|
||||
static void daObjIkada_Delete(daObjIkada_c* param_0) {
|
||||
// NONMATCHING
|
||||
/* 80C26D90-80C26DB4 000450 0024+00 1/0 0/0 0/0 .text daObjIkada_Delete__FP12daObjIkada_c */
|
||||
static int daObjIkada_Delete(daObjIkada_c* i_this) {
|
||||
fpc_ProcID id = fopAcM_GetID(i_this);
|
||||
i_this->MoveBGDelete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C27530-80C27534 000040 0004+00 0/1 0/0 0/0 .rodata @3846 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3846 = 200.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27530, &lit_3846);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27534-80C27538 000044 0004+00 0/1 0/0 0/0 .rodata @3847 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3847 = 32000.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27534, &lit_3847);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27538-80C2753C 000048 0004+00 0/1 0/0 0/0 .rodata @3848 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3848 = -250.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27538, &lit_3848);
|
||||
#pragma pop
|
||||
|
||||
/* 80C2753C-80C27540 00004C 0004+00 0/1 0/0 0/0 .rodata @3849 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3849 = -50.0f;
|
||||
COMPILER_STRIP_GATE(0x80C2753C, &lit_3849);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27540-80C27544 000050 0004+00 0/1 0/0 0/0 .rodata @3850 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3850 = -300.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27540, &lit_3850);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27544-80C27548 000054 0004+00 0/1 0/0 0/0 .rodata @3851 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3851 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27544, &lit_3851);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C27564 = "M_Ikada";
|
||||
SECTION_DEAD static char const* const stringBase_80C2756C = "M_Ikada.dzb";
|
||||
#pragma pop
|
||||
|
||||
/* 80C27584-80C27588 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_ikada__stringBase0;
|
||||
static char* l_arcName = "M_Ikada";
|
||||
|
||||
/* 80C27028-80C270A0 0006E8 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIkada_cFv */
|
||||
int daObjIkada_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_Ikada.bmd");
|
||||
JUT_ASSERT(82, modelData != NULL);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
cPhs__Step daObjIkada_c::create() {
|
||||
fopAcM_ct(this, daObjIkada_c);
|
||||
|
||||
cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "M_Ikada.dzb");
|
||||
JUT_ASSERT(108, dzb_id != -1);
|
||||
|
||||
phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0xC00, NULL);
|
||||
if (phase == cPhs_ERROR_e) {
|
||||
return phase;
|
||||
}
|
||||
}
|
||||
|
||||
mBgc.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
mAcchCir.SetWall(100.0f, 200.0f);
|
||||
field_0x5d4 = cM_rndFX(32000.0f);
|
||||
fopAcM_setCullSizeBox(this, -250.0f, -50.0f, -300.0f, 250.0f, 50.0f, 300.0f);
|
||||
|
||||
cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z);
|
||||
if (fopAcM_wt_c::waterCheck(&pos)) {
|
||||
current.pos.y = fopAcM_wt_c::getWaterY();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 80C26DB4-80C26FB8 000474 0204+00 1/0 0/0 0/0 .text daObjIkada_Create__FP10fopAc_ac_c */
|
||||
static int daObjIkada_Create(fopAc_ac_c* a_this) {
|
||||
daObjIkada_c* i_this = (daObjIkada_c*)a_this;
|
||||
fpc_ProcID id = fopAcM_GetID(a_this);
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* 80C270A0-80C270E0 000760 0040+00 1/0 0/0 0/0 .text Create__12daObjIkada_cFv */
|
||||
int daObjIkada_c::Create() {
|
||||
initBaseMtx();
|
||||
mpBgW->SetRideCallback(rideCallBack);
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80C270E0-80C27400 0007A0 0320+00 1/0 0/0 0/0 .text Execute__12daObjIkada_cFPPA3_A4_f */
|
||||
int daObjIkada_c::Execute(Mtx** mtx) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
cXyz& unk = fopAcM_GetPosition(player);
|
||||
cXyz pos(current.pos.x, current.pos.y + 300.0f, current.pos.z);
|
||||
f32 posY = current.pos.y;
|
||||
|
||||
if (fopAcM_wt_c::waterCheck(&pos)) {
|
||||
posY = fopAcM_wt_c::getWaterY();
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
field_0x5c4 = field_0x5c4 + (((TREG_S(1) + 0x350) + (HREG_F(1) + 2.0f)) * field_0x5a0 + field_0x5a4 * HREG_F(9));
|
||||
#else
|
||||
field_0x5c4 = field_0x5c4 + (((HREG_F(1) + 2.0f) * field_0x5a0) + 848.0f) + field_0x5a4 * HREG_F(9);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
field_0x5c6 = field_0x5c6 + (((TREG_S(2) + 0x350) + (HREG_F(2) + 2.0f)) * field_0x5a0 + field_0x5a4 * HREG_F(9));
|
||||
#else
|
||||
field_0x5c6 = field_0x5c6 + (((HREG_F(2) + 2.0f) * field_0x5a0) + 848.0f) + field_0x5a4 * HREG_F(9);
|
||||
#endif
|
||||
|
||||
cLib_addCalc(¤t.pos.y, field_0x5d0 + (posY + field_0x5a4 * 11.0f + ((HREG_F(4) + 5.0f) * cM_ssin(field_0x5c6 + oREG_S(3) + field_0x5d4))),
|
||||
0.1f, 15.0f, 0.1f);
|
||||
cLib_addCalcAngleS(&shape_angle.x, field_0x5c8.x + (nREG_F(0) + 1.0f) * field_0x5ac * cM_ssin(oREG_S(1) + 0x2000 + field_0x5c4 + field_0x5d4), 2, 0x100, 1);
|
||||
cLib_addCalcAngleS(&shape_angle.z, field_0x5c8.z + (nREG_F(1) + 1.0f) * field_0x5ac * cM_ssin(field_0x5c6 + oREG_S(2) + field_0x5d4), 2, 0x100, 1);
|
||||
|
||||
if (field_0x5d6 == 0) {
|
||||
cLib_addCalcAngleS(&field_0x5c8.x, 0, 2, 0x100, 1);
|
||||
cLib_addCalcAngleS(&field_0x5c8.z, 0, 2, 0x100, 1);
|
||||
cLib_addCalc(&field_0x5d0, 0.0f, 0.2f, 100.0f, 0.0f);
|
||||
cLib_addCalc(&field_0x5a0, 0.0f, HREG_F(13) + 0.05f, 100.0f, 0.0f);
|
||||
}
|
||||
|
||||
cLib_addCalc(&field_0x5a4, 0.0f, 0.2f, 100.0f, 0.0f);
|
||||
field_0x5d6 = 0;
|
||||
field_0x5ac = 0x120;
|
||||
fopAcM_posMoveF(this, mStts.GetCCMoveP());
|
||||
*mtx = &mBgMtx;
|
||||
setBaseMtx();
|
||||
mBgc.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C27400-80C274A4 000AC0 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIkada_cFv */
|
||||
int daObjIkada_c::Draw() {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C274A4-80C274D8 000B64 0034+00 1/0 0/0 0/0 .text Delete__12daObjIkada_cFv */
|
||||
int daObjIkada_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C27588-80C275A8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjIkada_Method */
|
||||
static actor_method_class l_daObjIkada_Method = {
|
||||
(process_method_func)daObjIkada_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjIkada_Delete__FP12daObjIkada_c,
|
||||
(process_method_func)daObjIkada_Execute__FP12daObjIkada_c,
|
||||
(process_method_func)daObjIkada_IsDelete__FP12daObjIkada_c,
|
||||
(process_method_func)daObjIkada_Draw__FP12daObjIkada_c,
|
||||
(process_method_func)daObjIkada_Create,
|
||||
(process_method_func)daObjIkada_Delete,
|
||||
(process_method_func)daObjIkada_Execute,
|
||||
(process_method_func)daObjIkada_IsDelete,
|
||||
(process_method_func)daObjIkada_Draw,
|
||||
};
|
||||
|
||||
/* 80C275A8-80C275D8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Ikada */
|
||||
@@ -300,137 +238,3 @@ extern actor_process_profile_definition g_profile_Obj_Ikada = {
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80C275D8-80C275FC 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_80C274E0,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80C274D8,
|
||||
};
|
||||
|
||||
/* 80C275FC-80C27624 000078 0028+00 1/1 0/0 0/0 .data __vt__12daObjIkada_c */
|
||||
SECTION_DATA extern void* __vt__12daObjIkada_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__12daObjIkada_cFv,
|
||||
(void*)Create__12daObjIkada_cFv,
|
||||
(void*)Execute__12daObjIkada_cFPPA3_A4_f,
|
||||
(void*)Draw__12daObjIkada_cFv,
|
||||
(void*)Delete__12daObjIkada_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80C26DB4-80C26FB8 000474 0204+00 1/0 0/0 0/0 .text daObjIkada_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
static void daObjIkada_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C26FB8-80C27028 000678 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80C27578 = "M_Ikada.bmd";
|
||||
#pragma pop
|
||||
|
||||
/* 80C27028-80C270A0 0006E8 0078+00 1/0 0/0 0/0 .text CreateHeap__12daObjIkada_cFv */
|
||||
void daObjIkada_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C270A0-80C270E0 000760 0040+00 1/0 0/0 0/0 .text Create__12daObjIkada_cFv */
|
||||
void daObjIkada_c::Create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C27548-80C2754C 000058 0004+00 0/1 0/0 0/0 .rodata @3912 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3912 = 848.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27548, &lit_3912);
|
||||
#pragma pop
|
||||
|
||||
/* 80C2754C-80C27550 00005C 0004+00 0/1 0/0 0/0 .rodata @3913 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3913 = 2.0f;
|
||||
COMPILER_STRIP_GATE(0x80C2754C, &lit_3913);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27550-80C27554 000060 0004+00 0/1 0/0 0/0 .rodata @3914 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3914 = 11.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27550, &lit_3914);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27554-80C27558 000064 0004+00 0/1 0/0 0/0 .rodata @3915 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3915 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27554, &lit_3915);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27558-80C2755C 000068 0004+00 0/1 0/0 0/0 .rodata @3916 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3916 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27558, &lit_3916);
|
||||
#pragma pop
|
||||
|
||||
/* 80C2755C-80C27560 00006C 0004+00 0/1 0/0 0/0 .rodata @3917 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3917 = 15.0f;
|
||||
COMPILER_STRIP_GATE(0x80C2755C, &lit_3917);
|
||||
#pragma pop
|
||||
|
||||
/* 80C27560-80C27564 000070 0004+00 0/1 0/0 0/0 .rodata @3918 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3918 = 1.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80C27560, &lit_3918);
|
||||
#pragma pop
|
||||
|
||||
/* 80C270E0-80C27400 0007A0 0320+00 1/0 0/0 0/0 .text Execute__12daObjIkada_cFPPA3_A4_f
|
||||
*/
|
||||
void daObjIkada_c::Execute(Mtx** param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C27400-80C274A4 000AC0 00A4+00 1/0 0/0 0/0 .text Draw__12daObjIkada_cFv */
|
||||
void daObjIkada_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C274A4-80C274D8 000B64 0034+00 1/0 0/0 0/0 .text Delete__12daObjIkada_cFv */
|
||||
void daObjIkada_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C274D8-80C274E0 000B98 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80C274D8() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C274E0-80C274E8 000BA0 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80C274E0() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80C27564-80C27564 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
Reference in New Issue
Block a user