d393ca98ec5750b6f282fcd621e66864d59d1ddf
- Updated SoftwareRenderer to incorporate MenuHeaderBand for handling spear variant menus and improved backdrop drawing. - Refactored asset registry imports to organize menu-related assets under a dedicated menu structure. - Enhanced game session snapshot tests to validate menu theme restoration for spear variant games. - Added tests for classic menu presentation module to ensure palette consistency with canonical constants. - Implemented tests for spear asset registry to verify correct menu VGA index resolutions. - Created unit tests for MenuHeaderBand to validate functionality in rendering menu headers and sidebars. - Adjusted HUD module imports to align with new menu structure. Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
wolf_dart
Wolfenstein 3D workspace built with Dart + Flutter.
This repository is organized as a multi-package workspace:
- Apps in
apps/(CLI host and Flutter GUI host) - Packages in
packages/(core engine, Flutter integration, and assets)
The project expects you to provide legal Wolfenstein 3D game data files locally.
Workspace Layout
Apps
apps/wolf_3d_gui/— Flutter app host (desktop/web)apps/wolf_3d_cli/— terminal CLI host
Packages
packages/wolf_3d_dart/— core engine/runtime (non-Flutter)packages/wolf_3d_flutter/— Flutter host and UI integrationpackages/wolf_3d_assets/— shared packaged asset trees
Prerequisites
- Dart SDK
^3.11.1 - Flutter SDK (for GUI app and Flutter package work)
Linux native requirements
On Debian/Ubuntu, install:
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev lld
Quick Start
From workspace root:
dart pub get
Run GUI host:
cd apps/wolf_3d_gui
flutter run
Run CLI host:
cd apps/wolf_3d_cli
dart run bin/main.dart
If game data is not auto-discovered, pass a directory explicitly for CLI:
dart run bin/main.dart --data-directory /path/to/game-data
Development Workflow
Typical contributor loop:
- Update dependencies in relevant app/package (
dart pub getorflutter pub get). - Run focused tests in the module you changed.
- Run static analysis for the same module before submitting changes.
- Keep docs in sync when command-line flags, platform support, or public APIs change.
Testing
Run tests by module (examples):
cd packages/wolf_3d_dart && dart test
cd packages/wolf_3d_flutter && flutter test
cd apps/wolf_3d_gui && flutter test
Related Docs
- App/package READMEs listed above for module-specific setup and architecture
Description
Languages
Dart
54.3%
C
39.8%
Assembly
4%
GLSL
0.9%
CMake
0.5%
Other
0.4%