d_a_e_mk debug work + documentation (#2913)

* initial work

* documentation
This commit is contained in:
Carco_21 2025-12-05 21:37:17 -05:00 committed by GitHub
parent 4e4d89eab6
commit e6b1f3a4f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 1807 additions and 1712 deletions

View File

@ -15,7 +15,8 @@
*
* @details
*
*/
*/
class e_mk_class {
public:
enum e_mk_ACTION {
@ -30,98 +31,102 @@ public:
ACT_R04_DEMO = 35,
};
/* 0x000 */ fopEn_enemy_c enemy;
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ s16 mMode;
/* 0x5B6 */ u8 mParam;
/* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ cXyz field_0x5b8;
enum Demo_Mode {
/* 0x0 */ DEMO_MODE_NONE,
/* 0x1 */ DEMO_MODE_START,
/* 0x2 */ DEMO_MODE_END,
/* 0x3 */ DEMO_MODE_R04,
/* 0x4 */ DEMO_MODE_BOHIT,
/* 0xA */ DEMO_MODE_FINISH = 0xA,
};
/* 0x000 */ fopEn_enemy_c actor;
/* 0x5AC */ request_of_phase_process_class phase;
/* 0x5B4 */ s16 mode;
/* 0x5B6 */ u8 arg0;
/* 0x5B8 */ cXyz posTarget;
/* 0x5C4 */ u8 field_0x5c4[0x5c8 - 0x5c4];
/* 0x5C8 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x5CC */ int mAnm;
/* 0x5D0 */ mDoExt_btpAnm* mBtp;
/* 0x5C8 */ mDoExt_McaMorfSO* anmP;
/* 0x5CC */ int anmNo;
/* 0x5D0 */ mDoExt_btpAnm* btpP;
/* 0x5D4 */ s16 field_0x5d4;
/* 0x5D8 */ f32 field_0x5d8;
/* 0x5DC */ mDoExt_McaMorf* mpCrownModelMorf;
/* 0x5E0 */ s8 field_0x5e0;
/* 0x5E4 */ cXyz field_0x5e4;
/* 0x5F0 */ csXyz field_0x5f0;
/* 0x5F6 */ u8 field_0x5f6[0x5fc - 0x5f6];
/* 0x5D8 */ f32 btpFrame;
/* 0x5DC */ mDoExt_McaMorf* crownAnmP;
/* 0x5E0 */ s8 unkFlag1;
/* 0x5E4 */ cXyz crownPos;
/* 0x5F0 */ csXyz unkRotation;
/* 0x5F6 */ csXyz field_0x5f6;
/* 0x5FC */ f32 field_0x5fc;
/* 0x600 */ f32 field_0x600;
/* 0x604 */ f32 field_0x604;
/* 0x608 */ J3DModel* mpBoomerangModel;
/* 0x60C */ s8 field_0x60c;
/* 0x60D */ s8 field_0x60d;
/* 0x60E */ s8 field_0x60e;
/* 0x60F */ u8 field_0x60f;
/* 0x610 */ Z2CreatureEnemy mSound;
/* 0x608 */ J3DModel* boomerangModelP;
/* 0x60C */ s8 crownStatus;
/* 0x60D */ s8 boomerangStatus;
/* 0x60E */ s8 btpFrameFlag;
/* 0x610 */ Z2CreatureEnemy sound;
/* 0x6B4 */ s16 field_0x6b4;
/* 0x6B6 */ s16 mAction;
/* 0x6B8 */ f32 mDistToPlayer;
/* 0x6BC */ s16 mAngleToPlayer;
/* 0x6BE */ s8 field_0x6be;
/* 0x6BF */ u8 field_0x6bf;
/* 0x6C0 */ cXyz field_0x6c0;
/* 0x6CC */ cXyz field_0x6cc;
/* 0x6D8 */ f32 field_0x6d8;
/* 0x6DC */ cXyz field_0x6dc;
/* 0x6E8 */ daPillar_c* mPillar;
/* 0x6EC */ daPillar_c* mHasira;
/* 0x6F0 */ u32 mShadowKey1;
/* 0x6F4 */ u32 mShadowKey2;
/* 0x6F8 */ s8 field_0x6f8;
/* 0x6F9 */ u8 field_0x6f9;
/* 0x6FA */ s16 field_0x6fa;
/* 0x6FC */ s16 field_0x6fc[4];
/* 0x704 */ s16 field_0x704;
/* 0x706 */ s8 field_0x706;
/* 0x707 */ s8 field_0x707;
/* 0x708 */ fpc_ProcID field_0x708;
/* 0x70C */ e_db_class* field_0x70c;
/* 0x710 */ fpc_ProcID mBabaChildID;
/* 0x714 */ fpc_ProcID mBabaChildID2;
/* 0x718 */ s8 field_0x718;
/* 0x719 */ s8 field_0x719;
/* 0x71A */ s8 field_0x71a;
/* 0x71B */ s8 field_0x71b;
/* 0x71C */ s8 field_0x71c;
/* 0x71D */ s8 field_0x71d;
/* 0x71E */ s8 field_0x71e;
/* 0x71F */ u8 field_0x71f;
/* 0x720 */ dBgS_AcchCir mAcchCir;
/* 0x760 */ dBgS_ObjAcch mAcch;
/* 0x938 */ dCcU_AtInfo mAtInfo;
/* 0x95C */ dCcD_Stts field_0x95c;
/* 0x998 */ dCcD_Sph field_0x998;
/* 0xAD0 */ dCcD_Sph field_0xad0;
/* 0x6B6 */ s16 action;
/* 0x6B8 */ f32 distToPl;
/* 0x6BC */ s16 angleToPl;
/* 0x6BE */ s8 unkFlag2;
/* 0x6C0 */ cXyz prevPos;
/* 0x6CC */ cXyz prevPosTarget;
/* 0x6D8 */ f32 PosYTransOffset;
/* 0x6DC */ cXyz posTargetStep;
/* 0x6E8 */ daPillar_c* prevHasira;
/* 0x6EC */ daPillar_c* hasira;
/* 0x6F0 */ u32 shadowKey1;
/* 0x6F4 */ u32 shadowKey2;
/* 0x6F8 */ s8 unkFlag3;
/* 0x6FA */ s16 unkCounter1;
/* 0x6FC */ s16 timer[4];
/* 0x704 */ s16 invulnerabilityTimer;
/* 0x706 */ s8 tubaTimer;
/* 0x707 */ s8 unkFlag4;
/* 0x708 */ fpc_ProcID boomerangId;
/* 0x70C */ e_db_class* db;
/* 0x710 */ fpc_ProcID dbId1;
/* 0x714 */ fpc_ProcID dbId2;
/* 0x718 */ s8 unkFlag5;
/* 0x719 */ s8 unkCounter2;
/* 0x71A */ s8 unkTimer1;
/* 0x71B */ s8 setSmokeFlag;
/* 0x71C */ s8 unkCounter3;
/* 0x71D */ s8 firstHasiraFlag;
/* 0x71E */ s8 demoHasiraFlag;
/* 0x720 */ dBgS_AcchCir acchcir;
/* 0x760 */ dBgS_ObjAcch acch;
/* 0x938 */ dCcU_AtInfo atInfo;
/* 0x95C */ dCcD_Stts stts;
/* 0x998 */ dCcD_Sph sph;
/* 0xAD0 */ dCcD_Sph tgSph;
/* 0xC08 */ u32 field_0xc08;
/* 0xC0C */ u32 field_0xc0c;
/* 0xC10 */ u32 field_0xc10;
/* 0xC14 */ u32 field_0xc14;
/* 0xC18 */ u32 field_0xc18[2];
/* 0xC20 */ u32 field_0xc20[4];
/* 0xC30 */ s16 field_0xc30;
/* 0xC32 */ s16 mDemoMode;
/* 0xC34 */ s16 mDemoCamTimer;
/* 0xC38 */ cXyz mCamEye;
/* 0xC44 */ cXyz mCamCenter;
/* 0xC50 */ cXyz field_0xc50;
/* 0xC5C */ cXyz field_0xc5c;
/* 0xC68 */ cXyz field_0xc68;
/* 0xC74 */ cXyz field_0xc74;
/* 0xC80 */ f32 mDemoCamFovy;
/* 0xC84 */ f32 field_0xc84;
/* 0xC88 */ f32 field_0xc88;
/* 0xC18 */ u32 boEno1Prtcls[2];
/* 0xC20 */ u32 boEno0Prtcls[4];
/* 0xC30 */ s16 demoMode;
/* 0xC32 */ s16 demoSubMode;
/* 0xC34 */ s16 demoCamCounter;
/* 0xC38 */ cXyz camEye;
/* 0xC44 */ cXyz camCenter;
/* 0xC50 */ cXyz camEyeTarget;
/* 0xC5C */ cXyz camCenterTarget;
/* 0xC68 */ cXyz distToCamEyeTarget;
/* 0xC74 */ cXyz distToCamCenterTarget;
/* 0xC80 */ f32 demoCamFovy;
/* 0xC84 */ f32 camStepScale1;
/* 0xC88 */ f32 camStepScale2;
/* 0xC8C */ f32 field_0xc8c;
/* 0xC90 */ f32 field_0xc90;
/* 0xC94 */ u8 field_0xc94[0xc98 - 0xc94];
/* 0xC98 */ f32 field_0xc98;
/* 0xC9C */ f32 field_0xc9c;
/* 0xCA0 */ s16 field_0xca0;
/* 0xCA4 */ dMsgFlow_c mMsgFlow;
/* 0xCA0 */ s16 prevPlShapeAngle;
/* 0xCA4 */ dMsgFlow_c msgFlow;
/* 0xCF0 */ u8 field_0xcf0[0xcf5 - 0xcf0];
/* 0xCF5 */ u8 field_0xcf5;
/* 0xCF5 */ u8 hioInit;
};
STATIC_ASSERT(sizeof(e_mk_class) == 0xcf8);

