rodecomp/Source/Resource/ImfResource.cpp
ragnarok-clanker 73cc345898 Decompile 7 functions in Source/Contents/MapSkyMgr.cpp, Source/Contents/MapSkyMgr.h, ...
Batch #1447 by Yommy: 0 byte-identical, 7 confirmed by peer review.

- fn_03435 CMapSkyMgr::LoadData: logic confirmed by peer review
- fn_23794 CSession::GetAccessoryName: logic confirmed by peer review
- fn_17667 WorldActors::Lookup: logic confirmed by peer review
- fn_17698 WorldObjects::SendObjectMessage: logic confirmed by peer review
- fn_17865 CPathFinder::~CPathFinder: logic confirmed by peer review
- fn_18334 LuaScript::TableField: logic confirmed by peer review
- fn_07925 CImfRes::Load: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker
Reviewed-by: ragnarok-clanker
2026-10-28 13:18:31 +00:00

57 lines
1.1 KiB
C++

#include "Resource/ImfResource.h"
#include "File/File.h"
// OFFSET: 0x0074F190
// FUNCTION: fn_07925
bool CImfRes::Load(const char* name) {
CFile file;
float version;
if (!file.Open(name, 0, true, false)) {
return false;
}
file.Read(&version, 4);
if (!(1.01f <= version)) {
return false;
}
int checksum;
file.Read(&checksum, 4);
int maxLayer;
file.Read(&maxLayer, 4);
for (int layer = 0; layer <= maxLayer; ++layer) {
std::vector<ImfData> actions;
int numAction;
file.Read(&numAction, 4);
this->m_maxAction[layer] = numAction;
for (int action = 0; action < numAction; ++action) {
ImfData data;
int numMotion;
file.Read(&numMotion, 4);
this->m_maxMotion[layer][action] = numMotion;
for (int motion = 0; motion < numMotion; ++motion) {
int value;
file.Read(&value, 4);
data.priority.push_back(value);
file.Read(&value, 4);
data.cx.push_back(value);
file.Read(&value, 4);
data.cy.push_back(value);
}
actions.push_back(data);
}
this->m_imfData.push_back(actions);
}
file.Close();
return true;
}