Make Main, Settings, ChooseScene, and gameplay run in Godot 4.6

Catch-all commit for everything the --convert-3to4 tool missed during a
manual playtest of the game. All errors raised by clicking through Main
-> Puzzles -> level were fixed.

GDScript:
- PackedScene.instance() -> instantiate() (ChooseScene.gd)
- String(x) constructor doesn't exist -> str(x) (MBase, MScene,
  MLevel, Animation, Levels)
- 'x as int/String/bool' doesn't parse strings -> explicit
  int()/str()/bool(int()) (MScene, MLevel, MSetting)
- BaseButton.pressed (property) -> button_pressed; set_pressed() ->
  direct assignment (Settings.gd)
- AnimationPlayer.add_animation() removed -> go through
  AnimationLibrary (Levels.gd)
- PhysicsDirectSpaceState3D.intersect_ray(from, to, ...) ->
  PhysicsRayQueryParameters3D.create() (Levels.gd)
- @export with type-hint-in-comment ('# (String, ...)') -> explicit
  @export_enum (candle.gd)
- Get effective material with get_active_material() instead of
  get_surface_override_material(), with null guard (Levels.gd)
- get_node() -> get_node_or_null() so missing items from ahog.json
  (e.g. sm_super_dager in Home) don't crash (Levels.gd)

Scenes/resources:
- Remove 14 Tween nodes from WarCraft.tscn — Tween is no longer a
  Node in Godot 4. Rewrite Animation.start_dissolve to use
  create_tween().tween_method().
- Rename property material/N -> surface_material_override/N in every
  .tscn (10 files) — Godot 3 -> 4 rename that --convert-3to4 missed.
  Without this, MeshInstance3D.get_active_material(0) returned the
  glTF-imported StandardMaterial3D instead of the project's custom
  dissolve ShaderMaterial.

Shaders:
- One-shot scripts/migrate_shaders.gd walks every .material under
  assets/ and fixes Godot 3 -> 4 shader code in-place. Fixed 17
  materials: depth_draw_alpha_prepass -> depth_prepass_alpha,
  hint_color -> source_color, NORMALMAP -> NORMAL_MAP.

