Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
24ab7fe
update libs
MilesGlitch Aug 30, 2026
f3acef0
add support c++
MilesGlitch Aug 30, 2026
a5bff98
не большие подготовки
MilesGlitch Aug 30, 2026
ac6433d
что-то
MilesGlitch Aug 30, 2026
44b6e60
не рабочия фигня
MilesGlitch Aug 31, 2026
6ed81d2
u
MilesGlitch Sep 2, 2026
df9f362
a
MilesGlitch Sep 3, 2026
8a23263
Update
MilesGlitch Sep 5, 2026
9cc0c46
Update
MilesGlitch Sep 5, 2026
8c01706
update
MilesGlitch Sep 5, 2026
61a1cc2
update
MilesGlitch Sep 6, 2026
e17e309
refactoring
MilesGlitch Sep 6, 2026
c8fc153
refactoring
MilesGlitch Sep 6, 2026
159ee64
refactoring
MilesGlitch Sep 7, 2026
1ebd6e4
add support utf8
MilesGlitch Sep 7, 2026
3342ab9
Update
MilesGlitch Sep 7, 2026
346f8fc
charselect (exe is crying) + little things
FakerNull0 Sep 7, 2026
94f2643
Merge pull request #12 from FakerNull0/dev/cxx
MilesGlitch Sep 7, 2026
91cdf6a
Fixes
MilesGlitch Sep 7, 2026
a721bef
Update
MilesGlitch Sep 7, 2026
03d5cdb
Update
MilesGlitch Sep 7, 2026
c84267c
aa
FakerNull0 Sep 7, 2026
f53c15a
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 7, 2026
04f8025
init
FakerNull0 Sep 8, 2026
649b695
Merge remote-tracking branch 'origin/dev/cxx' into dev/cxx
FakerNull0 Sep 8, 2026
84b0adf
Update
MilesGlitch Sep 8, 2026
1caf065
Update
MilesGlitch Sep 8, 2026
bceb549
Update
MilesGlitch Sep 8, 2026
892f6da
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 8, 2026
7872c8f
Update
MilesGlitch Sep 8, 2026
3bddbf0
Update
MilesGlitch Sep 9, 2026
8f63c27
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 9, 2026
e55d99e
?
FakerNull0 Sep 9, 2026
95b9e96
good update
FakerNull0 Sep 9, 2026
fc83c47
убрал wip из-за готовности реализации
FakerNull0 Sep 9, 2026
25c8456
Merge pull request #16 from FakerNull0/dev/cxx
MilesGlitch Sep 9, 2026
5d94f0d
fix formating
MilesGlitch Sep 9, 2026
f414e13
Update
MilesGlitch Sep 10, 2026
40753b7
АААААААААААА :sobbing
FakerNull0 Sep 10, 2026
c29c903
aaaa
FakerNull0 Sep 10, 2026
6c09c82
45ЕН88НЦ05Е8Н-
FakerNull0 Sep 10, 2026
8b47e24
ДАБЛЯЯЯЯЯЯЯ
FakerNull0 Sep 10, 2026
baf86e0
Merge pull request #17 from FakerNull0/dev/cxx
MilesGlitch Sep 10, 2026
c29c094
Добавил голосования
MilesGlitch Sep 11, 2026
e9e515d
- Теперь логгер понимает цвета из игры
MilesGlitch Sep 12, 2026
8d55548
aaaaaaaaaaaa
FakerNull0 Sep 13, 2026
67ce5ff
Merge branch 'dev/cxx' of https://github.com/FakerNull0/DisasterServe…
FakerNull0 Sep 13, 2026
8154fe5
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 13, 2026
afe64c7
add
MilesGlitch Sep 13, 2026
e1bb3ed
Update build.yml
MilesGlitch Sep 13, 2026
529f667
Update build.yml
MilesGlitch Sep 13, 2026
8b02d84
Update build.yml
MilesGlitch Sep 13, 2026
a1498f1
Update build.yml
MilesGlitch Sep 13, 2026
8af5f75
not finished
FakerNull0 Sep 13, 2026
20ddbe1
AAAAAA
FakerNull0 Sep 13, 2026
14b3dbe
idk
FakerNull0 Sep 13, 2026
b4d9895
Update LobbyState.cpp
FakerNull0 Sep 13, 2026
71ce1c9
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 13, 2026
c3ebe91
Теперь игра хоть как-то работает
MilesGlitch Sep 14, 2026
decb040
Merge branch 'AX88M2:dev/cxx' into dev/cxx
FakerNull0 Sep 14, 2026
c40af44
.
FakerNull0 Sep 14, 2026
f6abeab
Update presets
MilesGlitch Sep 14, 2026
8ad6d85
Merge remote-tracking branch 'FakerNull0/dev/cxx' into fork/FakerNull…
MilesGlitch Sep 14, 2026
647ca79
new config manager
MilesGlitch Sep 14, 2026
99ab7fd
Merge pull request #19 from FakerNull0/dev/cxx
MilesGlitch Sep 14, 2026
94d12d1
add toml11
MilesGlitch Sep 14, 2026
7f08cbd
Merge remote-tracking branch 'origin/dev/cxx' into dev/cxx
MilesGlitch Sep 14, 2026
47fcaa9
fix
MilesGlitch Sep 14, 2026
2041263
fix
MilesGlitch Sep 15, 2026
06d44c5
опять переработка
MilesGlitch Sep 15, 2026
bb9c848
renaming
MilesGlitch Sep 15, 2026
dc67c0d
renaming
MilesGlitch Sep 17, 2026
3345362
update
MilesGlitch Sep 17, 2026
283eb81
fix
MilesGlitch Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: CMake on multiple platforms

