Shipwright/soh/soh/resource/importer/scenecommand/SetCameraSettingsFactory.cpp
Pepe20129 92467b87b5
Add scene command XML parsers (#4054)
* Add scene command parsers

* Move logging & add logging cvar

* Use new CVAR_DEVELOPER_TOOLS macro

* Update soh/soh/resource/logging/SceneCommandLoggers.h

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2024-04-28 20:58:12 -04:00

34 lines
1.4 KiB
C++

#include "soh/resource/importer/scenecommand/SetCameraSettingsFactory.h"
#include "soh/resource/type/scenecommand/SetCameraSettings.h"
#include "soh/resource/logging/SceneCommandLoggers.h"
#include "spdlog/spdlog.h"
namespace SOH {
std::shared_ptr<LUS::IResource> SetCameraSettingsFactory::ReadResource(std::shared_ptr<LUS::ResourceInitData> initData,
std::shared_ptr<LUS::BinaryReader> reader) {
auto setCameraSettings = std::make_shared<SetCameraSettings>(initData);
ReadCommandId(setCameraSettings, reader);
setCameraSettings->settings.cameraMovement = reader->ReadInt8();
setCameraSettings->settings.worldMapArea = reader->ReadInt32();
if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("ResourceLogging"), 0)) {
LogCameraSettingsAsXML(setCameraSettings);
}
return setCameraSettings;
}
std::shared_ptr<LUS::IResource> SetCameraSettingsFactoryXML::ReadResource(std::shared_ptr<LUS::ResourceInitData> initData,
tinyxml2::XMLElement* reader) {
auto setCameraSettings = std::make_shared<SetCameraSettings>(initData);
setCameraSettings->cmdId = SceneCommandID::SetCameraSettings;
setCameraSettings->settings.cameraMovement = reader->IntAttribute("CameraMovement");
setCameraSettings->settings.worldMapArea = reader->IntAttribute("WorldMapArea");
return setCameraSettings;
}
} // namespace SOH