jak2 support

This commit is contained in:
water111
2025-06-18 21:02:30 -04:00
parent d1a3aa1761
commit ca19e25b7f
6 changed files with 338 additions and 224 deletions
+15 -3
View File
@@ -587,9 +587,7 @@ void MercModelGroup::serialize(Serializer& ser) {
ser.from_pod_vector(&vertices);
}
void ShadowModel::serialize(Serializer& ser) {
ser.from_str(&name);
ser.from_ptr(&max_bones);
void ShadowModelFragment::serialize(Serializer& ser) {
ser.from_ptr(&first_vertex);
ser.from_ptr(&num_one_bone_vertices);
ser.from_ptr(&num_two_bone_vertices);
@@ -599,6 +597,20 @@ void ShadowModel::serialize(Serializer& ser) {
ser.from_pod_vector(&double_edges);
}
void ShadowModel::serialize(Serializer& ser) {
ser.from_str(&name);
ser.from_ptr(&max_bones);
if (ser.is_saving()) {
ser.save<size_t>(fragments.size());
} else {
fragments.resize(ser.load<size_t>());
}
for (auto& frag : fragments) {
frag.serialize(ser);
}
}
void ShadowModelGroup::serialize(Serializer& ser) {
ser.from_pod_vector(&vertices);
if (ser.is_saving()) {
+10 -7
View File
@@ -634,18 +634,21 @@ struct ShadowEdge {
u8 tri[2];
};
struct ShadowModelFragment {
std::vector<ShadowTri> single_tris, double_tris;
std::vector<ShadowEdge> single_edges, double_edges;
u32 first_vertex;
u32 num_one_bone_vertices;
u32 num_two_bone_vertices;
void serialize(Serializer& ser);
};
struct ShadowModel {
static constexpr int kMaxVertices = 254;
static constexpr int kMaxTris = 254;
std::string name;
u32 max_bones;
std::vector<ShadowTri> single_tris, double_tris;
std::vector<ShadowEdge> single_edges, double_edges;
u32 first_vertex;
u32 num_one_bone_vertices;
u32 num_two_bone_vertices;
std::vector<ShadowModelFragment> fragments;
void serialize(Serializer& ser);
};