Disable OpenGL Lighting On Arrows, It Looked Terrible

This commit is contained in:
TheBrokenRail 2025-02-26 06:36:06 -05:00
parent 140e2eef48
commit 5d1bbabd77
2 changed files with 10 additions and 7 deletions

View File

@ -71,7 +71,7 @@ static void disable_rescale_normal() {
media_glDisable(GL_RESCALE_NORMAL);
}
template <typename Self>
static void EntityRenderer_render_injection(const std::function<void(Self *, Entity *, float, float, float, float, float)> &original, Self *self, Entity *entity, float x, float y, float z, float rot, float a) {
static void EntityRenderer_render_injection(const std::function<void(Self *, Entity *, float, float, float, float, float)> &original, Self *self, Entity *entity, const float x, const float y, const float z, const float rot, const float a) {
media_glEnable(GL_RESCALE_NORMAL);
original(self, entity, x, y, z, rot, a);
media_glDisable(GL_RESCALE_NORMAL);
@ -101,7 +101,7 @@ static void ArmorScreen_renderPlayer_injection(ArmorScreen_renderPlayer_t origin
original(self, param_1, param_2);
lighting_turn_off();
}
static void ArmorScreen_renderPlayer_glRotatef_injection(float angle, float x, float y, float z) {
static void ArmorScreen_renderPlayer_glRotatef_injection(const float angle, const float x, const float y, const float z) {
lighting_turn_on();
media_glRotatef(angle, x, y, z);
}
@ -113,6 +113,13 @@ static void TripodCameraRenderer_render_Tesselator_draw_injection(Tesselator *se
media_glEnable(GL_LIGHTING);
}
// Fix Arrow
static void ArrowRenderer_render_injection(ArrowRenderer_render_t original, ArrowRenderer *self, Entity *entity, const float x, const float y, const float z, const float rot, const float a) {
media_glDisable(GL_LIGHTING);
original(self, entity, x, y, z, rot, a);
media_glEnable(GL_LIGHTING);
}
// Init
void _init_lighting() {
overwrite_calls(LevelRenderer_renderEntities, LevelRenderer_renderEntities_injection);
@ -121,7 +128,7 @@ void _init_lighting() {
overwrite_call_manual((void *) 0x4bedc, (void *) enable_rescale_normal);
overwrite_call_manual((void *) 0x4bf70, (void *) disable_rescale_normal);
overwrite_calls(ItemRenderer_render, EntityRenderer_render_injection<ItemRenderer>);
overwrite_calls(ArrowRenderer_render, EntityRenderer_render_injection<ArrowRenderer>);
overwrite_calls(ArrowRenderer_render, ArrowRenderer_render_injection);
overwrite_calls(ItemSpriteRenderer_render, EntityRenderer_render_injection<ItemSpriteRenderer>);
overwrite_calls(PaintingRenderer_render, EntityRenderer_render_injection<PaintingRenderer>);
overwrite_call_manual((void *) 0x641ec, (void *) enable_rescale_normal);

View File

@ -84,10 +84,6 @@ void _init_normals() {
add_normal_before_getTexture2<0, 0, 1>(0x5e6a0);
add_normal_before_getTexture2<-1, 0, 0>(0x5e6d0);
add_normal_before_getTexture2<1, 0, 0>(0x5e700);
// ArrowRenderer::render
add_normal_before_vertexUV<1, 0, 0>(0x60184);
add_normal_before_vertexUV<-1, 0, 0>(0x601f4);
add_normal_before_vertexUV<0, 0, 1>(0x60288);
// ItemRenderer::render
add_normal_before_vertexUV<0, 1, 0>(0x63394);
// ItemSpriteRenderer::render