mirror of
https://github.com/zeldaret/tww.git
synced 2026-10-09 05:31:51 -04:00
d_a_obj_msdan2 OK
This commit is contained in:
+1
-1
@@ -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"),
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user