mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-21 23:01:45 +02:00
The sources of Petari (https://github.com/SMGCommunity/Petari), the Super Mario Galaxy decompilation by the SMGCommunity, at commit 0a5c6608dc3b4c44a9aa68c2535d1793dc565f02, unchanged but for LF line endings: LICENSE (as LICENSE-Petari.txt; CC0 1.0), include/, libs/ and src/. Left out: the game data Petari keeps from the original executable, the error message archive (include/Game/System/ ErrorArchive.hpp) and two tables (src/Game/System/GalaxyID.bcsv and StoryEvent.bcsv); GalaxyQuest's converter takes them from the player's own disc. The port's changes follow in the next commit, so `git diff petari-base -- decomp` shows them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
67 lines
2.0 KiB
C++
67 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "Game/Enemy/AnimScaleController.hpp"
|
|
#include "Game/LiveActor/LiveActor.hpp"
|
|
#include "Game/Map/GroundChecker.hpp"
|
|
#include "Game/Util/JointController.hpp"
|
|
|
|
class PunchingKinoko : public LiveActor {
|
|
public:
|
|
PunchingKinoko(const char*);
|
|
|
|
virtual ~PunchingKinoko();
|
|
virtual void init(const JMapInfoIter&);
|
|
virtual void makeActorAppeared();
|
|
virtual void kill();
|
|
virtual void makeActorDead();
|
|
virtual void control();
|
|
virtual void calcAndSetBaseMtx();
|
|
virtual void attackSensor(HitSensor*, HitSensor*);
|
|
virtual bool receiveMsgPush(HitSensor*, HitSensor*);
|
|
virtual bool receiveMsgPlayerAttack(u32, HitSensor*, HitSensor*);
|
|
virtual bool receiveMsgEnemyAttack(u32, HitSensor*, HitSensor*);
|
|
|
|
void initShadow();
|
|
void initSensor();
|
|
void initCamera(const JMapInfoIter&);
|
|
void initJointControl();
|
|
|
|
bool requestPunch(HitSensor*, HitSensor*);
|
|
bool requestEnemyBlow(HitSensor*, HitSensor*);
|
|
bool requestTrample(HitSensor*, HitSensor*);
|
|
bool requestCrush();
|
|
|
|
void exeWait();
|
|
void exeSwing();
|
|
void exePointSnaped();
|
|
void exePunched();
|
|
void exePunchedBrake();
|
|
void exeHitted();
|
|
void exeCrushed();
|
|
void exeCrushedEnd();
|
|
|
|
bool ballMtxCallBack(TPos3f*, const JointControllerInfo&);
|
|
|
|
// some callers will only match if these are marked NO_INLINE, even though they aren't being inlined (???)
|
|
bool isEnablePunched() const;
|
|
bool isEnableHitPlayer() const NO_INLINE;
|
|
bool isEnableEnemyAttack() const;
|
|
bool isEnableCrushed() const;
|
|
bool isEnableTrample() const;
|
|
bool isEnableBlowed() const NO_INLINE;
|
|
bool isCrushed() const NO_INLINE;
|
|
|
|
void addVelocityKeepHeight();
|
|
|
|
private:
|
|
GroundChecker* mGroundChecker; // 0x8C
|
|
AnimScaleController* mScaleController; // 0x90
|
|
JointControlDelegator< PunchingKinoko >* mDelegator; // 0x94
|
|
s32 _98;
|
|
TVec3f _9C;
|
|
TVec3f _A8;
|
|
s32 mStarPointerHitCoolDown; // 0xB4
|
|
bool _B8;
|
|
s32 mInvincibleHitCoolDown; // 0xBC
|
|
};
|