Files
Shiip-of-Hakinian-Espanol/soh/soh/resource/importer/scenecommand/SetSpecialObjectsFactory.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

35 lines
1.5 KiB
C++

#include "soh/resource/importer/scenecommand/SetSpecialObjectsFactory.h"
#include "soh/resource/type/scenecommand/SetSpecialObjects.h"
#include "soh/resource/logging/SceneCommandLoggers.h"
#include "spdlog/spdlog.h"
namespace SOH {
std::shared_ptr<LUS::IResource> SetSpecialObjectsFactory::ReadResource(std::shared_ptr<LUS::ResourceInitData> initData,
std::shared_ptr<LUS::BinaryReader> reader) {
auto setSpecialObjects = std::make_shared<SetSpecialObjects>(initData);
ReadCommandId(setSpecialObjects, reader);
setSpecialObjects->specialObjects.elfMessage = reader->ReadInt8();
setSpecialObjects->specialObjects.globalObject = reader->ReadInt16();
if (CVarGetInteger(CVAR_DEVELOPER_TOOLS("ResourceLogging"), 0)) {
LogSpecialObjectsAsXML(setSpecialObjects);
}
return setSpecialObjects;
}
std::shared_ptr<LUS::IResource> SetSpecialObjectsFactoryXML::ReadResource(std::shared_ptr<LUS::ResourceInitData> initData,
tinyxml2::XMLElement* reader) {
auto setSpecialObjects = std::make_shared<SetSpecialObjects>(initData);
setSpecialObjects->cmdId = SceneCommandID::SetSpecialObjects;
setSpecialObjects->specialObjects.elfMessage = reader->IntAttribute("ElfMessage");
setSpecialObjects->specialObjects.globalObject = reader->IntAttribute("GlobalObject");
return setSpecialObjects;
}
} // namespace SOH