mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-05-06 23:38:32 +00:00
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <prim/seadSafeString.h>
|
|
|
|
namespace al {
|
|
class Resource;
|
|
class ByamlIter;
|
|
class CameraTicketId;
|
|
class PlacementId;
|
|
|
|
class CameraResourceHolder {
|
|
public:
|
|
struct Entry {
|
|
ByamlIter* cameraParam = nullptr;
|
|
ByamlIter* interpoleParam = nullptr;
|
|
sead::FixedSafeString<128> stageName = {""};
|
|
};
|
|
|
|
enum ParamType : s32 {
|
|
DefaultTickets = 0,
|
|
StartTickets = 2,
|
|
Tickets // any other value
|
|
};
|
|
|
|
CameraResourceHolder(const char* stageName, s32 maxResources);
|
|
|
|
bool tryInitCameraResource(const Resource* resource, s32 unused);
|
|
bool tryFindParamResource(ByamlIter* ticket, const CameraTicketId* ticketId,
|
|
s32 paramType) const;
|
|
bool tryFindCameraParamList(ByamlIter* paramList, const PlacementId* placementId,
|
|
const char* paramName) const;
|
|
s32 calcEntranceCameraParamNum() const;
|
|
bool tryFindCameraParamList(ByamlIter* paramList, const char* stageName,
|
|
const char* paramName) const;
|
|
void getEntranceCameraParamResource(ByamlIter* ticket, s32 index) const;
|
|
Entry* findCameraResource(const char* stageName) const;
|
|
Entry* tryFindCameraResource(const char* stageName) const;
|
|
Entry* tryFindCameraResource(const PlacementId* placementId) const;
|
|
|
|
private:
|
|
const char* mStageName;
|
|
s32 mMaxEntries;
|
|
s32 mNumEntries = 0;
|
|
Entry** mEntries;
|
|
};
|
|
|
|
} // namespace al
|