Format pak.h. Update to the latest data manager.

This commit is contained in:
lzwdgc 2016-06-01 00:45:03 +03:00
parent 26588ebbfd
commit 540af823f4
4 changed files with 271 additions and 275 deletions

View file

@ -154,7 +154,7 @@ void write_mmo(std::string db, const storage &s)
} }
else else
{ {
bld_ids[o] = iter->getId(); bld_ids[o] = iter->second->getId();
} }
} }
for (auto &object : segment->objects) for (auto &object : segment->objects)
@ -178,11 +178,11 @@ void write_mmo(std::string db, const storage &s)
mb.scale = ASSIGN(object->m_rotate_z[2].z, 1); mb.scale = ASSIGN(object->m_rotate_z[2].z, 1);
auto i = find_if(storage->mapBuildings.begin(), storage->mapBuildings.end(), [&](const auto &p) auto i = find_if(storage->mapBuildings.begin(), storage->mapBuildings.end(), [&](const auto &p)
{ {
return *p.second.get() == mb; return *p.second == mb;
}); });
if (i == storage->mapBuildings.end()) if (i == storage->mapBuildings.end())
{ {
auto mb2 = storage->addMapBuilding(storage->maps[map_id].get()); auto mb2 = storage->addMapBuilding(storage->maps[map_id]);
mb.setId(mb2->getId()); mb.setId(mb2->getId());
*mb2 = mb; *mb2 = mb;
inserted++; inserted++;
@ -216,7 +216,7 @@ void write_mmo(std::string db, const storage &s)
bld_ids[o] = bld->getId(); bld_ids[o] = bld->getId();
} }
else else
bld_ids[o] = iter->getId(); bld_ids[o] = iter->second->getId();
} }
for (auto &object : segment->objects) for (auto &object : segment->objects)
{ {
@ -239,11 +239,11 @@ void write_mmo(std::string db, const storage &s)
mb.scale = ASSIGN(object->m_rotate_z[2].z, 1); mb.scale = ASSIGN(object->m_rotate_z[2].z, 1);
auto i = find_if(storage->mapObjects.begin(), storage->mapObjects.end(), [&](const auto &p) auto i = find_if(storage->mapObjects.begin(), storage->mapObjects.end(), [&](const auto &p)
{ {
return *p.second.get() == mb; return *p.second == mb;
}); });
if (i == storage->mapObjects.end()) if (i == storage->mapObjects.end())
{ {
auto mb2 = storage->addMapObject(storage->maps[map_id].get()); auto mb2 = storage->addMapObject(storage->maps[map_id]);
mb.setId(mb2->getId()); mb.setId(mb2->getId());
*mb2 = mb; *mb2 = mb;
inserted++; inserted++;

View file

@ -11,7 +11,8 @@
#define BYTEn(x, n) (*((_BYTE *)&(x) + n)) #define BYTEn(x, n) (*((_BYTE *)&(x) + n))
#define BYTE1(x) BYTEn(x, 1) #define BYTE1(x) BYTEn(x, 1)
template<class T> int8_t __SETS__(T x) template <class T>
int8_t __SETS__(T x)
{ {
if (sizeof(T) == 1) if (sizeof(T) == 1)
return int8_t(x) < 0; return int8_t(x) < 0;
@ -22,7 +23,8 @@ template<class T> int8_t __SETS__(T x)
return int64_t(x) < 0; return int64_t(x) < 0;
} }
template<class T, class U> int8_t __OFSUB__(T x, U y) template <class T, class U>
int8_t __OFSUB__(T x, U y)
{ {
if (sizeof(T) < sizeof(U)) if (sizeof(T) < sizeof(U))
{ {
@ -90,8 +92,7 @@ char *decode_f1(char *input, int size, char *output)
{ {
*v6++ = *v12++; *v6++ = *v12++;
--v13; --v13;
} } while (v13);
while ( v13 );
} }
} }
else else
@ -100,8 +101,7 @@ char *decode_f1(char *input, int size, char *output)
} }
++v5; ++v5;
input = (char *)((signed int)input >> 1); input = (char *)((signed int)input >> 1);
} } while (result < v4);
while ( result < v4 );
} }
return result; return result;
} }
@ -146,8 +146,7 @@ char decode_f2(char *input, int size, char *output)
LOBYTE(c) = *v10; LOBYTE(c) = *v10;
*v6++ = *v10++; *v6++ = *v10++;
--c_3; --c_3;
} } while (c_3);
while ( c_3 );
} }
} }
else else
@ -160,8 +159,7 @@ char decode_f2(char *input, int size, char *output)
*v6++ = c; *v6++ = c;
++v5; ++v5;
} }
} } while (v5 < &input[size]);
while ( v5 < &input[size] );
} }
return c; return c;
} }
@ -243,8 +241,7 @@ int decode_f3(char *input, int size, char *output)
LABEL_13: LABEL_13:
result = v22; result = v22;
++idx; ++idx;
} } while (idx < v22);
while ( idx < v22 );
} }
return result; return result;
} }

View file

@ -27,15 +27,14 @@ void unpak(string fn)
return; return;
pak p; pak p;
p.load(f); p.load(f);
auto read_write_any_file = [&](record &file) for (auto &f : p.files)
{ {
record &file = f.second;
cout << "Unpacking " << file.name << "\n"; cout << "Unpacking " << file.name << "\n";
vector<char> buf(file.len); vector<char> buf(file.len);
file.read(&p, &buf[0], file.len); file.read(&p, &buf[0], file.len);
file.write(fn + ".dir", buf); file.write(fn + ".dir", buf);
}; };
for (auto &f : p.files)
read_write_any_file(f.second);
fclose(f); fclose(f);
} }