OdysseyDecomp/lib/al/Library/Camera/CameraPoserFactory.h
Fuzzy2319 fa965d8f77
Some checks are pending
Compile and verify functions / compile_verify (push) Waiting to run
Copy headers to separate repo / copy_headers (push) Waiting to run
decomp-dev / publish_progress_decomp_dev (1.0) (push) Waiting to run
lint / clang-format (push) Waiting to run
lint / custom-lint (push) Waiting to run
Check and verify that setup works on NixOS / nixos_verify (push) Waiting to run
progress / publish_progress (push) Waiting to run
testcompile / test_compile (push) Waiting to run
Trigger full-sync on the tracker repo on push / api-trigger-workflow (push) Waiting to run
Library/Camera: Implement CameraPoserFactory (#1161)
2026-05-08 01:15:27 +02:00

42 lines
1.4 KiB
C++

#pragma once
#include "Library/Factory/Factory.h"
namespace al {
class CameraPoser;
class CameraPoserEntrance;
using CameraPoserCreatorFunction = CameraPoser* (*)(const char* cameraPoserName);
class CameraPoserFactory : public Factory<CameraPoserCreatorFunction> {
public:
CameraPoserFactory(const char* factoryName);
virtual CameraPoserEntrance* createEntranceCameraPoser() const;
private:
s32 _1c = 0;
};
} // namespace al
namespace alCameraPoserFactoryFunction {
void initAndCreateTableFromOtherTable2(
al::CameraPoserFactory* factory,
const al::NameToCreator<al::CameraPoserCreatorFunction>* table1, s32 table1Count,
const al::NameToCreator<al::CameraPoserCreatorFunction>* table2, s32 table2Count);
void initAndCreateTableWithAnotherFactory(
al::CameraPoserFactory* factory, const al::CameraPoserFactory* otherFactory,
const al::NameToCreator<al::CameraPoserCreatorFunction>* table, s32 tableCount);
void initAndCreateTableWithPresetPosers(
al::CameraPoserFactory* factory, const al::NameToCreator<al::CameraPoserCreatorFunction>* table,
s32 tableCount);
template <s32 N1, s32 N2>
inline void initAndCreateTableFromOtherTable(
al::CameraPoserFactory* out,
const al::NameToCreator<al::CameraPoserCreatorFunction> (&table1)[N1],
const al::NameToCreator<al::CameraPoserCreatorFunction> (&table2)[N2]) {
initAndCreateTableFromOtherTable2(out, table1, N1, table2, N2);
}
} // namespace alCameraPoserFactoryFunction