Add workaround for zt issue
This commit is contained in:
parent
beb2538457
commit
7a82426692
@ -56,6 +56,21 @@ namespace renderer
|
|||||||
|
|
||||||
return r_update_front_end_dvar_options_hook.invoke<bool>();
|
return r_update_front_end_dvar_options_hook.invoke<bool>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
utils::hook::detour r_filter_things_into_cells_r_hook;
|
||||||
|
void r_filter_things_into_cells_r_stub(void* node, unsigned int dyn_ent_index, game::Bounds* bounds, unsigned int* cell_bits, unsigned int word_count)
|
||||||
|
{
|
||||||
|
const auto gfx_world = *reinterpret_cast<size_t*>(0x14EE49000);
|
||||||
|
const auto bsp_version = *reinterpret_cast<unsigned int*>(gfx_world + 16);
|
||||||
|
if (bsp_version == 115) // h2 bsp version
|
||||||
|
{
|
||||||
|
return r_filter_things_into_cells_r_hook.invoke<void>(node, dyn_ent_index, bounds, cell_bits, word_count);
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr auto cell_index = 0;
|
||||||
|
const auto index = (dyn_ent_index >> 5) + word_count * cell_index;
|
||||||
|
cell_bits[index] |= 0x80000000 >> (dyn_ent_index & 0x1F);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class component final : public component_interface
|
class component final : public component_interface
|
||||||
@ -67,6 +82,9 @@ namespace renderer
|
|||||||
|
|
||||||
r_init_draw_method_hook.create(0x14072F950, &r_init_draw_method_stub);
|
r_init_draw_method_hook.create(0x14072F950, &r_init_draw_method_stub);
|
||||||
r_update_front_end_dvar_options_hook.create(0x14076EE70, &r_update_front_end_dvar_options_stub);
|
r_update_front_end_dvar_options_hook.create(0x14076EE70, &r_update_front_end_dvar_options_stub);
|
||||||
|
|
||||||
|
// workaround for zonetool issue
|
||||||
|
r_filter_things_into_cells_r_hook.create(0x140724720, r_filter_things_into_cells_r_stub);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user