Refactored step 1: Core Architecture Setup
This commit is contained in:
@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user