mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-09 06:59:47 +03:00
Rename draw_task_flags to mdl::ObjFlags
This commit is contained in:
+23
-23
@@ -706,7 +706,7 @@ void auth_3d::reset() {
|
||||
once = false;
|
||||
mat = mat4_identity;
|
||||
alpha = 1.0f;
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_1;
|
||||
obj_flags = mdl::OBJ_ALPHA_ORDER_1;
|
||||
chara_id = -1;
|
||||
chara_item = false;
|
||||
shadow = false;
|
||||
@@ -2403,11 +2403,11 @@ void auth_3d_id::set_chara_item(bool value) {
|
||||
}
|
||||
}
|
||||
|
||||
void auth_3d_id::set_draw_task_flags_alpha(draw_task_flags draw_task_flags, float_t alpha) {
|
||||
void auth_3d_id::set_obj_flags_alpha(mdl::ObjFlags obj_flags, float_t alpha) {
|
||||
if (id >= 0 && ((id & 0x7FFF) < AUTH_3D_DATA_COUNT)) {
|
||||
auth_3d* auth = &auth_3d_data->data[id & 0x7FFF];
|
||||
if (auth->id == id) {
|
||||
auth->draw_task_flags = draw_task_flags;
|
||||
auth->obj_flags = obj_flags;
|
||||
auth->alpha = alpha;
|
||||
}
|
||||
}
|
||||
@@ -3836,20 +3836,20 @@ static void auth_3d_m_object_hrc_disp(auth_3d_m_object_hrc* moh, auth_3d* auth,
|
||||
if (!i.model_transform.visible)
|
||||
return;
|
||||
|
||||
draw_task_flags flags = DRAW_TASK_SSS;
|
||||
mdl::ObjFlags flags = mdl::OBJ_SSS;
|
||||
shadow_type_enum shadow_type = SHADOW_CHARA;
|
||||
if (auth->shadow || i.shadow) {
|
||||
enum_or(flags, DRAW_TASK_4 | DRAW_TASK_SHADOW);
|
||||
enum_or(flags, mdl::OBJ_4 | mdl::OBJ_SHADOW);
|
||||
shadow_type = SHADOW_STAGE;
|
||||
}
|
||||
if (auth->alpha < 1.0f)
|
||||
enum_or(flags, auth->draw_task_flags);
|
||||
enum_or(flags, auth->obj_flags);
|
||||
|
||||
disp_manager.set_draw_task_flags((draw_task_flags)flags);
|
||||
disp_manager.set_obj_flags(flags);
|
||||
disp_manager.set_shadow_type(shadow_type);
|
||||
|
||||
shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
if (shad && flags & DRAW_TASK_SHADOW) {
|
||||
if (shad && flags & mdl::OBJ_SHADOW) {
|
||||
disp_manager.set_shadow_type(SHADOW_STAGE);
|
||||
|
||||
mat4* m = &moh->model_transform.mat;
|
||||
@@ -3873,7 +3873,7 @@ static void auth_3d_m_object_hrc_disp(auth_3d_m_object_hrc* moh, auth_3d* auth,
|
||||
i.object_info, 0, 0, auth->alpha, i.mats.data(), 0, 0, &i.model_transform.mat);
|
||||
}
|
||||
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
disp_manager.set_shadow_type(SHADOW_CHARA);
|
||||
}
|
||||
|
||||
@@ -5436,15 +5436,15 @@ static void auth_3d_object_disp(auth_3d_object* o, auth_3d* auth, render_context
|
||||
disp_manager.set_shadow_type(auth->chara_id ? SHADOW_STAGE : SHADOW_CHARA);
|
||||
}
|
||||
|
||||
draw_task_flags flags = (draw_task_flags)0;
|
||||
mdl::ObjFlags flags = (mdl::ObjFlags)0;
|
||||
if (auth->shadow)
|
||||
enum_or(flags, DRAW_TASK_4 | DRAW_TASK_SHADOW);
|
||||
enum_or(flags, mdl::OBJ_4 | mdl::OBJ_SHADOW);
|
||||
if (o->reflect)
|
||||
enum_or(flags, DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFLECT);
|
||||
enum_or(flags, mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFLECT);
|
||||
if (o->refract)
|
||||
enum_or(flags, DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFRACT);
|
||||
enum_or(flags, mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFRACT);
|
||||
|
||||
disp_manager.set_draw_task_flags((draw_task_flags)flags);
|
||||
disp_manager.set_obj_flags(flags);
|
||||
|
||||
char buf[0x80];
|
||||
int32_t tex_pat_count = 0;
|
||||
@@ -5536,7 +5536,7 @@ static void auth_3d_object_disp(auth_3d_object* o, auth_3d* auth, render_context
|
||||
|
||||
disp_manager.set_texture_transform();
|
||||
disp_manager.set_texture_pattern();
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
|
||||
for (auth_3d_object*& i : o->children_object)
|
||||
auth_3d_object_disp(i, auth, rctx);
|
||||
@@ -5597,17 +5597,17 @@ static void auth_3d_object_hrc_disp(auth_3d_object_hrc* oh, auth_3d* auth, rende
|
||||
object_database* obj_db = auth->obj_db;
|
||||
texture_database* tex_db = auth->tex_db;
|
||||
|
||||
draw_task_flags flags = DRAW_TASK_SSS;
|
||||
mdl::ObjFlags flags = mdl::OBJ_SSS;
|
||||
if (auth->shadow | oh->shadow)
|
||||
enum_or(flags, DRAW_TASK_4 | DRAW_TASK_SHADOW);
|
||||
enum_or(flags, mdl::OBJ_4 | mdl::OBJ_SHADOW);
|
||||
if (oh->reflect)
|
||||
enum_or(flags, DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFLECT);
|
||||
enum_or(flags, mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFLECT);
|
||||
if (oh->refract)
|
||||
enum_or(flags, DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFRACT);
|
||||
enum_or(flags, mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFRACT);
|
||||
if (auth->alpha < 1.0f)
|
||||
enum_or(flags, auth->draw_task_flags);
|
||||
enum_or(flags, auth->obj_flags);
|
||||
|
||||
disp_manager.set_draw_task_flags(flags);
|
||||
disp_manager.set_obj_flags(flags);
|
||||
disp_manager.set_shadow_type(SHADOW_CHARA);
|
||||
|
||||
mat4 mat = mat4_identity;
|
||||
@@ -5622,7 +5622,7 @@ static void auth_3d_object_hrc_disp(auth_3d_object_hrc* oh, auth_3d* auth, rende
|
||||
disp_manager.set_shadow_type(SHADOW_STAGE);
|
||||
}
|
||||
}
|
||||
else if (flags & DRAW_TASK_SHADOW) {
|
||||
else if (flags & mdl::OBJ_SHADOW) {
|
||||
disp_manager.set_shadow_type(SHADOW_STAGE);
|
||||
|
||||
mat4* m = &oh->node.front().model_transform.mat;
|
||||
@@ -5644,7 +5644,7 @@ static void auth_3d_object_hrc_disp(auth_3d_object_hrc* oh, auth_3d* auth, rende
|
||||
disp_manager.entry_obj_by_object_info_object_skin(
|
||||
oh->object_info, 0, 0, auth->alpha, oh->mats.data(), 0, 0, &mat);
|
||||
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
disp_manager.set_shadow_type(SHADOW_CHARA);
|
||||
|
||||
for (auth_3d_object*& i : oh->children_object)
|
||||
|
||||
+2
-2
@@ -832,7 +832,7 @@ struct auth_3d_id {
|
||||
void set_camera_root_update(bool value);
|
||||
void set_chara_id(int32_t value);
|
||||
void set_chara_item(bool value);
|
||||
void set_draw_task_flags_alpha(draw_task_flags draw_task_flags, float_t alpha);
|
||||
void set_obj_flags_alpha(mdl::ObjFlags obj_flags, float_t alpha);
|
||||
void set_enable(bool value);
|
||||
void set_frame_rate(FrameRateControl* value);
|
||||
void set_last_frame(float_t value);
|
||||
@@ -860,7 +860,7 @@ struct auth_3d {
|
||||
bool once;
|
||||
mat4 mat;
|
||||
float_t alpha;
|
||||
draw_task_flags draw_task_flags;
|
||||
mdl::ObjFlags obj_flags;
|
||||
int32_t chara_id;
|
||||
bool chara_item;
|
||||
bool shadow;
|
||||
|
||||
@@ -589,21 +589,21 @@ namespace pv_param_task {
|
||||
else
|
||||
value = lerp_def(i.prev_alpha, i.alpha, i.frame / i.duration);
|
||||
|
||||
draw_task_flags draw_task_flags;
|
||||
mdl::ObjFlags obj_flags;
|
||||
switch (i.type) {
|
||||
case 0:
|
||||
default:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_1;
|
||||
obj_flags = mdl::OBJ_ALPHA_ORDER_1;
|
||||
break;
|
||||
case 1:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_2;
|
||||
obj_flags = mdl::OBJ_ALPHA_ORDER_2;
|
||||
break;
|
||||
case 2:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_3;
|
||||
obj_flags = mdl::OBJ_ALPHA_ORDER_3;
|
||||
break;
|
||||
}
|
||||
|
||||
rob_chara_array_set_alpha_draw_task_flags(index, value, draw_task_flags);
|
||||
rob_chara_array_set_alpha_obj_flags(index, value, obj_flags);
|
||||
|
||||
i.frame += get_delta_frame();
|
||||
if (i.frame > i.duration) {
|
||||
|
||||
+45
-70
@@ -195,7 +195,7 @@ namespace mdl {
|
||||
args->emission = *emission;
|
||||
|
||||
args->chara_color = disp_manager->chara_color;
|
||||
args->self_shadow = disp_manager->draw_task_flags & (DRAW_TASK_8 | DRAW_TASK_4) ? 1 : 0;
|
||||
args->self_shadow = disp_manager->obj_flags & (mdl::OBJ_8 | mdl::OBJ_4) ? 1 : 0;
|
||||
args->shadow = disp_manager->shadow_type;
|
||||
args->texture_color_coefficients = disp_manager->texture_color_coefficients;
|
||||
args->texture_color_coefficients.w = disp_manager->wet_param;
|
||||
@@ -325,7 +325,7 @@ texture_data_struct::texture_data_struct() : field_0() {
|
||||
}
|
||||
|
||||
namespace mdl {
|
||||
DispManager::DispManager() : draw_task_flags(), shadow_type(), field_8(), field_C(),
|
||||
DispManager::DispManager() : obj_flags(), shadow_type(), field_8(), field_C(),
|
||||
culling(), show_alpha_center(), show_mat_center(), texture_pattern_count(),
|
||||
texture_pattern_array(), wet_param(), texture_transform_count(),
|
||||
texture_transform_array(), material_list_count(), material_list_array() {
|
||||
@@ -1434,47 +1434,47 @@ namespace mdl {
|
||||
mesh, material, textures, num_bone_index, mats, array_buffer, element_array_buffer,
|
||||
&_blend_color, &_emission, morph_array_buffer, instances_count, instances_mat, func);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_SHADOW_OBJECT) {
|
||||
if (obj_flags & mdl::OBJ_SHADOW_OBJECT) {
|
||||
entry_list((ObjType)(OBJ_TYPE_SHADOW_OBJECT_CHARA
|
||||
+ shadow_type), data);
|
||||
if (draw_task_flags & DRAW_TASK_USER)
|
||||
if (obj_flags & mdl::OBJ_USER)
|
||||
entry_list(OBJ_TYPE_USER, data);
|
||||
continue;
|
||||
}
|
||||
|
||||
obj_material_attrib_member attrib = material->material.attrib.m;
|
||||
if (draw_task_flags & (DRAW_TASK_ALPHA_ORDER_1 | DRAW_TASK_ALPHA_ORDER_2 | DRAW_TASK_ALPHA_ORDER_3)
|
||||
if (obj_flags & (mdl::OBJ_ALPHA_ORDER_1 | mdl::OBJ_ALPHA_ORDER_2 | mdl::OBJ_ALPHA_ORDER_3)
|
||||
&& data->args.sub_mesh.blend_color.w < 1.0f) {
|
||||
if (!(draw_task_flags & DRAW_TASK_NO_TRANSLUCENCY)) {
|
||||
if (!(obj_flags & mdl::OBJ_NO_TRANSLUCENCY)) {
|
||||
if (attrib.flag_28 || (attrib.punch_through
|
||||
|| !(attrib.alpha_texture | attrib.alpha_material))
|
||||
&& !sub_mesh->attrib.m.transparent) {
|
||||
if (!attrib.punch_through) {
|
||||
if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_1)
|
||||
if (obj_flags & mdl::OBJ_ALPHA_ORDER_1)
|
||||
entry_list(OBJ_TYPE_OPAQUE_ALPHA_ORDER_1, data);
|
||||
else if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_2)
|
||||
else if (obj_flags & mdl::OBJ_ALPHA_ORDER_2)
|
||||
entry_list(local ? OBJ_TYPE_OPAQUE_ALPHA_ORDER_2_LOCAL
|
||||
: OBJ_TYPE_OPAQUE_ALPHA_ORDER_2, data);
|
||||
else
|
||||
entry_list(OBJ_TYPE_OPAQUE_ALPHA_ORDER_3, data);
|
||||
}
|
||||
else {
|
||||
if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_1)
|
||||
if (obj_flags & mdl::OBJ_ALPHA_ORDER_1)
|
||||
entry_list(OBJ_TYPE_TRANSPARENT_ALPHA_ORDER_1, data);
|
||||
else if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_2)
|
||||
else if (obj_flags & mdl::OBJ_ALPHA_ORDER_2)
|
||||
entry_list(local ? OBJ_TYPE_TRANSPARENT_ALPHA_ORDER_2_LOCAL
|
||||
: OBJ_TYPE_TRANSPARENT_ALPHA_ORDER_2, data);
|
||||
else
|
||||
entry_list(OBJ_TYPE_TRANSPARENT_ALPHA_ORDER_3, data);
|
||||
}
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_SSS)
|
||||
if (obj_flags & mdl::OBJ_SSS)
|
||||
entry_list(OBJ_TYPE_SSS, data);
|
||||
}
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_1)
|
||||
if (obj_flags & mdl::OBJ_ALPHA_ORDER_1)
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_1, data);
|
||||
else if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_2)
|
||||
else if (obj_flags & mdl::OBJ_ALPHA_ORDER_2)
|
||||
entry_list(local ? OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2_LOCAL
|
||||
: OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2, data);
|
||||
else
|
||||
@@ -1485,54 +1485,54 @@ namespace mdl {
|
||||
if (attrib.flag_28 || data->args.sub_mesh.blend_color.w >= 1.0f
|
||||
&& (attrib.punch_through || !(attrib.alpha_texture | attrib.alpha_material))
|
||||
&& !sub_mesh->attrib.m.transparent) {
|
||||
if (draw_task_flags & DRAW_TASK_SHADOW)
|
||||
if (obj_flags & mdl::OBJ_SHADOW)
|
||||
entry_list((ObjType)(OBJ_TYPE_SHADOW_CHARA + shadow_type), data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_SSS)
|
||||
if (obj_flags & mdl::OBJ_SSS)
|
||||
entry_list(OBJ_TYPE_SSS, data);
|
||||
|
||||
if (attrib.punch_through) {
|
||||
if (!(draw_task_flags & DRAW_TASK_NO_TRANSLUCENCY))
|
||||
if (!(obj_flags & mdl::OBJ_NO_TRANSLUCENCY))
|
||||
entry_list(local ? OBJ_TYPE_TRANSPARENT_LOCAL
|
||||
: OBJ_TYPE_TRANSPARENT, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_CHARA_REFLECT)
|
||||
if (obj_flags & mdl::OBJ_CHARA_REFLECT)
|
||||
entry_list(OBJ_TYPE_REFLECT_CHARA_OPAQUE, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_REFLECT)
|
||||
if (obj_flags & mdl::OBJ_REFLECT)
|
||||
entry_list(OBJ_TYPE_REFLECT_OPAQUE, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_REFRACT)
|
||||
if (obj_flags & mdl::OBJ_REFRACT)
|
||||
entry_list(OBJ_TYPE_REFRACT_TRANSPARENT, data);
|
||||
}
|
||||
else {
|
||||
if (!(draw_task_flags & DRAW_TASK_NO_TRANSLUCENCY))
|
||||
if (!(obj_flags & mdl::OBJ_NO_TRANSLUCENCY))
|
||||
entry_list(local ? OBJ_TYPE_OPAQUE_LOCAL
|
||||
: OBJ_TYPE_OPAQUE, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_20)
|
||||
if (obj_flags & mdl::OBJ_20)
|
||||
entry_list(OBJ_TYPE_TYPE_6, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_CHARA_REFLECT)
|
||||
if (obj_flags & mdl::OBJ_CHARA_REFLECT)
|
||||
entry_list(OBJ_TYPE_REFLECT_CHARA_OPAQUE, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_REFLECT)
|
||||
if (obj_flags & mdl::OBJ_REFLECT)
|
||||
entry_list(OBJ_TYPE_REFLECT_OPAQUE, data);
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_REFRACT)
|
||||
if (obj_flags & mdl::OBJ_REFRACT)
|
||||
entry_list(OBJ_TYPE_REFRACT_OPAQUE, data);
|
||||
}
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_USER)
|
||||
if (obj_flags & mdl::OBJ_USER)
|
||||
entry_list(OBJ_TYPE_USER, data);
|
||||
continue;
|
||||
}
|
||||
else if (!(draw_task_flags & DRAW_TASK_NO_TRANSLUCENCY)) {
|
||||
else if (!(obj_flags & mdl::OBJ_NO_TRANSLUCENCY)) {
|
||||
if (!attrib.translucent_priority)
|
||||
if (local)
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_LOCAL, data);
|
||||
else if (mesh->attrib.m.translucent_no_shadow
|
||||
|| draw_task_flags & DRAW_TASK_TRANSLUCENT_NO_SHADOW) {
|
||||
|| obj_flags & mdl::OBJ_TRANSLUCENT_NO_SHADOW) {
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_NO_SHADOW, data);
|
||||
}
|
||||
else {
|
||||
@@ -1545,22 +1545,22 @@ namespace mdl {
|
||||
}
|
||||
}
|
||||
|
||||
if (draw_task_flags & DRAW_TASK_SHADOW)
|
||||
if (obj_flags & mdl::OBJ_SHADOW)
|
||||
entry_list((ObjType)(OBJ_TYPE_SHADOW_CHARA
|
||||
+ shadow_type), data);
|
||||
if (draw_task_flags & DRAW_TASK_40)
|
||||
if (obj_flags & mdl::OBJ_40)
|
||||
entry_list(OBJ_TYPE_TYPE_7, data);
|
||||
if (draw_task_flags & DRAW_TASK_CHARA_REFLECT)
|
||||
if (obj_flags & mdl::OBJ_CHARA_REFLECT)
|
||||
entry_list(OBJ_TYPE_REFLECT_CHARA_OPAQUE, data);
|
||||
if (draw_task_flags & DRAW_TASK_REFLECT) {
|
||||
if (obj_flags & mdl::OBJ_REFLECT) {
|
||||
if (rctx_ptr->render_manager.reflect_type != STAGE_DATA_REFLECT_REFLECT_MAP)
|
||||
entry_list(OBJ_TYPE_REFLECT_OPAQUE, data);
|
||||
else
|
||||
entry_list(OBJ_TYPE_REFLECT_TRANSLUCENT, data);
|
||||
}
|
||||
if (draw_task_flags & DRAW_TASK_REFRACT)
|
||||
if (obj_flags & mdl::OBJ_REFRACT)
|
||||
entry_list(OBJ_TYPE_REFRACT_TRANSLUCENT, data);
|
||||
if (draw_task_flags & DRAW_TASK_USER)
|
||||
if (obj_flags & mdl::OBJ_USER)
|
||||
entry_list(OBJ_TYPE_USER, data);
|
||||
}
|
||||
|
||||
@@ -1584,12 +1584,12 @@ namespace mdl {
|
||||
continue;
|
||||
|
||||
data->init_translucent(mat, &translucent_args);
|
||||
if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_1)
|
||||
if (obj_flags & mdl::OBJ_ALPHA_ORDER_1)
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_1, data);
|
||||
else if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_2)
|
||||
else if (obj_flags & mdl::OBJ_ALPHA_ORDER_2)
|
||||
entry_list(local ? OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2_LOCAL
|
||||
: OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_2, data);
|
||||
else if (draw_task_flags & DRAW_TASK_ALPHA_ORDER_3)
|
||||
else if (obj_flags & mdl::OBJ_ALPHA_ORDER_3)
|
||||
entry_list(OBJ_TYPE_TRANSLUCENT_ALPHA_ORDER_3, data);
|
||||
else
|
||||
entry_list(local ? OBJ_TYPE_TRANSLUCENT_LOCAL
|
||||
@@ -1774,8 +1774,8 @@ namespace mdl {
|
||||
return chara_color;
|
||||
}
|
||||
|
||||
::draw_task_flags DispManager::get_draw_task_flags() {
|
||||
return draw_task_flags;
|
||||
ObjFlags DispManager::get_obj_flags() {
|
||||
return obj_flags;
|
||||
}
|
||||
|
||||
void DispManager::get_material_list(int32_t& count, material_list_struct*& value) {
|
||||
@@ -1906,7 +1906,7 @@ namespace mdl {
|
||||
culling.passed = {};
|
||||
culling.culled = {};
|
||||
|
||||
draw_task_flags = (::draw_task_flags)0;
|
||||
obj_flags = (::mdl::ObjFlags)0;
|
||||
field_8 = 0;
|
||||
field_C = 0;
|
||||
|
||||
@@ -1929,8 +1929,8 @@ namespace mdl {
|
||||
chara_color = value;
|
||||
}
|
||||
|
||||
void DispManager::set_draw_task_flags(::draw_task_flags flags) {
|
||||
draw_task_flags = flags;
|
||||
void DispManager::set_obj_flags(ObjFlags flags) {
|
||||
obj_flags = flags;
|
||||
}
|
||||
|
||||
void DispManager::set_material_list(int32_t count, material_list_struct* value) {
|
||||
@@ -2429,31 +2429,6 @@ void render_context::ctrl() {
|
||||
else if (1.0f - delta_frame_history < 0.001f)
|
||||
delta_frame_history_int++;
|
||||
|
||||
/*for (int32_t i = 0; i < ROB_CHARA_COUNT; i++) {
|
||||
if (!task_rob_manager_check_chara_loaded(rob_chara_array[i].chara_id)
|
||||
|| rob_chara_pv_data_array[i].type == ROB_CHARA_TYPE_NONE)
|
||||
continue;
|
||||
|
||||
float_t frame = rob_chara_get_frame(&rob_chara_array[i]);
|
||||
float_t frame_count = rob_chara_get_frame_count(&rob_chara_array[i]);
|
||||
frame += get_delta_frame();
|
||||
if (frame >= frame_count) {
|
||||
frame = 0.0f;
|
||||
rob_chara_item_equip* rob_item_equip = rob_chara_array[i].item_equip;
|
||||
for (int32_t j = rob_item_equip->first_item_equip_object;
|
||||
j < rob_item_equip->max_item_equip_object; j++) {
|
||||
rob_chara_item_equip_object* itm_eq_obj = &rob_item_equip->item_equip_object[j];
|
||||
itm_eq_obj->osage_iterations = 60;
|
||||
for (ExOsageBlock*& i : itm_eq_obj->osage_blocks)
|
||||
if (i)
|
||||
i->rob.osage_reset = true;
|
||||
}
|
||||
}
|
||||
//rob_chara_set_frame(&rob_chara_array[i], frame);
|
||||
rob_chara_set_frame(&rob_chara_array[i], rob_frame);
|
||||
rob_chara_array[i].item_equip->shadow_type = SHADOW_CHARA;
|
||||
}*/
|
||||
|
||||
rctx_ptr = this;
|
||||
app::TaskWork::Ctrl();
|
||||
sound_ctrl();
|
||||
@@ -2666,10 +2641,10 @@ void render_context::light_param_data_wind_set(light_param_wind* w) {
|
||||
}
|
||||
|
||||
void render_context::light_param_data_face_set(light_param_face* face) {
|
||||
this->face.offset = face->offset;
|
||||
this->face.scale = face->scale;
|
||||
this->face.position = face->position;
|
||||
this->face.direction = face->direction;
|
||||
this->face.set_offset(face->offset);
|
||||
this->face.set_scale(face->scale);
|
||||
this->face.set_position(face->position);
|
||||
this->face.set_direction(face->direction);
|
||||
}
|
||||
|
||||
shadow::shadow() : field_8(), field_158(), view_point(), interest(),
|
||||
|
||||
+38
-38
@@ -36,41 +36,6 @@ enum blur_filter_mode {
|
||||
BLUR_FILTER_MAX,
|
||||
};
|
||||
|
||||
enum draw_task_flags : uint32_t {
|
||||
DRAW_TASK_SHADOW = 0x00000001,
|
||||
DRAW_TASK_2 = 0x00000002,
|
||||
DRAW_TASK_4 = 0x00000004,
|
||||
DRAW_TASK_8 = 0x00000008,
|
||||
DRAW_TASK_10 = 0x00000010,
|
||||
DRAW_TASK_20 = 0x00000020,
|
||||
DRAW_TASK_40 = 0x00000040,
|
||||
DRAW_TASK_SHADOW_OBJECT = 0x00000080,
|
||||
DRAW_TASK_CHARA_REFLECT = 0x00000100,
|
||||
DRAW_TASK_REFLECT = 0x00000200,
|
||||
DRAW_TASK_REFRACT = 0x00000400,
|
||||
DRAW_TASK_800 = 0x00000800,
|
||||
DRAW_TASK_TRANSLUCENT_NO_SHADOW = 0x00001000,
|
||||
DRAW_TASK_SSS = 0x00002000,
|
||||
DRAW_TASK_4000 = 0x00004000,
|
||||
DRAW_TASK_8000 = 0x00008000,
|
||||
DRAW_TASK_ALPHA_ORDER_1 = 0x00010000,
|
||||
DRAW_TASK_ALPHA_ORDER_2 = 0x00020000,
|
||||
DRAW_TASK_ALPHA_ORDER_3 = 0x00040000,
|
||||
DRAW_TASK_80000 = 0x00080000,
|
||||
DRAW_TASK_100000 = 0x00100000,
|
||||
DRAW_TASK_200000 = 0x00200000,
|
||||
DRAW_TASK_400000 = 0x00400000,
|
||||
DRAW_TASK_800000 = 0x00800000,
|
||||
DRAW_TASK_USER = 0x01000000,
|
||||
DRAW_TASK_2000000 = 0x02000000,
|
||||
DRAW_TASK_4000000 = 0x04000000,
|
||||
DRAW_TASK_8000000 = 0x08000000,
|
||||
DRAW_TASK_10000000 = 0x10000000,
|
||||
DRAW_TASK_20000000 = 0x20000000,
|
||||
DRAW_TASK_40000000 = 0x40000000,
|
||||
DRAW_TASK_NO_TRANSLUCENCY = 0x80000000,
|
||||
};
|
||||
|
||||
enum reflect_refract_resolution_mode {
|
||||
REFLECT_REFRACT_RESOLUTION_256x256 = 0,
|
||||
REFLECT_REFRACT_RESOLUTION_512x256,
|
||||
@@ -105,6 +70,41 @@ namespace mdl {
|
||||
OBJ_KIND_MAX,
|
||||
};
|
||||
|
||||
enum ObjFlags : uint32_t {
|
||||
OBJ_SHADOW = 0x00000001,
|
||||
OBJ_2 = 0x00000002,
|
||||
OBJ_4 = 0x00000004,
|
||||
OBJ_8 = 0x00000008,
|
||||
OBJ_10 = 0x00000010,
|
||||
OBJ_20 = 0x00000020,
|
||||
OBJ_40 = 0x00000040,
|
||||
OBJ_SHADOW_OBJECT = 0x00000080,
|
||||
OBJ_CHARA_REFLECT = 0x00000100,
|
||||
OBJ_REFLECT = 0x00000200,
|
||||
OBJ_REFRACT = 0x00000400,
|
||||
OBJ_800 = 0x00000800,
|
||||
OBJ_TRANSLUCENT_NO_SHADOW = 0x00001000,
|
||||
OBJ_SSS = 0x00002000,
|
||||
OBJ_4000 = 0x00004000,
|
||||
OBJ_8000 = 0x00008000,
|
||||
OBJ_ALPHA_ORDER_1 = 0x00010000,
|
||||
OBJ_ALPHA_ORDER_2 = 0x00020000,
|
||||
OBJ_ALPHA_ORDER_3 = 0x00040000,
|
||||
OBJ_80000 = 0x00080000,
|
||||
OBJ_100000 = 0x00100000,
|
||||
OBJ_200000 = 0x00200000,
|
||||
OBJ_400000 = 0x00400000,
|
||||
OBJ_800000 = 0x00800000,
|
||||
OBJ_USER = 0x01000000,
|
||||
OBJ_2000000 = 0x02000000,
|
||||
OBJ_4000000 = 0x04000000,
|
||||
OBJ_8000000 = 0x08000000,
|
||||
OBJ_10000000 = 0x10000000,
|
||||
OBJ_20000000 = 0x20000000,
|
||||
OBJ_40000000 = 0x40000000,
|
||||
OBJ_NO_TRANSLUCENCY = 0x80000000,
|
||||
};
|
||||
|
||||
enum ObjType {
|
||||
OBJ_TYPE_OPAQUE = 0,
|
||||
OBJ_TYPE_OPAQUE_LITPROJ_0, // Added
|
||||
@@ -464,7 +464,7 @@ namespace mdl {
|
||||
int32_t texcoord_array[2];
|
||||
};
|
||||
|
||||
draw_task_flags draw_task_flags;
|
||||
mdl::ObjFlags obj_flags;
|
||||
shadow_type_enum shadow_type;
|
||||
int32_t field_8;
|
||||
int32_t field_C;
|
||||
@@ -530,7 +530,7 @@ namespace mdl {
|
||||
void entry_obj_user(const mat4* mat, UserArgsFunc func, void* data, ObjType type);
|
||||
GLuint get_vertex_array(const ObjSubMeshArgs* args);
|
||||
bool get_chara_color();
|
||||
::draw_task_flags get_draw_task_flags();
|
||||
ObjFlags get_obj_flags();
|
||||
void get_material_list(int32_t& count, material_list_struct*& value);
|
||||
void get_morph(object_info& object, float_t& weight);
|
||||
int32_t get_obj_count(ObjType type);
|
||||
@@ -545,7 +545,7 @@ namespace mdl {
|
||||
void obj_sort(mat4* view, ObjType type, int32_t compare_func);
|
||||
void refresh();
|
||||
void set_chara_color(bool value = false);
|
||||
void set_draw_task_flags(::draw_task_flags flags = (::draw_task_flags)0);
|
||||
void set_obj_flags(ObjFlags flags = (ObjFlags)0);
|
||||
void set_material_list(int32_t count = 0, material_list_struct* value = 0);
|
||||
void set_morph(object_info object = {}, float_t weight = 0.0f);
|
||||
void set_culling_finc(bool(*func)(obj_bounding_sphere*, mat4*) = 0);
|
||||
|
||||
+30
-30
@@ -10988,12 +10988,12 @@ void rob_chara_array_reset_bone_data_item_equip(int32_t chara_id) {
|
||||
rob_itm_equip->field_A0 = 5;
|
||||
}
|
||||
|
||||
void rob_chara_array_set_alpha_draw_task_flags(int32_t chara_id, float_t alpha, draw_task_flags flags) {
|
||||
void rob_chara_array_set_alpha_obj_flags(int32_t chara_id, float_t alpha, mdl::ObjFlags flags) {
|
||||
rob_chara* rob_chr = rob_chara_array_get(chara_id);
|
||||
if (!rob_chr)
|
||||
return;
|
||||
|
||||
rob_chr->item_equip->set_alpha_draw_task_flags(alpha, flags);
|
||||
rob_chr->item_equip->set_alpha_obj_flags(alpha, flags);
|
||||
|
||||
/*if (rob_chara_check_for_ageageagain_module(rob_chr->chara_index, rob_chr->module_index)) {
|
||||
sub_140543120(chara_id, 1, alpha);
|
||||
@@ -11927,7 +11927,7 @@ rob_chara_pv_data::~rob_chara_pv_data() {
|
||||
|
||||
rob_chara_item_equip_object::rob_chara_item_equip_object() : index(), mats(),
|
||||
obj_info(), field_14(), texture_data(), null_blocks_data_set(), alpha(),
|
||||
draw_task_flags(), can_disp(), field_A4(), mat(), osage_iterations(), bone_nodes(),
|
||||
obj_flags(), can_disp(), field_A4(), mat(), osage_iterations(), bone_nodes(),
|
||||
field_138(), field_1B8(), osage_nodes_count(), use_opd(), skin_ex_data(), skin(), item_equip() {
|
||||
init_members(0x12345678);
|
||||
}
|
||||
@@ -12003,13 +12003,13 @@ void rob_chara_item_equip_object::disp(const mat4* mat, render_context* rctx) {
|
||||
if (obj_info.is_null())
|
||||
return;
|
||||
|
||||
::draw_task_flags v2 = rctx->disp_manager.get_draw_task_flags();
|
||||
::draw_task_flags v4 = v2;
|
||||
mdl::ObjFlags v2 = rctx->disp_manager.get_obj_flags();
|
||||
mdl::ObjFlags v4 = v2;
|
||||
if (fabsf(alpha - 1.0f) > 0.000001f)
|
||||
enum_or(v4, draw_task_flags);
|
||||
enum_or(v4, obj_flags);
|
||||
else
|
||||
enum_and(v4, ~(DRAW_TASK_ALPHA_ORDER_3 | DRAW_TASK_ALPHA_ORDER_2 | DRAW_TASK_ALPHA_ORDER_1));
|
||||
rctx->disp_manager.set_draw_task_flags(v4);
|
||||
enum_and(v4, ~(mdl::OBJ_ALPHA_ORDER_3 | mdl::OBJ_ALPHA_ORDER_2 | mdl::OBJ_ALPHA_ORDER_1));
|
||||
rctx->disp_manager.set_obj_flags(v4);
|
||||
if (can_disp) {
|
||||
rctx->disp_manager.entry_obj_by_object_info_object_skin(obj_info,
|
||||
&texture_pattern, &texture_data, alpha, mats, ex_data_block_mats.data(), 0, mat);
|
||||
@@ -12017,7 +12017,7 @@ void rob_chara_item_equip_object::disp(const mat4* mat, render_context* rctx) {
|
||||
for (ExNodeBlock*& i : node_blocks)
|
||||
i->Disp(mat, rctx);
|
||||
}
|
||||
rctx->disp_manager.set_draw_task_flags(v2);
|
||||
rctx->disp_manager.set_obj_flags(v2);
|
||||
}
|
||||
|
||||
int32_t rob_chara_item_equip_object::get_bone_index(const char* name, bone_database* bone_data) {
|
||||
@@ -12118,7 +12118,7 @@ void rob_chara_item_equip_object::init_members(size_t index) {
|
||||
texture_data.texture_specular_coefficients = 1.0f;
|
||||
texture_data.texture_specular_offset = 0.0f;
|
||||
alpha = 1.0f;
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_1;
|
||||
obj_flags = mdl::OBJ_ALPHA_ORDER_1;
|
||||
null_blocks_data_set = 0;
|
||||
can_disp = true;
|
||||
field_A4 = 0;
|
||||
@@ -12350,8 +12350,8 @@ void rob_chara_item_equip_object::reset_external_force() {
|
||||
i->rob.ResetExtrenalForce();
|
||||
}
|
||||
|
||||
void rob_chara_item_equip_object::set_alpha_draw_task_flags(float_t alpha, int32_t flags) {
|
||||
draw_task_flags = (::draw_task_flags)flags;
|
||||
void rob_chara_item_equip_object::set_alpha_obj_flags(float_t alpha, int32_t flags) {
|
||||
obj_flags = (mdl::ObjFlags)flags;
|
||||
this->alpha = clamp_def(alpha, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
@@ -12638,11 +12638,11 @@ static void sub_140512C20(rob_chara_item_equip* rob_itm_equip, render_context* r
|
||||
}
|
||||
|
||||
void rob_chara_item_equip::disp(int32_t chara_id, render_context* rctx) {
|
||||
draw_task_flags v2 = (draw_task_flags)0;
|
||||
mdl::ObjFlags flags = (mdl::ObjFlags)0;
|
||||
if (rctx->chara_reflect)
|
||||
enum_or(v2, DRAW_TASK_CHARA_REFLECT);
|
||||
enum_or(flags, mdl::OBJ_CHARA_REFLECT);
|
||||
if (rctx->chara_refract)
|
||||
enum_or(v2, DRAW_TASK_REFRACT);
|
||||
enum_or(flags, mdl::OBJ_REFRACT);
|
||||
|
||||
mdl::DispManager& disp_manager = rctx->disp_manager;
|
||||
shadow* shad = rctx->render_manager.shadow_ptr;
|
||||
@@ -12659,13 +12659,13 @@ void rob_chara_item_equip::disp(int32_t chara_id, render_context* rctx) {
|
||||
v9 = 0.05f;
|
||||
rctx->render_manager.shadow_ptr->field_1C0[shadow_type] = v9;
|
||||
disp_manager.set_shadow_type(shadow_type);
|
||||
enum_or(v2, DRAW_TASK_SHADOW);
|
||||
enum_or(flags, mdl::OBJ_SHADOW);
|
||||
}
|
||||
|
||||
if (field_A0 & 1)
|
||||
enum_or(v2, DRAW_TASK_4);
|
||||
enum_or(flags, mdl::OBJ_4);
|
||||
}
|
||||
disp_manager.set_draw_task_flags(v2);
|
||||
disp_manager.set_obj_flags(flags);
|
||||
disp_manager.set_chara_color(chara_color);
|
||||
|
||||
vec4 temp_texture_color_coeff;
|
||||
@@ -12682,29 +12682,29 @@ void rob_chara_item_equip::disp(int32_t chara_id, render_context* rctx) {
|
||||
item_equip_object[i].disp(&mat, rctx);
|
||||
else {
|
||||
for (int32_t i = ITEM_ATAMA; i < ITEM_MAX; i++) {
|
||||
draw_task_flags v18 = (draw_task_flags)0;
|
||||
mdl::ObjFlags v18 = (mdl::ObjFlags)0;
|
||||
if (field_18[i] == 0) {
|
||||
if (rctx->chara_reflect)
|
||||
enum_or(v18, DRAW_TASK_CHARA_REFLECT);
|
||||
enum_or(v18, mdl::OBJ_CHARA_REFLECT);
|
||||
if (rctx->chara_refract)
|
||||
enum_or(v18, DRAW_TASK_REFRACT);
|
||||
enum_or(v18, mdl::OBJ_REFRACT);
|
||||
}
|
||||
|
||||
draw_task_flags v19 = (draw_task_flags)(DRAW_TASK_4 | DRAW_TASK_SHADOW);
|
||||
if (i == 8)
|
||||
v19 = (draw_task_flags)0;
|
||||
mdl::ObjFlags v19 = (mdl::ObjFlags)(mdl::OBJ_4 | mdl::OBJ_SHADOW);
|
||||
if (i == ITEM_HARA)
|
||||
v19 = (mdl::ObjFlags)0;
|
||||
|
||||
if (!(field_A0 & 0x04))
|
||||
enum_and(v19, ~DRAW_TASK_SHADOW);
|
||||
enum_and(v19, ~mdl::OBJ_SHADOW);
|
||||
|
||||
disp_manager.set_draw_task_flags((draw_task_flags)(v18 | v19 | DRAW_TASK_SSS));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(v18 | v19 | mdl::OBJ_SSS));
|
||||
item_equip_object[i].disp(&mat, rctx);
|
||||
}
|
||||
}
|
||||
disp_manager.set_texture_color_coefficients(temp_texture_color_coeff);
|
||||
disp_manager.set_wet_param();
|
||||
disp_manager.set_chara_color();
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
disp_manager.set_shadow_type();
|
||||
}
|
||||
|
||||
@@ -12784,13 +12784,13 @@ void rob_chara_item_equip::reset_init_data(bone_node* bone_nodes) {
|
||||
mat = mat4_identity;
|
||||
}
|
||||
|
||||
void rob_chara_item_equip::set_alpha_draw_task_flags(float_t alpha, draw_task_flags flags) {
|
||||
void rob_chara_item_equip::set_alpha_obj_flags(float_t alpha, mdl::ObjFlags flags) {
|
||||
if (item_equip_range)
|
||||
for (int32_t i = first_item_equip_object; i < max_item_equip_object; i++)
|
||||
item_equip_object[i].set_alpha_draw_task_flags(alpha, flags);
|
||||
item_equip_object[i].set_alpha_obj_flags(alpha, flags);
|
||||
else
|
||||
for (int32_t i = ITEM_ATAMA; i < ITEM_MAX; i++)
|
||||
item_equip_object[i].set_alpha_draw_task_flags(alpha, flags);
|
||||
item_equip_object[i].set_alpha_obj_flags(alpha, flags);
|
||||
}
|
||||
|
||||
void rob_chara_item_equip::set_disp(item_id id, bool value) {
|
||||
|
||||
+4
-4
@@ -2132,7 +2132,7 @@ struct rob_chara_item_equip_object {
|
||||
bool null_blocks_data_set;
|
||||
bone_node_expression_data exp_data;
|
||||
float_t alpha;
|
||||
draw_task_flags draw_task_flags;
|
||||
mdl::ObjFlags obj_flags;
|
||||
bool can_disp;
|
||||
int32_t field_A4;
|
||||
mat4* mat;
|
||||
@@ -2175,7 +2175,7 @@ struct rob_chara_item_equip_object {
|
||||
void load_object_info_ex_data(object_info object_info, bone_node* bone_nodes,
|
||||
bool osage_reset, bone_database* bone_data, void* data, object_database* obj_db);
|
||||
void reset_external_force();
|
||||
void set_alpha_draw_task_flags(float_t alpha, int32_t flags);
|
||||
void set_alpha_obj_flags(float_t alpha, int32_t flags);
|
||||
bool set_boc(skin_param_osage_root& skp_root, ExOsageBlock* osg);
|
||||
void set_collision_target_osage(skin_param_osage_root& skp_root, skin_param* skp);
|
||||
void set_motion_reset_data(int32_t motion_id, float_t frame);
|
||||
@@ -2263,7 +2263,7 @@ struct rob_chara_item_equip {
|
||||
void reset();
|
||||
void reset_external_force();
|
||||
void reset_init_data(bone_node* bone_nodes);
|
||||
void set_alpha_draw_task_flags(float_t alpha, draw_task_flags flags);
|
||||
void set_alpha_obj_flags(float_t alpha, mdl::ObjFlags flags);
|
||||
void set_disp(item_id id, bool value);
|
||||
void set_item_equip_range(bool value);
|
||||
void set_motion_reset_data(int32_t motion_id, float_t frame);
|
||||
@@ -3510,7 +3510,7 @@ extern int32_t rob_chara_array_init_chara_index(chara_index chara_index,
|
||||
rob_chara_pv_data* pv_data, int32_t module_index, bool can_set_default);
|
||||
extern void rob_chara_array_free_chara_id(int32_t chara_id);
|
||||
extern void rob_chara_array_reset_bone_data_item_equip(int32_t chara_id);
|
||||
extern void rob_chara_array_set_alpha_draw_task_flags(int32_t chara_id, float_t alpha, draw_task_flags flags);
|
||||
extern void rob_chara_array_set_alpha_obj_flags(int32_t chara_id, float_t alpha, mdl::ObjFlags flags);
|
||||
|
||||
extern bool rob_chara_pv_data_array_check_chara_id(int32_t chara_id);
|
||||
|
||||
|
||||
+6
-9
@@ -497,17 +497,15 @@ static void stage_disp(stage* s) {
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_ring);
|
||||
|
||||
if (s->stage_data->object_reflect.not_null()) {
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFLECT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFLECT));
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_reflect);
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
}
|
||||
|
||||
if (s->stage_data->object_refract.not_null()) {
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFRACT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFRACT));
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_refract);
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
}
|
||||
|
||||
if (s->stage_data->object_sky.not_null() && s->sky) {
|
||||
@@ -548,12 +546,11 @@ static void stage_disp_shadow_object(object_info object, mat4* mat) {
|
||||
disp_manager.set_culling_finc(i == SHADOW_CHARA
|
||||
? object_bounding_sphere_check_visibility_shadow_chara
|
||||
: object_bounding_sphere_check_visibility_shadow_stage);
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_SHADOW_OBJECT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_SHADOW_OBJECT));
|
||||
disp_manager.entry_obj_by_object_info(mat, object);
|
||||
}
|
||||
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
disp_manager.set_culling_finc();
|
||||
disp_manager.set_shadow_type();
|
||||
}
|
||||
|
||||
@@ -503,17 +503,15 @@ static void stage_modern_disp(stage_modern* s) {
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_ground);
|
||||
|
||||
if (s->stage_data->object_reflect.not_null_modern()) {
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFRACT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFRACT));
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_reflect);
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
}
|
||||
|
||||
if (s->stage_data->object_refract.not_null_modern()) {
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_REFRACT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_REFRACT));
|
||||
disp_manager.entry_obj_by_object_info(&mat, s->stage_data->object_refract);
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
}
|
||||
|
||||
if (s->stage_data->object_sky.not_null_modern() && s->sky) {
|
||||
@@ -541,12 +539,11 @@ static void stage_modern_disp_shadow_object(object_info object, mat4* mat) {
|
||||
disp_manager.set_culling_finc(i == SHADOW_CHARA
|
||||
? object_bounding_sphere_check_visibility_shadow_chara
|
||||
: object_bounding_sphere_check_visibility_shadow_stage);
|
||||
disp_manager.set_draw_task_flags(
|
||||
(draw_task_flags)(DRAW_TASK_NO_TRANSLUCENCY | DRAW_TASK_SHADOW_OBJECT));
|
||||
disp_manager.set_obj_flags((mdl::ObjFlags)(mdl::OBJ_NO_TRANSLUCENCY | mdl::OBJ_SHADOW_OBJECT));
|
||||
disp_manager.entry_obj_by_object_info(mat, object);
|
||||
}
|
||||
|
||||
disp_manager.set_draw_task_flags();
|
||||
disp_manager.set_obj_flags();
|
||||
disp_manager.set_culling_finc();
|
||||
disp_manager.set_shadow_type();
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ enum chara_index {
|
||||
CHARA_MAX = 10,
|
||||
};
|
||||
|
||||
enum draw_task_flags {
|
||||
enum obj_flags {
|
||||
DRAW_TASK_SHADOW = 0x00000001,
|
||||
DRAW_TASK_2 = 0x00000002,
|
||||
DRAW_TASK_4 = 0x00000004,
|
||||
@@ -4042,7 +4042,7 @@ struct rob_chara_item_equip_object {
|
||||
bool null_blocks_data_set;
|
||||
bone_node_expression_data exp_data;
|
||||
float_t alpha;
|
||||
draw_task_flags draw_task_flags;
|
||||
obj_flags obj_flags;
|
||||
bool disp;
|
||||
int32_t field_A4;
|
||||
mat4* mat;
|
||||
|
||||
@@ -4935,17 +4935,17 @@ static void x_pv_game_chara_item_alpha_callback(void* data, int32_t chara_id, in
|
||||
if (chara_id < 0 || chara_id >= pv_data.play_param->chara.size())
|
||||
return;
|
||||
|
||||
draw_task_flags draw_task_flags;
|
||||
mdl::ObjFlags flags;
|
||||
switch (type) {
|
||||
case 0:
|
||||
default:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_1;
|
||||
flags = mdl::OBJ_ALPHA_ORDER_1;
|
||||
break;
|
||||
case 1:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_2;
|
||||
flags = mdl::OBJ_ALPHA_ORDER_2;
|
||||
break;
|
||||
case 2:
|
||||
draw_task_flags = DRAW_TASK_ALPHA_ORDER_3;
|
||||
flags = mdl::OBJ_ALPHA_ORDER_3;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4954,7 +4954,7 @@ static void x_pv_game_chara_item_alpha_callback(void* data, int32_t chara_id, in
|
||||
continue;
|
||||
|
||||
for (x_pv_game_song_effect_auth_3d& j : i.auth_3d)
|
||||
j.id.set_draw_task_flags_alpha(draw_task_flags, alpha);
|
||||
j.id.set_obj_flags_alpha(flags, alpha);
|
||||
|
||||
for (x_pv_game_song_effect_glitter& j : i.glitter)
|
||||
Glitter::glt_particle_manager->SetSceneEffectExtColor(j.scene_counter,
|
||||
|
||||
Reference in New Issue
Block a user