1#include "Library/Player/PlayerHolder.h"
2
3namespace al {
4
5PlayerHolder::PlayerHolder(s32 count) {
6 mBufferSize = count;
7 mPlayers = new Player[count];
8 clear();
9}
10
11void PlayerHolder::clear() {
12 for (s32 i = 0; i < mBufferSize; i++) {
13 mPlayers[i].actor = nullptr;
14 mPlayers[i].padRumbleKeeper = nullptr;
15 }
16}
17
18void PlayerHolder::registerPlayer(LiveActor* actor, PadRumbleKeeper* rumbleKeeper) {
19 mPlayers[mPlayerNum].actor = actor;
20 mPlayers[mPlayerNum].padRumbleKeeper = rumbleKeeper;
21 mPlayerNum++;
22}
23
24LiveActor* PlayerHolder::getPlayer(s32 index) const {
25 return mPlayers[index].actor;
26}
27
28LiveActor* PlayerHolder::tryGetPlayer(s32 index) const {
29 if (mBufferSize <= index)
30 return nullptr;
31 else if (mPlayerNum <= index)
32 return nullptr;
33
34 return mPlayers[index].actor;
35}
36
37s32 PlayerHolder::getPlayerNum() const {
38 return mPlayerNum;
39}
40
41s32 PlayerHolder::getBufferSize() const {
42 return mBufferSize;
43}
44
45bool PlayerHolder::isFull() const {
46 return mBufferSize <= mPlayerNum;
47}
48
49bool PlayerHolder::isExistPadRumbleKeeper(s32 index) const {
50 return mPlayers[index].padRumbleKeeper != nullptr;
51}
52
53PadRumbleKeeper* PlayerHolder::getPadRumbleKeeper(s32 index) const {
54 return mPlayers[index].padRumbleKeeper;
55}
56} // namespace al
57