on:
push:
branches: [ "dev/cxx" ]
pull_request:
branches: [ "dev/cxx" ]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest, windows-latest]
build_type: [Release]
c_compiler: [clang, cl]
ui: [true, false]
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
vcpkg_triplet: x64-windows-release
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
vcpkg_triplet: x64-linux-release
exclude:
- os: windows-latest
c_compiler: gcc
- os: windows-latest
c_compiler: clang
- os: ubuntu-latest
c_compiler: cl

steps:
- uses: actions/checkout@v7
with:
submodules: recursive

- name: Install dependencies (Only Linux)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get install build-essential -y
sudo apt-get install make -y
sudo apt-get install pkg-config -y
sudo apt-get install cmake -y
sudo apt-get install ninja-build -y
sudo apt-get install gnome-desktop-testing -y
sudo apt-get install libasound2-dev -y
sudo apt-get install libpulse-dev -y
sudo apt-get install libaudio-dev -y
sudo apt-get install libfribidi-dev -y
sudo apt-get install libjack-dev -y
sudo apt-get install libsndio-dev -y
sudo apt-get install libx11-dev -y
sudo apt-get install libxext-dev -y
sudo apt-get install libxrandr-dev -y
sudo apt-get install libxcursor-dev -y
sudo apt-get install libxfixes-dev -y
sudo apt-get install libxi-dev -y
sudo apt-get install libxss-dev -y
sudo apt-get install libxtst-dev -y
sudo apt-get install libxkbcommon-dev -y
sudo apt-get install libdrm-dev -y
sudo apt-get install libgbm-dev -y
sudo apt-get install libgl1-mesa-dev -y
sudo apt-get install libgles2-mesa-dev -y
sudo apt-get install libegl1-mesa-dev -y
sudo apt-get install libdbus-1-dev -y
sudo apt-get install libibus-1.0-dev -y
sudo apt-get install libudev-dev -y
sudo apt-get install libthai-dev -y
sudo apt-get install libusb-1.0-0-dev -y

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- name: vcpkg build
id: vcpkg
uses: johnwason/vcpkg-action@v8
with:
manifest-dir: ${{ github.workspace }}
triplet: ${{ matrix.vcpkg_triplet }}
token: ${{ github.token }}

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DBUILD_UI=${{ matrix.ui }}
-S ${{ github.workspace }}

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}

#- name: Upload
# uses: actions/upload-artifact@v4
# with:
# name: DisasterServer-${{ matrix.os }}-${{ matrix.c_compiler }}-ui-${{ matrix.ui }}
# path: |
# ${{ steps.strings.outputs.build-output-dir }}/disasterserver/DisasterServer
# ${{ steps.strings.outputs.build-output-dir }}/disasterserver/Release/DisasterServer.exe
# retention-days: 7
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "thirdparty/SDL_image"]
path = thirdparty/SDL_image
url = https://github.com/MilesGlitch/SDL_image.git
[submodule "thirdparty/toml11"]
path = thirdparty/toml11
url = https://github.com/ToruNiina/toml11.git
38 changes: 31 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,32 @@
cmake_minimum_required(VERSION 3.16.3)
project(DisasterServer C)
cmake_minimum_required(VERSION 3.30)
project(DisasterServer CXX C)

if (POLICY CMP0141)
cmake_policy(SET CMP0141 NEW)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()
include(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)

set(CMAKE_CXX_STANDARD 23)
set(CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)

option(DYLIB "Builds dynamic library" OFF)
option(BUILD_UI "Builds UI using SDL" OFF)

if(IS_BIG_ENDIAN)
add_compile_definitions(SYS_BIG_ENDIAN)
endif()

if(DYLIB)
add_compile_definitions(SYS_DYLIB)
endif()

if(BUILD_UI)
add_compile_definitions(SYS_USE_SDL2)
endif()

if(ANDROID)
add_compile_definitions(SYS_ANDROID)
endif()

if (BUILD_UI)
set(BUILD_SHARED_LIBS OFF)
set(SDL_STATIC ON)
Expand Down Expand Up @@ -45,5 +63,11 @@ if (BUILD_UI)
endif ()

add_subdirectory(thirdparty/enet)
add_subdirectory(thirdparty/cjson)
add_subdirectory(thirdparty/toml11)

add_subdirectory(disasterserver_c/)

find_package(Boost REQUIRED COMPONENTS bind algorithm)

add_subdirectory(disasterserver/)
add_subdirectory(disasterserver)
Loading