Fix tile outlines drawn over units (miniquad only depth-tests with depth writes); Soul Core starts with a treasury ring

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-03 08:19:49 +01:00
1 parent 5158075d7b
commit 3e3084c35d
3 files changed
+28 -5

No files matched your search

+7 -4
View File
@@ -262,7 +262,9 @@ void main() {
MaterialParams {
pipeline_params: PipelineParams {
depth_test: Comparison::LessOrEqual,
depth_write: false,
// miniquad only enables the depth *test* together with depth writes, so this
// material writes depth too; large translucent glows are therefore drawn last
depth_write: true,
color_blend: Some(BlendState::new(Equation::Add, BlendFactor::Value(BlendValue::SourceAlpha), BlendFactor::OneMinusValue(BlendValue::SourceAlpha))),
..Default::default()
},
@@ -906,15 +908,16 @@ impl R3d {
draw_sphere(vec3(x, 0.8, z), 0.05 * fl, None, Color::new(1.0, 0.95, 0.6, 1.0));
}
draw_shadows(g);
draw_landmarks_glow(g, t);
draw_towers_glow(g, t);
if let Some(f) = g.flag {
draw_flag(f, t);
}
draw_overlay(&g.map, ov, self.wall_sub);
// translucent glows and effects last (they write depth, see glow_material)
draw_landmarks_glow(g, t);
draw_towers_glow(g, t);
for f in &g.fx {
draw_fx(f, t);
}
draw_overlay(&g.map, ov, self.wall_sub);
gl_use_default_material();
set_default_camera();