diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index ff9e7ff4e140ec0528a1371323de0c6b71200930..ab0204c1eb202ebcb89777879295e5a2fd5363d8 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -739,7 +739,7 @@ function _M:display(nb_keyframes) if self.fbo and self.mapfbo then self.mapfbo:use(true) if self.level.data.background then self.level.data.background(self.level, 0, 0, nb_keyframes) end - map:display(0, 0, nb_keyframes, true) -- Display at the base of the FBO and make sure to display everything as the shader will do smooth FOV over it + map:display(Map.tile_w, Map.tile_h, nb_keyframes, true) -- Display at the base of the FBO and make sure to display everything as the shader will do smooth FOV over it map._map:updateSeensTexture() if self.level.data.foreground then self.level.data.foreground(self.level, 0, 0, nb_keyframes) end if self.level.data.weather_particle then self.state:displayWeather(self.level, self.level.data.weather_particle, nb_keyframes) end diff --git a/game/modules/tome/data/gfx/shaders/map_fbo.frag b/game/modules/tome/data/gfx/shaders/map_fbo.frag index 1496858d78bbaa9869c4699e596ffccfb15d01bb..33d6232864693e5354ca80914bb73fa53b7d4a81 100644 --- a/game/modules/tome/data/gfx/shaders/map_fbo.frag +++ b/game/modules/tome/data/gfx/shaders/map_fbo.frag @@ -12,7 +12,10 @@ void main(void) * seenscoords is arranged as this: (tile_w, tile_h, view_scene_w, view_scene_h) * We offset by 1x1.25 tiles .. dont ask why, it just works :/ */ - vec2 seenscoord = vec2((((gl_TexCoord[0].x + seensinfo.r / texSize.x) / seensinfo.r)) * texSize.x / seensinfo.b, (((gl_TexCoord[0].y + (seensinfo.g * -1.5) / texSize.y) / seensinfo.g)) * texSize.y / seensinfo.a); + float v = -0.75; + if (seensinfo.g == 32.0) v = -0.50; + if (seensinfo.g == 16.0) v = -0.15; + vec2 seenscoord = vec2((((gl_TexCoord[0].x) / seensinfo.r)) * texSize.x / seensinfo.b, (((gl_TexCoord[0].y + (seensinfo.g * v) / texSize.y) / seensinfo.g)) * texSize.y / seensinfo.a); vec4 seen = texture2D(seens, seenscoord); gl_FragColor = texture2D(tex, gl_TexCoord[0].xy); gl_FragColor.r *= seen.r; diff --git a/src/map.c b/src/map.c index 4d3d0f57f7172156d81dc55295e89c5d6d8c1cbd..26e59c2f9169c60bb602fb3266c6be0a6e529f0f 100644 --- a/src/map.c +++ b/src/map.c @@ -1057,7 +1057,7 @@ static int map_to_screen(lua_State *L) // If we use shaders for FOV display it means we must uses fbos for smooth scroll too if (!always_show) { - SMOOTH_SCROLL(); + SMOOTH_SCROLL(); x -= animdx; y -= animdy; } diff --git a/src/map.h b/src/map.h index a885e8fb1274ee2be7b0717b6c93f2efac000e23..181934eefacb4b116621da717129f4a7f9a56bba 100644 --- a/src/map.h +++ b/src/map.h @@ -82,6 +82,7 @@ typedef struct { float oldmx, oldmy; int move_step, move_max; float used_mx, used_my; + float used_animdx, used_animdy; int seensinfo_w; int seensinfo_h; } map_type;