From cccfe4ca01188793906aa5f6f675a41af64528fd Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 10 Jun 2024 02:10:45 +0300 Subject: [PATCH] `object`: made `num` signed --- src/CRE/auth_3d.cpp | 4 +- src/CRE/mdl/disp_manager.cpp | 4 +- src/CRE/object.cpp | 167 ++++--- src/CRE/object.hpp | 20 +- src/CRE/rob/ex_block.cpp | 14 +- src/CRE/rob/rob.cpp | 26 +- src/DivaGL/bone_data.hpp | 24 +- src/KKdLib/database/stage.cpp | 4 +- src/KKdLib/obj.cpp | 870 +++++++++++++++++----------------- src/KKdLib/obj.hpp | 48 +- src/ReDIVA/glitter_editor.cpp | 6 +- src/ReDIVA/x_pv_game.cpp | 38 +- 12 files changed, 612 insertions(+), 613 deletions(-) diff --git a/src/CRE/auth_3d.cpp b/src/CRE/auth_3d.cpp index 506cdaae..d2dead68 100644 --- a/src/CRE/auth_3d.cpp +++ b/src/CRE/auth_3d.cpp @@ -6640,7 +6640,7 @@ static void auth_3d_object_hrc_load(auth_3d* auth, auth_3d_object_hrc* oh, for (auth_3d_object_node& i : oh->node) { i.bone_id = -1; uint64_t name_hash = hash_string_xxh3_64bits(i.name); - for (uint32_t j = 0; j < skin->num_bone; j++) + for (int32_t j = 0; j < skin->num_bone; j++) if (hash_utf8_xxh3_64bits(skin->bone_array[j].name) == name_hash) { i.bone_id = skin->bone_array[j].id; break; @@ -6724,7 +6724,7 @@ static void auth_3d_object_instance_load(auth_3d* auth, auth_3d_object_instance* oi->mats.resize(skin->num_bone); mat4* mats = oi->mats.data(); - for (uint32_t i = 0; i < skin->num_bone; i++) { + for (int32_t i = 0; i < skin->num_bone; i++) { uint64_t name_hash = hash_utf8_xxh3_64bits(skin->bone_array[i].name); for (auth_3d_object_node& j : moh->node) if (hash_string_xxh3_64bits(j.name) == name_hash) { diff --git a/src/CRE/mdl/disp_manager.cpp b/src/CRE/mdl/disp_manager.cpp index 60e86e5c..dbdfc02d 100644 --- a/src/CRE/mdl/disp_manager.cpp +++ b/src/CRE/mdl/disp_manager.cpp @@ -2375,7 +2375,7 @@ namespace mdl { } culling.passed.objects++; - for (uint32_t i = 0; i < object->num_mesh; i++) { + for (int32_t i = 0; i < object->num_mesh; i++) { obj_mesh* mesh = &object->mesh_array[i]; obj_mesh* mesh_morph = 0; if (obj_vertex_buf && obj_morph_vertex_buf) { @@ -2399,7 +2399,7 @@ namespace mdl { ObjSubMeshArgs* translucent_priority[40]; int32_t translucent_priority_count = 0; - for (uint32_t j = 0; j < mesh->num_submesh; j++) { + for (int32_t j = 0; j < mesh->num_submesh; j++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[j]; obj_sub_mesh* sub_mesh_morph = 0; if (sub_mesh->attrib.m.cloth) diff --git a/src/CRE/object.cpp b/src/CRE/object.cpp index 78d7f231..137dcfac 100644 --- a/src/CRE/object.cpp +++ b/src/CRE/object.cpp @@ -25,8 +25,8 @@ static GLuint create_vertex_buffer(size_t size, const void* data, bool dynamic = static void free_index_buffer(GLuint buffer); static void free_vertex_buffer(GLuint buffer); -static uint32_t remove_degenerate_triangle_indices( - uint32_t* dst_index_array, const uint32_t num_index, uint32_t* src_index_array); +static int32_t remove_degenerate_triangle_indices( + uint32_t* dst_index_array, const int32_t num_index, uint32_t* src_index_array); static void ObjsetInfo_calc_axis_aligned_bounding_box(ObjsetInfo* info); static void ObjsetInfo_get_shader_index_texture_index(ObjsetInfo* info); @@ -50,7 +50,7 @@ obj_mesh_index_buffer::obj_mesh_index_buffer() : buffer() { bool obj_mesh_index_buffer::load(obj_mesh& mesh) { size_t num_index = 0; - for (uint32_t i = 0; i < mesh.num_submesh; i++) + for (int32_t i = 0; i < mesh.num_submesh; i++) num_index += mesh.submesh_array[i].num_index; if (!num_index) { @@ -81,7 +81,7 @@ void obj_mesh_index_buffer::unload() { void* obj_mesh_index_buffer::fill_data(void* data, obj_mesh& mesh) { uint16_t* indices = (uint16_t*)data; - for (uint32_t i = 0; i < mesh.num_submesh; i++) { + for (int32_t i = 0; i < mesh.num_submesh; i++) { obj_sub_mesh& sub_mesh = mesh.submesh_array[i]; if (sub_mesh.primitive_type == OBJ_PRIMITIVE_TRIANGLE_STRIP && !(sub_mesh.attrib.w & 0x80)){ @@ -92,14 +92,13 @@ void* obj_mesh_index_buffer::fill_data(void* data, obj_mesh& mesh) { free_def(index_array); } - uint32_t num_index = sub_mesh.num_index; uint32_t* index = sub_mesh.index_array; - for (uint32_t j = num_index; j; j--, index++) + for (int32_t j = sub_mesh.num_index; j > 0; j--, index++) *indices++ = (uint16_t)*index; } indices = (uint16_t*)data; - for (uint32_t i = 0, offset = 0; i < mesh.num_submesh; i++) { + for (int32_t i = 0, offset = 0; i < mesh.num_submesh; i++) { obj_sub_mesh& sub_mesh = mesh.submesh_array[i]; sub_mesh.first_index = 0; @@ -110,7 +109,7 @@ void* obj_mesh_index_buffer::fill_data(void* data, obj_mesh& mesh) { uint16_t first_index = 0xFFFF; uint16_t last_index = 0; - for (uint32_t j = sub_mesh.num_index; j; j--) { + for (int32_t j = sub_mesh.num_index; j > 0; j--) { uint16_t index = *indices++; if (index == 0xFFFF) continue; @@ -227,12 +226,12 @@ void obj_mesh_vertex_buffer::unload() { void* obj_mesh_vertex_buffer::fill_data(void* data, obj_mesh& mesh) { obj_vertex_format vertex_format = mesh.vertex_format; obj_vertex_data* vtx = mesh.vertex_array; - uint32_t num_vertex = mesh.num_vertex; + int32_t num_vertex = mesh.num_vertex; size_t d = (size_t)data; switch (mesh.attrib.m.compression) { case 0: default: - for (uint32_t i = num_vertex; i; i--, vtx++) { + for (int32_t i = num_vertex; i > 0; i--, vtx++) { if (vertex_format & OBJ_VERTEX_POSITION) { *(vec3*)d = vtx->position; d += 12; @@ -297,7 +296,7 @@ void* obj_mesh_vertex_buffer::fill_data(void* data, obj_mesh& mesh) { } break; case 1: - for (uint32_t i = num_vertex; i; i--, vtx++) { + for (int32_t i = num_vertex; i > 0; i--, vtx++) { if (vertex_format & OBJ_VERTEX_POSITION) { *(vec3*)d = vtx->position; d += 12; @@ -349,7 +348,7 @@ void* obj_mesh_vertex_buffer::fill_data(void* data, obj_mesh& mesh) { } break; case 2: - for (uint32_t i = num_vertex; i; i--, vtx++) { + for (int32_t i = num_vertex; i > 0; i--, vtx++) { if (vertex_format & OBJ_VERTEX_POSITION) { *(vec3*)d = vtx->position; d += 12; @@ -439,11 +438,11 @@ bool obj_index_buffer::load(obj* obj) { #if SHARED_OBJECT_BUFFER size_t buffer_size = 0; - for (uint32_t i = 0; i < mesh_num; i++) { + for (int32_t i = 0; i < mesh_num; i++) { obj_mesh& mesh = obj->mesh_array[i]; size_t num_index = 0; - for (uint32_t i = 0; i < mesh.num_submesh; i++) - num_index += mesh.submesh_array[i].num_index; + for (int32_t j = 0; j < mesh.num_submesh; i++) + num_index += mesh.submesh_array[j].num_index; buffer_size += num_index * sizeof(uint16_t); } @@ -455,12 +454,12 @@ bool obj_index_buffer::load(obj* obj) { } void* data = index; - for (uint32_t i = 0; i < mesh_num; i++) { + for (int32_t i = 0; i < mesh_num; i++) { uint32_t offset = (uint32_t)((size_t)data - (size_t)index); data = obj_mesh_index_buffer::fill_data(data, obj->mesh_array[i]); obj_mesh& mesh = obj->mesh_array[i]; - for (uint32_t j = 0; j < mesh.num_submesh; j++) + for (int32_t j = 0; j < mesh.num_submesh; j++) mesh.submesh_array[j].index_offset += offset; } @@ -473,10 +472,10 @@ bool obj_index_buffer::load(obj* obj) { free_def(index); - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) mesh_data[i].buffer = buffer; #else - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) if (!mesh_data[i].load(obj->mesh_array[i])) return false; #endif @@ -489,7 +488,7 @@ void obj_index_buffer::unload() { free_index_buffer(buffer); buffer = 0; #else - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) mesh_data[i].unload(); #endif delete[] mesh_data; @@ -521,7 +520,7 @@ bool obj_vertex_buffer::load(obj* obj) { #if SHARED_OBJECT_BUFFER size_t buffer_size = 0; bool double_buffer = false; - for (uint32_t i = 0; i < mesh_num; i++) { + for (int32_t i = 0; i < mesh_num; i++) { obj_mesh& mesh = obj->mesh_array[i]; if (!mesh.num_vertex || !mesh.vertex_array) continue; @@ -556,7 +555,7 @@ bool obj_vertex_buffer::load(obj* obj) { } void* data = vertex; - for (uint32_t i = 0; i < mesh_num; i++) { + for (int32_t i = 0; i < mesh_num; i++) { obj_mesh_vertex_buffer& mesh_buffer = mesh_data[i]; mesh_buffer.offset = (size_t)data - (size_t)vertex; mesh_buffer.count = count; @@ -576,10 +575,10 @@ bool obj_vertex_buffer::load(obj* obj) { free_def(vertex); - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) memcpy(mesh_data[i].buffers, buffers, count * sizeof(GLuint)); #else - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) if (!mesh_data[i].load(obj->mesh_array[i])) return false; #endif @@ -592,7 +591,7 @@ void obj_vertex_buffer::unload() { for (int32_t i = 0; i < mesh_data[0].count; i++) free_vertex_buffer(buffers[i]); #else - for (uint32_t i = 0; i < mesh_num; i++) + for (int32_t i = 0; i < mesh_num; i++) mesh_data[i].unload(); #endif delete[] mesh_data; @@ -673,7 +672,7 @@ void obj_skin_set_matrix_buffer(const obj_skin* s, const mat4* matrices, obj_skin_bone* bone = s->bone_array; if (mat) - for (uint32_t i = 0; i < s->num_bone; i++, bone++, matrix_buffer++) { + for (int32_t i = 0; i < s->num_bone; i++, bone++, matrix_buffer++) { mat4 temp; if (bone->id & 0x8000) mat4_mul(mat, &ex_data_matrices[bone->id & 0x7FFF], &temp); @@ -684,7 +683,7 @@ void obj_skin_set_matrix_buffer(const obj_skin* s, const mat4* matrices, mat4_mul(&bone->inv_bind_pose_mat, &temp, matrix_buffer); } else - for (uint32_t i = 0; i < s->num_bone; i++, bone++, matrix_buffer++) { + for (int32_t i = 0; i < s->num_bone; i++, bone++, matrix_buffer++) { mat4 temp; if (bone->id & 0x8000) temp = ex_data_matrices[bone->id & 0x7FFF]; @@ -736,7 +735,7 @@ void object_material_msgpack_read(const char* path, const char* set_name, std::string name = object.read_string("name"); uint32_t name_hash = hash_string_murmurhash(name); - for (uint32_t i = 0; i < obj_set->obj_num; i++) { + for (int32_t i = 0; i < obj_set->obj_num; i++) { obj* obj = obj_set->obj_data[i]; if (name_hash != hash_string_murmurhash(obj->name)) @@ -1045,24 +1044,24 @@ void object_material_msgpack_read(const char* path, const char* set_name, _color_mult.z = b->read_float_t(); obj_vertex_data* vtx = mesh.vertex_array; - uint32_t num_vertex = mesh.num_vertex; - for (uint32_t i = num_vertex; i; i--, vtx++) + int32_t num_vertex = mesh.num_vertex; + for (int32_t i = num_vertex; i > 0; i--, vtx++) *(vec3*)&vtx->color0 = _color_mult; } msgpack* fix_alpha = _mesh.read("fix_alpha"); if (fix_alpha && fix_alpha->read_bool()) { obj_vertex_data* vtx = mesh.vertex_array; - uint32_t num_vertex = mesh.num_vertex; - for (uint32_t i = num_vertex; i; i--, vtx++) + int32_t num_vertex = mesh.num_vertex; + for (int32_t i = num_vertex; i > 0; i--, vtx++) vtx->color0.w = 1.0f; } msgpack* invert_negative_color = _mesh.read("invert_negative_color"); if (invert_negative_color && invert_negative_color->read_bool()) { obj_vertex_data* vtx = mesh.vertex_array; - uint32_t num_vertex = mesh.num_vertex; - for (uint32_t i = num_vertex; i; i--, vtx++) + int32_t num_vertex = mesh.num_vertex; + for (int32_t i = num_vertex; i > 0; i--, vtx++) if (vtx->color0.x < 0.0f) *(vec3*)&vtx->color0.x = -*(vec3*)&vtx->color0.x; } @@ -1084,8 +1083,8 @@ void object_material_msgpack_read(const char* path, const char* set_name, normal.z = z->read_float_t(); obj_vertex_data* vtx = mesh.vertex_array; - uint32_t num_vertex = mesh.num_vertex; - for (uint32_t i = num_vertex; i; i--, vtx++) + int32_t num_vertex = mesh.num_vertex; + for (int32_t i = num_vertex; i > 0; i--, vtx++) vtx->normal = normal; } @@ -1210,15 +1209,15 @@ void object_material_msgpack_read(const char* path, const char* set_name, tex_db->update(); - size_t tex_id_num = txp_set->textures.size(); + int32_t tex_id_num = (int32_t)txp_set->textures.size(); if (set->tex_id_num != tex_id_num) { uint32_t* tex_id_data = info->alloc_handler->allocate(tex_id_num); memmove(tex_id_data, set->tex_id_data, sizeof(uint32_t) * set->tex_id_num); memmove(&tex_id_data[set->tex_id_num], ids.data(), - sizeof(uint32_t) * (tex_id_num - set->tex_id_num)); + sizeof(uint32_t) * ((size_t)tex_id_num - set->tex_id_num)); set->tex_id_data = tex_id_data; - set->tex_id_num = (uint32_t)tex_id_num; - info->tex_num = (uint32_t)tex_id_num; + set->tex_id_num = tex_id_num; + info->tex_num = tex_id_num; } } @@ -1243,10 +1242,10 @@ void object_material_msgpack_read(const char* path, const char* set_name, uint32_t id = hash_string_murmurhash(name); uint32_t* tex_id_data = set->tex_id_data; - uint32_t tex_id_num = set->tex_id_num; + int32_t tex_id_num = set->tex_id_num; txp* tex = 0; - for (uint32_t i = 0; i < tex_id_num; i++) + for (int32_t i = 0; i < tex_id_num; i++) if (id == tex_id_data[i]) { tex = &txp_set->textures[i]; break; @@ -1292,7 +1291,7 @@ void object_material_msgpack_write(const char* path, const char* set_name, uint3 return; msgpack_array objects(obj_set->obj_num); - for (uint32_t i = 0; i < obj_set->obj_num; i++) { + for (int32_t i = 0; i < obj_set->obj_num; i++) { obj* obj = obj_set->obj_data[i]; msgpack& object = objects.data()[i]; @@ -1571,7 +1570,7 @@ void object_material_msgpack_write(const char* path, const char* set_name, uint3 io_json_write(s, &msg); s.close(); - for (uint32_t i = 0; i < obj_set->tex_id_num; i++) { + for (int32_t i = 0; i < obj_set->tex_id_num; i++) { const char* texture_name = tex_db->get_texture_name(obj_set->tex_id_data[i]); txp& tex = txp_set->textures[i]; @@ -1640,7 +1639,7 @@ inline obj* objset_info_storage_get_obj(object_info obj_info) { return 0; } -inline obj* objset_info_storage_get_obj_by_index(uint32_t set_id, uint32_t index) { +inline obj* objset_info_storage_get_obj_by_index(uint32_t set_id, int32_t index) { auto elem = objset_info_storage_data.find(set_id); if (elem != objset_info_storage_data.end()) { obj_set* set = elem->second.obj_set; @@ -1703,7 +1702,7 @@ inline obj_mesh* objset_info_storage_get_obj_mesh(object_info obj_info, const ch return 0; } -inline obj_mesh* objset_info_storage_get_obj_mesh_by_index(object_info obj_info, uint32_t index) { +inline obj_mesh* objset_info_storage_get_obj_mesh_by_index(object_info obj_info, int32_t index) { auto elem = objset_info_storage_data.find(obj_info.set_id); if (elem != objset_info_storage_data.end()) { obj_set* set = elem->second.obj_set; @@ -1742,7 +1741,7 @@ inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash(uint32_t hash, if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) + for (int32_t j = 0; j < set->obj_num; j++) if (set->obj_data[j]->hash == hash) return set->obj_data[j]->get_obj_mesh(mesh_name); } @@ -1752,20 +1751,20 @@ inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash(uint32_t hash, if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) + for (int32_t j = 0; j < set->obj_num; j++) if (set->obj_data[j]->hash == hash) return set->obj_data[j]->get_obj_mesh(mesh_name); } return 0; } -inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t hash, uint32_t index) { +inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t hash, int32_t index) { for (auto& i : objset_info_storage_data) { obj_set* set = i.second.obj_set; if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) { + for (int32_t j = 0; j < set->obj_num; j++) { if (set->obj_data[j]->hash != hash) continue; @@ -1781,7 +1780,7 @@ inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) { + for (int32_t j = 0; j < set->obj_num; j++) { if (set->obj_data[j]->hash != hash) continue; @@ -1794,7 +1793,7 @@ inline obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t return 0; } -inline uint32_t objset_info_storage_get_obj_mesh_index(object_info obj_info, const char* mesh_name) { +inline int32_t objset_info_storage_get_obj_mesh_index(object_info obj_info, const char* mesh_name) { auto elem = objset_info_storage_data.find(obj_info.set_id); if (elem != objset_info_storage_data.end()) { obj_set* set = elem->second.obj_set; @@ -1821,13 +1820,13 @@ inline uint32_t objset_info_storage_get_obj_mesh_index(object_info obj_info, con return -1; } -inline uint32_t objset_info_storage_get_obj_mesh_index_by_hash(uint32_t hash, const char* mesh_name) { +inline int32_t objset_info_storage_get_obj_mesh_index_by_hash(uint32_t hash, const char* mesh_name) { for (auto& i : objset_info_storage_data) { obj_set* set = i.second.obj_set; if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) + for (int32_t j = 0; j < set->obj_num; j++) if (set->obj_data[j]->hash == hash) return set->obj_data[j]->get_obj_mesh_index(mesh_name); } @@ -1837,7 +1836,7 @@ inline uint32_t objset_info_storage_get_obj_mesh_index_by_hash(uint32_t hash, co if (!set) continue; - for (uint32_t j = 0; j < set->obj_num; j++) + for (int32_t j = 0; j < set->obj_num; j++) if (set->obj_data[j]->hash == hash) return set->obj_data[j]->get_obj_mesh_index(mesh_name); } @@ -2089,7 +2088,7 @@ bool objset_info_storage_load_obj_set_check_not_read(uint32_t set_id, info->obj_file_handler.reset(); info->obj_id_data.reserve(set->obj_num); - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) info->obj_id_data.push_back(set->obj_data[i]->id, i); info->obj_id_data.sort(); @@ -2202,7 +2201,7 @@ bool objset_info_storage_load_obj_set_check_not_read(uint32_t set_id, info->obj_file_handler.reset(); info->obj_id_data.reserve(set->obj_num); - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) info->obj_id_data.push_back(set->obj_data[i]->id, i); info->obj_id_data.sort(); @@ -2349,17 +2348,17 @@ static void free_vertex_buffer(GLuint buffer) { glGetError(); } -static uint32_t remove_degenerate_triangle_indices( - uint32_t* dst_index_array, const uint32_t num_index, uint32_t* src_index_array) { +static int32_t remove_degenerate_triangle_indices( + uint32_t* dst_index_array, const int32_t num_index, uint32_t* src_index_array) { if (!num_index) return 0; dst_index_array[0] = src_index_array[0]; - uint32_t src_index = 1; - uint32_t dst_index = 1; - uint32_t strip_length = 1; - while ((int32_t)src_index < (int32_t)num_index - 4) + int32_t src_index = 1; + int32_t dst_index = 1; + int32_t strip_length = 1; + while (src_index < num_index - 4) if (src_index_array[src_index] != src_index_array[src_index + 1]) { dst_index_array[dst_index++] = src_index_array[src_index]; strip_length++; @@ -2398,11 +2397,11 @@ static uint32_t remove_degenerate_triangle_indices( src_index += 5; } - if (src_index < (int32_t)num_index) { + if (src_index < num_index) { src_index_array += src_index; dst_index_array += dst_index; dst_index += num_index - src_index; - while (src_index++ < (int32_t)num_index) + while (src_index++ < num_index) *dst_index_array++ = *src_index_array++; } return dst_index; @@ -2410,20 +2409,20 @@ static uint32_t remove_degenerate_triangle_indices( static void ObjsetInfo_calc_axis_aligned_bounding_box(ObjsetInfo* info) { obj_set* set = info->obj_set; - for (uint32_t i = 0; i < set->obj_num; i++) { + for (int32_t i = 0; i < set->obj_num; i++) { obj* obj = set->obj_data[i]; - for (uint32_t j = 0; j < obj->num_mesh; j++) { + for (int32_t j = 0; j < obj->num_mesh; j++) { obj_mesh& mesh = obj->mesh_array[j]; - for (uint32_t k = 0; k < mesh.num_submesh; k++) { + for (int32_t k = 0; k < mesh.num_submesh; k++) { vec3 _min = 9999999.0f; vec3 _max = -100000000.0f; obj_sub_mesh& sub_mesh = mesh.submesh_array[k]; uint32_t* index = sub_mesh.index_array; - uint32_t num_index = sub_mesh.num_index; + int32_t num_index = sub_mesh.num_index; obj_vertex_data* vertex_array = mesh.vertex_array; if (sub_mesh.index_format == OBJ_INDEX_U16) - for (uint32_t l = 0; l < num_index; l++, index++) { + for (int32_t l = 0; l < num_index; l++, index++) { if (*index == 0xFFFFFFFF) continue; @@ -2432,7 +2431,7 @@ static void ObjsetInfo_calc_axis_aligned_bounding_box(ObjsetInfo* info) { _max = vec3::max(_max, pos); } else - for (uint32_t l = 0; l < num_index; l++, index++) { + for (int32_t l = 0; l < num_index; l++, index++) { vec3 pos = vertex_array[*index].position; _min = vec3::min(_min, pos); _max = vec3::max(_max, pos); @@ -2449,10 +2448,10 @@ static void ObjsetInfo_calc_axis_aligned_bounding_box(ObjsetInfo* info) { static void ObjsetInfo_get_shader_index_texture_index(ObjsetInfo* info) { obj_set* set = info->obj_set; - for (uint32_t i = 0; i < set->obj_num; i++) { + for (int32_t i = 0; i < set->obj_num; i++) { obj* obj = set->obj_data[i]; - uint32_t num_material = obj->num_material; - for (uint32_t j = 0; j < num_material; j++) { + int32_t num_material = obj->num_material; + for (int32_t j = 0; j < num_material; j++) { obj_material_data& material_data = obj->material_array[j]; obj_material& material = material_data.material; @@ -2471,8 +2470,8 @@ static void ObjsetInfo_get_shader_index_texture_index(ObjsetInfo* info) { texture.texture_index = 0; std::pair* tex_id_data = info->tex_id_data.data(); - uint32_t tex_id_num = (uint32_t)info->tex_id_data.size(); - for (uint32_t l = tex_id_num; l; l--, tex_id_data++) + int32_t tex_id_num = (int32_t)info->tex_id_data.size(); + for (int32_t l = tex_id_num; l >= 0; l--, tex_id_data++) if (tex_id_data->first == tex_index) { texture.tex_index = tex_index; texture.texture_index = tex_id_data->second; @@ -2490,7 +2489,7 @@ static bool ObjsetInfo_index_buffer_load(ObjsetInfo* info) { if (!info->objib) return true; - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) if (!info->objib[i].load(set->obj_data[i])) return false; return true; @@ -2498,7 +2497,7 @@ static bool ObjsetInfo_index_buffer_load(ObjsetInfo* info) { static void ObjsetInfo_index_buffer_free(ObjsetInfo* info) { if (info->objib) { - for (uint32_t i = 0; i < info->objib_num; i++) + for (int32_t i = 0; i < info->objib_num; i++) info->objib[i].unload(); delete[] info->objib; } @@ -2524,9 +2523,9 @@ static bool ObjsetInfo_load_textures(ObjsetInfo* info, const void* data, bool bi info->tex_id_data.reserve(info->tex_num); info->gentex.reserve(info->tex_num); uint32_t* tex_id_data = set->tex_id_data; - uint32_t tex_num = info->tex_num; + int32_t tex_num = info->tex_num; texture** tex_data = info->tex_data; - for (uint32_t i = 0; i < tex_num; i++) { + for (int32_t i = 0; i < tex_num; i++) { info->tex_id_data.push_back(tex_id_data[i], i); info->gentex.push_back(tex_data[i]->glid); } @@ -2553,9 +2552,9 @@ static bool ObjsetInfo_load_textures_modern(ObjsetInfo* info, info->tex_id_data.reserve(info->tex_num); info->gentex.reserve(info->tex_num); uint32_t* tex_id_data = set->tex_id_data; - uint32_t tex_num = info->tex_num; + int32_t tex_num = info->tex_num; texture** tex_data = info->tex_data; - for (uint32_t i = 0; i < tex_num; i++) { + for (int32_t i = 0; i < tex_num; i++) { info->tex_id_data.push_back(tex_id_data[i], i); info->gentex.push_back(tex_data[i]->glid); } @@ -2570,7 +2569,7 @@ static bool ObjsetInfo_vertex_buffer_load(ObjsetInfo* info) { if (!info->objvb) return true; - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) if (!info->objvb[i].load(set->obj_data[i])) return false; return true; @@ -2578,7 +2577,7 @@ static bool ObjsetInfo_vertex_buffer_load(ObjsetInfo* info) { static void ObjsetInfo_vertex_buffer_free(ObjsetInfo* info) { if (info->objvb) { - for (uint32_t i = 0; i < info->objvb_num; i++) + for (int32_t i = 0; i < info->objvb_num; i++) info->objvb[i].unload(); delete[] info->objvb; } diff --git a/src/CRE/object.hpp b/src/CRE/object.hpp index 01f9c590..050009ce 100644 --- a/src/CRE/object.hpp +++ b/src/CRE/object.hpp @@ -54,7 +54,7 @@ struct obj_mesh_vertex_buffer { }; struct obj_index_buffer { - uint32_t mesh_num; + int32_t mesh_num; obj_mesh_index_buffer* mesh_data; #if SHARED_OBJECT_BUFFER GLuint buffer; @@ -67,7 +67,7 @@ struct obj_index_buffer { }; struct obj_vertex_buffer { - uint32_t mesh_num; + int32_t mesh_num; obj_mesh_vertex_buffer* mesh_data; #if SHARED_OBJECT_BUFFER GLuint buffers[3]; @@ -87,14 +87,14 @@ struct ObjsetInfo { prj::shared_ptr alloc_handler; obj_set* obj_set; prj::vector_pair obj_id_data; - uint32_t tex_num; + int32_t tex_num; std::vector gentex; prj::vector_pair tex_id_data; texture** tex_data; int32_t set_id; - uint32_t objvb_num; + int32_t objvb_num; obj_vertex_buffer* objvb; - uint32_t objib_num; + int32_t objib_num; obj_index_buffer* objib; uint32_t load_count; std::string name; @@ -122,14 +122,14 @@ extern void object_material_msgpack_write(const char* path, const char* set_name extern void objset_info_storage_init(const object_database* obj_db); extern obj* objset_info_storage_get_obj(object_info obj_info); -extern obj* objset_info_storage_get_obj_by_index(uint32_t set_id, uint32_t index); +extern obj* objset_info_storage_get_obj_by_index(uint32_t set_id, int32_t index); extern ObjsetInfo* objset_info_storage_get_objset_info(uint32_t set_id); extern obj_mesh* objset_info_storage_get_obj_mesh(object_info obj_info, const char* mesh_name); -extern obj_mesh* objset_info_storage_get_obj_mesh_by_index(object_info obj_info, uint32_t index); +extern obj_mesh* objset_info_storage_get_obj_mesh_by_index(object_info obj_info, int32_t index); extern obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash(uint32_t hash, const char* mesh_name); -extern obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t hash, uint32_t index); -extern uint32_t objset_info_storage_get_obj_mesh_index(object_info obj_info, const char* mesh_name); -extern uint32_t objset_info_storage_get_obj_mesh_index_by_hash(uint32_t hash, const char* mesh_name); +extern obj_mesh* objset_info_storage_get_obj_mesh_by_object_hash_index(uint32_t hash, int32_t index); +extern int32_t objset_info_storage_get_obj_mesh_index(object_info obj_info, const char* mesh_name); +extern int32_t objset_info_storage_get_obj_mesh_index_by_hash(uint32_t hash, const char* mesh_name); extern const char* objset_info_storage_get_obj_name(object_info obj_info); extern obj_set* objset_info_storage_get_obj_set(uint32_t set_id); extern size_t objset_info_storage_get_obj_set_count(); diff --git a/src/CRE/rob/ex_block.cpp b/src/CRE/rob/ex_block.cpp index efc8d61b..874ab96e 100644 --- a/src/CRE/rob/ex_block.cpp +++ b/src/CRE/rob/ex_block.cpp @@ -1015,10 +1015,10 @@ void RobCloth::Disp(const mat4* mat, render_context* rctx) { o.bounding_sphere.center = center; o.bounding_sphere.radius *= 2.0f; - for (uint32_t i = 0; i < o.num_mesh; i++) { + for (int32_t i = 0; i < o.num_mesh; i++) { obj_mesh& mesh = this->mesh[i]; mesh.bounding_sphere.center = center; - for (uint32_t j = 0; j < mesh.num_submesh; j++) { + for (int32_t j = 0; j < mesh.num_submesh; j++) { obj_sub_mesh& submesh = mesh.submesh_array[j]; submesh.bounding_sphere.center = center; } @@ -1049,7 +1049,7 @@ void RobCloth::InitData(size_t root_count, size_t nodes_count, obj_skin_block_cl for (int32_t i = 0; i < 2; i++) { RobClothSubMeshArray& submesh = this->submesh[i]; - for (uint32_t j = 0; j < mesh[i].num_submesh; j++) { + for (int32_t j = 0; j < mesh[i].num_submesh; j++) { obj_sub_mesh& cloth_mesh = submesh.arr[j]; cloth_mesh = mesh[i].submesh_array[j]; cloth_mesh.attrib.m.cloth = 0; @@ -1744,7 +1744,7 @@ void RobOsage::InitData(obj_skin_block_osage* osg_data, obj_skin_osage_node* osg external->sibling_node = 0; bone_node* parent_bone_node = external->bone_node_ptr; - for (uint32_t i = 0; i < osg_data->count; i++) { + for (int32_t i = 0; i < osg_data->count; i++) { obj_skin_osage_node* v14 = &osg_nodes[i]; RobOsageNode* node = &nodes.data()[i + 1LL]; node->Reset(); @@ -1786,11 +1786,11 @@ void RobOsage::InitData(obj_skin_block_osage* osg_data, obj_skin_osage_node* osg if (osg_data->count) { RobOsageNode* v26 = &nodes.data()[1]; size_t v33 = 0; - for (uint32_t i = 0; i < osg_data->count; i++) { + for (int32_t i = 0; i < osg_data->count; i++) { v26[i].mat = mat4_null; obj_skin_bone* bone = skin->bone_array; - for (uint32_t j = 0; j < skin->num_bone; j++, bone++) + for (int32_t j = 0; j < skin->num_bone; j++, bone++) if (bone->id == osg_nodes->name_index) { mat4_invert_fast(&bone->inv_bind_pose_mat, &v26[i].mat); break; @@ -2319,7 +2319,7 @@ void ExOsageBlock::sub_1405F3E10(obj_skin_block_osage* osg_data, RobOsageNode* node = rob.GetNode(0); a4->push_back(osg_data->external_name_index, node); - for (uint32_t i = 0; i < osg_data->count; i++) { + for (int32_t i = 0; i < osg_data->count; i++) { node = rob.GetNode(i + 1ULL); a4->push_back(osg_nodes[i].name_index, node); diff --git a/src/CRE/rob/rob.cpp b/src/CRE/rob/rob.cpp index b5b1788c..19791e7a 100644 --- a/src/CRE/rob/rob.cpp +++ b/src/CRE/rob/rob.cpp @@ -13417,7 +13417,7 @@ void rob_chara_item_equip_object::init_ex_data_bone_nodes(obj_skin_ex_data* ex_d ex_data_bone_mats.clear(); ex_data_mats.clear(); - uint32_t num_bone_name = ex_data->num_bone_name; + int32_t num_bone_name = ex_data->num_bone_name; ex_data_bone_nodes.resize(num_bone_name); ex_data_bone_mats.resize(num_bone_name); ex_data_mats.resize(num_bone_name); @@ -13425,13 +13425,13 @@ void rob_chara_item_equip_object::init_ex_data_bone_nodes(obj_skin_ex_data* ex_d bone_node* bone_nodes = ex_data_bone_nodes.data(); mat4* bone_mats = ex_data_bone_mats.data(); mat4* mats = ex_data_mats.data(); - for (uint32_t i = 0; i < num_bone_name; i++) + for (int32_t i = 0; i < num_bone_name; i++) bone_nodes[i].mat = &bone_mats[i]; if (ex_data->bone_name_array) { ex_bones.clear(); const char** bone_name_array = ex_data->bone_name_array; - for (uint32_t i = 0; i < num_bone_name; i++) { + for (int32_t i = 0; i < num_bone_name; i++) { bone_nodes[i].set_name_mat_ex_data_mat(bone_name_array[i], &bone_mats[i], &mats[i]); ex_bones.push_back(bone_name_array[i], i); } @@ -13482,8 +13482,8 @@ void rob_chara_item_equip_object::load_ex_data(obj_skin_ex_data* ex_data, size_t null_count = 0; const char** bone_name_array = ex_data->bone_name_array; obj_skin_block* block = ex_data->block_array; - uint32_t num_block = ex_data->num_block; - for (uint32_t i = 0; i < num_block; i++, block++) { + int32_t num_block = ex_data->num_block; + for (int32_t i = 0; i < num_block; i++, block++) { ExNodeBlock* ex_node; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: { @@ -13610,7 +13610,7 @@ void rob_chara_item_equip_object::load_ex_data(obj_skin_ex_data* ex_data, if (ex_data->osage_sibling_info_array) { obj_skin_osage_sibling_info* sibling_info = ex_data->osage_sibling_info_array; - for (uint32_t i = 0; i < ex_data->num_osage_sibling_info; i++, sibling_info++) { + for (int32_t i = 0; i < ex_data->num_osage_sibling_info; i++, sibling_info++) { uint32_t name_index = sibling_info->name_index; uint32_t sibling_name_index = sibling_info->sibling_name_index; @@ -18148,10 +18148,10 @@ void rob_chara_age_age_object::calc_vertex(rob_chara_age_age_object_vertex*& vtx const float_t alpha_1 = 1.0f - alpha; obj_vertex_data* vertex_array = mesh->vertex_array; - uint32_t num_vertex = mesh->num_vertex; + int32_t num_vertex = mesh->num_vertex; obj_vertex_data* obj_vtx = vertex_array; rob_chara_age_age_object_vertex* vtx = vtx_data; - for (uint32_t i = num_vertex; i; i--, obj_vtx++, vtx++) { + for (int32_t i = num_vertex; i; i--, obj_vtx++, vtx++) { mat4_transform_point(&mat, &obj_vtx->position, &vtx->position); mat4_transform_vector(&mat, &obj_vtx->normal, &vtx->normal); mat4_transform_vector(&mat, (vec3*)&obj_vtx->tangent, (vec3*)&vtx->tangent); @@ -18261,10 +18261,10 @@ void rob_chara_age_age_object::load(object_info obj_info, int32_t count) { obj_mesh* m = &o->mesh_array[0]; obj_sub_mesh* sm = &m->submesh_array[0]; - uint32_t num_vertex = m->num_vertex; + int32_t num_vertex = m->num_vertex; this->num_vertex = num_vertex; - uint32_t num_index = sm->num_index; + int32_t num_index = sm->num_index; this->num_index = num_index; size_t vertex_array_size = sizeof(rob_chara_age_age_object_vertex) * num_vertex; @@ -18278,7 +18278,7 @@ void rob_chara_age_age_object::load(object_info obj_info, int32_t count) { obj_vertex_data* vertex_array = m->vertex_array; for (int32_t i = count; i > 0; i--) - for (uint32_t j = num_vertex, k = 0; j; j--, k++, vtx_data++) { + for (int32_t j = num_vertex, k = 0; j; j--, k++, vtx_data++) { vtx_data->position = vertex_array[k].position; vtx_data->normal = vertex_array[k].normal; vtx_data->tangent = vertex_array[k].tangent; @@ -18288,14 +18288,14 @@ void rob_chara_age_age_object::load(object_info obj_info, int32_t count) { obj_vert_buf.load_data(vertex_data_size, vertex_data, 2, true); this->num_index = num_index + 1; - uint32_t num_idx_data = (uint32_t)(count * (num_index + 1)); + int32_t num_idx_data = (int32_t)(count * (num_index + 1)); uint16_t* idx_data = force_malloc(num_idx_data); uint32_t* index_array = sm->index_array; uint32_t index_offset = 0; uint32_t l = 0; for (int32_t i = count; i > 0; i--) { - for (uint32_t j = num_index, k = 0; j; j--, k++) + for (int32_t j = num_index, k = 0; j; j--, k++) if (index_array[k] == 0xFFFFFFFF) idx_data[l++] = 0xFFFF; else diff --git a/src/DivaGL/bone_data.hpp b/src/DivaGL/bone_data.hpp index 3aec39a3..66357d45 100644 --- a/src/DivaGL/bone_data.hpp +++ b/src/DivaGL/bone_data.hpp @@ -3488,12 +3488,12 @@ struct obj_sub_mesh { obj_bounding_sphere bounding_sphere; uint32_t material_index; uint8_t uv_index[8]; - uint32_t bone_indices_count; + int32_t bone_indices_count; uint16_t* bone_indices; uint32_t bones_per_vertex; obj_primitive_type primitive_type; obj_index_format index_format; - uint32_t indices_count; + int32_t indices_count; uint16_t* indices; obj_sub_mesh_attrib attrib; uint32_t reserved[4]; @@ -3547,11 +3547,11 @@ union obj_mesh_attrib { struct obj_mesh { uint32_t flags; obj_bounding_sphere bounding_sphere; - uint32_t num_submesh; + int32_t num_submesh; obj_sub_mesh* submesh_array; obj_vertex_format vertex_format; - uint32_t size_vertex; - uint32_t num_vertex; + int32_t size_vertex; + int32_t num_vertex; obj_mesh_vertex_array_union vertex; obj_mesh_attrib attrib; uint32_t vertex_flags; @@ -3704,7 +3704,7 @@ struct obj_material { }; struct obj_material_data { - uint32_t num_of_textures; + int32_t num_of_textures; obj_material material; }; @@ -3712,9 +3712,9 @@ struct obj { uint32_t version; uint32_t flags; obj_bounding_sphere bounding_sphere; - uint32_t num_mesh; + int32_t num_mesh; obj_mesh* mesh_array; - uint32_t num_material; + int32_t num_material; obj_material_data* material_array; uint32_t reserved[10]; }; @@ -3760,7 +3760,7 @@ struct obj_skin_ex_data { int32_t bone_names_count; const char** bone_names; obj_skin_osage_sibling_info* osage_sibling_infos; - uint32_t cloth_count; + int32_t cloth_count; uint32_t reserved[7]; }; @@ -3769,7 +3769,7 @@ struct obj_skin { mat4* bone_matrices; const char** bone_names; obj_skin_ex_data* ex_data; - uint32_t bone_count; + int32_t bone_count; int32_t bone_parent_ids_offset; int32_t field_28; int32_t field_2C; @@ -3798,14 +3798,14 @@ struct obj_database { struct obj_set { uint32_t signature; - uint32_t objects_count; + int32_t objects_count; uint32_t max_object_id; obj** objects; obj_skin** object_skins; const char** object_names; uint32_t* object_ids; uint32_t* texture_ids; - uint32_t texture_ids_count; + int32_t texture_ids_count; uint32_t field_3C; uint32_t field_40; }; diff --git a/src/KKdLib/database/stage.cpp b/src/KKdLib/database/stage.cpp index adfe2c07..fc5b1988 100644 --- a/src/KKdLib/database/stage.cpp +++ b/src/KKdLib/database/stage.cpp @@ -508,7 +508,7 @@ static void stage_database_file_classic_read_inner(stage_database_file* stage_da s.position_push(reflect_offset, SEEK_SET); stage->reflect = true; stage->reflect_data.mode = (stage_data_reflect_resolution_mode)s.read_uint32_t(); - stage->reflect_data.blur_num = s.read_uint32_t(); + stage->reflect_data.blur_num = s.read_int32_t(); stage->reflect_data.blur_filter = (stage_data_blur_filter_mode)s.read_uint32_t(); s.position_pop(); } @@ -696,7 +696,7 @@ static void stage_database_file_classic_write_inner(stage_database_file* stage_d if (i.reflect) { reflect_offsets.push_back(s.get_position()); s.write_uint32_t(i.reflect_data.mode); - s.write_uint32_t(i.reflect_data.blur_num); + s.write_int32_t(i.reflect_data.blur_num); s.write_uint32_t(i.reflect_data.blur_filter); } else diff --git a/src/KKdLib/obj.cpp b/src/KKdLib/obj.cpp index a94888ff..922b79cb 100644 --- a/src/KKdLib/obj.cpp +++ b/src/KKdLib/obj.cpp @@ -35,14 +35,14 @@ struct obj_skin_block_header { }; struct obj_skin_ex_data_header { - uint32_t num_osage; + int32_t num_osage; int64_t osage_node_array_offset; int64_t osage_name_array_offset; int64_t block_array_offset; - uint32_t num_bone_name; + int32_t num_bone_name; int64_t bone_name_array_offset; int64_t osage_sibling_info_array_offset; - uint32_t cloth_count; + int32_t cloth_count; }; struct obj_skin_header { @@ -61,8 +61,8 @@ struct obj_sub_mesh_header { struct obj_mesh_header { int64_t submesh_array; obj_vertex_format_file format; - uint32_t size_vertex; - uint32_t num_vertex; + int32_t size_vertex; + int32_t num_vertex; int64_t vertex[20]; uint32_t vertex_format_index; }; @@ -220,11 +220,11 @@ static obj_skin_skin_param* obj_classic_read_skin_param( static void obj_classic_write_skin_param(obj_skin_skin_param* skp, stream& s, std::vector& strings, std::vector& string_offsets); static void obj_classic_read_vertex(obj_mesh* mesh, - prj::shared_ptr alloc, stream& s, int64_t* vertex, int64_t base_offset, uint32_t num_vertex, + prj::shared_ptr alloc, stream& s, int64_t* vertex, int64_t base_offset, int32_t num_vertex, obj_vertex_format_file vertex_format_file); static void obj_classic_write_vertex(obj_mesh* mesh, - stream& s, int64_t* vertex, int64_t base_offset, uint32_t* num_vertex, - obj_vertex_format_file* vertex_format_file, uint32_t* size_vertex); + stream& s, int64_t* vertex, int64_t base_offset, int32_t* num_vertex, + obj_vertex_format_file* vertex_format_file, int32_t* size_vertex); static void obj_set_modern_read_inner(obj_set* set, prj::shared_ptr& alloc, stream& s); static void obj_set_modern_write_inner(obj_set* set, stream& s); @@ -293,9 +293,9 @@ static obj_skin_block_osage* obj_modern_read_skin_block_osage( static void obj_modern_write_skin_block_osage(obj_skin_block_osage* osg, stream& s, std::vector& strings, std::vector& string_offsets, bool is_x); static void obj_modern_read_vertex(obj_mesh* mesh, prj::shared_ptr alloc, stream& s, - int64_t* vertex, const uint32_t vertex_format_index, uint32_t num_vertex, uint32_t size_vertex); + int64_t* vertex, const uint32_t vertex_format_index, int32_t num_vertex, uint32_t size_vertex); static void obj_modern_write_vertex(obj_mesh* mesh, stream& s, int64_t* vertex, - uint32_t* vertex_format_index, uint32_t* num_vertex, uint32_t* size_vertex, f2_struct* ovtx); + uint32_t* vertex_format_index, int32_t* num_vertex, int32_t* size_vertex, f2_struct* ovtx); static const char* obj_move_data_string(const char* str, prj::shared_ptr& alloc); @@ -497,15 +497,15 @@ material_array(), flags(), reserved(), skin(), name(), id() { obj_mesh* obj::get_obj_mesh(const char* name) { uint32_t name_hash = hash_utf8_murmurhash(name); - for (uint32_t k = 0; k < num_mesh; k++) + for (int32_t k = 0; k < num_mesh; k++) if (hash_utf8_murmurhash(mesh_array[k].name) == name_hash) return &mesh_array[k]; return 0; } - uint32_t obj::get_obj_mesh_index(const char* name) { + int32_t obj::get_obj_mesh_index(const char* name) { uint32_t name_hash = hash_utf8_murmurhash(name); - for (uint32_t k = 0; k < num_mesh; k++) + for (int32_t k = 0; k < num_mesh; k++) if (hash_utf8_murmurhash(mesh_array[k].name) == name_hash) return k; return -1; @@ -530,11 +530,11 @@ void obj_set::move_data(obj_set* set_src, prj::shared_ptr big_endian = set_src->big_endian; is_x = set_src->is_x; - uint32_t obj_num = set_src->obj_num; + int32_t obj_num = set_src->obj_num; obj** obj_data_src = set_src->obj_data; obj** obj_data_dst = alloc->allocate(obj_num); - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj_data_dst[i] = alloc->allocate(); obj_move_data(obj_data_dst[i], obj_data_src[i], alloc); } @@ -542,7 +542,7 @@ void obj_set::move_data(obj_set* set_src, prj::shared_ptr this->obj_data = obj_data_dst; this->obj_num = obj_num; - uint32_t tex_id_num = set_src->tex_id_num; + int32_t tex_id_num = set_src->tex_id_num; this->tex_id_data = alloc->allocate(set_src->tex_id_data, tex_id_num); this->tex_id_num = tex_id_num; @@ -646,14 +646,14 @@ static void obj_vertex_generate_tangents(obj_mesh* mesh) { || !(mesh->vertex_format & OBJ_VERTEX_TEXCOORD0)) return; - uint32_t num_vertex = mesh->num_vertex; + int32_t num_vertex = mesh->num_vertex; vec3* tangents = force_malloc(num_vertex); vec3* bitangents = force_malloc(num_vertex); obj_vertex_data* vtx = mesh->vertex_array; - uint32_t num_submesh = mesh->num_submesh; - for (uint32_t i = 0; i < num_submesh; i++) { + int32_t num_submesh = mesh->num_submesh; + for (int32_t i = 0; i < num_submesh; i++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[i]; if (!sub_mesh->index_array || !sub_mesh->num_index || (sub_mesh->primitive_type != OBJ_PRIMITIVE_TRIANGLES @@ -702,7 +702,7 @@ static void obj_vertex_generate_tangents(obj_mesh* mesh) { } } - for (uint32_t i = 0; i < num_vertex; i++) { + for (int32_t i = 0; i < num_vertex; i++) { vec3 normal = vtx[i].normal; vec3 tangent = vec3::normalize(tangents[i]); @@ -721,7 +721,7 @@ static void obj_vertex_generate_tangents(obj_mesh* mesh) { bitangents[i] = bitangent; } - for (uint32_t i = 0; i < num_vertex; i++) { + for (int32_t i = 0; i < num_vertex; i++) { vec3 position = vtx[i].position; vec3 tangent = tangents[i]; @@ -729,9 +729,9 @@ static void obj_vertex_generate_tangents(obj_mesh* mesh) { continue; int32_t nearest_vtx_idx = -1; - float_t current_distance = 3.40282346638529e38f; + float_t current_distance = FLT_MAX; - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vec3 position_to_compare = vtx[j].position; vec3 tangent_to_compare = tangents[j]; @@ -798,17 +798,17 @@ static void obj_move_data(obj* obj_dst, const obj* obj_src, prj::shared_ptr alloc) { obj_dst->bounding_sphere = obj_src->bounding_sphere; - uint32_t num_mesh = obj_src->num_mesh; + int32_t num_mesh = obj_src->num_mesh; obj_mesh* mesh_array_src = obj_src->mesh_array; obj_mesh* mesh_array_dst = alloc->allocate(num_mesh); - for (uint32_t i = 0; i < num_mesh; i++) + for (int32_t i = 0; i < num_mesh; i++) obj_move_data_mesh(&mesh_array_dst[i], &mesh_array_src[i], alloc); obj_dst->mesh_array = mesh_array_dst; obj_dst->num_mesh = num_mesh; - uint32_t num_material = obj_src->num_material; + int32_t num_material = obj_src->num_material; obj_dst->material_array = alloc->allocate(obj_src->material_array, num_material); obj_dst->num_material = num_material; @@ -827,11 +827,11 @@ static void obj_move_data_mesh(obj_mesh* mesh_dst, const obj_mesh* mesh_src, mesh_dst->flags = mesh_src->flags; mesh_dst->bounding_sphere = mesh_src->bounding_sphere; - uint32_t num_submesh = mesh_src->num_submesh; + int32_t num_submesh = mesh_src->num_submesh; obj_sub_mesh* submesh_array_src = mesh_src->submesh_array; obj_sub_mesh* submesh_array_dst = alloc->allocate(num_submesh); - for (uint32_t i = 0; i < num_submesh; i++) + for (int32_t i = 0; i < num_submesh; i++) obj_move_data_sub_mesh(&submesh_array_dst[i], &submesh_array_src[i], alloc); mesh_dst->submesh_array = submesh_array_dst; @@ -840,7 +840,7 @@ static void obj_move_data_mesh(obj_mesh* mesh_dst, const obj_mesh* mesh_src, mesh_dst->vertex_format = mesh_src->vertex_format; mesh_dst->size_vertex = mesh_src->size_vertex; - uint32_t num_vertex = mesh_src->num_vertex; + int32_t num_vertex = mesh_src->num_vertex; mesh_dst->vertex_array = alloc->allocate(mesh_src->vertex_array, num_vertex); mesh_dst->num_vertex = num_vertex; @@ -856,7 +856,7 @@ static void obj_move_data_sub_mesh(obj_sub_mesh* sub_mesh_dst, const obj_sub_mes sub_mesh_dst->material_index = sub_mesh_src->material_index; memcpy(sub_mesh_dst->uv_index, sub_mesh_src->uv_index, 8); - uint32_t num_bone_index = sub_mesh_src->num_bone_index; + int32_t num_bone_index = sub_mesh_src->num_bone_index; sub_mesh_dst->bone_index_array = alloc->allocate(sub_mesh_src->bone_index_array, num_bone_index); sub_mesh_dst->num_bone_index = num_bone_index; @@ -864,7 +864,7 @@ static void obj_move_data_sub_mesh(obj_sub_mesh* sub_mesh_dst, const obj_sub_mes sub_mesh_dst->primitive_type = sub_mesh_src->primitive_type; sub_mesh_dst->index_format = sub_mesh_src->index_format; - uint32_t num_index = sub_mesh_src->num_index; + int32_t num_index = sub_mesh_src->num_index; sub_mesh_dst->index_array = alloc->allocate(sub_mesh_src->index_array, num_index); sub_mesh_dst->num_index = num_index; @@ -883,11 +883,11 @@ static obj_skin* obj_move_data_skin(const obj_skin* sk_src, obj_skin* sk_dst = alloc->allocate(); - uint32_t num_bone = sk_src->num_bone; + int32_t num_bone = sk_src->num_bone; obj_skin_bone* bone_array_src = sk_src->bone_array; obj_skin_bone* bone_array_dst = alloc->allocate(num_bone); - for (uint32_t i = 0; i < num_bone; i++) + for (int32_t i = 0; i < num_bone; i++) obj_move_data_skin_bone(&bone_array_dst[i], &bone_array_src[i], alloc); sk_dst->bone_array = bone_array_dst; @@ -912,16 +912,16 @@ static obj_skin_ex_data* obj_move_data_skin_ex_data(const obj_skin_ex_data* ex_s obj_skin_ex_data* ex_dst = alloc->allocate(); - uint32_t num_osage_node = ex_src->num_osage_node; + int32_t num_osage_node = ex_src->num_osage_node; ex_dst->osage_node_array = alloc->allocate( ex_src->osage_node_array, num_osage_node); ex_dst->num_osage_node = num_osage_node; - uint32_t num_block = ex_src->num_block; + int32_t num_block = ex_src->num_block; obj_skin_block* block_array_src = ex_src->block_array; obj_skin_block* block_array_dst = alloc->allocate(num_block); - for (uint32_t i = 0; i < num_block; i++) { + for (int32_t i = 0; i < num_block; i++) { obj_skin_block* block_src = &block_array_src[i]; obj_skin_block* block_dst = &block_array_dst[i]; switch (block_src->type) { @@ -955,17 +955,17 @@ static obj_skin_ex_data* obj_move_data_skin_ex_data(const obj_skin_ex_data* ex_s ex_dst->block_array = block_array_dst; ex_dst->num_block = num_block; - uint32_t num_bone_name = ex_src->num_bone_name; + int32_t num_bone_name = ex_src->num_bone_name; const char** bone_array_src = ex_src->bone_name_array; const char** bone_array_dst = alloc->allocate(num_bone_name); - for (uint32_t i = 0; i < num_bone_name; i++) + for (int32_t i = 0; i < num_bone_name; i++) bone_array_dst[i] = obj_move_data_string(bone_array_src[i], alloc); ex_dst->bone_name_array = bone_array_dst; ex_dst->num_bone_name = num_bone_name; - uint32_t num_osage_sibling_info = ex_src->num_osage_sibling_info; + int32_t num_osage_sibling_info = ex_src->num_osage_sibling_info; ex_dst->osage_sibling_info_array = alloc->allocate( ex_src->osage_sibling_info_array, num_osage_sibling_info); ex_dst->num_osage_sibling_info = num_osage_sibling_info; @@ -981,20 +981,20 @@ static obj_skin_block_cloth* obj_move_data_skin_block_cloth(const obj_skin_block cls_dst->backface_mesh_name = obj_move_data_string(cls_src->backface_mesh_name, alloc); cls_dst->field_8 = cls_src->field_8; - uint32_t num_root = cls_src->num_root; - uint32_t num_node = cls_src->num_node; + int32_t num_root = cls_src->num_root; + int32_t num_node = cls_src->num_node; cls_dst->num_root = num_root; cls_dst->num_node = num_node; cls_dst->field_14 = cls_src->field_14; - uint32_t num_mat = cls_src->num_mat; + int32_t num_mat = cls_src->num_mat; cls_dst->mat_array = alloc->allocate(cls_src->mat_array, num_mat); cls_dst->num_mat = num_mat; obj_skin_block_cloth_root* root_array_src = cls_src->root_array; obj_skin_block_cloth_root* root_array_dst = alloc->allocate(num_root); - for (uint32_t i = 0; i < num_root; i++) + for (int32_t i = 0; i < num_root; i++) obj_move_data_skin_block_cloth_root(&root_array_dst[i], &root_array_src[i], alloc); cls_dst->root_array = root_array_dst; @@ -1002,12 +1002,12 @@ static obj_skin_block_cloth* obj_move_data_skin_block_cloth(const obj_skin_block cls_dst->node_array = alloc->allocate( cls_src->node_array, num_root * (num_node - 1ULL)); - uint32_t num_mesh_index = cls_src->num_mesh_index; + int32_t num_mesh_index = cls_src->num_mesh_index; cls_dst->mesh_index_array = alloc->allocate( cls_src->mesh_index_array, num_mesh_index); cls_dst->num_mesh_index = num_mesh_index; - uint32_t num_backface_mesh_index = cls_src->num_backface_mesh_index; + int32_t num_backface_mesh_index = cls_src->num_backface_mesh_index; cls_dst->backface_mesh_index_array = alloc->allocate( cls_src->backface_mesh_index_array, num_backface_mesh_index); cls_dst->num_backface_mesh_index = num_backface_mesh_index; @@ -1119,13 +1119,13 @@ static obj_skin_block_expression* obj_move_data_skin_block_expression(const obj_ obj_move_data_skin_block_node(&exp_dst->node, &exp_src->node, alloc); exp_dst->name_index = exp_src->name_index; - uint32_t num_expression = exp_src->num_expression; - num_expression = min_def(num_expression, 9u); + int32_t num_expression = exp_src->num_expression; + num_expression = min_def(num_expression, 9); exp_dst->num_expression = num_expression; - for (uint32_t i = 0; i < num_expression; i++) + for (int32_t i = 0; i < num_expression; i++) exp_dst->expression_array[i] = obj_move_data_string(exp_src->expression_array[i], alloc); - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) exp_dst->expression_array[i] = 0; return exp_dst; } @@ -1141,7 +1141,7 @@ static obj_skin_block_motion* obj_move_data_skin_block_motion(const obj_skin_blo else mot_dst->name = obj_move_data_string(mot_src->name, alloc); - uint32_t num_node = mot_src->num_node; + int32_t num_node = mot_src->num_node; mot_dst->node_array = alloc->allocate(mot_src->node_array, num_node); mot_dst->num_node = num_node; return mot_dst; @@ -1162,7 +1162,7 @@ static obj_skin_block_osage* obj_move_data_skin_block_osage(const obj_skin_block osg_dst->start_index = osg_src->start_index; osg_dst->count = osg_src->count; - uint32_t num_node = osg_src->num_node; + int32_t num_node = osg_src->num_node; osg_dst->node_array = alloc->allocate(osg_src->node_array, num_node); osg_dst->num_node = num_node; @@ -1211,21 +1211,21 @@ static void obj_set_classic_read_inner(obj_set* set, prj::shared_ptrobj_num = s.read_uint32_t(); + set->obj_num = s.read_int32_t(); osh.last_obj_id = s.read_uint32_t(); osh.obj_data = s.read_uint32_t(); osh.obj_skin_data = s.read_uint32_t(); osh.obj_name_data = s.read_uint32_t(); osh.obj_id_data = s.read_uint32_t(); osh.tex_id_data = s.read_uint32_t(); - set->tex_id_num = s.read_uint32_t(); + set->tex_id_num = s.read_int32_t(); set->reserved[0] = s.read_uint32_t(); set->reserved[1] = s.read_uint32_t(); - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; set->obj_data = alloc->allocate(obj_num); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) set->obj_data[i] = alloc->allocate<::obj>(); uint32_t* data = force_malloc(obj_num * 3ULL); @@ -1234,7 +1234,7 @@ static void obj_set_classic_read_inner(obj_set* set, prj::shared_ptrobj_data[i]; if (obj_data[i]) obj_classic_read_model(obj, alloc, s, obj_data[i]); @@ -1272,16 +1272,16 @@ static void obj_set_classic_read_inner(obj_set* set, prj::shared_ptrobj_data[i]->id = s.read_uint32_t(); } if (osh.tex_id_data) { s.set_position(osh.tex_id_data, SEEK_SET); - uint32_t tex_id_num = set->tex_id_num; + int32_t tex_id_num = set->tex_id_num; uint32_t* tex_id_data = alloc->allocate(tex_id_num); set->tex_id_data = tex_id_data; - for (uint32_t i = 0; i < tex_id_num; i++) + for (int32_t i = 0; i < tex_id_num; i++) tex_id_data[i] = s.read_uint32_t(); } @@ -1312,29 +1312,29 @@ static void obj_set_classic_write_inner(obj_set* set, stream& s) { obj_set_header osh = {}; osh.last_obj_id = -1; - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; osh.obj_data = s.get_position(); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s.write_int32_t(0); s.align_write(0x10); int32_t* data = force_malloc(obj_num); int32_t* obj_data = data; - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj_data[i] = (int32_t)s.get_position(); obj_classic_write_model(set->obj_data[i], s, obj_data[i]); } s.align_write(0x10); s.position_push(osh.obj_data, SEEK_SET); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s.write_uint32_t(obj_data[i]); s.position_pop(); osh.obj_id_data = s.get_position(); - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { uint32_t object_id = set->obj_data[i]->id; s.write_uint32_t(object_id); if (osh.last_obj_id < object_id) @@ -1343,29 +1343,29 @@ static void obj_set_classic_write_inner(obj_set* set, stream& s) { s.align_write(0x10); int32_t* obj_name_data = data; - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj_name_data[i] = (int32_t)s.get_position(); s.write_utf8_string_null_terminated(set->obj_data[i]->name); } s.align_write(0x10); osh.obj_name_data = s.get_position(); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s.write_int32_t(obj_name_data[i]); s.align_write(0x10); osh.tex_id_data = s.get_position(); - for (uint32_t i = 0; i < set->tex_id_num; i++) + for (int32_t i = 0; i < set->tex_id_num; i++) s.write_uint32_t(set->tex_id_data[i]); s.align_write(0x10); osh.obj_skin_data = s.get_position(); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s.write_int32_t(0); s.align_write(0x10); int32_t* obj_skin_data = data; - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj_skin* sk = set->obj_data[i]->skin; if (!sk) { obj_skin_data[i] = 0; @@ -1378,7 +1378,7 @@ static void obj_set_classic_write_inner(obj_set* set, stream& s) { s.align_write(0x10); s.position_push(osh.obj_skin_data, SEEK_SET); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s.write_int32_t(obj_skin_data[i]); s.position_pop(); @@ -1401,31 +1401,31 @@ static void obj_set_classic_write_inner(obj_set* set, stream& s) { static void obj_classic_read_index(obj_sub_mesh* sub_mesh, prj::shared_ptr alloc, stream& s) { bool tri_strip = sub_mesh->primitive_type == OBJ_PRIMITIVE_TRIANGLE_STRIP; - uint32_t num_index = sub_mesh->num_index; + int32_t num_index = sub_mesh->num_index; uint32_t* index_array = alloc->allocate(num_index); switch (sub_mesh->index_format) { case OBJ_INDEX_U8: if (tri_strip) - for (uint32_t i = 0; i < num_index; i++) { + for (int32_t i = 0; i < num_index; i++) { uint8_t idx = s.read_uint8_t(); index_array[i] = idx == 0xFF ? 0xFFFFFFFF : idx; } else - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) index_array[i] = s.read_uint8_t(); break; case OBJ_INDEX_U16: if (tri_strip) - for (uint32_t i = 0; i < num_index; i++) { + for (int32_t i = 0; i < num_index; i++) { uint16_t idx = s.read_uint16_t(); index_array[i] = idx == 0xFFFF ? 0xFFFFFFFF : idx; } else - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) index_array[i] = s.read_uint16_t(); break; case OBJ_INDEX_U32: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) index_array[i] = s.read_uint32_t(); break; } @@ -1434,18 +1434,18 @@ static void obj_classic_read_index(obj_sub_mesh* sub_mesh, prj::shared_ptrindex_array; - uint32_t num_index = sub_mesh->num_index; + int32_t num_index = sub_mesh->num_index; switch (sub_mesh->index_format) { case OBJ_INDEX_U8: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint8_t((uint8_t)index_array[i]); break; case OBJ_INDEX_U16: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint16_t((uint16_t)index_array[i]); break; case OBJ_INDEX_U32: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint32_t(index_array[i]); break; } @@ -1465,9 +1465,9 @@ static void obj_classic_read_model(obj* obj, prj::shared_ptrbounding_sphere.center.y = s.read_float_t(); obj->bounding_sphere.center.z = s.read_float_t(); obj->bounding_sphere.radius = s.read_float_t(); - obj->num_mesh = s.read_uint32_t(); + obj->num_mesh = s.read_int32_t(); oh.mesh_array = s.read_uint32_t(); - obj->num_material = s.read_uint32_t(); + obj->num_material = s.read_int32_t(); oh.material_array = s.read_uint32_t(); obj->reserved[0] = s.read_uint32_t(); obj->reserved[1] = s.read_uint32_t(); @@ -1481,9 +1481,9 @@ static void obj_classic_read_model(obj* obj, prj::shared_ptrreserved[9] = s.read_uint32_t(); if (oh.mesh_array > 0) { - uint32_t num_mesh = obj->num_mesh; + int32_t num_mesh = obj->num_mesh; obj->mesh_array = alloc->allocate(num_mesh); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { s.set_position(base_offset + oh.mesh_array + mesh_size * i, SEEK_SET); obj_classic_read_model_mesh(&obj->mesh_array[i], alloc, s, base_offset); @@ -1493,7 +1493,7 @@ static void obj_classic_read_model(obj* obj, prj::shared_ptr 0) { s.set_position(base_offset + oh.material_array, SEEK_SET); obj->material_array = alloc->allocate(obj->num_material); - for (uint32_t i = 0; i < obj->num_material; i++) { + for (int32_t i = 0; i < obj->num_material; i++) { obj_material_data& mat_data = obj->material_array[i]; s.read_data(mat_data); @@ -1529,14 +1529,14 @@ static void obj_classic_write_model(obj* obj, stream& s, int64_t base_offset) { s.write_uint32_t(0); s.align_write(0x10); - uint32_t num_mesh = obj->num_mesh; + int32_t num_mesh = obj->num_mesh; obj_header oh = {}; if (num_mesh) { oh.mesh_array = s.get_position() - base_offset; obj_mesh_header* mhs = force_malloc(num_mesh); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; @@ -1560,14 +1560,14 @@ static void obj_classic_write_model(obj* obj, stream& s, int64_t base_offset) { s.write(sizeof(mesh->name)); } - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; if (num_submesh) { mh->submesh_array = s.get_position() - base_offset; - for (uint32_t j = 0; j < num_submesh; j++) { + for (int32_t j = 0; j < num_submesh; j++) { s.write(0x04); s.write_float_t(0.0f); s.write_float_t(0.0f); @@ -1591,7 +1591,7 @@ static void obj_classic_write_model(obj* obj, stream& s, int64_t base_offset) { obj_classic_write_vertex(mesh, s, mh->vertex, base_offset, &mh->num_vertex, &mh->format, &mh->size_vertex); - for (uint32_t j = 0; j < num_submesh; j++) { + for (int32_t j = 0; j < num_submesh; j++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[j]; obj_sub_mesh_header smh = {}; @@ -1626,7 +1626,7 @@ static void obj_classic_write_model(obj* obj, stream& s, int64_t base_offset) { } s.position_push(base_offset + oh.mesh_array, SEEK_SET); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; @@ -1661,7 +1661,7 @@ static void obj_classic_write_model(obj* obj, stream& s, int64_t base_offset) { if (obj->num_material) { oh.material_array = s.get_position() - base_offset; - for (uint32_t i = 0; i < obj->num_material; i++) { + for (int32_t i = 0; i < obj->num_material; i++) { obj_material_data mat_data = obj->material_array[i]; for (obj_material_texture_data& j : mat_data.material.texdata) mat4_transpose(&j.tex_coord_mat, &j.tex_coord_mat); @@ -1704,11 +1704,11 @@ static void obj_classic_read_model_mesh(obj_mesh* mesh, mesh->bounding_sphere.center.y = s.read_float_t(); mesh->bounding_sphere.center.z = s.read_float_t(); mesh->bounding_sphere.radius = s.read_float_t(); - mesh->num_submesh = s.read_uint32_t(); + mesh->num_submesh = s.read_int32_t(); mh.submesh_array = s.read_uint32_t(); mh.format = (obj_vertex_format_file)s.read_uint32_t(); - mh.size_vertex = s.read_uint32_t(); - mh.num_vertex = s.read_uint32_t(); + mh.size_vertex = s.read_int32_t(); + mh.num_vertex = s.read_int32_t(); for (int64_t& i : mh.vertex) i = s.read_uint32_t(); @@ -1725,9 +1725,9 @@ static void obj_classic_read_model_mesh(obj_mesh* mesh, mesh->name[sizeof(mesh->name) - 1] = 0; if (mh.submesh_array) { - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; mesh->submesh_array = alloc->allocate(num_submesh); - for (uint32_t i = 0; i < num_submesh; i++) { + for (int32_t i = 0; i < num_submesh; i++) { s.set_position(base_offset + mh.submesh_array + sub_mesh_size * i, SEEK_SET); obj_classic_read_model_sub_mesh(&mesh->submesh_array[i], alloc, s, base_offset); @@ -1747,14 +1747,14 @@ static void obj_classic_read_model_sub_mesh(obj_sub_mesh* sub_mesh, sub_mesh->bounding_sphere.center.y = s.read_float_t(); sub_mesh->bounding_sphere.center.z = s.read_float_t(); sub_mesh->bounding_sphere.radius = s.read_float_t(); - sub_mesh->material_index = s.read_uint32_t(); + sub_mesh->material_index = s.read_int32_t(); s.read(&sub_mesh->uv_index, 0x08); - sub_mesh->num_bone_index = s.read_uint32_t(); + sub_mesh->num_bone_index = s.read_int32_t(); smh.bone_index_array_offset = s.read_uint32_t(); sub_mesh->bones_per_vertex = s.read_uint32_t(); sub_mesh->primitive_type = (obj_primitive_type)s.read_uint32_t(); sub_mesh->index_format = (obj_index_format)s.read_uint32_t(); - sub_mesh->num_index = s.read_uint32_t(); + sub_mesh->num_index = s.read_int32_t(); smh.index_array_offset = s.read_uint32_t(); sub_mesh->attrib.w = s.read_uint32_t(); sub_mesh->bounding_box.center = sub_mesh->bounding_sphere.center; @@ -1782,7 +1782,7 @@ static obj_skin* obj_classic_read_skin(prj::shared_ptr all sh.bone_matrix_array_offset = s.read_uint32_t(); sh.bone_name_array_offset = s.read_uint32_t(); sh.ex_data_offset = s.read_uint32_t(); - sk->num_bone = s.read_uint32_t(); + sk->num_bone = s.read_int32_t(); sh.bone_parent_id_array_offset = s.read_uint32_t(); s.read(0, 0x0C); @@ -1790,12 +1790,12 @@ static obj_skin* obj_classic_read_skin(prj::shared_ptr all sk->bone_array = alloc->allocate(sk->num_bone); s.set_position(sh.bone_id_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].id = s.read_uint32_t(); if (sh.bone_matrix_array_offset) { s.set_position(sh.bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { mat4& mat = sk->bone_array[i].inv_bind_pose_mat; mat.row0.x = s.read_float_t(); mat.row1.x = s.read_float_t(); @@ -1818,13 +1818,13 @@ static obj_skin* obj_classic_read_skin(prj::shared_ptr all if (sh.bone_parent_id_array_offset) { s.set_position(sh.bone_parent_id_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].parent = s.read_uint32_t(); } if (sh.bone_name_array_offset) { s.set_position(sh.bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].name = obj_read_utf8_string_null_terminated_offset( alloc, s, s.read_uint32_t()); } @@ -1851,24 +1851,24 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) std::vector bone_names; if (sk->bone_array) { sh.bone_id_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) s.write_int32_t(sk->bone_array[i].id); s.align_write(0x10); sh.bone_parent_id_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) s.write_int32_t(sk->bone_array[i].parent); s.align_write(0x10); sh.bone_name_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { s.write_int32_t(0); obj_skin_strings_push_back_check(strings, sk->bone_array[i].name); } s.align_write(0x10); sh.bone_matrix_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { mat4& mat = sk->bone_array[i].inv_bind_pose_mat; s.write_float_t(mat.row0.x); s.write_float_t(mat.row1.x); @@ -1920,7 +1920,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (ex->num_osage_node) { exh.osage_node_array_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { s.write_int32_t(0); s.write_int32_t(0); s.write_int32_t(0); @@ -1928,7 +1928,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); exh.osage_sibling_info_array_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++) { s.write_int32_t(0); s.write_int32_t(0); s.write_int32_t(0); @@ -1941,7 +1941,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) exh.cloth_count = 0; exh.num_osage = 0; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type == OBJ_SKIN_BLOCK_CLOTH) exh.cloth_count++; @@ -1951,23 +1951,23 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (exh.num_osage || exh.cloth_count) { exh.osage_name_array_offset = s.get_position(); - for (uint32_t i = 0; i < exh.num_osage; i++) + for (int32_t i = 0; i < exh.num_osage; i++) s.write_int32_t(0); - for (uint32_t i = 0; i < exh.cloth_count; i++) + for (int32_t i = 0; i < exh.cloth_count; i++) s.write_int32_t(0); s.align_write(0x10); } const char** bone_name_array = ex->bone_name_array; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: { obj_skin_block_cloth* cloth = block->cloth; obj_skin_strings_push_back_check(strings, cloth->mesh_name); obj_skin_strings_push_back_check(strings, cloth->backface_mesh_name); - for (uint32_t k = 0; k < cloth->num_root; k++) { + for (int32_t k = 0; k < cloth->num_root; k++) { obj_skin_block_cloth_root* root_array = &cloth->root_array[k]; for (uint32_t l = 0; l < 4; l++) obj_skin_strings_push_back_check(strings, root_array->bone_weights[l].bone_name); @@ -2007,7 +2007,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } break; case OBJ_SKIN_BLOCK_EXPRESSION: { obj_skin_block_expression* expression = block->expression; - for (uint32_t j = 0; j < expression->num_expression; j++) + for (int32_t j = 0; j < expression->num_expression; j++) obj_skin_strings_push_back_check(strings, expression->expression_array[j]); obj_skin_strings_push_back_check(strings, expression->node.parent_name); obj_skin_strings_push_back_check_by_index(strings, @@ -2021,13 +2021,13 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) obj_skin_block_motion* motion = block->motion; obj_skin_strings_push_back_check(strings, motion->node.parent_name); obj_skin_strings_push_back_check(strings, motion->name); - for (uint32_t j = 0; j < motion->num_node; j++) + for (int32_t j = 0; j < motion->num_node; j++) obj_skin_strings_push_back_check_by_index(strings, bone_name_array, motion->node_array[j].name_index); obj_skin_strings_push_back_check(strings, "MOT"); obj_skin_strings_push_back_check(bone_names, motion->name); - for (uint32_t j = 0; j < motion->num_node; j++) + for (int32_t j = 0; j < motion->num_node; j++) obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, motion->node_array[j].name_index); } break; @@ -2038,14 +2038,14 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) bone_name_array, osage->name_index); obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage->external_name_index); - for (uint32_t j = 0; j < osage->count; j++) { + for (int32_t j = 0; j < osage->count; j++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[j]; obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage_node->name_index); int32_t name_index = osage->name_index; obj_skin_osage_sibling_info* osage_sibling_info = ex->osage_sibling_info_array; - for (uint32_t k = 0; k < ex->num_osage_sibling_info; k++) { + for (int32_t k = 0; k < ex->num_osage_sibling_info; k++) { if (name_index == osage_sibling_info->name_index) { obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage_sibling_info->sibling_name_index); @@ -2061,14 +2061,14 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage->external_name_index); - for (uint32_t j = 0; j < osage->count; j++) { + for (int32_t j = 0; j < osage->count; j++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[j]; obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage_node->name_index); int32_t name_index = osage->name_index; obj_skin_osage_sibling_info* osage_sibling_info = ex->osage_sibling_info_array; - for (uint32_t k = 0; k < ex->num_osage_sibling_info; k++) { + for (int32_t k = 0; k < ex->num_osage_sibling_info; k++) { if (name_index == osage_sibling_info->name_index) { obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage_sibling_info->sibling_name_index); @@ -2079,13 +2079,13 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } obj_skin_osage_node* child_osage_node = &ex->osage_node_array[osage->start_index]; - for (uint32_t j = 0; j < osage->count; j++) { + for (int32_t j = 0; j < osage->count; j++) { obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, child_osage_node->name_index); int32_t name_index = child_osage_node->name_index; obj_skin_osage_sibling_info* osage_sibling_info = ex->osage_sibling_info_array; - for (uint32_t k = 0; k < ex->num_osage_sibling_info; k++) { + for (int32_t k = 0; k < ex->num_osage_sibling_info; k++) { if (name_index == osage_sibling_info->name_index) { obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage_sibling_info->sibling_name_index); @@ -2112,7 +2112,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (ex->num_block > 0) { exh.block_array_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { s.write_int32_t(0); s.write_int32_t(0); } @@ -2121,7 +2121,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); bhs = force_malloc(ex->num_block); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -2144,7 +2144,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } s.align_write(0x10); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_EXPRESSION) continue; @@ -2155,7 +2155,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } s.align_write(0x10); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2176,7 +2176,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } s.align_write(0x10); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -2208,7 +2208,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); int32_t motion_block_count = 0; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -2222,7 +2222,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (exh.num_osage) { osage_block_node = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -2235,7 +2235,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (motion_block_count) { motion_block_node_mats = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -2246,7 +2246,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); motion_block_node_name_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -2259,7 +2259,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (exh.cloth_count) { cloth_mats = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2271,7 +2271,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); cloth_root = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2283,7 +2283,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); cloth_nodes = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2294,7 +2294,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); cloth_mesh_indices = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2305,7 +2305,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.align_write(0x10); cloth_backface_mesh_indices = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2339,7 +2339,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) int64_t osg_offset = obj_skin_strings_get_string_offset(strings, string_offsets, "OSG"); if (ex->num_block > 0) { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -2362,7 +2362,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) string_offsets, "Distance"); const char** bone_name_array = ex->bone_name_array; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -2373,7 +2373,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_EXPRESSION) continue; @@ -2384,7 +2384,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -2396,7 +2396,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -2407,7 +2407,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type == OBJ_SKIN_BLOCK_CLOTH) { obj_skin_block_cloth* cloth = block->cloth; @@ -2421,7 +2421,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) } s.position_push(exh.block_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: @@ -2459,7 +2459,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) if (sk->bone_array) { s.position_push(sh.bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { size_t str_offset = obj_skin_strings_get_string_offset( strings, string_offsets, sk->bone_array[i].name); s.write_uint32_t((uint32_t)str_offset); @@ -2480,7 +2480,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); s.position_push(exh.osage_node_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[i]; s.write_uint32_t(osage_node->name_index); s.write_float_t(osage_node->length); @@ -2489,7 +2489,7 @@ static void obj_classic_write_skin(obj_skin* sk, stream& s, int64_t base_offset) s.position_pop(); s.position_push(exh.osage_sibling_info_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++) { obj_skin_osage_sibling_info* osage_sibling_info = &ex->osage_sibling_info_array[i]; s.write_uint32_t(osage_sibling_info->name_index); s.write_uint32_t(osage_sibling_info->sibling_name_index); @@ -2549,16 +2549,16 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptrnum_osage_node = s.read_uint32_t(); + exh.num_osage = s.read_int32_t(); + ex->num_osage_node = s.read_int32_t(); s.read(0, 0x04); exh.osage_node_array_offset = s.read_uint32_t(); exh.osage_name_array_offset = s.read_uint32_t(); exh.block_array_offset = s.read_uint32_t(); - exh.num_bone_name = s.read_uint32_t(); + exh.num_bone_name = s.read_int32_t(); exh.bone_name_array_offset = s.read_uint32_t(); exh.osage_sibling_info_array_offset = s.read_uint32_t(); - exh.cloth_count = s.read_uint32_t(); + exh.cloth_count = s.read_int32_t(); ex->reserved[0] = s.read_uint32_t(); ex->reserved[1] = s.read_uint32_t(); ex->reserved[2] = s.read_uint32_t(); @@ -2572,7 +2572,7 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptrallocate(num_bone_name); if (!bone_name_array) return ex; @@ -2581,7 +2581,7 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptrnum_bone_name = num_bone_name; s.set_position(exh.bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < num_bone_name; i++) { + for (int32_t i = 0; i < num_bone_name; i++) { int32_t string_offset = s.read_uint32_t(); if (string_offset) bone_name_array[i] = obj_read_utf8_string_null_terminated_offset(alloc, s, string_offset); @@ -2593,7 +2593,7 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptrosage_node_array = alloc->allocate(ex->num_osage_node); s.set_position(exh.osage_node_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[i]; osage_node->name_index = s.read_uint32_t(); @@ -2612,13 +2612,13 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptr(ex->num_block); s.set_position(exh.block_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { bhs[i].block_signature_offset = s.read_uint32_t(); bhs[i].block_offset = s.read_uint32_t(); } ex->block_array = alloc->allocate(ex->num_block); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; std::string block_signature = s.read_string_null_terminated_offset( @@ -2675,14 +2675,14 @@ static obj_skin_ex_data* obj_classic_read_skin_ex_data(prj::shared_ptr(ex->num_osage_sibling_info); ex->osage_sibling_info_array = osi; s.set_position(exh.osage_sibling_info_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++, osi++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++, osi++) { osi->name_index = s.read_uint32_t(); osi->sibling_name_index = s.read_uint32_t(); osi->max_distance = s.read_float_t(); } } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -2711,8 +2711,8 @@ static obj_skin_block_cloth* obj_classic_read_skin_block_cloth( uint32_t mesh_name_offset = s.read_uint32_t(); uint32_t backface_mesh_name_offset = s.read_uint32_t(); cls->field_8 = s.read_uint32_t(); - cls->num_root = s.read_uint32_t(); - cls->num_node = s.read_uint32_t(); + cls->num_root = s.read_int32_t(); + cls->num_node = s.read_int32_t(); cls->field_14 = s.read_uint32_t(); uint32_t mat_array_offset = s.read_uint32_t(); uint32_t root_array_offset = s.read_uint32_t(); @@ -2729,7 +2729,7 @@ static obj_skin_block_cloth* obj_classic_read_skin_block_cloth( int32_t max_matrix_index = -1; s.position_push(root_array_offset, SEEK_SET); - for (uint32_t i = 0; i < cls->num_root; i++) { + for (int32_t i = 0; i < cls->num_root; i++) { s.read(0x28); for (uint32_t j = 0; j < 4; j++) { uint32_t name_offset = s.read_uint32_t(); @@ -2745,7 +2745,7 @@ static obj_skin_block_cloth* obj_classic_read_skin_block_cloth( cls->num_mat = max_matrix_index > -1 ? max_matrix_index + 1 : 0; cls->mat_array = alloc->allocate(cls->num_mat); s.position_push(mat_array_offset, SEEK_SET); - for (uint32_t i = 0; i < cls->num_mat; i++) { + for (int32_t i = 0; i < cls->num_mat; i++) { mat4& mat = cls->mat_array[i]; mat.row0.x = s.read_float_t(); mat.row1.x = s.read_float_t(); @@ -2770,7 +2770,7 @@ static obj_skin_block_cloth* obj_classic_read_skin_block_cloth( if (root_array_offset) { s.position_push(root_array_offset, SEEK_SET); cls->root_array = alloc->allocate(cls->num_root); - for (uint32_t i = 0; i < cls->num_root; i++) + for (int32_t i = 0; i < cls->num_root; i++) obj_classic_read_skin_block_cloth_root(&cls->root_array[i], alloc, s, str); s.position_pop(); } @@ -2779,8 +2779,8 @@ static obj_skin_block_cloth* obj_classic_read_skin_block_cloth( s.position_push(node_array_offset, SEEK_SET); cls->node_array = alloc->allocate( cls->num_root * (cls->num_node - 1ULL)); - for (uint32_t i = 0; i < cls->num_node - 1; i++) - for (uint32_t j = 0; j < cls->num_root; j++) { + for (int32_t i = 0; i < cls->num_node - 1; i++) + for (int32_t j = 0; j < cls->num_root; j++) { obj_skin_block_cloth_node* f = &cls->node_array[i * cls->num_root + j]; f->flags = s.read_uint32_t(); f->trans.x = s.read_float_t(); @@ -2849,7 +2849,7 @@ static void obj_classic_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->mat_array) { s.position_push(*mat_array_offset, SEEK_SET); - for (uint32_t i = 0; i < cls->num_mat; i++) { + for (int32_t i = 0; i < cls->num_mat; i++) { mat4& mat = cls->mat_array[i]; s.write_float_t(mat.row0.x); s.write_float_t(mat.row1.x); @@ -2874,9 +2874,9 @@ static void obj_classic_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->root_array) { s.position_push(*root_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; + int32_t num_root = cls->num_root; obj_skin_block_cloth_root* root_array = cls->root_array; - for (uint32_t i = 0; i < num_root; i++) + for (int32_t i = 0; i < num_root; i++) obj_classic_write_skin_block_cloth_root(&root_array[i], s, strings, string_offsets); s.position_pop(); @@ -2886,11 +2886,11 @@ static void obj_classic_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->node_array) { s.position_push(*node_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; - uint32_t num_node = cls->num_node; + int32_t num_root = cls->num_root; + int32_t num_node = cls->num_node; obj_skin_block_cloth_node* node_array = cls->node_array; - for (uint32_t i = 0; i < num_node - 1; i++) - for (uint32_t j = 0; j < num_root; j++) { + for (int32_t i = 0; i < num_node - 1; i++) + for (int32_t j = 0; j < num_root; j++) { obj_skin_block_cloth_node* f = &node_array[i * cls->num_root + j]; s.write_uint32_t(f->flags); s.write_float_t(f->trans.x); @@ -3197,17 +3197,17 @@ static obj_skin_block_expression* obj_classic_read_skin_block_expression( } free_def(name); - uint32_t num_expression = s.read_uint32_t(); - num_expression = min_def(num_expression, 9u); + int32_t num_expression = s.read_int32_t(); + num_expression = min_def(num_expression, 9); exp->num_expression = num_expression; - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { uint32_t expression_offset = s.read_uint32_t(); if (expression_offset) exp->expression_array[i] = obj_read_utf8_string_null_terminated_offset(alloc, s, expression_offset); } - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) exp->expression_array[i] = 0; return exp; } @@ -3221,16 +3221,16 @@ static void obj_classic_write_skin_block_expression(obj_skin_block_expression* e string_offsets, bone_name_array, exp->name_index); s.write_uint32_t((uint32_t)name_offset); - uint32_t num_expression = exp->num_expression; - num_expression = min_def(num_expression, 9u); + int32_t num_expression = exp->num_expression; + num_expression = min_def(num_expression, 9); s.write_int32_t(num_expression); - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { int64_t expression_offset = obj_skin_strings_get_string_offset(strings, string_offsets, exp->expression_array[i]); s.write_uint32_t((uint32_t)expression_offset); } - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) s.write_int32_t(0); } @@ -3240,7 +3240,7 @@ static obj_skin_block_motion* obj_classic_read_skin_block_motion( obj_classic_read_skin_block_node(&mot->node, alloc, s, str); uint32_t name_offset = s.read_uint32_t(); - mot->num_node = s.read_uint32_t(); + mot->num_node = s.read_int32_t(); uint32_t bone_name_array_offset = s.read_uint32_t(); uint32_t bone_matrix_array_offset = s.read_uint32_t(); @@ -3263,14 +3263,14 @@ static obj_skin_block_motion* obj_classic_read_skin_block_motion( if (bone_name_array_offset) { s.position_push(bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) + for (int32_t i = 0; i < mot->num_node; i++) mot->node_array[i].name_index = s.read_uint32_t(); s.position_pop(); } if (bone_matrix_array_offset) { s.position_push(bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) { + for (int32_t i = 0; i < mot->num_node; i++) { mat4& mat = mot->node_array[i].inv_bind_pose_mat; mat.row0.x = s.read_float_t(); mat.row1.x = s.read_float_t(); @@ -3308,13 +3308,13 @@ static void obj_classic_write_skin_block_motion(obj_skin_block_motion* mot, if (mot->node_array) { s.position_push(*bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) + for (int32_t i = 0; i < mot->num_node; i++) s.write_uint32_t(mot->node_array[i].name_index); s.position_pop(); *bone_name_array_offset += mot->num_node * sizeof(uint32_t); s.position_push(*bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) { + for (int32_t i = 0; i < mot->num_node; i++) { mat4& mat = mot->node_array[i].inv_bind_pose_mat; s.write_float_t(mat.row0.x); s.write_float_t(mat.row1.x); @@ -3397,7 +3397,7 @@ static obj_skin_block_osage* obj_classic_read_skin_block_osage( osg->skin_param = obj_classic_read_skin_param( alloc, s, str); else { s.set_position(offset, SEEK_SET); - for (uint32_t i = 0; i < osg->num_node; i++) { + for (int32_t i = 0; i < osg->num_node; i++) { obj_skin_osage_node* node = &osg->node_array[i]; node->name_index = s.read_uint32_t(); node->length = s.read_float_t(); @@ -3433,7 +3433,7 @@ static void obj_classic_write_skin_block_osage(obj_skin_block_osage* osg, if (!osg->skin_param && osg->node_array) { s.position_push(*node_array_offset, SEEK_SET); - for (uint32_t i = 0; i < osg->num_node; i++) { + for (int32_t i = 0; i < osg->num_node; i++) { obj_skin_osage_node* node = &osg->node_array[i]; s.write_uint32_t(node->name_index); s.write_float_t(node->length); @@ -3540,7 +3540,7 @@ static void obj_classic_write_skin_param(obj_skin_skin_param* skp, } static void obj_classic_read_vertex(obj_mesh* mesh, - prj::shared_ptr alloc, stream& s, int64_t* vertex, int64_t base_offset, uint32_t num_vertex, + prj::shared_ptr alloc, stream& s, int64_t* vertex, int64_t base_offset, int32_t num_vertex, obj_vertex_format_file vertex_format_file) { obj_vertex_format vertex_format = OBJ_VERTEX_NONE; if (vertex_format_file & OBJ_VERTEX_FILE_POSITION) @@ -3591,21 +3591,21 @@ static void obj_classic_read_vertex(obj_mesh* mesh, s.set_position(base_offset + vertex[i], SEEK_SET); switch (attribute) { case OBJ_VERTEX_FILE_POSITION: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].position.x = s.read_float_t(); vtx[j].position.y = s.read_float_t(); vtx[j].position.z = s.read_float_t(); } break; case OBJ_VERTEX_FILE_NORMAL: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].normal.x = s.read_float_t(); vtx[j].normal.y = s.read_float_t(); vtx[j].normal.z = s.read_float_t(); } break; case OBJ_VERTEX_FILE_TANGENT: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].tangent.x = s.read_float_t(); vtx[j].tangent.y = s.read_float_t(); vtx[j].tangent.z = s.read_float_t(); @@ -3613,38 +3613,38 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } break; case OBJ_VERTEX_FILE_BINORMAL: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].binormal.x = s.read_float_t(); vtx[j].binormal.y = s.read_float_t(); vtx[j].binormal.z = s.read_float_t(); } break; case OBJ_VERTEX_FILE_TEXCOORD0: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].texcoord0.x = s.read_float_t(); vtx[j].texcoord0.y = s.read_float_t(); } break; case OBJ_VERTEX_FILE_TEXCOORD1: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].texcoord1.x = s.read_float_t(); vtx[j].texcoord1.y = s.read_float_t(); } break; case OBJ_VERTEX_FILE_TEXCOORD2: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].texcoord2.x = s.read_float_t(); vtx[j].texcoord2.y = s.read_float_t(); } break; case OBJ_VERTEX_FILE_TEXCOORD3: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].texcoord3.x = s.read_float_t(); vtx[j].texcoord3.y = s.read_float_t(); } break; case OBJ_VERTEX_FILE_COLOR0: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].color0.x = s.read_float_t(); vtx[j].color0.y = s.read_float_t(); vtx[j].color0.z = s.read_float_t(); @@ -3652,7 +3652,7 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } break; case OBJ_VERTEX_FILE_COLOR1: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].color1.x = s.read_float_t(); vtx[j].color1.y = s.read_float_t(); vtx[j].color1.z = s.read_float_t(); @@ -3660,7 +3660,7 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } break; case OBJ_VERTEX_FILE_BONE_WEIGHT: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].bone_weight.x = s.read_float_t(); vtx[j].bone_weight.y = s.read_float_t(); vtx[j].bone_weight.z = s.read_float_t(); @@ -3668,7 +3668,7 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } break; case OBJ_VERTEX_FILE_BONE_INDEX: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { int32_t bone_index_x = (int32_t)s.read_float_t(); int32_t bone_index_y = (int32_t)s.read_float_t(); int32_t bone_index_z = (int32_t)s.read_float_t(); @@ -3680,7 +3680,7 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } break; case OBJ_VERTEX_FILE_UNKNOWN: - for (uint32_t j = 0; j < num_vertex; j++) { + for (int32_t j = 0; j < num_vertex; j++) { vtx[j].unknown.x = s.read_float_t(); vtx[j].unknown.y = s.read_float_t(); vtx[j].unknown.z = s.read_float_t(); @@ -3691,7 +3691,7 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } if (vertex_format_file & (OBJ_VERTEX_FILE_BONE_WEIGHT | OBJ_VERTEX_FILE_BONE_INDEX)) - for (uint32_t i = 0; i < num_vertex; i++) + for (int32_t i = 0; i < num_vertex; i++) obj_vertex_validate_bone_data(vtx[i].bone_weight, vtx[i].bone_index); mesh->vertex_array = vtx; @@ -3701,14 +3701,14 @@ static void obj_classic_read_vertex(obj_mesh* mesh, } static void obj_classic_write_vertex(obj_mesh* mesh, - stream& s, int64_t* vertex, int64_t base_offset, uint32_t* num_vertex, - obj_vertex_format_file* vertex_format_file, uint32_t* size_vertex) { + stream& s, int64_t* vertex, int64_t base_offset, int32_t* num_vertex, + obj_vertex_format_file* vertex_format_file, int32_t* size_vertex) { obj_vertex_data* vtx = mesh->vertex_array; - uint32_t _num_vertex = mesh->num_vertex; + int32_t _num_vertex = mesh->num_vertex; obj_vertex_format vertex_format = mesh->vertex_format; obj_vertex_format_file _vertex_format_file = (obj_vertex_format_file)0; - uint32_t _size_vertex = 0; + int32_t _size_vertex = 0; if (vertex_format & OBJ_VERTEX_POSITION) { enum_or(_vertex_format_file, OBJ_VERTEX_FILE_POSITION); _size_vertex += 0x0C; @@ -3774,7 +3774,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_POSITION) { vertex[0] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].position.x); s.write_float_t(vtx[i].position.y); s.write_float_t(vtx[i].position.z); @@ -3783,7 +3783,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_NORMAL) { vertex[1] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].normal.x); s.write_float_t(vtx[i].normal.y); s.write_float_t(vtx[i].normal.z); @@ -3792,7 +3792,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_TANGENT) { vertex[2] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].tangent.x); s.write_float_t(vtx[i].tangent.y); s.write_float_t(vtx[i].tangent.z); @@ -3802,7 +3802,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_BINORMAL) { vertex[3] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].binormal.x); s.write_float_t(vtx[i].binormal.y); s.write_float_t(vtx[i].binormal.z); @@ -3811,7 +3811,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_TEXCOORD0) { vertex[4] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].texcoord0.x); s.write_float_t(vtx[i].texcoord0.y); } @@ -3819,7 +3819,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_BONE_WEIGHT) { vertex[10] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].bone_weight.x); s.write_float_t(vtx[i].bone_weight.y); s.write_float_t(vtx[i].bone_weight.z); @@ -3829,7 +3829,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_BONE_INDEX) { vertex[11] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].bone_index.x >= 0 ? (float_t)(vtx[i].bone_index.x * 3) : -1.0f); s.write_float_t(vtx[i].bone_index.y >= 0 ? (float_t)(vtx[i].bone_index.y * 3) : -1.0f); s.write_float_t(vtx[i].bone_index.z >= 0 ? (float_t)(vtx[i].bone_index.z * 3) : -1.0f); @@ -3839,7 +3839,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_TEXCOORD1) { vertex[5] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].texcoord1.x); s.write_float_t(vtx[i].texcoord1.y); } @@ -3847,7 +3847,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_TEXCOORD2) { vertex[6] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].texcoord2.x); s.write_float_t(vtx[i].texcoord2.y); } @@ -3855,7 +3855,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_TEXCOORD3) { vertex[7] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].texcoord3.x); s.write_float_t(vtx[i].texcoord3.y); } @@ -3863,7 +3863,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_COLOR0) { vertex[8] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].color0.x); s.write_float_t(vtx[i].color0.y); s.write_float_t(vtx[i].color0.z); @@ -3873,7 +3873,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_COLOR1) { vertex[9] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].color1.x); s.write_float_t(vtx[i].color1.y); s.write_float_t(vtx[i].color1.z); @@ -3883,7 +3883,7 @@ static void obj_classic_write_vertex(obj_mesh* mesh, if (_vertex_format_file & OBJ_VERTEX_FILE_UNKNOWN) { vertex[12] = s.get_position() - base_offset; - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { s.write_float_t(vtx[i].unknown.x); s.write_float_t(vtx[i].unknown.y); s.write_float_t(vtx[i].unknown.z); @@ -3918,34 +3918,34 @@ static void obj_set_modern_read_inner(obj_set* set, prj::shared_ptrobj_num = s_mosd.read_uint32_t_reverse_endianness(); + set->obj_num = s_mosd.read_int32_t_reverse_endianness(); osh.last_obj_id = s_mosd.read_uint32_t_reverse_endianness(); osh.obj_data = s_mosd.read_offset_f2(header_length); osh.obj_skin_data = s_mosd.read_offset_f2(header_length); osh.obj_name_data = s_mosd.read_offset_f2(header_length); osh.obj_id_data = s_mosd.read_offset_f2(header_length); osh.tex_id_data = s_mosd.read_offset_f2(header_length); - set->tex_id_num = s_mosd.read_uint32_t_reverse_endianness(); + set->tex_id_num = s_mosd.read_int32_t_reverse_endianness(); set->reserved[0] = s_mosd.read_uint32_t_reverse_endianness(); set->reserved[1] = s_mosd.read_uint32_t_reverse_endianness(); } else { - set->obj_num = s_mosd.read_uint32_t_reverse_endianness(); + set->obj_num = s_mosd.read_int32_t_reverse_endianness(); osh.last_obj_id = s_mosd.read_uint32_t_reverse_endianness(); osh.obj_data = s_mosd.read_offset_x(); osh.obj_skin_data = s_mosd.read_offset_x(); osh.obj_name_data = s_mosd.read_offset_x(); osh.obj_id_data = s_mosd.read_offset_x(); osh.tex_id_data = s_mosd.read_offset_x(); - set->tex_id_num = s_mosd.read_uint32_t_reverse_endianness(); + set->tex_id_num = s_mosd.read_int32_t_reverse_endianness(); set->reserved[0] = s_mosd.read_uint32_t_reverse_endianness(); set->reserved[1] = s_mosd.read_uint32_t_reverse_endianness(); } - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; set->obj_data = alloc->allocate(obj_num); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) set->obj_data[i] = alloc->allocate<::obj>(); int64_t* data = force_malloc(obj_num * 3ULL); @@ -3955,10 +3955,10 @@ static void obj_set_modern_read_inner(obj_set* set, prj::shared_ptrobj_data[i]; if (osh.obj_name_data && obj_name_data[i]) { obj->name = obj_read_utf8_string_null_terminated_offset(alloc, s_mosd, obj_name_data[i]); @@ -3999,7 +3999,7 @@ static void obj_set_modern_read_inner(obj_set* set, prj::shared_ptrobj_data[i]->id = s_mosd.read_uint32_t_reverse_endianness(); } @@ -4007,10 +4007,10 @@ static void obj_set_modern_read_inner(obj_set* set, prj::shared_ptrtex_id_num; + int32_t tex_id_num = set->tex_id_num; uint32_t* tex_id_data = alloc->allocate(tex_id_num); set->tex_id_data = tex_id_data; - for (uint32_t i = 0; i < tex_id_num; i++) + for (int32_t i = 0; i < tex_id_num; i++) tex_id_data[i] = s_mosd.read_uint32_t_reverse_endianness(); } @@ -4091,7 +4091,7 @@ static void obj_set_modern_write_inner(obj_set* set, stream& s) { obj_set_header osh = {}; osh.last_obj_id = -1; - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; if (!is_x) { ee = { 0, 1, 44, 1 }; @@ -4177,43 +4177,43 @@ static void obj_set_modern_write_inner(obj_set* set, stream& s) { osh.obj_data = s_mosd.get_position(); if (!is_x) - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_f2(0, 0x20); else - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_x(0); s_mosd.align_write(0x10); osh.obj_skin_data = s_mosd.get_position(); if (!is_x) - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_f2(0, 0x20); else - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_x(0); s_mosd.align_write(0x10); osh.obj_name_data = s_mosd.get_position(); if (!is_x) - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) io_write_offset_f2_pof_add(s_mosd, 0, 0x20, &pof); else - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) io_write_offset_x_pof_add(s_mosd, 0, &pof); s_mosd.align_write(0x10); osh.obj_id_data = s_mosd.get_position(); - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_uint32_t_reverse_endianness(set->obj_data[i]->id); s_mosd.align_write(0x10); osh.tex_id_data = s_mosd.get_position(); - for (uint32_t i = 0; i < set->tex_id_num; i++) + for (int32_t i = 0; i < set->tex_id_num; i++) s_mosd.write_uint32_t_reverse_endianness(set->tex_id_data[i]); s_mosd.align_write(0x10); int64_t* obj_name_data = force_malloc(obj_num); - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj_name_data[i] = (int32_t)s_mosd.get_position(); s_mosd.write_utf8_string_null_terminated(set->obj_data[i]->name); } @@ -4221,10 +4221,10 @@ static void obj_set_modern_write_inner(obj_set* set, stream& s) { s_mosd.position_push(osh.obj_name_data, SEEK_SET); if (!is_x) - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_f2(obj_name_data[i], 0x20); else - for (uint32_t i = 0; i < obj_num; i++) + for (int32_t i = 0; i < obj_num; i++) s_mosd.write_offset_x(obj_name_data[i]); s_mosd.position_pop(); free_def(obj_name_data); @@ -4259,7 +4259,7 @@ static void obj_set_modern_write_inner(obj_set* set, stream& s) { s_mosd.position_pop(); f2_struct st; - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj* obj = set->obj_data[i]; st.sub_structs.push_back({}); @@ -4320,22 +4320,22 @@ static void obj_set_modern_write_inner(obj_set* set, stream& s) { static void obj_modern_read_index(obj_sub_mesh* sub_mesh, prj::shared_ptr alloc, stream& s) { bool tri_strip = sub_mesh->primitive_type == OBJ_PRIMITIVE_TRIANGLE_STRIP; uint32_t* index_array = alloc->allocate(sub_mesh->num_index); - uint32_t num_index = sub_mesh->num_index; + int32_t num_index = sub_mesh->num_index; switch (sub_mesh->index_format) { case OBJ_INDEX_U8: - for (uint32_t i = 0; i < num_index; i++) { + for (int32_t i = 0; i < num_index; i++) { uint8_t idx = s.read_uint8_t(); index_array[i] = tri_strip && idx == 0xFF ? 0xFFFFFFFF : idx; } break; case OBJ_INDEX_U16: - for (uint32_t i = 0; i < num_index; i++) { + for (int32_t i = 0; i < num_index; i++) { uint16_t idx = s.read_uint16_t_reverse_endianness(); index_array[i] = tri_strip && idx == 0xFFFF ? 0xFFFFFFFF : idx; } break; case OBJ_INDEX_U32: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) index_array[i] = s.read_uint32_t_reverse_endianness(); break; } @@ -4381,18 +4381,18 @@ static void obj_modern_write_index(obj_sub_mesh* sub_mesh, } uint32_t* index_array = sub_mesh->index_array; - uint32_t num_index = sub_mesh->num_index; + int32_t num_index = sub_mesh->num_index; switch (sub_mesh->index_format) { case OBJ_INDEX_U8: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint8_t((uint8_t)index_array[i]); break; case OBJ_INDEX_U16: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint16_t_reverse_endianness((uint16_t)index_array[i]); break; case OBJ_INDEX_U32: - for (uint32_t i = 0; i < num_index; i++) + for (int32_t i = 0; i < num_index; i++) s.write_uint32_t_reverse_endianness(index_array[i]); break; } @@ -4414,9 +4414,9 @@ static void obj_modern_read_model(obj* obj, prj::shared_ptrbounding_sphere.center.y = s.read_float_t_reverse_endianness(); obj->bounding_sphere.center.z = s.read_float_t_reverse_endianness(); obj->bounding_sphere.radius = s.read_float_t_reverse_endianness(); - obj->num_mesh = s.read_uint32_t_reverse_endianness(); + obj->num_mesh = s.read_int32_t_reverse_endianness(); oh.mesh_array = s.read_offset_f2(header_length); - obj->num_material = s.read_uint32_t_reverse_endianness(); + obj->num_material = s.read_int32_t_reverse_endianness(); oh.material_array = s.read_offset_f2(header_length); obj->reserved[0] = s.read_uint32_t_reverse_endianness(); obj->reserved[1] = s.read_uint32_t_reverse_endianness(); @@ -4432,8 +4432,8 @@ static void obj_modern_read_model(obj* obj, prj::shared_ptrnum_mesh = s.read_uint32_t_reverse_endianness(); - obj->num_material = s.read_uint32_t_reverse_endianness(); + obj->num_mesh = s.read_int32_t_reverse_endianness(); + obj->num_material = s.read_int32_t_reverse_endianness(); obj->bounding_sphere.center.x = s.read_float_t_reverse_endianness(); obj->bounding_sphere.center.y = s.read_float_t_reverse_endianness(); obj->bounding_sphere.center.z = s.read_float_t_reverse_endianness(); @@ -4456,9 +4456,9 @@ static void obj_modern_read_model(obj* obj, prj::shared_ptr 0) { - uint32_t num_mesh = obj->num_mesh; + int32_t num_mesh = obj->num_mesh; obj->mesh_array = alloc->allocate(num_mesh); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { s.set_position(base_offset + oh.mesh_array + mesh_size * i, SEEK_SET); obj_modern_read_model_mesh(&obj->mesh_array[i], alloc, s, base_offset, @@ -4471,7 +4471,7 @@ static void obj_modern_read_model(obj* obj, prj::shared_ptrmaterial_array = alloc->allocate(obj->num_material); - for (uint32_t i = 0; i < obj->num_material; i++) { + for (int32_t i = 0; i < obj->num_material; i++) { obj_material_data& mat_data = obj->material_array[i]; s.read_data(mat_data); @@ -4523,7 +4523,7 @@ static void obj_modern_write_model(obj* obj, stream& s, off = 112; } - uint32_t num_mesh = obj->num_mesh; + int32_t num_mesh = obj->num_mesh; if (!is_x) { ee = { off, 1, 216, (uint32_t)num_mesh }; @@ -4543,7 +4543,7 @@ static void obj_modern_write_model(obj* obj, stream& s, } uint32_t total_sub_meshes = 0; - for (uint32_t i = 0; i < num_mesh; i++) + for (int32_t i = 0; i < num_mesh; i++) total_sub_meshes += obj->mesh_array[i].num_submesh; if (!is_x) { @@ -4592,10 +4592,10 @@ static void obj_modern_write_model(obj* obj, stream& s, } int32_t total_bone_indices_count = 0; - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; - uint32_t num_submesh = mesh->num_submesh; - for (uint32_t j = 0; j < num_submesh; j++) { + int32_t num_submesh = mesh->num_submesh; + for (int32_t j = 0; j < num_submesh; j++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[i]; if (sub_mesh->bones_per_vertex == 4) total_bone_indices_count += sub_mesh->num_bone_index; @@ -4676,7 +4676,7 @@ static void obj_modern_write_model(obj* obj, stream& s, obj_mesh_header* mhs = force_malloc(num_mesh); obj_sub_mesh_header** smhss = force_malloc(num_mesh); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; s.write(0x04); @@ -4703,15 +4703,15 @@ static void obj_modern_write_model(obj* obj, stream& s, s.write(sizeof(mesh->name)); } - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; mh->format = OBJ_VERTEX_FILE_MODERN_STORAGE; - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; if (num_submesh) { mh->submesh_array = s.get_position() - base_offset; - for (uint32_t j = 0; j < num_submesh; j++) { + for (int32_t j = 0; j < num_submesh; j++) { s.write(0x04); s.write_float_t(0.0f); s.write_float_t(0.0f); @@ -4746,16 +4746,16 @@ static void obj_modern_write_model(obj* obj, stream& s, &mh->vertex_format_index, &mh->num_vertex, &mh->size_vertex, ovtx); } - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; obj_sub_mesh_header* smhs = 0; - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; if (num_submesh) { smhs = force_malloc(num_submesh); smhss[i] = smhs; - for (uint32_t j = 0; j < num_submesh; j++) { + for (int32_t j = 0; j < num_submesh; j++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[j]; obj_sub_mesh_header* smh = &smhs[j]; @@ -4771,15 +4771,15 @@ static void obj_modern_write_model(obj* obj, stream& s, } s.align_write(is_x ? 0x10 : 0x04); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; obj_sub_mesh_header* smhs = smhss[i]; - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; if (num_submesh) { s.position_push(base_offset + mh->submesh_array, SEEK_SET); - for (uint32_t j = 0; j < num_submesh; j++) { + for (int32_t j = 0; j < num_submesh; j++) { obj_sub_mesh* sub_mesh = &mesh->submesh_array[j]; obj_sub_mesh_header* smh = &smhs[j]; @@ -4808,8 +4808,8 @@ static void obj_modern_write_model(obj* obj, stream& s, uint32_t index_max = 0; uint32_t* index = sub_mesh->index_array; - uint32_t num_index = sub_mesh->num_index; - for (uint32_t k = 0; k < num_index; k++, index++) + int32_t num_index = sub_mesh->num_index; + for (int32_t k = 0; k < num_index; k++, index++) if (index_max < *index) index_max = *index; @@ -4835,7 +4835,7 @@ static void obj_modern_write_model(obj* obj, stream& s, } s.position_push(base_offset + oh.mesh_array, SEEK_SET); - for (uint32_t i = 0; i < num_mesh; i++) { + for (int32_t i = 0; i < num_mesh; i++) { obj_mesh* mesh = &obj->mesh_array[i]; obj_mesh_header* mh = &mhs[i]; @@ -4877,7 +4877,7 @@ static void obj_modern_write_model(obj* obj, stream& s, if (obj->material_array) { oh.material_array = s.get_position() - base_offset; - for (uint32_t i = 0; i < obj->num_material; i++) { + for (int32_t i = 0; i < obj->num_material; i++) { obj_material_data mat_data = obj->material_array[i]; for (obj_material_texture_data& j : mat_data.material.texdata) mat4_transpose(&j.tex_coord_mat, &j.tex_coord_mat); @@ -4969,11 +4969,11 @@ static void obj_modern_read_model_mesh(obj_mesh* mesh, mesh->bounding_sphere.center.y = s.read_float_t_reverse_endianness(); mesh->bounding_sphere.center.z = s.read_float_t_reverse_endianness(); mesh->bounding_sphere.radius = s.read_float_t_reverse_endianness(); - mesh->num_submesh = s.read_uint32_t_reverse_endianness(); + mesh->num_submesh = s.read_int32_t_reverse_endianness(); mh.submesh_array = s.read_offset(header_length, is_x); mh.format = (obj_vertex_format_file)s.read_uint32_t_reverse_endianness(); - mh.size_vertex = s.read_uint32_t_reverse_endianness(); - mh.num_vertex = s.read_uint32_t_reverse_endianness(); + mh.size_vertex = s.read_int32_t_reverse_endianness(); + mh.num_vertex = s.read_int32_t_reverse_endianness(); if (!is_x) for (int64_t& i : mh.vertex) @@ -4994,9 +4994,9 @@ static void obj_modern_read_model_mesh(obj_mesh* mesh, mesh->name[sizeof(mesh->name) - 1] = 0; if (mh.submesh_array) { - uint32_t num_submesh = mesh->num_submesh; + int32_t num_submesh = mesh->num_submesh; mesh->submesh_array = alloc->allocate(num_submesh); - for (uint32_t i = 0; i < num_submesh; i++) { + for (int32_t i = 0; i < num_submesh; i++) { s.set_position(base_offset + mh.submesh_array + sub_mesh_size * i, SEEK_SET); obj_modern_read_model_sub_mesh(&mesh->submesh_array[i], alloc, s, base_offset, header_length, is_x, s_oidx); @@ -5017,14 +5017,14 @@ static void obj_modern_read_model_sub_mesh(obj_sub_mesh* sub_mesh, sub_mesh->bounding_sphere.center.y = s.read_float_t_reverse_endianness(); sub_mesh->bounding_sphere.center.z = s.read_float_t_reverse_endianness(); sub_mesh->bounding_sphere.radius = s.read_float_t_reverse_endianness(); - sub_mesh->material_index = s.read_uint32_t_reverse_endianness(); + sub_mesh->material_index = s.read_int32_t_reverse_endianness(); s.read(&sub_mesh->uv_index, 0x08); - sub_mesh->num_bone_index = s.read_uint32_t_reverse_endianness(); + sub_mesh->num_bone_index = s.read_int32_t_reverse_endianness(); smh.bone_index_array_offset = s.read_offset(header_length, is_x); sub_mesh->bones_per_vertex = s.read_uint32_t_reverse_endianness(); sub_mesh->primitive_type = (obj_primitive_type)s.read_uint32_t_reverse_endianness(); sub_mesh->index_format = (obj_index_format)s.read_uint32_t_reverse_endianness(); - sub_mesh->num_index = s.read_uint32_t_reverse_endianness(); + sub_mesh->num_index = s.read_int32_t_reverse_endianness(); smh.index_array_offset = s.read_offset(0, is_x); sub_mesh->attrib.w = s.read_uint32_t_reverse_endianness(); s.read(0, 0x10); @@ -5046,7 +5046,7 @@ static void obj_modern_read_model_sub_mesh(obj_sub_mesh* sub_mesh, s.read(sub_mesh->bone_index_array, sub_mesh->num_bone_index * sizeof(uint16_t)); if (s.big_endian) { uint16_t* bone_index_array = sub_mesh->bone_index_array; - for (uint32_t k = 0; k < sub_mesh->num_bone_index; k++) + for (int32_t k = 0; k < sub_mesh->num_bone_index; k++) bone_index_array[k] = reverse_endianness_uint16_t(bone_index_array[k]); } } @@ -5066,7 +5066,7 @@ static obj_skin* obj_modern_read_skin(prj::shared_ptr allo sh.bone_matrix_array_offset = s.read_offset_f2(header_length); sh.bone_name_array_offset = s.read_offset_f2(header_length); sh.ex_data_offset = s.read_offset_f2(header_length); - sk->num_bone = s.read_uint32_t_reverse_endianness(); + sk->num_bone = s.read_int32_t_reverse_endianness(); sh.bone_parent_id_array_offset = s.read_offset_f2(header_length); s.read(0, 0x0C); } @@ -5075,7 +5075,7 @@ static obj_skin* obj_modern_read_skin(prj::shared_ptr allo sh.bone_matrix_array_offset = s.read_offset_x(); sh.bone_name_array_offset = s.read_offset_x(); sh.ex_data_offset = s.read_offset_x(); - sk->num_bone = s.read_uint32_t_reverse_endianness(); + sk->num_bone = s.read_int32_t_reverse_endianness(); sh.bone_parent_id_array_offset = s.read_offset_x(); s.read(0, 0x18); } @@ -5084,12 +5084,12 @@ static obj_skin* obj_modern_read_skin(prj::shared_ptr allo sk->bone_array = alloc->allocate(sk->num_bone); s.set_position(sh.bone_id_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].id = s.read_uint32_t_reverse_endianness(); if (sh.bone_matrix_array_offset) { s.set_position(sh.bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { mat4& mat = sk->bone_array[i].inv_bind_pose_mat; mat.row0.x = s.read_float_t_reverse_endianness(); mat.row1.x = s.read_float_t_reverse_endianness(); @@ -5113,18 +5113,18 @@ static obj_skin* obj_modern_read_skin(prj::shared_ptr allo if (sh.bone_name_array_offset) { s.set_position(sh.bone_name_array_offset, SEEK_SET); if (!is_x) - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].name = obj_read_utf8_string_null_terminated_offset( alloc, s, s.read_offset_f2(header_length)); else - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].name = obj_read_utf8_string_null_terminated_offset( alloc, s, s.read_offset_x()); } if (sh.bone_parent_id_array_offset) { s.set_position(sh.bone_parent_id_array_offset, SEEK_SET); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) sk->bone_array[i].parent = s.read_uint32_t_reverse_endianness(); } } @@ -5223,7 +5223,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, obj_skin_ex_data* ex = sk->ex_data; const char** bone_name_array = ex->bone_name_array; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: { @@ -5231,7 +5231,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, obj_skin_strings_push_back_check(strings, cloth->mesh_name); obj_skin_strings_push_back_check(strings, cloth->backface_mesh_name); - for (uint32_t k = 0; k < cloth->num_root; k++) { + for (int32_t k = 0; k < cloth->num_root; k++) { obj_skin_block_cloth_root* root_array = &cloth->root_array[k]; for (uint32_t l = 0; l < 4; l++) obj_skin_strings_push_back_check(strings, root_array->bone_weights[l].bone_name); @@ -5268,7 +5268,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } break; case OBJ_SKIN_BLOCK_EXPRESSION: { obj_skin_block_expression* expression = block->expression; - for (uint32_t j = 0; j < expression->num_expression; j++) + for (int32_t j = 0; j < expression->num_expression; j++) obj_skin_strings_push_back_check(strings, expression->expression_array[j]); obj_skin_strings_push_back_check(strings, expression->node.parent_name); obj_skin_strings_push_back_check_by_index(strings, @@ -5282,14 +5282,14 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, obj_skin_block_motion* motion = block->motion; obj_skin_strings_push_back_check(strings, motion->node.parent_name); obj_skin_strings_push_back_check(strings, motion->name); - for (uint32_t j = 0; j < motion->num_node; j++) + for (int32_t j = 0; j < motion->num_node; j++) obj_skin_strings_push_back_check_by_index(strings, bone_name_array, motion->node_array[j].name_index); obj_skin_strings_push_back_check(strings, "MOT"); if (!is_x) obj_skin_strings_push_back_check(bone_names, motion->name); - for (uint32_t j = 0; j < motion->num_node; j++) + for (int32_t j = 0; j < motion->num_node; j++) obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, motion->node_array[j].name_index); } break; @@ -5301,13 +5301,13 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage->external_name_index); obj_skin_osage_node* osage_node = &ex->osage_node_array[osage->start_index]; - for (uint32_t j = 0; j < osage->count; j++) { + for (int32_t j = 0; j < osage->count; j++) { obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage_node->name_index); int32_t name_index = osage->name_index; obj_skin_osage_sibling_info* osage_sibling_info = ex->osage_sibling_info_array; - for (uint32_t k = 0; k < ex->num_osage_sibling_info; k++) { + for (int32_t k = 0; k < ex->num_osage_sibling_info; k++) { if (name_index == osage_sibling_info->name_index) { obj_skin_strings_push_back_check_by_index(strings, bone_name_array, osage_sibling_info->sibling_name_index); @@ -5322,13 +5322,13 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage->external_name_index); osage_node = &ex->osage_node_array[osage->start_index]; - for (uint32_t j = 0; j < osage->count; j++) { + for (int32_t j = 0; j < osage->count; j++) { obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage_node->name_index); int32_t name_index = osage->name_index; obj_skin_osage_sibling_info* osage_sibling_info = ex->osage_sibling_info_array; - for (uint32_t k = 0; k < ex->num_osage_sibling_info; k++) { + for (int32_t k = 0; k < ex->num_osage_sibling_info; k++) { if (name_index == osage_sibling_info->name_index) { obj_skin_strings_push_back_check_by_index(bone_names, bone_name_array, osage_sibling_info->sibling_name_index); @@ -5346,7 +5346,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, exh.cloth_count = 0; exh.num_osage = 0; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type == OBJ_SKIN_BLOCK_CLOTH) exh.cloth_count++; @@ -5505,7 +5505,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, int32_t constraint_count = 0; obj_skin_block_constraint_type cns_type = OBJ_SKIN_BLOCK_CONSTRAINT_NONE; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -5629,12 +5629,12 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } if (exh.cloth_count) { - uint32_t num_mat = 0; - uint32_t num_root = 0; - uint32_t num_node = 0; - uint32_t num_mesh_index = 0; - uint32_t num_backface_mesh_index = 0; - for (uint32_t i = 0; i < ex->num_block; i++) { + int32_t num_mat = 0; + int32_t num_root = 0; + int32_t num_node = 0; + int32_t num_mesh_index = 0; + int32_t num_backface_mesh_index = 0; + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type == OBJ_SKIN_BLOCK_CLOTH) { num_mat += block->cloth->mat_array ? block->cloth->num_mat : 0; @@ -5649,7 +5649,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } if (num_mat) { - ee = { off, 1, sizeof(mat4), num_mat }; + ee = { off, 1, sizeof(mat4), (uint32_t)num_mat }; ee.append(0, 16, ENRS_DWORD); e.vec.push_back(ee); off = (uint32_t)(num_mat * sizeof(mat4)); @@ -5658,13 +5658,13 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (num_root) { if (!is_x) { - ee = { off, 1, 104, num_root }; + ee = { off, 1, 104, (uint32_t)num_root }; ee.append(0, 26, ENRS_DWORD); e.vec.push_back(ee); off = (uint32_t)(num_root * 104ULL); } else { - ee = { off, 9, 136, num_root }; + ee = { off, 9, 136, (uint32_t)num_root }; ee.append(0, 10, ENRS_DWORD); ee.append(0, 1, ENRS_QWORD); ee.append(0, 3, ENRS_DWORD); @@ -5681,7 +5681,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } if (num_node) { - ee = { off, 1, 44, num_node }; + ee = { off, 1, 44, (uint32_t)num_node }; ee.append(0, 11, ENRS_DWORD); e.vec.push_back(ee); off = (uint32_t)(num_node * 44ULL); @@ -5689,7 +5689,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } if (num_mesh_index) { - ee = { off, 1, 2, num_mesh_index }; + ee = { off, 1, 2, (uint32_t)num_mesh_index }; ee.append(0, 1, ENRS_WORD); e.vec.push_back(ee); off = (uint32_t)(num_mesh_index * 2ULL); @@ -5697,7 +5697,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } if (num_backface_mesh_index) { - ee = { off, 1, 2, num_backface_mesh_index }; + ee = { off, 1, 2, (uint32_t)num_backface_mesh_index }; ee.append(0, 1, ENRS_WORD); e.vec.push_back(ee); off = (uint32_t)(num_backface_mesh_index * 2ULL); @@ -5729,30 +5729,30 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (sk->num_bone) { sh.bone_id_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) s.write_int32_t_reverse_endianness(sk->bone_array[i].id); s.align_write(0x10); sh.bone_parent_id_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) + for (int32_t i = 0; i < sk->num_bone; i++) s.write_int32_t_reverse_endianness(sk->bone_array[i].parent); s.align_write(0x10); sh.bone_name_array_offset = s.get_position(); if (!is_x) - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { io_write_offset_f2_pof_add(s, 0, 0x20, &pof); obj_skin_strings_push_back_check(strings, sk->bone_array[i].name); } else - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { io_write_offset_x_pof_add(s, 0, &pof); obj_skin_strings_push_back_check(strings, sk->bone_array[i].name); } s.align_write(0x10); sh.bone_matrix_array_offset = s.get_position(); - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { mat4& mat = sk->bone_array[i].inv_bind_pose_mat; s.write_float_t_reverse_endianness(mat.row0.x); s.write_float_t_reverse_endianness(mat.row1.x); @@ -5820,7 +5820,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (ex->num_osage_node) { exh.osage_node_array_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { s.write_int32_t(0); s.write_int32_t(0); s.write_int32_t(0); @@ -5828,7 +5828,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); exh.osage_sibling_info_array_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++) { s.write_int32_t(0); s.write_int32_t(0); s.write_int32_t(0); @@ -5842,17 +5842,17 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (exh.num_osage || exh.cloth_count) { exh.osage_name_array_offset = s.get_position(); if (!is_x) { - for (uint32_t i = 0; i < exh.num_osage; i++) + for (int32_t i = 0; i < exh.num_osage; i++) io_write_offset_f2_pof_add(s, 0, 0x20, &pof); - for (uint32_t i = 0; i < exh.cloth_count; i++) + for (int32_t i = 0; i < exh.cloth_count; i++) io_write_offset_f2_pof_add(s, 0, 0x20, &pof); } else { - for (uint32_t i = 0; i < exh.num_osage; i++) + for (int32_t i = 0; i < exh.num_osage; i++) io_write_offset_x_pof_add(s, 0, &pof); - for (uint32_t i = 0; i < exh.cloth_count; i++) + for (int32_t i = 0; i < exh.cloth_count; i++) io_write_offset_x_pof_add(s, 0, &pof); } s.align_write(0x10); @@ -5870,7 +5870,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (ex->num_block > 0) { exh.block_array_offset = s.get_position(); if (!is_x) { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { io_write_offset_f2_pof_add(s, 0, 0x20, &pof); io_write_offset_f2_pof_add(s, 0, 0x20, &pof); } @@ -5878,7 +5878,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.write_offset_f2(0, 0x20); } else { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { io_write_offset_x_pof_add(s, 0, &pof); io_write_offset_x_pof_add(s, 0, &pof); } @@ -5889,7 +5889,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, bhs = force_malloc(ex->num_block); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -5900,7 +5900,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.write(0x24); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -5921,7 +5921,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_EXPRESSION) continue; @@ -5934,14 +5934,14 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, io_write_offset_f2_pof_add(s, 0, 0x20, &pof); s.write(0x04); - for (uint32_t j = 0; j < expression->num_expression && j < 9; j++) + for (int32_t j = 0; j < expression->num_expression && j < 9; j++) io_write_offset_f2_pof_add(s, 0, 0x20, &pof); - for (uint32_t j = expression->num_expression; j < 9; j++) + for (int32_t j = expression->num_expression; j < 9; j++) s.write(0x04); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_EXPRESSION) continue; @@ -5953,16 +5953,16 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, io_write_offset_x_pof_add(s, 0, &pof); s.write(0x08); - for (uint32_t j = 0; j < expression->num_expression && j < 9; j++) + for (int32_t j = 0; j < expression->num_expression && j < 9; j++) io_write_offset_x_pof_add(s, 0, &pof); - for (uint32_t j = expression->num_expression; j < 9; j++) + for (int32_t j = expression->num_expression; j < 9; j++) s.write(0x08); } s.align_write(0x10); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -5999,7 +5999,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.write(0x08); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6038,7 +6038,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -6075,7 +6075,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, } } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -6116,7 +6116,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -6130,7 +6130,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, io_write_offset_f2_pof_add(s, 0, 0x20, &pof); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -6147,7 +6147,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (motion_count) { motion_block_node_mats = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -6158,7 +6158,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); motion_block_node_name_offset = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -6171,7 +6171,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (exh.cloth_count) { cloth_mats = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6184,7 +6184,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, cloth_root = s.get_position(); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6194,7 +6194,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, * cloth->num_root * (cloth->num_node - 1ULL)); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6206,7 +6206,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); cloth_nodes = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6217,7 +6217,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); cloth_mesh_indices = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6228,7 +6228,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.align_write(0x10); cloth_backface_mesh_indices = s.get_position(); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6262,7 +6262,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, int64_t osg_offset = obj_skin_strings_get_string_offset(strings, string_offsets, "OSG"); if (ex->num_block > 0) { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CLOTH) continue; @@ -6285,7 +6285,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, string_offsets, "Distance"); const char** bone_name_array = ex->bone_name_array; - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_CONSTRAINT) continue; @@ -6296,7 +6296,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_EXPRESSION) continue; @@ -6307,7 +6307,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_MOTION) continue; @@ -6319,7 +6319,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type != OBJ_SKIN_BLOCK_OSAGE) continue; @@ -6330,7 +6330,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); } - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; if (block->type == OBJ_SKIN_BLOCK_CLOTH) { obj_skin_block_cloth* cloth = block->cloth; @@ -6345,7 +6345,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_push(exh.block_array_offset, SEEK_SET); if (!is_x) { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: @@ -6378,7 +6378,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.write_offset_f2(0, 0); } else { - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; switch (block->type) { case OBJ_SKIN_BLOCK_CLOTH: @@ -6418,13 +6418,13 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, if (sk->bone_array) { s.position_push(sh.bone_name_array_offset, SEEK_SET); if (!is_x) - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { size_t str_offset = obj_skin_strings_get_string_offset(strings, string_offsets, sk->bone_array[i].name); s.write_offset_f2(str_offset, 0x20); } else - for (uint32_t i = 0; i < sk->num_bone; i++) { + for (int32_t i = 0; i < sk->num_bone; i++) { size_t str_offset = obj_skin_strings_get_string_offset(strings, string_offsets, sk->bone_array[i].name); s.write_offset_x(str_offset); @@ -6452,7 +6452,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); s.position_push(exh.osage_node_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[i]; s.write_uint32_t_reverse_endianness(osage_node->name_index); s.write_float_t_reverse_endianness(osage_node->length); @@ -6461,7 +6461,7 @@ static void obj_modern_write_skin(obj_skin* sk, stream& s, s.position_pop(); s.position_push(exh.osage_sibling_info_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++) { obj_skin_osage_sibling_info* osage_sibling_info = &ex->osage_sibling_info_array[i]; s.write_uint32_t_reverse_endianness(osage_sibling_info->name_index); s.write_uint32_t_reverse_endianness(osage_sibling_info->sibling_name_index); @@ -6564,16 +6564,16 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptrnum_osage_node = s.read_uint32_t_reverse_endianness(); + exh.num_osage = s.read_int32_t_reverse_endianness(); + ex->num_osage_node = s.read_int32_t_reverse_endianness(); s.read(0, 0x04); exh.osage_node_array_offset = s.read_offset_f2(header_length); exh.osage_name_array_offset = s.read_offset_f2(header_length); exh.block_array_offset = s.read_offset_f2(header_length); - exh.num_bone_name = s.read_uint32_t_reverse_endianness(); + exh.num_bone_name = s.read_int32_t_reverse_endianness(); exh.bone_name_array_offset = s.read_offset_f2(header_length); exh.osage_sibling_info_array_offset = s.read_offset_f2(header_length); - exh.cloth_count = s.read_uint32_t_reverse_endianness(); + exh.cloth_count = s.read_int32_t_reverse_endianness(); ex->reserved[0] = s.read_offset_f2(header_length); ex->reserved[1] = s.read_offset_f2(header_length); ex->reserved[2] = s.read_offset_f2(header_length); @@ -6583,16 +6583,16 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptrreserved[6] = s.read_offset_f2(header_length); } else { - exh.num_osage = s.read_uint32_t_reverse_endianness(); - ex->num_osage_node = s.read_uint32_t_reverse_endianness(); + exh.num_osage = s.read_int32_t_reverse_endianness(); + ex->num_osage_node = s.read_int32_t_reverse_endianness(); s.read(0, 0x08); exh.osage_node_array_offset = s.read_offset_x(); exh.osage_name_array_offset = s.read_offset_x(); exh.block_array_offset = s.read_offset_x(); - exh.num_bone_name = s.read_uint32_t_reverse_endianness(); + exh.num_bone_name = s.read_int32_t_reverse_endianness(); exh.bone_name_array_offset = s.read_offset_x(); exh.osage_sibling_info_array_offset = s.read_offset_x(); - exh.cloth_count = s.read_uint32_t_reverse_endianness(); + exh.cloth_count = s.read_int32_t_reverse_endianness(); ex->reserved[0] = s.read_offset_x(); ex->reserved[1] = s.read_offset_x(); ex->reserved[2] = s.read_offset_x(); @@ -6608,7 +6608,7 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptrallocate(num_bone_name); ex->bone_name_array = bone_name_array; @@ -6616,7 +6616,7 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptrosage_node_array = alloc->allocate(ex->num_osage_node); s.set_position(exh.osage_node_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_node; i++) { + for (int32_t i = 0; i < ex->num_osage_node; i++) { obj_skin_osage_node* osage_node = &ex->osage_node_array[i]; osage_node->name_index = s.read_uint32_t_reverse_endianness(); @@ -6662,18 +6662,18 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptr(ex->num_block); s.set_position(exh.block_array_offset, SEEK_SET); if (!is_x) - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { bhs[i].block_signature_offset = s.read_offset_f2(header_length); bhs[i].block_offset = s.read_offset_f2(header_length); } else - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { bhs[i].block_signature_offset = s.read_offset_x(); bhs[i].block_offset = s.read_offset_x(); } ex->block_array = alloc->allocate(ex->num_block); - for (uint32_t i = 0; i < ex->num_block; i++) { + for (int32_t i = 0; i < ex->num_block; i++) { obj_skin_block* block = &ex->block_array[i]; std::string block_signature = s.read_string_null_terminated_offset( @@ -6732,7 +6732,7 @@ static obj_skin_ex_data* obj_modern_read_skin_ex_data(prj::shared_ptr(ex->num_osage_sibling_info); ex->osage_sibling_info_array = osi; s.set_position(exh.osage_sibling_info_array_offset, SEEK_SET); - for (uint32_t i = 0; i < ex->num_osage_sibling_info; i++, osi++) { + for (int32_t i = 0; i < ex->num_osage_sibling_info; i++, osi++) { osi->name_index = s.read_uint32_t_reverse_endianness(); osi->sibling_name_index = s.read_uint32_t_reverse_endianness(); osi->max_distance = s.read_float_t_reverse_endianness(); @@ -6747,8 +6747,8 @@ static obj_skin_block_cloth* obj_modern_read_skin_block_cloth( int64_t mesh_name_offset = s.read_offset(header_length, is_x); int64_t backface_mesh_name_offset = s.read_offset(header_length, is_x); cls->field_8 = s.read_uint32_t_reverse_endianness(); - cls->num_root = s.read_uint32_t_reverse_endianness(); - cls->num_node = s.read_uint32_t_reverse_endianness(); + cls->num_root = s.read_int32_t_reverse_endianness(); + cls->num_node = s.read_int32_t_reverse_endianness(); cls->field_14 = s.read_uint32_t_reverse_endianness(); int64_t mat_array_offset = s.read_offset(header_length, is_x); int64_t root_array_offset = s.read_offset(header_length, is_x); @@ -6765,8 +6765,8 @@ static obj_skin_block_cloth* obj_modern_read_skin_block_cloth( int32_t max_matrix_index = -1; s.position_push(root_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; - for (uint32_t i = 0; i < num_root; i++) { + int32_t num_root = cls->num_root; + for (int32_t i = 0; i < num_root; i++) { s.read(0x28); for (uint32_t j = 0; j < 4; j++) { uint32_t name_offset = s.read_uint32_t_reverse_endianness(); @@ -6777,11 +6777,11 @@ static obj_skin_block_cloth* obj_modern_read_skin_block_cloth( } s.position_pop(); - uint32_t num_mat = max_matrix_index > -1 ? max_matrix_index + 1 : 0; + int32_t num_mat = max_matrix_index > -1 ? max_matrix_index + 1 : 0; cls->num_mat = num_mat; cls->mat_array = alloc->allocate(num_mat); s.position_push(mat_array_offset, SEEK_SET); - for (uint32_t i = 0; i < num_mat; i++) { + for (int32_t i = 0; i < num_mat; i++) { mat4& mat = cls->mat_array[i]; mat.row0.x = s.read_float_t_reverse_endianness(); mat.row1.x = s.read_float_t_reverse_endianness(); @@ -6805,10 +6805,10 @@ static obj_skin_block_cloth* obj_modern_read_skin_block_cloth( if (root_array_offset) { s.position_push(root_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; + int32_t num_root = cls->num_root; obj_skin_block_cloth_root* root_array = alloc->allocate(num_root); cls->root_array = root_array; - for (uint32_t i = 0; i < num_root; i++) + for (int32_t i = 0; i < num_root; i++) obj_modern_read_skin_block_cloth_root(&root_array[i], alloc, s, header_length, str, is_x); s.position_pop(); @@ -6816,13 +6816,13 @@ static obj_skin_block_cloth* obj_modern_read_skin_block_cloth( if (node_array_offset) { s.position_push(node_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; - uint32_t num_node = cls->num_node; + int32_t num_root = cls->num_root; + int32_t num_node = cls->num_node; obj_skin_block_cloth_node* node_array = alloc->allocate( num_root * (cls->num_node - 1ULL)); cls->node_array = node_array; - for (uint32_t i = 0; i < num_node - 1; i++) - for (uint32_t j = 0; j < num_root; j++) { + for (int32_t i = 0; i < num_node - 1; i++) + for (int32_t j = 0; j < num_root; j++) { obj_skin_block_cloth_node* f = &node_array[(size_t)i * num_root + j]; f->flags = s.read_uint32_t_reverse_endianness(); f->trans.x = s.read_float_t_reverse_endianness(); @@ -6909,8 +6909,8 @@ static void obj_modern_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->mat_array) { s.position_push(*mat_array_offset, SEEK_SET); - uint32_t num_mat = cls->num_mat; - for (uint32_t i = 0; i < num_mat; i++) { + int32_t num_mat = cls->num_mat; + for (int32_t i = 0; i < num_mat; i++) { mat4& mat = cls->mat_array[i]; s.write_float_t_reverse_endianness(mat.row0.x); s.write_float_t_reverse_endianness(mat.row1.x); @@ -6935,10 +6935,10 @@ static void obj_modern_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->root_array) { s.position_push(*root_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; - uint32_t num_node = cls->num_node; + int32_t num_root = cls->num_root; + int32_t num_node = cls->num_node; obj_skin_block_cloth_root* root_array = cls->root_array; - for (uint32_t i = 0; i < num_root; i++) + for (int32_t i = 0; i < num_root; i++) obj_modern_write_skin_block_cloth_root(&root_array[i], s, strings, string_offsets, is_x); s.position_pop(); @@ -6952,11 +6952,11 @@ static void obj_modern_write_skin_block_cloth(obj_skin_block_cloth* cls, if (cls->node_array) { s.position_push(*node_array_offset, SEEK_SET); - uint32_t num_root = cls->num_root; - uint32_t num_node = cls->num_node; + int32_t num_root = cls->num_root; + int32_t num_node = cls->num_node; obj_skin_block_cloth_node* node_array = cls->node_array; - for (uint32_t i = 0; i < num_node - 1; i++) - for (uint32_t j = 0; j < num_root; j++) { + for (int32_t i = 0; i < num_node - 1; i++) + for (int32_t j = 0; j < num_root; j++) { obj_skin_block_cloth_node* f = &node_array[(size_t)i * num_root + j]; s.write_uint32_t_reverse_endianness(f->flags); s.write_float_t_reverse_endianness(f->trans.x); @@ -6978,7 +6978,7 @@ static void obj_modern_write_skin_block_cloth(obj_skin_block_cloth* cls, s.position_push(*mesh_index_array_offset, SEEK_SET); s.write_uint16_t_reverse_endianness((uint16_t)cls->num_mesh_index); uint16_t* mesh_index_array = cls->mesh_index_array; - for (uint32_t i = cls->num_mesh_index; i > 0; i--, mesh_index_array++) + for (int32_t i = cls->num_mesh_index; i > 0; i--, mesh_index_array++) s.write_uint16_t_reverse_endianness(*mesh_index_array); s.position_pop(); *mesh_index_array_offset += sizeof(uint16_t) + cls->num_mesh_index * sizeof(uint16_t); @@ -6988,7 +6988,7 @@ static void obj_modern_write_skin_block_cloth(obj_skin_block_cloth* cls, s.position_push(*backface_mesh_index_array_offset, SEEK_SET); s.write_uint16_t_reverse_endianness((uint16_t)cls->num_backface_mesh_index); uint16_t* backface_mesh_index_array = cls->backface_mesh_index_array; - for (uint32_t i = cls->num_backface_mesh_index; i > 0; i--, backface_mesh_index_array++) + for (int32_t i = cls->num_backface_mesh_index; i > 0; i--, backface_mesh_index_array++) s.write_uint16_t_reverse_endianness(*backface_mesh_index_array); s.position_pop(); *backface_mesh_index_array_offset += sizeof(uint16_t) + cls->num_backface_mesh_index * sizeof(uint16_t); @@ -7271,25 +7271,25 @@ static obj_skin_block_expression* obj_modern_read_skin_block_expression( } free_def(name); - uint32_t num_expression = s.read_uint32_t_reverse_endianness(); - num_expression = min_def(num_expression, 9u); + int32_t num_expression = s.read_int32_t_reverse_endianness(); + num_expression = min_def(num_expression, 9); exp->num_expression = num_expression; if (!is_x) - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { int64_t expression_offset = s.read_offset_f2(header_length); if (expression_offset) exp->expression_array[i] = obj_read_utf8_string_null_terminated_offset(alloc, s, expression_offset); } else - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { int64_t expression_offset = s.read_offset_x(); if (expression_offset) exp->expression_array[i] = obj_read_utf8_string_null_terminated_offset(alloc, s, expression_offset); } - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) exp->expression_array[i] = 0; return exp; } @@ -7303,27 +7303,27 @@ static void obj_modern_write_skin_block_expression(obj_skin_block_expression* ex string_offsets, bone_name_array, exp->name_index); s.write_offset(name_offset, 0x20, is_x); - uint32_t num_expression = exp->num_expression; - num_expression = min_def(num_expression, 9u); + int32_t num_expression = exp->num_expression; + num_expression = min_def(num_expression, 9); s.write_int32_t_reverse_endianness(num_expression); if (!is_x) { - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { int64_t expression_offset = obj_skin_strings_get_string_offset(strings, string_offsets, exp->expression_array[i]); s.write_offset_f2((int32_t)expression_offset, 0x20); } - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) s.write_offset_f2(0, 0x20); } else { - for (uint32_t i = 0; i < num_expression; i++) { + for (int32_t i = 0; i < num_expression; i++) { int64_t expression_offset = obj_skin_strings_get_string_offset(strings, string_offsets, exp->expression_array[i]); s.write_offset_x(expression_offset); } - for (uint32_t i = num_expression; i < 9; i++) + for (int32_t i = num_expression; i < 9; i++) s.write_offset_x(0); } } @@ -7334,7 +7334,7 @@ static obj_skin_block_motion* obj_modern_read_skin_block_motion( obj_modern_read_skin_block_node(&mot->node, alloc, s, header_length, str, is_x); int64_t name_offset = s.read_offset(header_length, is_x); - mot->num_node = s.read_uint32_t_reverse_endianness(); + mot->num_node = s.read_int32_t_reverse_endianness(); int64_t bone_name_array_offset = s.read_offset(header_length, is_x); int64_t bone_matrix_array_offset = s.read_offset(header_length, is_x); @@ -7360,14 +7360,14 @@ static obj_skin_block_motion* obj_modern_read_skin_block_motion( if (bone_name_array_offset) { s.position_push(bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) + for (int32_t i = 0; i < mot->num_node; i++) mot->node_array[i].name_index = s.read_uint32_t_reverse_endianness(); s.position_pop(); } if (bone_matrix_array_offset) { s.position_push(bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) { + for (int32_t i = 0; i < mot->num_node; i++) { mat4& mat = mot->node_array[i].inv_bind_pose_mat; mat.row0.x = s.read_float_t_reverse_endianness(); mat.row1.x = s.read_float_t_reverse_endianness(); @@ -7410,13 +7410,13 @@ static void obj_modern_write_skin_block_motion(obj_skin_block_motion* mot, if (mot->node_array) { s.position_push(*bone_name_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) + for (int32_t i = 0; i < mot->num_node; i++) s.write_uint32_t_reverse_endianness(mot->node_array[i].name_index); s.position_pop(); *bone_name_array_offset += mot->num_node * sizeof(uint32_t); s.position_push(*bone_matrix_array_offset, SEEK_SET); - for (uint32_t i = 0; i < mot->num_node; i++) { + for (int32_t i = 0; i < mot->num_node; i++) { mat4& mat = mot->node_array[i].inv_bind_pose_mat; s.write_float_t_reverse_endianness(mat.row0.x); s.write_float_t_reverse_endianness(mat.row1.x); @@ -7528,7 +7528,7 @@ static int32_t vtx_fmt_map[] = { }; static void obj_modern_read_vertex(obj_mesh* mesh, prj::shared_ptr alloc, stream& s, - int64_t* vertex, const uint32_t vertex_format_index, uint32_t num_vertex, uint32_t size_vertex) { + int64_t* vertex, const uint32_t vertex_format_index, int32_t num_vertex, uint32_t size_vertex) { int32_t vtx_fmt = vertex_format_index >= 0 && vertex_format_index <= 20 ? vtx_fmt_map[vertex_format_index] : -1; @@ -7606,7 +7606,7 @@ static void obj_modern_read_vertex(obj_mesh* mesh, prj::shared_ptrallocate(num_vertex); - for (uint32_t i = 0; i < num_vertex; i++) { + for (int32_t i = 0; i < num_vertex; i++) { s.set_position(vtx_offset + (int64_t)size_vertex * i, SEEK_SET); vec3 position; @@ -7704,9 +7704,9 @@ static void obj_modern_read_vertex(obj_mesh* mesh, prj::shared_ptrvertex_array; - uint32_t _num_vertex = mesh->num_vertex; + int32_t _num_vertex = mesh->num_vertex; obj_vertex_format vertex_format = mesh->vertex_format; bool tex2 = false; @@ -7730,7 +7730,7 @@ static void obj_modern_write_vertex(obj_mesh* mesh, stream& s, int64_t* vertex, else _vertex_format_index = 2; - uint32_t _size_vertex = 0x2C; + int32_t _size_vertex = 0x2C; uint32_t enrs_se3_rc = 12; if (vertex_format & OBJ_VERTEX_BONE_DATA) { _size_vertex += 0x0C; @@ -7772,7 +7772,7 @@ static void obj_modern_write_vertex(obj_mesh* mesh, stream& s, int64_t* vertex, bool has_tangents = false; vertex[13] = s.get_position(); - for (uint32_t i = 0; i < _num_vertex; i++) { + for (int32_t i = 0; i < _num_vertex; i++) { vec3 position = vtx[i].position; s.write_float_t_reverse_endianness(position.x); s.write_float_t_reverse_endianness(position.y); diff --git a/src/KKdLib/obj.hpp b/src/KKdLib/obj.hpp index 1713ce94..2888ca4c 100644 --- a/src/KKdLib/obj.hpp +++ b/src/KKdLib/obj.hpp @@ -323,7 +323,7 @@ struct obj_material { }; struct obj_material_data { - uint32_t num_of_textures; + int32_t num_of_textures; obj_material material; obj_material_data(); @@ -347,12 +347,12 @@ struct obj_sub_mesh { obj_bounding_sphere bounding_sphere; uint32_t material_index; uint8_t uv_index[8]; - uint32_t num_bone_index; + int32_t num_bone_index; uint16_t* bone_index_array; uint32_t bones_per_vertex; obj_primitive_type primitive_type; obj_index_format index_format; - uint32_t num_index; + int32_t num_index; uint32_t* index_array; obj_sub_mesh_attrib attrib; union { @@ -401,11 +401,11 @@ union obj_mesh_attrib { struct obj_mesh { uint32_t flags; obj_bounding_sphere bounding_sphere; - uint32_t num_submesh; + int32_t num_submesh; obj_sub_mesh* submesh_array; obj_vertex_format vertex_format; uint32_t size_vertex; - uint32_t num_vertex; + int32_t num_vertex; obj_vertex_data* vertex_array; obj_mesh_attrib attrib; uint32_t reserved[6]; @@ -491,17 +491,17 @@ struct obj_skin_block_cloth { const char* mesh_name; const char* backface_mesh_name; uint32_t field_8; - uint32_t num_root; - uint32_t num_node; + int32_t num_root; + int32_t num_node; uint32_t field_14; mat4* mat_array; - uint32_t num_mat; + int32_t num_mat; obj_skin_block_cloth_root* root_array; obj_skin_block_cloth_node* node_array; uint16_t* mesh_index_array; - uint32_t num_mesh_index; + int32_t num_mesh_index; uint16_t* backface_mesh_index_array; - uint32_t num_backface_mesh_index; + int32_t num_backface_mesh_index; obj_skin_skin_param* skin_param; uint32_t reserved; @@ -577,7 +577,7 @@ struct obj_skin_block_constraint { struct obj_skin_block_expression { obj_skin_block_node node; uint32_t name_index; - uint32_t num_expression; + int32_t num_expression; const char* expression_array[9]; obj_skin_block_expression(); @@ -597,7 +597,7 @@ struct obj_skin_block_motion { uint32_t name_index; }; obj_skin_motion_node* node_array; - uint32_t num_node; + int32_t num_node; obj_skin_block_motion(); }; @@ -613,9 +613,9 @@ struct obj_skin_osage_node { struct obj_skin_block_osage { obj_skin_block_node node; uint32_t start_index; - uint32_t count; + int32_t count; obj_skin_osage_node* node_array; - uint32_t num_node; + int32_t num_node; obj_skin_skin_param* skin_param; uint32_t external_name_index; uint32_t name_index; @@ -648,13 +648,13 @@ struct obj_skin_osage_sibling_info { struct obj_skin_ex_data { obj_skin_osage_node* osage_node_array; - uint32_t num_osage_node; + int32_t num_osage_node; obj_skin_block* block_array; - uint32_t num_block; + int32_t num_block; const char** bone_name_array; - uint32_t num_bone_name; + int32_t num_bone_name; obj_skin_osage_sibling_info* osage_sibling_info_array; - uint32_t num_osage_sibling_info; + int32_t num_osage_sibling_info; int64_t reserved[7]; obj_skin_ex_data(); @@ -671,7 +671,7 @@ struct obj_skin_bone { struct obj_skin { obj_skin_bone* bone_array; - uint32_t num_bone; + int32_t num_bone; obj_skin_ex_data* ex_data; obj_skin(); @@ -679,9 +679,9 @@ struct obj_skin { struct obj { obj_bounding_sphere bounding_sphere; - uint32_t num_mesh; + int32_t num_mesh; obj_mesh* mesh_array; - uint32_t num_material; + int32_t num_material; obj_material_data* material_array; uint8_t flags; uint32_t reserved[10]; @@ -693,7 +693,7 @@ struct obj { obj(); obj_mesh* get_obj_mesh(const char* name); - uint32_t get_obj_mesh_index(const char* name); + int32_t get_obj_mesh_index(const char* name); }; struct obj_set { @@ -703,9 +703,9 @@ struct obj_set { bool is_x; obj** obj_data; - uint32_t obj_num; + int32_t obj_num; uint32_t* tex_id_data; - uint32_t tex_id_num; + int32_t tex_id_num; uint32_t reserved[2]; obj_set(); diff --git a/src/ReDIVA/glitter_editor.cpp b/src/ReDIVA/glitter_editor.cpp index 01ea6a56..4013bf17 100644 --- a/src/ReDIVA/glitter_editor.cpp +++ b/src/ReDIVA/glitter_editor.cpp @@ -4471,7 +4471,7 @@ static void glitter_editor_property_particle(GlitterEditor* glt_edt) { if (set_info && set_info->obj_set) { obj_set* set = set_info->obj_set; ::obj** obj_data = set->obj_data; - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) if (obj_data[i]->id == obj_id) { obj = obj_data[i]; break; @@ -4484,7 +4484,7 @@ static void glitter_editor_property_particle(GlitterEditor* glt_edt) { obj_set* set = set_info->obj_set; ::obj** obj_data = set->obj_data; ssize_t obj_index = -1; - for (uint32_t i = 0; i < set->obj_num; i++) + for (int32_t i = 0; i < set->obj_num; i++) #pragma warning(suppress: 28182) if (obj_data[i]->id == obj_id) { obj_index = i; @@ -4497,7 +4497,7 @@ static void glitter_editor_property_particle(GlitterEditor* glt_edt) { obj_index = -1; ImGui::PopID(); - for (uint32_t i = 0; i < set->obj_num; i++) { + for (int32_t i = 0; i < set->obj_num; i++) { ImGui::PushID(i); ::obj* obj = obj_data[i]; if (ImGui::Selectable(obj->name, obj->id == obj_id) diff --git a/src/ReDIVA/x_pv_game.cpp b/src/ReDIVA/x_pv_game.cpp index 5662f84d..9d4f17f6 100644 --- a/src/ReDIVA/x_pv_game.cpp +++ b/src/ReDIVA/x_pv_game.cpp @@ -7141,27 +7141,27 @@ bool x_pv_game::ctrl() { prj::shared_ptr& alloc = info->alloc_handler; - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; obj** obj_data = set->obj_data; obj_vertex_buffer* objvb = info->objvb; - for (uint32_t j = 0; j < obj_num; j++) + for (int32_t j = 0; j < obj_num; j++) objvb[j].unload(); obj_index_buffer* objib = info->objib; - for (uint32_t j = 0; j < obj_num; j++) + for (int32_t j = 0; j < obj_num; j++) objib[j].unload(); - for (uint32_t j = 0; j < obj_num; j++, obj_data++) { + for (int32_t j = 0; j < obj_num; j++, obj_data++) { obj* obj = *obj_data; obj_mesh* mesh_array = obj->mesh_array; - uint32_t num_mesh = obj->num_mesh; - for (uint32_t k = 0; k < num_mesh; k++) { + int32_t num_mesh = obj->num_mesh; + for (int32_t k = 0; k < num_mesh; k++) { obj_mesh* mesh = &mesh_array[k]; obj_sub_mesh* submesh_array = mesh->submesh_array; - uint32_t num_submesh = mesh->num_submesh; - for (uint32_t l = 0; l < num_submesh; l++) { + int32_t num_submesh = mesh->num_submesh; + for (int32_t l = 0; l < num_submesh; l++) { obj_sub_mesh* submesh = &submesh_array[l]; if (submesh->primitive_type != OBJ_PRIMITIVE_TRIANGLES || !submesh->num_index) @@ -7172,7 +7172,7 @@ bool x_pv_game::ctrl() { uint32_t* index_array = submesh->index_array; submesh->index_array = alloc->allocate( meshopt_stripifyBound(submesh->num_index)); - submesh->num_index = (uint32_t)meshopt_stripify(submesh->index_array, + submesh->num_index = (int32_t)meshopt_stripify(submesh->index_array, index_array, submesh->num_index, mesh->num_vertex, 0xFFFFFFFF); submesh->first_index = 0; @@ -7184,10 +7184,10 @@ bool x_pv_game::ctrl() { obj_data = set->obj_data; - for (uint32_t j = 0; j < obj_num; j++) + for (int32_t j = 0; j < obj_num; j++) objvb[j].load(obj_data[j]); - for (uint32_t j = 0; j < obj_num; j++) + for (int32_t j = 0; j < obj_num; j++) objib[j].load(obj_data[j]); } @@ -10286,10 +10286,10 @@ static void x_pv_game_write_object_set_material_msgpack_read(const char* path, uint32_t id = hash_string_murmurhash(name); uint32_t* tex_id_data = set->tex_id_data; - uint32_t tex_id_num = set->tex_id_num; + int32_t tex_id_num = set->tex_id_num; txp* tex = 0; - for (uint32_t i = 0; i < tex_id_num; i++) + for (int32_t i = 0; i < tex_id_num; i++) if (id == tex_id_data[i]) { tex = &txp_set->textures[i]; break; @@ -10384,9 +10384,9 @@ static void x_pv_game_write_object_set(ObjsetInfo* info, obj_set* set = alloc->allocate(); set->move_data(info->obj_set, alloc); - uint32_t tex_id_num = set->tex_id_num; + int32_t tex_id_num = set->tex_id_num; x_pack_tex_db->texture.reserve(tex_id_num); - for (uint32_t i = 0; i < tex_id_num; i++) { + for (int32_t i = 0; i < tex_id_num; i++) { uint32_t& id = set->tex_id_data[i]; const char* tex_name = tex_db->get_texture_name(id); if (tex_name) { @@ -10420,9 +10420,9 @@ static void x_pv_game_write_object_set(ObjsetInfo* info, id = -1; } - uint32_t obj_num = set->obj_num; + int32_t obj_num = set->obj_num; obj_set_info.object.reserve(obj_num); - for (uint32_t i = 0; i < obj_num; i++) { + for (int32_t i = 0; i < obj_num; i++) { obj* obj = set->obj_data[i]; replace_names((char*)obj->name); @@ -10432,8 +10432,8 @@ static void x_pv_game_write_object_set(ObjsetInfo* info, obj_set_info.object.back().id = i; obj_set_info.object.back().name.assign(obj->name); - uint32_t num_material = obj->num_material; - for (uint32_t j = 0; j < num_material; j++) { + int32_t num_material = obj->num_material; + for (int32_t j = 0; j < num_material; j++) { obj_material& material = obj->material_array[j].material; for (obj_material_texture_data& k : material.texdata) {