Skip to content

Latest commit

 

History

History
201 lines (120 loc) · 4.88 KB

File metadata and controls

201 lines (120 loc) · 4.88 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.8.1] - 2026-07-28

Added

  • 3DS circle pad mapped to player movement (D-pad directions)
  • IBackend::updateCirclePad() virtual method (no-op on desktop)

Changed

  • Game romfs/ directory for 3DS asset bundling
  • Replaced throw std::runtime_error with onError in UveFileManager for -fno-exceptions compatibility
  • Replaced dynamic_cast with static_cast in UveListOwner for RTTI-light builds
  • Guarded SDL3_image include and IMG_Load_IO on 3DS (BMP fallback via SDL_LoadBMP_IO)
  • Skipped tinyfiledialogs on 3DS (no desktop file dialogs)
  • Fetch devkitPro/SDL fork via FetchContent when SDL3 not installed

[0.8.0] - 2026-07-28

Added

  • SDL3 backend via UVEDX_BACKEND CMake option (SFML or SDL3)
  • IBackend abstraction layer for rendering, audio, input and timer
  • UveDX::Key enum to replace SFML scancodes at API boundaries
  • UveDX::Vec2 portable vector type
  • Surface::drawRoundedRect helper to encapsulate shape rendering
  • CMake presets for SDL3 builds (linux-sdl3-debug, linux-sdl3-release, etc.)

Changed

  • Refactored UveDX internals to use IBackend instead of SFML types directly
  • UveDX::UveDX::window replaced by std::unique_ptr<IBackend> backend
  • Surface uses opaque BackendTexture* instead of sf::Texture*/sf::Sprite*
  • Sound uses BackendAudioBuffer*/BackendAudioSource* instead of SFML types
  • UveTimer uses backend tick/sleep instead of sf::Clock/sf::sleep
  • UveInput::isKeyPressed takes UveDX::Key instead of sf::Keyboard::Scancode
  • Game layer no longer includes any SFML headers

Fixed

  • SDL3 texture loading: use IMG_Load_IO to support PNG/JPEG, not just BMP
  • SDL3 drawSprite: pass source rectangle to SDL_RenderTexture
  • SDL3 audio: decode WAV via SDL_LoadWAV_IO instead of feeding raw bytes to stream
  • SDL3 audio: move SDL_AudioStream from buffer to source to prevent shared-buffer conflicts
  • SDL3 drawRoundedRect: implement proper arc rendering instead of plain rectangle
  • SDL3 API compatibility with SDL3 3.4 (SDL_SeekIO, SDL_SetSurfaceColorKey, SDL_IOStream)
  • Sound methods: add null guards for source when audio device is not ready
  • UveTimer: fix lastTick_ initialization order with lazy init via ensureInitialized

[0.7.2] - 2026-07-28

Fixed

  • tinyfiledialogs build

[0.7.1] - 2025-12-17

Fixed

  • Discord Rich Presence build on Windows
  • tinyfiledialogs build

[0.7.0] - 2025-07-22

Added

  • UveDX::UveFileManager::createWADFile function to create .dat assets file

Fixed

  • Some clang-tidy hints

[0.6.0] - 2025-06-11

Added

  • Bouncing DVD logo example
  • UveDX custom window title

Changed

  • Namespace Color and SurfaceAnchorType
  • Default parameters for Surface::blit

[0.5.2] - 2025-06-11

Fixed

  • Fix a bug in UveFileManager::openFile when not using packed assets file

[0.5.1] - 2025-06-08

Changed

  • Abstract SFML Color and IntRect in headers

[0.5.0] - 2025-05-30

Changed

  • Refactor UveDX into a separate compilation unit
  • Rename some variables for clarity

[0.4.1] - 2025-05-24

Fixed

  • CMake SFML

[0.4.0] - 2025-05-24

Added

  • Missing TileLayer entity in UveDX (used in Island Wars 1)
  • Missing UveDX::bounds member (used by TileLayer)
  • Missing UveDX::setBackSurfaceClipRegion method

Changed

  • Rename Game::sub_40AAD8 to Game::renderPauseOverlay

Fixed

  • Debug timings

Removed

  • SFML FPS limit

[0.3.1] - 2025-05-11

Added

  • More "magic numbers" as constants

Changed

  • Switch Explosion and Smoke particles from dynamic C-style arrays to std::array of Particle

Fixed

  • UveDX::showError string

[0.3.0] - 2025-05-11

Added

  • random_range function to replace random % max + min
  • AsteroidType enum

Changed

  • Reverse engineer more members and variables

Fixed

  • Missiles angle computation

[0.2.2] - 2025-05-02

Changed

  • Reverse engineer the missing members from Font, Surface and Sprite
  • Use std::clamp instead of manual clamping
  • Various code simplification

[0.2.1] - 2025-04-26

Fixed

  • Make MSVC compile

[0.2.0] - 2025-04-25

Added

  • clang format
  • All compilation warnings

Changed

  • Rename bounding_box to BoundaryBouncer
  • Switch GameController C-style arrays to std::array
  • Remove extern in favor of inline

Fixed

  • Fix pseudo writing in GameController::saveScoresFile
  • Close button now terminates the application

[0.1.0] - 2025-04-20

Added

  • First working version of the game