1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class HitSensor;
7class LiveActor;
8class PadRumbleKeeper;
9class PlayerHolder;
10
11s32 getPlayerNumMax(const LiveActor*);
12s32 getPlayerNumMax(const PlayerHolder*);
13s32 getAlivePlayerNum(const LiveActor*);
14s32 getAlivePlayerNum(const PlayerHolder*);
15LiveActor* getPlayerActor(const LiveActor*, s32);
16LiveActor* getPlayerActor(const PlayerHolder*, s32);
17const sead::Vector3f& getPlayerPos(const LiveActor*, s32);
18const sead::Vector3f& getPlayerPos(const PlayerHolder*, s32);
19LiveActor* tryGetPlayerActor(const LiveActor*, s32);
20LiveActor* tryGetPlayerActor(const PlayerHolder*, s32);
21bool isPlayerDead(const LiveActor*, s32);
22bool isPlayerDead(const PlayerHolder*, s32);
23bool isPlayerAreaTarget(const LiveActor*, s32);
24bool isPlayerAreaTarget(const PlayerHolder*, s32);
25LiveActor* tryFindAlivePlayerActorFirst(const LiveActor*);
26LiveActor* tryFindAlivePlayerActorFirst(const PlayerHolder*);
27LiveActor* findAlivePlayerActorFirst(const LiveActor*);
28LiveActor* findAlivePlayerActorFirst(const PlayerHolder*);
29PadRumbleKeeper* getPlayerPadRumbleKeeper(const LiveActor*, s32);
30s32 getPlayerPort(const PlayerHolder*, s32);
31s32 getPlayerPort(const LiveActor*, s32);
32LiveActor* findAlivePlayerActorFromPort(const PlayerHolder*, s32);
33LiveActor* tryFindAlivePlayerActorFromPort(const PlayerHolder*, s32);
34LiveActor* findAlivePlayerActorFromPort(const LiveActor*, s32);
35LiveActor* tryFindAlivePlayerActorFromPort(const LiveActor*, s32);
36s32 findNearestPlayerId(const LiveActor*, f32);
37LiveActor* findNearestPlayerActor(const LiveActor*);
38LiveActor* tryFindNearestPlayerActor(const LiveActor*);
39const sead::Vector3f& findNearestPlayerPos(const LiveActor*);
40bool tryFindNearestPlayerPos(sead::Vector3f*, const LiveActor*);
41bool tryFindNearestPlayerDisatanceFromTarget(f32*, const LiveActor*, const sead::Vector3f&);
42bool isNearPlayer(const LiveActor*, f32);
43bool isNearPlayerH(const LiveActor*, f32);
44bool isNearPlayerHCondition(const LiveActor*, f32, bool (*)(const LiveActor*));
45const sead::Vector3f& getFarPlayerPosMaxX(const LiveActor*);
46const sead::Vector3f& getFarPlayerPosMinX(const LiveActor*);
47u32 calcPlayerListOrderByDistance(const LiveActor*, const LiveActor**, u32);
48u32 calcAlivePlayerActor(const LiveActor*, const LiveActor**, u32);
49LiveActor* tryFindNearestPlayerActorCondition(const LiveActor*, bool (*)(const LiveActor*));
50bool tryFindNearestPlayerPosCondition(sead::Vector3f*, const LiveActor*,
51 bool (*)(const LiveActor*));
52bool isResetablePlayerPos(const LiveActor*, const sead::Vector3f&, f32, f32);
53bool isResetablePlayerPos(const LiveActor*, f32);
54void faceToPlayer(LiveActor*);
55} // namespace al
56
57namespace alPlayerFunction {
58void registerPlayer(al::LiveActor*, al::PadRumbleKeeper*);
59bool isFullPlayerHolder(al::LiveActor*);
60s32 findPlayerHolderIndex(const al::LiveActor*);
61s32 findPlayerHolderIndex(const al::HitSensor*);
62bool isPlayerActor(const al::LiveActor*);
63bool isPlayerActor(const al::HitSensor*);
64} // namespace alPlayerFunction
65