mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-23 09:04:21 +00:00
Npc: Implement PeachOnKoopaAnimRequester (#977)
This commit is contained in:
parent
9906a5d12b
commit
1778223e55
|
|
@ -104918,56 +104918,56 @@ Npc/PeachOnKoopaAnimRequester.o:
|
|||
label:
|
||||
- _ZN25PeachOnKoopaAnimRequesterC1Ev
|
||||
- _ZN25PeachOnKoopaAnimRequesterC2Ev
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3add10
|
||||
size: 8
|
||||
label: _ZN25PeachOnKoopaAnimRequester12resetRequestEv
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3add18
|
||||
size: 76
|
||||
label: _ZN2rs29initPeachOnKoopaAnimRequesterEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3add64
|
||||
size: 60
|
||||
label: _ZN2rs35requestStartPeachOnKoopaAnimSuccessEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3adda0
|
||||
size: 60
|
||||
label: _ZN2rs39requestStartPeachOnKoopaHitReaction2DInEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3adddc
|
||||
size: 60
|
||||
label: _ZN2rs40requestStartPeachOnKoopaHitReaction2DOutEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3ade18
|
||||
size: 60
|
||||
label: _ZN2rs52requestStartPeachOnKoopaHitReactionBreakPillarBridgeEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3ade54
|
||||
size: 60
|
||||
label: _ZN2rs48requestStartPeachOnKoopaHitReactionCrackGateHardEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3ade90
|
||||
size: 60
|
||||
label: _ZN2rs48requestStartPeachOnKoopaHitReactionBreakGateHardEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3adecc
|
||||
size: 60
|
||||
label: _ZN2rs46requestStartPeachOnKoopaHitReactionBreakPillarEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3adf08
|
||||
size: 60
|
||||
label: _ZN2rs49requestStartPeachOnKoopaHitReactionBreakGateFinalEPKN2al18IUseSceneObjHolderE
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
- offset: 0x3adf44
|
||||
size: 12
|
||||
label: _ZNK25PeachOnKoopaAnimRequester15getSceneObjNameEv
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
lazy: true
|
||||
- offset: 0x3adf50
|
||||
size: 4
|
||||
label: _ZN25PeachOnKoopaAnimRequesterD0Ev
|
||||
status: NotDecompiled
|
||||
status: Matching
|
||||
lazy: true
|
||||
Npc/PeachOnKoopaShoulder.o:
|
||||
'.text':
|
||||
|
|
|
|||
66
src/Npc/PeachOnKoopaAnimRequester.cpp
Normal file
66
src/Npc/PeachOnKoopaAnimRequester.cpp
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#include "Npc/PeachOnKoopaAnimRequester.h"
|
||||
|
||||
#include "Library/Scene/SceneObjUtil.h"
|
||||
|
||||
PeachOnKoopaAnimRequester::PeachOnKoopaAnimRequester() = default;
|
||||
|
||||
void PeachOnKoopaAnimRequester::resetRequest() {
|
||||
mIsRequestSuccess = false;
|
||||
mIsRequestHitReaction2DIn = false;
|
||||
mIsRequestHitReaction2DOut = false;
|
||||
mIsRequestHitReactionBreakPillarBridge = false;
|
||||
mIsRequestHitReactionCrackGateHard = false;
|
||||
mIsRequestHitReactionBreakGateHard = false;
|
||||
mIsRequestHitReactionBreakPillar = false;
|
||||
mIsRequestHitReactionBreakGateFinal = false;
|
||||
}
|
||||
|
||||
namespace rs {
|
||||
|
||||
PeachOnKoopaAnimRequester* initPeachOnKoopaAnimRequester(const al::IUseSceneObjHolder* holder) {
|
||||
PeachOnKoopaAnimRequester* requester = new PeachOnKoopaAnimRequester();
|
||||
al::setSceneObj(holder, requester, SceneObjID_PeachOnKoopaAnimRequester);
|
||||
return requester;
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaAnimSuccess(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestSuccess();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReaction2DIn(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReaction2DIn();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReaction2DOut(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReaction2DOut();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReactionBreakPillarBridge(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReactionBreakPillarBridge();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReactionCrackGateHard(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReactionCrackGateHard();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReactionBreakGateHard(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReactionBreakGateHard();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReactionBreakPillar(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReactionBreakPillar();
|
||||
}
|
||||
|
||||
void requestStartPeachOnKoopaHitReactionBreakGateFinal(const al::IUseSceneObjHolder* holder) {
|
||||
if (al::isExistSceneObj(holder, SceneObjID_PeachOnKoopaAnimRequester))
|
||||
al::getSceneObj<PeachOnKoopaAnimRequester>(holder)->requestHitReactionBreakGateFinal();
|
||||
}
|
||||
|
||||
} // namespace rs
|
||||
66
src/Npc/PeachOnKoopaAnimRequester.h
Normal file
66
src/Npc/PeachOnKoopaAnimRequester.h
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "Library/Scene/ISceneObj.h"
|
||||
|
||||
#include "Scene/SceneObjFactory.h"
|
||||
|
||||
namespace al {
|
||||
class IUseSceneObjHolder;
|
||||
}
|
||||
|
||||
class PeachOnKoopaAnimRequester : public al::ISceneObj {
|
||||
public:
|
||||
static constexpr s32 sSceneObjId = SceneObjID_PeachOnKoopaAnimRequester;
|
||||
|
||||
PeachOnKoopaAnimRequester();
|
||||
|
||||
void resetRequest();
|
||||
|
||||
const char* getSceneObjName() const override {
|
||||
return "肩乗りピーチへのアニメーションリクエスト";
|
||||
}
|
||||
|
||||
void requestSuccess() { mIsRequestSuccess = true; }
|
||||
|
||||
void requestHitReaction2DIn() { mIsRequestHitReaction2DIn = true; }
|
||||
|
||||
void requestHitReaction2DOut() { mIsRequestHitReaction2DOut = true; }
|
||||
|
||||
void requestHitReactionBreakPillarBridge() { mIsRequestHitReactionBreakPillarBridge = true; }
|
||||
|
||||
void requestHitReactionCrackGateHard() { mIsRequestHitReactionCrackGateHard = true; }
|
||||
|
||||
void requestHitReactionBreakGateHard() { mIsRequestHitReactionBreakGateHard = true; }
|
||||
|
||||
void requestHitReactionBreakPillar() { mIsRequestHitReactionBreakPillar = true; }
|
||||
|
||||
void requestHitReactionBreakGateFinal() { mIsRequestHitReactionBreakGateFinal = true; }
|
||||
|
||||
private:
|
||||
bool mIsRequestSuccess = false;
|
||||
bool mIsRequestHitReaction2DIn = false;
|
||||
bool mIsRequestHitReaction2DOut = false;
|
||||
bool mIsRequestHitReactionBreakPillarBridge = false;
|
||||
bool mIsRequestHitReactionCrackGateHard = false;
|
||||
bool mIsRequestHitReactionBreakGateHard = false;
|
||||
bool mIsRequestHitReactionBreakPillar = false;
|
||||
bool mIsRequestHitReactionBreakGateFinal = false;
|
||||
};
|
||||
|
||||
static_assert(sizeof(PeachOnKoopaAnimRequester) == 0x10);
|
||||
|
||||
namespace rs {
|
||||
|
||||
PeachOnKoopaAnimRequester* initPeachOnKoopaAnimRequester(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaAnimSuccess(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReaction2DIn(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReaction2DOut(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReactionBreakPillarBridge(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReactionCrackGateHard(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReactionBreakGateHard(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReactionBreakPillar(const al::IUseSceneObjHolder* holder);
|
||||
void requestStartPeachOnKoopaHitReactionBreakGateFinal(const al::IUseSceneObjHolder* holder);
|
||||
|
||||
} // namespace rs
|
||||
Loading…
Reference in a new issue