summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.vscode/c_cpp_properties.json4
-rw-r--r--CMakeLists.txt3
-rw-r--r--data/lang/lang.en_US.json2
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/core/CMakeLists.txt (renamed from core/CMakeLists.txt)2
-rw-r--r--src/core/aabb.cc (renamed from core/aabb.cc)0
-rw-r--r--src/core/aabb.hh (renamed from core/aabb.hh)0
-rw-r--r--src/core/angles.hh (renamed from core/angles.hh)0
-rw-r--r--src/core/binfile.cc (renamed from core/binfile.cc)0
-rw-r--r--src/core/binfile.hh (renamed from core/binfile.hh)0
-rw-r--r--src/core/buffer.cc (renamed from core/buffer.cc)0
-rw-r--r--src/core/buffer.hh (renamed from core/buffer.hh)0
-rw-r--r--src/core/cmdline.cc (renamed from core/cmdline.cc)0
-rw-r--r--src/core/cmdline.hh (renamed from core/cmdline.hh)0
-rw-r--r--src/core/concepts.hh (renamed from core/concepts.hh)0
-rw-r--r--src/core/config.cc (renamed from core/config.cc)0
-rw-r--r--src/core/config.hh (renamed from core/config.hh)0
-rw-r--r--src/core/constexpr.hh (renamed from core/constexpr.hh)382
-rw-r--r--src/core/crc64.cc (renamed from core/crc64.cc)0
-rw-r--r--src/core/crc64.hh (renamed from core/crc64.hh)0
-rw-r--r--src/core/epoch.cc (renamed from core/epoch.cc)0
-rw-r--r--src/core/epoch.hh (renamed from core/epoch.hh)0
-rw-r--r--src/core/floathacks.hh (renamed from core/floathacks.hh)112
-rw-r--r--src/core/image.cc (renamed from core/image.cc)0
-rw-r--r--src/core/image.hh (renamed from core/image.hh)0
-rw-r--r--src/core/macros.hh (renamed from core/macros.hh)0
-rw-r--r--src/core/pch.hh (renamed from core/pch.hh)0
-rw-r--r--src/core/randomizer.hh (renamed from core/randomizer.hh)0
-rw-r--r--src/core/resource.hh (renamed from core/resource.hh)0
-rw-r--r--src/core/strtools.cc (renamed from core/strtools.cc)0
-rw-r--r--src/core/strtools.hh (renamed from core/strtools.hh)0
-rw-r--r--src/core/vectors.hh (renamed from core/vectors.hh)0
-rw-r--r--src/core/version.cc12
-rw-r--r--src/core/version.cc.in (renamed from core/version.cc.in)0
-rw-r--r--src/core/version.hh (renamed from core/version.hh)0
-rw-r--r--src/game/CMakeLists.txt (renamed from game/CMakeLists.txt)0
-rw-r--r--src/game/client/CMakeLists.txt (renamed from game/client/CMakeLists.txt)4
-rw-r--r--src/game/client/background.cc (renamed from game/client/background.cc)0
-rw-r--r--src/game/client/background.hh (renamed from game/client/background.hh)0
-rw-r--r--src/game/client/bother.cc (renamed from game/client/bother.cc)0
-rw-r--r--src/game/client/bother.hh (renamed from game/client/bother.hh)0
-rw-r--r--src/game/client/camera.cc (renamed from game/client/camera.cc)0
-rw-r--r--src/game/client/camera.hh (renamed from game/client/camera.hh)0
-rw-r--r--src/game/client/chat.cc (renamed from game/client/chat.cc)0
-rw-r--r--src/game/client/chat.hh (renamed from game/client/chat.hh)0
-rw-r--r--src/game/client/chunk_mesher.cc (renamed from game/client/chunk_mesher.cc)0
-rw-r--r--src/game/client/chunk_mesher.hh (renamed from game/client/chunk_mesher.hh)0
-rw-r--r--src/game/client/chunk_quad.hh (renamed from game/client/chunk_quad.hh)0
-rw-r--r--src/game/client/chunk_renderer.cc (renamed from game/client/chunk_renderer.cc)0
-rw-r--r--src/game/client/chunk_renderer.hh (renamed from game/client/chunk_renderer.hh)0
-rw-r--r--src/game/client/chunk_vbo.hh (renamed from game/client/chunk_vbo.hh)0
-rw-r--r--src/game/client/chunk_visibility.cc (renamed from game/client/chunk_visibility.cc)0
-rw-r--r--src/game/client/chunk_visibility.hh (renamed from game/client/chunk_visibility.hh)0
-rw-r--r--src/game/client/const.hh (renamed from game/client/const.hh)0
-rw-r--r--src/game/client/crosshair.cc (renamed from game/client/crosshair.cc)0
-rw-r--r--src/game/client/crosshair.hh (renamed from game/client/crosshair.hh)0
-rw-r--r--src/game/client/direct_connection.cc (renamed from game/client/direct_connection.cc)0
-rw-r--r--src/game/client/direct_connection.hh (renamed from game/client/direct_connection.hh)0
-rw-r--r--src/game/client/experiments.cc (renamed from game/client/experiments.cc)0
-rw-r--r--src/game/client/experiments.hh (renamed from game/client/experiments.hh)0
-rw-r--r--src/game/client/factory.cc (renamed from game/client/factory.cc)0
-rw-r--r--src/game/client/factory.hh (renamed from game/client/factory.hh)0
-rw-r--r--src/game/client/game.cc (renamed from game/client/game.cc)10
-rw-r--r--src/game/client/game.hh (renamed from game/client/game.hh)1
-rw-r--r--src/game/client/gamepad.cc (renamed from game/client/gamepad.cc)0
-rw-r--r--src/game/client/gamepad.hh (renamed from game/client/gamepad.hh)0
-rw-r--r--src/game/client/gamepad_axis.cc (renamed from game/client/gamepad_axis.cc)0
-rw-r--r--src/game/client/gamepad_axis.hh (renamed from game/client/gamepad_axis.hh)0
-rw-r--r--src/game/client/gamepad_button.cc (renamed from game/client/gamepad_button.cc)0
-rw-r--r--src/game/client/gamepad_button.hh (renamed from game/client/gamepad_button.hh)0
-rw-r--r--src/game/client/glfw.hh (renamed from game/client/glfw.hh)0
-rw-r--r--src/game/client/globals.cc (renamed from game/client/globals.cc)0
-rw-r--r--src/game/client/globals.hh (renamed from game/client/globals.hh)0
-rw-r--r--src/game/client/gui_screen.hh (renamed from game/client/gui_screen.hh)0
-rw-r--r--src/game/client/hotbar.cc (renamed from game/client/hotbar.cc)0
-rw-r--r--src/game/client/hotbar.hh (renamed from game/client/hotbar.hh)0
-rw-r--r--src/game/client/imdraw_ext.cc (renamed from game/client/imdraw_ext.cc)0
-rw-r--r--src/game/client/imdraw_ext.hh (renamed from game/client/imdraw_ext.hh)0
-rw-r--r--src/game/client/interpolation.cc (renamed from game/client/interpolation.cc)0
-rw-r--r--src/game/client/interpolation.hh (renamed from game/client/interpolation.hh)0
-rw-r--r--src/game/client/keybind.cc (renamed from game/client/keybind.cc)0
-rw-r--r--src/game/client/keybind.hh (renamed from game/client/keybind.hh)0
-rw-r--r--src/game/client/language.cc (renamed from game/client/language.cc)0
-rw-r--r--src/game/client/language.hh (renamed from game/client/language.hh)0
-rw-r--r--src/game/client/listener.cc (renamed from game/client/listener.cc)0
-rw-r--r--src/game/client/listener.hh (renamed from game/client/listener.hh)0
-rw-r--r--src/game/client/main.cc (renamed from game/client/main.cc)0
-rw-r--r--src/game/client/main_menu.cc (renamed from game/client/main_menu.cc)0
-rw-r--r--src/game/client/main_menu.hh (renamed from game/client/main_menu.hh)0
-rw-r--r--src/game/client/message_box.cc (renamed from game/client/message_box.cc)0
-rw-r--r--src/game/client/message_box.hh (renamed from game/client/message_box.hh)0
-rw-r--r--src/game/client/metrics.cc (renamed from game/client/metrics.cc)0
-rw-r--r--src/game/client/metrics.hh (renamed from game/client/metrics.hh)0
-rw-r--r--src/game/client/outline.cc (renamed from game/client/outline.cc)0
-rw-r--r--src/game/client/outline.hh (renamed from game/client/outline.hh)0
-rw-r--r--src/game/client/pch.hh (renamed from game/client/pch.hh)0
-rw-r--r--src/game/client/play_menu.cc (renamed from game/client/play_menu.cc)0
-rw-r--r--src/game/client/play_menu.hh (renamed from game/client/play_menu.hh)0
-rw-r--r--src/game/client/player_look.cc (renamed from game/client/player_look.cc)0
-rw-r--r--src/game/client/player_look.hh (renamed from game/client/player_look.hh)0
-rw-r--r--src/game/client/player_move.cc (renamed from game/client/player_move.cc)0
-rw-r--r--src/game/client/player_move.hh (renamed from game/client/player_move.hh)0
-rw-r--r--src/game/client/player_target.cc (renamed from game/client/player_target.cc)0
-rw-r--r--src/game/client/player_target.hh (renamed from game/client/player_target.hh)0
-rw-r--r--src/game/client/program.cc (renamed from game/client/program.cc)0
-rw-r--r--src/game/client/program.hh (renamed from game/client/program.hh)0
-rw-r--r--src/game/client/progress_bar.cc (renamed from game/client/progress_bar.cc)0
-rw-r--r--src/game/client/progress_bar.hh (renamed from game/client/progress_bar.hh)0
-rw-r--r--src/game/client/receive.cc (renamed from game/client/receive.cc)0
-rw-r--r--src/game/client/receive.hh (renamed from game/client/receive.hh)0
-rw-r--r--src/game/client/scoreboard.cc (renamed from game/client/scoreboard.cc)0
-rw-r--r--src/game/client/scoreboard.hh (renamed from game/client/scoreboard.hh)0
-rw-r--r--src/game/client/screenshot.cc (renamed from game/client/screenshot.cc)0
-rw-r--r--src/game/client/screenshot.hh (renamed from game/client/screenshot.hh)0
-rw-r--r--src/game/client/session.cc (renamed from game/client/session.cc)0
-rw-r--r--src/game/client/session.hh (renamed from game/client/session.hh)0
-rw-r--r--src/game/client/settings.cc (renamed from game/client/settings.cc)0
-rw-r--r--src/game/client/settings.hh (renamed from game/client/settings.hh)0
-rw-r--r--src/game/client/skybox.cc (renamed from game/client/skybox.cc)0
-rw-r--r--src/game/client/skybox.hh (renamed from game/client/skybox.hh)0
-rw-r--r--src/game/client/sound.cc (renamed from game/client/sound.cc)0
-rw-r--r--src/game/client/sound.hh (renamed from game/client/sound.hh)0
-rw-r--r--src/game/client/sound_effect.cc (renamed from game/client/sound_effect.cc)0
-rw-r--r--src/game/client/sound_effect.hh (renamed from game/client/sound_effect.hh)0
-rw-r--r--src/game/client/sound_emitter.cc (renamed from game/client/sound_emitter.cc)0
-rw-r--r--src/game/client/sound_emitter.hh (renamed from game/client/sound_emitter.hh)0
-rw-r--r--src/game/client/splash.cc (renamed from game/client/splash.cc)0
-rw-r--r--src/game/client/splash.hh (renamed from game/client/splash.hh)0
-rw-r--r--src/game/client/status_lines.cc (renamed from game/client/status_lines.cc)0
-rw-r--r--src/game/client/status_lines.hh (renamed from game/client/status_lines.hh)0
-rw-r--r--src/game/client/texture_gui.cc (renamed from game/client/texture_gui.cc)0
-rw-r--r--src/game/client/texture_gui.hh (renamed from game/client/texture_gui.hh)0
-rw-r--r--src/game/client/toggles.cc (renamed from game/client/toggles.cc)0
-rw-r--r--src/game/client/toggles.hh (renamed from game/client/toggles.hh)0
-rw-r--r--src/game/client/vclient.ico (renamed from game/client/vclient.ico)bin54361 -> 54361 bytes
-rw-r--r--src/game/client/vclient.rc (renamed from game/client/vclient.rc)0
-rw-r--r--src/game/client/voxel_anims.cc (renamed from game/client/voxel_anims.cc)0
-rw-r--r--src/game/client/voxel_anims.hh (renamed from game/client/voxel_anims.hh)0
-rw-r--r--src/game/client/voxel_atlas.cc (renamed from game/client/voxel_atlas.cc)0
-rw-r--r--src/game/client/voxel_atlas.hh (renamed from game/client/voxel_atlas.hh)0
-rw-r--r--src/game/client/voxel_sounds.cc (renamed from game/client/voxel_sounds.cc)0
-rw-r--r--src/game/client/voxel_sounds.hh (renamed from game/client/voxel_sounds.hh)0
-rw-r--r--src/game/client/window_title.cc (renamed from game/client/window_title.cc)0
-rw-r--r--src/game/client/window_title.hh (renamed from game/client/window_title.hh)0
-rw-r--r--src/game/server/CMakeLists.txt (renamed from game/server/CMakeLists.txt)4
-rw-r--r--src/game/server/chat.cc (renamed from game/server/chat.cc)0
-rw-r--r--src/game/server/chat.hh (renamed from game/server/chat.hh)0
-rw-r--r--src/game/server/game.cc (renamed from game/server/game.cc)0
-rw-r--r--src/game/server/game.hh (renamed from game/server/game.hh)0
-rw-r--r--src/game/server/globals.cc (renamed from game/server/globals.cc)0
-rw-r--r--src/game/server/globals.hh (renamed from game/server/globals.hh)0
-rw-r--r--src/game/server/inhabited.hh (renamed from game/server/inhabited.hh)0
-rw-r--r--src/game/server/main.cc (renamed from game/server/main.cc)0
-rw-r--r--src/game/server/overworld.cc (renamed from game/server/overworld.cc)0
-rw-r--r--src/game/server/overworld.hh (renamed from game/server/overworld.hh)0
-rw-r--r--src/game/server/pch.hh (renamed from game/server/pch.hh)0
-rw-r--r--src/game/server/receive.cc (renamed from game/server/receive.cc)0
-rw-r--r--src/game/server/receive.hh (renamed from game/server/receive.hh)0
-rw-r--r--src/game/server/sessions.cc (renamed from game/server/sessions.cc)0
-rw-r--r--src/game/server/sessions.hh (renamed from game/server/sessions.hh)0
-rw-r--r--src/game/server/status.cc (renamed from game/server/status.cc)0
-rw-r--r--src/game/server/status.hh (renamed from game/server/status.hh)0
-rw-r--r--src/game/server/universe.cc (renamed from game/server/universe.cc)0
-rw-r--r--src/game/server/universe.hh (renamed from game/server/universe.hh)0
-rw-r--r--src/game/server/unloader.cc (renamed from game/server/unloader.cc)0
-rw-r--r--src/game/server/unloader.hh (renamed from game/server/unloader.hh)0
-rw-r--r--src/game/server/vserver.ico (renamed from game/server/vserver.ico)bin60201 -> 60201 bytes
-rw-r--r--src/game/server/vserver.rc (renamed from game/server/vserver.rc)0
-rw-r--r--src/game/server/whitelist.cc (renamed from game/server/whitelist.cc)0
-rw-r--r--src/game/server/whitelist.hh (renamed from game/server/whitelist.hh)0
-rw-r--r--src/game/server/worldgen.cc (renamed from game/server/worldgen.cc)0
-rw-r--r--src/game/server/worldgen.hh (renamed from game/server/worldgen.hh)0
-rw-r--r--src/game/shared/CMakeLists.txt (renamed from game/shared/CMakeLists.txt)4
-rw-r--r--src/game/shared/chunk.cc (renamed from game/shared/chunk.cc)0
-rw-r--r--src/game/shared/chunk.hh (renamed from game/shared/chunk.hh)0
-rw-r--r--src/game/shared/chunk_aabb.cc (renamed from game/shared/chunk_aabb.cc)0
-rw-r--r--src/game/shared/chunk_aabb.hh (renamed from game/shared/chunk_aabb.hh)0
-rw-r--r--src/game/shared/collision.cc (renamed from game/shared/collision.cc)0
-rw-r--r--src/game/shared/collision.hh (renamed from game/shared/collision.hh)0
-rw-r--r--src/game/shared/const.hh (renamed from game/shared/const.hh)0
-rw-r--r--src/game/shared/coord.hh (renamed from game/shared/coord.hh)0
-rw-r--r--src/game/shared/dimension.cc (renamed from game/shared/dimension.cc)0
-rw-r--r--src/game/shared/dimension.hh (renamed from game/shared/dimension.hh)0
-rw-r--r--src/game/shared/factory.cc (renamed from game/shared/factory.cc)0
-rw-r--r--src/game/shared/factory.hh (renamed from game/shared/factory.hh)0
-rw-r--r--src/game/shared/feature.cc (renamed from game/shared/feature.cc)0
-rw-r--r--src/game/shared/feature.hh (renamed from game/shared/feature.hh)0
-rw-r--r--src/game/shared/game.cc (renamed from game/shared/game.cc)0
-rw-r--r--src/game/shared/game.hh (renamed from game/shared/game.hh)0
-rw-r--r--src/game/shared/game_items.cc (renamed from game/shared/game_items.cc)0
-rw-r--r--src/game/shared/game_items.hh (renamed from game/shared/game_items.hh)0
-rw-r--r--src/game/shared/game_voxels.cc (renamed from game/shared/game_voxels.cc)0
-rw-r--r--src/game/shared/game_voxels.hh (renamed from game/shared/game_voxels.hh)0
-rw-r--r--src/game/shared/globals.cc (renamed from game/shared/globals.cc)0
-rw-r--r--src/game/shared/globals.hh (renamed from game/shared/globals.hh)0
-rw-r--r--src/game/shared/gravity.cc (renamed from game/shared/gravity.cc)0
-rw-r--r--src/game/shared/gravity.hh (renamed from game/shared/gravity.hh)0
-rw-r--r--src/game/shared/grounded.hh (renamed from game/shared/grounded.hh)0
-rw-r--r--src/game/shared/head.hh (renamed from game/shared/head.hh)0
-rw-r--r--src/game/shared/item_registry.cc (renamed from game/shared/item_registry.cc)0
-rw-r--r--src/game/shared/item_registry.hh (renamed from game/shared/item_registry.hh)0
-rw-r--r--src/game/shared/pch.hh (renamed from game/shared/pch.hh)0
-rw-r--r--src/game/shared/player.hh (renamed from game/shared/player.hh)0
-rw-r--r--src/game/shared/protocol.cc (renamed from game/shared/protocol.cc)0
-rw-r--r--src/game/shared/protocol.hh (renamed from game/shared/protocol.hh)0
-rw-r--r--src/game/shared/ray_dda.cc (renamed from game/shared/ray_dda.cc)0
-rw-r--r--src/game/shared/ray_dda.hh (renamed from game/shared/ray_dda.hh)0
-rw-r--r--src/game/shared/splash.cc (renamed from game/shared/splash.cc)0
-rw-r--r--src/game/shared/splash.hh (renamed from game/shared/splash.hh)0
-rw-r--r--src/game/shared/stasis.cc (renamed from game/shared/stasis.cc)0
-rw-r--r--src/game/shared/stasis.hh (renamed from game/shared/stasis.hh)0
-rw-r--r--src/game/shared/threading.cc (renamed from game/shared/threading.cc)0
-rw-r--r--src/game/shared/threading.hh (renamed from game/shared/threading.hh)0
-rw-r--r--src/game/shared/transform.cc (renamed from game/shared/transform.cc)0
-rw-r--r--src/game/shared/transform.hh (renamed from game/shared/transform.hh)0
-rw-r--r--src/game/shared/types.hh (renamed from game/shared/types.hh)0
-rw-r--r--src/game/shared/velocity.cc (renamed from game/shared/velocity.cc)0
-rw-r--r--src/game/shared/velocity.hh (renamed from game/shared/velocity.hh)0
-rw-r--r--src/game/shared/voxel_registry.cc (renamed from game/shared/voxel_registry.cc)0
-rw-r--r--src/game/shared/voxel_registry.hh (renamed from game/shared/voxel_registry.hh)0
-rw-r--r--src/game/shared/voxel_storage.cc (renamed from game/shared/voxel_storage.cc)0
-rw-r--r--src/game/shared/voxel_storage.hh (renamed from game/shared/voxel_storage.hh)0
222 files changed, 273 insertions, 269 deletions
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
index 92318ef..b5ff492 100644
--- a/.vscode/c_cpp_properties.json
+++ b/.vscode/c_cpp_properties.json
@@ -31,8 +31,8 @@
"${workspaceFolder}/deps/spdlog/include",
"${workspaceFolder}/deps/stb/include",
"${workspaceFolder}/deps/thread_pool/include",
- "${workspaceFolder}/game/",
- "${workspaceFolder}",
+ "${workspaceFolder}/src/game/",
+ "${workspaceFolder}/src",
"${default}"
]
}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a82c4c0..558d481 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,9 +27,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-add_subdirectory(core)
add_subdirectory(deps)
-add_subdirectory(game)
+add_subdirectory(src)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
add_custom_target(thirdpartylegalnotices ALL
diff --git a/data/lang/lang.en_US.json b/data/lang/lang.en_US.json
index 17e05df..c80061b 100644
--- a/data/lang/lang.en_US.json
+++ b/data/lang/lang.en_US.json
@@ -66,7 +66,6 @@
"settings.value.game.fog_mode.2": "Fancy",
"settings.value.game.fog_mode": "Fog mode",
"settings.value.game.key.toggle_hide_hud": "Hide/Show HUD",
- "settings.value.game.pixel_size": "Pixel size",
"settings.value.game.streamer_mode": "Streamer mode",
"settings.value.game.username": "Username",
"settings.value.game.vertical_sync": "Vertical sync",
@@ -112,7 +111,6 @@
"settings.tooltip.camera.roll_angle": "Quake-styled view roll applied with sideways moves",
"settings.tooltip.camera.vertical_fov": "Field Of View",
- "settings.tooltip.game.pixel_size": "Draw the world into a fraction of the window's frame size",
"settings.tooltip.game.streamer_mode": "Conceal certain GUI elements to avoid issues during online game streaming",
"settings.tooltip.game.username": "Username changes apply only upon reconnecting",
"settings.tooltip.game.world_curvature": "Simulate Earth's\nhorizon warping",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..ac6b9d0
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(core)
+add_subdirectory(game)
diff --git a/core/CMakeLists.txt b/src/core/CMakeLists.txt
index c2d5289..13284cb 100644
--- a/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -27,7 +27,7 @@ add_library(core STATIC
"${CMAKE_CURRENT_LIST_DIR}/version.hh")
target_compile_features(core PUBLIC cxx_std_20)
target_include_directories(core PUBLIC "${DEPS_INCLUDE_DIR}")
-target_include_directories(core PUBLIC "${PROJECT_SOURCE_DIR}")
+target_include_directories(core PUBLIC "${PROJECT_SOURCE_DIR}/src")
target_precompile_headers(core PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(core PUBLIC enet emhash glm physfs spdlog stb)
diff --git a/core/aabb.cc b/src/core/aabb.cc
index 3661143..3661143 100644
--- a/core/aabb.cc
+++ b/src/core/aabb.cc
diff --git a/core/aabb.hh b/src/core/aabb.hh
index fe07060..fe07060 100644
--- a/core/aabb.hh
+++ b/src/core/aabb.hh
diff --git a/core/angles.hh b/src/core/angles.hh
index a2a3d55..a2a3d55 100644
--- a/core/angles.hh
+++ b/src/core/angles.hh
diff --git a/core/binfile.cc b/src/core/binfile.cc
index aa39039..aa39039 100644
--- a/core/binfile.cc
+++ b/src/core/binfile.cc
diff --git a/core/binfile.hh b/src/core/binfile.hh
index 21dab40..21dab40 100644
--- a/core/binfile.hh
+++ b/src/core/binfile.hh
diff --git a/core/buffer.cc b/src/core/buffer.cc
index 0e18f4f..0e18f4f 100644
--- a/core/buffer.cc
+++ b/src/core/buffer.cc
diff --git a/core/buffer.hh b/src/core/buffer.hh
index 1397e16..1397e16 100644
--- a/core/buffer.hh
+++ b/src/core/buffer.hh
diff --git a/core/cmdline.cc b/src/core/cmdline.cc
index c83f9e6..c83f9e6 100644
--- a/core/cmdline.cc
+++ b/src/core/cmdline.cc
diff --git a/core/cmdline.hh b/src/core/cmdline.hh
index 8441a44..8441a44 100644
--- a/core/cmdline.hh
+++ b/src/core/cmdline.hh
diff --git a/core/concepts.hh b/src/core/concepts.hh
index 47b01d2..47b01d2 100644
--- a/core/concepts.hh
+++ b/src/core/concepts.hh
diff --git a/core/config.cc b/src/core/config.cc
index 3202fb6..3202fb6 100644
--- a/core/config.cc
+++ b/src/core/config.cc
diff --git a/core/config.hh b/src/core/config.hh
index a7f8500..a7f8500 100644
--- a/core/config.hh
+++ b/src/core/config.hh
diff --git a/core/constexpr.hh b/src/core/constexpr.hh
index ac82169..18c83c0 100644
--- a/core/constexpr.hh
+++ b/src/core/constexpr.hh
@@ -1,191 +1,191 @@
-#ifndef CORE_CONSTEXPR_HH
-#define CORE_CONSTEXPR_HH 1
-#pragma once
-
-#include "core/concepts.hh"
-
-namespace vx
-{
-template<vx::Arithmetic T>
-constexpr static inline const T abs(const T x);
-template<typename T, std::size_t L>
-constexpr static inline const std::size_t array_size(const T (&)[L]);
-template<vx::Integer T, vx::FloatingPoint F>
-constexpr static inline const T ceil(const F x);
-template<vx::Arithmetic T>
-constexpr static inline const T degrees(const T x);
-template<vx::Integer T, vx::FloatingPoint F>
-constexpr static inline const T floor(const F x);
-template<vx::Arithmetic T>
-constexpr static inline const T clamp(const T x, const T min, const T max);
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T lerp(const T x, const T y, const F a);
-template<vx::Arithmetic T>
-constexpr static inline const T log2(const T x);
-template<vx::Arithmetic T>
-constexpr static inline const T max(const T x, const T y);
-template<vx::Arithmetic T>
-constexpr static inline const T min(const T x, const T y);
-template<vx::Integer T>
-requires std::is_signed_v<T>
-constexpr static inline const T mod_signed(const T x, const T m);
-template<vx::Arithmetic T>
-constexpr static inline const T pow2(const T x);
-template<vx::Arithmetic T>
-constexpr static inline const T radians(const T x);
-template<vx::Arithmetic T>
-constexpr static inline const bool range(const T x, const T min, const T max);
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T sign(const F x);
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T smoothstep(const T x, const T y, const F a);
-} // namespace vx
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::abs(const T x)
-{
- if(x < static_cast<T>(0)) {
- return -x;
- } else {
- return x;
- }
-}
-
-template<typename T, std::size_t L>
-constexpr static inline const std::size_t vx::array_size(const T (&)[L])
-{
- return L;
-}
-
-template<vx::Integer T, vx::FloatingPoint F>
-constexpr static inline const T vx::ceil(const F x)
-{
- const T ival = static_cast<T>(x);
-
- if(ival < x) {
- return ival + static_cast<T>(1);
- } else {
- return ival;
- }
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::degrees(const T x)
-{
- return x * static_cast<T>(180.0) / static_cast<T>(M_PI);
-}
-
-template<vx::Integer T, vx::FloatingPoint F>
-constexpr static inline const T vx::floor(const F x)
-{
- const T ival = static_cast<T>(x);
-
- if(ival > x) {
- return ival - static_cast<T>(1);
- } else {
- return ival;
- }
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::clamp(const T x, const T min, const T max)
-{
- if(x < min) {
- return min;
- } else if(x > max) {
- return max;
- } else {
- return x;
- }
-}
-
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T vx::lerp(const T x, const T y, const F a)
-{
- return static_cast<T>(static_cast<F>(x) * (static_cast<F>(1.0f) - a) + static_cast<F>(y) * a);
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::log2(const T x)
-{
- if(x < 2) {
- return 0;
- } else {
- return vx::log2<T>((x + 1) >> 1) + 1;
- }
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::max(const T x, const T y)
-{
- if(x < y) {
- return y;
- } else {
- return x;
- }
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::min(const T x, const T y)
-{
- if(x > y) {
- return y;
- } else {
- return x;
- }
-}
-
-template<vx::Integer T>
-requires std::is_signed_v<T>
-constexpr static inline const T vx::mod_signed(const T x, const T m)
-{
- auto result = static_cast<T>(x % m);
-
- if(result < T(0)) {
- return result + m;
- } else {
- return result;
- }
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::pow2(const T x)
-{
- T value = static_cast<T>(1);
- while(value < x)
- value *= static_cast<T>(2);
- return value;
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const T vx::radians(const T x)
-{
- return x * static_cast<T>(M_PI) / static_cast<T>(180.0);
-}
-
-template<vx::Arithmetic T>
-constexpr static inline const bool vx::range(const T x, const T min, const T max)
-{
- return ((x >= min) && (x <= max));
-}
-
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T vx::sign(const F x)
-{
- if(x < F(0)) {
- return T(-1);
- } else if(x > F(0)) {
- return T(+1);
- } else {
- return T(0);
- }
-}
-
-template<vx::Arithmetic T, vx::FloatingPoint F>
-constexpr static inline const T vx::smoothstep(const T x, const T y, const F a)
-{
- const F t = vx::clamp<F>((a - x) / (y - x), F(0), F(1));
- return static_cast<T>(t * t * (F(3) - F(2) * t));
-}
-
-#endif /* CORE_CONSTEXPR_HH */
+#ifndef CORE_CONSTEXPR_HH
+#define CORE_CONSTEXPR_HH 1
+#pragma once
+
+#include "core/concepts.hh"
+
+namespace vx
+{
+template<vx::Arithmetic T>
+constexpr static inline const T abs(const T x);
+template<typename T, std::size_t L>
+constexpr static inline const std::size_t array_size(const T (&)[L]);
+template<vx::Integer T, vx::FloatingPoint F>
+constexpr static inline const T ceil(const F x);
+template<vx::Arithmetic T>
+constexpr static inline const T degrees(const T x);
+template<vx::Integer T, vx::FloatingPoint F>
+constexpr static inline const T floor(const F x);
+template<vx::Arithmetic T>
+constexpr static inline const T clamp(const T x, const T min, const T max);
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T lerp(const T x, const T y, const F a);
+template<vx::Arithmetic T>
+constexpr static inline const T log2(const T x);
+template<vx::Arithmetic T>
+constexpr static inline const T max(const T x, const T y);
+template<vx::Arithmetic T>
+constexpr static inline const T min(const T x, const T y);
+template<vx::Integer T>
+requires std::is_signed_v<T>
+constexpr static inline const T mod_signed(const T x, const T m);
+template<vx::Arithmetic T>
+constexpr static inline const T pow2(const T x);
+template<vx::Arithmetic T>
+constexpr static inline const T radians(const T x);
+template<vx::Arithmetic T>
+constexpr static inline const bool range(const T x, const T min, const T max);
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T sign(const F x);
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T smoothstep(const T x, const T y, const F a);
+} // namespace vx
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::abs(const T x)
+{
+ if(x < static_cast<T>(0)) {
+ return -x;
+ } else {
+ return x;
+ }
+}
+
+template<typename T, std::size_t L>
+constexpr static inline const std::size_t vx::array_size(const T (&)[L])
+{
+ return L;
+}
+
+template<vx::Integer T, vx::FloatingPoint F>
+constexpr static inline const T vx::ceil(const F x)
+{
+ const T ival = static_cast<T>(x);
+
+ if(ival < x) {
+ return ival + static_cast<T>(1);
+ } else {
+ return ival;
+ }
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::degrees(const T x)
+{
+ return x * static_cast<T>(180.0) / static_cast<T>(M_PI);
+}
+
+template<vx::Integer T, vx::FloatingPoint F>
+constexpr static inline const T vx::floor(const F x)
+{
+ const T ival = static_cast<T>(x);
+
+ if(ival > x) {
+ return ival - static_cast<T>(1);
+ } else {
+ return ival;
+ }
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::clamp(const T x, const T min, const T max)
+{
+ if(x < min) {
+ return min;
+ } else if(x > max) {
+ return max;
+ } else {
+ return x;
+ }
+}
+
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T vx::lerp(const T x, const T y, const F a)
+{
+ return static_cast<T>(static_cast<F>(x) * (static_cast<F>(1.0f) - a) + static_cast<F>(y) * a);
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::log2(const T x)
+{
+ if(x < 2) {
+ return 0;
+ } else {
+ return vx::log2<T>((x + 1) >> 1) + 1;
+ }
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::max(const T x, const T y)
+{
+ if(x < y) {
+ return y;
+ } else {
+ return x;
+ }
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::min(const T x, const T y)
+{
+ if(x > y) {
+ return y;
+ } else {
+ return x;
+ }
+}
+
+template<vx::Integer T>
+requires std::is_signed_v<T>
+constexpr static inline const T vx::mod_signed(const T x, const T m)
+{
+ auto result = static_cast<T>(x % m);
+
+ if(result < T(0)) {
+ return result + m;
+ } else {
+ return result;
+ }
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::pow2(const T x)
+{
+ T value = static_cast<T>(1);
+ while(value < x)
+ value *= static_cast<T>(2);
+ return value;
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const T vx::radians(const T x)
+{
+ return x * static_cast<T>(M_PI) / static_cast<T>(180.0);
+}
+
+template<vx::Arithmetic T>
+constexpr static inline const bool vx::range(const T x, const T min, const T max)
+{
+ return ((x >= min) && (x <= max));
+}
+
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T vx::sign(const F x)
+{
+ if(x < F(0)) {
+ return T(-1);
+ } else if(x > F(0)) {
+ return T(+1);
+ } else {
+ return T(0);
+ }
+}
+
+template<vx::Arithmetic T, vx::FloatingPoint F>
+constexpr static inline const T vx::smoothstep(const T x, const T y, const F a)
+{
+ const F t = vx::clamp<F>((a - x) / (y - x), F(0), F(1));
+ return static_cast<T>(t * t * (F(3) - F(2) * t));
+}
+
+#endif /* CORE_CONSTEXPR_HH */
diff --git a/core/crc64.cc b/src/core/crc64.cc
index c2ca53c..c2ca53c 100644
--- a/core/crc64.cc
+++ b/src/core/crc64.cc
diff --git a/core/crc64.hh b/src/core/crc64.hh
index da4ad2c..da4ad2c 100644
--- a/core/crc64.hh
+++ b/src/core/crc64.hh
diff --git a/core/epoch.cc b/src/core/epoch.cc
index 978eeb3..978eeb3 100644
--- a/core/epoch.cc
+++ b/src/core/epoch.cc
diff --git a/core/epoch.hh b/src/core/epoch.hh
index f590f27..f590f27 100644
--- a/core/epoch.hh
+++ b/src/core/epoch.hh
diff --git a/core/floathacks.hh b/src/core/floathacks.hh
index 31915c8..29b7cac 100644
--- a/core/floathacks.hh
+++ b/src/core/floathacks.hh
@@ -1,56 +1,56 @@
-#ifndef CORE_FLOATHACKS_HH
-#define CORE_FLOATHACKS_HH 1
-#pragma once
-
-namespace floathacks
-{
-static inline float int32_to_float(const std::int32_t value);
-static inline float uint32_to_float(const std::uint32_t value);
-static inline std::int32_t float_to_int32(const float value);
-static inline std::uint32_t float_to_uint32(const float value);
-} // namespace floathacks
-
-static_assert(std::numeric_limits<float>::is_iec559, "Floathacks only works with IEEE 754 compliant floats");
-static_assert(sizeof(std::int32_t) == sizeof(float), "Floathacks requires 32-bit integers to match float size");
-
-static inline float floathacks::int32_to_float(const std::int32_t value)
-{
- union {
- std::int32_t src;
- float dst;
- } hack;
- hack.src = value;
- return hack.dst;
-}
-
-static inline float floathacks::uint32_to_float(const std::uint32_t value)
-{
- union {
- std::uint32_t src;
- float dst;
- } hack;
- hack.src = value;
- return hack.dst;
-}
-
-static inline std::int32_t floathacks::float_to_int32(const float value)
-{
- union {
- float src;
- std::int32_t dst;
- } hack;
- hack.src = value;
- return hack.dst;
-}
-
-static inline std::uint32_t floathacks::float_to_uint32(const float value)
-{
- union {
- float src;
- std::uint32_t dst;
- } hack;
- hack.src = value;
- return hack.dst;
-}
-
-#endif /* CORE_FLOATHACKS_HH */
+#ifndef CORE_FLOATHACKS_HH
+#define CORE_FLOATHACKS_HH 1
+#pragma once
+
+namespace floathacks
+{
+static inline float int32_to_float(const std::int32_t value);
+static inline float uint32_to_float(const std::uint32_t value);
+static inline std::int32_t float_to_int32(const float value);
+static inline std::uint32_t float_to_uint32(const float value);
+} // namespace floathacks
+
+static_assert(std::numeric_limits<float>::is_iec559, "Floathacks only works with IEEE 754 compliant floats");
+static_assert(sizeof(std::int32_t) == sizeof(float), "Floathacks requires 32-bit integers to match float size");
+
+static inline float floathacks::int32_to_float(const std::int32_t value)
+{
+ union {
+ std::int32_t src;
+ float dst;
+ } hack;
+ hack.src = value;
+ return hack.dst;
+}
+
+static inline float floathacks::uint32_to_float(const std::uint32_t value)
+{
+ union {
+ std::uint32_t src;
+ float dst;
+ } hack;
+ hack.src = value;
+ return hack.dst;
+}
+
+static inline std::int32_t floathacks::float_to_int32(const float value)
+{
+ union {
+ float src;
+ std::int32_t dst;
+ } hack;
+ hack.src = value;
+ return hack.dst;
+}
+
+static inline std::uint32_t floathacks::float_to_uint32(const float value)
+{
+ union {
+ float src;
+ std::uint32_t dst;
+ } hack;
+ hack.src = value;
+ return hack.dst;
+}
+
+#endif /* CORE_FLOATHACKS_HH */
diff --git a/core/image.cc b/src/core/image.cc
index 08be3d4..08be3d4 100644
--- a/core/image.cc
+++ b/src/core/image.cc
diff --git a/core/image.hh b/src/core/image.hh
index 92d99be..92d99be 100644
--- a/core/image.hh
+++ b/src/core/image.hh
diff --git a/core/macros.hh b/src/core/macros.hh
index 9a76109..9a76109 100644
--- a/core/macros.hh
+++ b/src/core/macros.hh
diff --git a/core/pch.hh b/src/core/pch.hh
index 795a287..795a287 100644
--- a/core/pch.hh
+++ b/src/core/pch.hh
diff --git a/core/randomizer.hh b/src/core/randomizer.hh
index b60b839..b60b839 100644
--- a/core/randomizer.hh
+++ b/src/core/randomizer.hh
diff --git a/core/resource.hh b/src/core/resource.hh
index ab7b74f..ab7b74f 100644
--- a/core/resource.hh
+++ b/src/core/resource.hh
diff --git a/core/strtools.cc b/src/core/strtools.cc
index 4edd86b..4edd86b 100644
--- a/core/strtools.cc
+++ b/src/core/strtools.cc
diff --git a/core/strtools.hh b/src/core/strtools.hh
index 1462978..1462978 100644
--- a/core/strtools.hh
+++ b/src/core/strtools.hh
diff --git a/core/vectors.hh b/src/core/vectors.hh
index a6e9c75..a6e9c75 100644
--- a/core/vectors.hh
+++ b/src/core/vectors.hh
diff --git a/src/core/version.cc b/src/core/version.cc
new file mode 100644
index 0000000..d86564e
--- /dev/null
+++ b/src/core/version.cc
@@ -0,0 +1,12 @@
+#include "core/pch.hh"
+
+#include "core/version.hh"
+
+// clang-format off
+const unsigned long project_version_major = 0;
+const unsigned long project_version_minor = 0;
+const unsigned long project_version_patch = 1;
+const unsigned long project_version_tweak = 2526;
+// clang-format on
+
+const std::string project_version_string = "0.0.1.2526";
diff --git a/core/version.cc.in b/src/core/version.cc.in
index 0183ec0..0183ec0 100644
--- a/core/version.cc.in
+++ b/src/core/version.cc.in
diff --git a/core/version.hh b/src/core/version.hh
index 2061c31..2061c31 100644
--- a/core/version.hh
+++ b/src/core/version.hh
diff --git a/game/CMakeLists.txt b/src/game/CMakeLists.txt
index c6c32bf..c6c32bf 100644
--- a/game/CMakeLists.txt
+++ b/src/game/CMakeLists.txt
diff --git a/game/client/CMakeLists.txt b/src/game/client/CMakeLists.txt
index 15d2692..ac40148 100644
--- a/game/client/CMakeLists.txt
+++ b/src/game/client/CMakeLists.txt
@@ -107,8 +107,8 @@ add_executable(vclient
target_compile_features(vclient PUBLIC cxx_std_20)
target_compile_definitions(vclient PUBLIC GLFW_INCLUDE_NONE)
target_include_directories(vclient PUBLIC "${DEPS_INCLUDE_DIR}")
-target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}")
-target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}/game")
+target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}/src")
+target_include_directories(vclient PRIVATE "${PROJECT_SOURCE_DIR}/src/game")
target_precompile_headers(vclient PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(vclient PUBLIC shared dr_libs glad glfw3 imgui imgui_glfw imgui_opengl3 salad)
diff --git a/game/client/background.cc b/src/game/client/background.cc
index 415b63c..415b63c 100644
--- a/game/client/background.cc
+++ b/src/game/client/background.cc
diff --git a/game/client/background.hh b/src/game/client/background.hh
index 634caf5..634caf5 100644
--- a/game/client/background.hh
+++ b/src/game/client/background.hh
diff --git a/game/client/bother.cc b/src/game/client/bother.cc
index 8bd7182..8bd7182 100644
--- a/game/client/bother.cc
+++ b/src/game/client/bother.cc
diff --git a/game/client/bother.hh b/src/game/client/bother.hh
index 5fbf247..5fbf247 100644
--- a/game/client/bother.hh
+++ b/src/game/client/bother.hh
diff --git a/game/client/camera.cc b/src/game/client/camera.cc
index 724ae66..724ae66 100644
--- a/game/client/camera.cc
+++ b/src/game/client/camera.cc
diff --git a/game/client/camera.hh b/src/game/client/camera.hh
index 9718720..9718720 100644
--- a/game/client/camera.hh
+++ b/src/game/client/camera.hh
diff --git a/game/client/chat.cc b/src/game/client/chat.cc
index 0a0c75d..0a0c75d 100644
--- a/game/client/chat.cc
+++ b/src/game/client/chat.cc
diff --git a/game/client/chat.hh b/src/game/client/chat.hh
index f2ee4de..f2ee4de 100644
--- a/game/client/chat.hh
+++ b/src/game/client/chat.hh
diff --git a/game/client/chunk_mesher.cc b/src/game/client/chunk_mesher.cc
index 0271931..0271931 100644
--- a/game/client/chunk_mesher.cc
+++ b/src/game/client/chunk_mesher.cc
diff --git a/game/client/chunk_mesher.hh b/src/game/client/chunk_mesher.hh
index 36580ac..36580ac 100644
--- a/game/client/chunk_mesher.hh
+++ b/src/game/client/chunk_mesher.hh
diff --git a/game/client/chunk_quad.hh b/src/game/client/chunk_quad.hh
index 337bb1e..337bb1e 100644
--- a/game/client/chunk_quad.hh
+++ b/src/game/client/chunk_quad.hh
diff --git a/game/client/chunk_renderer.cc b/src/game/client/chunk_renderer.cc
index 54239af..54239af 100644
--- a/game/client/chunk_renderer.cc
+++ b/src/game/client/chunk_renderer.cc
diff --git a/game/client/chunk_renderer.hh b/src/game/client/chunk_renderer.hh
index 3ebcf76..3ebcf76 100644
--- a/game/client/chunk_renderer.hh
+++ b/src/game/client/chunk_renderer.hh
diff --git a/game/client/chunk_vbo.hh b/src/game/client/chunk_vbo.hh
index ba27552..ba27552 100644
--- a/game/client/chunk_vbo.hh
+++ b/src/game/client/chunk_vbo.hh
diff --git a/game/client/chunk_visibility.cc b/src/game/client/chunk_visibility.cc
index f832529..f832529 100644
--- a/game/client/chunk_visibility.cc
+++ b/src/game/client/chunk_visibility.cc
diff --git a/game/client/chunk_visibility.hh b/src/game/client/chunk_visibility.hh
index 70352c9..70352c9 100644
--- a/game/client/chunk_visibility.hh
+++ b/src/game/client/chunk_visibility.hh
diff --git a/game/client/const.hh b/src/game/client/const.hh
index 9bd8346..9bd8346 100644
--- a/game/client/const.hh
+++ b/src/game/client/const.hh
diff --git a/game/client/crosshair.cc b/src/game/client/crosshair.cc
index 84a9a73..84a9a73 100644
--- a/game/client/crosshair.cc
+++ b/src/game/client/crosshair.cc
diff --git a/game/client/crosshair.hh b/src/game/client/crosshair.hh
index 6525792..6525792 100644
--- a/game/client/crosshair.hh
+++ b/src/game/client/crosshair.hh
diff --git a/game/client/direct_connection.cc b/src/game/client/direct_connection.cc
index c2efc4e..c2efc4e 100644
--- a/game/client/direct_connection.cc
+++ b/src/game/client/direct_connection.cc
diff --git a/game/client/direct_connection.hh b/src/game/client/direct_connection.hh
index f94bcaf..f94bcaf 100644
--- a/game/client/direct_connection.hh
+++ b/src/game/client/direct_connection.hh
diff --git a/game/client/experiments.cc b/src/game/client/experiments.cc
index 70353b5..70353b5 100644
--- a/game/client/experiments.cc
+++ b/src/game/client/experiments.cc
diff --git a/game/client/experiments.hh b/src/game/client/experiments.hh
index ae20426..ae20426 100644
--- a/game/client/experiments.hh
+++ b/src/game/client/experiments.hh
diff --git a/game/client/factory.cc b/src/game/client/factory.cc
index 4c1c24e..4c1c24e 100644
--- a/game/client/factory.cc
+++ b/src/game/client/factory.cc
diff --git a/game/client/factory.hh b/src/game/client/factory.hh
index 6f883c2..6f883c2 100644
--- a/game/client/factory.hh
+++ b/src/game/client/factory.hh
diff --git a/game/client/game.cc b/src/game/client/game.cc
index 8dc39f6..c930f38 100644
--- a/game/client/game.cc
+++ b/src/game/client/game.cc
@@ -72,7 +72,6 @@
ConfigBoolean client_game::streamer_mode(false);
ConfigBoolean client_game::vertical_sync(true);
ConfigBoolean client_game::world_curvature(true);
-ConfigUnsigned client_game::pixel_size(2U, 1U, 4U);
ConfigUnsigned client_game::fog_mode(1U, 0U, 2U);
ConfigString client_game::username("player");
@@ -188,7 +187,6 @@ void client_game::init(void)
globals::client_config.add_value("game.streamer_mode", client_game::streamer_mode);
globals::client_config.add_value("game.vertical_sync", client_game::vertical_sync);
globals::client_config.add_value("game.world_curvature", client_game::world_curvature);
- globals::client_config.add_value("game.pixel_size", client_game::pixel_size);
globals::client_config.add_value("game.fog_mode", client_game::fog_mode);
globals::client_config.add_value("game.username", client_game::username);
globals::client_config.add_value("game.key.toggle_hide_hud", hide_hud_toggle);
@@ -198,7 +196,6 @@ void client_game::init(void)
settings::add_checkbox(0, client_game::streamer_mode, settings_location::VIDEO_GUI, "game.streamer_mode", true);
settings::add_checkbox(5, client_game::vertical_sync, settings_location::VIDEO, "game.vertical_sync", false);
settings::add_checkbox(4, client_game::world_curvature, settings_location::VIDEO, "game.world_curvature", true);
- settings::add_slider(1, client_game::pixel_size, settings_location::VIDEO, "game.pixel_size", true);
settings::add_stepper(3, client_game::fog_mode, settings_location::VIDEO, "game.fog_mode", false);
settings::add_input(1, client_game::username, settings_location::GENERAL, "game.username", true, false);
settings::add_keybind(4, hide_hud_toggle, settings_location::KEYBOARD_MISC, "game.key.toggle_hide_hud");
@@ -579,10 +576,7 @@ void client_game::update_late(void)
void client_game::render(void)
{
- auto scaled_width = globals::width / vx::max<int>(1, client_game::pixel_size.get_value());
- auto scaled_height = globals::height / vx::max<int>(1, client_game::pixel_size.get_value());
-
- glViewport(0, 0, scaled_width, scaled_height);
+ glViewport(0, 0, globals::width, globals::height);
glBindFramebuffer(GL_FRAMEBUFFER, globals::world_fbo);
glClearColor(skybox::fog_color.r, skybox::fog_color.g, skybox::fog_color.b, 1.000f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -629,7 +623,7 @@ void client_game::render(void)
glBindFramebuffer(GL_READ_FRAMEBUFFER, globals::world_fbo);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
- glBlitFramebuffer(0, 0, scaled_width, scaled_height, 0, 0, globals::width, globals::height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+ glBlitFramebuffer(0, 0, globals::width, globals::height, 0, 0, globals::width, globals::height, GL_COLOR_BUFFER_BIT, GL_NEAREST);
}
void client_game::layout(void)
diff --git a/game/client/game.hh b/src/game/client/game.hh
index 0887703..f3c6fc4 100644
--- a/game/client/game.hh
+++ b/src/game/client/game.hh
@@ -11,7 +11,6 @@ namespace client_game
extern ConfigBoolean streamer_mode;
extern ConfigBoolean vertical_sync;
extern ConfigBoolean world_curvature;
-extern ConfigUnsigned pixel_size;
extern ConfigUnsigned fog_mode;
extern ConfigString username;
} // namespace client_game
diff --git a/game/client/gamepad.cc b/src/game/client/gamepad.cc
index 6cbcb3f..6cbcb3f 100644
--- a/game/client/gamepad.cc
+++ b/src/game/client/gamepad.cc
diff --git a/game/client/gamepad.hh b/src/game/client/gamepad.hh
index d2483b7..d2483b7 100644
--- a/game/client/gamepad.hh
+++ b/src/game/client/gamepad.hh
diff --git a/game/client/gamepad_axis.cc b/src/game/client/gamepad_axis.cc
index 546c647..546c647 100644
--- a/game/client/gamepad_axis.cc
+++ b/src/game/client/gamepad_axis.cc
diff --git a/game/client/gamepad_axis.hh b/src/game/client/gamepad_axis.hh
index c0ed6ee..c0ed6ee 100644
--- a/game/client/gamepad_axis.hh
+++ b/src/game/client/gamepad_axis.hh
diff --git a/game/client/gamepad_button.cc b/src/game/client/gamepad_button.cc
index dd3dca7..dd3dca7 100644
--- a/game/client/gamepad_button.cc
+++ b/src/game/client/gamepad_button.cc
diff --git a/game/client/gamepad_button.hh b/src/game/client/gamepad_button.hh
index 04b3a41..04b3a41 100644
--- a/game/client/gamepad_button.hh
+++ b/src/game/client/gamepad_button.hh
diff --git a/game/client/glfw.hh b/src/game/client/glfw.hh
index 9cdf734..9cdf734 100644
--- a/game/client/glfw.hh
+++ b/src/game/client/glfw.hh
diff --git a/game/client/globals.cc b/src/game/client/globals.cc
index 6e00680..6e00680 100644
--- a/game/client/globals.cc
+++ b/src/game/client/globals.cc
diff --git a/game/client/globals.hh b/src/game/client/globals.hh
index 3fc2223..3fc2223 100644
--- a/game/client/globals.hh
+++ b/src/game/client/globals.hh
diff --git a/game/client/gui_screen.hh b/src/game/client/gui_screen.hh
index edad116..edad116 100644
--- a/game/client/gui_screen.hh
+++ b/src/game/client/gui_screen.hh
diff --git a/game/client/hotbar.cc b/src/game/client/hotbar.cc
index a2ed859..a2ed859 100644
--- a/game/client/hotbar.cc
+++ b/src/game/client/hotbar.cc
diff --git a/game/client/hotbar.hh b/src/game/client/hotbar.hh
index 318c631..318c631 100644
--- a/game/client/hotbar.hh
+++ b/src/game/client/hotbar.hh
diff --git a/game/client/imdraw_ext.cc b/src/game/client/imdraw_ext.cc
index 67df3c8..67df3c8 100644
--- a/game/client/imdraw_ext.cc
+++ b/src/game/client/imdraw_ext.cc
diff --git a/game/client/imdraw_ext.hh b/src/game/client/imdraw_ext.hh
index 0a84e69..0a84e69 100644
--- a/game/client/imdraw_ext.hh
+++ b/src/game/client/imdraw_ext.hh
diff --git a/game/client/interpolation.cc b/src/game/client/interpolation.cc
index 27b6dfd..27b6dfd 100644
--- a/game/client/interpolation.cc
+++ b/src/game/client/interpolation.cc
diff --git a/game/client/interpolation.hh b/src/game/client/interpolation.hh
index 3565a26..3565a26 100644
--- a/game/client/interpolation.hh
+++ b/src/game/client/interpolation.hh
diff --git a/game/client/keybind.cc b/src/game/client/keybind.cc
index d47397d..d47397d 100644
--- a/game/client/keybind.cc
+++ b/src/game/client/keybind.cc
diff --git a/game/client/keybind.hh b/src/game/client/keybind.hh
index 8cf3c3c..8cf3c3c 100644
--- a/game/client/keybind.hh
+++ b/src/game/client/keybind.hh
diff --git a/game/client/language.cc b/src/game/client/language.cc
index 2ae0bc6..2ae0bc6 100644
--- a/game/client/language.cc
+++ b/src/game/client/language.cc
diff --git a/game/client/language.hh b/src/game/client/language.hh
index 680cd92..680cd92 100644
--- a/game/client/language.hh
+++ b/src/game/client/language.hh
diff --git a/game/client/listener.cc b/src/game/client/listener.cc
index 6b691eb..6b691eb 100644
--- a/game/client/listener.cc
+++ b/src/game/client/listener.cc
diff --git a/game/client/listener.hh b/src/game/client/listener.hh
index 731babc..731babc 100644
--- a/game/client/listener.hh
+++ b/src/game/client/listener.hh
diff --git a/game/client/main.cc b/src/game/client/main.cc
index d9e915c..d9e915c 100644
--- a/game/client/main.cc
+++ b/src/game/client/main.cc
diff --git a/game/client/main_menu.cc b/src/game/client/main_menu.cc
index 39763ec..39763ec 100644
--- a/game/client/main_menu.cc
+++ b/src/game/client/main_menu.cc
diff --git a/game/client/main_menu.hh b/src/game/client/main_menu.hh
index 9166722..9166722 100644
--- a/game/client/main_menu.hh
+++ b/src/game/client/main_menu.hh
diff --git a/game/client/message_box.cc b/src/game/client/message_box.cc
index da1b715..da1b715 100644
--- a/game/client/message_box.cc
+++ b/src/game/client/message_box.cc
diff --git a/game/client/message_box.hh b/src/game/client/message_box.hh
index 7ea2466..7ea2466 100644
--- a/game/client/message_box.hh
+++ b/src/game/client/message_box.hh
diff --git a/game/client/metrics.cc b/src/game/client/metrics.cc
index 8b5b7dd..8b5b7dd 100644
--- a/game/client/metrics.cc
+++ b/src/game/client/metrics.cc
diff --git a/game/client/metrics.hh b/src/game/client/metrics.hh
index ba68a86..ba68a86 100644
--- a/game/client/metrics.hh
+++ b/src/game/client/metrics.hh
diff --git a/game/client/outline.cc b/src/game/client/outline.cc
index 31a6bd9..31a6bd9 100644
--- a/game/client/outline.cc
+++ b/src/game/client/outline.cc
diff --git a/game/client/outline.hh b/src/game/client/outline.hh
index a7789b2..a7789b2 100644
--- a/game/client/outline.hh
+++ b/src/game/client/outline.hh
diff --git a/game/client/pch.hh b/src/game/client/pch.hh
index df9d2b5..df9d2b5 100644
--- a/game/client/pch.hh
+++ b/src/game/client/pch.hh
diff --git a/game/client/play_menu.cc b/src/game/client/play_menu.cc
index b9a6693..b9a6693 100644
--- a/game/client/play_menu.cc
+++ b/src/game/client/play_menu.cc
diff --git a/game/client/play_menu.hh b/src/game/client/play_menu.hh
index 44193df..44193df 100644
--- a/game/client/play_menu.hh
+++ b/src/game/client/play_menu.hh
diff --git a/game/client/player_look.cc b/src/game/client/player_look.cc
index 767c171..767c171 100644
--- a/game/client/player_look.cc
+++ b/src/game/client/player_look.cc
diff --git a/game/client/player_look.hh b/src/game/client/player_look.hh
index c10df0e..c10df0e 100644
--- a/game/client/player_look.hh
+++ b/src/game/client/player_look.hh
diff --git a/game/client/player_move.cc b/src/game/client/player_move.cc
index d949d53..d949d53 100644
--- a/game/client/player_move.cc
+++ b/src/game/client/player_move.cc
diff --git a/game/client/player_move.hh b/src/game/client/player_move.hh
index 7730d08..7730d08 100644
--- a/game/client/player_move.hh
+++ b/src/game/client/player_move.hh
diff --git a/game/client/player_target.cc b/src/game/client/player_target.cc
index 9c60c00..9c60c00 100644
--- a/game/client/player_target.cc
+++ b/src/game/client/player_target.cc
diff --git a/game/client/player_target.hh b/src/game/client/player_target.hh
index b60d1a5..b60d1a5 100644
--- a/game/client/player_target.hh
+++ b/src/game/client/player_target.hh
diff --git a/game/client/program.cc b/src/game/client/program.cc
index 8d4403a..8d4403a 100644
--- a/game/client/program.cc
+++ b/src/game/client/program.cc
diff --git a/game/client/program.hh b/src/game/client/program.hh
index 4d83e14..4d83e14 100644
--- a/game/client/program.hh
+++ b/src/game/client/program.hh
diff --git a/game/client/progress_bar.cc b/src/game/client/progress_bar.cc
index dfab705..dfab705 100644
--- a/game/client/progress_bar.cc
+++ b/src/game/client/progress_bar.cc
diff --git a/game/client/progress_bar.hh b/src/game/client/progress_bar.hh
index 5375d3f..5375d3f 100644
--- a/game/client/progress_bar.hh
+++ b/src/game/client/progress_bar.hh
diff --git a/game/client/receive.cc b/src/game/client/receive.cc
index 742d3af..742d3af 100644
--- a/game/client/receive.cc
+++ b/src/game/client/receive.cc
diff --git a/game/client/receive.hh b/src/game/client/receive.hh
index 27ed2b2..27ed2b2 100644
--- a/game/client/receive.hh
+++ b/src/game/client/receive.hh
diff --git a/game/client/scoreboard.cc b/src/game/client/scoreboard.cc
index 23010ea..23010ea 100644
--- a/game/client/scoreboard.cc
+++ b/src/game/client/scoreboard.cc
diff --git a/game/client/scoreboard.hh b/src/game/client/scoreboard.hh
index 0ae1688..0ae1688 100644
--- a/game/client/scoreboard.hh
+++ b/src/game/client/scoreboard.hh
diff --git a/game/client/screenshot.cc b/src/game/client/screenshot.cc
index a42a815..a42a815 100644
--- a/game/client/screenshot.cc
+++ b/src/game/client/screenshot.cc
diff --git a/game/client/screenshot.hh b/src/game/client/screenshot.hh
index 9888644..9888644 100644
--- a/game/client/screenshot.hh
+++ b/src/game/client/screenshot.hh
diff --git a/game/client/session.cc b/src/game/client/session.cc
index d3676f3..d3676f3 100644
--- a/game/client/session.cc
+++ b/src/game/client/session.cc
diff --git a/game/client/session.hh b/src/game/client/session.hh
index 051b57f..051b57f 100644
--- a/game/client/session.hh
+++ b/src/game/client/session.hh
diff --git a/game/client/settings.cc b/src/game/client/settings.cc
index 46e1bde..46e1bde 100644
--- a/game/client/settings.cc
+++ b/src/game/client/settings.cc
diff --git a/game/client/settings.hh b/src/game/client/settings.hh
index 4704a58..4704a58 100644
--- a/game/client/settings.hh
+++ b/src/game/client/settings.hh
diff --git a/game/client/skybox.cc b/src/game/client/skybox.cc
index 8578f0e..8578f0e 100644
--- a/game/client/skybox.cc
+++ b/src/game/client/skybox.cc
diff --git a/game/client/skybox.hh b/src/game/client/skybox.hh
index a3853f0..a3853f0 100644
--- a/game/client/skybox.hh
+++ b/src/game/client/skybox.hh
diff --git a/game/client/sound.cc b/src/game/client/sound.cc
index 28e0143..28e0143 100644
--- a/game/client/sound.cc
+++ b/src/game/client/sound.cc
diff --git a/game/client/sound.hh b/src/game/client/sound.hh
index 2701ae0..2701ae0 100644
--- a/game/client/sound.hh
+++ b/src/game/client/sound.hh
diff --git a/game/client/sound_effect.cc b/src/game/client/sound_effect.cc
index 182f49d..182f49d 100644
--- a/game/client/sound_effect.cc
+++ b/src/game/client/sound_effect.cc
diff --git a/game/client/sound_effect.hh b/src/game/client/sound_effect.hh
index 83b5e4d..83b5e4d 100644
--- a/game/client/sound_effect.hh
+++ b/src/game/client/sound_effect.hh
diff --git a/game/client/sound_emitter.cc b/src/game/client/sound_emitter.cc
index 9b84df2..9b84df2 100644
--- a/game/client/sound_emitter.cc
+++ b/src/game/client/sound_emitter.cc
diff --git a/game/client/sound_emitter.hh b/src/game/client/sound_emitter.hh
index 88d99eb..88d99eb 100644
--- a/game/client/sound_emitter.hh
+++ b/src/game/client/sound_emitter.hh
diff --git a/game/client/splash.cc b/src/game/client/splash.cc
index f9c616b..f9c616b 100644
--- a/game/client/splash.cc
+++ b/src/game/client/splash.cc
diff --git a/game/client/splash.hh b/src/game/client/splash.hh
index 2b66e2c..2b66e2c 100644
--- a/game/client/splash.hh
+++ b/src/game/client/splash.hh
diff --git a/game/client/status_lines.cc b/src/game/client/status_lines.cc
index ea7293c..ea7293c 100644
--- a/game/client/status_lines.cc
+++ b/src/game/client/status_lines.cc
diff --git a/game/client/status_lines.hh b/src/game/client/status_lines.hh
index c252a34..c252a34 100644
--- a/game/client/status_lines.hh
+++ b/src/game/client/status_lines.hh
diff --git a/game/client/texture_gui.cc b/src/game/client/texture_gui.cc
index 265f6c2..265f6c2 100644
--- a/game/client/texture_gui.cc
+++ b/src/game/client/texture_gui.cc
diff --git a/game/client/texture_gui.hh b/src/game/client/texture_gui.hh
index 97a91b4..97a91b4 100644
--- a/game/client/texture_gui.hh
+++ b/src/game/client/texture_gui.hh
diff --git a/game/client/toggles.cc b/src/game/client/toggles.cc
index f40d6ed..f40d6ed 100644
--- a/game/client/toggles.cc
+++ b/src/game/client/toggles.cc
diff --git a/game/client/toggles.hh b/src/game/client/toggles.hh
index d892d33..d892d33 100644
--- a/game/client/toggles.hh
+++ b/src/game/client/toggles.hh
diff --git a/game/client/vclient.ico b/src/game/client/vclient.ico
index 5f3ccd2..5f3ccd2 100644
--- a/game/client/vclient.ico
+++ b/src/game/client/vclient.ico
Binary files differ
diff --git a/game/client/vclient.rc b/src/game/client/vclient.rc
index 0268ca0..0268ca0 100644
--- a/game/client/vclient.rc
+++ b/src/game/client/vclient.rc
diff --git a/game/client/voxel_anims.cc b/src/game/client/voxel_anims.cc
index 4e0f168..4e0f168 100644
--- a/game/client/voxel_anims.cc
+++ b/src/game/client/voxel_anims.cc
diff --git a/game/client/voxel_anims.hh b/src/game/client/voxel_anims.hh
index 5d6b9f9..5d6b9f9 100644
--- a/game/client/voxel_anims.hh
+++ b/src/game/client/voxel_anims.hh
diff --git a/game/client/voxel_atlas.cc b/src/game/client/voxel_atlas.cc
index ef996e2..ef996e2 100644
--- a/game/client/voxel_atlas.cc
+++ b/src/game/client/voxel_atlas.cc
diff --git a/game/client/voxel_atlas.hh b/src/game/client/voxel_atlas.hh
index 67036ca..67036ca 100644
--- a/game/client/voxel_atlas.hh
+++ b/src/game/client/voxel_atlas.hh
diff --git a/game/client/voxel_sounds.cc b/src/game/client/voxel_sounds.cc
index fd02a8e..fd02a8e 100644
--- a/game/client/voxel_sounds.cc
+++ b/src/game/client/voxel_sounds.cc
diff --git a/game/client/voxel_sounds.hh b/src/game/client/voxel_sounds.hh
index ed11c0f..ed11c0f 100644
--- a/game/client/voxel_sounds.hh
+++ b/src/game/client/voxel_sounds.hh
diff --git a/game/client/window_title.cc b/src/game/client/window_title.cc
index 517429d..517429d 100644
--- a/game/client/window_title.cc
+++ b/src/game/client/window_title.cc
diff --git a/game/client/window_title.hh b/src/game/client/window_title.hh
index 25051c8..25051c8 100644
--- a/game/client/window_title.hh
+++ b/src/game/client/window_title.hh
diff --git a/game/server/CMakeLists.txt b/src/game/server/CMakeLists.txt
index a9c5cc9..bd0eff3 100644
--- a/game/server/CMakeLists.txt
+++ b/src/game/server/CMakeLists.txt
@@ -26,8 +26,8 @@ add_executable(vserver
"${CMAKE_CURRENT_LIST_DIR}/worldgen.hh")
target_compile_features(vserver PUBLIC cxx_std_20)
target_include_directories(vserver PUBLIC "${DEPS_INCLUDE_DIR}")
-target_include_directories(vserver PRIVATE "${PROJECT_SOURCE_DIR}")
-target_include_directories(vserver PRIVATE "${PROJECT_SOURCE_DIR}/game")
+target_include_directories(vserver PRIVATE "${PROJECT_SOURCE_DIR}/src")
+target_include_directories(vserver PRIVATE "${PROJECT_SOURCE_DIR}/src/game")
target_precompile_headers(vserver PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(vserver PUBLIC shared)
diff --git a/game/server/chat.cc b/src/game/server/chat.cc
index 1634c59..1634c59 100644
--- a/game/server/chat.cc
+++ b/src/game/server/chat.cc
diff --git a/game/server/chat.hh b/src/game/server/chat.hh
index 2557290..2557290 100644
--- a/game/server/chat.hh
+++ b/src/game/server/chat.hh
diff --git a/game/server/game.cc b/src/game/server/game.cc
index 978474c..978474c 100644
--- a/game/server/game.cc
+++ b/src/game/server/game.cc
diff --git a/game/server/game.hh b/src/game/server/game.hh
index 98c6bf3..98c6bf3 100644
--- a/game/server/game.hh
+++ b/src/game/server/game.hh
diff --git a/game/server/globals.cc b/src/game/server/globals.cc
index 883588b..883588b 100644
--- a/game/server/globals.cc
+++ b/src/game/server/globals.cc
diff --git a/game/server/globals.hh b/src/game/server/globals.hh
index 54f025a..54f025a 100644
--- a/game/server/globals.hh
+++ b/src/game/server/globals.hh
diff --git a/game/server/inhabited.hh b/src/game/server/inhabited.hh
index c68ddaa..c68ddaa 100644
--- a/game/server/inhabited.hh
+++ b/src/game/server/inhabited.hh
diff --git a/game/server/main.cc b/src/game/server/main.cc
index 734ae6a..734ae6a 100644
--- a/game/server/main.cc
+++ b/src/game/server/main.cc
diff --git a/game/server/overworld.cc b/src/game/server/overworld.cc
index a280e06..a280e06 100644
--- a/game/server/overworld.cc
+++ b/src/game/server/overworld.cc
diff --git a/game/server/overworld.hh b/src/game/server/overworld.hh
index 972a91d..972a91d 100644
--- a/game/server/overworld.hh
+++ b/src/game/server/overworld.hh
diff --git a/game/server/pch.hh b/src/game/server/pch.hh
index 89b396b..89b396b 100644
--- a/game/server/pch.hh
+++ b/src/game/server/pch.hh
diff --git a/game/server/receive.cc b/src/game/server/receive.cc
index 7674122..7674122 100644
--- a/game/server/receive.cc
+++ b/src/game/server/receive.cc
diff --git a/game/server/receive.hh b/src/game/server/receive.hh
index 57090b5..57090b5 100644
--- a/game/server/receive.hh
+++ b/src/game/server/receive.hh
diff --git a/game/server/sessions.cc b/src/game/server/sessions.cc
index 43abbb7..43abbb7 100644
--- a/game/server/sessions.cc
+++ b/src/game/server/sessions.cc
diff --git a/game/server/sessions.hh b/src/game/server/sessions.hh
index b9a6348..b9a6348 100644
--- a/game/server/sessions.hh
+++ b/src/game/server/sessions.hh
diff --git a/game/server/status.cc b/src/game/server/status.cc
index 6b64719..6b64719 100644
--- a/game/server/status.cc
+++ b/src/game/server/status.cc
diff --git a/game/server/status.hh b/src/game/server/status.hh
index 5f939f7..5f939f7 100644
--- a/game/server/status.hh
+++ b/src/game/server/status.hh
diff --git a/game/server/universe.cc b/src/game/server/universe.cc
index 96884cf..96884cf 100644
--- a/game/server/universe.cc
+++ b/src/game/server/universe.cc
diff --git a/game/server/universe.hh b/src/game/server/universe.hh
index 2a16806..2a16806 100644
--- a/game/server/universe.hh
+++ b/src/game/server/universe.hh
diff --git a/game/server/unloader.cc b/src/game/server/unloader.cc
index f986a61..f986a61 100644
--- a/game/server/unloader.cc
+++ b/src/game/server/unloader.cc
diff --git a/game/server/unloader.hh b/src/game/server/unloader.hh
index 414cdc4..414cdc4 100644
--- a/game/server/unloader.hh
+++ b/src/game/server/unloader.hh
diff --git a/game/server/vserver.ico b/src/game/server/vserver.ico
index 02ff006..02ff006 100644
--- a/game/server/vserver.ico
+++ b/src/game/server/vserver.ico
Binary files differ
diff --git a/game/server/vserver.rc b/src/game/server/vserver.rc
index b6828bf..b6828bf 100644
--- a/game/server/vserver.rc
+++ b/src/game/server/vserver.rc
diff --git a/game/server/whitelist.cc b/src/game/server/whitelist.cc
index 6635122..6635122 100644
--- a/game/server/whitelist.cc
+++ b/src/game/server/whitelist.cc
diff --git a/game/server/whitelist.hh b/src/game/server/whitelist.hh
index fe7656b..fe7656b 100644
--- a/game/server/whitelist.hh
+++ b/src/game/server/whitelist.hh
diff --git a/game/server/worldgen.cc b/src/game/server/worldgen.cc
index 5c74d47..5c74d47 100644
--- a/game/server/worldgen.cc
+++ b/src/game/server/worldgen.cc
diff --git a/game/server/worldgen.hh b/src/game/server/worldgen.hh
index b0127e5..b0127e5 100644
--- a/game/server/worldgen.hh
+++ b/src/game/server/worldgen.hh
diff --git a/game/shared/CMakeLists.txt b/src/game/shared/CMakeLists.txt
index e9d3762..d72a6e8 100644
--- a/game/shared/CMakeLists.txt
+++ b/src/game/shared/CMakeLists.txt
@@ -51,7 +51,7 @@ add_library(shared STATIC
"${CMAKE_CURRENT_LIST_DIR}/voxel_storage.hh")
target_compile_features(shared PUBLIC cxx_std_20)
target_include_directories(shared PUBLIC "${DEPS_INCLUDE_DIR}")
-target_include_directories(shared PRIVATE "${PROJECT_SOURCE_DIR}")
-target_include_directories(shared PRIVATE "${PROJECT_SOURCE_DIR}/game")
+target_include_directories(shared PRIVATE "${PROJECT_SOURCE_DIR}/src")
+target_include_directories(shared PRIVATE "${PROJECT_SOURCE_DIR}/src/game")
target_precompile_headers(shared PRIVATE "${CMAKE_CURRENT_LIST_DIR}/pch.hh")
target_link_libraries(shared PUBLIC core enet entt FNL miniz parson thread_pool)
diff --git a/game/shared/chunk.cc b/src/game/shared/chunk.cc
index da798fa..da798fa 100644
--- a/game/shared/chunk.cc
+++ b/src/game/shared/chunk.cc
diff --git a/game/shared/chunk.hh b/src/game/shared/chunk.hh
index 67bedae..67bedae 100644
--- a/game/shared/chunk.hh
+++ b/src/game/shared/chunk.hh
diff --git a/game/shared/chunk_aabb.cc b/src/game/shared/chunk_aabb.cc
index 5f23ea9..5f23ea9 100644
--- a/game/shared/chunk_aabb.cc
+++ b/src/game/shared/chunk_aabb.cc
diff --git a/game/shared/chunk_aabb.hh b/src/game/shared/chunk_aabb.hh
index 7a35dd4..7a35dd4 100644
--- a/game/shared/chunk_aabb.hh
+++ b/src/game/shared/chunk_aabb.hh
diff --git a/game/shared/collision.cc b/src/game/shared/collision.cc
index dd51dd5..dd51dd5 100644
--- a/game/shared/collision.cc
+++ b/src/game/shared/collision.cc
diff --git a/game/shared/collision.hh b/src/game/shared/collision.hh
index 641a803..641a803 100644
--- a/game/shared/collision.hh
+++ b/src/game/shared/collision.hh
diff --git a/game/shared/const.hh b/src/game/shared/const.hh
index 4639c4b..4639c4b 100644
--- a/game/shared/const.hh
+++ b/src/game/shared/const.hh
diff --git a/game/shared/coord.hh b/src/game/shared/coord.hh
index f1a2e70..f1a2e70 100644
--- a/game/shared/coord.hh
+++ b/src/game/shared/coord.hh
diff --git a/game/shared/dimension.cc b/src/game/shared/dimension.cc
index a919dc4..a919dc4 100644
--- a/game/shared/dimension.cc
+++ b/src/game/shared/dimension.cc
diff --git a/game/shared/dimension.hh b/src/game/shared/dimension.hh
index c609a14..c609a14 100644
--- a/game/shared/dimension.hh
+++ b/src/game/shared/dimension.hh
diff --git a/game/shared/factory.cc b/src/game/shared/factory.cc
index ad65928..ad65928 100644
--- a/game/shared/factory.cc
+++ b/src/game/shared/factory.cc
diff --git a/game/shared/factory.hh b/src/game/shared/factory.hh
index c3449dd..c3449dd 100644
--- a/game/shared/factory.hh
+++ b/src/game/shared/factory.hh
diff --git a/game/shared/feature.cc b/src/game/shared/feature.cc
index eb6cceb..eb6cceb 100644
--- a/game/shared/feature.cc
+++ b/src/game/shared/feature.cc
diff --git a/game/shared/feature.hh b/src/game/shared/feature.hh
index 04f38e8..04f38e8 100644
--- a/game/shared/feature.hh
+++ b/src/game/shared/feature.hh
diff --git a/game/shared/game.cc b/src/game/shared/game.cc
index 73de8b5..73de8b5 100644
--- a/game/shared/game.cc
+++ b/src/game/shared/game.cc
diff --git a/game/shared/game.hh b/src/game/shared/game.hh
index 59c5327..59c5327 100644
--- a/game/shared/game.hh
+++ b/src/game/shared/game.hh
diff --git a/game/shared/game_items.cc b/src/game/shared/game_items.cc
index 95fa6fc..95fa6fc 100644
--- a/game/shared/game_items.cc
+++ b/src/game/shared/game_items.cc
diff --git a/game/shared/game_items.hh b/src/game/shared/game_items.hh
index 4e4eb81..4e4eb81 100644
--- a/game/shared/game_items.hh
+++ b/src/game/shared/game_items.hh
diff --git a/game/shared/game_voxels.cc b/src/game/shared/game_voxels.cc
index 0059335..0059335 100644
--- a/game/shared/game_voxels.cc
+++ b/src/game/shared/game_voxels.cc
diff --git a/game/shared/game_voxels.hh b/src/game/shared/game_voxels.hh
index 1b344bf..1b344bf 100644
--- a/game/shared/game_voxels.hh
+++ b/src/game/shared/game_voxels.hh
diff --git a/game/shared/globals.cc b/src/game/shared/globals.cc
index 8552214..8552214 100644
--- a/game/shared/globals.cc
+++ b/src/game/shared/globals.cc
diff --git a/game/shared/globals.hh b/src/game/shared/globals.hh
index 216d341..216d341 100644
--- a/game/shared/globals.hh
+++ b/src/game/shared/globals.hh
diff --git a/game/shared/gravity.cc b/src/game/shared/gravity.cc
index 068f658..068f658 100644
--- a/game/shared/gravity.cc
+++ b/src/game/shared/gravity.cc
diff --git a/game/shared/gravity.hh b/src/game/shared/gravity.hh
index 53f51b7..53f51b7 100644
--- a/game/shared/gravity.hh
+++ b/src/game/shared/gravity.hh
diff --git a/game/shared/grounded.hh b/src/game/shared/grounded.hh
index 869cca0..869cca0 100644
--- a/game/shared/grounded.hh
+++ b/src/game/shared/grounded.hh
diff --git a/game/shared/head.hh b/src/game/shared/head.hh
index 57dd445..57dd445 100644
--- a/game/shared/head.hh
+++ b/src/game/shared/head.hh
diff --git a/game/shared/item_registry.cc b/src/game/shared/item_registry.cc
index 1263201..1263201 100644
--- a/game/shared/item_registry.cc
+++ b/src/game/shared/item_registry.cc
diff --git a/game/shared/item_registry.hh b/src/game/shared/item_registry.hh
index 17cff9f..17cff9f 100644
--- a/game/shared/item_registry.hh
+++ b/src/game/shared/item_registry.hh
diff --git a/game/shared/pch.hh b/src/game/shared/pch.hh
index 1776f9b..1776f9b 100644
--- a/game/shared/pch.hh
+++ b/src/game/shared/pch.hh
diff --git a/game/shared/player.hh b/src/game/shared/player.hh
index a01b4f2..a01b4f2 100644
--- a/game/shared/player.hh
+++ b/src/game/shared/player.hh
diff --git a/game/shared/protocol.cc b/src/game/shared/protocol.cc
index 0e57fe4..0e57fe4 100644
--- a/game/shared/protocol.cc
+++ b/src/game/shared/protocol.cc
diff --git a/game/shared/protocol.hh b/src/game/shared/protocol.hh
index 5b25628..5b25628 100644
--- a/game/shared/protocol.hh
+++ b/src/game/shared/protocol.hh
diff --git a/game/shared/ray_dda.cc b/src/game/shared/ray_dda.cc
index 75d4386..75d4386 100644
--- a/game/shared/ray_dda.cc
+++ b/src/game/shared/ray_dda.cc
diff --git a/game/shared/ray_dda.hh b/src/game/shared/ray_dda.hh
index 91eb462..91eb462 100644
--- a/game/shared/ray_dda.hh
+++ b/src/game/shared/ray_dda.hh
diff --git a/game/shared/splash.cc b/src/game/shared/splash.cc
index 0cd5f50..0cd5f50 100644
--- a/game/shared/splash.cc
+++ b/src/game/shared/splash.cc
diff --git a/game/shared/splash.hh b/src/game/shared/splash.hh
index 9510d35..9510d35 100644
--- a/game/shared/splash.hh
+++ b/src/game/shared/splash.hh
diff --git a/game/shared/stasis.cc b/src/game/shared/stasis.cc
index 462871d..462871d 100644
--- a/game/shared/stasis.cc
+++ b/src/game/shared/stasis.cc
diff --git a/game/shared/stasis.hh b/src/game/shared/stasis.hh
index bd06d4e..bd06d4e 100644
--- a/game/shared/stasis.hh
+++ b/src/game/shared/stasis.hh
diff --git a/game/shared/threading.cc b/src/game/shared/threading.cc
index 9e46d17..9e46d17 100644
--- a/game/shared/threading.cc
+++ b/src/game/shared/threading.cc
diff --git a/game/shared/threading.hh b/src/game/shared/threading.hh
index bce4811..bce4811 100644
--- a/game/shared/threading.hh
+++ b/src/game/shared/threading.hh
diff --git a/game/shared/transform.cc b/src/game/shared/transform.cc
index f4b661c..f4b661c 100644
--- a/game/shared/transform.cc
+++ b/src/game/shared/transform.cc
diff --git a/game/shared/transform.hh b/src/game/shared/transform.hh
index f9c5f47..f9c5f47 100644
--- a/game/shared/transform.hh
+++ b/src/game/shared/transform.hh
diff --git a/game/shared/types.hh b/src/game/shared/types.hh
index 85fbd19..85fbd19 100644
--- a/game/shared/types.hh
+++ b/src/game/shared/types.hh
diff --git a/game/shared/velocity.cc b/src/game/shared/velocity.cc
index 329dc91..329dc91 100644
--- a/game/shared/velocity.cc
+++ b/src/game/shared/velocity.cc
diff --git a/game/shared/velocity.hh b/src/game/shared/velocity.hh
index 45a2858..45a2858 100644
--- a/game/shared/velocity.hh
+++ b/src/game/shared/velocity.hh
diff --git a/game/shared/voxel_registry.cc b/src/game/shared/voxel_registry.cc
index cb3c724..cb3c724 100644
--- a/game/shared/voxel_registry.cc
+++ b/src/game/shared/voxel_registry.cc
diff --git a/game/shared/voxel_registry.hh b/src/game/shared/voxel_registry.hh
index 5f7963f..5f7963f 100644
--- a/game/shared/voxel_registry.hh
+++ b/src/game/shared/voxel_registry.hh
diff --git a/game/shared/voxel_storage.cc b/src/game/shared/voxel_storage.cc
index f2c4d42..f2c4d42 100644
--- a/game/shared/voxel_storage.cc
+++ b/src/game/shared/voxel_storage.cc
diff --git a/game/shared/voxel_storage.hh b/src/game/shared/voxel_storage.hh
index a31cf3e..a31cf3e 100644
--- a/game/shared/voxel_storage.hh
+++ b/src/game/shared/voxel_storage.hh