mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 05:14:58 -04:00
d_a_tag_island 90%
This commit is contained in:
@@ -89,12 +89,12 @@ public:
|
||||
/* 0x02A4 */ u8 mPathId;
|
||||
/* 0x02A5 */ u8 m02A5[0x02A8 - 0x02A5];
|
||||
/* 0x02A8 */ cXyz mCurPathP0;
|
||||
/* 0x02B4 */ u8 mCurPathPoint;
|
||||
/* 0x02B4 */ s8 mCurPathPoint;
|
||||
/* 0x02B5 */ u8 m02B5[0x02B8 - 0x02B5];
|
||||
/* 0x02B8 */ dPath* mpPath;
|
||||
/* 0x02BC */ u8 m02BC[0x02C0 - 0x02BC];
|
||||
/* 0x02C0 */ cXyz mCurPathP1;
|
||||
/* 0x02CC */ u8 m02CC[0x02D8 - 0x02CC];
|
||||
/* 0x02CC */ cXyz m02CC;
|
||||
/* 0x02D8 */ f32 mVelocityFwdTarget;
|
||||
/* 0x02DC */ cXyz mPathPosTarget;
|
||||
/* 0x02E8 */ u8 m02E8[0x02EC - 0x02E8];
|
||||
|
||||
@@ -3,51 +3,66 @@
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
|
||||
class msg_class;
|
||||
|
||||
class daTag_Island_c : public fopAc_ac_c {
|
||||
public:
|
||||
void chkFlag(unsigned short) {}
|
||||
void clrFlag(unsigned short) {}
|
||||
bool chkFlag(u16 flag) { return (mFlag & flag) == flag; }
|
||||
void clrFlag(u16 flag) { mFlag &= ~flag; }
|
||||
void setFlag(u16 flag) { mFlag |= flag; }
|
||||
|
||||
inline s32 create();
|
||||
inline BOOL draw();
|
||||
inline BOOL execute();
|
||||
void setActio(unsigned char) {}
|
||||
void setFlag(unsigned short) {}
|
||||
void setActio(u8 v) { mAction = v; }
|
||||
|
||||
void getEventNo();
|
||||
void getSwbit();
|
||||
void getType();
|
||||
void checkArea();
|
||||
u8 getEventNo();
|
||||
u8 getSwbit();
|
||||
u8 getType();
|
||||
BOOL checkArea();
|
||||
void makeEvId();
|
||||
void getArrivalFlag();
|
||||
void otherCheck();
|
||||
void arrivalTerms();
|
||||
u16 getArrivalFlag();
|
||||
BOOL otherCheck();
|
||||
BOOL arrivalTerms();
|
||||
void demoInitProc();
|
||||
void next_msgStatus(unsigned long*);
|
||||
void getMsg();
|
||||
int next_msgStatus(unsigned long*);
|
||||
u32 getMsg();
|
||||
void talkInit();
|
||||
void talk();
|
||||
u16 talk();
|
||||
void demoInitTact_Bf();
|
||||
void demoProcTact_Bf();
|
||||
BOOL demoProcTact_Bf();
|
||||
void demoInitTact_Af();
|
||||
void demoProcTact_Af();
|
||||
BOOL demoProcTact_Af();
|
||||
void demoInitSpeak();
|
||||
void demoProcSpeak();
|
||||
BOOL demoProcSpeak();
|
||||
void demoInitWait();
|
||||
void demoProcWait();
|
||||
BOOL demoProcWait();
|
||||
void demoInitCom();
|
||||
void demoProcCom();
|
||||
void demoProcCom_ikada();
|
||||
void getNowEventAction();
|
||||
void demoProc();
|
||||
void actionTact();
|
||||
void actionEvent();
|
||||
void actionReady();
|
||||
void actionHunt();
|
||||
void actionArrival();
|
||||
void actionWait();
|
||||
BOOL demoProcCom();
|
||||
BOOL demoProcCom_ikada();
|
||||
int getNowEventAction();
|
||||
BOOL demoProc();
|
||||
BOOL actionTact();
|
||||
BOOL actionEvent();
|
||||
BOOL actionReady();
|
||||
BOOL actionHunt();
|
||||
BOOL actionArrival();
|
||||
BOOL actionWait();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x290 */ u16 m290;
|
||||
/* 0x292 */ u16 m292;
|
||||
/* 0x294 */ u8 mAction;
|
||||
/* 0x296 */ u16 mFlag;
|
||||
/* 0x298 */ u32 mMsg;
|
||||
/* 0x29C */ s8 mTalkState;
|
||||
/* 0x29D */ u8 pad[3];
|
||||
/* 0x2A0 */ u8 m2A0;
|
||||
/* 0x2A2 */ s16 mTimer;
|
||||
/* 0x2A4 */ u32 mStaffId;
|
||||
/* 0x2A8 */ s16 mEventId;
|
||||
/* 0x2AC */ s32 m2AC;
|
||||
};
|
||||
|
||||
#endif /* D_A_TAG_ISLAND_H */
|
||||
|
||||
+383
-59
@@ -4,191 +4,515 @@
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_tag_island.h"
|
||||
#include "d/actor/d_a_obj_ikada.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
static uint l_msgId;
|
||||
static msg_class* l_msg;
|
||||
|
||||
enum {
|
||||
ACT_HUNT,
|
||||
ACT_ARRIVAL,
|
||||
ACT_WAIT,
|
||||
ACT_READY,
|
||||
ACT_EVENT,
|
||||
ACT_TACT,
|
||||
};
|
||||
|
||||
enum {
|
||||
EVENT_WAIT,
|
||||
EVENT_SPEAK,
|
||||
EVENT_TACT_BF,
|
||||
EVENT_TACT_MD,
|
||||
EVENT_TACT_AF,
|
||||
};
|
||||
|
||||
/* 00000078-00000084 .text getEventNo__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getEventNo() {
|
||||
/* Nonmatching */
|
||||
u8 daTag_Island_c::getEventNo() {
|
||||
return (fopAcM_GetParam(this) >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
/* 00000084-00000090 .text getSwbit__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getSwbit() {
|
||||
/* Nonmatching */
|
||||
u8 daTag_Island_c::getSwbit() {
|
||||
return (fopAcM_GetParam(this) >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
/* 00000090-0000009C .text getType__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getType() {
|
||||
/* Nonmatching */
|
||||
u8 daTag_Island_c::getType() {
|
||||
return (fopAcM_GetParam(this) >> 0) & 0xFF;
|
||||
}
|
||||
|
||||
/* 0000009C-000001D8 .text checkArea__14daTag_Island_cFv */
|
||||
void daTag_Island_c::checkArea() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::checkArea() {
|
||||
fopAc_ac_c* player = dComIfGp_getLinkPlayer();
|
||||
cXyz delta = player->current.pos - current.pos;
|
||||
if (delta.y < 0.0f)
|
||||
delta.y = -delta.y;
|
||||
f32 distXZ = delta.absXZ();
|
||||
if (distXZ < scale.x * 10000.0f && delta.y <= scale.y * 10000.0f)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 000001D8-00000354 .text makeEvId__14daTag_Island_cFv */
|
||||
void daTag_Island_c::makeEvId() {
|
||||
/* Nonmatching */
|
||||
mEventId = dComIfGp_evmng_getEventIdx(NULL, getEventNo());
|
||||
|
||||
if (!dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
|
||||
s16 idx;
|
||||
|
||||
switch (getType()) {
|
||||
case 1: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_DRG2"); break;
|
||||
case 2: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_GND2"); break;
|
||||
case 3: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_WND2"); break;
|
||||
case 4: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_TWN2"); break;
|
||||
case 5: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_FST2"); break;
|
||||
case 6: idx = dComIfGp_evmng_getEventIdx("ARRIVAL_BRK2"); break;
|
||||
case 7: idx = dComIfGp_evmng_getEventIdx("PUROLO_RETURN2"); break;
|
||||
}
|
||||
|
||||
if (idx != -1)
|
||||
mEventId = idx;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000354-000003D4 .text getArrivalFlag__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getArrivalFlag() {
|
||||
/* Nonmatching */
|
||||
u16 daTag_Island_c::getArrivalFlag() {
|
||||
switch (getType()) {
|
||||
case 1: return 0x0902;
|
||||
case 2: return 0x0A20;
|
||||
case 3: return 0x0A02;
|
||||
case 4: return 0x1F04;
|
||||
case 5: return 0x2E04;
|
||||
case 6: return 0x2E02;
|
||||
case 7: return 0x3E10;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 000003D4-0000045C .text otherCheck__14daTag_Island_cFv */
|
||||
void daTag_Island_c::otherCheck() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::otherCheck() {
|
||||
switch (getType()) {
|
||||
case 5:
|
||||
if (!dComIfGs_isEventBit(0x1608))
|
||||
return FALSE;
|
||||
break;
|
||||
case 6:
|
||||
if (!dComIfGs_isEventBit(0x1604))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 0000045C-00000514 .text arrivalTerms__14daTag_Island_cFv */
|
||||
void daTag_Island_c::arrivalTerms() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::arrivalTerms() {
|
||||
if (dComIfGs_isEventBit(getArrivalFlag()))
|
||||
return FALSE;
|
||||
|
||||
switch (getType()) {
|
||||
case 4:
|
||||
if (!dKy_checkEventNightStop())
|
||||
return FALSE;
|
||||
break;
|
||||
case 7:
|
||||
if (!dKy_checkEventNightStop())
|
||||
return FALSE;
|
||||
if (!dComIfGs_checkGetItem(dItem_BOMB_BAG_e))
|
||||
return FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000514-00000550 .text demoInitProc__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitProc() {
|
||||
/* Nonmatching */
|
||||
m290 = 0;
|
||||
dComIfGs_onEventBit(getArrivalFlag());
|
||||
}
|
||||
|
||||
/* 00000550-00000558 .text next_msgStatus__14daTag_Island_cFPUl */
|
||||
void daTag_Island_c::next_msgStatus(unsigned long*) {
|
||||
/* Nonmatching */
|
||||
int daTag_Island_c::next_msgStatus(unsigned long*) {
|
||||
return fopMsgStts_MSG_ENDS_e;
|
||||
}
|
||||
|
||||
/* 00000558-00000560 .text getMsg__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getMsg() {
|
||||
/* Nonmatching */
|
||||
u32 daTag_Island_c::getMsg() {
|
||||
return m2AC;
|
||||
}
|
||||
|
||||
/* 00000560-0000056C .text talkInit__14daTag_Island_cFv */
|
||||
void daTag_Island_c::talkInit() {
|
||||
/* Nonmatching */
|
||||
mTalkState = 0;
|
||||
}
|
||||
|
||||
/* 0000056C-000006AC .text talk__14daTag_Island_cFv */
|
||||
void daTag_Island_c::talk() {
|
||||
u16 daTag_Island_c::talk() {
|
||||
/* Nonmatching */
|
||||
u16 ret = 0xFF;
|
||||
switch (mTalkState) {
|
||||
case 0:
|
||||
l_msgId = fpcM_ERROR_PROCESS_ID_e;
|
||||
mMsg = getMsg();
|
||||
mTalkState = 1;
|
||||
break;
|
||||
case 1:
|
||||
l_msg = fopMsgM_SearchByID(l_msgId);
|
||||
if (l_msg != NULL)
|
||||
mTalkState = 2;
|
||||
break;
|
||||
case 2:
|
||||
if (l_msgId == fpcM_ERROR_PROCESS_ID_e)
|
||||
l_msgId = fopMsgM_messageSet(mMsg, this);
|
||||
|
||||
ret = l_msg->mStatus;
|
||||
if (ret == fopMsgStts_MSG_DISPLAYED_e) {
|
||||
l_msg->mStatus = next_msgStatus(&mMsg);
|
||||
if (l_msg->mStatus == fopMsgStts_MSG_CONTINUES_e) {
|
||||
fopMsgM_messageSet(mMsg);
|
||||
}
|
||||
} else if (ret == fopMsgStts_BOX_CLOSED_e) {
|
||||
l_msg->mStatus = fopMsgStts_MSG_DESTROYED_e;
|
||||
mTalkState = -1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 000006AC-00000778 .text demoInitTact_Bf__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitTact_Bf() {
|
||||
/* Nonmatching */
|
||||
talkInit();
|
||||
|
||||
s32* a_intP = (s32*)dComIfGp_evmng_getMyIntegerP(mStaffId, "prm0");
|
||||
JUT_ASSERT(0x167, a_intP);
|
||||
|
||||
if (a_intP != NULL) {
|
||||
dComIfGp_setMelodyNum(*a_intP);
|
||||
if (*a_intP == 6) {
|
||||
m2AC = 0x05B4;
|
||||
} else {
|
||||
m2AC = 0x05B3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000778-000007C8 .text demoProcTact_Bf__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcTact_Bf() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::demoProcTact_Bf() {
|
||||
if (talk() == fopMsgStts_UNK15_e)
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000007C8-00000854 .text demoInitTact_Af__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitTact_Af() {
|
||||
/* Nonmatching */
|
||||
daPy_lk_c* player = daPy_getPlayerLinkActorClass();
|
||||
l_msg->mStatus = fopMsgStts_MSG_ENDS_e;
|
||||
fopMsgM_messageSendOn();
|
||||
if (player->getTactTimerCancel() > 0)
|
||||
setFlag(0x04);
|
||||
else
|
||||
clrFlag(0x04);
|
||||
}
|
||||
|
||||
/* 00000854-00000A00 .text demoProcTact_Af__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcTact_Af() {
|
||||
BOOL daTag_Island_c::demoProcTact_Af() {
|
||||
/* Nonmatching */
|
||||
u16 rt = talk();
|
||||
if (rt == fopMsgStts_BOX_CLOSED_e || rt == 0xFE) {
|
||||
if (chkFlag(0x01)) {
|
||||
clrFlag(0x01);
|
||||
if (chkFlag(0x04)) {
|
||||
if (m2A0 == 1) {
|
||||
mEventId = dComIfGp_evmng_getEventIdx("TACT_TEARCH4");
|
||||
} else {
|
||||
mEventId = dComIfGp_evmng_getEventIdx("TACT_TEARCH1");
|
||||
}
|
||||
} else {
|
||||
if (m2A0 == 0) {
|
||||
m2A0 = 1;
|
||||
mEventId = dComIfGp_evmng_getEventIdx("TACT_TEARCH2");
|
||||
} else {
|
||||
mEventId = dComIfGp_evmng_getEventIdx("TACT_TEARCH3");
|
||||
}
|
||||
}
|
||||
setFlag(0x02);
|
||||
fopAcM_orderChangeEventId(this, daPy_getPlayerLinkActorClass(), mEventId, 0, 0xFFFF);
|
||||
} else {
|
||||
JUT_ASSERT(0x1b3, 0);
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000A00-00000AC4 .text demoInitSpeak__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitSpeak() {
|
||||
/* Nonmatching */
|
||||
talkInit();
|
||||
s32* a_intP = (s32*)dComIfGp_evmng_getMyIntegerP(mStaffId, "MsgNo");
|
||||
JUT_ASSERT(0x1C2, a_intP);
|
||||
|
||||
m2AC = *a_intP;
|
||||
if (m2AC == 0x0638 && m2A0 != 0)
|
||||
m2AC = 0x063A;
|
||||
}
|
||||
|
||||
/* 00000AC4-00000B1C .text demoProcSpeak__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcSpeak() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::demoProcSpeak() {
|
||||
u16 rt = talk();
|
||||
if (rt == fopMsgStts_BOX_CLOSED_e || rt == 0xFE)
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 00000B1C-00000B84 .text demoInitWait__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitWait() {
|
||||
/* Nonmatching */
|
||||
s32* a_intP = (s32*)dComIfGp_evmng_getMyIntegerP(mStaffId, "Timer");
|
||||
if (a_intP != NULL)
|
||||
mTimer = *a_intP;
|
||||
else
|
||||
mTimer = 0;
|
||||
}
|
||||
|
||||
/* 00000B84-00000BD4 .text demoProcWait__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcWait() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::demoProcWait() {
|
||||
if (mTimer > 0)
|
||||
mTimer--;
|
||||
else
|
||||
dComIfGp_evmng_cutEnd(mStaffId);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 00000BD4-00000BE4 .text demoInitCom__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoInitCom() {
|
||||
/* Nonmatching */
|
||||
setFlag(0x01);
|
||||
}
|
||||
|
||||
/* 00000BE4-00000BE8 .text demoProcCom__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcCom() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::demoProcCom() {
|
||||
}
|
||||
|
||||
/* 00000BE8-00000CFC .text demoProcCom_ikada__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProcCom_ikada() {
|
||||
BOOL daTag_Island_c::demoProcCom_ikada() {
|
||||
/* Nonmatching */
|
||||
daObj_Ikada_c* ikada = (daObj_Ikada_c*)fopAcM_searchFromName("ikada_h", 0, 0);
|
||||
if (ikada != NULL) {
|
||||
ikada->mCurPathP0 = ikada->mInitPos;
|
||||
ikada->current.pos = ikada->mCurPathP0;
|
||||
ikada->mCurPathPoint = 0;
|
||||
ikada->m02CC = ikada->mpPath->mpPnt[ikada->mCurPathPoint].mPos;
|
||||
ikada->mCurPathP1 = ikada->mpPath->mpPnt[ikada->mCurPathPoint + 1].mPos;
|
||||
ikada->mPathPosTarget = ikada->mpPath->mpPnt[ikada->mCurPathPoint].mPos;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000CFC-00000D44 .text getNowEventAction__14daTag_Island_cFv */
|
||||
void daTag_Island_c::getNowEventAction() {
|
||||
/* Nonmatching */
|
||||
int daTag_Island_c::getNowEventAction() {
|
||||
static const char *action_table[] = {
|
||||
"WAIT",
|
||||
"SPEAK",
|
||||
"TACT_BF",
|
||||
"TACT_MD",
|
||||
"TACT_AF",
|
||||
};
|
||||
|
||||
return dComIfGp_evmng_getMyActIdx(mStaffId, (char**)action_table, ARRAY_SIZE(action_table), FALSE, 1);
|
||||
}
|
||||
|
||||
/* 00000D44-00000EDC .text demoProc__14daTag_Island_cFv */
|
||||
void daTag_Island_c::demoProc() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::demoProc() {
|
||||
BOOL ret = FALSE;
|
||||
|
||||
if (chkFlag(0x02)) {
|
||||
mStaffId = dComIfGp_evmng_getMyStaffId("TagIsl");
|
||||
clrFlag(0x02);
|
||||
dComIfGp_event_setTalkPartner(dComIfGp_getShipActor());
|
||||
}
|
||||
|
||||
int action = getNowEventAction();
|
||||
if (dComIfGp_evmng_getIsAddvance(mStaffId)) {
|
||||
demoInitCom();
|
||||
switch (action) {
|
||||
case EVENT_SPEAK: demoInitSpeak(); break;
|
||||
case EVENT_WAIT: demoInitWait(); break;
|
||||
case EVENT_TACT_BF: demoInitTact_Bf(); break;
|
||||
case EVENT_TACT_AF: demoInitTact_Af(); break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (action) {
|
||||
case EVENT_SPEAK: ret = demoProcSpeak(); break;
|
||||
case EVENT_WAIT: demoProcWait(); break;
|
||||
case EVENT_TACT_BF: ret = demoProcTact_Bf(); break;
|
||||
case EVENT_TACT_AF: ret = demoProcTact_Af(); break;
|
||||
default: dComIfGp_evmng_cutEnd(mStaffId); break;
|
||||
}
|
||||
|
||||
demoProcCom();
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000EDC-00000F4C .text actionTact__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionTact() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::actionTact() {
|
||||
if (dComIfGp_evmng_endCheck(mEventId)) {
|
||||
setActio(ACT_HUNT);
|
||||
dComIfGp_event_reset();
|
||||
} else {
|
||||
demoProc();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000F4C-00001034 .text actionEvent__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionEvent() {
|
||||
BOOL daTag_Island_c::actionEvent() {
|
||||
/* Nonmatching */
|
||||
if (dComIfGp_evmng_endCheck(mEventId)) {
|
||||
if (getType() == 1) {
|
||||
setFlag(0x02);
|
||||
setActio(ACT_TACT);
|
||||
mEventId = dComIfGp_evmng_getEventIdx("TACT_TEARCH0");
|
||||
fopAcM_orderChangeEventId(this, daPy_getPlayerLinkActorClass(), mEventId, 0, 0xFFFF);
|
||||
m2A0 = 0;
|
||||
} else {
|
||||
setActio(ACT_HUNT);
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
} else {
|
||||
demoProcCom_ikada();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001034-00001130 .text actionReady__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionReady() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::actionReady() {
|
||||
s32 swbit = getSwbit();
|
||||
if (eventInfo.checkCommandDemoAccrpt()) {
|
||||
demoInitProc();
|
||||
dComIfGp_event_setTalkPartner(dComIfGp_getShipActor());
|
||||
setActio(ACT_EVENT);
|
||||
actionEvent();
|
||||
if (swbit != 0xFF)
|
||||
dComIfGs_onSwitch(swbit, current.roomNo);
|
||||
} else if (swbit != 0xFF && dComIfGs_isSwitch(swbit, current.roomNo)) {
|
||||
setActio(ACT_HUNT);
|
||||
} else {
|
||||
makeEvId();
|
||||
fopAcM_orderOtherEventId(this, mEventId);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001130-000011E4 .text actionHunt__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionHunt() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::actionHunt() {
|
||||
s32 swbit = getSwbit();
|
||||
if (swbit != 0xFF && dComIfGs_isSwitch(swbit, current.roomNo)) {
|
||||
setActio(ACT_HUNT);
|
||||
} else {
|
||||
if (otherCheck() && checkArea()) {
|
||||
makeEvId();
|
||||
setActio(ACT_READY);
|
||||
fopAcM_orderOtherEventId(this, mEventId);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000011E4-00001238 .text actionArrival__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionArrival() {
|
||||
/* Nonmatching */
|
||||
BOOL daTag_Island_c::actionArrival() {
|
||||
if (arrivalTerms()) {
|
||||
setActio(ACT_WAIT);
|
||||
actionHunt();
|
||||
} else {
|
||||
setActio(ACT_HUNT);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001238-00001240 .text actionWait__14daTag_Island_cFv */
|
||||
void daTag_Island_c::actionWait() {
|
||||
BOOL daTag_Island_c::actionWait() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 daTag_Island_c::create() {
|
||||
fopAcM_SetupActor(this, daTag_Island_c);
|
||||
s32 swbit = getSwbit();
|
||||
makeEvId();
|
||||
eventInfo.setEventId(mEventId);
|
||||
eventInfo.mMapToolId = getEventNo();
|
||||
|
||||
if (mEventId != -1 && swbit != 0xFF && !dComIfGs_isSwitch(swbit, current.roomNo)) {
|
||||
setActio(ACT_ARRIVAL);
|
||||
} else {
|
||||
setActio(ACT_HUNT);
|
||||
}
|
||||
shape_angle.x = shape_angle.z = 0;
|
||||
current.angle.x = current.angle.z = 0;
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
BOOL daTag_Island_c::draw() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL daTag_Island_c::execute() {
|
||||
/* Nonmatching */
|
||||
switch (mAction) {
|
||||
case ACT_ARRIVAL:
|
||||
actionArrival();
|
||||
break;
|
||||
case ACT_HUNT:
|
||||
default:
|
||||
actionHunt();
|
||||
break;
|
||||
case ACT_READY:
|
||||
actionReady();
|
||||
break;
|
||||
case ACT_EVENT:
|
||||
actionEvent();
|
||||
break;
|
||||
case ACT_TACT:
|
||||
actionTact();
|
||||
break;
|
||||
case ACT_WAIT:
|
||||
actionWait();
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001240-00001248 .text daTag_Island_Draw__FP14daTag_Island_c */
|
||||
static BOOL daTag_Island_Draw(daTag_Island_c*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daTag_Island_Draw(daTag_Island_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 00001248-000012C4 .text daTag_Island_Execute__FP14daTag_Island_c */
|
||||
static BOOL daTag_Island_Execute(daTag_Island_c*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daTag_Island_Execute(daTag_Island_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 000012C4-000012CC .text daTag_Island_IsDelete__FP14daTag_Island_c */
|
||||
static BOOL daTag_Island_IsDelete(daTag_Island_c*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daTag_Island_IsDelete(daTag_Island_c* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000012CC-000012FC .text daTag_Island_Delete__FP14daTag_Island_c */
|
||||
static BOOL daTag_Island_Delete(daTag_Island_c*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daTag_Island_Delete(daTag_Island_c* i_this) {
|
||||
i_this->~daTag_Island_c();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000012FC-000013D8 .text daTag_Island_Create__FP10fopAc_ac_c */
|
||||
static s32 daTag_Island_Create(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
static s32 daTag_Island_Create(fopAc_ac_c* i_ac) {
|
||||
return ((daTag_Island_c*)i_ac)->create();
|
||||
}
|
||||
|
||||
static actor_method_class l_daTag_Island_Method = {
|
||||
|
||||
Reference in New Issue
Block a user