mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-01 13:52:19 -05:00
c7ccd6dbff
Properly routes SPDLog to the console. Creates an API to be able to send command responses back to the console. Cleans up the console UI, hiding options when not needed. Removes stdout console sink for Windows.
63 lines
1.7 KiB
C++
63 lines
1.7 KiB
C++
#include "Resource.h"
|
|
#include "DisplayList.h"
|
|
#include "ResourceMgr.h"
|
|
#include "spdlog/spdlog.h"
|
|
#include "Utils/BinaryReader.h"
|
|
#include "Lib/tinyxml2/tinyxml2.h"
|
|
#include "Lib/Fast3D/U64/PR/ultra64/gbi.h"
|
|
|
|
namespace Ship
|
|
{
|
|
void ResourceFile::ParseFileBinary(BinaryReader* reader, Resource* res)
|
|
{
|
|
id = reader->ReadUInt64();
|
|
res->id = id;
|
|
reader->ReadUInt32(); // Resource minor version number
|
|
reader->ReadUInt64(); // ROM CRC
|
|
reader->ReadUInt32(); // ROM Enum
|
|
|
|
// Reserved for future file format versions...
|
|
reader->Seek(64, SeekOffsetType::Start);
|
|
}
|
|
void ResourceFile::ParseFileXML(tinyxml2::XMLElement* reader, Resource* res)
|
|
{
|
|
id = reader->Int64Attribute("id", -1);
|
|
}
|
|
|
|
void ResourceFile::WriteFileBinary(BinaryWriter* writer, Resource* res)
|
|
{
|
|
|
|
}
|
|
|
|
void ResourceFile::WriteFileXML(tinyxml2::XMLElement* writer, Resource* res)
|
|
{
|
|
|
|
}
|
|
|
|
Resource::~Resource()
|
|
{
|
|
free(cachedGameAsset);
|
|
cachedGameAsset = nullptr;
|
|
|
|
for (size_t i = 0; i < patches.size(); i++)
|
|
{
|
|
const std::string* hashStr = resMgr->HashToString(patches[i].crc);
|
|
if (hashStr == nullptr)
|
|
continue;
|
|
|
|
auto resShared = resMgr->GetCachedFile(hashStr->c_str());
|
|
if (resShared != nullptr)
|
|
{
|
|
auto res = (Ship::DisplayList*)resShared.get();
|
|
|
|
Gfx* gfx = &((Gfx*)res->instructions.data())[patches[i].index];
|
|
gfx->words.w1 = patches[i].origData;
|
|
}
|
|
}
|
|
|
|
patches.clear();
|
|
|
|
if (file != nullptr)
|
|
SPDLOG_TRACE("Deconstructor called on file %s\n", file->path.c_str());
|
|
}
|
|
} |