mirror of
https://github.com/aimrebirth/tools.git
synced 2026-04-15 01:43:25 +00:00
Format pak.h. Update to the latest data manager.
This commit is contained in:
parent
26588ebbfd
commit
540af823f4
4 changed files with 271 additions and 275 deletions
|
|
@ -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++;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue