mirror of https://github.com/zeldaret/tp.git
d_a_obj_crvfence matching (#2622)
* equivalent * kasi_mng_c work * class work and create function work * kasi_mng_c is matching * little more work * almost matching * enums defined * kasi_hana almost matching * more mich work * mich almost matching * kyu almost matching * potentially fixed issue * Now maybe good? * Should be fixed now * PR Cleanup * Over 50% done * matching * pr cleanup
This commit is contained in:
parent
0adb35db8d
commit
ee8b843996
|
|
@ -1,6 +1,9 @@
|
|||
#ifndef D_A_OBJ_CRVFENCE_H
|
||||
#define D_A_OBJ_CRVFENCE_H
|
||||
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
|
|
@ -10,28 +13,57 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjCRVFENCE_c : public fopAc_ac_c {
|
||||
*/
|
||||
|
||||
class daObjCRVFENCE_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
/* 80BCEC98 */ void CheckVec();
|
||||
/* 80BCED60 */ void Wall_Check(cXyz, cXyz);
|
||||
/* 80BCEC98 */ BOOL CheckVec();
|
||||
/* 80BCED60 */ BOOL Wall_Check(cXyz, cXyz);
|
||||
/* 80BCEE60 */ void BgRelease();
|
||||
/* 80BCEED0 */ void PosSet(cXyz*);
|
||||
/* 80BCEF30 */ void FenceMove(u8&, cXyz*, csXyz*, cXyz*, s16&);
|
||||
/* 80BCF0B0 */ void BrokenAction();
|
||||
/* 80BCF404 */ void NormalAction();
|
||||
/* 80BCF7DC */ void checkViewArea(cXyz*);
|
||||
/* 80BCF7DC */ bool checkViewArea(cXyz*);
|
||||
/* 80BCF860 */ void Action();
|
||||
/* 80BCF8A4 */ void setBaseMtx();
|
||||
/* 80BCF9E4 */ void CreateHeap();
|
||||
/* 80BCFAE4 */ void create();
|
||||
/* 80BCFFC8 */ void Create();
|
||||
/* 80BD000C */ void Execute(f32 (**)[3][4]);
|
||||
/* 80BD0058 */ void Draw();
|
||||
/* 80BD013C */ void Delete();
|
||||
/* 80BCF9E4 */ int CreateHeap();
|
||||
/* 80BCFAE4 */ cPhs__Step create();
|
||||
/* 80BCFFC8 */ int Create();
|
||||
/* 80BD000C */ int Execute(Mtx**);
|
||||
/* 80BD0058 */ int Draw();
|
||||
/* 80BD013C */ int Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x103c - 0x568];
|
||||
/* 0x05A0 */ int field_0x5a0;
|
||||
/* 0x05A4 */ int mAction;
|
||||
/* 0x05A8 */ u8 field_0x5a8;
|
||||
/* 0x05AA */ s16 field_0x5aa;
|
||||
/* 0x05AC */ cXyz field_0x5ac;
|
||||
/* 0x05B8 */ cXyz field_0x5b8;
|
||||
/* 0x05C4 */ csXyz field_0x5c4;
|
||||
/* 0x05CA */ u8 field_0x5ca;
|
||||
/* 0x05CC */ s16 field_0x5cc;
|
||||
/* 0x05D0 */ cXyz field_0x5d0;
|
||||
/* 0x05DC */ cXyz field_0x5dc;
|
||||
/* 0x05E8 */ csXyz field_0x5e8;
|
||||
/* 0x05EE */ u8 field_0x5ee;
|
||||
/* 0x05F0 */ s16 field_0x5f0;
|
||||
/* 0x05F2 */ s16 field_0x5f2;
|
||||
/* 0x05F4 */ bool field_0x5f4;
|
||||
/* 0x05F8 */ cXyz field_0x5f8[6];
|
||||
/* 0x0640 */ f32 field_0x640;
|
||||
/* 0x0644 */ int field_0x644;
|
||||
/* 0x0648 */ u8 field_0x648[0x65c - 0x648];
|
||||
/* 0x065C */ J3DModel* field_0x65c;
|
||||
/* 0x0660 */ J3DModel* field_0x660;
|
||||
/* 0x0664 */ J3DModel* field_0x664;
|
||||
/* 0x0668 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0670 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x06B0 */ dBgS_ObjAcch mBgc;
|
||||
/* 0x0888 */ dCcD_Stts mStts;
|
||||
/* 0x08C4 */ dCcD_Sph mSphs[6];
|
||||
/* 0x1014 */ u8 field_0x1014[0x103c - 0x1014];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjCRVFENCE_c) == 0x103c);
|
||||
|
|
|
|||
|
|
@ -6,471 +6,444 @@
|
|||
#include "d/dolzel_rel.h"
|
||||
|
||||
#include "d/actor/d_a_obj_crvfence.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "d/actor/d_a_e_wb.h"
|
||||
|
||||
enum CrvFence_RES_File_ID {
|
||||
/* BMDG */
|
||||
/* 0x5 */ BMDG_CARAVANPIECE = 0x5,
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
/* BMDR */
|
||||
/* 0x8 */ BMDR_CARAVANFENCE = 0x8,
|
||||
/* 0x9 */ BMDR_U_CARAVANGATE_PIECEB,
|
||||
/* 0xA */ BMDR_U_CRVFENCE_BBREAKA,
|
||||
/* 0xB */ BMDR_U_CRVFENCE_BBREAKB,
|
||||
|
||||
extern "C" void CheckVec__15daObjCRVFENCE_cFv();
|
||||
extern "C" void __dt__4cXyzFv();
|
||||
extern "C" void Wall_Check__15daObjCRVFENCE_cF4cXyz4cXyz();
|
||||
extern "C" static void daObjCRVFENCE_Create__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjCRVFENCE_Delete__FP15daObjCRVFENCE_c();
|
||||
extern "C" void BgRelease__15daObjCRVFENCE_cFv();
|
||||
extern "C" void PosSet__15daObjCRVFENCE_cFP4cXyz();
|
||||
extern "C" void FenceMove__15daObjCRVFENCE_cFRUcP4cXyzP5csXyzP4cXyzRs();
|
||||
extern "C" void BrokenAction__15daObjCRVFENCE_cFv();
|
||||
extern "C" static void s_obj_sub__FPvPv();
|
||||
extern "C" void NormalAction__15daObjCRVFENCE_cFv();
|
||||
extern "C" void checkViewArea__15daObjCRVFENCE_cFP4cXyz();
|
||||
extern "C" void Action__15daObjCRVFENCE_cFv();
|
||||
extern "C" void setBaseMtx__15daObjCRVFENCE_cFv();
|
||||
extern "C" static void daObjCRVFENCE_Draw__FP15daObjCRVFENCE_c();
|
||||
extern "C" static void daObjCRVFENCE_Execute__FP15daObjCRVFENCE_c();
|
||||
extern "C" void CreateHeap__15daObjCRVFENCE_cFv();
|
||||
extern "C" void create__15daObjCRVFENCE_cFv();
|
||||
extern "C" void __dt__8dCcD_SphFv();
|
||||
extern "C" void __ct__8dCcD_SphFv();
|
||||
extern "C" void __dt__8cM3dGSphFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void __ct__4cXyzFv();
|
||||
extern "C" static bool daObjCRVFENCE_IsDelete__FP15daObjCRVFENCE_c();
|
||||
extern "C" void Create__15daObjCRVFENCE_cFv();
|
||||
extern "C" void Execute__15daObjCRVFENCE_cFPPA3_A4_f();
|
||||
extern "C" void Draw__15daObjCRVFENCE_cFv();
|
||||
extern "C" void Delete__15daObjCRVFENCE_cFv();
|
||||
extern "C" static void func_80BD0170();
|
||||
extern "C" static void func_80BD0178();
|
||||
extern "C" extern char const* const d_a_obj_crvfence__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void scaleM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void mDoLib_project__FP3VecP3Vec();
|
||||
extern "C" void fopAc_IsActor__FPv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfGp_getReverb__Fi();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void StartShock__12dVibration_cFii4cXyz();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
|
||||
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__11dBgS_LinChkFv();
|
||||
extern "C" void __dt__11dBgS_LinChkFv();
|
||||
extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
|
||||
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 __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void __dt__12dCcD_GObjInfFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __ct__5csXyzFsss();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void cLib_chaseAngleS__FPsss();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__8dCcD_Sph[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_SphAttr[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" f32 mGroundY__11fopAcM_gc_c;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD0188-80BD018C 000000 0004+00 7/7 0/0 0/0 .rodata @3685 */
|
||||
SECTION_RODATA static u8 const lit_3685[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* DZB */
|
||||
/* 0xE */ DZB_CARAVANFENCE = 0xE,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80BD0188, &lit_3685);
|
||||
|
||||
enum Action {
|
||||
/* 0x0 */ ACTION_NORMAL,
|
||||
/* 0x1 */ ACTION_BROKEN,
|
||||
};
|
||||
|
||||
/* 80BD0260-80BD0264 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
static char* l_arcName = "CrvFence";
|
||||
|
||||
/* 80BCEC98-80BCED24 000078 008C+00 2/2 0/0 0/0 .text CheckVec__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::CheckVec() {
|
||||
// NONMATCHING
|
||||
}
|
||||
BOOL daObjCRVFENCE_c::CheckVec() {
|
||||
cXyz vec(fopAcM_GetPosition((fopAc_ac_c*)daPy_getPlayerActorClass()));
|
||||
Mtx mtx;
|
||||
mDoMtx_inverse(field_0x65c->getBaseTRMtx(), mtx);
|
||||
mDoMtx_stack_c::copy(mtx);
|
||||
mDoMtx_stack_c::multVec(&vec, &vec);
|
||||
|
||||
/* 80BCED24-80BCED60 000104 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
|
||||
// cXyz::~cXyz() {
|
||||
extern "C" void __dt__4cXyzFv() {
|
||||
// NONMATCHING
|
||||
return vec.z > 0.0f;
|
||||
}
|
||||
|
||||
/* 80BCED60-80BCEE1C 000140 00BC+00 1/1 0/0 0/0 .text Wall_Check__15daObjCRVFENCE_cF4cXyz4cXyz */
|
||||
void daObjCRVFENCE_c::Wall_Check(cXyz param_0, cXyz param_1) {
|
||||
// NONMATCHING
|
||||
BOOL daObjCRVFENCE_c::Wall_Check(cXyz i_start, cXyz param_2) {
|
||||
dBgS_LinChk lin_chk;
|
||||
cXyz i_end(i_start.x + param_2.x, i_start.y, i_start.z + param_2.z);
|
||||
lin_chk.Set(&i_start, &i_end, NULL);
|
||||
|
||||
if (dComIfG_Bgsp().LineCross(&lin_chk) == TRUE) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 80BCEE1C-80BCEE3C 0001FC 0020+00 1/0 0/0 0/0 .text daObjCRVFENCE_Create__FP10fopAc_ac_c */
|
||||
static void daObjCRVFENCE_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVFENCE_Create(fopAc_ac_c* a_this) {
|
||||
return static_cast<daObjCRVFENCE_c*>(a_this)->create();
|
||||
}
|
||||
|
||||
/* 80BCEE3C-80BCEE60 00021C 0024+00 1/0 0/0 0/0 .text daObjCRVFENCE_Delete__FP15daObjCRVFENCE_c */
|
||||
static void daObjCRVFENCE_Delete(daObjCRVFENCE_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVFENCE_Delete(daObjCRVFENCE_c* a_this) {
|
||||
static_cast<daObjCRVFENCE_c*>(a_this)->MoveBGDelete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD020C-80BD020C 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80BD020C = "CrvFence";
|
||||
SECTION_DEAD static char const* const stringBase_80BD0215 = "Release Error\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80BCEE60-80BCEED0 000240 0070+00 1/1 0/0 0/0 .text BgRelease__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::BgRelease() {
|
||||
// NONMATCHING
|
||||
if (mpBgW != NULL) {
|
||||
if (mpBgW->ChkUsed() && dComIfG_Bgsp().Release(mpBgW)) {
|
||||
OSReport("Release Error\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BCEED0-80BCEF30 0002B0 0060+00 1/1 0/0 0/0 .text PosSet__15daObjCRVFENCE_cFP4cXyz */
|
||||
void daObjCRVFENCE_c::PosSet(cXyz* param_0) {
|
||||
// NONMATCHING
|
||||
void daObjCRVFENCE_c::PosSet(cXyz* pos) {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(pos, pos);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD018C-80BD0190 000004 0004+00 0/3 0/0 0/0 .rodata @3761 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3761 = 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD018C, &lit_3761);
|
||||
#pragma pop
|
||||
/* 80BCEF30-80BCF0B0 000310 0180+00 1/1 0/0 0/0 .text FenceMove__15daObjCRVFENCE_cFRUcP4cXyzP5csXyzP4cXyzRs */
|
||||
void daObjCRVFENCE_c::FenceMove(u8& param_1, cXyz* param_2, csXyz* param_3, cXyz* param_4, s16& param_5) {
|
||||
if (param_1 <= 3) {
|
||||
f32 fVar1 = 20.0f;
|
||||
param_2->y += -9.0f;
|
||||
|
||||
/* 80BD0190-80BD0194 000008 0004+00 0/2 0/0 0/0 .rodata @3762 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3762 = -9.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD0190, &lit_3762);
|
||||
#pragma pop
|
||||
if (Wall_Check(*param_4, *param_2)) {
|
||||
param_2->x = -0.5f * param_2->x;
|
||||
}
|
||||
|
||||
/* 80BD0194-80BD0198 00000C 0004+00 0/1 0/0 0/0 .rodata @3763 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3763 = -0.5f;
|
||||
COMPILER_STRIP_GATE(0x80BD0194, &lit_3763);
|
||||
#pragma pop
|
||||
if (param_1 == 0) {
|
||||
cLib_chaseAngleS(¶m_3->y, param_5, 0x700);
|
||||
fVar1 = 100.0f;
|
||||
} else {
|
||||
cLib_chaseAngleS(¶m_3->x, param_5, 0x700);
|
||||
}
|
||||
|
||||
/* 80BD0198-80BD019C 000010 0004+00 0/2 0/0 0/0 .rodata @3764 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3764 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD0198, &lit_3764);
|
||||
#pragma pop
|
||||
*param_4 += *param_2;
|
||||
|
||||
/* 80BD019C-80BD01A0 000014 0004+00 0/1 0/0 0/0 .rodata @3765 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3765 = -7.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD019C, &lit_3765);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01A0-80BD01A4 000018 0004+00 0/1 0/0 0/0 .rodata @3766 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3766 = 7.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01A0, &lit_3766);
|
||||
#pragma pop
|
||||
|
||||
/* 80BCEF30-80BCF0B0 000310 0180+00 1/1 0/0 0/0 .text
|
||||
* FenceMove__15daObjCRVFENCE_cFRUcP4cXyzP5csXyzP4cXyzRs */
|
||||
void daObjCRVFENCE_c::FenceMove(u8& param_0, cXyz* param_1, csXyz* param_2, cXyz* param_3,
|
||||
s16& param_4) {
|
||||
// NONMATCHING
|
||||
if (param_2->y < 0.0f && field_0x640 + fVar1 >= param_4->y) {
|
||||
param_1++;
|
||||
param_4->y = field_0x640 + fVar1;
|
||||
param_2->y = -(HREG_F(0) + 0.7f) * param_2->y;
|
||||
param_2->x = (HREG_F(0) + 0.7f) * param_2->x;
|
||||
param_2->z = (HREG_F(0) + 0.7f) * param_2->z;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01A4-80BD01A8 00001C 0004+00 0/1 0/0 0/0 .rodata @3825 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3825 = 180.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01A4, &lit_3825);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01A8-80BD01AC 000020 0004+00 0/1 0/0 0/0 .rodata @3826 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3826 = -180.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01A8, &lit_3826);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01AC-80BD01B0 000024 0004+00 0/1 0/0 0/0 .rodata @3827 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3827 = 15.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01AC, &lit_3827);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01B0-80BD01B4 000028 0004+00 0/2 0/0 0/0 .rodata @3828 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3828 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01B0, &lit_3828);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01B4-80BD01B8 00002C 0004+00 0/1 0/0 0/0 .rodata @3829 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3829 = -25.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01B4, &lit_3829);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01B8-80BD01BC 000030 0004+00 0/1 0/0 0/0 .rodata @3830 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3830 = 40.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01B8, &lit_3830);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01BC-80BD01C0 000034 0004+00 0/2 0/0 0/0 .rodata @3831 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3831 = 25.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01BC, &lit_3831);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01C0-80BD01C4 000038 0004+00 0/1 0/0 0/0 .rodata @3832 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3832 = -15.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01C0, &lit_3832);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01C4-80BD01C8 00003C 0004+00 0/2 0/0 0/0 .rodata @3833 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3833 = 1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01C4, &lit_3833);
|
||||
#pragma pop
|
||||
|
||||
/* 80BCF0B0-80BCF390 000490 02E0+00 1/1 0/0 0/0 .text BrokenAction__15daObjCRVFENCE_cFv
|
||||
*/
|
||||
/* 80BCF0B0-80BCF390 000490 02E0+00 1/1 0/0 0/0 .text BrokenAction__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::BrokenAction() {
|
||||
// NONMATCHING
|
||||
}
|
||||
switch (field_0x5a0) {
|
||||
case 0:
|
||||
field_0x5ac.set(180.0f, 180.0f, 0.0f);
|
||||
field_0x5d0.set(-180.0f, 180.0f, 0.0f);
|
||||
PosSet(&field_0x5d0);
|
||||
PosSet(&field_0x5ac);
|
||||
field_0x5f0 = -0x4000;
|
||||
field_0x5cc = 0x4000;
|
||||
field_0x5f2 = -field_0x5f0;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01C8-80BD01CC 000040 0004+00 1/1 0/0 0/0 .rodata @3845 */
|
||||
SECTION_RODATA static f32 const lit_3845 = 600.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01C8, &lit_3845);
|
||||
if (field_0x644 < 3) {
|
||||
field_0x5b8.set(15.0f, 30.0f, 20.0f);
|
||||
field_0x5dc.set(-25.0f, 40.0f, 30.0f);
|
||||
mDoMtx_stack_c::YrotS(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(&field_0x5b8, &field_0x5b8);
|
||||
mDoMtx_stack_c::multVec(&field_0x5dc, &field_0x5dc);
|
||||
} else {
|
||||
field_0x5b8.set(25.0f, 40.0f, 30.0f);
|
||||
field_0x5dc.set(-15.0f, 30.0f, 20.0f);
|
||||
mDoMtx_stack_c::YrotS(shape_angle.y);
|
||||
mDoMtx_stack_c::multVec(&field_0x5b8, &field_0x5b8);
|
||||
mDoMtx_stack_c::multVec(&field_0x5dc, &field_0x5dc);
|
||||
}
|
||||
|
||||
if (CheckVec()) {
|
||||
field_0x5b8.set(field_0x5b8.x, field_0x5b8.y, -field_0x5b8.z);
|
||||
field_0x5dc.set(field_0x5dc.x, field_0x5dc.y, -field_0x5dc.z);
|
||||
field_0x5f0 = 0x4000;
|
||||
field_0x5cc = -0x4000;
|
||||
field_0x5f2 = -field_0x5f0;
|
||||
field_0x5aa = -field_0x5aa;
|
||||
}
|
||||
|
||||
field_0x5a0 = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (field_0x5ee == 0) {
|
||||
FenceMove(field_0x5ee, &field_0x5dc, &field_0x5e8, &field_0x5d0, field_0x5f0);
|
||||
} else {
|
||||
FenceMove(field_0x5ee, &field_0x5dc, &field_0x5e8, &field_0x5d0, field_0x5f2);
|
||||
}
|
||||
|
||||
FenceMove(field_0x5ca, &field_0x5b8, &field_0x5c4, &field_0x5ac, field_0x5cc);
|
||||
|
||||
if (field_0x5ee > 3 && field_0x5ca > 3 && !checkViewArea(&field_0x5d0) && !checkViewArea(&field_0x5ac) && fopAcM_searchPlayerDistance(this) > 1000.0f) {
|
||||
if (field_0x5a8 != 0xFF && !dComIfGs_isSwitch(field_0x5a8, fopAcM_GetRoomNo(this))) {
|
||||
dComIfGs_onSwitch(field_0x5a8, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BCF390-80BCF404 000770 0074+00 1/1 0/0 0/0 .text s_obj_sub__FPvPv */
|
||||
static s32 s_obj_sub(void* param_0, void* param_1) {
|
||||
// NONMATCHING
|
||||
static void* s_obj_sub(void* i_actor, void* i_data) {
|
||||
if (fopAcM_IsActor(i_actor) && fopAcM_searchActorDistance((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor) < 600.0f && fopAcM_GetName(i_actor) == PROC_E_WB) {
|
||||
return i_actor;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01CC-80BD01D0 000044 0004+00 1/2 0/0 0/0 .rodata @3953 */
|
||||
SECTION_RODATA static f32 const lit_3953 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01CC, &lit_3953);
|
||||
|
||||
/* 80BD01D0-80BD01D4 000048 0004+00 0/1 0/0 0/0 .rodata @3954 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3954 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01D0, &lit_3954);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01D4-80BD01D8 00004C 0004+00 0/1 0/0 0/0 .rodata @3955 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3955 = 150.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01D4, &lit_3955);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01D8-80BD01DC 000050 0004+00 0/1 0/0 0/0 .rodata @3956 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3956 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01D8, &lit_3956);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01DC-80BD01E0 000054 0004+00 0/1 0/0 0/0 .rodata @3957 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3957 = -200.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01DC, &lit_3957);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01E0-80BD01E4 000058 0004+00 0/1 0/0 0/0 .rodata @3958 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3958 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01E0, &lit_3958);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01E4-80BD01E8 00005C 0004+00 0/1 0/0 0/0 .rodata @3959 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3959 = 120.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01E4, &lit_3959);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01E8-80BD01EC 000060 0004+00 0/1 0/0 0/0 .rodata @3960 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3960 = 200.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01E8, &lit_3960);
|
||||
#pragma pop
|
||||
|
||||
/* 80BCF404-80BCF7DC 0007E4 03D8+00 1/1 0/0 0/0 .text NormalAction__15daObjCRVFENCE_cFv
|
||||
*/
|
||||
/* 80BCF404-80BCF7DC 0007E4 03D8+00 1/1 0/0 0/0 .text NormalAction__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::NormalAction() {
|
||||
// NONMATCHING
|
||||
if (!field_0x5f4) {
|
||||
e_wb_class* wb_p = (e_wb_class*)fpcM_Search(s_obj_sub, this);
|
||||
if (wb_p != NULL && wb_p->mActionID == ACT_PL_RIDE2) {
|
||||
fopAcM_OffStatus(this, fopAcM_STATUS_UNK_000100);
|
||||
fopAcM_seStartCurrent(this, Z2SE_OBJ_SAKU_BREAK, 0);
|
||||
cXyz sp5c(fopAcM_GetPosition(wb_p));
|
||||
Mtx mtx;
|
||||
mDoMtx_inverse(field_0x65c->getBaseTRMtx(), mtx);
|
||||
mDoMtx_stack_c::copy(mtx);
|
||||
mDoMtx_stack_c::multVec(&sp5c, &sp5c);
|
||||
|
||||
if (sp5c.x < 0.0f) {
|
||||
field_0x644 = 1;
|
||||
} else {
|
||||
field_0x644 = 4;
|
||||
}
|
||||
|
||||
BgRelease();
|
||||
BOOL bVar1 = CheckVec();
|
||||
field_0x5f4 = true;
|
||||
dComIfGp_getVibration().StartShock(5, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mAction = ACTION_BROKEN;
|
||||
cXyz sp68(150.0f, 300.0f, 30.0f);
|
||||
cXyz sp74(yREG_F(1) + -200.0f, yREG_F(2) + 50.0f, 0.0f);
|
||||
cXyz sp80(yREG_F(4) + 25.0f, yREG_F(0) + 120.0f, yREG_F(3) + 50.0f);
|
||||
cXyz sp8c(0.0f, 20.0f, 30.0f);
|
||||
|
||||
if (bVar1) {
|
||||
sp8c.set(-sp8c.x, -sp8c.y, -sp8c.z);
|
||||
sp80.set(sp80.x, sp80.y, -sp80.z);
|
||||
field_0x5aa = shape_angle.y + 0x8000;
|
||||
}
|
||||
|
||||
sp68.set(150.0f, 300.0f, 30.0f);
|
||||
sp74.set(200.0f - yREG_F(1), yREG_F(2) + 50.0f, 0.0f);
|
||||
sp80.set(yREG_F(4) + 25.0f, yREG_F(0) + 120.0f, yREG_F(3) + 50.0f);
|
||||
sp8c.set(0.0f, 20.0f, 30.0f);
|
||||
|
||||
if (bVar1) {
|
||||
sp8c.set(-sp8c.x, -sp8c.y, -sp8c.z);
|
||||
sp80.set(sp80.x, sp80.y, -sp80.z);
|
||||
}
|
||||
|
||||
csXyz angle(0, field_0x5aa, 0);
|
||||
dComIfGp_particle_set(0x8617, ¤t.pos, &tevStr, &angle, NULL);
|
||||
dComIfGp_particle_set(0x8618, ¤t.pos, &tevStr, &angle, NULL);
|
||||
dComIfGp_particle_set(0x8619, ¤t.pos, &tevStr, &angle, NULL);
|
||||
dComIfGp_particle_set(0x861A, ¤t.pos, &tevStr, &angle, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01EC-80BD01F0 000064 0004+00 0/1 0/0 0/0 .rodata @3975 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3975 = 608.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01EC, &lit_3975);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD01F0-80BD01F4 000068 0004+00 0/1 0/0 0/0 .rodata @3976 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3976 = 448.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01F0, &lit_3976);
|
||||
#pragma pop
|
||||
|
||||
/* 80BCF7DC-80BCF860 000BBC 0084+00 1/1 0/0 0/0 .text checkViewArea__15daObjCRVFENCE_cFP4cXyz */
|
||||
void daObjCRVFENCE_c::checkViewArea(cXyz* param_0) {
|
||||
// NONMATCHING
|
||||
bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) {
|
||||
Vec sp24;
|
||||
mDoLib_project(param_1, &sp24);
|
||||
bool rv = false;
|
||||
bool bVar1 = false;
|
||||
|
||||
#ifdef DEBUG
|
||||
if (sp24.x >= 0.0f) {
|
||||
if (sp24.y <= 640.0f) {
|
||||
bVar1 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (bVar1) {
|
||||
bVar1 = false;
|
||||
|
||||
if (sp24.y >= 0.0f) {
|
||||
if (sp24.y <= 456.0f) {
|
||||
bVar1 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (bVar1) {
|
||||
rv = true;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (sp24.x >= 0.0f && sp24.x <= 608.0f && sp24.y >= 0.0f && sp24.y <= 448.0f) {
|
||||
rv = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* 80BCF860-80BCF8A4 000C40 0044+00 1/1 0/0 0/0 .text Action__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::Action() {
|
||||
// NONMATCHING
|
||||
}
|
||||
switch (mAction) {
|
||||
case ACTION_NORMAL:
|
||||
NormalAction();
|
||||
break;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01F4-80BD01F8 00006C 0004+00 1/1 0/0 0/0 .rodata @4010 */
|
||||
SECTION_RODATA static f32 const lit_4010 = 6.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01F4, &lit_4010);
|
||||
case ACTION_BROKEN:
|
||||
BrokenAction();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BCF8A4-80BCF998 000C84 00F4+00 1/1 0/0 0/0 .text setBaseMtx__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(field_0x5ac);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::ZXYrotM(field_0x5c4);
|
||||
mDoMtx_stack_c::scaleM(1.0f, 1.2f, 1.0f);
|
||||
field_0x660->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::transS(field_0x5d0);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::ZXYrotM(field_0x5e8);
|
||||
mDoMtx_stack_c::scaleM(1.0f, 1.2f, 1.0f);
|
||||
field_0x664->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
field_0x65c->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80BCF998-80BCF9C4 000D78 002C+00 1/0 0/0 0/0 .text daObjCRVFENCE_Draw__FP15daObjCRVFENCE_c */
|
||||
static void daObjCRVFENCE_Draw(daObjCRVFENCE_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVFENCE_Draw(daObjCRVFENCE_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 80BCF9C4-80BCF9E4 000DA4 0020+00 2/1 0/0 0/0 .text daObjCRVFENCE_Execute__FP15daObjCRVFENCE_c
|
||||
*/
|
||||
static void daObjCRVFENCE_Execute(daObjCRVFENCE_c* param_0) {
|
||||
// NONMATCHING
|
||||
/* 80BCF9C4-80BCF9E4 000DA4 0020+00 2/1 0/0 0/0 .text daObjCRVFENCE_Execute__FP15daObjCRVFENCE_c */
|
||||
static int daObjCRVFENCE_Execute(daObjCRVFENCE_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD020C-80BD020C 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80BD0224 = "CaravanFence.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80BD0235 = "U_CaravanGate_PieceB.bmd";
|
||||
#pragma pop
|
||||
|
||||
/* 80BD0260-80BD0264 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crvfence__stringBase0;
|
||||
|
||||
/* 80BCF9E4-80BCFAE4 000DC4 0100+00 1/0 0/0 0/0 .text CreateHeap__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjCRVFENCE_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "CaravanFence.bmd");
|
||||
|
||||
JUT_ASSERT(88, modelData != 0);
|
||||
|
||||
field_0x65c = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (field_0x65c == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "U_CaravanGate_PieceB.bmd");
|
||||
|
||||
JUT_ASSERT(99, modelData != 0);
|
||||
|
||||
field_0x660 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (field_0x660 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
field_0x664 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (field_0x664 == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD01F8-80BD01FC 000070 0004+00 0/1 0/0 0/0 .rodata @4119 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4119 = 3.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01F8, &lit_4119);
|
||||
#pragma pop
|
||||
/* 80BCFAE4-80BCFD6C 000EC4 0288+00 1/1 0/0 0/0 .text create__15daObjCRVFENCE_cFv */
|
||||
cPhs__Step daObjCRVFENCE_c::create() {
|
||||
fopAcM_SetupActor(this, daObjCRVFENCE_c);
|
||||
|
||||
/* 80BD01FC-80BD0200 000074 0004+00 0/2 0/0 0/0 .rodata @4120 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4120 = -500.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD01FC, &lit_4120);
|
||||
#pragma pop
|
||||
cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
OS_REPORT("Obj_Fence PARAM %x\n", fopAcM_GetParam(this));
|
||||
|
||||
/* 80BD0200-80BD0204 000078 0004+00 0/2 0/0 0/0 .rodata @4121 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4121 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD0200, &lit_4121);
|
||||
#pragma pop
|
||||
field_0x5a8 = fopAcM_GetParam(this);
|
||||
if (field_0x5a8 != 0xFF) {
|
||||
if (dComIfGs_isSwitch(field_0x5a8, fopAcM_GetRoomNo(this))) {
|
||||
OS_REPORT("ObjFence再セットしません\n");
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BD0204-80BD0208 00007C 0004+00 0/1 0/0 0/0 .rodata @4122 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4122 = 450.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD0204, &lit_4122);
|
||||
#pragma pop
|
||||
gravity = nREG_F(0) + -9.0f;
|
||||
|
||||
/* 80BD020C-80BD020C 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80BD024E = "CaravanFence.dzb";
|
||||
#pragma pop
|
||||
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "CaravanFence.dzb");
|
||||
|
||||
if (dzb_id == -1) {
|
||||
OS_REPORT("dzbデータが見つかりませんでした!<%s>\n\n", l_arcName);
|
||||
|
||||
JUT_ASSERT(783, dzb_id != -1)
|
||||
}
|
||||
|
||||
phase = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x1CA0, 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);
|
||||
mAction = ACTION_NORMAL;
|
||||
fopAcM_SetMtx(this, field_0x65c->getBaseTRMtx());
|
||||
|
||||
cXyz sp30(current.pos.x, current.pos.y + 100.0f, current.pos.z);
|
||||
if (fopAcM_gc_c::gndCheck(&sp30)) {
|
||||
field_0x640 = fopAcM_gc_c::getGroundY();
|
||||
}
|
||||
|
||||
field_0x5aa = shape_angle.y;
|
||||
fopAcM_setCullSizeFar(this, 3.0f);
|
||||
fopAcM_setCullSizeBox(this, -500.0f, 0.0f, -500.0f, 500.0f, 450.0f, 500.0f);
|
||||
daObjCRVFENCE_Execute(this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 80BCFFC0-80BCFFC8 0013A0 0008+00 1/0 0/0 0/0 .text daObjCRVFENCE_IsDelete__FP15daObjCRVFENCE_c */
|
||||
static int daObjCRVFENCE_IsDelete(daObjCRVFENCE_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BCFFC8-80BD000C 0013A8 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVFENCE_cFv */
|
||||
int daObjCRVFENCE_c::Create() {
|
||||
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f);
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80BD000C-80BD0058 0013EC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVFENCE_cFPPA3_A4_f */
|
||||
int daObjCRVFENCE_c::Execute(Mtx** mtx) {
|
||||
Action();
|
||||
*mtx = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD0058-80BD013C 001438 00E4+00 1/0 0/0 0/0 .text Draw__15daObjCRVFENCE_cFv */
|
||||
int daObjCRVFENCE_c::Draw() {
|
||||
g_env_light.settingTevStruct(16, ¤t.pos, &tevStr);
|
||||
|
||||
if (field_0x5a0 == 1) {
|
||||
g_env_light.setLightTevColorType_MAJI(field_0x660, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(field_0x664, &tevStr);
|
||||
} else {
|
||||
g_env_light.setLightTevColorType_MAJI(field_0x65c, &tevStr);
|
||||
}
|
||||
|
||||
dComIfGd_setListBG();
|
||||
|
||||
if (field_0x5a0 == 1) {
|
||||
mDoExt_modelUpdateDL(field_0x660);
|
||||
mDoExt_modelUpdateDL(field_0x664);
|
||||
} else {
|
||||
mDoExt_modelUpdateDL(field_0x65c);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD013C-80BD0170 00151C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVFENCE_cFv */
|
||||
int daObjCRVFENCE_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD0264-80BD0284 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCRVFENCE_Method */
|
||||
static actor_method_class l_daObjCRVFENCE_Method = {
|
||||
(process_method_func)daObjCRVFENCE_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjCRVFENCE_Delete__FP15daObjCRVFENCE_c,
|
||||
(process_method_func)daObjCRVFENCE_Execute__FP15daObjCRVFENCE_c,
|
||||
(process_method_func)daObjCRVFENCE_IsDelete__FP15daObjCRVFENCE_c,
|
||||
(process_method_func)daObjCRVFENCE_Draw__FP15daObjCRVFENCE_c,
|
||||
(process_method_func)daObjCRVFENCE_Create,
|
||||
(process_method_func)daObjCRVFENCE_Delete,
|
||||
(process_method_func)daObjCRVFENCE_Execute,
|
||||
(process_method_func)daObjCRVFENCE_IsDelete,
|
||||
(process_method_func)daObjCRVFENCE_Draw,
|
||||
};
|
||||
|
||||
/* 80BD0284-80BD02B4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_CRVFENCE */
|
||||
|
|
@ -490,131 +463,3 @@ extern actor_process_profile_definition g_profile_Obj_CRVFENCE = {
|
|||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80BD02B4-80BD02C0 000054 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80BD02C0-80BD02CC 000060 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGSph */
|
||||
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGSphFv,
|
||||
};
|
||||
|
||||
/* 80BD02CC-80BD02F0 00006C 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_80BD0178,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80BD0170,
|
||||
};
|
||||
|
||||
/* 80BD02F0-80BD0318 000090 0028+00 1/1 0/0 0/0 .data __vt__15daObjCRVFENCE_c */
|
||||
SECTION_DATA extern void* __vt__15daObjCRVFENCE_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__15daObjCRVFENCE_cFv,
|
||||
(void*)Create__15daObjCRVFENCE_cFv,
|
||||
(void*)Execute__15daObjCRVFENCE_cFPPA3_A4_f,
|
||||
(void*)Draw__15daObjCRVFENCE_cFv,
|
||||
(void*)Delete__15daObjCRVFENCE_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80BCFAE4-80BCFD6C 000EC4 0288+00 1/1 0/0 0/0 .text create__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFD6C-80BCFE38 00114C 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */
|
||||
// dCcD_Sph::~dCcD_Sph() {
|
||||
extern "C" void __dt__8dCcD_SphFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFE38-80BCFEBC 001218 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */
|
||||
// dCcD_Sph::dCcD_Sph() {
|
||||
extern "C" void __ct__8dCcD_SphFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFEBC-80BCFF04 00129C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
|
||||
// cM3dGSph::~cM3dGSph() {
|
||||
extern "C" void __dt__8cM3dGSphFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFF04-80BCFF4C 0012E4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFF4C-80BCFFBC 00132C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BCFFBC-80BCFFC0 00139C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
|
||||
// cXyz::cXyz() {
|
||||
extern "C" void __ct__4cXyzFv() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80BCFFC0-80BCFFC8 0013A0 0008+00 1/0 0/0 0/0 .text daObjCRVFENCE_IsDelete__FP15daObjCRVFENCE_c
|
||||
*/
|
||||
static bool daObjCRVFENCE_IsDelete(daObjCRVFENCE_c* param_0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD0208-80BD020C 000080 0004+00 0/1 0/0 0/0 .rodata @4219 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4219 = -1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD0208, &lit_4219);
|
||||
#pragma pop
|
||||
|
||||
/* 80BCFFC8-80BD000C 0013A8 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::Create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD000C-80BD0058 0013EC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVFENCE_cFPPA3_A4_f */
|
||||
void daObjCRVFENCE_c::Execute(f32 (**param_0)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD0058-80BD013C 001438 00E4+00 1/0 0/0 0/0 .text Draw__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD013C-80BD0170 00151C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVFENCE_cFv */
|
||||
void daObjCRVFENCE_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD0170-80BD0178 001550 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80BD0170() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD0178-80BD0180 001558 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80BD0178() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD020C-80BD020C 000084 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue