Merge branch 'main' into d_a_warphr

This commit is contained in:
LagoLunatic
2025-08-19 23:32:21 -04:00
committed by GitHub
9 changed files with 484 additions and 144 deletions
+1 -1
View File
@@ -1466,7 +1466,7 @@ config.libs = [
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_tbox", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(Matching, "d_a_tpota", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(NonMatching, "d_a_tsubo"),
ActorRel(NonMatching, "d_a_warpdm20"),
ActorRel(Matching, "d_a_warpdm20", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(Matching, "d_a_warphr", extra_cflags=['-pragma "nosyminline on"']),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_wbird"),
ActorRel(NonMatching, "d_a_ykgr"),
+43 -14
View File
@@ -2,44 +2,73 @@
#define D_A_WARPDM20_H
#include "f_op/f_op_actor.h"
#include "d/d_particle.h"
class mDoExt_btkAnm;
class mDoExt_brkAnm;
class mDoExt_bckAnm;
class daWarpdm20_c : public fopAc_ac_c {
public:
void set_mtx(); // weak but not inlined?
bool _delete();
void CreateHeap();
BOOL CreateHeap();
void CreateInit();
cPhs_State _create();
inline void set_mtx();
bool _execute();
void normal_execute();
void demo_execute();
void demo_proc();
void initWait(int);
void actWait(int);
BOOL actWait(int);
void initWait2(int);
void actWait2(int);
BOOL actWait2(int);
void initWarp(int);
void actWarp(int);
BOOL actWarp(int);
void initWaitDead(int);
void actWaitDead(int);
BOOL actWaitDead(int);
void initDead(int);
void actDead(int);
BOOL actDead(int);
void initReturnWait(int);
void actReturnWait(int);
BOOL actReturnWait(int);
void eventOrder();
void checkOrder();
void animPlay();
void setEndAnm();
void getSeaY(cXyz);
void set_effect(unsigned short);
f32 getSeaY(cXyz);
BOOL set_effect(unsigned short);
void set_wpsenko();
void init_bck_anm(int);
void check_warp();
BOOL check_warp();
bool _draw();
static const char m_arcname[];
static const s16 m_residxA[];
static const s16 m_residxB[];
static const u32 m_heapsize;
static const f32 m_warp_distance;
static const f32 m_eff_distance;
public:
/* Place member variables here */
};
/* 0x290 */ request_of_phase_process_class mPhase;
/* 0x298 */ J3DModel* mpModel;
/* 0x29C */ mDoExt_btkAnm* mpBtkAnm;
/* 0x2A0 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x2A4 */ mDoExt_bckAnm* mpBckAnm;
/* 0x2A8 */ u8 m2A8[0x2AC - 0x2A8];
/* 0x2AC */ dPa_rippleEcallBack mRippleCallback;
/* 0x2C0 */ u8 m2C0[0x2C8 - 0x2C0];
/* 0x2C8 */ s32 m2C8;
/* 0x2CC */ u8 m2CC;
/* 0x2CD */ u8 m2CD[0x2D2 - 0x2CD];
/* 0x2D2 */ s16 mEventIdx;
/* 0x2D4 */ u8 m2D4[0x2D6 - 0x2D4];
/* 0x2D6 */ u8 m2D6;
/* 0x2D8 */ u32 m2D8;
/* 0x2DC */ s32 mStaffIdx;
/* 0x2E0 */ cXyz m2E0;
/* 0x2EC */ cXyz m2EC;
/* 0x2F8 */ bool m2F8;
}; // size = 0x2FC
#endif /* D_A_WARPDM20_H */
+1 -72
View File
@@ -11,6 +11,7 @@
#include "d/d_map.h"
#include "d/d_particle.h"
#include "d/d_resorce.h"
#include "d/d_s_actor_data_mng.h"
#include "d/d_save.h"
#include "d/d_stage.h"
#include "d/d_vibration.h"
@@ -116,78 +117,6 @@ public:
/* 0x10 */ u16 mWaveFrame;
};
class dADM_CharTbl : public cDT {
public:
s32 GetNITEM0() { return mIndex_N_ITEM0; }
s32 GetNITEM1() { return mIndex_N_ITEM1; }
s32 GetNITEM2() { return mIndex_N_ITEM2; }
s32 GetNITEM3() { return mIndex_N_ITEM3; }
s32 GetNITEM4() { return mIndex_N_ITEM4; }
s32 GetNITEM5() { return mIndex_N_ITEM5; }
s32 GetNITEM6() { return mIndex_N_ITEM6; }
s32 GetNITEM7() { return mIndex_N_ITEM7; }
s32 GetNITEM8() { return mIndex_N_ITEM8; }
s32 GetNITEM9() { return mIndex_N_ITEM9; }
s32 GetNITEM10() { return mIndex_N_ITEM10; }
s32 GetNITEM11() { return mIndex_N_ITEM11; }
s32 GetNITEM12() { return mIndex_N_ITEM12; }
s32 GetNITEM13() { return mIndex_N_ITEM13; }
s32 GetNITEM14() { return mIndex_N_ITEM14; }
s32 GetNITEM15() { return mIndex_N_ITEM15; }
s32 GetPercent() { return mIndex_percent; }
s32 GetITEM0() { return mIndex_ITEM0; }
s32 GetITEM1() { return mIndex_ITEM1; }
s32 GetITEM2() { return mIndex_ITEM2; }
s32 GetITEM3() { return mIndex_ITEM3; }
s32 GetITEM4() { return mIndex_ITEM4; }
s32 GetITEM5() { return mIndex_ITEM5; }
s32 GetITEM6() { return mIndex_ITEM6; }
s32 GetITEM7() { return mIndex_ITEM7; }
private:
/* 0x28 */ s32 mIndex_ARG;
/* 0x2C */ s32 mIndex_N_ITEM0;
/* 0x30 */ s32 mIndex_N_ITEM1;
/* 0x34 */ s32 mIndex_N_ITEM2;
/* 0x38 */ s32 mIndex_N_ITEM3;
/* 0x3C */ s32 mIndex_N_ITEM4;
/* 0x40 */ s32 mIndex_N_ITEM5;
/* 0x44 */ s32 mIndex_N_ITEM6;
/* 0x48 */ s32 mIndex_N_ITEM7;
/* 0x4C */ s32 mIndex_N_ITEM8;
/* 0x50 */ s32 mIndex_N_ITEM9;
/* 0x54 */ s32 mIndex_N_ITEM10;
/* 0x58 */ s32 mIndex_N_ITEM11;
/* 0x5C */ s32 mIndex_N_ITEM12;
/* 0x60 */ s32 mIndex_N_ITEM13;
/* 0x64 */ s32 mIndex_N_ITEM14;
/* 0x68 */ s32 mIndex_N_ITEM15;
/* 0x6C */ s32 mIndex_percent;
/* 0x70 */ s32 mIndex_ITEM0;
/* 0x74 */ s32 mIndex_ITEM1;
/* 0x78 */ s32 mIndex_ITEM2;
/* 0x7C */ s32 mIndex_ITEM3;
/* 0x80 */ s32 mIndex_ITEM4;
/* 0x84 */ s32 mIndex_ITEM5;
/* 0x88 */ s32 mIndex_ITEM6;
/* 0x8C */ s32 mIndex_ITEM7;
};
STATIC_ASSERT(sizeof(dADM_CharTbl) == 0x90);
class dADM {
public:
/* 0x00 */ int mBlockCount;
/* 0x04 */ void* mpData;
/* 0x08 */ dADM_CharTbl mCharTbl;
public:
dADM();
void FindTag(u32, u32*, u32*);
void SetData(void*);
virtual ~dADM();
};
class dComIfG_camera_info_class {
public:
dComIfG_camera_info_class() {}
+2 -2
View File
@@ -211,8 +211,8 @@ public:
JPABaseEmitter* getEmitter() { return mpBaseEmitter; }
void isStatus(u8) {}
void offStatus(int) {}
void onStatus(int) {}
void offStatus(int flag) { mFlags &= ~flag; }
void onStatus(int flag) { mFlags |= flag;}
void remove() { end(); }
void setRate(f32 rate) { mRate = rate; }
+32 -2
View File
@@ -2,6 +2,7 @@
#define D_S_ACTOR_DATA_MNG
#include "SSystem/SComponent/c_data_tbl.h"
#include "global.h"
class dADM_CharTbl : public cDT {
public:
@@ -15,14 +16,43 @@ public:
void SetData(u32, u32, u32, u32, u32, u32, u32);
void SetUpIndex();
int GetNameIndex2(const char*, int) const;
s32 GetNITEM0() { return mIndex_N_ITEM[0]; }
s32 GetNITEM1() { return mIndex_N_ITEM[1]; }
s32 GetNITEM2() { return mIndex_N_ITEM[2]; }
s32 GetNITEM3() { return mIndex_N_ITEM[3]; }
s32 GetNITEM4() { return mIndex_N_ITEM[4]; }
s32 GetNITEM5() { return mIndex_N_ITEM[5]; }
s32 GetNITEM6() { return mIndex_N_ITEM[6]; }
s32 GetNITEM7() { return mIndex_N_ITEM[7]; }
s32 GetNITEM8() { return mIndex_N_ITEM[8]; }
s32 GetNITEM9() { return mIndex_N_ITEM[9]; }
s32 GetNITEM10() { return mIndex_N_ITEM[10]; }
s32 GetNITEM11() { return mIndex_N_ITEM[11]; }
s32 GetNITEM12() { return mIndex_N_ITEM[12]; }
s32 GetNITEM13() { return mIndex_N_ITEM[13]; }
s32 GetNITEM14() { return mIndex_N_ITEM[14]; }
s32 GetNITEM15() { return mIndex_N_ITEM[15]; }
s32 GetPercent() { return mIndex_percent; }
s32 GetITEM0() { return mIndex_ITEM[0]; }
s32 GetITEM1() { return mIndex_ITEM[1]; }
s32 GetITEM2() { return mIndex_ITEM[2]; }
s32 GetITEM3() { return mIndex_ITEM[3]; }
s32 GetITEM4() { return mIndex_ITEM[4]; }
s32 GetITEM5() { return mIndex_ITEM[5]; }
s32 GetITEM6() { return mIndex_ITEM[6]; }
s32 GetITEM7() { return mIndex_ITEM[7]; }
};
STATIC_ASSERT(sizeof(dADM_CharTbl) == 0x90);
class dADM {
public:
/* 0x00 */ s32 mBlockCount;
/* 0x04 */ void *mpData;
/* 0x00 */ int mBlockCount;
/* 0x04 */ void* mpData;
/* 0x08 */ dADM_CharTbl mCharTbl;
public:
dADM();
virtual ~dADM();
bool FindTag(u32, u32*, u32*);
@@ -9,9 +9,9 @@
extern "C" {
#endif
SECTION_INIT void* memcpy(void* dest, const void* src, size_t n);
SECTION_INIT void __fill_mem(void* dest, int val, size_t count);
SECTION_INIT void* memset(void* dest, int val, size_t count);
void* memcpy(void* dest, const void* src, size_t n);
void __fill_mem(void* dest, int val, size_t count);
void* memset(void* dest, int val, size_t count);
int memcmp(const void* lhs, const void* rhs, size_t count);
void* __memrchr(const void* ptr, int ch, size_t count);
+4 -4
View File
@@ -1,7 +1,7 @@
#include "dolphin/types.h"
#include "string.h"
void* memcpy(void* dst, const void* src, size_t n)
SECTION_INIT void* memcpy(void* dst, const void* src, size_t n)
{
const char* p;
char* q;
@@ -19,7 +19,7 @@ void* memcpy(void* dst, const void* src, size_t n)
return (dst);
}
void __fill_mem(void* dst, int val, u32 n)
SECTION_INIT void __fill_mem(void* dst, int val, u32 n)
{
u32 v = (u8)val;
u32 i;
@@ -76,9 +76,9 @@ void __fill_mem(void* dst, int val, u32 n)
return;
}
void* memset(void* dst, int val, size_t n)
SECTION_INIT void* memset(void* dst, int val, size_t n)
{
__fill_mem(dst, val, n);
return (dst);
}
}
+3 -2
View File
@@ -224,8 +224,9 @@ BOOL daNpc_Fa1_c::_draw() {
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &tevStr);
g_env_light.setLightTevColorType(pJVar1, &tevStr);
mpDoExt_McaMorf->entryDL();
if (mGroundY != -G_CM3D_F_INF) {
dComIfGd_setSimpleShadow(&current.pos, mGroundY, 10.0f, &m774, 0, 1.0f,
f32 ground_y = mGroundY;
if (ground_y != -G_CM3D_F_INF) {
dComIfGd_setSimpleShadow(&current.pos, ground_y, 10.0f, &m774, 0, 1.0f,
dDlst_shadowControl_c::getSimpleTex());
}
dSnap_RegistFig(DSNAP_TYPE_FA, this, 1.0f, 1.0f, 1.0f);
+395 -44
View File
@@ -4,167 +4,518 @@
//
#include "d/actor/d_a_warpdm20.h"
#include "d/actor/d_a_ship.h"
#include "d/actor/d_a_player.h"
#include "d/actor/d_a_sea.h"
#include "d/res/res_gdemo20.h"
#include "d/d_procname.h"
#include "d/d_priority.h"
#include "d/d_bg_s_func.h"
#include "d/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
#include "weak_data_1811.h" // IWYU pragma: keep
typedef void (daWarpdm20_c::*EventInitFunc)(int);
typedef BOOL (daWarpdm20_c::*EventActionFunc)(int);
static EventInitFunc event_init_tbl[] = {
&daWarpdm20_c::initWait,
&daWarpdm20_c::initWarp,
&daWarpdm20_c::initDead,
&daWarpdm20_c::initWaitDead,
&daWarpdm20_c::initWait2,
&daWarpdm20_c::initReturnWait,
};
static EventActionFunc event_action_tbl[] = {
&daWarpdm20_c::actWait,
&daWarpdm20_c::actWarp,
&daWarpdm20_c::actDead,
&daWarpdm20_c::actWaitDead,
&daWarpdm20_c::actWait2,
&daWarpdm20_c::actReturnWait,
};
const char daWarpdm20_c::m_arcname[] = "Gdemo20";
const s16 daWarpdm20_c::m_residxA[] = {GDEMO20_BDL_GDEMO20_1, GDEMO20_BCK_GDEMO20_1, GDEMO20_BTK_GDEMO20_1, GDEMO20_BRK_GDEMO20_1};
const s16 daWarpdm20_c::m_residxB[] = {-1, -1, -1, -1};
const u32 daWarpdm20_c::m_heapsize = 0x3000;
const f32 daWarpdm20_c::m_warp_distance = 500.0f;
const f32 daWarpdm20_c::m_eff_distance = 2000.0f;
namespace daWarpdm20_prm {
static inline u8 getType(daWarpdm20_c* i_this) {
return fopAcM_GetParam(i_this) & 0xF;
}
} // namespace daWarpdm20_prm
/* 00000078-000000BC .text _delete__12daWarpdm20_cFv */
bool daWarpdm20_c::_delete() {
/* Nonmatching */
mRippleCallback.remove();
dComIfG_resDeleteDemo(&mPhase, m_arcname);
return true;
}
/* 000000BC-000000DC .text CheckCreateHeap__FP10fopAc_ac_c */
static BOOL CheckCreateHeap(fopAc_ac_c*) {
/* Nonmatching */
static BOOL CheckCreateHeap(fopAc_ac_c* a_this) {
return ((daWarpdm20_c*)a_this)->CreateHeap();
}
/* 000000DC-0000046C .text CreateHeap__12daWarpdm20_cFv */
void daWarpdm20_c::CreateHeap() {
/* Nonmatching */
BOOL daWarpdm20_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, m_residxA[0]);
JUT_ASSERT(DEMO_SELECT(210, 215), modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000222);
if (mpModel == NULL) {
return FALSE;
}
mpBckAnm = NULL;
if (m_residxA[1] != -1) {
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(m_arcname, m_residxA[1]);
JUT_ASSERT(DEMO_SELECT(228, 233), pbck != NULL);
mpBckAnm = new mDoExt_bckAnm();
if (mpBckAnm == NULL || !mpBckAnm->init(modelData, pbck, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false)) {
return FALSE;
}
mpBckAnm->setPlaySpeed(0.0f);
}
mpBtkAnm = NULL;
if (m_residxA[2] != -1) {
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(m_arcname, m_residxA[2]);
JUT_ASSERT(DEMO_SELECT(270, 275), pbtk != NULL);
mpBtkAnm = new mDoExt_btkAnm();
if (mpBtkAnm == NULL || !mpBtkAnm->init(modelData, pbtk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, FALSE)) {
return FALSE;
}
mpBtkAnm->setPlaySpeed(0.0f);
}
mpBrkAnm = NULL;
if (m_residxA[3] != -1) {
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_arcname, m_residxA[3]);
JUT_ASSERT(DEMO_SELECT(290, 295), pbrk != NULL);
mpBrkAnm = new mDoExt_brkAnm();
if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, pbrk, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false, FALSE)) {
return FALSE;
}
mpBrkAnm->setPlaySpeed(0.0f);
}
return TRUE;
}
/* 000004B4-000005C8 .text CreateInit__12daWarpdm20_cFv */
void daWarpdm20_c::CreateInit() {
/* Nonmatching */
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
fopAcM_setCullSizeBox(this, -300.0f, 0.0f, -300.0f, 300.0f, 500.0f, 300.0f);
fopAcM_setCullSizeFar(this, 1.0f);
set_mtx();
m2E0 = current.pos;
m2EC.set(1.0f, 1.0f, 1.0f);
m2C8 = 0;
if (dComIfGs_isEventBit(0x2d08)) {
m2CC = 1;
setEndAnm();
}
mEventIdx = dComIfGp_evmng_getEventIdx("TO_HYRULE_WARP", 0xff);
if (dComIfGs_isEventBit(0x2d02)) {
dComIfGs_onEventBit(0x1820);
}
}
/* 000005C8-000006A0 .text _create__12daWarpdm20_cFv */
cPhs_State daWarpdm20_c::_create() {
/* Nonmatching */
fopAcM_SetupActor(this, daWarpdm20_c);
m2D6 = daWarpdm20_prm::getType(this);
cPhs_State PVar1 = dComIfG_resLoad(&mPhase, m_arcname);
if (PVar1 == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x3000)) {
return cPhs_ERROR_e;
}
CreateInit();
}
return PVar1;
}
/* 00000744-00000820 .text set_mtx__12daWarpdm20_cFv */
void daWarpdm20_c::set_mtx() {
/* Nonmatching */
cXyz sp08(current.pos);
sp08.y += 2000.0f;
current.pos.y = getSeaY(sp08);
#if VERSION > VERSION_DEMO
if (current.pos.y == -G_CM3D_F_INF) {
current.pos.y = 0.0f;
}
#endif
m2E0.y = current.pos.y;
mpModel->setBaseScale(scale);
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 00000820-00000988 .text _execute__12daWarpdm20_cFv */
bool daWarpdm20_c::_execute() {
/* Nonmatching */
if (demoActorID == 0) {
set_effect(0x83d8);
checkOrder();
demo_proc();
eventOrder();
} else {
demo_execute();
}
if (m2CC != 0) {
fopAcM_seStart(this, JA_SE_OBJ_HL_WAPR_EFF, 0);
}
set_mtx();
return true;
}
/* 00000988-00000AF0 .text normal_execute__12daWarpdm20_cFv */
void daWarpdm20_c::normal_execute() {
/* Nonmatching */
JPABaseEmitter* emitter = mRippleCallback.getEmitter();
daPy_py_c* player = daPy_getPlayerActorClass();
f32 abs = (player->current.pos - current.pos).absXZ();
f32 max = 2000.0f;
if (dComIfGs_isEventBit(0x2d08)) {
m2CC = 1;
animPlay();
if (emitter != NULL) {
if (abs < max) {
emitter->playCreateParticle();
} else {
emitter->stopCreateParticle();
}
}
if (check_warp()) {
m2C8 = 1;
}
}
}
/* 00000AF0-00000BB4 .text demo_execute__12daWarpdm20_cFv */
void daWarpdm20_c::demo_execute() {
/* Nonmatching */
m2CC = 1;
dDemo_actor_c* pdVar1 = dComIfGp_demo_getActor(demoActorID);
if (pdVar1 != NULL) {
m2D8 = pdVar1->getShapeId();
if (m2D8 == 0) {
fopAcM_offDraw(this);
} else if (m2D8 == 1) {
set_effect(0x82bd);
if (mRippleCallback.getEmitter() != NULL) {
mRippleCallback.getEmitter()->playCreateParticle();
}
set_wpsenko();
fopAcM_onDraw(this);
animPlay();
}
}
}
/* 00000BB4-00000CD0 .text demo_proc__12daWarpdm20_cFv */
void daWarpdm20_c::demo_proc() {
/* Nonmatching */
static char* action_table[] = {
"WAIT",
"WARP",
"DEAD",
"WAIT_DEAD",
"WAIT2",
"RETURN_WAIT",
};
mStaffIdx = dComIfGp_evmng_getMyStaffId("Gdemo20");
if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk() && mStaffIdx != -1) {
s32 iVar1 = dComIfGp_evmng_getMyActIdx(mStaffIdx, action_table, ARRAY_SIZE(action_table), FALSE, 0);
if (iVar1 == -1) {
dComIfGp_evmng_cutEnd(mStaffIdx);
} else {
if (dComIfGp_evmng_getIsAddvance(mStaffIdx)) {
(this->*event_init_tbl[iVar1])(mStaffIdx);
}
if ((this->*event_action_tbl[iVar1])(mStaffIdx)) {
dComIfGp_evmng_cutEnd(mStaffIdx);
}
}
}
}
/* 00000CD0-00000CEC .text initWait__12daWarpdm20_cFi */
void daWarpdm20_c::initWait(int) {
/* Nonmatching */
if (mRippleCallback.getEmitter() != NULL) {
mRippleCallback.getEmitter()->playCreateParticle();
}
}
/* 00000CEC-00000D10 .text actWait__12daWarpdm20_cFi */
void daWarpdm20_c::actWait(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actWait(int) {
animPlay();
return TRUE;
}
/* 00000D10-00000D44 .text initWait2__12daWarpdm20_cFi */
void daWarpdm20_c::initWait2(int) {
/* Nonmatching */
dComIfGp_evmng_setGoal(&current.pos);
}
/* 00000D44-00000D68 .text actWait2__12daWarpdm20_cFi */
void daWarpdm20_c::actWait2(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actWait2(int) {
animPlay();
return TRUE;
}
/* 00000D68-00000DE0 .text initWarp__12daWarpdm20_cFi */
void daWarpdm20_c::initWarp(int) {
/* Nonmatching */
mDoAud_seStart(JA_SE_LK_HL_WAPR_D_IN);
dComIfGp_evmng_setGoal(&current.pos);
}
/* 00000DE0-00000E04 .text actWarp__12daWarpdm20_cFi */
void daWarpdm20_c::actWarp(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actWarp(int) {
animPlay();
return TRUE;
}
/* 00000E04-00000F20 .text initWaitDead__12daWarpdm20_cFi */
void daWarpdm20_c::initWaitDead(int) {
/* Nonmatching */
if (mRippleCallback.getEmitter() != NULL) {
mRippleCallback.getEmitter()->playCreateParticle();
}
cXyz sp08(current.pos);
sp08.z += 1000.0f;
dComIfGp_evmng_setGoal(&sp08);
m2CC = 1;
init_bck_anm(GDEMO20_BCK_GDEMO20_1A);
if (mpBrkAnm != NULL) {
mpBrkAnm->setFrame(mpBrkAnm->getEndFrame());
}
if (mpBckAnm != NULL) {
mpBckAnm->setPlaySpeed(0.0f);
}
#if VERSION <= VERSION_JPN
mDoAud_seStart(JA_SE_LK_HL_WAPR_D_OUT);
#else
mDoAud_seStart(JA_SE_LK_HL_WAPR_U_OUT);
#endif
}
/* 00000F20-00000F94 .text actWaitDead__12daWarpdm20_cFi */
void daWarpdm20_c::actWaitDead(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actWaitDead(int) {
if (mpBtkAnm != NULL) {
mpBtkAnm->setPlaySpeed(1.0f);
mpBtkAnm->play();
}
if (mpBrkAnm != NULL) {
mpBrkAnm->setPlaySpeed(1.0f);
mpBrkAnm->play();
}
return TRUE;
}
/* 00000F94-00001004 .text initDead__12daWarpdm20_cFi */
void daWarpdm20_c::initDead(int) {
/* Nonmatching */
#if VERSION >= VERSION_USA
fopAcM_seStart(this, JA_SE_OBJ_HL_WARP_OFF, 0);
#endif
}
/* 00001004-00001104 .text actDead__12daWarpdm20_cFi */
void daWarpdm20_c::actDead(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actDead(int) {
BOOL uVar6 = FALSE;
if (mpBtkAnm != NULL) {
mpBtkAnm->setPlaySpeed(1.0f);
mpBtkAnm->play();
}
if (mpBrkAnm != NULL) {
mpBrkAnm->setPlaySpeed(1.0f);
mpBrkAnm->play();
}
if (mpBckAnm != NULL) {
mpBckAnm->setPlaySpeed(1.0f);
if (mpBckAnm->play()) {
uVar6 = TRUE;
m2CC = 0;
}
}
JPABaseEmitter* emitter = mRippleCallback.getEmitter();
if (emitter != NULL) {
cLib_chasePos(&m2EC, cXyz::Zero, 0.2f);
JGeometry::TVec3<f32> scale = m2EC;
emitter->setGlobalScale(scale);
}
return uVar6;
}
/* 00001104-00001174 .text initReturnWait__12daWarpdm20_cFi */
void daWarpdm20_c::initReturnWait(int) {
/* Nonmatching */
if (mRippleCallback.getEmitter() != NULL) {
mRippleCallback.getEmitter()->playCreateParticle();
}
#if VERSION <= VERSION_JPN
mDoAud_seStart(JA_SE_LK_HL_WAPR_D_OUT);
#else
mDoAud_seStart(JA_SE_LK_HL_WAPR_U_OUT);
#endif
}
/* 00001174-00001198 .text actReturnWait__12daWarpdm20_cFi */
void daWarpdm20_c::actReturnWait(int) {
/* Nonmatching */
BOOL daWarpdm20_c::actReturnWait(int) {
animPlay();
return TRUE;
}
/* 00001198-000011F4 .text eventOrder__12daWarpdm20_cFv */
void daWarpdm20_c::eventOrder() {
/* Nonmatching */
if (m2C8 == 1) {
fopAcM_orderOtherEventId(this, mEventIdx, 0xff, 0xffff, 0, 1);
eventInfo.onCondition(2);
}
}
/* 000011F4-000012B4 .text checkOrder__12daWarpdm20_cFv */
void daWarpdm20_c::checkOrder() {
/* Nonmatching */
if (eventInfo.checkCommandDemoAccrpt()) {
if (dComIfGp_evmng_startCheck(mEventIdx) && m2C8 != 0) {
m2C8 = 0;
}
if (dComIfGp_evmng_endCheck(mEventIdx)) {
dComIfGp_event_reset();
fopAcM_delete(this);
}
} else if (m2C8 == 0 && !dComIfGp_event_runCheck()) {
normal_execute();
}
}
/* 000012B4-00001348 .text animPlay__12daWarpdm20_cFv */
void daWarpdm20_c::animPlay() {
/* Nonmatching */
if (mpBtkAnm != NULL) {
mpBtkAnm->setPlaySpeed(1.0f);
mpBtkAnm->play();
}
if (mpBrkAnm != NULL) {
mpBrkAnm->setPlaySpeed(1.0f);
mpBrkAnm->play();
}
if (mpBckAnm != NULL) {
mpBckAnm->setPlaySpeed(1.0f);
mpBckAnm->play();
}
}
/* 00001348-000013C4 .text setEndAnm__12daWarpdm20_cFv */
void daWarpdm20_c::setEndAnm() {
/* Nonmatching */
if (mpBckAnm != NULL) {
mpBckAnm->setFrame(mpBckAnm->getEndFrame());
}
if (mpBrkAnm != NULL) {
mpBrkAnm->setFrame(mpBrkAnm->getEndFrame());
}
}
/* 000013C4-00001418 .text getSeaY__12daWarpdm20_cF4cXyz */
void daWarpdm20_c::getSeaY(cXyz) {
/* Nonmatching */
f32 daWarpdm20_c::getSeaY(cXyz arg1) {
f32 fVar3;
if (daSea_ChkArea(arg1.x, arg1.z)) {
fVar3 = daSea_calcWave(arg1.x, arg1.z);
} else {
fVar3 = dBgS_ObjGndChk_Wtr_Func(arg1);
}
return fVar3;
}
/* 00001418-000014CC .text set_effect__12daWarpdm20_cFUs */
void daWarpdm20_c::set_effect(unsigned short) {
/* Nonmatching */
BOOL daWarpdm20_c::set_effect(unsigned short arg1) {
BOOL ret;
if (mRippleCallback.getEmitter() == NULL) {
dComIfGp_particle_setShipTail(arg1, &m2E0, NULL, &m2EC, 0xff, &mRippleCallback);
mRippleCallback.offStatus(1);
mRippleCallback.setRate(7.0f);
if (mRippleCallback.getEmitter() != NULL) {
mRippleCallback.getEmitter()->stopCreateParticle();
}
ret = TRUE;
} else {
ret = FALSE;
}
return ret;
}
/* 000014CC-00001550 .text set_wpsenko__12daWarpdm20_cFv */
void daWarpdm20_c::set_wpsenko() {
/* Nonmatching */
if (!m2F8) {
dComIfGp_particle_set(dPa_name::ID_SCENE_82BC, &current.pos);
m2F8 = true;
}
}
/* 00001550-000015F0 .text init_bck_anm__12daWarpdm20_cFi */
void daWarpdm20_c::init_bck_anm(int) {
/* Nonmatching */
void daWarpdm20_c::init_bck_anm(int arg1) {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, m_residxA[0]);
J3DAnmTransform* anmTransform = (J3DAnmTransform*)dComIfG_getObjectRes(m_arcname, arg1);
mpBckAnm->init(modelData, anmTransform, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, true);
}
/* 000015F0-000016EC .text check_warp__12daWarpdm20_cFv */
void daWarpdm20_c::check_warp() {
/* Nonmatching */
BOOL daWarpdm20_c::check_warp() {
daShip_c* ship = dComIfGp_getShipActor();
f32 max = 500.0f;
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) && ship != NULL) {
f32 abs = (ship->current.pos - current.pos).absXZ();
if (abs < max) {
return TRUE;
}
}
return FALSE;
}
/* 000016EC-000017C0 .text _draw__12daWarpdm20_cFv */
bool daWarpdm20_c::_draw() {
/* Nonmatching */
if (m2CC == 0) {
return true;
}
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, &current.pos, &tevStr);
g_env_light.setLightTevColorType(mpModel, &tevStr);
if (mpBtkAnm != NULL) {
mpBtkAnm->entry(mpModel->getModelData());
}
if (mpBrkAnm != NULL) {
mpBrkAnm->entry(mpModel->getModelData());
}
if (mpBckAnm != NULL) {
mpBckAnm->entry(mpModel->getModelData());
}
mDoExt_modelUpdateDL(mpModel);
return true;
}
/* 000017C0-000017E0 .text daWarpdm20_Create__FPv */