1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class AreaObjGroup;
7class AreaObj;
8class SwitchAreaTargetInfo;
9
10class SwitchKeepOnAreaGroup {
11public:
12 SwitchKeepOnAreaGroup(AreaObjGroup* areaObjGroup);
13
14 void update(const SwitchAreaTargetInfo* info);
15 void update(const sead::Vector3f& playerPos);
16
17 virtual void selectTargetPosArray(bool* outCheckAllPos, sead::Vector3f** outTargetPos,
18 s32* outTargetPosCount, const AreaObj* areaObj,
19 const SwitchAreaTargetInfo* info);
20
21 virtual bool isExternalCondition() const { return true; }
22
23private:
24 AreaObjGroup* mAreaObjGroup;
25 AreaObj** mOnAreaObjs = nullptr;
26 s32 mOnAreaObjSize = 0;
27 s32 mOnAreaObjCount = 0;
28};
29
30static_assert(sizeof(SwitchKeepOnAreaGroup) == 0x20);
31} // namespace al
32