1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6#include "Library/Scene/ISceneObj.h"
7
8#include "Scene/SceneObjFactory.h"
9
10namespace al {
11class IUseSceneObjHolder;
12} // namespace al
13
14class CoinCollect;
15class CoinCollect2D;
16class CoinCollectHintObj;
17
18class CoinCollectHolder : public al::ISceneObj {
19public:
20 static constexpr s32 sSceneObjId = SceneObjID_CoinCollectHolder;
21
22 CoinCollectHolder();
23
24 const char* getSceneObjName() const override;
25
26 void registerCoinCollect(CoinCollect*);
27 void registerCoinCollect2D(CoinCollect2D*);
28 void registerHintObj(CoinCollectHintObj*);
29
30 CoinCollect* tryFindAliveCoinCollect(const sead::Vector3f&, bool) const;
31 CoinCollect* tryFindAliveCoinCollect(const sead::Vector3f&, f32, f32, bool) const;
32 CoinCollect* tryFindDeadButHintEnableCoinCollect() const;
33 CoinCollect2D* tryFindAliveCoinCollect2D(const sead::Vector3f&, bool) const;
34 CoinCollect2D* tryFindAliveCoinCollect2D(const sead::Vector3f&, f32, f32, bool) const;
35 bool tryFindExStageHintObjTrans(sead::Vector3f*, const char*);
36};
37
38namespace rs {
39CoinCollectHolder* createCoinCollectHolder(const al::IUseSceneObjHolder* objHolder);
40} // namespace rs
41