Execute to 90%

This commit is contained in:
Dylan Ascencio
2023-10-03 02:20:21 -04:00
parent c02882a3de
commit ba091d3092
6 changed files with 237 additions and 8 deletions
+1 -1
View File
@@ -110,7 +110,7 @@ public:
virtual void checkCutCharge() const;
virtual void getBokoFlamePos(cXyz*);
virtual void checkTactWait() const;
virtual void setTactZev(unsigned int, int, char*);
virtual void setTactZev(unsigned int, int, const char*);
virtual void onDekuSpReturnFlg(u8);
virtual void checkComboCutTurn() const;
virtual f32 getBaseAnimeFrameRate() = 0;
+12
View File
@@ -837,6 +837,10 @@ inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
inline fopAc_ac_c* dComIfGp_getCb1Player() {
return g_dComIfG_gameInfo.play.getPlayerPtr(1);
}
inline roomRead_class* dComIfGp_getStageRoom() {
return g_dComIfG_gameInfo.play.getStage().getRoom();
}
@@ -1195,6 +1199,10 @@ inline fopAc_ac_c* dComIfGp_event_getTalkPartner() {
return g_dComIfG_gameInfo.play.getEvent().convPId(t);
}
inline void dComIfGp_event_setTalkPartner(void* i_actor) {
g_dComIfG_gameInfo.play.getEvent().setPtT(i_actor);
}
inline fopAc_ac_c* dComIfGp_event_getItemPartner() {
u32 i = g_dComIfG_gameInfo.play.getEvent().mPtItem;
return g_dComIfG_gameInfo.play.getEvent().convPId(i);
@@ -1246,6 +1254,10 @@ inline char* dComIfGp_evmng_getMyStringP(int staffIdx, const char* name) {
return reinterpret_cast<char*>(dComIfGp_getEventManager().getMySubstanceP(staffIdx, name, 4)); //type 4 is string
}
inline BOOL dComIfGp_evmng_startCheck(s16 eventID) {
return dComIfGp_getEventManager().startCheck(eventID);
}
inline BOOL dComIfGp_evmng_endCheck(s16 eventID) {
return dComIfGp_getEventManager().endCheck(eventID);
}
+3 -2
View File
@@ -69,7 +69,7 @@ public:
void remove();
void getStageEventDt();
void nextStageEventDt(void*);
void getPId(void*);
int getPId(void*);
fopAc_ac_c * convPId(unsigned int);
void getTactFreeMStick(int);
void getTactFreeCStick(int);
@@ -78,6 +78,7 @@ public:
u8 getTalkXYBtn() { return mTalkButton; }
bool chkTalkXY() { return mTalkButton == 1 || mTalkButton == 2 || mTalkButton == 3; }
void setPtI_Id(u32 id) { mPtItem = id; }
void setPtT(void* i_actor) { mPtTalk = getPId(i_actor); }
u8 getPreItemNo() { return mItemNo; }
u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
@@ -116,4 +117,4 @@ public:
/* 0xEE */ u8 mTactFreeCStick[4];
}; // Size = 0xF4
#endif /* D_EVENT_D_EVENT_H */
#endif /* D_EVENT_D_EVENT_H */
+2 -2
View File
@@ -37,7 +37,7 @@ public:
void getEventData(s16);
s16 getEventIdx(const char*, u8);
void order(s16);
void startCheck(s16);
bool startCheck(s16);
BOOL startCheckOld(const char*);
BOOL endCheck(s16);
BOOL endCheckOld(const char*);
@@ -76,4 +76,4 @@ inline int dEvmng_strcmp(const char* s1, const char* s2) {
return strcmp(s1, s2);
}
#endif /* D_EVENT_D_EVENT_MANAGER_H */
#endif /* D_EVENT_D_EVENT_MANAGER_H */
+4
View File
@@ -55,6 +55,10 @@ inline void mDoAud_load2ndDynamicWave() {
mDoAud_zelAudio_c::getInterface()->load2ndDynamicWave();
}
inline void mDoAud_taktModeMuteOff() {
mDoAud_zelAudio_c::getInterface()->taktModeMuteOff();
}
inline void mDoAud_resetProcess() {
if (mDoAud_zelAudio_c::isResetFlag()) {
mDoAud_zelAudio_c::getInterface()->resetProcess();
+215 -3
View File
@@ -103,7 +103,7 @@ namespace daObjMknjD {
void privateCut();
bool daObjMknjD_break();
int Execute(float(**)[3][4]);
int Execute(Mtx**);
int Draw();
static const char M_arcname[];
@@ -816,9 +816,221 @@ bool daObjMknjD::Act_c::daObjMknjD_break() {
}
/* 0000195C-000020E0 .text Execute__Q210daObjMknjD5Act_cFPPA3_A4_f */
int daObjMknjD::Act_c::Execute(float(**)[3][4]) {
int daObjMknjD::Act_c::Execute(Mtx** i_mtx) {
/* Nonmatching */
return 0;
daPy_py_c* player = static_cast<daPy_py_c*>(dComIfGp_getPlayer(0));
daPy_py_c* partner = static_cast<daPy_py_c*>(dComIfGp_getCb1Player());
switch (m043F) {
case 0:
mEvtInfo.onCondition(1);
if (mEvtInfo.checkCommandTalk() == true) {
m0500 = 1;
m043F = 0x0B;
}
else if (partner != NULL) {
cXyz partnerDiff = current.pos - partner->current.pos;
s16 rotDiff = cM_atan2s(partnerDiff.x, partnerDiff.z) - current.angle.y;
f32 absXZ = partnerDiff.absXZ();
if (absXZ < 800.0f && (rotDiff < -0x4000 || rotDiff > 0x4000)) {
if (dComIfGp_checkPlayerStatus1(0, 1) != 0) {
m043F = 1;
manage_friend_draw(0);
}
}
}
break;
case 1:
if (m043E == 1) {
static_cast<daPy_py_c*>(dComIfGp_getPlayer(0))->setTactZev(fopAcM_GetID(this), 4, daObjMknjD_EventName[3]);
}
else {
static_cast<daPy_py_c*>(dComIfGp_getPlayer(0))->setTactZev(fopAcM_GetID(this), 3, daObjMknjD_EventName[2]);
}
m043F = 2;
break;
case 2:
if (dComIfGp_evmng_startCheck(mCheckEventIdx) != 0) {
if (partner != NULL && player != NULL) {
s16 rotDiff = cM_atan2s(current.pos.x - partner->current.pos.x, current.pos.z - partner->current.pos.z) - current.angle.y;
f32 absXZ = (partner->current.pos - current.pos).absXZ();
if (absXZ < 800.0f && (rotDiff >= -0x4000 && rotDiff > 0x4000)) {
fopAcM_orderChangeEventId(this, mDemoEventIdx, 0, 0xFFFF);
dComIfGs_onEventBit(m0430);
s16 procMedli = PROC_NPC_MD;
void* judgeResult = fopAcIt_Judge(fpcSch_JudgeForPName, &procMedli);
if (judgeResult != NULL) {
dComIfGp_event_setTalkPartner(judgeResult);
}
m043F = 6;
}
else {
fopAcM_orderChangeEventId(this, mErrorEventIdx, 0, 0xFFFF);
m043F = 3;
manage_friend_draw(1);
}
}
else {
fopAcM_orderChangeEventId(this, mErrorEventIdx, 0, 0xFFFF);
m043F = 3;
manage_friend_draw(1);
}
}
else {
if (dComIfGp_checkPlayerStatus1(0, 1) == 0) {
m043F = 0;
manage_friend_draw(1);
}
}
break;
case 3:
if (mEvtInfo.checkCommandDemoAccrpt()) {
m043F = 4;
}
break;
case 4:
if (dComIfGp_evmng_endCheck(mErrorEventIdx)) {
dComIfGp_event_reset();
m043F = 5;
}
break;
case 5:
if (dComIfGp_checkPlayerStatus1(0, 1) == 0) {
m043F = 0;
}
break;
case 6:
if (mEvtInfo.checkCommandDemoAccrpt()) {
m043F = 7;
mDoAud_bgmStop(0x1E);
mDoAud_taktModeMuteOff();
dComIfGp_getAttention().mFlags |= 0x80000000;
if (m043E == true) {
m0432 = 0x2B;
m0434 = 5;
}
else {
m0432 = 0x0E;
m0434 = 5;
}
}
break;
case 7:
privateCut();
if (dComIfGp_evmng_endCheck(mDemoEventIdx)) {
dComIfGp_getAttention().mFlags &= ~0x80000000;
dComIfGp_event_onEventFlag(8);
fopAcM_delete(this);
}
break;
case 8:
mEvtInfo.onCondition(1);
mEvtInfo.onCondition(32);
if (mEvtInfo.checkCommandTalk() == true) {
bool bXyzTalk = false;
if (dComIfGp_event_chkTalkXY()) {
bXyzTalk = true;
}
if (bXyzTalk) {
m0500 = 0;
m043F = 9;
fopAcM_seStartCurrent(this, JA_SE_PRE_TAKT, 0);
}
else {
m0500 = 1;
m043F = 11;
}
}
break;
case 9:
m043F = 10;
break;
case 10:
privateCut();
if (g_dComIfG_gameInfo.play.mEvtCtrl.mMode == 0) {
if (checkItemGet(mGiveItemId, 1) != 0) {
m043F = 0;
}
else {
m043F = 8;
}
}
break;
case 11:
static_cast<daPy_py_c*>(dComIfGp_getPlayer(0))->onPlayerNoDraw();
m043F = 12;
break;
case 12:
if (talk(1) == 18) {
partner->offPlayerNoDraw();
g_dComIfG_gameInfo.play.mEvtCtrl.mEventFlag |= 8;
if (checkItemGet(mGiveItemId, 1) != 0) {
m043F = 0;
}
else {
m043F = 8;
}
}
break;
}
set_mtx();
*i_mtx = &M_tmp_mtx;
if (m0432 > 1) {
m0432--;
}
if (m0432 == 1) {
if (m043E == true) {
mDoAud_bgmStart(0x80000000 | JA_BGM_TAKT_MAKORE);
}
else {
mDoAud_bgmStart(0x80000000 | JA_BGM_TAKT_MEDRI);
}
m0432 = 0;
}
if (m0434 > 1) {
m0434--;
}
if (m0434 == 1) {
manage_friend_draw(1);
m0434 = 0;
}
return 1;
}
/* 000020E0-000022FC .text setMaterial__10daObjMknjDFP11J3DMaterialUc */