mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-04 18:58:35 -04:00
d_a_gy_ctrl
This commit is contained in:
+1
-1
@@ -1497,7 +1497,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_door12"),
|
||||
ActorRel(Matching, "d_a_fallrock"),
|
||||
ActorRel(Matching, "d_a_ff"),
|
||||
ActorRel(NonMatching, "d_a_gy_ctrl"),
|
||||
ActorRel(Equivalent, "d_a_gy_ctrl"),
|
||||
ActorRel(NonMatching, "d_a_himo3"),
|
||||
ActorRel(NonMatching, "d_a_hmlif"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_hys"),
|
||||
|
||||
@@ -50,7 +50,9 @@ public:
|
||||
bool _delete();
|
||||
|
||||
public:
|
||||
/* 0x2AC */ u8 m2AC[0x2D4 - 0x2AC];
|
||||
/* 0x2AC */ u8 m2AC[0x2B0 - 0x2AC];
|
||||
/* 0x2B0 */ s32 m2B0;
|
||||
/* 0x2B4 */ u8 m2B4[0x2D4 - 0x2B4];
|
||||
/* 0x2D4 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x2D8 */ mDoExt_invisibleModel m2D8;
|
||||
/* 0x2E0 */ dBgS_Acch mAcch;
|
||||
|
||||
@@ -2,23 +2,26 @@
|
||||
#define D_A_GY_CTRL_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_lin_chk.h"
|
||||
|
||||
class daGy_Ctrl_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum Proc_e {
|
||||
|
||||
PROC_0_e,
|
||||
PROC_1_e,
|
||||
};
|
||||
|
||||
void getMode() {}
|
||||
void isTargetPlayer() {}
|
||||
void isTargetPlayerShip() {}
|
||||
|
||||
void searchNearActor(fopAc_ac_c*);
|
||||
void* searchNearActor(fopAc_ac_c*);
|
||||
void setTarget();
|
||||
void setPathTargetPos();
|
||||
void getWaterY(cXyz&);
|
||||
void lineCheck(cXyz*, cXyz*);
|
||||
void checkPath();
|
||||
bool setPathTargetPos();
|
||||
f32 getWaterY(cXyz&);
|
||||
bool lineCheck(cXyz*, cXyz*);
|
||||
bool checkPath();
|
||||
void setPathPos();
|
||||
void modeProc(Proc_e, int);
|
||||
void modeSwWaitInit();
|
||||
@@ -34,22 +37,42 @@ public:
|
||||
bool _draw();
|
||||
void createInitNoArer();
|
||||
void createInit();
|
||||
void getParam(unsigned long, unsigned char, unsigned char);
|
||||
u8 getParam(unsigned long, unsigned char, unsigned char);
|
||||
void getArg();
|
||||
void checkGyCtrlExist();
|
||||
bool checkGyCtrlExist();
|
||||
cPhs_State _create();
|
||||
bool _delete();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
|
||||
class daGy_Ctrl_HIO_c {
|
||||
public:
|
||||
daGy_Ctrl_HIO_c();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x290 */ cXyz m290[5];
|
||||
/* 0x2CC */ cXyz m2CC[5];
|
||||
/* 0x308 */ s16 m308[5];
|
||||
/* 0x312 */ u8 m312[5];
|
||||
/* 0x318 */ f32 m318;
|
||||
/* 0x31C */ s32 m31C;
|
||||
/* 0x320 */ s32 m320;
|
||||
/* 0x324 */ int m324;
|
||||
/* 0x328 */ u8 m328;
|
||||
/* 0x329 */ u8 m329;
|
||||
/* 0x32C */ f32 m32C;
|
||||
/* 0x330 */ u8 m330;
|
||||
/* 0x331 */ u8 m331;
|
||||
/* 0x334 */ s32 m334;
|
||||
/* 0x338 */ cXyz m338;
|
||||
/* 0x344 */ u8 m344;
|
||||
/* 0x348 */ f32 m348;
|
||||
/* 0x34C */ s16 m34C;
|
||||
/* 0x350 */ int m350;
|
||||
/* 0x354 */ u8 m354[0x358 - 0x354];
|
||||
/* 0x358 */ int m358;
|
||||
/* 0x35C */ s32 m35C;
|
||||
/* 0x360 */ fpc_ProcID m360[5];
|
||||
/* 0x374 */ bool m374[5];
|
||||
/* 0x37C */ dBgS_ObjLinChk mLinChk;
|
||||
/* 0x3E8 */ u8 m3E8;
|
||||
/* 0x3EC */ cXyz m3EC[16];
|
||||
/* 0x4AC */ bool m4AC;
|
||||
/* 0x4B0 */ int m4B0;
|
||||
}; // size = 0x4B4
|
||||
|
||||
#endif /* D_A_GY_CTRL_H */
|
||||
|
||||
+450
-37
@@ -5,147 +5,560 @@
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
#include "d/actor/d_a_gy_ctrl.h"
|
||||
#include "d/actor/d_a_ship.h"
|
||||
#include "d/actor/d_a_gy.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_bg_s_func.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class daGy_Ctrl_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daGy_Ctrl_HIO_c();
|
||||
virtual ~daGy_Ctrl_HIO_c();
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
public:
|
||||
/* 0x04 */ u8 m04;
|
||||
/* 0x05 */ u8 m05;
|
||||
/* 0x06 */ s16 m06;
|
||||
/* 0x08 */ s16 m08;
|
||||
/* 0x0A */ s16 m0A;
|
||||
/* 0x0C */ s16 m0C;
|
||||
/* 0x10 */ f32 m10;
|
||||
/* 0x14 */ u8 m14[0x4];
|
||||
/* 0x18 */ f32 m18;
|
||||
/* 0x1C */ f32 m1C;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ f32 m24;
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x2C */ f32 m2C;
|
||||
}; // size = 0x30
|
||||
|
||||
static daGy_Ctrl_HIO_c l_HIO;
|
||||
|
||||
/* 000000EC-00000170 .text __ct__15daGy_Ctrl_HIO_cFv */
|
||||
daGy_Ctrl_HIO_c::daGy_Ctrl_HIO_c() {
|
||||
/* Nonmatching */
|
||||
m04 = 0;
|
||||
m10 = 10.0f;
|
||||
m06 = 100;
|
||||
m08 = 240;
|
||||
m05 = 0;
|
||||
m2C = 10.0f;
|
||||
m20 = 10000.0f;
|
||||
m24 = DEMO_SELECT(1000.0f, 500.0f);
|
||||
m28 = DEMO_SELECT(-100.0f, -500.0f);
|
||||
m1C = 700.0f;
|
||||
m0A = 200;
|
||||
m18 = 1000.0f;
|
||||
m0C = 250;
|
||||
}
|
||||
|
||||
/* 000001B8-000001E4 .text searchNearActor_CB__FPvPv */
|
||||
void searchNearActor_CB(void*, void*) {
|
||||
/* Nonmatching */
|
||||
void* searchNearActor_CB(void* arg0, void* arg1) {
|
||||
return ((daGy_Ctrl_c*)arg1)->searchNearActor((fopAc_ac_c*)arg0);
|
||||
}
|
||||
|
||||
/* 000001E4-0000029C .text searchNearActor__11daGy_Ctrl_cFP10fopAc_ac_c */
|
||||
void daGy_Ctrl_c::searchNearActor(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
void* daGy_Ctrl_c::searchNearActor(fopAc_ac_c* arg1) {
|
||||
if (fopAc_IsActor(arg1)) {
|
||||
f32 dVar3 = fopAcM_searchActorDistanceXZ(this, arg1);
|
||||
if (m328 == 0 && fpcM_GetName(arg1) == PROC_GY_CTRLB && dVar3 < 6000.0f) {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
if (fpcM_GetName(arg1) == PROC_DAIOCTA || fpcM_GetName(arg1) == PROC_OBJ_IKADA || fpcM_GetName(arg1) == PROC_NPC_SO) {
|
||||
if (dVar3 < 6000.0f) {
|
||||
return arg1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 0000029C-00000450 .text setTarget__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::setTarget() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e) || dComIfGp_checkPlayerStatus0(0, daPyStts0_UNK1000000_e)) {
|
||||
if (m3E8 != 0) {
|
||||
if (cLib_calcTimer(&m358) == 0) {
|
||||
m358 = 0x1e;
|
||||
}
|
||||
m35C = 2;
|
||||
}
|
||||
m320 = 1;
|
||||
} else {
|
||||
if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SWIM_e)) {
|
||||
if (cLib_calcTimer(&m358) == 0) {
|
||||
m358 = 0x1e;
|
||||
}
|
||||
m35C = 1;
|
||||
m320 = 0;
|
||||
} else {
|
||||
m320 = 0;
|
||||
m358 = 0x1e;
|
||||
m35C = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (m3E8 == 0 || m344 == 0) {
|
||||
m35C = 0;
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
m4AC = true;
|
||||
|
||||
for (s32 i = 0; i < m329; i++) {
|
||||
daGy_c* pfVar2 = (daGy_c*)fopAcM_SearchByID(m360[i]);
|
||||
if ((pfVar2 != NULL) && (pfVar2 != NULL) && (pfVar2->m2B0 != 0)) {
|
||||
m4AC = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (m4AC) {
|
||||
m35C = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (m35C) {
|
||||
case 1:
|
||||
dCam_getBody()->SetTypeForce("WaterBattle", NULL);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
dCam_getBody()->SetTypeForce("BoatBattle", NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000450-00000638 .text setPathTargetPos__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::setPathTargetPos() {
|
||||
/* Nonmatching */
|
||||
bool daGy_Ctrl_c::setPathTargetPos() {
|
||||
cXyz sp24;
|
||||
|
||||
switch (m320) {
|
||||
case 0:
|
||||
sp24 = dComIfGp_getPlayer(0)->current.pos;
|
||||
m318 = l_HIO.m1C;
|
||||
m34C += l_HIO.m0A;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (dComIfGp_getShipActor() != NULL) {
|
||||
sp24 = dComIfGp_getShipActor()->current.pos;
|
||||
m318 = l_HIO.m18;
|
||||
m34C += l_HIO.m0C;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
sp24.y = getWaterY(sp24);
|
||||
|
||||
if (m328 == 0) {
|
||||
current.pos = sp24;
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((m338 - sp24).absXZ() < m32C) {
|
||||
current.pos = sp24;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 00000674-000006AC .text getWaterY__11daGy_Ctrl_cFR4cXyz */
|
||||
void daGy_Ctrl_c::getWaterY(cXyz&) {
|
||||
/* Nonmatching */
|
||||
f32 daGy_Ctrl_c::getWaterY(cXyz& arg1) {
|
||||
arg1.y += 1000.0f;
|
||||
dBgS_GetWaterHeight(arg1);
|
||||
}
|
||||
|
||||
/* 000006AC-0000072C .text lineCheck__11daGy_Ctrl_cFP4cXyzP4cXyz */
|
||||
void daGy_Ctrl_c::lineCheck(cXyz*, cXyz*) {
|
||||
/* Nonmatching */
|
||||
bool daGy_Ctrl_c::lineCheck(cXyz* arg1, cXyz* arg2) {
|
||||
mLinChk.Set(arg1, arg2, this);
|
||||
if (dComIfG_Bgsp()->LineCross(&mLinChk)) {
|
||||
*arg2 = mLinChk.mLin.GetEnd();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 0000072C-00000878 .text checkPath__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::checkPath() {
|
||||
/* Nonmatching */
|
||||
bool daGy_Ctrl_c::checkPath() {
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(m3EC); i++) {
|
||||
s16 tmp = 0xFFF;
|
||||
s16 tmp2 = tmp * i;
|
||||
#if VERSION == VERSION_DEMO
|
||||
cXyz sp14(m348, 0.0f, l_HIO.m28);
|
||||
#else
|
||||
cXyz sp14(m348, 0.0f, 0.0f);
|
||||
#endif
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(tmp2);
|
||||
mDoMtx_stack_c::transM(sp14.x, sp14.y, sp14.z);
|
||||
|
||||
m3EC[i].x = mDoMtx_stack_c::get()[0][3];
|
||||
m3EC[i].y = mDoMtx_stack_c::get()[1][3];
|
||||
m3EC[i].z = mDoMtx_stack_c::get()[2][3];
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
m3EC[i].y = getWaterY(m3EC[i]);
|
||||
#endif
|
||||
|
||||
cXyz sp08 = m3EC[i];
|
||||
sp08.y += l_HIO.m24;
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
m3EC[i].y += l_HIO.m28;
|
||||
#endif
|
||||
|
||||
if (lineCheck(&sp08, &m3EC[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000878-00000AC8 .text setPathPos__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::setPathPos() {
|
||||
/* Nonmatching */
|
||||
for (s32 i = 0; i < m329; i++) {
|
||||
s16 tmp2 = (s16)(0xffff / m329);
|
||||
s16 tmp3 = tmp2 * i;
|
||||
m308[i] = m34C + tmp3;
|
||||
s16 uVar1 = m308[i];
|
||||
s16 uVar2 = uVar1 + 0x500;
|
||||
#if VERSION == VERSION_DEMO
|
||||
f32 tmp = l_HIO.m10 * cM_ssin(uVar1);
|
||||
tmp = m348 + tmp;
|
||||
#else
|
||||
f32 tmp = m348 + l_HIO.m10 * cM_ssin(uVar1);
|
||||
#endif
|
||||
cXyz sp14;
|
||||
|
||||
sp14.set(tmp, 0.0f, 0.0f);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(uVar1);
|
||||
mDoMtx_stack_c::transM(sp14.x, sp14.y, sp14.z);
|
||||
|
||||
m290[i].x = mDoMtx_stack_c::get()[0][3];
|
||||
m290[i].y = mDoMtx_stack_c::get()[1][3];
|
||||
m290[i].z = mDoMtx_stack_c::get()[2][3];
|
||||
|
||||
m290[i].y = getWaterY(m290[i]);
|
||||
|
||||
sp14.set(tmp, 0.0f, l_HIO.m28);
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(uVar2);
|
||||
mDoMtx_stack_c::transM(sp14.x, sp14.y, sp14.z);
|
||||
|
||||
m2CC[i].x = mDoMtx_stack_c::get()[0][3];
|
||||
m2CC[i].y = mDoMtx_stack_c::get()[1][3];
|
||||
m2CC[i].z = mDoMtx_stack_c::get()[2][3];
|
||||
|
||||
cXyz sp08 = m2CC[i];
|
||||
sp08.y += l_HIO.m24;
|
||||
|
||||
m2CC[i].y = getWaterY(m2CC[i]);
|
||||
|
||||
if (lineCheck(&sp08, &m2CC[i])) {
|
||||
m312[i] = 0;
|
||||
} else {
|
||||
m312[i] = 1;
|
||||
}
|
||||
}
|
||||
cLib_addCalc2(&m348, m318, 0.1f, l_HIO.m2C);
|
||||
}
|
||||
|
||||
/* 00000AC8-00000C14 .text modeProc__11daGy_Ctrl_cFQ211daGy_Ctrl_c6Proc_ei */
|
||||
void daGy_Ctrl_c::modeProc(daGy_Ctrl_c::Proc_e, int) {
|
||||
/* Nonmatching */
|
||||
void daGy_Ctrl_c::modeProc(daGy_Ctrl_c::Proc_e arg1, int arg2) {
|
||||
typedef void (daGy_Ctrl_c::*ModeFunc)();
|
||||
struct ModeData {
|
||||
/* 0x00 */ ModeFunc init;
|
||||
/* 0x0C */ ModeFunc exec;
|
||||
/* 0x18 */ char* name;
|
||||
}; // size = 0x1C
|
||||
|
||||
static ModeData mode_tbl[] = {
|
||||
{
|
||||
&daGy_Ctrl_c::modeSwWaitInit,
|
||||
&daGy_Ctrl_c::modeSwWait,
|
||||
"SW_WAIT",
|
||||
},
|
||||
{
|
||||
&daGy_Ctrl_c::modeCreateInit,
|
||||
&daGy_Ctrl_c::modeCreate,
|
||||
"CREATE",
|
||||
},
|
||||
{
|
||||
&daGy_Ctrl_c::modeWaitInit,
|
||||
&daGy_Ctrl_c::modeWait,
|
||||
"WAIT",
|
||||
},
|
||||
{
|
||||
&daGy_Ctrl_c::modeHideInit,
|
||||
&daGy_Ctrl_c::modeHide,
|
||||
"HIDE",
|
||||
},
|
||||
};
|
||||
|
||||
if (arg1 == 0) {
|
||||
m324 = arg2;
|
||||
(this->*mode_tbl[m324].init)();
|
||||
} else if (arg1 == 1) {
|
||||
(this->*mode_tbl[m324].exec)();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000C14-00000C18 .text modeSwWaitInit__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeSwWaitInit() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000C18-00000C8C .text modeSwWait__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeSwWait() {
|
||||
/* Nonmatching */
|
||||
s32 sw;
|
||||
if (m328 == 1) {
|
||||
sw = fopAcM_GetRoomNo(this);
|
||||
} else if (m328 == 0) {
|
||||
sw = m334;
|
||||
}
|
||||
|
||||
if (dComIfGs_isSwitch(m330, sw)) {
|
||||
modeProc(PROC_0_e, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000C8C-00000CA0 .text modeCreateInit__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeCreateInit() {
|
||||
/* Nonmatching */
|
||||
m350 = l_HIO.m06;
|
||||
}
|
||||
|
||||
/* 00000CA0-00000E50 .text modeCreate__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeCreate() {
|
||||
/* Nonmatching */
|
||||
if (m328 == 1 && m344 == 0) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else if (m3E8 == 0) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else if (fopAcM_Search(searchNearActor_CB, this) != NULL) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else {
|
||||
if (m31C < m329 && cLib_calcTimer(&m350) == 0) {
|
||||
cXyz sp18 = m290[m31C];
|
||||
csXyz sp10(0, 0, 0);
|
||||
sp10.y = m308[m31C];
|
||||
sp18.y = -1000.0f;
|
||||
|
||||
m360[m31C] = fopAcM_createChild(PROC_GY, fopAcM_GetID(this), 0xffffffff, &sp18, tevStr.mRoomNo, &sp10);
|
||||
m374[m31C] = true;
|
||||
m350 = l_HIO.m08;
|
||||
}
|
||||
|
||||
if (m31C == m329) {
|
||||
modeProc(PROC_0_e, 2);
|
||||
}
|
||||
setPathPos();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000E50-00000E54 .text modeWaitInit__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeWaitInit() {
|
||||
/* Nonmatching */
|
||||
static const GXColor color_ok = {0x00, 0xFF, 0x00, 0x80};
|
||||
static const GXColor color_ng = {0xFF, 0x00, 0x00, 0x80};
|
||||
}
|
||||
|
||||
/* 00000E54-00000F00 .text modeWait__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeWait() {
|
||||
/* Nonmatching */
|
||||
if (m328 == 1 && m344 == 0) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else if (m3E8 == 0) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else if (fopAcM_Search(searchNearActor_CB, this) != NULL) {
|
||||
modeProc(PROC_0_e, 3);
|
||||
} else {
|
||||
deadCheckGy();
|
||||
setPathPos();
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000F00-00000F18 .text modeHideInit__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeHideInit() {
|
||||
/* Nonmatching */
|
||||
#if VERSION > VERSION_DEMO
|
||||
m4B0 = REG8_S(8) + 30;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 00000F18-00000FFC .text modeHide__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::modeHide() {
|
||||
/* Nonmatching */
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (m328 == 1) {
|
||||
if (m344 == 1 && m3E8 == 1) {
|
||||
modeProc(PROC_0_e, 1);
|
||||
}
|
||||
} else if (m328 == 0 && m3E8 == 1) {
|
||||
modeProc(PROC_0_e, 1);
|
||||
}
|
||||
#else
|
||||
bool bVar1 = false;
|
||||
if (m328 == 1) {
|
||||
if (m344 == 1 && m3E8 == 1) {
|
||||
bVar1 = true;
|
||||
}
|
||||
} else if (m328 == 0 && m3E8 == 1) {
|
||||
bVar1 = true;
|
||||
}
|
||||
|
||||
if (cLib_calcTimer(&m4B0) == 0) {
|
||||
if (fopAcM_Search(searchNearActor_CB, this) != NULL) {
|
||||
bVar1 = false;
|
||||
m4B0 = REG8_S(9) + 30;
|
||||
}
|
||||
} else {
|
||||
bVar1 = false;
|
||||
}
|
||||
|
||||
if (bVar1 && m3E8 == 1) {
|
||||
modeProc(PROC_0_e, 1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 00000FFC-0000109C .text deadCheckGy__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::deadCheckGy() {
|
||||
/* Nonmatching */
|
||||
s32 uVar3 = 0;
|
||||
for (s32 i = 0; i < m329; i++) {
|
||||
if (m374[i] == 1 && fopAcM_SearchByID(m360[i]) == NULL) {
|
||||
uVar3++;
|
||||
}
|
||||
}
|
||||
|
||||
if (uVar3 == m329) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 0000109C-00001100 .text _execute__11daGy_Ctrl_cFv */
|
||||
bool daGy_Ctrl_c::_execute() {
|
||||
/* Nonmatching */
|
||||
setTarget();
|
||||
m344 = setPathTargetPos();
|
||||
m3E8 = checkPath();
|
||||
modeProc(PROC_1_e, 4);
|
||||
#if VERSION > VERSION_DEMO
|
||||
m334 = fopAcM_GetRoomNo(this);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 00001100-00001210 .text _draw__11daGy_Ctrl_cFv */
|
||||
bool daGy_Ctrl_c::_draw() {
|
||||
/* Nonmatching */
|
||||
if (l_HIO.m04 != 0) {
|
||||
cXyz sp2C = current.pos;
|
||||
sp2C.y = sp2C.y + 100.0f;
|
||||
|
||||
for (s32 i = 0; i < m329; i++) {
|
||||
cXyz sp20 = m290[i];
|
||||
sp20.y += 500.0f;
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(m3EC); i++) {
|
||||
cXyz sp14 = m3EC[i];
|
||||
sp14.y += l_HIO.m24;
|
||||
}
|
||||
|
||||
if (m328 == 1) {
|
||||
cXyz sp08 = m338;
|
||||
sp08.y = current.pos.y + 100.0f;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00001210-00001250 .text createInitNoArer__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::createInitNoArer() {
|
||||
/* Nonmatching */
|
||||
fopAcM_setStageLayer(this);
|
||||
m331 = 1;
|
||||
m334 = fopAcM_GetRoomNo(this);
|
||||
}
|
||||
|
||||
/* 00001250-000012D4 .text createInit__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::createInit() {
|
||||
/* Nonmatching */
|
||||
if (m330 != 0xff) {
|
||||
modeProc(PROC_0_e, 0);
|
||||
} else {
|
||||
modeProc(PROC_0_e, 1);
|
||||
}
|
||||
|
||||
m320 = 0;
|
||||
m338 = current.pos;
|
||||
|
||||
if (m328 == 0) {
|
||||
createInitNoArer();
|
||||
}
|
||||
}
|
||||
|
||||
/* 000012D4-000012F8 .text getParam__11daGy_Ctrl_cFUlUcUc */
|
||||
void daGy_Ctrl_c::getParam(unsigned long, unsigned char, unsigned char) {
|
||||
/* Nonmatching */
|
||||
u8 daGy_Ctrl_c::getParam(unsigned long arg1, unsigned char arg2, unsigned char arg3) {
|
||||
return ((1 << arg3) - 1) & (arg1 >> arg2);
|
||||
}
|
||||
|
||||
/* 000012F8-000013F8 .text getArg__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::getArg() {
|
||||
/* Nonmatching */
|
||||
u32 uVar3 = fopAcM_GetParam(this);
|
||||
m328 = getParam(uVar3, 0, 4);
|
||||
m329 = getParam(uVar3, 4, 4);
|
||||
u8 uVar1 = getParam(uVar3, 8, 8);
|
||||
m330 = getParam(uVar3, 0x18, 8);
|
||||
|
||||
if (m328 == 0xf) {
|
||||
m328 = 0;
|
||||
}
|
||||
|
||||
if (m329 == 0xf) {
|
||||
m329 = 1;
|
||||
}
|
||||
|
||||
if (uVar1 == 0xff) {
|
||||
m32C = 10000.0f;
|
||||
} else {
|
||||
m32C = uVar1 * 1000.0f;
|
||||
}
|
||||
}
|
||||
|
||||
/* 000013F8-00001458 .text checkGyCtrlExist__11daGy_Ctrl_cFv */
|
||||
void daGy_Ctrl_c::checkGyCtrlExist() {
|
||||
/* Nonmatching */
|
||||
bool daGy_Ctrl_c::checkGyCtrlExist() {
|
||||
s32 local_8 = PROC_GY_CTRL;
|
||||
daGy_Ctrl_c* pfVar1 = (daGy_Ctrl_c*)fopAcM_SearchByName(local_8);
|
||||
if ((pfVar1 != NULL) && (pfVar1->m328 == 0) && (pfVar1->m331 == 1)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 00001458-000016AC .text _create__11daGy_Ctrl_cFv */
|
||||
cPhs_State daGy_Ctrl_c::_create() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetupActor(this, daGy_Ctrl_c);
|
||||
|
||||
getArg();
|
||||
|
||||
if (m328 == 0 && checkGyCtrlExist()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!dComIfGs_checkGetItem(dItem_BOOMERANG_e)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
createInit();
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 00001C3C-00001C44 .text _delete__11daGy_Ctrl_cFv */
|
||||
bool daGy_Ctrl_c::_delete() {
|
||||
/* Nonmatching */
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00001C44-00001C64 .text daGy_CtrlCreate__FPv */
|
||||
|
||||
Reference in New Issue
Block a user