mirror of https://github.com/zeldaret/tp.git
d_a_obj_smgdoor OK (#2692)
* d_a_obj_smgdoor OK * symbols * dEvtCnd_CANDOOR_e * remove else
This commit is contained in:
parent
46b1f0ee71
commit
f932405784
|
|
@ -44,10 +44,10 @@ _dtors = .dtors:0x00000000; // type:label scope:global
|
|||
@4055 = .rodata:0x00000028; // type:object size:0x4 scope:local
|
||||
@4056 = .rodata:0x0000002C; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000030; // type:object size:0x9F scope:local data:string_table
|
||||
...data.0 = .data:0x00000000; // type:label scope:local
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
|
||||
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
|
||||
lbl_622_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
|
||||
l_bmd = .data:0x00000028; // type:object size:0x8 scope:global
|
||||
l_dzb = .data:0x00000030; // type:object size:0x8 scope:global
|
||||
|
|
@ -61,4 +61,4 @@ l_func$3923 = .data:0x00000094; // type:object size:0x24 scope:local
|
|||
daObjSmgDoor_METHODS = .data:0x000000B8; // type:object size:0x20 scope:global
|
||||
g_profile_Obj_SmgDoor = .data:0x000000D8; // type:object size:0x30 scope:global
|
||||
__vt__14daObjSmgDoor_c = .data:0x00000108; // type:object size:0x28 scope:global
|
||||
lbl_622_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$1847 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
|
|
|||
|
|
@ -44,9 +44,10 @@ _dtors = .dtors:0x00000000; // type:label scope:global
|
|||
@4055 = .rodata:0x00000028; // type:object size:0x4 scope:local
|
||||
@4056 = .rodata:0x0000002C; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000030; // type:object size:0x9F scope:local data:string_table
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
|
||||
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
|
||||
lbl_622_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
|
||||
l_bmd = .data:0x00000028; // type:object size:0x8 scope:global
|
||||
l_dzb = .data:0x00000030; // type:object size:0x8 scope:global
|
||||
|
|
@ -60,4 +61,4 @@ l_func$3923 = .data:0x00000094; // type:object size:0x24 scope:local
|
|||
daObjSmgDoor_METHODS = .data:0x000000B8; // type:object size:0x20 scope:global
|
||||
g_profile_Obj_SmgDoor = .data:0x000000D8; // type:object size:0x30 scope:global
|
||||
__vt__14daObjSmgDoor_c = .data:0x00000108; // type:object size:0x28 scope:global
|
||||
lbl_622_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$1847 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
|
|
|||
|
|
@ -44,9 +44,10 @@ _dtors = .dtors:0x00000000; // type:label scope:global
|
|||
@4055 = .rodata:0x00000028; // type:object size:0x4 scope:local
|
||||
@4056 = .rodata:0x0000002C; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000030; // type:object size:0x9F scope:local data:string_table
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
|
||||
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
|
||||
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
|
||||
lbl_622_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
|
||||
l_bmd = .data:0x00000028; // type:object size:0x8 scope:global
|
||||
l_dzb = .data:0x00000030; // type:object size:0x8 scope:global
|
||||
|
|
@ -60,4 +61,4 @@ l_func$3923 = .data:0x00000094; // type:object size:0x24 scope:local
|
|||
daObjSmgDoor_METHODS = .data:0x000000B8; // type:object size:0x20 scope:global
|
||||
g_profile_Obj_SmgDoor = .data:0x000000D8; // type:object size:0x30 scope:global
|
||||
__vt__14daObjSmgDoor_c = .data:0x00000108; // type:object size:0x28 scope:global
|
||||
lbl_622_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$1847 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
|
|
|||
|
|
@ -2148,7 +2148,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_shield"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_sm_door"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_smallkey"),
|
||||
ActorRel(NonMatching, "d_a_obj_smgdoor"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_smgdoor"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_smoke"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_smtile"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_smw_stone"),
|
||||
|
|
|
|||
|
|
@ -1,28 +1,36 @@
|
|||
#ifndef D_A_OBJ_SMGDOOR_H
|
||||
#define D_A_OBJ_SMGDOOR_H
|
||||
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
enum daObjSmgDoor_Action {
|
||||
ACT_WAIT = 0,
|
||||
ACT_OPEN = 1,
|
||||
ACT_SETGOAL = 2,
|
||||
ACT_SETPOS = 3,
|
||||
ACT_SCENE_CHG = 4,
|
||||
ACT_COLOR_CHG = 5
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daObjSmgDoor_c
|
||||
* @brief Sacred Meadow Grove Door
|
||||
*
|
||||
* @details
|
||||
* @details The entrance / exit door to Temple of Time
|
||||
*
|
||||
*/
|
||||
class daObjSmgDoor_c : public fopAc_ac_c {
|
||||
class daObjSmgDoor_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
typedef void (daObjSmgDoor_c::*actionFunc)();
|
||||
/* 80CDBB5C */ void initBaseMtx();
|
||||
/* 80CDBBEC */ void setBaseMtx();
|
||||
/* 80CDBD38 */ void Create();
|
||||
/* 80CDBE1C */ void CreateHeap();
|
||||
/* 80CDBED4 */ void create1st();
|
||||
/* 80CDBFA4 */ void Execute(Mtx**);
|
||||
/* 80CDBFF0 */ void getDemoAction();
|
||||
/* 80CDC038 */ void demoProc();
|
||||
/* 80CDC248 */ void openInit();
|
||||
/* 80CDC378 */ void openProc();
|
||||
/* 80CDBED4 */ int create1st();
|
||||
/* 80CDBFF0 */ int getDemoAction();
|
||||
/* 80CDC038 */ int demoProc();
|
||||
/* 80CDC248 */ int openInit();
|
||||
/* 80CDC378 */ int openProc();
|
||||
/* 80CDC4AC */ void setGoal();
|
||||
/* 80CDC548 */ void setPos();
|
||||
/* 80CDC610 */ void sceneChange();
|
||||
|
|
@ -30,16 +38,38 @@ public:
|
|||
/* 80CDC700 */ void actionWaitEvent();
|
||||
/* 80CDC790 */ void actionEvent();
|
||||
/* 80CDC7F4 */ void actionDead();
|
||||
/* 80CDC7F8 */ void checkArea();
|
||||
/* 80CDC974 */ void checkOpen();
|
||||
/* 80CDCA00 */ void Draw();
|
||||
/* 80CDCAC4 */ void Delete();
|
||||
/* 80CDC7F8 */ int checkArea();
|
||||
/* 80CDC974 */ int checkOpen();
|
||||
|
||||
void setAction(u8 i_action) { mAction = i_action; }
|
||||
u8 getEvId() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 20, 8); }
|
||||
u8 getType() { return fopAcM_GetParamBit(this, 8, 4); }
|
||||
u8 getNextSceneID() { return fopAcM_GetParamBit(this, 12, 8); }
|
||||
|
||||
/* 80CDBD38 */ virtual int Create();
|
||||
/* 80CDBE1C */ virtual int CreateHeap();
|
||||
/* 80CDBFA4 */ virtual int Execute(Mtx**);
|
||||
/* 80CDCA00 */ virtual int Draw();
|
||||
/* 80CDCAC4 */ virtual int Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x5f4 - 0x568];
|
||||
/* 0x5A0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5A8 */ J3DModel* mpModel[2];
|
||||
/* 0x5B0 */ s16 field_0x5b0;
|
||||
/* 0x5B2 */ s16 field_0x5b2;
|
||||
/* 0x5B4 */ int mStaffId;
|
||||
/* 0x5B8 */ Mtx field_0x5b8;
|
||||
/* 0x5E8 */ u8 mType;
|
||||
/* 0x5E9 */ u8 field_0x5e9;
|
||||
/* 0x5EA */ u8 mAction;
|
||||
/* 0x5EB */ u8 mToolId;
|
||||
/* 0x5EC */ s16 mEvId;
|
||||
/* 0x5EE */ s16 field_0x5ee;
|
||||
/* 0x5F0 */ s16 field_0x5f0;
|
||||
/* 0x5F2 */ u16 field_0x5f2;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjSmgDoor_c) == 0x5f4);
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_SMGDOOR_H */
|
||||
|
|
|
|||
|
|
@ -1,483 +1,485 @@
|
|||
/**
|
||||
* @file d_a_obj_smgdoor.cpp
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
|
||||
#include "d/dolzel_rel.h"
|
||||
|
||||
#include "d/actor/d_a_obj_smgdoor.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_meter2_info.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
class daObjSmgDoor_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObjSmgDoor_HIO_c();
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
public:
|
||||
/* 0x06 */ u8 field_0x6;
|
||||
};
|
||||
|
||||
extern "C" static void eventCallBack__FPvi();
|
||||
extern "C" void initBaseMtx__14daObjSmgDoor_cFv();
|
||||
extern "C" void setBaseMtx__14daObjSmgDoor_cFv();
|
||||
extern "C" void Create__14daObjSmgDoor_cFv();
|
||||
extern "C" void CreateHeap__14daObjSmgDoor_cFv();
|
||||
extern "C" void create1st__14daObjSmgDoor_cFv();
|
||||
extern "C" void Execute__14daObjSmgDoor_cFPPA3_A4_f();
|
||||
extern "C" void getDemoAction__14daObjSmgDoor_cFv();
|
||||
extern "C" void demoProc__14daObjSmgDoor_cFv();
|
||||
extern "C" void openInit__14daObjSmgDoor_cFv();
|
||||
extern "C" void openProc__14daObjSmgDoor_cFv();
|
||||
extern "C" void setGoal__14daObjSmgDoor_cFv();
|
||||
extern "C" void setPos__14daObjSmgDoor_cFv();
|
||||
extern "C" void sceneChange__14daObjSmgDoor_cFv();
|
||||
extern "C" void event_proc_call__14daObjSmgDoor_cFv();
|
||||
extern "C" void actionWaitEvent__14daObjSmgDoor_cFv();
|
||||
extern "C" void actionEvent__14daObjSmgDoor_cFv();
|
||||
extern "C" void actionDead__14daObjSmgDoor_cFv();
|
||||
extern "C" void checkArea__14daObjSmgDoor_cFv();
|
||||
extern "C" void checkOpen__14daObjSmgDoor_cFv();
|
||||
extern "C" void Draw__14daObjSmgDoor_cFv();
|
||||
extern "C" void Delete__14daObjSmgDoor_cFv();
|
||||
extern "C" static void daObjSmgDoor_create1st__FP14daObjSmgDoor_c();
|
||||
extern "C" static void daObjSmgDoor_MoveBGDelete__FP14daObjSmgDoor_c();
|
||||
extern "C" static void daObjSmgDoor_MoveBGExecute__FP14daObjSmgDoor_c();
|
||||
extern "C" static void daObjSmgDoor_MoveBGDraw__FP14daObjSmgDoor_c();
|
||||
extern "C" void func_80CDCBD0(void* _this, u8*);
|
||||
extern "C" extern char const* const d_a_obj_smgdoor__stringBase0;
|
||||
daObjSmgDoor_HIO_c l_HIO;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
daObjSmgDoor_HIO_c::daObjSmgDoor_HIO_c() {
|
||||
field_0x6 = 0;
|
||||
}
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
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 isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
|
||||
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
|
||||
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
|
||||
extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
|
||||
extern "C" void getIsAddvance__16dEvent_manager_cFi();
|
||||
extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
|
||||
extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci();
|
||||
extern "C" void cutEnd__16dEvent_manager_cFi();
|
||||
extern "C" void setGoal__16dEvent_manager_cFP4cXyz();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void dKy_change_colpat__FUc();
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void normalize__4cXyzFv();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void cLib_chaseS__FPsss();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" extern u8 data_80CDCDF8[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
void daObjSmgDoor_HIO_c::genMessage(JORMContext* ctx) {
|
||||
// Present & Past Door
|
||||
ctx->genLabel("現在&過去の扉", 0, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
|
||||
// Check Display
|
||||
ctx->genCheckBox("チェック表示", &field_0x6, 1, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80CDBB38-80CDBB5C 000078 0024+00 1/1 0/0 0/0 .text eventCallBack__FPvi */
|
||||
static void eventCallBack(void* param_0, int param_1) {
|
||||
// NONMATCHING
|
||||
static int eventCallBack(void* a_this, int param_1) {
|
||||
daObjSmgDoor_c* i_this = (daObjSmgDoor_c*)a_this;
|
||||
i_this->sceneChange();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDBB5C-80CDBBEC 00009C 0090+00 1/1 0/0 0/0 .text initBaseMtx__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
mpModel[0]->setBaseScale(scale);
|
||||
mpModel[1]->setBaseScale(scale);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), field_0x5b8);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCBF4-80CDCBF8 000000 0004+00 3/3 0/0 0/0 .rodata @3705 */
|
||||
SECTION_RODATA static f32 const lit_3705 = -145.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCBF4, &lit_3705);
|
||||
|
||||
/* 80CDCBF8-80CDCBFC 000004 0004+00 1/4 0/0 0/0 .rodata @3706 */
|
||||
SECTION_RODATA static u8 const lit_3706[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDCBF8, &lit_3706);
|
||||
|
||||
/* 80CDCBFC-80CDCC00 000008 0004+00 0/1 0/0 0/0 .rodata @3707 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3707 = 145.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCBFC, &lit_3707);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDBBEC-80CDBD38 00012C 014C+00 2/2 0/0 0/0 .text setBaseMtx__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
cXyz cStack_18(-145.0f, 0.0f, 0.0f);
|
||||
mDoMtx_stack_c::YrotS(current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&cStack_18, &cStack_18);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transM(cStack_18);
|
||||
mDoMtx_stack_c::YrotM(field_0x5b0);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mpModel[0]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
cStack_18.set(145.0f, 0.0f, 0.0f);
|
||||
mDoMtx_stack_c::YrotS(current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&cStack_18, &cStack_18);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::transM(cStack_18);
|
||||
mDoMtx_stack_c::YrotM(field_0x5b2);
|
||||
mDoMtx_stack_c::YrotM(0x7fff);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mpModel[1]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
cMtx_copy(field_0x5b8, mBgMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC00-80CDCC04 00000C 0004+00 1/1 0/0 0/0 .rodata @3722 */
|
||||
SECTION_RODATA static f32 const lit_3722 = 150.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC00, &lit_3722);
|
||||
|
||||
/* 80CDCC24-80CDCC24 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC24 = "A_SMGDoor";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC2E = "A_SMKDoor";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC38 = "A_SMGDoor.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC46 = "A_SMKDoor.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC54 = "A_SMGDoor.dzb";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC62 = "A_SMKDoor.dzb";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC70 = "NOW_DOOR_IN";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC7C = "OLD_DOOR_IN";
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCCE4-80CDCCEC -00001 0008+00 3/4 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName[2] = {
|
||||
(void*)&d_a_obj_smgdoor__stringBase0,
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0xA),
|
||||
};
|
||||
static char* l_arcName[2] = {"A_SMGDoor", "A_SMKDoor"};
|
||||
|
||||
/* 80CDCCEC-80CDCCF4 -00001 0008+00 1/1 0/0 0/0 .data l_bmd */
|
||||
SECTION_DATA static void* l_bmd[2] = {
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x14),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x22),
|
||||
static char* l_bmd[2] = {
|
||||
"A_SMGDoor.bmd",
|
||||
"A_SMKDoor.bmd",
|
||||
};
|
||||
|
||||
/* 80CDCCF4-80CDCCFC -00001 0008+00 1/1 0/0 0/0 .data l_dzb */
|
||||
SECTION_DATA static void* l_dzb[2] = {
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x30),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x3E),
|
||||
static char* l_dzb[2] = {
|
||||
"A_SMGDoor.dzb",
|
||||
"A_SMKDoor.dzb",
|
||||
};
|
||||
|
||||
/* 80CDCCFC-80CDCD04 -00001 0008+00 0/1 0/0 0/0 .data l_eventName */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* l_eventName[2] = {
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x4C),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x58),
|
||||
static char* l_eventName[2] = {
|
||||
"NOW_DOOR_IN",
|
||||
"OLD_DOOR_IN",
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCD04-80CDCD1C 000040 0018+00 0/1 0/0 0/0 .data l_cull_box */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_cull_box[24] = {
|
||||
0xC3, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00,
|
||||
0x43, 0x48, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
static Vec l_cull_box[2] = {{-200.0f, 0.0f, -50.0f}, {200.0f, 400.0f, 50.0f}};
|
||||
|
||||
/* 80CDBD38-80CDBE1C 000278 00E4+00 1/0 0/0 0/0 .text Create__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::Create() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::Create() {
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, field_0x5b8);
|
||||
fopAcM_setCullSizeBox(this, l_cull_box[0].x, l_cull_box[0].y, l_cull_box[0].z, l_cull_box[1].x,
|
||||
l_cull_box[1].y, l_cull_box[1].z);
|
||||
attention_info.position.y += 150.0f;
|
||||
eyePos.y += 150.0f;
|
||||
attention_info.flags = fopAc_AttnFlag_DOOR_e;
|
||||
setAction(ACT_WAIT);
|
||||
eventInfo.setArchiveName(l_arcName[mType]);
|
||||
mToolId = getEvId();
|
||||
mEvId = (s16)dComIfGp_getEventManager().getEventIdx(this, l_eventName[mType], 0xFF);
|
||||
OS_REPORT("mEvId<%d>mToolId<%d>\n", mEvId, mToolId);
|
||||
OS_REPORT("swbit<%d>\n", getSwbit());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDBE1C-80CDBED4 00035C 00B8+00 1/0 0/0 0/0 .text CreateHeap__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName[mType], l_bmd[mType]);
|
||||
JUT_ASSERT(252, modelData != 0);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (mpModel[i] == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDBED4-80CDBFA4 000414 00D0+00 1/1 0/0 0/0 .text create1st__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::create1st() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::create1st() {
|
||||
mType = getType();
|
||||
int phase = dComIfG_resLoad(&mPhase, l_arcName[mType]);
|
||||
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
int dzb_id = dComIfG_getObjctResName2Index(l_arcName[mType], l_dzb[mType]);
|
||||
JUT_ASSERT(287, dzb_id != -1);
|
||||
|
||||
phase = MoveBGCreate(l_arcName[mType], dzb_id, NULL, 0x1660, NULL);
|
||||
if (phase == cPhs_ERROR_e) {
|
||||
return phase;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
// Present or Past Door
|
||||
l_HIO.entryHIO("現在or過去の扉");
|
||||
#endif
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 80CDBFA4-80CDBFF0 0004E4 004C+00 1/0 0/0 0/0 .text Execute__14daObjSmgDoor_cFPPA3_A4_f
|
||||
*/
|
||||
void daObjSmgDoor_c::Execute(Mtx** param_0) {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::Execute(Mtx** param_0) {
|
||||
event_proc_call();
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC24-80CDCC24 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC88 = "WAIT";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC8D = "OPEN";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC92 = "SETGOAL";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCC9A = "SETPOS";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCCA1 = "SCENE_CHG";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCCAB = "COLOR_CHG";
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCD1C-80CDCD34 -00001 0018+00 1/1 0/0 0/0 .data action_table$3763 */
|
||||
SECTION_DATA static void* action_table[6] = {
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x64),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x69),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x6E),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x76),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x7D),
|
||||
(void*)(((char*)&d_a_obj_smgdoor__stringBase0) + 0x87),
|
||||
};
|
||||
|
||||
/* 80CDBFF0-80CDC038 000530 0048+00 1/1 0/0 0/0 .text getDemoAction__14daObjSmgDoor_cFv
|
||||
*/
|
||||
void daObjSmgDoor_c::getDemoAction() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::getDemoAction() {
|
||||
static char* action_table[6] = {
|
||||
"WAIT", "OPEN", "SETGOAL", "SETPOS", "SCENE_CHG", "COLOR_CHG",
|
||||
};
|
||||
|
||||
return dComIfGp_evmng_getMyActIdx(mStaffId, action_table, 6, 0, 0);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC04-80CDCC08 000010 0004+00 3/3 0/0 0/0 .rodata @3825 */
|
||||
SECTION_RODATA static f32 const lit_3825 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC04, &lit_3825);
|
||||
|
||||
/* 80CDCC08-80CDCC0C 000014 0004+00 3/3 0/0 0/0 .rodata @3826 */
|
||||
SECTION_RODATA static f32 const lit_3826 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC08, &lit_3826);
|
||||
|
||||
/* 80CDCC24-80CDCC24 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CDCCB5 = "smgdoor";
|
||||
SECTION_DEAD static char const* const stringBase_80CDCCBD = "Timer";
|
||||
#pragma pop
|
||||
|
||||
/* 80CDC038-80CDC248 000578 0210+00 1/1 0/0 0/0 .text demoProc__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::demoProc() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::demoProc() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
mStaffId = dComIfGp_evmng_getMyStaffId("smgdoor", 0, 0);
|
||||
int demo_action = getDemoAction();
|
||||
|
||||
if (dComIfGp_evmng_getIsAddvance(mStaffId) != 0) {
|
||||
switch (demo_action) {
|
||||
case 0:
|
||||
int* intP = dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer");
|
||||
if (intP == NULL) {
|
||||
field_0x5e9 = 1;
|
||||
} else {
|
||||
field_0x5e9 = *intP;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
openInit();
|
||||
break;
|
||||
case 2:
|
||||
setGoal();
|
||||
break;
|
||||
case 5:
|
||||
dKy_change_colpat(3);
|
||||
field_0x5f2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
switch (demo_action) {
|
||||
case 0:
|
||||
if (cLib_calcTimer(&field_0x5e9) == 0) {
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (openProc() != 0) {
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sceneChange();
|
||||
break;
|
||||
case 5:
|
||||
if (field_0x5f2 == KREG_S(0)) {
|
||||
fopAcM_seStart(this, Z2SE_OBJ_KAKO_DOOR_OP_LIGHT, 0);
|
||||
OS_REPORT("LIGHT SE!\n");
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
}
|
||||
|
||||
field_0x5f2++;
|
||||
break;
|
||||
default:
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 80CDC248-80CDC378 000788 0130+00 1/1 0/0 0/0 .text openInit__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::openInit() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::openInit() {
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
|
||||
if (mType == 0) {
|
||||
fopAcM_seStart(this, Z2SE_OBJ_KAKO_DOOR_OP_IN, 0);
|
||||
} else if (mType == 1) {
|
||||
fopAcM_seStart(this, Z2SE_OBJ_KAKO_DOOR_OP_OUT, 0);
|
||||
}
|
||||
|
||||
field_0x5ee = 0;
|
||||
field_0x5f0 = 0;
|
||||
field_0x5b0 = 0;
|
||||
field_0x5b2 = 0;
|
||||
field_0x5f2 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDC378-80CDC4AC 0008B8 0134+00 1/1 0/0 0/0 .text openProc__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::openProc() {
|
||||
// NONMATCHING
|
||||
}
|
||||
int daObjSmgDoor_c::openProc() {
|
||||
int ret = 0;
|
||||
cLib_chaseS(&field_0x5ee, 0x3c, 3);
|
||||
cLib_chaseS(&field_0x5f0, 0x96, field_0x5ee);
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC0C-80CDCC10 000018 0004+00 1/1 0/0 0/0 .rodata @3888 */
|
||||
SECTION_RODATA static f32 const lit_3888 = 60.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC0C, &lit_3888);
|
||||
switch (mType) {
|
||||
case 0:
|
||||
cLib_chaseS(&field_0x5b0, -0x5000, field_0x5f0);
|
||||
ret = cLib_chaseS(&field_0x5b2, 0x5000, field_0x5f0);
|
||||
break;
|
||||
case 1:
|
||||
cLib_chaseS(&field_0x5b0, 0x5000, field_0x5f0);
|
||||
ret = cLib_chaseS(&field_0x5b2, -0x5000, field_0x5f0);
|
||||
if (field_0x5f2 == 0x46) {
|
||||
fopAcM_seStart(this, Z2SE_OBJ_KAKO_DOOR_OP_LIGHT, 0);
|
||||
dKy_change_colpat(3);
|
||||
OS_REPORT("COLPAT CHANGE!!!!\n");
|
||||
}
|
||||
|
||||
field_0x5f2++;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80CDC4AC-80CDC548 0009EC 009C+00 1/1 0/0 0/0 .text setGoal__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::setGoal() {
|
||||
// NONMATCHING
|
||||
cXyz cStack_18(0.0f, 0.0f, 60.0f);
|
||||
|
||||
if (mType == 1) {
|
||||
cStack_18.set(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&cStack_18, &cStack_18);
|
||||
dComIfGp_evmng_setGoal(&cStack_18);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC10-80CDCC14 00001C 0004+00 0/1 0/0 0/0 .rodata @3906 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3906 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC10, &lit_3906);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCC14-80CDCC18 000020 0004+00 0/1 0/0 0/0 .rodata @3907 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3907 = 250.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC14, &lit_3907);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDC548-80CDC610 000A88 00C8+00 1/1 0/0 0/0 .text setPos__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::setPos() {
|
||||
// NONMATCHING
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
cXyz acStack_28(0.0f, 0.0f, 300.0f);
|
||||
|
||||
if (mType == 1) {
|
||||
acStack_28.set(0.0f, 0.0f, 250.0f);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&acStack_28, &acStack_28);
|
||||
player->setPlayerPosAndAngle(&acStack_28, current.angle.y + 0x7fff, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* 80CDC610-80CDC65C 000B50 004C+00 2/2 0/0 0/0 .text sceneChange__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::sceneChange() {
|
||||
// NONMATCHING
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
player->onSceneChangeArea(getNextSceneID(), 0xff, 0);
|
||||
// Present & Past Door: Scene Change Destination <%d>
|
||||
OS_REPORT("現在&過去の扉:シーン切替先<%d>\n", getNextSceneID());
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCD34-80CDCD40 -00001 000C+00 0/1 0/0 0/0 .data @3924 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3924[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionWaitEvent__14daObjSmgDoor_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCD40-80CDCD4C -00001 000C+00 0/1 0/0 0/0 .data @3925 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3925[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionEvent__14daObjSmgDoor_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCD4C-80CDCD58 -00001 000C+00 0/1 0/0 0/0 .data @3926 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3926[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionDead__14daObjSmgDoor_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCD58-80CDCD7C 000094 0024+00 0/1 0/0 0/0 .data l_func$3923 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_func[36] = {
|
||||
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
|
||||
|
||||
/* 80CDC65C-80CDC700 000B9C 00A4+00 1/1 0/0 0/0 .text event_proc_call__14daObjSmgDoor_cFv
|
||||
*/
|
||||
void daObjSmgDoor_c::event_proc_call() {
|
||||
// NONMATCHING
|
||||
static actionFunc l_func[] = {&daObjSmgDoor_c::actionWaitEvent, &daObjSmgDoor_c::actionEvent,
|
||||
&daObjSmgDoor_c::actionDead};
|
||||
|
||||
(this->*(l_func[mAction]))();
|
||||
}
|
||||
|
||||
/* 80CDC700-80CDC790 000C40 0090+00 1/0 0/0 0/0 .text actionWaitEvent__14daObjSmgDoor_cFv
|
||||
*/
|
||||
void daObjSmgDoor_c::actionWaitEvent() {
|
||||
// NONMATCHING
|
||||
if (eventInfo.checkCommandDoor()) {
|
||||
attention_info.position.y = home.pos.y;
|
||||
|
||||
if (mType == 1) {
|
||||
shape_angle.y += 0x7fff;
|
||||
}
|
||||
setAction(1);
|
||||
setPos();
|
||||
} else {
|
||||
if (checkOpen() != 0) {
|
||||
eventInfo.setEventId(mEvId);
|
||||
eventInfo.setMapToolId(mToolId);
|
||||
eventInfo.onCondition(dEvtCnd_CANDOOR_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CDC790-80CDC7F4 000CD0 0064+00 1/0 0/0 0/0 .text actionEvent__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::actionEvent() {
|
||||
// NONMATCHING
|
||||
dMeter2Info_onGameStatus(2);
|
||||
dComIfGp_getEvent().setSkipProc(this, eventCallBack, 0);
|
||||
demoProc();
|
||||
}
|
||||
|
||||
/* 80CDC7F4-80CDC7F8 000D34 0004+00 1/0 0/0 0/0 .text actionDead__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::actionDead() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCC18-80CDCC1C 000024 0004+00 0/1 0/0 0/0 .rodata @4054 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4054 = 62500.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC18, &lit_4054);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCC1C-80CDCC20 000028 0004+00 0/1 0/0 0/0 .rodata @4055 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4055 = 90000.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC1C, &lit_4055);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDCC20-80CDCC24 00002C 0004+00 0/1 0/0 0/0 .rodata @4056 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4056 = 12100.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDCC20, &lit_4056);
|
||||
#pragma pop
|
||||
void daObjSmgDoor_c::actionDead() {}
|
||||
|
||||
/* 80CDC7F8-80CDC974 000D38 017C+00 1/1 0/0 0/0 .text checkArea__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::checkArea() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::checkArea() {
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
cXyz player_to_door_vec;
|
||||
cXyz player_attention_pos(player->attention_info.position);
|
||||
player_attention_pos.y = player->current.pos.y;
|
||||
player_to_door_vec = player_attention_pos - current.pos;
|
||||
f32 sq_distance_xz = player_to_door_vec.abs2XZ();
|
||||
cXyz door_forward_vec;
|
||||
door_forward_vec.set(cM_ssin(home.angle.y), 0.0f, cM_scos(home.angle.y));
|
||||
|
||||
if (sq_distance_xz > 62500.0f) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
player_to_door_vec.normalize();
|
||||
f32 dot_product_scaled = player_to_door_vec.inprodXZ(door_forward_vec);
|
||||
dot_product_scaled *= (sq_distance_xz * dot_product_scaled);
|
||||
|
||||
if (dot_product_scaled > 90000.0f) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sq_distance_xz - dot_product_scaled > 12100.0f) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (abs((s16)(current.angle.y - player->current.angle.y)) < 0x5000) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDC974-80CDCA00 000EB4 008C+00 1/1 0/0 0/0 .text checkOpen__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::checkOpen() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::checkOpen() {
|
||||
if (getSwbit() != 0xff) {
|
||||
if (fopAcM_isSwitch(this, getSwbit()) == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (daPy_py_c::checkNowWolf()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (checkArea() == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDCA00-80CDCAC4 000F40 00C4+00 1/0 0/0 0/0 .text Draw__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::Draw() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::Draw() {
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel[0], &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel[1], &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel[0]);
|
||||
mDoExt_modelUpdateDL(mpModel[1]);
|
||||
dComIfGd_setList();
|
||||
|
||||
#ifdef DEBUG
|
||||
if (l_HIO.field_0x6 != 0) {
|
||||
mpBgW->CalcPlane();
|
||||
}
|
||||
#endif
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDCAC4-80CDCB04 001004 0040+00 1/0 0/0 0/0 .text Delete__14daObjSmgDoor_cFv */
|
||||
void daObjSmgDoor_c::Delete() {
|
||||
// NONMATCHING
|
||||
int daObjSmgDoor_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName[mType]);
|
||||
#ifdef DEBUG
|
||||
l_HIO.removeHIO();
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDCB04-80CDCB64 001044 0060+00 1/0 0/0 0/0 .text daObjSmgDoor_create1st__FP14daObjSmgDoor_c
|
||||
*/
|
||||
static int daObjSmgDoor_create1st(daObjSmgDoor_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, daObjSmgDoor_c);
|
||||
return i_this->create1st();
|
||||
}
|
||||
|
||||
/* 80CDCB64-80CDCB84 0010A4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjSmgDoor_MoveBGDelete__FP14daObjSmgDoor_c */
|
||||
static int daObjSmgDoor_MoveBGDelete(daObjSmgDoor_c* i_this) {
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80CDCB84-80CDCBA4 0010C4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjSmgDoor_MoveBGExecute__FP14daObjSmgDoor_c */
|
||||
static int daObjSmgDoor_MoveBGExecute(daObjSmgDoor_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80CDCBA4-80CDCBD0 0010E4 002C+00 1/0 0/0 0/0 .text daObjSmgDoor_MoveBGDraw__FP14daObjSmgDoor_c
|
||||
*/
|
||||
static int daObjSmgDoor_MoveBGDraw(daObjSmgDoor_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDCD7C-80CDCD9C -00001 0020+00 1/0 0/0 0/0 .data daObjSmgDoor_METHODS */
|
||||
static actor_method_class daObjSmgDoor_METHODS = {
|
||||
(process_method_func)daObjSmgDoor_create1st__FP14daObjSmgDoor_c,
|
||||
(process_method_func)daObjSmgDoor_MoveBGDelete__FP14daObjSmgDoor_c,
|
||||
(process_method_func)daObjSmgDoor_MoveBGExecute__FP14daObjSmgDoor_c,
|
||||
0,
|
||||
(process_method_func)daObjSmgDoor_MoveBGDraw__FP14daObjSmgDoor_c,
|
||||
(process_method_func)daObjSmgDoor_create1st, (process_method_func)daObjSmgDoor_MoveBGDelete,
|
||||
(process_method_func)daObjSmgDoor_MoveBGExecute, 0,
|
||||
(process_method_func)daObjSmgDoor_MoveBGDraw,
|
||||
};
|
||||
|
||||
/* 80CDCD9C-80CDCDCC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_SmgDoor */
|
||||
extern actor_process_profile_definition g_profile_Obj_SmgDoor = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
3, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_SmgDoor, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daObjSmgDoor_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
553, // mPriority
|
||||
&daObjSmgDoor_METHODS, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
3, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_SmgDoor, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daObjSmgDoor_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
553, // mPriority
|
||||
&daObjSmgDoor_METHODS, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CDCDCC-80CDCDF4 000108 0028+00 1/1 0/0 0/0 .data __vt__14daObjSmgDoor_c */
|
||||
SECTION_DATA extern void* __vt__14daObjSmgDoor_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__14daObjSmgDoor_cFv,
|
||||
(void*)Create__14daObjSmgDoor_cFv,
|
||||
(void*)Execute__14daObjSmgDoor_cFPPA3_A4_f,
|
||||
(void*)Draw__14daObjSmgDoor_cFv,
|
||||
(void*)Delete__14daObjSmgDoor_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80CDCB04-80CDCB64 001044 0060+00 1/0 0/0 0/0 .text daObjSmgDoor_create1st__FP14daObjSmgDoor_c
|
||||
*/
|
||||
static void daObjSmgDoor_create1st(daObjSmgDoor_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDCB64-80CDCB84 0010A4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjSmgDoor_MoveBGDelete__FP14daObjSmgDoor_c */
|
||||
static void daObjSmgDoor_MoveBGDelete(daObjSmgDoor_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDCB84-80CDCBA4 0010C4 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjSmgDoor_MoveBGExecute__FP14daObjSmgDoor_c */
|
||||
static void daObjSmgDoor_MoveBGExecute(daObjSmgDoor_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDCBA4-80CDCBD0 0010E4 002C+00 1/0 0/0 0/0 .text daObjSmgDoor_MoveBGDraw__FP14daObjSmgDoor_c
|
||||
*/
|
||||
static void daObjSmgDoor_MoveBGDraw(daObjSmgDoor_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDCBD0-80CDCBEC 001110 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
|
||||
extern "C" void func_80CDCBD0(void* _this, u8* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDCC24-80CDCC24 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue