     // TODO: remove
     if(gl_FrontFacing)
     {
-        diffuse_mul = max(0.0, dot(normal_vec, normalize(dir)));
+        diffuse_mul = max(0.0, dot(normal_vec, dir));
         specular_mul = max(0.0, dot(normal_vec, half_vec));
     }
     else
     {
-        diffuse_mul = max(0.0, dot(-normal_vec, normalize(dir)));
+        diffuse_mul = max(0.0, dot(-normal_vec, dir));
         specular_mul = max(0.0, dot(-normal_vec, half_vec));
     }
 

    dir = dir / dist; // normalize, but reuse length instead of calling normalize
}

// TODO: not properly lighting walls
void calc_point_spot_light(in vec3 pos, in vec3 forward, in vec3 normal_vec,
    in vec3 dir, in float atten, in Material material, in Base_light base,
    out vec3 scattered, out vec3 reflected)

    if(!dir_light.base.enabled)
        return;

    calc_common_lighting(normal_vec, normalize(dir_light.dir), normalize(dir_light.half_vec), material, dir_light.base, 1.0,
        scattered, reflected);
}
