Commit Graph

8 Commits

Author SHA1 Message Date
hans 528d6276b1 Add Spear of Destiny shareware assets and update project files
- Added new asset files for Spear of Destiny shareware including AUDIOHED.SDM, AUDIOT.SDM, GAMEMAPS.SDM, MAPHEAD.SDM, VGADICT.SDM, VGAGRAPH.SDM, VGAHEAD.SDM, VSWAP.SDM, and documentation files (README.txt, SOD.DOC).
- Included necessary DLLs (SDL.dll, SDL_mixer.dll) for audio support.
- Updated pubspec.yaml to include the new assets directory for Spear of Destiny.
- Enhanced data versioning to recognize Spear of Destiny shareware in data_version.dart.
- Modified registry_resolver.dart to handle asset registry for Spear of Destiny shareware.
- Added license agreements for both id Software and MAME.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-23 10:00:27 +01:00
hans 3270338f44 feat: Implement Change View and Renderer Options menus
- Added functionality to display and navigate the Change View menu in SixelRenderer and SoftwareRenderer.
- Introduced methods to draw the Change View and Renderer Options menus, including handling cursor and selection states.
- Updated WolfClassicMenuArt to include a customize label for the new menu.
- Enhanced WolfMenuScreen to support new menu states.
- Created tests for Change View menu interactions, ensuring proper transitions and renderer settings toggling.
- Implemented persistence for renderer settings in Flutter, allowing settings to be saved and loaded from a local file.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-20 20:49:37 +01:00
hans 4bac9d519b refactor: Update imports and restructure key definitions for music and sound effects
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-20 17:34:42 +01:00
hans 10417d26ba Refactor audio module to use built-in music and sound effect identifiers
- Introduced BuiltInMusicModule and BuiltInSfxModule to replace RetailMusicModule and RetailSfxModule.
- Updated RetailAssetRegistry and SharewareAssetRegistry to utilize the new built-in modules.
- Removed deprecated MusicKey and SfxKey classes, replacing them with Music and SoundEffect enums for better clarity and maintainability.
- Adjusted music and sound effect resolution methods to align with the new structure.
- Updated audio playback methods in WolfAudio and FlutterAudioAdapter to accept the new Music and SoundEffect types.
- Refactored tests to accommodate changes in audio event handling and ensure compatibility with the new identifiers.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-20 17:07:25 +01:00
hans 8bf0dbd57c Add shareware HUD module and integrate with asset registry for improved HUD handling
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-19 14:29:12 +01:00
hans 57dde0f31c Refactor collectible handling and scoring system
- Introduced `CollectiblePickupContext` and `CollectiblePickupEffect` to streamline the collectible pickup logic in the Player class.
- Updated the `tryPickup` method in the Player class to utilize the new effect system for health, ammo, score, keys, and weapons.
- Refactored collectible classes to implement the new `tryCollect` method, returning a `CollectiblePickupEffect`.
- Enhanced enemy classes to expose score values based on their type.
- Added unit tests for scoring ownership and shareware menu module functionality.
- Updated rendering logic in various renderer classes to use the new mapped picture retrieval system.
- Improved the `WolfClassicMenuArt` class to utilize a more structured approach for image retrieval based on registry keys.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-19 14:25:14 +01:00
hans 6e53da7095 Refactor entity, HUD, menu, music, and SFX modules for improved readability and consistency in code formatting
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-19 13:46:00 +01:00
hans fcda0f9ff4 Add built-in asset modules for Wolfenstein 3D v1.4 Shareware release
- Implement RetailSfxModule to map sound effects to numeric slots.
- Create SharewareAssetRegistry to manage assets for the Shareware version.
- Introduce SharewareEntityModule to define available enemies in Shareware.
- Add SharewareMenuPicModule to handle menu pictures with runtime offset computation.
- Implement SharewareMusicModule for music routing in Shareware.
- Define keys for entities, HUD elements, menu pictures, and music tracks.
- Create abstract modules for entity, HUD, menu picture, and music assets.
- Add registry resolver to select appropriate asset registry based on game version and data version.
- Update WolfensteinData to include new asset registry exports.
- Modify tests to utilize the new asset registry structure for Shareware and Retail versions.

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2026-03-19 13:45:19 +01:00