From da00c5237f4db872caf7f69ee10017dc98f08d2c Mon Sep 17 00:00:00 2001 From: Hans Kokx Date: Sun, 15 Mar 2026 16:27:59 +0100 Subject: [PATCH] Fix dead guard not spawning at the beginning of the level Signed-off-by: Hans Kokx --- lib/main.dart | 2 +- lib/{features => }/screens/difficulty_screen.dart | 0 lib/{features => }/screens/episode_screen.dart | 2 +- lib/{ => screens}/game_select_screen.dart | 2 +- lib/{ => screens}/sprite_gallery.dart | 0 packages/wolf_3d_entities/lib/src/entities/enemies/enemy.dart | 4 ++++ 6 files changed, 7 insertions(+), 3 deletions(-) rename lib/{features => }/screens/difficulty_screen.dart (100%) rename lib/{features => }/screens/episode_screen.dart (97%) rename lib/{ => screens}/game_select_screen.dart (93%) rename lib/{ => screens}/sprite_gallery.dart (100%) diff --git a/lib/main.dart b/lib/main.dart index 40ee010..74d5d8a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:wolf_3d_flutter/wolf_3d.dart'; -import 'package:wolf_dart/game_select_screen.dart'; +import 'package:wolf_dart/screens/game_select_screen.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); diff --git a/lib/features/screens/difficulty_screen.dart b/lib/screens/difficulty_screen.dart similarity index 100% rename from lib/features/screens/difficulty_screen.dart rename to lib/screens/difficulty_screen.dart diff --git a/lib/features/screens/episode_screen.dart b/lib/screens/episode_screen.dart similarity index 97% rename from lib/features/screens/episode_screen.dart rename to lib/screens/episode_screen.dart index afb26db..3fe4f33 100644 --- a/lib/features/screens/episode_screen.dart +++ b/lib/screens/episode_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:wolf_3d_data_types/wolf_3d_data_types.dart'; import 'package:wolf_3d_flutter/wolf_3d.dart'; -import 'package:wolf_dart/features/screens/difficulty_screen.dart'; +import 'package:wolf_dart/screens/difficulty_screen.dart'; class EpisodeScreen extends StatefulWidget { const EpisodeScreen({super.key}); diff --git a/lib/game_select_screen.dart b/lib/screens/game_select_screen.dart similarity index 93% rename from lib/game_select_screen.dart rename to lib/screens/game_select_screen.dart index cab90f3..02c00cd 100644 --- a/lib/game_select_screen.dart +++ b/lib/screens/game_select_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:wolf_3d_data_types/wolf_3d_data_types.dart'; import 'package:wolf_3d_flutter/wolf_3d.dart'; -import 'package:wolf_dart/features/screens/episode_screen.dart'; +import 'package:wolf_dart/screens/episode_screen.dart'; class GameSelectScreen extends StatelessWidget { const GameSelectScreen({super.key}); diff --git a/lib/sprite_gallery.dart b/lib/screens/sprite_gallery.dart similarity index 100% rename from lib/sprite_gallery.dart rename to lib/screens/sprite_gallery.dart diff --git a/packages/wolf_3d_entities/lib/src/entities/enemies/enemy.dart b/packages/wolf_3d_entities/lib/src/entities/enemies/enemy.dart index 2d64b3a..ee41ea2 100644 --- a/packages/wolf_3d_entities/lib/src/entities/enemies/enemy.dart +++ b/packages/wolf_3d_entities/lib/src/entities/enemies/enemy.dart @@ -318,6 +318,10 @@ abstract class Enemy extends Entity { // 1. Check Difficulty & Compatibility if (!MapObject.shouldSpawn(objId, difficulty)) return null; + // Explicitly ignore "Dead Guard" Map ID so Decorative.trySpawn can handle it + // In Wolf3D, 124 is the dead guard. + if (objId == 124) return null; + // If the checkbox is checked, block non-Shareware enemies if (isSharewareMode && !MapObject.isSharewareCompatible(objId)) return null;