Refactored step 1: Core Architecture Setup

This commit is contained in:
2025-08-17 10:22:21 +02:00
parent 2e4a981254
commit 36f849ba36
9 changed files with 952 additions and 53 deletions

View File

@ -31,6 +31,9 @@ add_executable(tetris
src/gameplay/Game.cpp
src/core/GravityManager.cpp
src/core/StateManager.cpp
# New core architecture classes
src/core/ApplicationManager.cpp
src/graphics/RenderManager.cpp
src/persistence/Scores.cpp
src/graphics/Starfield.cpp
src/graphics/Starfield3D.cpp
@ -108,4 +111,55 @@ target_include_directories(tetris PRIVATE
${CMAKE_SOURCE_DIR}/src/gameplay
${CMAKE_SOURCE_DIR}/src/graphics
${CMAKE_SOURCE_DIR}/src/persistence
${CMAKE_SOURCE_DIR}/src/core
${CMAKE_SOURCE_DIR}/src/states
)
# Experimental refactored version (for testing new architecture)
add_executable(tetris_refactored
src/main_new.cpp
src/gameplay/Game.cpp
src/core/GravityManager.cpp
src/core/StateManager.cpp
# New core architecture classes
src/core/ApplicationManager.cpp
src/graphics/RenderManager.cpp
src/persistence/Scores.cpp
src/graphics/Starfield.cpp
src/graphics/Starfield3D.cpp
src/graphics/Font.cpp
src/audio/Audio.cpp
src/gameplay/LineEffect.cpp
src/audio/SoundEffect.cpp
# State implementations (temporarily excluded - depend on main.cpp functions)
# src/states/LoadingState.cpp
# src/states/MenuState.cpp
# src/states/LevelSelectorState.cpp
# src/states/PlayingState.cpp
)
if (WIN32)
# Embed the application icon into the refactored executable too
target_sources(tetris_refactored PRIVATE src/app_icon.rc)
add_dependencies(tetris_refactored copy_favicon)
add_custom_command(TARGET tetris_refactored POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FAVICON_SRC} $<TARGET_FILE_DIR:tetris_refactored>/favicon.ico
COMMENT "Copy favicon.ico next to refactored executable"
)
endif()
target_link_libraries(tetris_refactored PRIVATE SDL3::SDL3 SDL3_ttf::SDL3_ttf)
if (WIN32)
target_link_libraries(tetris_refactored PRIVATE mfplat mfreadwrite mfuuid)
endif()
target_include_directories(tetris_refactored PRIVATE
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/audio
${CMAKE_SOURCE_DIR}/src/gameplay
${CMAKE_SOURCE_DIR}/src/graphics
${CMAKE_SOURCE_DIR}/src/persistence
${CMAKE_SOURCE_DIR}/src/core
${CMAKE_SOURCE_DIR}/src/states
)