mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-19 21:01:22 +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>
54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "Game/NameObj/NameObjGroup.hpp"
|
|
|
|
class LiveActor;
|
|
|
|
class LiveActorGroup : public NameObjGroup {
|
|
public:
|
|
/// @brief Creates a new `LiveActorGroup`.
|
|
/// @param pName A pointer to the null-terminated name of the object.
|
|
/// @param numMax The maximum allowed number of `LiveActor` instances in the group.
|
|
LiveActorGroup(const char*, int);
|
|
|
|
void registerActor(LiveActor*);
|
|
LiveActor* getActor(int) const;
|
|
LiveActor* getDeadActor() const;
|
|
s32 getLivingActorNum() const;
|
|
void appearAll();
|
|
void killAll();
|
|
|
|
bool hasActor(const LiveActor* pActor) const {
|
|
for (int i = 0; i < getObjNum(); i++) {
|
|
if (getActor(i) == pActor) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
};
|
|
|
|
template < typename T >
|
|
class DeriveActorGroup : public LiveActorGroup {
|
|
public:
|
|
/// @brief Creates a new `DeriveActorGroup`.
|
|
/// @param pName A pointer to the null-terminated name of the object.
|
|
/// @param numMax The maximum allowed number of derived `LiveActor` instances in the group.
|
|
DeriveActorGroup(const char* pName, int numMax) : LiveActorGroup(pName, numMax) {
|
|
}
|
|
|
|
T* getMember(int index) const {
|
|
return static_cast< T* >(getActor(index));
|
|
}
|
|
|
|
T* getDeadMember() const {
|
|
if (getDeadActor() != nullptr) {
|
|
T* pActor = static_cast< T* >(getDeadActor());
|
|
return pActor;
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
};
|