Warpappear doc (#3104)

* warpappear documentation

* dist documentation

* more doc

* add enum name + square macro
This commit is contained in:
Luzagar
2026-02-21 04:06:42 +01:00
committed by GitHub
parent 2113d9044b
commit 73debfd6b9
2 changed files with 288 additions and 270 deletions
+14 -14
View File
@@ -15,21 +15,21 @@
*/
class e_warpappear_class : public fopAc_ac_c {
public:
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 field_0x570;
/* 0x574 */ J3DModel* mpModel;
/* 0x578 */ mDoExt_btkAnm* mpBtk;
/* 0x57c */ mDoExt_brkAnm* mpBrks[2];
/* 0x568 */ request_of_phase_process_class phase;
/* 0x570 */ u8 arg0;
/* 0x574 */ J3DModel* model;
/* 0x578 */ mDoExt_btkAnm* btk;
/* 0x57c */ mDoExt_brkAnm* anm_p[2];
/* 0x584 */ int field_0x584;
/* 0x588 */ u8 field_0x588[0x58c - 0x588];
/* 0x58C */ u32 mParticle1;
/* 0x590 */ u32 mParticle2;
/* 0x594 */ s16 field_0x594;
/* 0x596 */ s16 field_0x596;
/* 0x58C */ u32 portal_app_b;
/* 0x590 */ u32 portal_app_c;
/* 0x594 */ s16 counter;
/* 0x596 */ s16 action;
/* 0x598 */ s16 field_0x598;
/* 0x59A */ s16 field_0x59a[2];
/* 0x59E */ s16 field_0x59e;
/* 0x5A0 */ s16 field_0x5a0;
/* 0x59A */ s16 timer[2];
/* 0x59E */ s16 demo_mode;
/* 0x5A0 */ s16 demo_timer;
/* 0x5A4 */ cXyz field_0x5a4;
/* 0x5B0 */ cXyz field_0x5b0;
/* 0x5BC */ cXyz field_0x5bc;
@@ -45,8 +45,8 @@ public:
/* 0x5F4 */ f32 field_0x5f4;
/* 0x5F8 */ f32 field_0x5f8;
/* 0x5FC */ f32 field_0x5fc;
/* 0x600 */ dMsgFlow_c mMsgFlow;
/* 0x64C */ int field_0x64c;
/* 0x600 */ dMsgFlow_c MsgFlow;
/* 0x64C */ int target_info_count;
};
STATIC_ASSERT(sizeof(e_warpappear_class) == 0x650);
+274 -256
View File
@@ -12,17 +12,17 @@
#include "f_op/f_op_camera_mng.h"
static int daE_Warpappear_Draw(e_warpappear_class* i_this) {
int i_no = (fopAcM_GetParam(i_this) >> 8) & 0xFF;
if (i_no != 0xff) {
if (!dComIfGs_isSwitch(i_no, fopAcM_GetRoomNo(i_this))) {
int sw = (fopAcM_GetParam(i_this) >> 8) & 0xFF;
if (sw != 0xff) {
if (!dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(i_this))) {
return 1;
}
}
dComIfGd_setListDark();
i_this->mpBtk->entry(i_this->mpModel->getModelData());
i_this->mpBrks[i_this->field_0x584]->entry(i_this->mpModel->getModelData());
mDoExt_modelUpdateDL(i_this->mpModel);
i_this->btk->entry(i_this->model->getModelData());
i_this->anm_p[i_this->field_0x584]->entry(i_this->model->getModelData());
mDoExt_modelUpdateDL(i_this->model);
dComIfGd_setList();
return 1;
}
@@ -30,34 +30,34 @@ static int daE_Warpappear_Draw(e_warpappear_class* i_this) {
static e_s1_class* master_ns[3];
static void* s_s1_sub(void* i_actor, void* i_data) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
e_s1_class* ns = (e_s1_class*)i_actor;
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) {
shadowBeast->mAction = 20;
shadowBeast->mMode = 0;
ns->mAction = 20;
ns->mMode = 0;
f32 fVar1 = -15336.0f;
f32 fVar2 = -671.0f;
fVar1 -= shadowBeast->home.pos.x;
fVar2 -= shadowBeast->home.pos.z;
if (fVar1 * fVar1 + fVar2 * fVar2 < 40000.0f) {
master_ns[0] = shadowBeast;
f32 x = -15336.0f;
f32 z = -671.0f;
x -= ns->home.pos.x;
z -= ns->home.pos.z;
if (SQUARE(x) + SQUARE(z) < SQUARE(200.0f)) {
master_ns[0] = ns;
}
fVar1 = -16552.0f;
fVar2 = -144.0f;
fVar1 -= shadowBeast->home.pos.x;
fVar2 -= shadowBeast->home.pos.z;
if (fVar1 * fVar1 + fVar2 * fVar2 < 40000.0f) {
master_ns[1] = shadowBeast;
x = -16552.0f;
z = -144.0f;
x -= ns->home.pos.x;
z -= ns->home.pos.z;
if (SQUARE(x) + SQUARE(z) < SQUARE(200.0f)) {
master_ns[1] = ns;
}
fVar1 = -14796.0f;
fVar2 = 382.0f;
fVar1 -= shadowBeast->home.pos.x;
fVar2 -= shadowBeast->home.pos.z;
if (fVar1 * fVar1 + fVar2 * fVar2 < 40000.0f) {
master_ns[2] = shadowBeast;
x = -14796.0f;
z = 382.0f;
x -= ns->home.pos.x;
z -= ns->home.pos.z;
if (SQUARE(x) + SQUARE(z) < SQUARE(200.0f)) {
master_ns[2] = ns;
}
}
@@ -65,15 +65,15 @@ static void* s_s1_sub(void* i_actor, void* i_data) {
}
static void* s_s1drop_sub(void* i_actor, void* i_data) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
fopAc_ac_c* data = (fopAc_ac_c*)i_data;
e_s1_class* ns = (e_s1_class*)i_actor;
fopAc_ac_c* actor = (fopAc_ac_c*)i_data;
if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) &&
shadowBeast->mMode != 2)
ns->mMode != 2)
{
shadowBeast->current.pos = data->current.pos;
shadowBeast->current.pos.y += 400.0f;
shadowBeast->mMode = 2;
shadowBeast->scale.x = 2.0f;
ns->current.pos = actor->current.pos;
ns->current.pos.y += 400.0f;
ns->mMode = 2;
ns->scale.x = 2.0f;
return i_actor;
}
@@ -82,20 +82,20 @@ static void* s_s1drop_sub(void* i_actor, void* i_data) {
static void* s_s1riv_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
shadowBeast->current.pos = master_ns[0]->home.pos;
shadowBeast->old = shadowBeast->current;
shadowBeast->speed.y = 0.0f;
shadowBeast->mMode = 10;
e_s1_class* ns = (e_s1_class*)i_actor;
ns->current.pos = master_ns[0]->home.pos;
ns->old = ns->current;
ns->speed.y = 0.0f;
ns->mMode = 10;
if (shadowBeast != master_ns[0]) {
shadowBeast->current.pos.y = master_ns[0]->home.pos.y + 50000.0f;
shadowBeast->gravity = 0.0f;
if (ns != master_ns[0]) {
ns->current.pos.y = master_ns[0]->home.pos.y + 50000.0f;
ns->gravity = 0.0f;
} else {
shadowBeast->current.pos.y = master_ns[0]->home.pos.y + 3000.0f;
ns->current.pos.y = master_ns[0]->home.pos.y + 3000.0f;
}
shadowBeast->scale.x = 1.0f;
ns->scale.x = 1.0f;
}
return NULL;
@@ -103,8 +103,8 @@ static void* s_s1riv_sub(void* i_actor, void* i_data) {
static void* s_s1fight_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
shadowBeast->mMode = 20;
e_s1_class* ns = (e_s1_class*)i_actor;
ns->mMode = 20;
}
return NULL;
@@ -114,19 +114,19 @@ static int entry_no;
static void* s_s1entry_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
e_warpappear_class* data = (e_warpappear_class*)i_data;
e_s1_class* ns = (e_s1_class*)i_actor;
e_warpappear_class* i_this = (e_warpappear_class*)i_data;
cXyz sp28 = shadowBeast->current.pos - data->current.pos;
cXyz sp28 = ns->current.pos - i_this->current.pos;
sp28.y = 0.0f;
if (shadowBeast->mAction != 20) {
shadowBeast->mAction = 20;
shadowBeast->mMode = 0;
shadowBeast->mEntryNo = entry_no;
if (ns->mAction != 20) {
ns->mAction = 20;
ns->mMode = 0;
ns->mEntryNo = entry_no;
entry_no++;
data->field_0x64c++;
i_this->target_info_count++;
}
}
@@ -134,18 +134,18 @@ static void* s_s1entry_sub(void* i_actor, void* i_data) {
}
static void* s_s1drop2_sub(void* i_actor, void* i_data) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
e_warpappear_class* data = (e_warpappear_class*)i_data;
e_s1_class* ns = (e_s1_class*)i_actor;
e_warpappear_class* i_this = (e_warpappear_class*)i_data;
if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) &&
data->field_0x64c == shadowBeast->mEntryNo)
i_this->target_info_count == ns->mEntryNo)
{
shadowBeast->current.pos = data->current.pos;
shadowBeast->current.pos.y += 400.0f;
ns->current.pos = i_this->current.pos;
ns->current.pos.y += 400.0f;
shadowBeast->mMode = 2;
ns->mMode = 2;
shadowBeast->scale.x = 2.0f;
ns->scale.x = 2.0f;
return i_actor;
}
@@ -156,13 +156,13 @@ static void* s_s1drop2_sub(void* i_actor, void* i_data) {
static s16 ew_s1angy;
static void* s_s1Yangset_sub(void* i_actor, void* i_data) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
e_warpappear_class* data = (e_warpappear_class*)i_data;
e_s1_class* ns = (e_s1_class*)i_actor;
e_warpappear_class* i_this = (e_warpappear_class*)i_data;
if ((fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) &&
data->field_0x64c == shadowBeast->mEntryNo)
i_this->target_info_count == ns->mEntryNo)
{
shadowBeast->shape_angle.y = shadowBeast->current.angle.y = ew_s1angy;
ns->shape_angle.y = ns->current.angle.y = ew_s1angy;
return i_actor;
}
@@ -172,18 +172,18 @@ static void* s_s1Yangset_sub(void* i_actor, void* i_data) {
static void* s_s1start_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_S1) {
e_s1_class* shadowBeast = (e_s1_class*)i_actor;
fopAc_ac_c* data = (fopAc_ac_c*)i_data;
e_s1_class* ns = (e_s1_class*)i_actor;
fopAc_ac_c* actor = (fopAc_ac_c*)i_data;
cXyz sp28 = shadowBeast->current.pos - data->current.pos;
cXyz sp28 = ns->current.pos - actor->current.pos;
sp28.y = 0.0f;
if (sp28.abs() < 2000.0f) {
shadowBeast->current = shadowBeast->home;
shadowBeast->old = shadowBeast->home;
shadowBeast->shape_angle = shadowBeast->current.angle;
shadowBeast->mMode = 20;
shadowBeast->scale.x = 1.0f;
ns->current = ns->home;
ns->old = ns->home;
ns->shape_angle = ns->current.angle;
ns->mMode = 20;
ns->scale.x = 1.0f;
}
}
@@ -191,49 +191,49 @@ static void* s_s1start_sub(void* i_actor, void* i_data) {
}
static void action(e_warpappear_class* i_this) {
fopAc_ac_c* a_this = (fopAc_ac_c*)i_this;
fopAc_ac_c* player = dComIfGp_getPlayer(0);
f32 fVar1 = -15200.0f - player->current.pos.x;
f32 fVar2 = -35.0f - player->current.pos.z;
fVar1 = JMAFastSqrt(fVar1 * fVar1 + fVar2 * fVar2);
fopAc_ac_c* actor = (fopAc_ac_c*)i_this;
fopAc_ac_c* pla = dComIfGp_getPlayer(0);
f32 dx = -15200.0f - pla->current.pos.x;
f32 dz = -35.0f - pla->current.pos.z;
dx = JMAFastSqrt(SQUARE(dx) + SQUARE(dz));
s8 bVar1 = false;
switch (i_this->field_0x596) {
switch (i_this->action) {
case 0:
if (i_this->field_0x570 == 53) {
if (i_this->field_0x64c == 0) {
if (i_this->arg0 == 0x35) {
if (i_this->target_info_count == 0) {
entry_no = 0;
fpcM_Search(s_s1entry_sub, i_this);
}
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x40])
&& dComIfGs_isSwitch(18, fopAcM_GetRoomNo(a_this)))
&& dComIfGs_isSwitch(18, fopAcM_GetRoomNo(actor)))
{
i_this->field_0x596 = 1;
i_this->field_0x59e = 20;
i_this->action = 1;
i_this->demo_mode = 20;
}
} else if (i_this->field_0x570 == 255) {
} else if (i_this->arg0 == 0xFF) {
fpcM_Search(s_s1_sub, i_this);
if (fVar1 < 950.0f) {
i_this->field_0x59e = 1;
i_this->field_0x596 = 1;
if (dx < 950.0f) {
i_this->demo_mode = 1;
i_this->action = 1;
}
} else {
entry_no = 0;
fpcM_Search(s_s1entry_sub, i_this);
if (i_this->field_0x64c != 0) {
u32 i_no = fopAcM_GetParamBit(a_this, 8, 8);
if ((s32)i_no != 0xff && !dComIfGs_isSwitch(i_no, fopAcM_GetRoomNo(a_this))) {
if (i_this->target_info_count != 0) {
u32 sw = fopAcM_GetParamBit(actor, 8, 8);
if ((s32)sw != 0xff && !dComIfGs_isSwitch(sw, fopAcM_GetRoomNo(actor))) {
return;
}
if (i_this->field_0x59a[0] == 0 && fopAcM_searchPlayerDistanceXZ(a_this) < 1000.0f)
if (i_this->timer[0] == 0 && fopAcM_searchPlayerDistanceXZ(actor) < 1000.0f)
{
i_this->field_0x59e = 10;
i_this->field_0x596 = 1;
i_this->demo_mode = 10;
i_this->action = 1;
}
}
}
@@ -243,8 +243,8 @@ static void action(e_warpappear_class* i_this) {
break;
case 10:
i_this->mpBrks[0]->setPlaySpeed(1.0f);
bVar1 = true;
i_this->anm_p[0]->setPlaySpeed(1.0f);
bVar1 = TRUE;
break;
case 20:
@@ -253,33 +253,51 @@ static void action(e_warpappear_class* i_this) {
}
if (bVar1 != 0) {
cXyz sp68(i_this->scale.x, i_this->scale.x, i_this->scale.x);
cXyz sc(i_this->scale.x, i_this->scale.x, i_this->scale.x);
if (i_this->field_0x598 == 0) {
i_this->field_0x598++;
dComIfGp_particle_set(0x84a4, &a_this->current.pos, NULL, &sp68);
dComIfGp_particle_set(dPa_RM(ID_ZI_S_PORTAL_APP_A01), &actor->current.pos, NULL, &sc);
}
i_this->mParticle1 =
dComIfGp_particle_set(i_this->mParticle1, 0x84a6, &a_this->current.pos, NULL, &sp68);
i_this->mParticle2 =
dComIfGp_particle_set(i_this->mParticle2, 0x84a7, &a_this->current.pos, NULL, &sp68);
i_this->portal_app_b =
dComIfGp_particle_set(i_this->portal_app_b, dPa_RM(ID_ZI_S_PORTAL_APP_B), &actor->current.pos, NULL, &sc);
i_this->portal_app_c =
dComIfGp_particle_set(i_this->portal_app_c, dPa_RM(ID_ZI_S_PORTAL_APP_C), &actor->current.pos, NULL, &sc);
}
}
static void demo_camera(e_warpappear_class* i_this) {
static u16 w_id[20] = {
0x850D, 0x850E, 0x850F, 0x8510, 0x8511, 0x8512, 0x8513, 0x8514, 0x8515, 0x8516,
0x8517, 0x8518, 0x8519, 0x851A, 0x851B, 0x851C, 0x851D, 0x851E, 0x851F, 0x8520,
};
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B001),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B002),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B003),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B004),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B005),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B006),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B007),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_B008),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C001),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C002),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C003),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C004),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C005),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C006),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C007),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C008),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C009),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C010),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C011),
dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_C012),
};
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
daPy_py_c* pla = (daPy_py_c*)dComIfGp_getPlayer(0);
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
camera_class* camera0 = dComIfGp_getCamera(0);
daHorse_c* horseActor = (daHorse_c*)dComIfGp_getHorseActor();
daHorse_c* horse = (daHorse_c*)dComIfGp_getHorseActor();
cXyz sp48, sp54;
cXyz temp1, temp2;
switch (i_this->field_0x59e) {
switch (i_this->demo_mode) {
case 1:
if (!i_this->eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(i_this, 2, 0xffff, 0);
@@ -288,10 +306,10 @@ static void demo_camera(e_warpappear_class* i_this) {
}
camera->mCamera.Stop();
i_this->field_0x59e = 2;
i_this->field_0x5a0 = 0;
i_this->demo_mode = 2;
i_this->demo_timer = 0;
i_this->field_0x5f4 = 55.0f;
i_this->field_0x5a0 = 0;
i_this->demo_timer = 0;
i_this->field_0x5ec = 300.0f;
i_this->field_0x5f0 = 1000.0f;
i_this->field_0x5f8 = 0.0f;
@@ -303,50 +321,50 @@ static void demo_camera(e_warpappear_class* i_this) {
case 2:
sp54.set(-15600.0f, 0.0f, -200.0f);
player->setPlayerPosAndAngle(&sp54, 0x4ef8, 0);
pla->setPlayerPosAndAngle(&sp54, 0x4ef8, 0);
i_this->current.pos.x = sp54.x;
i_this->current.pos.z = sp54.z;
i_this->field_0x5ec = 200.0f;
i_this->field_0x5f0 = -500.0f;
mDoMtx_stack_c::YrotS(player->shape_angle.y);
mDoMtx_stack_c::YrotS(pla->shape_angle.y);
sp48.x = -100.0f;
sp48.y = i_this->field_0x5ec;
sp48.z = i_this->field_0x5f0;
mDoMtx_stack_c::multVec(&sp48, &i_this->field_0x5a4);
i_this->field_0x5a4 += player->current.pos;
i_this->field_0x5b0 = player->current.pos;
i_this->field_0x5a4 += pla->current.pos;
i_this->field_0x5b0 = pla->current.pos;
i_this->field_0x5b0.y += 100.0f;
if (i_this->field_0x5a0 > 20) {
i_this->field_0x59e = 3;
i_this->field_0x5a0 = 0;
if (i_this->demo_timer > 20) {
i_this->demo_mode = 3;
i_this->demo_timer = 0;
}
break;
case 3:
cLib_addCalc2(&i_this->field_0x5b0.y, i_this->current.pos.y, 0.1f, i_this->field_0x5f8);
cLib_addCalc2(&i_this->field_0x5f8, 200.0f, 1.0f, 10.0f);
if (i_this->field_0x5a0 == 40) {
i_this->field_0x596 = 10;
if (i_this->demo_timer == 40) {
i_this->action = 10;
Z2GetAudioMgr()->seStart(Z2SE_DEMO_NS_WARPHOLE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
0);
}
if (i_this->field_0x5a0 > 150) {
i_this->field_0x59e = 4;
i_this->field_0x5a0 = 0;
if (i_this->demo_timer > 150) {
i_this->demo_mode = 4;
i_this->demo_timer = 0;
}
break;
case 4:
sp54.set(-15600.0f, 0.0f, 200.0f);
player->setPlayerPosAndAngle(&sp54, 0x6e38, 0);
pla->setPlayerPosAndAngle(&sp54, 0x6e38, 0);
i_this->current.pos.x = sp54.x;
i_this->current.pos.z = sp54.z;
cLib_addCalc2(&i_this->field_0x5f4, 70.0f, 0.05f, 0.08f);
mDoMtx_stack_c::YrotS(player->shape_angle.y);
mDoMtx_stack_c::YrotS(pla->shape_angle.y);
sp48.x = -100.0f;
sp48.y = -1000.0f;
sp48.z = -1500.0f;
@@ -355,17 +373,17 @@ static void demo_camera(e_warpappear_class* i_this) {
i_this->field_0x5b0 = i_this->current.pos;
i_this->field_0x5b0.y += -300.0f;
if (i_this->field_0x5a0 == 50 || i_this->field_0x5a0 == 70 || i_this->field_0x5a0 == 90) {
if (i_this->demo_timer == 50 || i_this->demo_timer == 70 || i_this->demo_timer == 90) {
fpcM_Search(s_s1drop_sub, i_this);
}
if (i_this->field_0x5a0 == 110) {
i_this->field_0x596 = 20;
if (i_this->demo_timer == 110) {
i_this->action = 20;
}
if (i_this->field_0x5a0 == 200) {
i_this->field_0x59e = 5;
i_this->field_0x5a0 = 0;
if (i_this->demo_timer == 200) {
i_this->demo_mode = 5;
i_this->demo_timer = 0;
fpcM_Search(s_s1riv_sub, i_this);
i_this->field_0x5b0.set(-14654.0f, 13.0f, -1518.0f);
@@ -388,17 +406,17 @@ static void demo_camera(e_warpappear_class* i_this) {
case 5:
case 6:
sp54.set(-15600.0f, 0.0f, 200.0f);
player->setPlayerPosAndAngle(&sp54, 0x6e38, 0);
if (i_this->field_0x5a0 == 38) {
pla->setPlayerPosAndAngle(&sp54, 0x6e38, 0);
if (i_this->demo_timer == 38) {
dComIfGp_getVibration().StartShock(5, 1, cXyz(0.0f, 1.0f, 0.0f));
i_this->field_0x5fc = 30.0f;
}
if (i_this->field_0x5a0 <= 80) {
if (i_this->demo_timer <= 80) {
cLib_addCalc2(&i_this->field_0x5b0.y, 13.0f, 0.4f, 100.0f);
} else {
f32 fVar1 = 0.1f;
if (i_this->field_0x59e == 6) {
if (i_this->demo_mode == 6) {
fVar1 = 0.2f;
}
@@ -417,7 +435,7 @@ static void demo_camera(e_warpappear_class* i_this) {
cLib_addCalc2(&i_this->field_0x5f8, 0.05f, 1.0f, 0.002f);
}
if (i_this->field_0x5a0 == 150) {
if (i_this->demo_timer == 150) {
i_this->field_0x5b0.set(-16437.0f, 251.0f, -605.0f);
i_this->field_0x5a4.set(-15451.0f, 45.0f, 526.0f);
i_this->field_0x5c8.set(-16531.0f, 251.0f, -511.0f);
@@ -437,7 +455,7 @@ static void demo_camera(e_warpappear_class* i_this) {
master_ns[1]->gravity = -7.0f;
}
if (i_this->field_0x5a0 == 210) {
if (i_this->demo_timer == 210) {
i_this->field_0x5b0.set(-14474.0f, 87.0f, -154.0f);
i_this->field_0x5a4.set(-15888.0f, 40.0f, 390.0f);
i_this->field_0x5c8.set(-14447.0f, -131.0f, 15.0f);
@@ -457,7 +475,7 @@ static void demo_camera(e_warpappear_class* i_this) {
master_ns[2]->gravity = -7.0f;
}
if (i_this->field_0x5a0 == 290) {
if (i_this->demo_timer == 290) {
i_this->field_0x5b0.set(-15312.0f, 361.0f, 1425.0f);
i_this->field_0x5a4.set(-15630.0f, 16.0f, -15.0f);
i_this->field_0x5c8.set(-15312.0f, 361.0f, 1425.0f);
@@ -467,18 +485,18 @@ static void demo_camera(e_warpappear_class* i_this) {
dComIfGp_event_onHindFlag(15);
if (i_this->field_0x59e == 5) {
if (i_this->field_0x5a0 >= 310) {
if (i_this->field_0x5a0 == 310) {
i_this->mMsgFlow.init(i_this, 127, 0, NULL);
if (i_this->demo_mode == 5) {
if (i_this->demo_timer >= 310) {
if (i_this->demo_timer == 310) {
i_this->MsgFlow.init(i_this, 127, 0, NULL);
}
i_this->mMsgFlow.doFlow(i_this, NULL, 0);
i_this->MsgFlow.doFlow(i_this, NULL, 0);
}
if (i_this->mMsgFlow.getNowMsgNo() == 0x13a5 ||
i_this->mMsgFlow.getNowMsgNo() == 0x13e3)
if (i_this->MsgFlow.getNowMsgNo() == 0x13a5 ||
i_this->MsgFlow.getNowMsgNo() == 0x13e3)
{
i_this->field_0x59e = 6;
i_this->demo_mode = 6;
i_this->field_0x5b0.set(-15605.0f, 144.0f, -1017.0f);
i_this->field_0x5a4.set(-15487.0f, 69.0f, 491.0f);
i_this->field_0x5c8.set(-15560.0f, 85.0f, 108.0f);
@@ -491,7 +509,7 @@ static void demo_camera(e_warpappear_class* i_this) {
i_this->field_0x5e8 = fabsf(i_this->field_0x5c8.z - i_this->field_0x5b0.z) * 0.9f;
i_this->field_0x5f8 = 0.02f;
}
} else if (i_this->field_0x59e == 6 && i_this->mMsgFlow.doFlow(i_this, NULL, 0) != 0) {
} else if (i_this->demo_mode == 6 && i_this->MsgFlow.doFlow(i_this, NULL, 0) != 0) {
camera->mCamera.Reset(i_this->field_0x5b0, i_this->field_0x5a4, i_this->field_0x5f4, 0);
camera->mCamera.Start();
camera->mCamera.SetTrimSize(0);
@@ -512,10 +530,10 @@ static void demo_camera(e_warpappear_class* i_this) {
}
camera->mCamera.Stop();
i_this->field_0x59e = 11;
i_this->field_0x5a0 = 0;
i_this->demo_mode = 11;
i_this->demo_timer = 0;
i_this->field_0x5f4 = 55.0f;
i_this->field_0x5a0 = 0;
i_this->demo_timer = 0;
i_this->field_0x5ec = 300.0f;
i_this->field_0x5f0 = 1000.0f;
i_this->field_0x5f8 = 0.0f;
@@ -526,30 +544,30 @@ static void demo_camera(e_warpappear_class* i_this) {
case 11:
if (strcmp(dComIfGp_getStartStageName(), "F_SP104") == 0) {
if (i_this->field_0x5a0 >= 40) {
if (i_this->field_0x5a0 == 40) {
i_this->mMsgFlow.init(i_this, 0xbba, 0, NULL);
if (i_this->demo_timer >= 40) {
if (i_this->demo_timer == 40) {
i_this->MsgFlow.init(i_this, 0xbba, 0, NULL);
}
if (i_this->mMsgFlow.doFlow(i_this, NULL, 0)) {
i_this->field_0x59e = 12;
i_this->field_0x5a0 = 0;
if (i_this->MsgFlow.doFlow(i_this, NULL, 0)) {
i_this->demo_mode = 12;
i_this->demo_timer = 0;
}
}
} else if (i_this->field_0x5a0 == 40) {
i_this->field_0x59e = 12;
i_this->field_0x5a0 = 0;
} else if (i_this->demo_timer == 40) {
i_this->demo_mode = 12;
i_this->demo_timer = 0;
}
sp54 = i_this->home.pos;
sp54.y = player->current.pos.y + 200.0f;
sp54.y = pla->current.pos.y + 200.0f;
if (fopAcM_gc_c::gndCheck(&sp54)) {
sp54.y = fopAcM_gc_c::getGroundY();
} else {
sp54.y = player->current.pos.y;
sp54.y = pla->current.pos.y;
}
player->setPlayerPosAndAngle(&sp54, i_this->home.angle.y, 0);
pla->setPlayerPosAndAngle(&sp54, i_this->home.angle.y, 0);
i_this->field_0x5ec = 200.0f;
i_this->field_0x5f0 = -500.0f;
@@ -558,25 +576,25 @@ static void demo_camera(e_warpappear_class* i_this) {
sp48.y = i_this->field_0x5ec;
sp48.z = i_this->field_0x5f0;
mDoMtx_stack_c::multVec(&sp48, &i_this->field_0x5a4);
i_this->field_0x5a4 += player->current.pos;
i_this->field_0x5b0 = player->current.pos;
i_this->field_0x5a4 += pla->current.pos;
i_this->field_0x5b0 = pla->current.pos;
i_this->field_0x5b0.y += 100.0f;
break;
case 12:
if (i_this->field_0x5a0 >= 29) {
if (i_this->demo_timer >= 29) {
cLib_addCalc2(&i_this->field_0x5b0.y, i_this->current.pos.y, 0.2f, i_this->field_0x5f8);
cLib_addCalc2(&i_this->field_0x5f8, 200.0f, 1.0f, 10.0f);
if (i_this->field_0x5a0 == 69) {
i_this->field_0x596 = 10;
if (i_this->demo_timer == 69) {
i_this->action = 10;
Z2GetAudioMgr()->seStart(Z2SE_DEMO_NS_WARPHOLE, NULL, 0, 0, 1.0f, 1.0f, -1.0f,
-1.0f, 0);
}
if (i_this->field_0x5a0 > 159) {
i_this->field_0x59e = 13;
i_this->field_0x5a0 = 0;
if (i_this->demo_timer > 159) {
i_this->demo_mode = 13;
i_this->demo_timer = 0;
}
}
break;
@@ -592,19 +610,19 @@ static void demo_camera(e_warpappear_class* i_this) {
i_this->field_0x5b0 = i_this->current.pos;
i_this->field_0x5b0.y += -300.0f;
if (i_this->field_0x5a0 == 50 && i_this->field_0x64c != 0) {
i_this->field_0x64c--;
if (i_this->demo_timer == 50 && i_this->target_info_count != 0) {
i_this->target_info_count--;
fpcM_Search(s_s1drop2_sub, i_this);
if (i_this->field_0x64c != 0) {
i_this->field_0x5a0 += -20;
if (i_this->target_info_count != 0) {
i_this->demo_timer += -20;
}
}
if (i_this->field_0x5a0 == 70) {
i_this->field_0x596 = 20;
if (i_this->demo_timer == 70) {
i_this->action = 20;
}
if (i_this->field_0x5a0 == 140) {
if (i_this->demo_timer == 140) {
fpcM_Search(s_s1start_sub, i_this);
camera->mCamera.Reset(i_this->field_0x5b0, i_this->field_0x5a4, i_this->field_0x5f4, 0);
camera->mCamera.Start();
@@ -623,43 +641,43 @@ static void demo_camera(e_warpappear_class* i_this) {
}
camera->mCamera.Stop();
i_this->field_0x59e = 21;
i_this->field_0x5a0 = 0;
i_this->demo_mode = 21;
i_this->demo_timer = 0;
i_this->field_0x5f4 = 55.0f;
i_this->field_0x5a0 = 0;
i_this->demo_timer = 0;
camera->mCamera.SetTrimSize(3);
i_this->field_0x5b0.set(34800.0f, 5700.0f, -26735.0f);
i_this->field_0x5a4.set(37592.0f, 1256.0f, -24152.0f);
// [[fallthrough]]
case 21:
if ((daPy_getPlayerActorClass()->checkHorseRide() == 0 && horseActor != NULL) &&
horseActor->current.pos.z > -28000.0f)
if ((daPy_getPlayerActorClass()->checkHorseRide() == 0 && horse != NULL) &&
horse->current.pos.z > -28000.0f)
{
horseActor->current.pos.set(34785.0f, -300.0f, -28500.0f);
horseActor->old.pos.set(34785.0f, -300.0f, -28500.0f);
horse->current.pos.set(34785.0f, -300.0f, -28500.0f);
horse->old.pos.set(34785.0f, -300.0f, -28500.0f);
}
if (i_this->field_0x5a0 == 40) {
i_this->field_0x596 = 10;
if (i_this->demo_timer == 40) {
i_this->action = 10;
Z2GetAudioMgr()->seStart(Z2SE_DEMO_NS_WARPHOLE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
0);
}
if (i_this->field_0x5a0 >= 180) {
obj_ihasi_class* ihasiActor = (obj_ihasi_class*)fopAcM_SearchByName(PROC_OBJ_IHASI);
if (i_this->demo_timer >= 180) {
obj_ihasi_class* ihasi = (obj_ihasi_class*)fopAcM_SearchByName(PROC_OBJ_IHASI);
sp54.set(34800.0f, i_this->field_0x5ec + -300.0f, -26735.0f);
ihasiActor->mParticleKey =
dComIfGp_particle_set(ihasiActor->mParticleKey, 0x8521, &sp54, 0, 0);
if (ihasiActor->mpBtkAnm->getFrame() >= 140.0f) {
ihasi->mParticleKey =
dComIfGp_particle_set(ihasi->mParticleKey, dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_D001), &sp54, 0, 0);
if (ihasi->mpBtkAnm->getFrame() >= 140.0f) {
cLib_addCalc2(&i_this->field_0x5ec, -1000.0f, 1.0f, 16.166668f);
}
if (i_this->field_0x5a0 == 180) {
if (i_this->demo_timer == 180) {
sp54 = i_this->field_0x5b0;
cXyz scale(i_this->scale.x, i_this->scale.x, i_this->scale.x);
dComIfGp_particle_set(0x850c, &sp54, NULL, &scale);
cXyz sc(i_this->scale.x, i_this->scale.x, i_this->scale.x);
dComIfGp_particle_set(dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_A001), &sp54, NULL, &sc);
sp54.set(34800.0f, -300.0f, -26735.0f);
for (int i = 0; i < 20; i++) {
@@ -667,66 +685,66 @@ static void demo_camera(e_warpappear_class* i_this) {
}
i_this->field_0x5ec = -30.0f;
ihasiActor->mFlag2 = 1;
ihasi->mFlag2 = 1;
}
}
if (i_this->field_0x5a0 >= 182) {
if (i_this->demo_timer >= 182) {
cLib_addCalc2(&i_this->field_0x5b0.y, -300.0f, 0.5f, 800.0f);
}
if (i_this->field_0x5a0 == 190) {
if (i_this->demo_timer == 190) {
dComIfGp_getVibration().StartQuake(3, 1, cXyz(0.0f, 1.0f, 0.0f));
}
if (i_this->field_0x5a0 >= 190 && i_this->field_0x5a0 < 222) {
if (i_this->demo_timer >= 190 && i_this->demo_timer < 222) {
i_this->field_0x5fc = 10.0f;
}
if (i_this->field_0x5a0 == 222) {
if (i_this->demo_timer == 222) {
dComIfGp_getVibration().StopQuake(31);
dComIfGp_getVibration().StartShock(8, 1, cXyz(0.0f, 1.0f, 0.0f));
i_this->field_0x5fc = 25.0f;
}
if (i_this->field_0x5a0 >= 460) {
i_this->field_0x59e = 22;
i_this->field_0x5a0 = 0;
if (i_this->demo_timer >= 460) {
i_this->demo_mode = 22;
i_this->demo_timer = 0;
i_this->field_0x5b0.set(34800.0f, 5700.0f, -26735.0f);
i_this->field_0x5a4.set(37592.0f, 1256.0f, -24152.0f);
sp54.set(34800.0f, 5700.0f, -26735.0f);
cXyz sp84(i_this->scale.x, i_this->scale.x, i_this->scale.x);
dComIfGp_particle_set(0x8522, &sp54, NULL, &sp84);
dComIfGp_particle_set(0x8523, &sp54, NULL, &sp84);
cXyz sc(i_this->scale.x, i_this->scale.x, i_this->scale.x);
dComIfGp_particle_set(dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_E001), &sp54, NULL, &sc);
dComIfGp_particle_set(dPa_RM(ID_ZI_S_BAJYOHASHI_WARPDEMO_E002), &sp54, NULL, &sc);
i_this->field_0x5f8 = 0.0f;
ew_s1angy = 0;
}
break;
case 22:
if (i_this->field_0x5a0 >= 30) {
if (i_this->demo_timer >= 30) {
cLib_addCalc2(&i_this->field_0x5f4, 30.0f, 0.05f, i_this->field_0x5f8 * 0.2f);
cLib_addCalc2(&i_this->field_0x5f8, 1.0f, 1.0f, 0.03f);
}
if (i_this->field_0x5a0 == 140 && i_this->field_0x64c != 0) {
i_this->field_0x64c--;
if (i_this->demo_timer == 140 && i_this->target_info_count != 0) {
i_this->target_info_count--;
fpcM_Search(s_s1drop2_sub, i_this);
fpcM_Search(s_s1Yangset_sub, i_this);
ew_s1angy += 0x5555;
if (i_this->field_0x64c != 0) {
i_this->field_0x5a0 += -20;
if (i_this->target_info_count != 0) {
i_this->demo_timer += -20;
}
}
if (i_this->field_0x5a0 == 150) {
i_this->field_0x596 = 20;
if (i_this->demo_timer == 150) {
i_this->action = 20;
}
if (i_this->field_0x5a0 >= 230) {
if (i_this->demo_timer >= 230) {
fpcM_Search(s_s1start_sub, i_this);
i_this->field_0x59e = 23;
i_this->field_0x5a0 = 0;
i_this->demo_mode = 23;
i_this->demo_timer = 0;
i_this->field_0x5b0.set(34397.0f, -180.0f, -31312.0f);
i_this->field_0x5a4.set(34218.0f, -166.0f, -31724.0f);
i_this->field_0x5f4 = 55.0f;
@@ -734,14 +752,14 @@ static void demo_camera(e_warpappear_class* i_this) {
break;
case 23:
if (i_this->field_0x5a0 >= 80) {
if (i_this->demo_timer >= 80) {
camera->mCamera.Reset(i_this->field_0x5b0, i_this->field_0x5a4, i_this->field_0x5f4, 0);
camera->mCamera.Start();
camera->mCamera.SetTrimSize(0);
dComIfGp_event_reset();
daPy_getPlayerActorClass()->cancelOriginalDemo();
if (horseActor != NULL) {
horseActor->cancelOriginalDemo();
if (horse != NULL) {
horse->cancelOriginalDemo();
}
fopAcM_delete(i_this);
}
@@ -760,18 +778,18 @@ static void demo_camera(e_warpappear_class* i_this) {
break;
}
if (i_this->field_0x59e != 0) {
s16 sVar1 = i_this->field_0x5fc * cM_scos(i_this->field_0x594 * 0x3500) * 10.0f;
cXyz sp90 = i_this->field_0x5b0;
cXyz sp9c = i_this->field_0x5a4;
sp90.y += i_this->field_0x5fc * cM_ssin(i_this->field_0x594 * 0x3200);
sp9c.y += i_this->field_0x5fc * cM_ssin(i_this->field_0x594 * 0x3200);
camera->mCamera.Set(sp90, sp9c, sVar1, i_this->field_0x5f4);
if (i_this->demo_mode != 0) {
s16 zoom = i_this->field_0x5fc * cM_scos(i_this->counter * 0x3500) * 10.0f;
cXyz center = i_this->field_0x5b0;
cXyz eye = i_this->field_0x5a4;
center.y += i_this->field_0x5fc * cM_ssin(i_this->counter * 0x3200);
eye.y += i_this->field_0x5fc * cM_ssin(i_this->counter * 0x3200);
camera->mCamera.Set(center, eye, zoom, i_this->field_0x5f4);
cLib_addCalc0(&i_this->field_0x5fc, 1.0f, 2.0f);
i_this->field_0x5a0++;
i_this->demo_timer++;
if (i_this->field_0x5a0 > 10000) {
i_this->field_0x5a0 = 10000;
if (i_this->demo_timer > 10000) {
i_this->demo_timer = 10000;
}
}
}
@@ -779,23 +797,23 @@ static void demo_camera(e_warpappear_class* i_this) {
static void mtx_set(e_warpappear_class* i_this) {
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.x, i_this->scale.x);
i_this->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
i_this->model->setBaseTRMtx(mDoMtx_stack_c::get());
}
static int daE_Warpappear_Execute(e_warpappear_class* i_this) {
i_this->field_0x594++;
i_this->counter++;
i_this->scale.x = 20.0f;
for (int i = 0; i < 2; i++) {
if (i_this->field_0x59a[i] != 0) {
i_this->field_0x59a[i]--;
if (i_this->timer[i] != 0) {
i_this->timer[i]--;
}
}
action(i_this);
demo_camera(i_this);
mtx_set(i_this);
i_this->mpBtk->play();
i_this->mpBrks[i_this->field_0x584]->play();
i_this->btk->play();
i_this->anm_p[i_this->field_0x584]->play();
return 1;
}
@@ -804,7 +822,7 @@ static int daE_Warpappear_IsDelete(e_warpappear_class* i_this) {
}
static int daE_Warpappear_Delete(e_warpappear_class* i_this) {
dComIfG_resDelete(&i_this->mPhase, "Kytag04");
dComIfG_resDelete(&i_this->phase, "Kytag04");
return 1;
}
@@ -814,36 +832,36 @@ static int useHeapInit(fopAc_ac_c* actor) {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Kytag04", 5);
JUT_ASSERT(1535, modelData != NULL);
i_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
if (i_this->mpModel == NULL) {
i_this->model = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
if (i_this->model == NULL) {
return 0;
}
i_this->mpBtk = new mDoExt_btkAnm();
if (i_this->mpBtk == NULL) {
i_this->btk = new mDoExt_btkAnm();
if (i_this->btk == NULL) {
return 0;
}
J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Kytag04", 14);
if (i_this->mpBtk->init(i_this->mpModel->getModelData(), key, 1, 2, 1.0f, 0, -1) == 0) {
if (i_this->btk->init(i_this->model->getModelData(), key, 1, 2, 1.0f, 0, -1) == 0) {
return 0;
}
i_this->mpBrks[0] = new mDoExt_brkAnm();
if (i_this->mpBrks[0] == NULL) {
i_this->anm_p[0] = new mDoExt_brkAnm();
if (i_this->anm_p[0] == NULL) {
return 0;
}
J3DAnmTevRegKey* pJVar8 = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Kytag04", 10);
if (i_this->mpBrks[0]->init(i_this->mpModel->getModelData(), pJVar8, 1, 0, 1.0f, 0, -1) == 0) {
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Kytag04", 10);
if (i_this->anm_p[0]->init(i_this->model->getModelData(), brk, 1, 0, 1.0f, 0, -1) == 0) {
return 0;
}
i_this->mpBrks[0]->setPlaySpeed(0.0f);
i_this->anm_p[0]->setPlaySpeed(0.0f);
i_this->mpBrks[1] = new mDoExt_brkAnm();
if (i_this->mpBrks[1] == NULL) {
i_this->anm_p[1] = new mDoExt_brkAnm();
if (i_this->anm_p[1] == NULL) {
return 0;
}
pJVar8 = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Kytag04", 11);
if (i_this->mpBrks[1]->init(i_this->mpModel->getModelData(), pJVar8, 1, 0, 1.0f, 0, -1) == 0) {
brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Kytag04", 11);
if (i_this->anm_p[1]->init(i_this->model->getModelData(), brk, 1, 0, 1.0f, 0, -1) == 0) {
return 0;
}
@@ -854,20 +872,20 @@ static int daE_Warpappear_Create(fopAc_ac_c* actor) {
fopAcM_ct(actor, e_warpappear_class);
e_warpappear_class* i_this = (e_warpappear_class*)actor;
int phase = dComIfG_resLoad(&i_this->mPhase, "Kytag04");
if (phase == cPhs_COMPLEATE_e) {
int phase_state = dComIfG_resLoad(&i_this->phase, "Kytag04");
if (phase_state == cPhs_COMPLEATE_e) {
OS_REPORT("E_Warpappear PARAM %x\n", fopAcM_GetParam(i_this));
OS_REPORT("E_Warpappear YP %d\n", i_this->home.pos.y);
i_this->field_0x570 = fopAcM_GetParam(i_this);
if (i_this->field_0x570 != 53) {
if (i_this->field_0x570 == 0xff) {
i_this->arg0 = fopAcM_GetParam(i_this);
if (i_this->arg0 != 0x35) {
if (i_this->arg0 == 0xFF) {
/* dSv_event_flag_c::F_0053 - Faron Woods - Saw night stalker appearance cutscene */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x97])) {
return cPhs_ERROR_e;
}
} else {
i_this->field_0x59a[0] = 120;
i_this->timer[0] = 120;
}
if (dComIfGs_isSwitch(fopAcM_GetParam(i_this) >> 0x18, fopAcM_GetRoomNo(i_this))) {
@@ -885,7 +903,7 @@ static int daE_Warpappear_Create(fopAc_ac_c* actor) {
mtx_set(i_this);
}
return phase;
return phase_state;
}
static actor_method_class l_daE_Warpappear_Method = {