Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1730,7 +1730,7 @@ def EquivalentFor(*versions):
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_mknjd"),
ActorRel(NonMatching, "d_a_obj_mmrr"),
ActorRel(NonMatching, "d_a_obj_msdan"),
ActorRel(NonMatching, "d_a_obj_msdan2"),
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"),"d_a_obj_msdan2"),
ActorRel(NonMatching, "d_a_obj_msdan_sub"),
ActorRel(NonMatching, "d_a_obj_msdan_sub2"),
ActorRel(Matching, "d_a_obj_mtest"),
Expand Down
43 changes: 32 additions & 11 deletions include/d/actor/d_a_obj_msdan2.h
Original file line number Diff line number Diff line change
@@ -1,20 +1,41 @@
#ifndef D_A_OBJ_MSDAN2_H
#define D_A_OBJ_MSDAN2_H

#include "f_op/f_op_actor.h"
#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/d_procname.h"
#include "d/d_priority.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 = 8,
PRM_SWSAVE_S = 0,
};

enum Mode_e {
MODE_WAIT = 0,
MODE_EVENT = 1,
MODE_EVENT_RUNNING= 2,
MODE_DONE = 3,
};

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 */

/* 0x1C8 */ u8 field_0x1c8[0x1E2 - sizeof(fopAc_ac_c)];
/* 0x1E2 */ s8 mSwitchBit;
/* 0x1E3 */ u8 field_0x1e3[0x204 - 0x1E3];
/* 0x204 */ csXyz mSavedAngle;
/* 0x20A */ s8 mType;
/* 0x20B */ u8 field_0x20b[0x290 - 0x20B];
/* 0x290 */ u8 field_0x290[0x8];
/* 0x298 */ s16 mEventIdx;
/* 0x29A */ u8 field_0x29A[0x2];
/* 0x29C */ s32 mMode;
};
};

#endif /* D_A_OBJ_MSDAN2_H */
71 changes: 66 additions & 5 deletions src/d/actor/d_a_obj_msdan2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,90 @@
// Generated by dtk
// Translation Unit: d_a_obj_msdan2.cpp
//

#include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_obj_msdan2.h"
#include "d/d_procname.h"
#include "d/d_priority.h"
#include "d/d_a_obj.h"

/* 00000078-0000024C .text Mthd_Create__Q211daObjMsdan25Act_cFv */
/* 00000078-000003D4 .text Mthd_Create__Q210daObjMsdan5Act_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(
PROC_Obj_MsdanSub2,
prm_get_swSave() + (i << 8),
&pos,
mType,
&angle,
NULL,
-1,
NULL
);
}

mEventIdx = dComIfGp_evmng_getEventIdx("Msdan2", 0xff);

u32 prmCheck = prm_get_swSave();
if (dComIfGs_isSwitch(prmCheck, mSwitchBit)) {
mMode = MODE_DONE;
} else {
mMode = MODE_WAIT;
}

return cPhs_COMPLEATE_e;
}

/* 0000024C-00000344 .text Mthd_Execute__Q211daObjMsdan25Act_cFv */
BOOL daObjMsdan2::Act_c::Mthd_Execute() {
/* Nonmatching */
int swIdx;
switch (mMode) {
case MODE_WAIT:
swIdx = prm_get_swSave();
if (fopAcM_isSwitch(this,swIdx)) {
fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 0, 1);
mMode = MODE_EVENT;
}
break;

case MODE_EVENT:
if (eventInfo.checkCommandDemoAccrpt()) {
mMode = MODE_EVENT_RUNNING;
}
break;

case MODE_EVENT_RUNNING:
if (dComIfGp_evmng_endCheck(mEventIdx)) {
dComIfGp_event_reset();
mMode = MODE_DONE;
}
break;

case MODE_DONE: break;

}

return TRUE;
}

/* 00000344-0000034C .text Mthd_Delete__Q211daObjMsdan25Act_cFv */
BOOL daObjMsdan2::Act_c::Mthd_Delete() {
/* Nonmatching */
return TRUE;
}

namespace daObjMsdan2 {
namespace {

/* 0000034C-0000036C .text Mthd_Create__Q211daObjMsdan228@unnamed@d_a_obj_msdan2_cpp@FPv */
cPhs_State Mthd_Create(void* i_this) {
return ((daObjMsdan2::Act_c*)i_this)->Mthd_Create();
Expand Down