From 6146d84b872ecf7555169248cfbee68207a9d24a Mon Sep 17 00:00:00 2001 From: Vaillant Jeremy Date: Sat, 16 May 2026 22:02:59 +0200 Subject: [PATCH] Fix Levels.gd type inference + Database integer-division warning + brighten scenes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scenes/levels/Levels.gd: replace 'var level := Global.database .level_by_index(...)' with explicit 'var level: LevelEntry = ...'. Global.database is typed RefCounted so the parser can't see DB's return types through the walrus operator. Two callsites. - scripts/Database.gd: annotate the two 'range(data.size() / W)' loops with @warning_ignore('integer_division'). The division is intentional (row count = bytes / row width); Godot 4 warns by default in case the slash was a typo. - env: ambient_light_energy 0.4 -> 1.0 in WarCraft.tscn, Home.tscn and env_warcraft.tres. 0.4 left the floor pitch-black; 1.0 is a compromise between the original 1.55 (oversaturated) and this. Re-baking the lightmap in the editor is still the right fix — this commit just keeps the scene playable in the meantime. Co-Authored-By: Claude Opus 4.7 (1M context) --- scenes/levels/Levels.gd | 4 ++-- scenes/levels/home/Home.tscn | 2 +- scenes/levels/warcraft/WarCraft.tscn | 2 +- scenes/levels/warcraft/env_warcraft.tres | 2 +- scripts/Database.gd | 2 ++ 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/scenes/levels/Levels.gd b/scenes/levels/Levels.gd index a0d79e1..3817bfc 100644 --- a/scenes/levels/Levels.gd +++ b/scenes/levels/Levels.gd @@ -34,7 +34,7 @@ func _load_back_button() -> void: $Quit/TextureButton.pressed.connect(Event._on_main_scene_pressed) func _load_prepare_victory_condition() -> void: - var level := Global.database.level_by_index(Global.current_scene_int) + var level: LevelEntry = Global.database.level_by_index(Global.current_scene_int) if level == null: return victory_condition = level.object_to_find() @@ -133,7 +133,7 @@ func _check_dissolve_mesh() -> void: _clean_mesh(key) func _clean_mesh(key: String) -> void: - var level := Global.database.level_by_index(Global.current_scene_int) + var level: LevelEntry = Global.database.level_by_index(Global.current_scene_int) if level != null: victory_progress = level.object_finding() var mesh := _node_to_mesh(key) diff --git a/scenes/levels/home/Home.tscn b/scenes/levels/home/Home.tscn index fd75495..e7f6b53 100644 --- a/scenes/levels/home/Home.tscn +++ b/scenes/levels/home/Home.tscn @@ -11,7 +11,7 @@ background_energy_multiplier = 0.6 sky = SubResource("1") ambient_light_color = Color(0.694118, 0.168627, 0.67451, 1) ambient_light_sky_contribution = 0.5 -ambient_light_energy = 0.4 +ambient_light_energy = 1.0 tonemap_mode = 2 ssr_enabled = true glow_enabled = true diff --git a/scenes/levels/warcraft/WarCraft.tscn b/scenes/levels/warcraft/WarCraft.tscn index fca7ea0..e4e55dd 100644 --- a/scenes/levels/warcraft/WarCraft.tscn +++ b/scenes/levels/warcraft/WarCraft.tscn @@ -49,7 +49,7 @@ background_energy_multiplier = 0.6 sky = SubResource("1") ambient_light_color = Color(0.694118, 0.168627, 0.67451, 1) ambient_light_sky_contribution = 0.5 -ambient_light_energy = 0.4 +ambient_light_energy = 1.0 tonemap_mode = 2 ssr_enabled = true glow_enabled = true diff --git a/scenes/levels/warcraft/env_warcraft.tres b/scenes/levels/warcraft/env_warcraft.tres index dcbfb5d..4c457bf 100644 --- a/scenes/levels/warcraft/env_warcraft.tres +++ b/scenes/levels/warcraft/env_warcraft.tres @@ -11,7 +11,7 @@ sky = SubResource( 2 ) background_color = Color( 0.188235, 0.133333, 0.133333, 1 ) background_energy_multiplier = 0.6 ambient_light_color = Color( 0.694118, 0.168627, 0.67451, 1 ) -ambient_light_energy = 0.4 +ambient_light_energy = 1.0 ambient_light_sky_contribution = 0.5 fog_enabled = true fog_mode = 1 diff --git a/scripts/Database.gd b/scripts/Database.gd index 6c09155..1053f75 100644 --- a/scripts/Database.gd +++ b/scripts/Database.gd @@ -67,6 +67,7 @@ class DB extends RefCounted: func _load_levels(data: Array) -> Array[LevelEntry]: var result: Array[LevelEntry] = [] const W := 2 + @warning_ignore("integer_division") for i in range(data.size() / W): var l := LevelEntry.new() l.index = i @@ -78,6 +79,7 @@ class DB extends RefCounted: func _load_scenes(data: Array) -> Array[SceneEntry]: var result: Array[SceneEntry] = [] const W := 7 + @warning_ignore("integer_division") for i in range(data.size() / W): var s := SceneEntry.new() s.lock = bool(int(data[i * W + 0]))