diff --git a/src/CRE/render_context.cpp b/src/CRE/render_context.cpp index 5262f362..2cab342a 100644 --- a/src/CRE/render_context.cpp +++ b/src/CRE/render_context.cpp @@ -2809,19 +2809,19 @@ namespace mdl { } } - void DispManager::entry_obj_etc(const mat4* mat, EtcObj* etc) { + void DispManager::entry_obj_etc(const mat4* mat, EtcObj* etc, bool local) { ObjData* data = alloc_data(mdl::OBJ_KIND_ETC); if (!data) return; data->init_etc(this, mat, etc); if (etc->color.a == 0xFF) { - if ((obj_flags & OBJ_SHADOW) != 0) + if (!local && (obj_flags & OBJ_SHADOW)) mdl::DispManager::entry_list((mdl::ObjType)(OBJ_TYPE_SHADOW_CHARA + shadow_type), data); - mdl::DispManager::entry_list(OBJ_TYPE_OPAQUE, data); + mdl::DispManager::entry_list(local ? OBJ_TYPE_OPAQUE_LOCAL : OBJ_TYPE_OPAQUE, data); } else - mdl::DispManager::entry_list(OBJ_TYPE_TRANSLUCENT, data); + mdl::DispManager::entry_list(local ? OBJ_TYPE_TRANSLUCENT_LOCAL : OBJ_TYPE_TRANSLUCENT, data); } void DispManager::entry_obj_user(const mat4* mat, UserArgsFunc func, void* data, ObjType type) { diff --git a/src/CRE/render_context.hpp b/src/CRE/render_context.hpp index e547ca7a..611455c2 100644 --- a/src/CRE/render_context.hpp +++ b/src/CRE/render_context.hpp @@ -600,7 +600,7 @@ namespace mdl { void entry_obj_by_object_info_object_skin(object_info obj_info, std::vector* texture_pattern, texture_data_struct* texture_data, float_t alpha, mat4* matrices, mat4* ex_data_matrices, const mat4* mat, const mat4* global_mat); - void entry_obj_etc(const mat4* mat, EtcObj* etc); + void entry_obj_etc(const mat4* mat, EtcObj* etc, bool local = false); void entry_obj_user(const mat4* mat, UserArgsFunc func, void* data, ObjType type); GLuint get_vertex_array(const ObjSubMeshArgs* args); GLuint get_vertex_array(const EtcObj* etc);