mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-03 04:08:10 +03:00
Fixed searching of entries in DBs by name
This commit is contained in:
@@ -260,14 +260,6 @@ namespace aet {
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Missing
|
||||
void IdHandle::restart() {
|
||||
if (isValid() && getReady()) {
|
||||
remove();
|
||||
M_put();
|
||||
}
|
||||
}
|
||||
|
||||
// 0x1401E5F10
|
||||
void IdHandle::put() {
|
||||
remove();
|
||||
|
||||
@@ -93,7 +93,6 @@ namespace aet {
|
||||
}
|
||||
|
||||
IdHandle& assign(const AetArgs& in_args);
|
||||
void restart();
|
||||
void put();
|
||||
void put_valid();
|
||||
void destroy();
|
||||
|
||||
+2
-1
@@ -1741,7 +1741,8 @@ namespace auth_3d_detail {
|
||||
void EventA2d::entry(const Scene& in_scene, EventActionFlag in_eaf, render_context* rctx) {
|
||||
float_t frame = in_scene.get_frame();
|
||||
if (frame >= begin && frame < end)
|
||||
M_a2d_handle.restart();
|
||||
if (M_a2d_handle.isValid() && M_a2d_handle.getReady())
|
||||
M_a2d_handle.put();
|
||||
}
|
||||
|
||||
// 0x1401D3890
|
||||
|
||||
@@ -59,8 +59,8 @@ static void draw_pass_reflect_full(render_data_context& rend_data_ctx, rndr::Ren
|
||||
void apply_blur_filter_sub(render_data_context& rend_data_ctx, RenderTexture* dst, RenderTexture* src,
|
||||
ImgfBoxSampl filter, const vec2 res_scale, const vec4 scale, const vec4 offset);
|
||||
|
||||
static void rndpass_create_render_texture(int32_t multisample);
|
||||
static void rndpass_free_render_texture();
|
||||
static void rndpass_create_texture(int32_t multisample);
|
||||
static void rndpass_free_texture();
|
||||
|
||||
static void set_reflect_mat(render_data_context& rend_data_ctx, cam_data& cam);
|
||||
|
||||
@@ -1337,7 +1337,7 @@ void rndpass_init(int32_t anti_alias, int32_t min_render, int32_t ss_alpha_mask,
|
||||
render_screen_param.yoffset, render_screen_param.width, render_screen_param.height);
|
||||
render_manager.width = screen_param.width;
|
||||
render_manager.height = screen_param.height;
|
||||
rndpass_create_render_texture(1);
|
||||
rndpass_create_texture(1);
|
||||
render_manager.render->create_other();
|
||||
|
||||
init_shadow();
|
||||
@@ -1352,7 +1352,7 @@ void rndpass_init(int32_t anti_alias, int32_t min_render, int32_t ss_alpha_mask,
|
||||
void rndpass_finish() {
|
||||
rndr::RenderManager& render_manager = *rctx_ptr->render_manager;
|
||||
|
||||
rndpass_free_render_texture();
|
||||
rndpass_free_texture();
|
||||
render_manager.render->destroy();
|
||||
finish_shadow();
|
||||
rctx_ptr->sss_data->free();
|
||||
@@ -1865,7 +1865,7 @@ void apply_blur_filter_sub(render_data_context& rend_data_ctx, RenderTexture* ds
|
||||
}
|
||||
|
||||
// 0x140502560
|
||||
static void rndpass_create_render_texture(int32_t multisample) {
|
||||
static void rndpass_create_texture(int32_t multisample) {
|
||||
rndr::RenderManager& render_manager = *rctx_ptr->render_manager;
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
@@ -1909,7 +1909,7 @@ static void rndpass_create_render_texture(int32_t multisample) {
|
||||
}
|
||||
|
||||
// 0x1405027A0
|
||||
static void rndpass_free_render_texture() {
|
||||
static void rndpass_free_texture() {
|
||||
rndr::RenderManager& render_manager = *rctx_ptr->render_manager;
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
|
||||
@@ -202,7 +202,11 @@ void auth_3d_database::update() {
|
||||
}
|
||||
|
||||
int32_t auth_3d_database::get_category_index(const char* name) const {
|
||||
auto elem = category_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = category_names.find(name_hash);
|
||||
if (elem != category_names.end())
|
||||
return (int32_t)(elem->second - category.data());
|
||||
return -1;
|
||||
@@ -211,7 +215,11 @@ int32_t auth_3d_database::get_category_index(const char* name) const {
|
||||
void auth_3d_database::get_category_uids(const char* name, std::vector<int32_t>& uid) const {
|
||||
uid.clear();
|
||||
|
||||
auto elem = category_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return;
|
||||
|
||||
auto elem = category_names.find(name_hash);
|
||||
if (elem != category_names.end()) {
|
||||
uid.assign(elem->second->uid.begin(), elem->second->uid.end());
|
||||
return;
|
||||
@@ -219,7 +227,11 @@ void auth_3d_database::get_category_uids(const char* name, std::vector<int32_t>&
|
||||
}
|
||||
|
||||
int32_t auth_3d_database::get_uid(const char* name) const {
|
||||
auto elem = uid_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = uid_names.find(name_hash);
|
||||
if (elem != uid_names.end())
|
||||
return (int32_t)(elem->second - uid.data());
|
||||
return -1;
|
||||
|
||||
@@ -273,7 +273,11 @@ const BoneData* bone_database::get_bone_data(const char* kind_name) const {
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -283,10 +287,18 @@ int32_t bone_database::get_block_index(const char* kind_name, const char* name)
|
||||
if (!kind_name || !name)
|
||||
return -1;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return - 1;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end()) {
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
const BoneData* skel = elem->second;
|
||||
auto elem = skel->body_type_map.find(hash_utf8_murmurhash(name));
|
||||
auto elem = skel->body_type_map.find(name_hash);
|
||||
if (elem != skel->body_type_map.end())
|
||||
return (int32_t)(elem->second - skel->body_type.data());
|
||||
}
|
||||
@@ -297,7 +309,11 @@ const std::vector<BODYTYPE>* bone_database::get_body_type_table(const char* kind
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->body_type;
|
||||
return 0;
|
||||
@@ -307,7 +323,11 @@ const std::vector<CHAINPOSRADIUS>* bone_database::get_joint_table(const char* ki
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->chain_pos_rad;
|
||||
return 0;
|
||||
@@ -317,10 +337,18 @@ int32_t bone_database::get_bone_index(const char* kind_name, const char* name) c
|
||||
if (!kind_name || !name)
|
||||
return -1;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end()) {
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
const BoneData* skel = elem->second;
|
||||
auto elem = skel->bone_name_map.find(hash_utf8_murmurhash(name));
|
||||
auto elem = skel->bone_name_map.find(name_hash);
|
||||
if (elem != skel->bone_name_map.end())
|
||||
return (int32_t)(elem->second - skel->bone_name.data());
|
||||
}
|
||||
@@ -331,7 +359,11 @@ const std::vector<std::string>* bone_database::get_bone_name_table(const char* k
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->bone_name;
|
||||
return 0;
|
||||
@@ -341,10 +373,18 @@ int32_t bone_database::get_bone_node_index(const char* kind_name, const char* na
|
||||
if (!kind_name || !name)
|
||||
return -1;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end()) {
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
const BoneData* skel = elem->second;
|
||||
auto elem = skel->bone_node_name_map.find(hash_utf8_murmurhash(name));
|
||||
auto elem = skel->bone_node_name_map.find(name_hash);
|
||||
if (elem != skel->bone_node_name_map.end())
|
||||
return (int32_t)(elem->second - skel->bone_node_name.data());
|
||||
}
|
||||
@@ -355,7 +395,11 @@ const std::vector<std::string>* bone_database::get_bone_node_name_table(const ch
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->bone_node_name;
|
||||
return 0;
|
||||
@@ -365,7 +409,11 @@ const std::vector<std::uint16_t>* bone_database::get_node_parent_table(const cha
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->parent_node;
|
||||
return 0;
|
||||
@@ -375,7 +423,11 @@ const float_t* bone_database::get_heel_height(const char* kind_name) const {
|
||||
if (!kind_name)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(hash_utf8_murmurhash(kind_name));
|
||||
uint32_t kind_name_hash = hash_utf8_murmurhash(kind_name);
|
||||
if (kind_name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = bonedata_map.find(kind_name_hash);
|
||||
if (elem != bonedata_map.end())
|
||||
return &elem->second->heel_height;
|
||||
return 0;
|
||||
|
||||
@@ -294,7 +294,11 @@ const motion_set_info* motion_database::get_motion_set_by_name(const char* name)
|
||||
if (!name)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_set_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_set_names.find(name_hash);
|
||||
if (elem != motion_set_names.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -314,7 +318,11 @@ const motion_set_info* motion_database::get_motion_set_by_motion_name(const char
|
||||
if (!name)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_set_motion_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_set_motion_names.find(name_hash);
|
||||
if (elem != motion_set_motion_names.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -334,7 +342,11 @@ uint32_t motion_database::get_motion_set_id_by_motion_name(const char* name) con
|
||||
if (!name)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_names.find(name_hash);
|
||||
if (elem != motion_names.end())
|
||||
return elem->second->set_id;
|
||||
return -1;
|
||||
@@ -344,7 +356,11 @@ uint32_t motion_database::get_motion_set_id(const char* name) const {
|
||||
if (!name)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_set_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_set_names.find(name_hash);
|
||||
if (elem != motion_set_names.end())
|
||||
return elem->second->id;
|
||||
return -1;
|
||||
@@ -374,7 +390,11 @@ const motion_info* motion_database::get_motion_by_name(const char* name) const {
|
||||
if (!name)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = motion_names.find(name_hash);
|
||||
if (elem != motion_names.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -384,7 +404,11 @@ uint32_t motion_database::get_motion_id(const char* name) const {
|
||||
if (!name)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = motion_names.find(name_hash);
|
||||
if (elem != motion_names.end())
|
||||
return elem->second->id;
|
||||
return -1;
|
||||
|
||||
@@ -386,7 +386,11 @@ const object_set_info* object_database::get_object_set_info(const char* name) co
|
||||
if (!name || !*name)
|
||||
return 0;
|
||||
|
||||
auto elem = obj_set_murmurhashes.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = obj_set_murmurhashes.find(name_hash);
|
||||
if (elem != obj_set_murmurhashes.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -410,7 +414,11 @@ const object_info_data* object_database::get_object_info_data(const char* name)
|
||||
if (!str_utils_compare_length(name, name_len, "NULL", 5))
|
||||
return 0;
|
||||
|
||||
auto elem = obj_murmurhashes.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return 0;
|
||||
|
||||
auto elem = obj_murmurhashes.find(name_hash);
|
||||
if (elem != obj_murmurhashes.end())
|
||||
return elem->second;
|
||||
return 0;
|
||||
@@ -454,7 +462,11 @@ uint32_t object_database::get_object_set_id(const char* name) const {
|
||||
if (!str_utils_compare_length(name, name_len, "NULL", 5))
|
||||
return (uint32_t)-1;
|
||||
|
||||
auto elem = obj_set_murmurhashes.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return (uint32_t)-1;
|
||||
|
||||
auto elem = obj_set_murmurhashes.find(name_hash);
|
||||
if (elem != obj_set_murmurhashes.end())
|
||||
return elem->second->id;
|
||||
return (uint32_t)-1;
|
||||
@@ -478,7 +490,11 @@ object_info object_database::get_object_info(const char* name) const {
|
||||
if (!str_utils_compare_length(name, name_len, "NULL", 5))
|
||||
return object_info();
|
||||
|
||||
auto elem = obj_info_murmurhashes.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return object_info();
|
||||
|
||||
auto elem = obj_info_murmurhashes.find(name_hash);
|
||||
if (elem != obj_info_murmurhashes.end())
|
||||
return elem->second;
|
||||
return object_info();
|
||||
|
||||
@@ -445,7 +445,11 @@ const ::stage_data_modern* stage_database::get_stage_data_modern(uint32_t stage_
|
||||
}
|
||||
|
||||
int32_t stage_database::get_stage_index(const char* name) const {
|
||||
auto elem = stage_data_names.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = stage_data_names.find(name_hash);
|
||||
if (elem != stage_data_names.end())
|
||||
return (int32_t)(elem->second - stage_data.data());
|
||||
return -1;
|
||||
|
||||
@@ -307,7 +307,11 @@ uint32_t texture_database::get_texture_id(const char* name) const {
|
||||
if (!name)
|
||||
return -1;
|
||||
|
||||
auto elem = texture_murmurhashes.find(hash_utf8_murmurhash(name));
|
||||
uint32_t name_hash = hash_utf8_murmurhash(name);
|
||||
if (name_hash == hash_murmurhash_empty)
|
||||
return -1;
|
||||
|
||||
auto elem = texture_murmurhashes.find(name_hash);
|
||||
if (elem != texture_murmurhashes.end())
|
||||
return elem->second->id;
|
||||
return -1;
|
||||
|
||||
@@ -255,8 +255,8 @@ void pv_game_edit_effect::unload() {
|
||||
reset();
|
||||
}
|
||||
|
||||
pv_game_field::pv_game_field() : stage_index(), light_auth_3d_uid(), light_auth_3d_id(),
|
||||
light_frame(), spr_set_back_id(), stage_flag(), npr_type(), cam_blur(), sdw_off() {
|
||||
pv_game_field::pv_game_field() : stage_index(-1), light_auth_3d_uid(-1), light_auth_3d_id(),
|
||||
light_frame(), spr_set_back_id(-1), stage_flag(), npr_type(), cam_blur(), sdw_off() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user