Improve ORGS and MMS_C_CONFIG segments.

This commit is contained in:
lzwdgc 2019-03-20 04:21:44 +03:00
parent 5c88d06a62
commit 0c24d18b92
2 changed files with 48 additions and 49 deletions

View file

@ -257,6 +257,13 @@ void mech_segment::ammo_count::load(const buffer &b)
void mech_segment::mech::glider_desc::load(const buffer &b) void mech_segment::mech::glider_desc::load(const buffer &b)
{ {
READ(b, unk15_1); // size?
b.read_vector(equipments);
READ(b, unk40);
READ(b, unk4);
// //
glider.load(b); glider.load(b);
//if (isPlayer()) //if (isPlayer())
@ -388,13 +395,6 @@ void mech_segment::mech::load(const buffer &b)
if (unk14 == 0) if (unk14 == 0)
return; return;
READ(b, unk15_1); // size?
b.read_vector(equipments);
READ(b, unk40);
READ(b, unk4);
gl.load(b); gl.load(b);
} }
@ -471,6 +471,30 @@ void builds_segment::load(const buffer &b)
b.read_vector(builds); b.read_vector(builds);
} }
void orgs_segment::org::base::mech::load(const buffer &b)
{
READ_STRING(b, name);
}
void orgs_segment::org::base::load(const buffer &b)
{
READ_STRING(b, name);
READ(b, unk2);
READ(b, unk3);
READ(b, unk4);
b.read_vector(mechs);
u32 n;
u32 unk0;
READ(b, n);
while (n--)
READ(b, unk0);
READ_STRING(b, org);
READ(b, unk5);
READ(b, unk6);
}
void orgs_segment::org::load(const buffer &b) void orgs_segment::org::load(const buffer &b)
{ {
READ(b, unk0); READ(b, unk0);
@ -624,17 +648,11 @@ void mms_state_segment::load(const buffer &b)
READ_STRING(b, name); READ_STRING(b, name);
} }
void mms_c_config_segment::object::load(const buffer &b)
{
READ(b, unk0);
gl.load(b);
}
void mms_c_config_segment::load(const buffer &b) void mms_c_config_segment::load(const buffer &b)
{ {
while (!b.eof()) while (!b.eof())
{ {
object o; mech_segment::mech::glider_desc o;
o.load(b); o.load(b);
objects.push_back(o); objects.push_back(o);
} }

View file

@ -394,6 +394,13 @@ struct mech_segment : public segment
{ {
struct glider_desc struct glider_desc
{ {
uint32_t unk15_1; // size of segment (glider_desc struct)
std::vector<equipment> equipments;
float unk40;
uint32_t unk4[7];
// glider // glider
// g_unk = glider unknown // g_unk = glider unknown
@ -456,14 +463,9 @@ struct mech_segment : public segment
uint32_t unk13[3]; uint32_t unk13[3];
uint8_t unk14; uint8_t unk14;
uint32_t unk15; uint32_t unk15;
uint32_t unk15_1;
uint32_t unk16 = 0; uint32_t unk16 = 0;
std::vector<equipment> equipments;
float unk40;
uint32_t unk4[7];
glider_desc gl; glider_desc gl;
void load(const buffer &b); void load(const buffer &b);
@ -557,19 +559,8 @@ struct orgs_segment : public segment
struct mech struct mech
{ {
std::string name; std::string name;
u32 unk0[2];
std::string org;
u32 unk1;
f32 unk2;
void load(const buffer &b) void load(const buffer &b);
{
READ_STRING(b, name);
READ(b, unk0);
READ_STRING(b, org);
READ(b, unk1);
READ(b, unk2);
}
}; };
std::string name; std::string name;
@ -577,15 +568,13 @@ struct orgs_segment : public segment
u8 unk3; u8 unk3;
uint32_t unk4[2]; uint32_t unk4[2];
std::vector<mech> mechs; std::vector<mech> mechs;
// u32 n;
// u32 unk0[n];
std::string org;
u32 unk5;
f32 unk6;
void load(const buffer &b) void load(const buffer &b);
{
READ_STRING(b, name);
READ(b, unk2);
READ(b, unk3);
READ(b, unk4);
b.read_vector(mechs);
}
}; };
uint32_t unk0[9]; uint32_t unk0[9];
@ -657,15 +646,7 @@ struct mms_state_segment : public segment
struct mms_c_config_segment : public segment struct mms_c_config_segment : public segment
{ {
struct object std::vector<mech_segment::mech::glider_desc> objects;
{
u32 unk0[10]; // maybe attach to glider_desc?
mech_segment::mech::glider_desc gl;
void load(const buffer &b);
};
std::vector<object> objects;
void load(const buffer &b); void load(const buffer &b);
}; };