d_a_obj_msdan2 OK

This commit is contained in:
oga-sven
2026-09-27 11:52:48 +02:00
parent 3f6e98a3df
commit f813a28e8a
3 changed files with 56 additions and 9 deletions
+1 -1
View File
@@ -1778,7 +1778,7 @@ config.libs = [
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mknjd"),
ActorRel(Matching, "d_a_obj_mmrr"),
ActorRel(NonMatching, "d_a_obj_msdan"),
ActorRel(NonMatching, "d_a_obj_msdan2"),
ActorRel(MatchingFor("GZLE01"), "d_a_obj_msdan2"),
ActorRel(Matching, "d_a_obj_msdan_sub"),
ActorRel(NonMatching, "d_a_obj_msdan_sub2"),
ActorRel(Matching, "d_a_obj_mtest"),
+13 -5
View File
@@ -2,19 +2,27 @@
#define D_A_OBJ_MSDAN2_H
#include "f_op/f_op_actor.h"
#include "d/d_a_obj.h"
namespace daObjMsdan2 {
class Act_c : public fopAc_ac_c {
public:
void prm_get_swSave() const {}
enum Prm_e {
PRM_SWSAVE_W = 0x08,
PRM_SWSAVE_S = 0x00,
};
int prm_get_swSave() const { return daObj::PrmAbstract<Prm_e>(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
cPhs_State Mthd_Create();
BOOL Mthd_Execute();
BOOL Mthd_Delete();
public:
/* Place member variables here */
};
/* 0x290 */ u8 field_0x290[0x298 - 0x290];
/* 0x298 */ s16 mEventIdx;
/* 0x29C */ int mMode;
}; // Size: 0x2A0
};
#endif /* D_A_OBJ_MSDAN2_H */
+42 -3
View File
@@ -8,17 +8,56 @@
/* 00000078-0000024C .text Mthd_Create__Q211daObjMsdan25Act_cFv */
cPhs_State daObjMsdan2::Act_c::Mthd_Create() {
/* Nonmatching */
fopAcM_SetupActor(this, daObjMsdan2::Act_c);
cXyz pos = current.pos;
csXyz angle = current.angle;
angle.y += 0x8000;
pos.y += 400.0f;
for (int i = 0; i < 16; i++) {
pos.x += 50.0f * cM_ssin(current.angle.y);
pos.z += 50.0f * cM_scos(current.angle.y);
fopAcM_create(fpcNm_Obj_MsdanSub2_e, (i << 8) + prm_get_swSave(), &pos, current.roomNo, &angle);
}
mEventIdx = dComIfGp_evmng_getEventIdx("Msdan2");
if (fopAcM_isSwitch(this, prm_get_swSave())) {
mMode = 3;
} else {
mMode = 0;
}
return cPhs_COMPLEATE_e;
}
/* 0000024C-00000344 .text Mthd_Execute__Q211daObjMsdan25Act_cFv */
BOOL daObjMsdan2::Act_c::Mthd_Execute() {
/* Nonmatching */
switch (mMode) {
case 0:
if (fopAcM_isSwitch(this, prm_get_swSave())) {
fopAcM_orderOtherEventId(this, mEventIdx);
mMode = 1;
}
break;
case 1:
if (eventInfo.checkCommandDemoAccrpt()) {
mMode = 2;
}
break;
case 2:
if (dComIfGp_evmng_endCheck(mEventIdx)) {
dComIfGp_event_reset();
mMode = 3;
}
break;
case 3:
break;
}
return TRUE;
}
/* 00000344-0000034C .text Mthd_Delete__Q211daObjMsdan25Act_cFv */
BOOL daObjMsdan2::Act_c::Mthd_Delete() {
/* Nonmatching */
return TRUE;
}
namespace daObjMsdan2 {