View File

@ -12,7 +12,8 @@
*
* @details
*
*/
*/
class e_mk_bo_class {
public:
/* 0x000 */ fopEn_enemy_c enemy;
@ -21,7 +22,7 @@ public:
/* 0x5B8 */ Z2SoundObjSimple sound;
/* 0x5D8 */ s16 counter;
/* 0x5DA */ s16 action;
/* 0x5DC */ s16 field_0x5dc;
/* 0x5DC */ s16 mode;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ s16 field_0x5ec;
/* 0x5EE */ s16 field_0x5ee;

File diff suppressed because it is too large Load Diff

View File

@ -46,7 +46,7 @@ static void hit_check(e_mk_bo_class* i_this) {
e_mk_class* e_mk = (e_mk_class*)a_parent;
cXyz sp24;
if (i_this->ccAtSph.ChkTgHit() || i_this->acch.ChkGroundHit() || i_this->acch.ChkWallHit() || (e_mk != NULL && e_mk->field_0xc30 == 1 && i_this->ccAtSph.ChkAtHit()) || i_this->ccAtSph.ChkAtShieldHit()) {
if (i_this->ccAtSph.ChkTgHit() || i_this->acch.ChkGroundHit() || i_this->acch.ChkWallHit() || (e_mk != NULL && e_mk->demoMode == e_mk_class::DEMO_MODE_START && i_this->ccAtSph.ChkAtHit()) || i_this->ccAtSph.ChkAtShieldHit()) {
i_this->field_0x5f8 = 20;
OS_REPORT("E_MK_BO HIT \n");
@ -66,8 +66,8 @@ static void hit_check(e_mk_bo_class* i_this) {
i_this->field_0x998 = 2;
}
if (i_this->field_0x5dc <= 2) {
i_this->field_0x5dc = 3;
if (i_this->mode <= 2) {
i_this->mode = 3;
i_this->field_0x5e0 = a_parent->current.pos;
i_this->field_0x5e0.y += 100.0f;
@ -95,17 +95,17 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0);
cXyz sp3C;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
if (e_mk->field_0x70c != 0) {
i_this->field_0x5e0 = e_mk->field_0x70c->enemy.current.pos;
if (e_mk->db != NULL) {
i_this->field_0x5e0 = e_mk->db->enemy.current.pos;
i_this->field_0x5e0.y += 100.0f;
} else {
i_this->field_0x5e0 = player->current.pos;
i_this->field_0x5e0.y += 100.0f;
}
i_this->field_0x5dc = 1;
i_this->mode = 1;
sp3C = i_this->field_0x5e0 - actor->current.pos;
actor->current.angle.y = cM_atan2s(sp3C.x, sp3C.z);
@ -116,7 +116,7 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
case 1:
sp3C = i_this->field_0x5e0 - actor->current.pos;
if (sp3C.abs() < 300.0f + TREG_F(18)) {
i_this->field_0x5dc = 2;
i_this->mode = 2;
i_this->timers[0] = 30;
}
break;
@ -136,17 +136,17 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0x5ee, 0x2000, 1, 4);
f32 temp_f31 = sp3C.abs();
if (e_mk->mDemoMode != 0 || (e_mk->mAction == 2 && e_mk->mMode >= 20)) {
if (e_mk->demoSubMode != 0 || (e_mk->action == e_mk_class::ACT_SHOOT && e_mk->mode >= 20)) {
if (temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
} else if (e_mk->mAction == 3 && temp_f31 < 120.0f + YREG_F(19)) {
e_mk->field_0x707 = 4;
} else if (e_mk->action == e_mk_class::ACT_YORO && temp_f31 < 120.0f + YREG_F(19)) {
e_mk->unkFlag4 = 4;
i_this->action = 1;
i_this->field_0x5dc = 0;
i_this->mode = 0;
dComIfGp_setHitMark(3, actor, &actor->current.pos, &actor->shape_angle, NULL, 0);
actor->speed.y = 30.0f;
i_this->timers[0] = 40;
@ -170,7 +170,7 @@ static s8 e_mk_bo_shot(e_mk_bo_class* i_this) {
cCcD_Obj* at_hit_obj = i_this->ccAtSph.GetAtHitObj();
if (fopAcM_GetName(dCc_GetAc(at_hit_obj->GetAc())) == PROC_ALINK) {
OS_REPORT("E_MK_BO PL HIT !!!!\n");
e_mk->field_0x707 = 5;
e_mk->unkFlag4 = 5;
i_this->field_0x5f8 = 10;
}
}
@ -193,11 +193,11 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
cXyz sp38;
f32 temp_f31;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
i_this->field_0x998 = 1;
i_this->field_0x5e0.set(0.0f, 5000.0f + JREG_F(18), -3900.0f);
i_this->field_0x5dc = 1;
i_this->mode = 1;
sp38 = i_this->field_0x5e0 - actor->current.pos;
actor->current.angle.y = cM_atan2s(sp38.x, sp38.z);
@ -208,7 +208,7 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
case 1:
sp38 = i_this->field_0x5e0 - actor->current.pos;
if (sp38.abs() < 200.0f + TREG_F(18)) {
i_this->field_0x5dc = 2;
i_this->mode = 2;
i_this->timers[0] = 30;
}
break;
@ -228,12 +228,12 @@ static s8 e_mk_bo_start(e_mk_bo_class* i_this) {
cLib_addCalcAngleS2(&i_this->field_0x5ee, 0x2000, 1, 4);
temp_f31 = sp38.abs();
if (e_mk->mDemoMode != 0 || (e_mk->mAction == 2 && e_mk->mMode >= 20)) {
if (e_mk->demoSubMode != 0 || (e_mk->action == e_mk_class::ACT_SHOOT && e_mk->mode >= 20)) {
if (temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
}
break;
@ -267,10 +267,10 @@ static s8 e_mk_bo_r04(e_mk_bo_class* i_this) {
cXyz sp1C;
f32 temp_f31;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 0:
i_this->field_0x998 = 1;
i_this->field_0x5dc = 1;
i_this->mode = 1;
actor->current.angle.y = a_parent->shape_angle.y + (VREG_S(7) - 0x3000);
i_this->field_0x5fa = actor->current.angle.y;
@ -295,9 +295,9 @@ static s8 e_mk_bo_r04(e_mk_bo_class* i_this) {
temp_f31 = sp1C.abs();
if (i_this->timers[1] == 0 && temp_f31 < 350.0f + YREG_F(18)) {
i_this->field_0x600 = 1;
e_mk->field_0x707 = 3;
e_mk->unkFlag4 = 3;
} else if (temp_f31 < 600.0f + YREG_F(17)) {
e_mk->field_0x707 = 2;
e_mk->unkFlag4 = 2;
}
}
break;
@ -323,21 +323,21 @@ static void e_mk_bo_hasira(e_mk_bo_class* i_this) {
if (a_parent != NULL) {
e_mk_class* e_mk = (e_mk_class*)a_parent;
if (e_mk->field_0xc30 == 2) {
i_this->action = 2;
if (e_mk->demoMode == e_mk_class::DEMO_MODE_END) {
i_this->action = e_mk_class::ACT_SHOOT;
i_this->field_0x998 = 1;
return;
}
cXyz sp24;
cXyz sp18;
if (e_mk->mHasira != NULL) {
daPillar_c* pillar = e_mk->mHasira;
if (e_mk->hasira != NULL) {
daPillar_c* pillar = e_mk->hasira;
cXyz spC;
mDoMtx_stack_c::transS(e_mk->mHasira->current.pos.x, e_mk->mHasira->current.pos.y, e_mk->mHasira->current.pos.z);
mDoMtx_stack_c::transS(e_mk->hasira->current.pos.x, e_mk->hasira->current.pos.y, e_mk->hasira->current.pos.z);
mDoMtx_stack_c::YrotM(pillar->mRotY);
mDoMtx_stack_c::XrotM(e_mk->mHasira->shape_angle.x);
mDoMtx_stack_c::XrotM(e_mk->hasira->shape_angle.x);
mDoMtx_stack_c::YrotM(-pillar->mRotY);
mDoMtx_stack_c::transM(0.0f, 500.0f, 0.0f);
mDoMtx_multVecZero(mDoMtx_stack_c::get(), &spC);
@ -356,17 +356,17 @@ static void e_mk_bo_hasira(e_mk_bo_class* i_this) {
if (actor->current.pos.y <= 7.0f + spC.y) {
actor->current.pos.y = 7.0f + spC.y;
if (i_this->field_0x5dc <= 3) {
if (i_this->mode <= 3) {
actor->speed.y *= -0.4f;
} else {
actor->speed.y = 0.0f;
}
if (i_this->field_0x5dc <= 1) {
if (i_this->mode <= 1) {
i_this->timers[0] = 20;
}
i_this->field_0x5dc++;
i_this->mode++;
}
if (pillar->checkRollAttack()) {
@ -391,7 +391,7 @@ static void e_mk_bo_demo_ground(e_mk_bo_class* i_this) {
if (actor->health != 0) {
actor->health = 0;
i_this->action = 3;
i_this->field_0x5dc = 0;
i_this->mode = 0;
actor->home.pos.y = actor->current.pos.y;
}
@ -406,12 +406,12 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
cXyz sp28;
f32 var_f31 = 0.0f;
switch (i_this->field_0x5dc) {
switch (i_this->mode) {
case 4:
break;
case 0:
actor->speed.y = 0.0f;
i_this->field_0x5dc = 1;
i_this->mode = 1;
actor->home.pos = actor->current.pos;
i_this->timers[0] = 20;
actor->speedF = 0.0f;
@ -443,7 +443,7 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
actor->current.angle.y = fopAcM_searchPlayerAngleY(actor) + 0x8000;
i_this->field_0x5ec = 0;
i_this->timers[0] = 40;
i_this->field_0x5dc = 2;
i_this->mode = 2;
}
break;
case 2:
@ -458,7 +458,7 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
s16 sp8 = (actor->current.angle.y - fopAcM_searchPlayerAngleY(actor));
if (sp8 <= 0x400 && sp8 > -0x400) {
i_this->field_0x5dc = 3;
i_this->mode = 3;
}
cLib_addCalcAngleS2(&actor->shape_angle.z, -0x1200, 2, 0x200);
@ -475,8 +475,8 @@ static void e_mk_bo_demo_spin(e_mk_bo_class* i_this) {
if (fopAcM_searchPlayerDistanceXZ(actor) < 50.0f) {
e_mk_class* e_mk = (e_mk_class*)fopAcM_SearchByID(actor->parentActorID);
e_mk->mDemoMode++;
i_this->field_0x5dc = 4;
e_mk->demoSubMode++;
i_this->mode = 4;
i_this->field_0x600 = 1;
}
break;
@ -507,9 +507,9 @@ static void action(e_mk_bo_class* i_this) {
switch (i_this->action) {
case 0:
if (e_mk->field_0xc30 == 1) {
if (e_mk->demoMode == e_mk_class::DEMO_MODE_START) {
var_r28 = e_mk_bo_start(i_this);
} else if (e_mk->field_0xc30 == 3 || fopAcM_GetRoomNo(actor) == 4) {
} else if (e_mk->demoMode == e_mk_class::DEMO_MODE_R04 || fopAcM_GetRoomNo(actor) == 4) {
var_r28 = e_mk_bo_r04(i_this);
} else {
var_r28 = e_mk_bo_shot(i_this);
@ -606,8 +606,8 @@ static int daE_MK_BO_Execute(e_mk_bo_class* i_this) {
i_this->model->setBaseTRMtx(mDoMtx_stack_c::get());
e_mk_class* e_mk = (e_mk_class*)a_parent;
if (e_mk->field_0x707 == 6) {
e_mk->field_0x707 = 0;
if (e_mk->unkFlag4 == 6) {
e_mk->unkFlag4 = 0;
fopAcM_delete(actor);
}
@ -643,15 +643,15 @@ static int daE_MK_BO_Execute(e_mk_bo_class* i_this) {
for (int i = 0; i < eff_num; i++) {
if (i_this->action >= 2) {
if (i < 2) {
e_mk->field_0xc18[i] = dComIfGp_particle_set(e_mk->field_0xc18[i], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->field_0xc18[i]);
e_mk->boEno1Prtcls[i] = dComIfGp_particle_set(e_mk->boEno1Prtcls[i], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->boEno1Prtcls[i]);
} else {
i_this->field_0x99c[i - 2] = dComIfGp_particle_set(i_this->field_0x99c[i - 2], bo_eno_2[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(i_this->field_0x99c[i - 2]);
}
} else if (i < 2) {
e_mk->field_0xc18[i] = dComIfGp_particle_set(e_mk->field_0xc18[i], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->field_0xc18[i]);
e_mk->boEno1Prtcls[i] = dComIfGp_particle_set(e_mk->boEno1Prtcls[i], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(e_mk->boEno1Prtcls[i]);
} else {
i_this->field_0x99c[i - 2] = dComIfGp_particle_set(i_this->field_0x99c[i - 2], bo_eno_1[i], &actor->current.pos, NULL, NULL);
emt = dComIfGp_particle_getEmitter(i_this->field_0x99c[i - 2]);