OdysseyDecomp/lib/al/Library/Player/PlayerHolder.cpp
2024-06-13 21:10:45 +02:00

57 lines
1.3 KiB
C++

#include "Library/Player/PlayerHolder.h"
namespace al {
PlayerHolder::PlayerHolder(s32 count) {
mBufferSize = count;
mPlayers = new Player[count];
clear();
}
void PlayerHolder::clear() {
for (s32 i = 0; i < mBufferSize; i++) {
mPlayers[i].mActor = nullptr;
mPlayers[i].mPadRumbleKeeper = nullptr;
}
}
void PlayerHolder::registerPlayer(LiveActor* actor, PadRumbleKeeper* rumbleKeeper) {
mPlayers[mPlayerNum].mActor = actor;
mPlayers[mPlayerNum].mPadRumbleKeeper = rumbleKeeper;
mPlayerNum++;
}
LiveActor* PlayerHolder::getPlayer(s32 index) const {
return mPlayers[index].mActor;
}
LiveActor* PlayerHolder::tryGetPlayer(s32 index) const {
if (mBufferSize <= index)
return nullptr;
else if (mPlayerNum <= index)
return nullptr;
return mPlayers[index].mActor;
}
s32 PlayerHolder::getPlayerNum() const {
return mPlayerNum;
}
s32 PlayerHolder::getBufferSize() const {
return mBufferSize;
}
bool PlayerHolder::isFull() const {
return mBufferSize <= mPlayerNum;
}
bool PlayerHolder::isExistPadRumbleKeeper(s32 index) const {
return mPlayers[index].mPadRumbleKeeper != nullptr;
}
PadRumbleKeeper* PlayerHolder::getPadRumbleKeeper(s32 index) const {
return mPlayers[index].mPadRumbleKeeper;
}
} // namespace al