Result: Main, Settings, ChooseScene, and the WarCraft level all run
without script or shader errors. Remaining noise is non-blocking
(visual_shader graph in text_outline.material, baked lightmap binary
format from Godot 3, and empty animation tracks).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vaillant Jeremy
2026-05-16 19:40:03 +02:00
parent 770434482d
commit 4d5db7bb61
68 changed files with 274 additions and 253 deletions
+28 -56
View File
@@ -176,7 +176,7 @@ collide_with_bodies = false
transform = Transform3D( -0.210773, -0.635682, 0.742619, 0.949185, -0.314721, 0, 0.233718, 0.704883, 0.669714, 0.0481223, 0, -0.094099 )
use_in_baked_light = true
mesh = ExtResource( 12 )
material/0 = ExtResource( 13 )
surface_material_override/0 = ExtResource( 13 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/Fiole1" index="0"]
collision_mask = 2
@@ -185,13 +185,11 @@ collision_mask = 2
transform = Transform3D( 1, 2.98023e-08, -4.47035e-08, -2.98023e-08, -8.9407e-08, 1, -1.19209e-07, -1, -1.49012e-07, 0, 0.0801148, -2.98023e-08 )
shape = SubResource( 3 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/Fiole1" index="1"]
[node name="Fiole2" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles" index="1"]
transform = Transform3D( 0.655275, 0.636944, -0.4061, 0.670978, -0.243833, 0.700239, 0.346993, -0.731333, -0.587153, -4.19531, -0.894133, 2.66915 )
use_in_baked_light = true
mesh = ExtResource( 12 )
material/0 = ExtResource( 19 )
surface_material_override/0 = ExtResource( 19 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/Fiole2" index="0"]
transform = Transform3D( 1, -2.98023e-08, 0, -2.98023e-08, 1, 0, 1.49012e-08, -1.19209e-07, 1, -2.38419e-07, -0.0202575, 0 )
@@ -201,19 +199,17 @@ collision_mask = 2
transform = Transform3D( 1, 5.96046e-08, -8.9407e-08, 2.98023e-08, -8.9407e-08, 1, -8.9407e-08, -1, 0, 2.38419e-07, 0.0823998, -1.19209e-07 )
shape = SubResource( 4 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/Fiole2" index="1"]
[node name="FioleSocle" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles" index="2"]
transform = Transform3D( 0.6773, -1.86265e-09, 0.735707, -0.0293841, 0.999202, 0.0270513, -0.73512, -0.03994, 0.67676, -2.27881, -0.11528, -1.23929 )
use_in_baked_light = true
mesh = ExtResource( 3 )
material/0 = null
surface_material_override/0 = null
[node name="Fiole3" type="MeshInstance3D" parent="HiddenObjectsItems/Fioles/FioleSocle" index="0"]
transform = Transform3D( 0.919703, -0.349433, -0.179005, 0.316708, 0.929754, -0.187758, 0.232039, 0.115989, 0.965766, -1.19209e-07, 0.1147, 0.00100636 )
use_in_baked_light = true
mesh = ExtResource( 12 )
material/0 = ExtResource( 21 )
surface_material_override/0 = ExtResource( 21 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3" index="0"]
collision_mask = 2
@@ -222,13 +218,11 @@ collision_mask = 2
transform = Transform3D( 1, 2.08616e-07, -7.45058e-08, -5.96046e-08, -1.49012e-07, 1, 5.96046e-08, -1, -1.04308e-07, -1.78814e-07, 0.0560231, 0 )
shape = SubResource( 5 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Fioles/FioleSocle/Fiole3" index="1"]
[node name="Dagger" type="MeshInstance3D" parent="HiddenObjectsItems" index="1"]
transform = Transform3D( -0.625025, -0.777847, 0.0655765, 0, 0.0840072, 0.996466, -0.780606, 0.622816, -0.0525065, 0.69073, -0.117415, 0.830941 )
use_in_baked_light = true
mesh = ExtResource( 17 )
material/0 = ExtResource( 14 )
surface_material_override/0 = ExtResource( 14 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Dagger" index="0"]
collision_mask = 2
@@ -237,13 +231,11 @@ collision_mask = 2
transform = Transform3D( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.0802139, 0 )
shape = SubResource( 6 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Dagger" index="1"]
[node name="Spyglass" type="MeshInstance3D" parent="HiddenObjectsItems" index="2"]
transform = Transform3D( 0.652362, 0.137749, 0.63579, -0.234678, 0.889605, 0.0480562, -0.606736, -0.195981, 0.665013, -2.884, -0.292075, -0.429783 )
use_in_baked_light = true
mesh = ExtResource( 23 )
material/0 = ExtResource( 24 )
surface_material_override/0 = ExtResource( 24 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Spyglass" index="0"]
collision_mask = 2
@@ -252,13 +244,11 @@ collision_mask = 2
transform = Transform3D( 1, 0, 2.98023e-08, 1.86265e-09, 1, 3.72529e-09, 0, 5.58794e-09, 1, 2.38419e-07, -1.19209e-07, 0.0177531 )
shape = SubResource( 7 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Spyglass" index="1"]
[node name="Beer" type="MeshInstance3D" parent="HiddenObjectsItems" index="3"]
transform = Transform3D( 0.996658, -0.053142, 0.0620432, 0.0548108, 0.998171, -0.0255105, -0.060574, 0.0288258, 0.997748, -2.8842, 0.173697, 1.98168 )
use_in_baked_light = true
mesh = ExtResource( 22 )
material/0 = ExtResource( 5 )
surface_material_override/0 = ExtResource( 5 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Beer" index="0"]
transform = Transform3D( 1, 0, 7.45058e-09, -1.16415e-10, 1, -1.86265e-09, 0, 0, 1, -2.38419e-07, -0.21161, -1.19209e-07 )
@@ -268,13 +258,11 @@ collision_mask = 2
transform = Transform3D( 1, 0, -1.61817e-08, 1.83936e-08, -4.28408e-08, 1, 0, -1, -4.65661e-08, 9.53674e-07, 0.0746492, 2.38419e-07 )
shape = SubResource( 8 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Beer" index="1"]
[node name="Weapon" type="MeshInstance3D" parent="HiddenObjectsItems" index="4"]
transform = Transform3D( 0.540284, -0.813497, 0.215212, -0.009216, 0.250018, 0.968198, -0.841432, -0.525085, 0.127583, -2.7508, -0.359206, 1.19589 )
use_in_baked_light = true
mesh = ExtResource( 7 )
material/0 = ExtResource( 8 )
surface_material_override/0 = ExtResource( 8 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Weapon" index="0"]
collision_mask = 2
@@ -283,15 +271,13 @@ collision_mask = 2
transform = Transform3D( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, 0.0388942, 0.0484145, -8.19564e-08 )
shape = SubResource( 9 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Weapon" index="1"]
[node name="Apples" type="Node3D" parent="HiddenObjectsItems" index="5"]
[node name="Apple1" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="0"]
transform = Transform3D( 0.849809, -0.0462348, 0.525058, 0.0744364, 0.996689, -0.0327109, -0.521807, 0.0668814, 0.850438, -2.20275, -0.0779731, 2.45146 )
use_in_baked_light = true
mesh = ExtResource( 4 )
material/0 = ExtResource( 15 )
surface_material_override/0 = ExtResource( 15 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple1" index="0"]
collision_mask = 2
@@ -300,13 +286,11 @@ collision_mask = 2
transform = Transform3D( -1.45286e-07, -2.98023e-08, 1, -1, -1.11759e-08, 0, 1.86265e-08, -1, -8.9407e-08, -1.90735e-06, 0.00575864, 0 )
shape = SubResource( 10 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple1" index="1"]
[node name="Apple2" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="1"]
transform = Transform3D( -0.190449, 0, 0.981697, 0, 1, 0, -0.981697, 0, -0.190449, -1.71166, -0.0869397, -1.29534 )
use_in_baked_light = true
mesh = ExtResource( 4 )
material/0 = ExtResource( 9 )
surface_material_override/0 = ExtResource( 9 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple2" index="0"]
collision_mask = 2
@@ -315,13 +299,11 @@ collision_mask = 2
transform = Transform3D( -1.49012e-07, 4.47035e-08, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -1.49012e-08, -4.76837e-07, -0.00566041, 0 )
shape = SubResource( 11 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple2" index="1"]
[node name="Apple3" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="2"]
transform = Transform3D( 0.823731, 0.226496, -0.519776, -0.248954, 0.96813, 0.0273319, 0.509401, 0.106886, 0.853865, -0.718663, -0.36046, 1.92043 )
use_in_baked_light = true
mesh = ExtResource( 4 )
material/0 = ExtResource( 20 )
surface_material_override/0 = ExtResource( 20 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple3" index="0"]
collision_mask = 2
@@ -330,13 +312,11 @@ collision_mask = 2
transform = Transform3D( -1.71363e-07, 0, 1, -1, -3.72529e-08, 1.49012e-08, 2.98023e-08, -1, -1.19209e-07, -3.57628e-07, 0.0142345, 2.38419e-07 )
shape = SubResource( 12 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple3" index="1"]
[node name="Apple4" type="MeshInstance3D" parent="HiddenObjectsItems/Apples" index="3"]
transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.38775, -0.940515, 0.233058 )
use_in_baked_light = true
mesh = ExtResource( 4 )
material/0 = ExtResource( 10 )
surface_material_override/0 = ExtResource( 10 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Apples/Apple4" index="0"]
collision_mask = 2
@@ -345,15 +325,13 @@ collision_mask = 2
transform = Transform3D( -1.49012e-07, 0, 1, -1, -1.49012e-08, 0, 3.72529e-08, -1, -5.21541e-08, -4.76837e-07, 0.00115258, -1.17347e-07 )
shape = SubResource( 13 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Apples/Apple4" index="1"]
[node name="Coins" type="Node3D" parent="HiddenObjectsItems" index="6"]
[node name="Coin1" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="0"]
transform = Transform3D( -0.958704, -0.0851446, 0.271362, -0.0825332, 0.996367, 0.0210433, -0.272167, -0.00222202, -0.962248, 0.215021, 0.00178671, 0.520763 )
use_in_baked_light = true
mesh = ExtResource( 2 )
material/0 = ExtResource( 18 )
surface_material_override/0 = ExtResource( 18 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin1" index="0"]
transform = Transform3D( 1, -4.65661e-09, 0, 2.68919e-08, 1, 4.65661e-10, -1.19209e-07, -1.14087e-08, 1, -0.0781975, -0.0532835, -0.0615574 )
@@ -363,14 +341,12 @@ collision_mask = 2
transform = Transform3D( 1, -4.65661e-08, 0, -1.38185e-07, 0.999999, 3.14321e-08, 4.17233e-07, -4.19095e-09, 1, 0.0276761, 0.00212932, 0.0336302 )
shape = SubResource( 14 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin1" index="1"]
[node name="Coin2" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="1"]
transform = Transform3D( 0.250245, 2.79397e-09, -0.968183, 0.0456076, 0.99889, 0.0117882, 0.967108, -0.0471065, 0.249967, 0.752443, -0.000386238, 1.36745 )
layers = 3
use_in_baked_light = true
mesh = ExtResource( 2 )
material/0 = ExtResource( 16 )
surface_material_override/0 = ExtResource( 16 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin2" index="0"]
transform = Transform3D( 1, -1.49012e-08, 0, 0, 1, 9.31323e-10, 1.49012e-08, -3.72529e-09, 1, -0.0553267, -0.0679173, -0.0739018 )
@@ -380,13 +356,11 @@ collision_mask = 2
transform = Transform3D( 1, 0, 2.98023e-08, 7.45058e-09, 1, -9.31323e-10, 5.96046e-08, 0, 1, 0.0499306, 1.19209e-07, 0.0191208 )
shape = SubResource( 15 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin2" index="1"]
[node name="Coin3" type="MeshInstance3D" parent="HiddenObjectsItems/Coins" index="2"]
transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.74641, -0.885448, -0.198129 )
use_in_baked_light = true
mesh = ExtResource( 2 )
material/0 = ExtResource( 6 )
surface_material_override/0 = ExtResource( 6 )
[node name="Area3D" type="Area3D" parent="HiddenObjectsItems/Coins/Coin3" index="0"]
transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0744205, -0.0795707, -0.040606 )
@@ -396,8 +370,6 @@ collision_mask = 2
transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0358186, 0, 0.0109152 )
shape = SubResource( 16 )
[node name="Tween" type="Tween" parent="HiddenObjectsItems/Coins/Coin3" index="1"]
[node name="MainSceneProps" type="Node3D" parent="." index="6"]
[node name="sm_book" parent="MainSceneProps" index="0" instance=ExtResource( 33 )]
@@ -471,19 +443,19 @@ transform = Transform3D( -0.596381, 0.0184557, 0.802489, 0.0225364, 0.999726, -0
transform = Transform3D( -0.927966, 1.10978e-07, -0.372664, 6.91459e-08, 1, 1.25617e-07, 0.372664, 9.08001e-08, -0.927966, 0.457262, 1.00485, -0.058084 )
use_in_baked_light = true
mesh = ExtResource( 25 )
material/0 = null
surface_material_override/0 = null
[node name="sm_candle_top2" type="MeshInstance3D" parent="MainSceneProps" index="19"]
transform = Transform3D( 2.94906, 0, 0, 0, 2.85, 0, 0, 0, 2.94906, 0.347704, 1.00342, 1.16015 )
use_in_baked_light = true
mesh = ExtResource( 26 )
material/0 = null
surface_material_override/0 = null
[node name="sm_candle_b" type="MeshInstance3D" parent="MainSceneProps/sm_candle_top2" index="0"]
transform = Transform3D( 0.553417, 0, 0, 0, 0.553417, 0, 0, 0, 0.553417, 0.0504003, -0.0129334, 0.00162044 )
use_in_baked_light = true
mesh = ExtResource( 27 )
material/0 = null
surface_material_override/0 = null
[node name="Tableleft" parent="." index="7" instance=ExtResource( 28 )]
transform = Transform3D( -0.958482, 0, -0.285153, 0, 1, 0, 0.285153, 0, -0.958482, -2.60247, 0.0491341, 2.15903 )
@@ -520,31 +492,31 @@ transform = Transform3D( -0.236782, -0.0445638, 0.970541, -0.0267146, 0.998868,
transform = Transform3D( 17.6823, 0, 0, 0, -2.06229e-06, 7.98594, 0, -6.6644, -4.9309e-08, -3.48147, 2.21218, 4.82163 )
use_in_baked_light = true
mesh = ExtResource( 36 )
material/0 = ExtResource( 39 )
surface_material_override/0 = ExtResource( 39 )
[node name="wall_roof" type="MeshInstance3D" parent="Building/walls" index="1"]
transform = Transform3D( 19.0333, 0, 0, 0, -2.05553, -1.80384e-05, 0, 1.78061e-06, -20.8236, -3.43417, 4.19346, -0.500263 )
use_in_baked_light = true
mesh = ExtResource( 36 )
material/0 = ExtResource( 39 )
surface_material_override/0 = ExtResource( 39 )
[node name="wall_right" type="MeshInstance3D" parent="Building/walls" index="2"]
transform = Transform3D( -6.12822, -1.14249, -5.98427e-08, 0, -2.8759e-07, 7.88397, -1.08057, 6.47934, 3.39384e-07, -0.343511, 2.21218, -5.27151 )
use_in_baked_light = true
mesh = ExtResource( 36 )
material/0 = ExtResource( 39 )
surface_material_override/0 = ExtResource( 39 )
[node name="wall_right2" type="MeshInstance3D" parent="Building/walls" index="3"]
transform = Transform3D( -6.12822, -1.14249, -5.98427e-08, 0, -2.8759e-07, 7.88397, -1.08057, 6.47934, 3.39384e-07, -5.52464, 2.21218, -6.18509 )
use_in_baked_light = true
mesh = ExtResource( 36 )
material/0 = ExtResource( 39 )
surface_material_override/0 = ExtResource( 39 )
[node name="wall_background" type="MeshInstance3D" parent="Building/walls" index="4"]
transform = Transform3D( -3.92366, 6.98897, 3.66077e-07, 0, -3.1021e-07, 8.50407, 22.2522, 1.23234, 6.45493e-08, -7.48147, 2.21218, -0.975186 )
use_in_baked_light = true
mesh = ExtResource( 36 )
material/0 = ExtResource( 39 )
surface_material_override/0 = ExtResource( 39 )
[node name="GridMapFloor" type="GridMap" parent="Building" index="1"]
mesh_library = ExtResource( 37 )
@@ -564,31 +536,31 @@ __meta__ = {
transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -6.41226, 0, -3.39909 )
use_in_baked_light = true
mesh = ExtResource( 35 )
material/0 = null
surface_material_override/0 = null
[node name="sm_column2" type="MeshInstance3D" parent="Building" index="3"]
transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.23782, 0, 1.51736 )
use_in_baked_light = true
mesh = ExtResource( 35 )
material/0 = null
surface_material_override/0 = null
[node name="sm_column3" type="MeshInstance3D" parent="Building" index="4"]
transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.73765, 0, 4.20657 )
use_in_baked_light = true
mesh = ExtResource( 35 )
material/0 = null
surface_material_override/0 = null
[node name="sm_column4" type="MeshInstance3D" parent="Building" index="5"]
transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -5.90352, 0, -6.13626 )
use_in_baked_light = true
mesh = ExtResource( 35 )
material/0 = null
surface_material_override/0 = null
[node name="sm_fireplace" type="MeshInstance3D" parent="Building" index="6"]
transform = Transform3D( 0.173648, 0, 0.984808, 0, 1, 0, -0.984808, 0, 0.173648, -7.17176, -2.38419e-07, -1.02066 )
use_in_baked_light = true
mesh = ExtResource( 38 )
material/0 = null
surface_material_override/0 = null
[node name="FireplaceLight" type="OmniLight3D" parent="Building/sm_fireplace" index="0"]
transform = Transform3D( 0.173304, -0.0109248, -0.984808, 0.0629123, 0.998019, -1.78701e-07, 0.982857, -0.0619565, 0.173648, 0.00967455, 0.654315, 0.510273 )