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
57 lines
1.1 KiB
C++
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;
|
|
}
|