1#include "Project/Camera/CameraAngleVerticalRequester.h"
2
3#include "Library/Area/AreaObj.h"
4#include "Library/Area/AreaObjUtil.h"
5#include "Library/Placement/PlacementFunction.h"
6
7namespace al {
8
9CameraAngleVerticalRequester::CameraAngleVerticalRequester() = default;
10
11void CameraAngleVerticalRequester::init(AreaObjDirector* areaObjDirector) {
12 mAreaObjDirector = areaObjDirector;
13}
14
15void CameraAngleVerticalRequester::initAfterPlacement() {
16 mRequestAreaGroup = tryFindAreaObjGroup(areaUser: this, name: "CameraAngleVerticalRequestArea");
17}
18
19void CameraAngleVerticalRequester::update(const sead::Vector3f& position) {
20 if (mRequestAreaGroup == nullptr)
21 return;
22 AreaObj* areaObj = tryGetAreaObj(group: mRequestAreaGroup, position);
23 if (areaObj != mRequestArea) {
24 mRequestArea = areaObj;
25 mFramesUnchanged = -1;
26 if (areaObj != nullptr)
27 getArg(arg: &mAngleVertical, placementInfo: *mRequestArea->getPlacementInfo(), key: "AngleVertical");
28 }
29 mFramesUnchanged++;
30}
31} // namespace al
32