mirror of
https://github.com/aimrebirth/tools.git
synced 2026-04-14 17:33:25 +00:00
Update.
This commit is contained in:
parent
c0e6a2226e
commit
74bffbda51
5 changed files with 48 additions and 22 deletions
|
|
@ -73,15 +73,6 @@ void weather::load(const buffer &b)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void weather_group::load(const buffer &b)
|
|
||||||
{
|
|
||||||
READ(b, n_segs);
|
|
||||||
segments.resize(n_segs);
|
|
||||||
READ_STRING_N(b, name, 0xA0);
|
|
||||||
for (auto &s : segments)
|
|
||||||
s.load(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
void water::load(const buffer &b)
|
void water::load(const buffer &b)
|
||||||
{
|
{
|
||||||
READ(b, unk0);
|
READ(b, unk0);
|
||||||
|
|
|
||||||
|
|
@ -135,11 +135,21 @@ struct weather
|
||||||
|
|
||||||
struct weather_group
|
struct weather_group
|
||||||
{
|
{
|
||||||
|
uint32_t unk0; // racing
|
||||||
uint32_t n_segs;
|
uint32_t n_segs;
|
||||||
std::string name;
|
std::string name;
|
||||||
std::vector<weather> segments;
|
std::vector<weather> segments;
|
||||||
|
|
||||||
void load(const buffer &b);
|
void load(const buffer &b, bool aim_racing = false) {
|
||||||
|
if (aim_racing) {
|
||||||
|
READ(b, unk0);
|
||||||
|
}
|
||||||
|
READ(b, n_segs);
|
||||||
|
segments.resize(n_segs);
|
||||||
|
READ_STRING_N(b, name, 0xA0);
|
||||||
|
for (auto &s : segments)
|
||||||
|
s.load(b);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct water
|
struct water
|
||||||
|
|
|
||||||
|
|
@ -42,19 +42,16 @@ void water_segment::load(const buffer &b)
|
||||||
wg.load(b);
|
wg.load(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
void weather_segment::load(const buffer &b)
|
|
||||||
{
|
|
||||||
wg.load(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
header_segment *header::create_segment(const buffer &b)
|
header_segment *header::create_segment(const buffer &b)
|
||||||
{
|
{
|
||||||
HeaderSegmentType type;
|
HeaderSegmentType type;
|
||||||
READ(b, type);
|
READ(b, type);
|
||||||
|
|
||||||
header_segment *segment = 0;
|
header_segment *segment = 0;
|
||||||
switch (type)
|
switch (type) {
|
||||||
{
|
/*case HeaderSegmentType::unk0:
|
||||||
|
segment = new unk_segment;
|
||||||
|
break;*/
|
||||||
case HeaderSegmentType::water:
|
case HeaderSegmentType::water:
|
||||||
segment = new water_segment;
|
segment = new water_segment;
|
||||||
break;
|
break;
|
||||||
|
|
@ -76,7 +73,7 @@ header_segment *header::create_segment(const buffer &b)
|
||||||
|
|
||||||
void header::load(const buffer &b)
|
void header::load(const buffer &b)
|
||||||
{
|
{
|
||||||
READ(b, unk0);
|
READ(b, version);
|
||||||
READ_WSTRING(b, name1);
|
READ_WSTRING(b, name1);
|
||||||
READ_WSTRING(b, name2);
|
READ_WSTRING(b, name2);
|
||||||
READ(b, width);
|
READ(b, width);
|
||||||
|
|
@ -84,6 +81,10 @@ void header::load(const buffer &b)
|
||||||
READ(b, n_header_segs);
|
READ(b, n_header_segs);
|
||||||
segments.resize(n_header_segs);
|
segments.resize(n_header_segs);
|
||||||
READ_STRING_N(b, name, 0xA0);
|
READ_STRING_N(b, name, 0xA0);
|
||||||
|
if (version == ver::aim_racing) {
|
||||||
|
uint32_t unk0[4];
|
||||||
|
READ(b, unk0);
|
||||||
|
}
|
||||||
for (auto &s : segments)
|
for (auto &s : segments)
|
||||||
{
|
{
|
||||||
s = create_segment(b);
|
s = create_segment(b);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ using Height = float;
|
||||||
|
|
||||||
enum class HeaderSegmentType : uint32_t
|
enum class HeaderSegmentType : uint32_t
|
||||||
{
|
{
|
||||||
|
//unk0 = 0,
|
||||||
water = 1,
|
water = 1,
|
||||||
weather = 2,
|
weather = 2,
|
||||||
};
|
};
|
||||||
|
|
@ -41,29 +42,47 @@ enum class HeaderSegmentType : uint32_t
|
||||||
struct header_segment
|
struct header_segment
|
||||||
{
|
{
|
||||||
HeaderSegmentType type;
|
HeaderSegmentType type;
|
||||||
uint32_t unk0;
|
uint32_t unk0; // version?
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
|
|
||||||
virtual void load(const buffer &b) = 0;
|
virtual void load(const buffer &b) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct unk_segment : public header_segment {
|
||||||
|
std::string name;
|
||||||
|
|
||||||
|
void load(const buffer &b) override {
|
||||||
|
uint32_t unk0[6];
|
||||||
|
|
||||||
|
READ(b, unk0);
|
||||||
|
READ_STRING_N(b, name, 0xA0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct water_segment : public header_segment
|
struct water_segment : public header_segment
|
||||||
{
|
{
|
||||||
water_group wg;
|
water_group wg;
|
||||||
|
|
||||||
virtual void load(const buffer &b) override;
|
void load(const buffer &b) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct weather_segment : public header_segment
|
struct weather_segment : public header_segment
|
||||||
{
|
{
|
||||||
weather_group wg;
|
weather_group wg;
|
||||||
|
|
||||||
virtual void load(const buffer &b) override;
|
void load(const buffer &b) override {
|
||||||
|
wg.load(b);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct header
|
struct header
|
||||||
{
|
{
|
||||||
uint32_t unk0;
|
enum class ver : uint32_t {
|
||||||
|
aim12 = 0x100,
|
||||||
|
aim_racing = 0x101,
|
||||||
|
};
|
||||||
|
|
||||||
|
ver version;
|
||||||
std::wstring name1;
|
std::wstring name1;
|
||||||
std::wstring name2;
|
std::wstring name2;
|
||||||
uint32_t width;
|
uint32_t width;
|
||||||
|
|
|
||||||
|
|
@ -475,6 +475,11 @@ void block::header::load(const buffer &b)
|
||||||
else
|
else
|
||||||
READ(b, unk2[2]); // unk4_0 - related to unk4 - some vector3f
|
READ(b, unk2[2]); // unk4_0 - related to unk4 - some vector3f
|
||||||
READ(b, unk4);
|
READ(b, unk4);
|
||||||
|
if (gameType == GameType::AimR) {
|
||||||
|
// not always?
|
||||||
|
float unk;
|
||||||
|
READ(b, unk);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void block::load(const buffer &b)
|
void block::load(const buffer &b)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue