Compare commits

...
60 Commits
Author SHA1 Message Date
OM 92f4667dcf Incremented version number 2023-06-24 00:18:21 +02:00
OM cf61b9e300 Compile for both AA and BT 2023-06-24 00:04:48 +02:00
OM 1ee8463ff5 Arithmetic operations fixes 2023-06-22 18:32:15 +02:00
OM 3cc1e89b45 Tiny fixes related to bad printf formatting and sizes 2023-06-21 21:01:37 +02:00
smallmodel ae054364cc Merge branch 'openmoh:main' into main 2023-06-21 18:35:11 +02:00
smallmodel abe6b5ce31 Create codeql.yml 2023-06-21 18:17:56 +02:00
OM ba489a6412 Replaced %error-verbose with %define parse.error verbose 2023-06-20 21:17:18 +02:00
OM cdf8cc4ce4 Removed containers section, use existing package instead to gain more time 2023-06-20 20:50:39 +02:00
OM a3d76e11a1 Removed %z and use UTC instead 2023-06-20 19:37:04 +02:00
OM 3369296a02 Fixed git not being used for checking out
Added --log-level verbosity
2023-06-20 19:20:59 +02:00
OM dc5aeeb4b2 Using --parallel instead of specifying number of jobs 2023-06-20 19:08:52 +02:00
OM c0e34432bf Added more verbosity 2023-06-20 19:03:29 +02:00
OM 53bae86d6c Fixed version working directory 2023-06-20 18:56:50 +02:00
OM 3fb2efa344 Added comments 2023-06-20 18:49:21 +02:00
OM 85b4e03295 Added GIT_REVISION_BUILD_NUMBER 2023-06-20 18:43:04 +02:00
OM 0c13a22c60 Fixed product date 2023-06-20 18:42:53 +02:00
OM b1f3d9379b Updated version semantics 2023-06-20 18:33:29 +02:00
OM d82eb25487 Use q_version.h 2023-06-19 23:34:12 +02:00
OM c9577629d2 Added versioning system 2023-06-19 23:33:59 +02:00
OM 19b4ba5db0 Moved version stuff to q_version.h 2023-06-19 19:57:50 +02:00
OM f7e18fe7c1 Updated version number 2023-06-18 19:11:37 +02:00
OM ed330e63fe Commented out unused gamespy libraries 2023-06-18 19:11:05 +02:00
OM 6840ed21c4 Added i686/arm/aarch64 linux architectures, and windows arm64 architecture 2023-06-18 19:01:46 +02:00
OM 35e1813c6e Fixed ARM on Windows 2023-06-18 18:23:57 +02:00
OM 281fa4a844 Windows: uses installed SDL first 2023-06-18 18:23:40 +02:00
OM 240ff8a5f3 Added dummy.c file for older versions of CMake 2023-06-18 12:52:19 +02:00
OM ff2bc55c4a Added C_ONLY def so ASM code never gets compiled 2023-06-18 12:18:27 +02:00
OM ca11cdb54e Fixed CMakeLists (tested with CMake 3.10) 2023-06-18 12:18:10 +02:00
OM 8d2f9f9fb6 Added libsdl2-dev 2023-06-18 03:31:26 +02:00
OM de0a68ef90 Moved 18.04-i386 to i386 folder 2023-06-18 03:13:56 +02:00
OM ceea7cb192 Added i386 2023-06-18 03:10:06 +02:00
OM b96814d759 Updated names 2023-06-18 02:53:01 +02:00
OM baa67f7095 Removed BoxOnPlaneSide ASM version 2023-06-18 02:34:32 +02:00
OM c8e0ef48c1 Combined deploy_linux and deploy_windows 2023-06-18 00:49:14 +02:00
OM 7db1d844e3 Added status badge 2023-06-18 00:38:23 +02:00
OM d7afc35ea1 Added GitHub Actions 2023-06-18 00:38:10 +02:00
OM 4a4f1bcb62 Prevent .lib files from being exported 2023-06-17 20:16:00 +02:00
OM c8f25c5a03 Small fixes 2023-06-17 17:00:17 +02:00
OM 147851c506 Moved flex/bison generated files to subfolder "generated"
Added FLEX/BISON cmake generation
2023-06-17 16:54:12 +02:00
OM 04c7565281 Fixed a few warnings 2023-06-17 02:27:12 +02:00
Zack Middleton 570e53d9fb Fix macOS client/server failing to start from terminal
The macOS client and server were completely unusable when run from a
terminal. They blocked forever in `[NSApp run];` which was called by
Sys_InitProtocolHandler(). `applicationDidFinishLaunching` was never
called to exit the NSApp run loop.

Use SDL's SDL_DROPFILE event to receive URLs to handle on macOS instead.
This also handles URLs while the game is running (connect to new server)
instead of nothing happening when clicking a link while the game is
running.
2023-06-17 02:19:29 +02:00
OM d19b91263f Cast to float 2023-06-17 02:09:56 +02:00
OM 6a6d472658 Moved lib importation (wsock, threads, etc) to syslib 2023-06-17 02:09:50 +02:00
OM 7830a02068 Removed bg_lib (useless) 2023-06-17 02:09:11 +02:00
OM 5b97245dd1 Reworked CMakeLists 2023-06-17 01:44:38 +02:00
OM ba881b768d Added _LINUX define for gamespy 2023-06-17 01:43:42 +02:00
OM c287638f99 Reworked file inclusion (using relative path) 2023-06-17 01:24:20 +02:00
OM 2ac8f3e39d Removed game.cpp/level.cpp from server folder as they were useless 2023-06-17 01:23:52 +02:00
OM d4714babd2 Added ubuntu 22.10 2023-06-17 00:10:06 +02:00
OM e4fa0fff3a Renamed **game** to **fgame** 2023-06-15 23:44:02 +02:00
OM 55c0366382 Fixed FFA scoreboard 2023-06-11 13:03:14 +02:00
OM 0c8af97818 Increased *DEF_COMSOUNDMEGS* to 16
Fatal error out if no sound was freed
2023-06-11 12:49:19 +02:00
OM d2146807fd S_FreeOldestSound: returns *qfalse* if the sound wasn't freed 2023-06-11 12:48:39 +02:00
OM 425406bf94 Safe NULL m_spawnthing check 2023-06-11 12:41:34 +02:00
OM e28563a7f4 Assert on debug builds 2023-06-11 12:41:02 +02:00
OM a46fd50654 Set S_COLOR to empty strings 2023-05-31 20:16:45 +02:00
OM 8e04842a0b Added stuff from ioq3 2023-05-31 19:55:37 +02:00
OM 50a625239a Adding CVAR_PROTECTED flags for fs_basepath 2023-05-31 19:41:21 +02:00
OM b1dc544c5e export Q_isanumber and Q_isintegral 2023-05-31 19:40:36 +02:00
OM c79fd4b35b Set DEFAULT_BASEDIR to NULL to use cwd instead 2023-05-31 19:40:19 +02:00
345 changed files with 5482 additions and 6872 deletions

No files matched your search

+222
View File
@@ -0,0 +1,222 @@
name: Build
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_call:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: RelWithDebInfo
jobs:
build-platform-linux:
strategy:
matrix:
architecture: [
{name: 'amd64', triple: 'x86_64-linux-gnu'},
{name: 'i686', triple: 'i686-linux-gnu'},
{name: 'aarch64', triple: 'aarch64-linux-gnu'},
{name: 'armhf', triple: 'arm-linux-gnueabihf'}
]
name: "Building for platform linux-${{matrix.architecture.name}}"
runs-on: ubuntu-22.04
# container:
# image: ubuntu:22.04
# volumes:
# - ${{github.workspace}}:${{github.workspace}}
#
# steps:
# - name: Install required packages
# run: apt update && apt install -y clang-15 cmake ninja-build flex bison git
#
# - name: Install required cross-platform packages (${{ matrix.architecture.triple }})
# if: matrix.architecture.name != 'amd64'
# run: apt install -y gcc-12-${{ matrix.architecture.triple }} g++-12-${{ matrix.architecture.triple }}
steps:
- name: Settings
working-directory: ${{github.workspace}}
run: |
echo "CMAKE_BUILD_PARALLEL_LEVEL=$(($(nproc) * 16))" >> $GITHUB_ENV
# echo "CMAKE_GENERATOR=Ninja" >> $GITHUB_ENV
- name: Install required packages
run: |
sudo apt update && sudo apt install -y flex bison
- name: Install required cross-platform packages (${{ matrix.architecture.triple }})
if: matrix.architecture.name != 'amd64'
run: sudo apt install -y gcc-12-${{ matrix.architecture.triple }} g++-12-${{ matrix.architecture.triple }}
- name: Install dependencies
working-directory: ${{github.workspace}}
run: |
echo Using triple: ${{ matrix.architecture.triple }}
mkdir -p thirdparties && cd thirdparties
git clone --depth 1 --single-branch --branch SDL2 https://github.com/libsdl-org/SDL.git
cmake -B SDL-build \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_FLAGS=--target=${{ matrix.architecture.triple }} \
-DCMAKE_CXX_FLAGS=--target=${{ matrix.architecture.triple }} \
-DCMAKE_INSTALL_PREFIX='${{github.workspace}}/thirdparties/SDL-install' \
./SDL
cmake --build SDL-build --config Release
cmake --install SDL-build
- uses: actions/checkout@v3
with:
path: 'source'
- name: CMake Settings
run: |
echo "CMAKE_PARAM=--log-level=VERBOSE \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \
-DCMAKE_INSTALL_PREFIX='${{github.workspace}}/install' \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_FLAGS=--target=${{ matrix.architecture.triple }} \
-DCMAKE_CXX_FLAGS=--target=${{ matrix.architecture.triple }} \
-DGIT_REVISION_BUILD_NUMBER=${{ github.run_number }} \
-DSDL2_DIR='${{github.workspace}}/thirdparties/SDL-install/lib/cmake/SDL2' \
-DWITH_CLIENT=1" >> $GITHUB_ENV
- name: Configure CMake
working-directory: ${{github.workspace}}
run: |
cmake -B ./build ${{ env.CMAKE_PARAM }} -DTARGET_GAME_TYPE=0 ./source
cmake -B ./buildtt ${{ env.CMAKE_PARAM }} -DTARGET_GAME_TYPE=2 ./source
- name: Build
working-directory: ${{github.workspace}}
run: |
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/buildtt --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
cd "${{github.workspace}}/build"
ctest -C ${{env.BUILD_TYPE}}
cd "${{github.workspace}}/buildtt"
ctest -C ${{env.BUILD_TYPE}}
- name: Install
working-directory: ${{github.workspace}}
# Install to the directory defined in CMAKE_INSTALL_PREFIX
run: |
cmake --install ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
cmake --install ${{github.workspace}}/buildtt --config ${{env.BUILD_TYPE}}
cp '${{github.workspace}}/thirdparties/SDL-install/lib/libSDL2.so' '${{github.workspace}}/install'
- uses: actions/upload-artifact@v3
with:
name: out-linux-${{matrix.architecture.name}}
if-no-files-found: error
path:
${{github.workspace}}/install
build-platform-windows:
strategy:
matrix:
architecture: [
{name: 'x64', config: 'x64' },
{name: 'x86', config: 'Win32' },
{name: 'arm64', config: 'ARM64' }
]
name: "Building for platform windows-${{matrix.architecture.name}}"
runs-on: windows-2022
steps:
- name: Settings
working-directory: ${{github.workspace}}
run: |
echo "CMAKE_BUILD_PARALLEL_LEVEL=$((Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors * 16)" >> $GITHUB_ENV
- name: Install required packages
working-directory: ${{github.workspace}}
run: |
mkdir thirdparties && cd thirdparties
git clone --depth 1 --single-branch --branch SDL2 https://github.com/libsdl-org/SDL.git
cmake -B SDL-build -A ${{ matrix.architecture.config }} -DCMAKE_INSTALL_PREFIX='${{github.workspace}}/thirdparties/SDL-install' ./SDL
cmake --build SDL-build --config Release --parallel
cmake --install SDL-build
git clone --depth 1 --single-branch --branch v2.5.25 https://github.com/lexxmark/winflexbison.git
cmake -B winflexbison-build -DCMAKE_INSTALL_PREFIX='${{github.workspace}}/thirdparties/winflexbison-install' ./winflexbison
cmake --build winflexbison-build --config Release --parallel
cmake --install winflexbison-build
- uses: actions/checkout@v3
with:
path: 'source'
- name: CMake Settings
run: |
echo "CMAKE_PARAM=-A ${{ matrix.architecture.config }} `
--log-level=VERBOSE `
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} `
-DCMAKE_INSTALL_PREFIX='${{github.workspace}}/install' `
-DCMAKE_C_COMPILER=clang `
-DCMAKE_CXX_COMPILER=clang++ `
-DGIT_REVISION_BUILD_NUMBER=${{ github.run_number }} `
-DSDL2_DIR='${{github.workspace}}/thirdparties/SDL-install/cmake' `
-DBISON_EXECUTABLE='${{github.workspace}}/thirdparties/winflexbison-install/win_bison.exe' `
-DFLEX_EXECUTABLE='${{github.workspace}}/thirdparties/winflexbison-install/win_flex.exe' `
-DWITH_CLIENT=1".Replace("`r", "").Replace("`n", "") >> $env:GITHUB_ENV
- name: Configure CMake
working-directory: ${{github.workspace}}
run: |
cmake -B ./build ${{ env.CMAKE_PARAM }} -DTARGET_GAME_TYPE=0 ./source
cmake -B ./buildtt ${{ env.CMAKE_PARAM }} -DTARGET_GAME_TYPE=2 ./source
- name: Build
working-directory: ${{github.workspace}}
run: |
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
cmake --build ${{github.workspace}}/buildtt --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
cd "${{github.workspace}}/build"
ctest -C ${{env.BUILD_TYPE}}
cd "${{github.workspace}}/buildtt"
ctest -C ${{env.BUILD_TYPE}}
- name: Install
working-directory: ${{github.workspace}}
# Install to the directory defined in CMAKE_INSTALL_PREFIX
run: |
cmake --install ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
cmake --install ${{github.workspace}}/buildtt --config ${{env.BUILD_TYPE}}
Copy-Item "${{github.workspace}}/thirdparties/SDL-install/bin/*.dll" -Destination "${{github.workspace}}/install"
- uses: actions/upload-artifact@v3
with:
name: out-windows-${{matrix.architecture.name}}
if-no-files-found: error
path: |
${{github.workspace}}/install
!${{github.workspace}}/install/**/*.pdb
- uses: actions/upload-artifact@v3
with:
name: out-windows-${{matrix.architecture.name}}-pdb
if-no-files-found: error
path: |
${{github.workspace}}/install
+77
View File
@@ -0,0 +1,77 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '42 8 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
+57
View File
@@ -0,0 +1,57 @@
name: Publish artifacts
on:
push:
tags:
- "v*.*.*"
env:
RELEASE_TYPE: ${{ vars.RELEASE_TYPE || 'test' }}
RELEASE_IS_PRERELEASE: ${{ vars.RELEASE_IS_PRELEASE }}
permissions:
contents: write
jobs:
build-all:
uses: ./.github/workflows/build-cmake.yml
deploy_all:
strategy:
matrix:
target_os: [
'linux-amd64',
'linux-i686',
'linux-aarch64',
'linux-armhf',
'windows-x64',
'windows-x86',
'windows-x64-pdb',
'windows-x86-pdb',
'windows-arm64',
'windows-arm64-pdb'
]
runs-on: ubuntu-22.04
environment: release
needs: [build-all]
env:
RELEASE_NAME: ${{ github.event.repository.name }}-${{github.ref_name}}-${{matrix.target_os}}
steps:
- uses: actions/download-artifact@v3
with:
name: 'out-${{matrix.target_os}}'
path: ${{github.workspace}}/${{matrix.target_os}}
- name: Zip
working-directory: ${{github.workspace}}/${{matrix.target_os}}
run: zip -r ../${{ env.RELEASE_NAME }}.zip ./
- name: Release
uses: softprops/action-gh-release@v1
with:
name: '${{github.ref_name}}-${{env.RELEASE_TYPE}}'
prerelease: ${{env.RELEASE_IS_PRERELEASE}}
files: ${{github.workspace}}/${{ env.RELEASE_NAME }}.zip
+26 -225
View File
@@ -64,205 +64,57 @@ ENDIF()
# Common stuff
## For modules
add_subdirectory("code/qcommon")
add_subdirectory("code/gamespy")
set(SOURCES_SHARED
"code/qcommon/class.cpp"
"code/qcommon/con_set.cpp"
"code/qcommon/con_timer.cpp"
"code/qcommon/listener.cpp"
"code/qcommon/lz77.cpp"
"code/qcommon/mem_blockalloc.cpp"
"code/qcommon/mem_tempalloc.cpp"
"code/qcommon/q_math.c"
"code/qcommon/q_shared.c"
"code/qcommon/script.cpp"
"code/qcommon/str.cpp"
"code/script/scriptexception.cpp"
"code/script/scriptvariable.cpp"
)
# Application
file(GLOB_RECURSE SOURCES_BG "code/game/bg_*.cpp")
add_subdirectory("code/sys")
## For executable
## Server app
add_subdirectory("code/server")
### Platform-specific code
if(WIN32)
set(SOURCES_PLATFORM_SPECIFIC
#WIN32
"code/sys/con_log.c"
"code/sys/sys_autoupdater.c"
"code/sys/sys_main.c"
"code/sys/new/sys_main_new.c"
"code/sys/new/sys_win32_new.c"
"code/sys/con_win32.c"
"code/sys/sys_win32.c"
"code/sys/win_resource.rc"
# These are still used even they're prefixed 'win'
"code/sys/win_bounds.cpp"
"code/sys/win_localization.cpp"
)
set(SOURCES_CLIENT_PLATFORM_SPECIFIC "")
else()
set(SOURCES_PLATFORM_SPECIFIC
"code/sys/con_log.c"
"code/sys/sys_autoupdater.c"
"code/sys/sys_main.c"
"code/sys/new/sys_main_new.c"
"code/sys/new/sys_unix_new.c"
"code/sys/con_tty.c"
"code/sys/sys_unix.c"
# These are still used even they're prefixed 'win'
"code/sys/win_bounds.cpp"
"code/sys/win_localization.cpp"
)
set(SOURCES_CLIENT_PLATFORM_SPECIFIC "")
endif()
### Common executable code
set(SOURCES_COMMON
"code/qcommon/alias.c"
"code/qcommon/cm_fencemask.c"
"code/qcommon/cm_load.c"
"code/qcommon/cm_patch.c"
"code/qcommon/cm_polylib.c"
"code/qcommon/cm_terrain.c"
"code/qcommon/cm_test.c"
"code/qcommon/cm_trace.c"
"code/qcommon/cm_trace_lbd.cpp"
"code/qcommon/cmd.c"
"code/qcommon/common.cpp"
"code/qcommon/crc.c"
"code/qcommon/cvar.c"
"code/qcommon/files.cpp"
"code/qcommon/huffman.cpp"
"code/qcommon/md4.c"
"code/qcommon/md5.c"
"code/qcommon/memory.c"
"code/qcommon/msg.cpp"
"code/qcommon/net_chan.c"
"code/qcommon/net_ip.c"
"code/qcommon/q_math.c"
"code/qcommon/q_shared.c"
"code/qcommon/tiki_main.cpp"
"code/qcommon/tiki_script.cpp"
"code/qcommon/unzip.c"
# Gamespy
"code/gamespy/sv_gamespy.c"
"code/gamespy/sv_gqueryreporting.c"
)
file(GLOB_RECURSE SOURCES_SKEL "code/tiki/*.cpp" "code/skeletor/*.cpp")
set(SOURCES_APP ${SOURCES_SHARED} ${SOURCES_COMMON} ${SOURCES_SKEL})
# Targets
## Server
### Server game library
file(GLOB_RECURSE SOURCES_GAME "code/game/*.c" "code/game/*.cpp" "code/parser/*.cpp" "code/script/*.cpp")
set(SOURCES_GAME_LIB ${SOURCES_SHARED} ${SOURCES_GAME})
add_library(fgame SHARED ${SOURCES_GAME_LIB})
target_compile_definitions(fgame PRIVATE GAME_DLL WITH_SCRIPT_ENGINE ARCHIVE_SUPPORTED TARGET_GAME_TYPE=${TARGET_GAME_TYPE})
target_include_directories(fgame PUBLIC "code/qcommon" "code/script" "code/game")
target_include_directories(fgame PRIVATE "code/parser")
target_compile_features(fgame PUBLIC cxx_nullptr)
target_compile_features(fgame PUBLIC c_variadic_macros)
set_target_properties(fgame PROPERTIES PREFIX "${TARGET_PLATFORM_PREFIX}")
set_target_properties(fgame PROPERTIES OUTPUT_NAME "game${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
set_target_properties(fgame PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TARGET_BASE_GAME}")
INSTALL(TARGETS fgame DESTINATION "${TARGET_BASE_GAME}")
include("code/gamespy/gcd.cmake")
### Server executable
file(GLOB_RECURSE SOURCES_SERVER "code/server/*.c" "code/server/*.cpp")
set(SOURCES_SERVER_APP ${SOURCES_APP} ${SOURCES_SERVER})
add_executable(omohaaded ${SOURCES_PLATFORM_SPECIFIC} ${SOURCES_SERVER_APP} "code/null/null_client.c" "code/null/null_input.c" "code/null/null_snddma.c")
target_compile_definitions(omohaaded PRIVATE APP_MODULE DEDICATED TARGET_GAME_TYPE=${TARGET_GAME_TYPE})
add_executable(omohaaded "code/null/null_client.c" "code/null/null_input.c" "code/null/null_snddma.c")
target_compile_definitions(omohaaded PRIVATE APP_MODULE DEDICATED)
target_compile_features(omohaaded PUBLIC cxx_nullptr)
target_compile_features(omohaaded PUBLIC c_variadic_macros)
target_link_libraries(omohaaded PRIVATE omohserver)
target_link_libraries(omohaaded PRIVATE syslib)
target_link_libraries(omohaaded PRIVATE qcommon qcommon_standalone)
# Gamespy dependency
add_dependencies(omohaaded gcd)
target_link_libraries(omohaaded PRIVATE gcd)
target_include_directories(omohaaded PUBLIC "code/qcommon" "code/script" "code/gamespy" "code/server" "code/SDL2/include")
target_include_directories(omohaaded PUBLIC "code/qcommon" "code/script" "code/gamespy" "code/server")
set_target_properties(omohaaded PROPERTIES OUTPUT_NAME "omohaaded${TARGET_BASE_SUFFIX}${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
if(WIN32)
if (MSVC)
target_link_options(omohaaded PRIVATE "/MANIFEST:NO")
endif()
target_link_libraries(omohaaded PRIVATE wsock32 ws2_32)
target_link_libraries(omohaaded PRIVATE winmm)
INSTALL(FILES $<TARGET_PDB_FILE:fgame> DESTINATION "${TARGET_BASE_GAME}" OPTIONAL)
if (MSVC)
target_link_options(omohaaded PRIVATE "/MANIFEST:NO")
INSTALL(FILES $<TARGET_PDB_FILE:omohaaded> DESTINATION "./" OPTIONAL)
elseif(UNIX)
find_package(Threads)
target_link_libraries(omohaaded PRIVATE ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
target_link_libraries(omohaaded PRIVATE m)
target_link_libraries(omohaaded PRIVATE stdc++)
endif()
INSTALL(TARGETS omohaaded DESTINATION "./")
if (WITH_CLIENT)
## Client
## Client app
### Client game library
file(GLOB_RECURSE SOURCES_CGAME "code/cgame/*.c" "code/cgame/*.cpp")
set(SOURCES_CGAME_LIB ${SOURCES_SHARED} ${SOURCES_CGAME} ${SOURCES_BG})
add_library(cgame SHARED ${SOURCES_CGAME_LIB})
target_compile_definitions(cgame PRIVATE CGAME_DLL TARGET_GAME_TYPE=${TARGET_GAME_TYPE})
target_include_directories(cgame PUBLIC "code/qcommon" "code/cgame" "code/script")
target_compile_features(cgame PUBLIC cxx_nullptr)
target_compile_features(cgame PUBLIC c_variadic_macros)
set_target_properties(cgame PROPERTIES PREFIX "${TARGET_PLATFORM_PREFIX}")
set_target_properties(cgame PROPERTIES OUTPUT_NAME "cgame${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
set_target_properties(cgame PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TARGET_BASE_GAME}")
INSTALL(TARGETS cgame DESTINATION "${TARGET_BASE_GAME}")
### Executable
file(GLOB_RECURSE SOURCES_JPEG_8 "code/jpeg-8c/*.c")
add_library(jpeg8 STATIC ${SOURCES_JPEG_8})
target_include_directories(jpeg8 PRIVATE "code/jpeg-8c")
file(GLOB_RECURSE SOURCES_CLIENT "code/client/*.c" "code/client/*.cpp" "code/qcommon/puff.c")
file(GLOB_RECURSE SOURCES_UILIB "code/uilib/*.c" "code/uilib/*.cpp")
file(GLOB_RECURSE SOURCES_RENDERER "code/sdl/*.c" "code/renderer/*.c" "code/renderer/*.cpp")
add_subdirectory("code/renderer")
add_subdirectory("code/sdl")
add_subdirectory("code/client")
#include("code/renderergl2/glsl/shaders.cmake")
#file(GLOB_RECURSE SOURCES_RENDERER "code/sdl/*.c" "code/renderercommon/*.c" "code/renderergl2/*.c" "code/renderergl2/*.cpp")
#list(FILTER SOURCES_RENDERER EXCLUDE REGEX "code/renderergl2/tr_subs.c")
#list(FILTER SOURCES_RENDERER EXCLUDE REGEX "code/renderergl2/tr_model.c")
set(SOURCES_CLIENT_APP ${SOURCES_APP} ${SOURCES_SERVER} ${SOURCES_CLIENT} ${SOURCES_UILIB} ${SOURCES_LIBS} ${SOURCES_RENDERER} ${SHADER_SRCS})
add_executable(openmohaa "misc/dummy.c")
target_link_libraries(openmohaa PRIVATE syslib)
target_link_libraries(openmohaa PRIVATE omohserver)
target_link_libraries(openmohaa PRIVATE omohclient)
target_link_libraries(openmohaa PRIVATE omohrenderer omohsdl)
target_link_libraries(openmohaa PRIVATE qcommon qcommon_standalone)
add_executable(openmohaa ${SOURCES_PLATFORM_SPECIFIC} ${SOURCES_CLIENT_APP} ${SOURCES_CLIENT_PLATFORM_SPECIFIC})
target_compile_definitions(openmohaa PRIVATE APP_MODULE TARGET_GAME_TYPE=${TARGET_GAME_TYPE})
target_compile_definitions(openmohaa PRIVATE USE_CODEC_MP3)
target_compile_features(openmohaa PUBLIC cxx_nullptr)
target_compile_features(openmohaa PUBLIC c_variadic_macros)
### Gamespy dependency
add_dependencies(openmohaa gcd)
target_link_libraries(openmohaa PRIVATE gcd)
target_include_directories(openmohaa PUBLIC "code/qcommon" "code/script" "code/gamespy" "code/server" "code/client" "code/uilib" "code/jpeg-8c")
set_target_properties(openmohaa PROPERTIES OUTPUT_NAME "openmohaa${TARGET_BASE_SUFFIX}${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
### Third-parties
add_subdirectory("code/libmad-0.15.1b")
target_link_libraries(openmohaa PRIVATE libmad)
target_include_directories(openmohaa PRIVATE "code/libmad-0.15.1b")
target_link_libraries(openmohaa PRIVATE jpeg8)
if (USE_OPENAL)
# Try to use OpenAL
@@ -274,60 +126,9 @@ if (WITH_CLIENT)
endif()
endif()
if(WIN32)
target_include_directories(openmohaa PUBLIC "code/SDL2/include-2.0.22")
if (MSVC)
target_link_options(openmohaa PRIVATE "/MANIFEST:NO")
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
add_library(sdl2 SHARED IMPORTED)
set_target_properties(sdl2 PROPERTIES
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win64/SDL264.lib"
)
add_library(sdl2main SHARED IMPORTED)
set_target_properties(sdl2main PROPERTIES
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win64/SDL264main.lib"
)
else()
add_library(sdl2 SHARED IMPORTED)
set_target_properties(sdl2 PROPERTIES
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win32/SDL2.lib"
)
add_library(sdl2main SHARED IMPORTED)
set_target_properties(sdl2main PROPERTIES
IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/code/libs/win32/SDL2main.lib"
)
endif()
target_link_libraries(openmohaa PRIVATE sdl2 sdl2main)
endif()
target_link_libraries(openmohaa PRIVATE wsock32 ws2_32)
target_link_libraries(openmohaa PRIVATE winmm)
INSTALL(FILES $<TARGET_PDB_FILE:cgame> DESTINATION "${TARGET_BASE_GAME}" OPTIONAL)
if (MSVC)
target_link_options(openmohaa PRIVATE "/MANIFEST:NO")
INSTALL(FILES $<TARGET_PDB_FILE:openmohaa> DESTINATION "./" OPTIONAL)
elseif(UNIX)
find_package(Threads)
target_link_libraries(openmohaa PRIVATE m rt)
target_link_libraries(openmohaa PRIVATE stdc++)
target_link_libraries(openmohaa PRIVATE ${CMAKE_THREAD_LIBS_INIT})
find_package(SDL2 REQUIRED)
target_include_directories(openmohaa PUBLIC ${SDL2_INCLUDE_DIRS})
target_link_libraries(openmohaa PRIVATE ${SDL2_LIBRARIES})
#find_package(OpenGL REQUIRED)
#find_package(GLUT REQUIRED)
#find_package(X11 REQUIRED)
#find_package(SDL2 REQUIRED)
#target_include_directories(openmohaa PRIVATE ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS})
#target_link_libraries(openmohaa PRIVATE ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
#target_link_libraries(openmohaa PRIVATE ${X11_LIBRARIES} ${X11_Xxf86vm_LIB} ${X11_Xext_LIB} Xxf86dga)
endif()
INSTALL(TARGETS openmohaa DESTINATION "./")
+2
View File
@@ -14,6 +14,8 @@
## Current State
[![Build](https://github.com/openmoh/openmohaa/actions/workflows/build-cmake.yml/badge.svg)](https://github.com/openmoh/openmohaa/actions/workflows/build-cmake.yml)
OpenMoHAA is still in its early days.
### Server
+2 -2
View File
@@ -17,9 +17,9 @@ set(archdetect_c_code "
#error cmake_ARCH alpha
#elif defined __sparc__
#error cmake_ARCH sparc
#elif defined __arm__
#elif defined __arm__ || defined (_M_ARM)
#error cmake_ARCH arm
#elif defined(__aarch64__) || defined(__ARM64__)
#elif defined(__aarch64__) || defined(__ARM64__) || defined(_M_ARM64)
#error cmake_ARCH aarch64
#elif defined __cris__
#error cmake_ARCH cris
+42
View File
@@ -0,0 +1,42 @@
cmake_minimum_required(VERSION 3.5)
project(fgame)
# Shared source files for modules
set(SOURCES_SHARED
"../qcommon/class.cpp"
"../qcommon/con_set.cpp"
"../qcommon/con_timer.cpp"
"../qcommon/listener.cpp"
"../qcommon/lz77.cpp"
"../qcommon/mem_blockalloc.cpp"
"../qcommon/mem_tempalloc.cpp"
"../qcommon/q_math.c"
"../qcommon/q_shared.c"
"../qcommon/script.cpp"
"../qcommon/str.cpp"
"../script/scriptexception.cpp"
"../script/scriptvariable.cpp"
)
file(GLOB_RECURSE SOURCES_BG "../fgame/bg_*.cpp")
file(GLOB_RECURSE SOURCES_CGAME "./*.c" "./*.cpp")
add_library(cgame SHARED ${SOURCES_CGAME} ${SOURCES_BG})
target_compile_definitions(cgame PRIVATE CGAME_DLL TARGET_GAME_TYPE=${TARGET_GAME_TYPE})
target_compile_features(cgame PUBLIC cxx_nullptr)
target_compile_features(cgame PUBLIC c_variadic_macros)
target_link_libraries(cgame PUBLIC qcommon)
set_target_properties(cgame PROPERTIES PREFIX "${TARGET_PLATFORM_PREFIX}")
set_target_properties(cgame PROPERTIES OUTPUT_NAME "cgame${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
set_target_properties(cgame PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TARGET_BASE_GAME}")
INSTALL(
TARGETS cgame
DESTINATION "${TARGET_BASE_GAME}"
ARCHIVE EXCLUDE_FROM_ALL
)
if(MSVC)
INSTALL(FILES $<TARGET_PDB_FILE:cgame> DESTINATION "${TARGET_BASE_GAME}" OPTIONAL)
endif()
+3 -2
View File
@@ -4438,9 +4438,10 @@ void ClientGameCommandManager::OriginDynamicLight(Event* ev)
// DynamicLight
//===============
void ClientGameCommandManager::DynamicLight(Event* ev)
{
str tagname;
if (!m_spawnthing) {
return;
}
// The emitter itself has a dynamic light
m_spawnthing->cgd.flags |= T_DLIGHT;
+1 -1
View File
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "q_shared.h"
#include "tr_types.h"
#include "../game/bg_public.h"
#include "../fgame/bg_public.h"
#include "cm_public.h"
#include "cg_public.h"
+1 -1
View File
@@ -358,7 +358,7 @@ void CG_ParseScores()
}
else
{
iClientNum = atoi(cgi.Argv(iDatumCount * i));
iClientNum = atoi(cgi.Argv(iCurrentEntry + iDatumCount * i));
if (iClientNum >= 0)
{
strcpy(szString2, va("%i", iClientNum));
+7 -7
View File
@@ -643,9 +643,9 @@ qboolean VSS_SourcePhysics(cvssource_t* pSource, float ftime)
{
for (i = 0; i < 3; ++i)
{
pSource->newColor[i] -= ftime * 0.05 * pSource->fadeMult;
if (pSource->newColor[i] < 0.0) {
pSource->newColor[i] = 0.0;
pSource->newColor[i] -= ftime * 0.05f * pSource->fadeMult;
if (pSource->newColor[i] < 0.0f) {
pSource->newColor[i] = 0.0f;
}
}
}
@@ -653,11 +653,11 @@ qboolean VSS_SourcePhysics(cvssource_t* pSource, float ftime)
{
for (i = 0; i < 3; ++i)
{
if (pSource->newColor[i] < 0.9)
if (pSource->newColor[i] < 0.9f)
{
pSource->newColor[i] += ftime * 0.02 * pSource->fadeMult;
if (pSource->newColor[i] > 0.9) {
pSource->newColor[i] = 0.9;
pSource->newColor[i] += ftime * 0.02f * pSource->fadeMult;
if (pSource->newColor[i] > 0.9f) {
pSource->newColor[i] = 0.9f;
}
}
}
+23
View File
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.5)
project(omohclient)
add_subdirectory("../cgame" "./cgame")
file(GLOB_RECURSE SOURCES_CLIENT "./*.c*")
file(GLOB_RECURSE SOURCES_UILIB "../uilib/*.c*")
# Made as an interface and not static, as static only links used methods
add_library(omohclient INTERFACE)
target_sources(omohclient INTERFACE ${SOURCES_CLIENT} ${SOURCES_UILIB})
target_compile_definitions(omohclient INTERFACE APP_MODULE)
target_compile_features(omohclient INTERFACE cxx_nullptr)
target_compile_features(omohclient INTERFACE c_variadic_macros)
target_link_libraries(omohclient INTERFACE omohsdl)
target_link_libraries(omohclient INTERFACE gcd)
# Sound stuff
target_compile_definitions(omohclient INTERFACE USE_CODEC_MP3)
add_subdirectory("../libmad-0.15.1b" "./libmad")
target_link_libraries(omohclient INTERFACE libmad)
target_include_directories(omohclient INTERFACE "../libmad-0.15.1b")
+3 -3
View File
@@ -23,8 +23,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "client.h"
#include "cl_ui.h"
#include "tiki.h"
#include <localization.h>
#include "../qcommon/tiki.h"
#include "../qcommon/localization.h"
extern qboolean loadCamera(const char *name);
extern void startCamera(int time);
@@ -295,7 +295,7 @@ void CL_ConfigstringModified( void ) {
int i, index;
char *dup;
gameState_t oldGs;
int len;
size_t len;
index = atoi( Cmd_Argv(1) );
if ( index < 0 || index >= MAX_CONFIGSTRINGS ) {
+1 -1
View File
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
// cl_consolecmds.cpp : New client console commands.
#include "client.h"
#include "listener.h"
#include "../qcommon/listener.h"
/*
===============
+6 -5
View File
@@ -22,17 +22,18 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
// cl_main.c -- client main loop
#include "client.h"
#include "server.h"
#include "../server/server.h"
#include "cl_ui.h"
#include "tiki.h"
#include <cm_terrain.h>
#include "../qcommon/tiki.h"
#include "../qcommon/cm_terrain.h"
#include "../sys/sys_local.h"
#include <limits.h>
#ifdef USE_RENDERER_DLL
#include "../sys/sys_loadlib.h"
#endif
#include "gcdkeyc.h"
#include "../gamespy/gcdkey/gcdkeyc.h"
#include <climits>
cvar_t *cl_nodelta;
cvar_t *cl_debugMove;
+6 -5
View File
@@ -23,9 +23,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "client.h"
#include "../server/server.h"
#include "../renderer/tr_public.h"
#include "tiki.h"
#include <localization.h>
#include "../renderercommon/tr_public.h"
#include "../qcommon/tiki.h"
#include "../qcommon/localization.h"
#include "../qcommon/q_version.h"
#include "cl_ui.h"
@@ -1122,10 +1123,10 @@ getNewConsole
====================
*/
UIFloatingConsole* getNewConsole() {
static constexpr char CONSOLE_NAME[] = PRODUCT_NAME " console version " PRODUCT_VERSION;
const char* consoleName = va("%s console version %s", PRODUCT_NAME, PRODUCT_VERSION);
UIFloatingConsole* console = new UIFloatingConsole;
console->Create(NULL, getDefaultConsoleRectangle(), CONSOLE_NAME, UWindowColor, UHudColor);
console->Create(NULL, getDefaultConsoleRectangle(), consoleName, UWindowColor, UHudColor);
console->setConsoleHandler(ConsoleCommandHandler);
console->setConsoleBackground(UBlack, 0.8f);
console->setShow(false);
+2 -2
View File
@@ -23,8 +23,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef __CL_UI_H__
#define __CL_UI_H__
#include "ui_extern.h"
#include "uiwidget.h"
#include "../uilib/ui_extern.h"
#include "../uilib/uiwidget.h"
typedef struct {
UIReggedMaterial *loading;
+1 -1
View File
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110EV_DEFAULT301 U
*/
#include "cl_ui.h"
#include <localization.h>
#include "../qcommon/localization.h"
Event EV_Layout_PlayerStat
(
+1 -1
View File
@@ -31,7 +31,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "keys.h"
#include "snd_public.h"
#include "../cgame/cg_public.h"
#include "../game/bg_public.h"
#include "../fgame/bg_public.h"
#ifdef USE_CURL
#include "cl_curl.h"
+3 -1
View File
@@ -39,6 +39,7 @@ extern qboolean chat_team;
extern int chat_playerNum;
#if defined(APP_MODULE)
int Key_StringToKeynum( const char *str );
void Key_WriteBindings( fileHandle_t f );
void Key_SetBinding( int keynum, const char *binding );
@@ -48,7 +49,8 @@ qboolean Key_GetOverstrikeMode( void );
void Key_SetOverstrikeMode( qboolean state );
void Key_ClearStates( void );
int Key_GetKey(const char *binding);
const char *Key_GetKeynameForCommand( const char *command );
const char* Key_GetKeynameForCommand(const char* command);
#endif
#ifdef __cplusplus
+8 -1
View File
@@ -1504,7 +1504,7 @@ S_FreeOldestSound
======================
*/
void S_FreeOldestSound( void ) {
qboolean S_FreeOldestSound( void ) {
int i, oldest, used;
sfx_t *sfx;
sndBuffer *buffer, *nbuffer;
@@ -1520,6 +1520,11 @@ void S_FreeOldestSound( void ) {
}
}
if (!used) {
// can't free anymore
return qfalse;
}
sfx = &s_knownSfx[used];
//Com_DPrintf("S_FreeOldestSound: freeing sound %s\n", sfx->soundName);
@@ -1532,6 +1537,8 @@ void S_FreeOldestSound( void ) {
}
sfx->inMemory = qfalse;
sfx->soundData = NULL;
return qtrue;
}
// =======================================================================
+1 -1
View File
@@ -241,7 +241,7 @@ void S_AdpcmGetSamples(sndBuffer *chunk, short *to);
#define SENTINEL_MULAW_ZERO_RUN 127
#define SENTINEL_MULAW_FOUR_BIT_RUN 126
void S_FreeOldestSound( void );
qboolean S_FreeOldestSound( void );
#define NXStream byte
+9 -6
View File
@@ -32,7 +32,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "snd_local.h"
#include "snd_codec.h"
#define DEF_COMSOUNDMEGS "8"
#define DEF_COMSOUNDMEGS 16
/*
===============================================================================
@@ -59,10 +59,13 @@ void SND_free(sndBuffer *v) {
sndBuffer* SND_malloc(void) {
sndBuffer *v;
redo:
if (freelist == NULL) {
S_FreeOldestSound();
goto redo;
int oldInUse = inUse;
while (!freelist) {
if (!S_FreeOldestSound()) {
Com_Error(ERR_FATAL, "Out of SND allocations. Start the game with an higher com_soundMegs value and try again.");
return NULL;
}
}
inUse -= sizeof(sndBuffer);
@@ -79,7 +82,7 @@ void SND_setup(void) {
cvar_t *cv;
int scs;
cv = Cvar_Get( "com_soundMegs", DEF_COMSOUNDMEGS, CVAR_LATCH | CVAR_ARCHIVE );
cv = Cvar_Get( "com_soundMegs", XSTRING(DEF_COMSOUNDMEGS), CVAR_LATCH | CVAR_ARCHIVE );
scs = (cv->integer*1536);
+1 -1
View File
@@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
#include "ui_local.h"
#include "../uilib/ui_local.h"
UConnection::UConnection()
{
+58
View File
@@ -0,0 +1,58 @@
cmake_minimum_required(VERSION 3.5)
project(fgame)
# Shared source files for modules
set(SOURCES_SHARED
"../qcommon/class.cpp"
"../qcommon/con_set.cpp"
"../qcommon/con_timer.cpp"
"../qcommon/listener.cpp"
"../qcommon/lz77.cpp"
"../qcommon/mem_blockalloc.cpp"
"../qcommon/mem_tempalloc.cpp"
"../qcommon/q_math.c"
"../qcommon/q_shared.c"
"../qcommon/script.cpp"
"../qcommon/str.cpp"
)
file(GLOB_RECURSE SOURCES_GAME "./*.c*" "../parser/*.c*" "../script/*.c*")
add_library(fgame SHARED ${SOURCES_GAME})
find_package(BISON)
find_package(FLEX)
if (FLEX_FOUND)
flex_target(fgame-lexer ${CMAKE_SOURCE_DIR}/code/parser/lex_source.txt ${CMAKE_SOURCE_DIR}/code/parser/generated/yyLexer.cpp DEFINES_FILE ${CMAKE_SOURCE_DIR}/code/parser/generated/yyLexer.h COMPILE_FLAGS "-Cem --nounistd")
endif()
if (BISON_FOUND)
bison_target(fgame-parser ${CMAKE_SOURCE_DIR}/code/parser/bison_source.txt ${CMAKE_SOURCE_DIR}/code/parser/generated/yyParser.cpp)
endif()
if (FLEX_FOUND AND BISON_FOUND)
add_flex_bison_dependency(fgame-lexer fgame-parser)
endif()
file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/code/parser/generated")
target_sources(fgame PRIVATE ${BISON_fgame-parser_OUTPUTS} ${FLEX_fgame-lexer_OUTPUTS})
target_compile_definitions(fgame PRIVATE GAME_DLL WITH_SCRIPT_ENGINE ARCHIVE_SUPPORTED)
target_compile_features(fgame PUBLIC cxx_nullptr)
target_compile_features(fgame PUBLIC c_variadic_macros)
target_link_libraries(fgame PUBLIC qcommon)
set_target_properties(fgame PROPERTIES PREFIX "${TARGET_PLATFORM_PREFIX}")
set_target_properties(fgame PROPERTIES OUTPUT_NAME "game${TARGET_ARCH_SUFFIX}${TARGET_CONFIG_SUFFIX}")
set_target_properties(fgame PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TARGET_BASE_GAME}")
INSTALL(
TARGETS fgame
DESTINATION "${TARGET_BASE_GAME}"
ARCHIVE EXCLUDE_FROM_ALL
)
if(MSVC)
INSTALL(FILES $<TARGET_PDB_FILE:fgame> DESTINATION "${TARGET_BASE_GAME}" OPTIONAL)
endif()
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+161 -162
View File
@@ -44,8 +44,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "g_phys.h"
#include "debuglines.h"
#include "scriptexception.h"
#include <parm.h>
#include <tiki.h>
#include "parm.h"
#include "../qcommon/tiki.h"
#include <cmath>
@@ -4805,7 +4805,7 @@ Vector Actor::CalcThrowVelocity
Vector ret;
Vector vDelta;
float v10; // ST0C_4
long double v11; // fst3
float v11; // fst3
//////
float fGravity;
float fVelHorz;
@@ -7331,7 +7331,7 @@ void Actor::ShowInfo
Vector a = origin;
a.z += maxs.z + 74;
G_DebugString(a, 1.0, 1.0, 1.0, 1065353216, "DISABLED");
G_DebugString(a, 1.0, 1.0, 1.0, 1.0, "DISABLED");
}
{
@@ -7344,7 +7344,7 @@ void Actor::ShowInfo
1.0,
1.0,
1.0,
1065353216,
1.0,
"%i:%i:%s:%.1f",
entnum,
radnum,
@@ -7363,12 +7363,11 @@ void Actor::ShowInfo
1.0,
1.0,
1.0,
1065353216,
1.0,
"%i:%s:%.1f:%i",
m_Enemy->entnum,
m_Enemy->radnum,
m_Enemy->targetname.c_str(),
m_Enemy->health,
m_Enemy->entnum,
m_Enemy->targetname.c_str(),
m_Enemy->health,
m_PotentialEnemies.GetCurrentThreat());
}
@@ -7384,7 +7383,7 @@ void Actor::ShowInfo
1.0,
1.0,
1.0,
1065353216,
1.0,
"%s:%%%.1f",
Director.GetString(m_csThinkStateNames[THINKSTATE_CURIOUS]).c_str(),
m_PotentialEnemies.GetCurrentVisibility() * 100);
@@ -7401,7 +7400,7 @@ void Actor::ShowInfo
1.0,
1.0,
1.0,
1065353216,
1.0,
"%s",
ThinkStateName().c_str());
}
@@ -7420,7 +7419,7 @@ void Actor::ShowInfo
1.0,
1.0,
1.0,
1065353216,
1.0,
"%s:%s:%i - %s",
ThinkName().c_str(),
m_pszDebugState,
@@ -10298,173 +10297,173 @@ void Actor::UpdateBoneControllers
{
int v1; // eax
long double v2; // fst7
float v2; // fst7
float v3; // ebx
long double v4; // fst7
long double error; // fst5
long double v6; // fst3
float v4; // fst7
float error; // fst5
float v6; // fst3
float v7; // ST34_4
float torsoYawError; // edx
long double fErr1; // fst7
long double v10; // tt
long double v11; // fst5
long double v12; // fst7
long double v13; // fst5
long double fErr2; // fst3
long double fAng1; // fst4
long double fAng2; // fst5
long double v17; // fst1
long double fAng3; // fst4
long double v19; // fst3
long double fAng3_; // fst5
long double fFrameTorsoDist; // fst4
long double fAng4; // fst5
long double v23; // fst4
long double fAng5; // fst6
float fErr1; // fst7
float v10; // tt
float v11; // fst5
float v12; // fst7
float v13; // fst5
float fErr2; // fst3
float fAng1; // fst4
float fAng2; // fst5
float v17; // fst1
float fAng3; // fst4
float v19; // fst3
float fAng3_; // fst5
float fFrameTorsoDist; // fst4
float fAng4; // fst5
float v23; // fst4
float fAng5; // fst6
float v25; // ST48_4
float v26; // ST38_4
long double fAng6; // fst6
long double v28; // fst5
long double v29; // fst4
long double fAng7; // fst5
long double fAng8; // fst2
long double v32; // fst1
long double fAng9; // fst6
long double v34; // fst6
long double v35; // fst3
long double v36; // fst1
long double fAng10; // fst5
long double v38; // fst3
long double v39; // fst6
long double v40; // fst3
long double v41; // fst5
long double v42; // fst5
long double v43; // t1
long double v44; // fst4
long double v45; // t2
long double v46; // fst5
long double v47; // fst7
long double v48; // fst5
long double fAng11; // fst5
long double v50; // fst5
long double fAng12; // fst5
long double v52; // t0
long double v53; // fst5
long double v54; // fst7
long double v55; // fst6
long double fAng13; // fst7
long double v57; // fst6
long double v58; // fst7
long double v59; // fst6
long double v60; // fst7
long double v61; // fst6
long double fAng15; // fst7
long double v63; // tt
long double v64; // fst6
long double v65; // t0
long double v66; // fst6
long double v67; // fst2
long double v68; // tt
long double v69; // fst4
long double v70; // t1
long double v71; // fst4
long double v72; // t2
long double v73; // fst4
long double v74; // tt
long double v75; // fst4
float fAng6; // fst6
float v28; // fst5
float v29; // fst4
float fAng7; // fst5
float fAng8; // fst2
float v32; // fst1
float fAng9; // fst6
float v34; // fst6
float v35; // fst3
float v36; // fst1
float fAng10; // fst5
float v38; // fst3
float v39; // fst6
float v40; // fst3
float v41; // fst5
float v42; // fst5
float v43; // t1
float v44; // fst4
float v45; // t2
float v46; // fst5
float v47; // fst7
float v48; // fst5
float fAng11; // fst5
float v50; // fst5
float fAng12; // fst5
float v52; // t0
float v53; // fst5
float v54; // fst7
float v55; // fst6
float fAng13; // fst7
float v57; // fst6
float v58; // fst7
float v59; // fst6
float v60; // fst7
float v61; // fst6
float fAng15; // fst7
float v63; // tt
float v64; // fst6
float v65; // t0
float v66; // fst6
float v67; // fst2
float v68; // tt
float v69; // fst4
float v70; // t1
float v71; // fst4
float v72; // t2
float v73; // fst4
float v74; // tt
float v75; // fst4
int16_t tagnum; // ax
signed int v77; // ebx
long double v78; // fst7
long double v79; // fst6
long double v80; // fst5
float v78; // fst7
float v79; // fst6
float v80; // fst5
int *v81; // eax
long double v82; // fst4
long double v83; // fst3
long double v84; // fst4
long double v85; // t2
long double v86; // tt
long double v87; // fst4
long double v88; // fst5
long double v89; // fst6
long double v90; // t0
float v82; // fst4
float v83; // fst3
float v84; // fst4
float v85; // t2
float v86; // tt
float v87; // fst4
float v88; // fst5
float v89; // fst6
float v90; // t0
float v91; // eax
signed int v92; // edx
float *v93; // eax
long double v94; // fst7
long double v95; // fst5
long double v96; // t0
long double v97; // fst5
long double v98; // t1
long double v99; // fst5
long double v100; // fst6
float v94; // fst7
float v95; // fst5
float v96; // t0
float v97; // fst5
float v98; // t1
float v99; // fst5
float v100; // fst6
signed int fAlpha; // ebx
float fAlpha2; // ST34_4 MAPDST
int *v104; // eax
signed int v105; // edx
long double v106; // fst6
long double v107; // fst5
long double v108; // fst4
long double v109; // fst3
long double v110; // fst7
long double v111; // fst2
long double v112; // fst0
long double v113; // fst1
long double v114; // fst2
long double v115; // t1
long double v116; // fst1
long double v117; // fst3
long double v118; // tt
long double v119; // fst2
long double v120; // fst5
long double v121; // t0
long double v122; // fst2
long double v123; // fst7
long double v124; // fst6
long double v125; // t1
long double v126; // fst3
long double v127; // t2
long double v128; // fst3
long double v129; // tt
float v106; // fst6
float v107; // fst5
float v108; // fst4
float v109; // fst3
float v110; // fst7
float v111; // fst2
float v112; // fst0
float v113; // fst1
float v114; // fst2
float v115; // t1
float v116; // fst1
float v117; // fst3
float v118; // tt
float v119; // fst2
float v120; // fst5
float v121; // t0
float v122; // fst2
float v123; // fst7
float v124; // fst6
float v125; // t1
float v126; // fst3
float v127; // t2
float v128; // fst3
float v129; // tt
int *v130; // eax
signed int v131; // edx
long double v132; // fst6
long double v133; // fst5
long double v134; // fst4
long double v135; // fst3
long double v136; // fst7
long double v137; // fst2
long double v138; // fst0
long double v139; // fst1
long double v140; // fst2
long double v141; // tt
long double v142; // fst1
long double v143; // fst3
long double v144; // t1
long double v145; // fst2
long double v146; // fst5
long double v147; // t2
long double v148; // fst2
long double v149; // fst7
long double v150; // fst6
long double v151; // tt
long double v152; // fst3
long double v153; // t0
long double v154; // fst3
long double v155; // t1
float v132; // fst6
float v133; // fst5
float v134; // fst4
float v135; // fst3
float v136; // fst7
float v137; // fst2
float v138; // fst0
float v139; // fst1
float v140; // fst2
float v141; // tt
float v142; // fst1
float v143; // fst3
float v144; // t1
float v145; // fst2
float v146; // fst5
float v147; // t2
float v148; // fst2
float v149; // fst7
float v150; // fst6
float v151; // tt
float v152; // fst3
float v153; // t0
float v154; // fst3
float v155; // t1
signed int v156; // ebx
long double v157; // fst7
long double v158; // fst6
long double v159; // fst5
float v157; // fst7
float v158; // fst6
float v159; // fst5
int *v160; // eax
long double v161; // fst4
long double v162; // fst3
long double v163; // fst4
long double v164; // t1
long double v165; // t2
long double v166; // fst4
long double v167; // fst5
long double v168; // fst6
long double v169; // tt
float v161; // fst4
float v162; // fst3
float v163; // fst4
float v164; // t1
float v165; // t2
float v166; // fst4
float v167; // fst5
float v168; // fst6
float v169; // tt
SimpleEntityPtr v170; // ecx
struct gentity_s *v171; // esi
float v172; // [esp+2Ch] [ebp-20Ch]
@@ -11862,7 +11861,7 @@ void Actor::SetPatrolCurrentNode
if (!l->inheritsFrom(&SimpleEntity::ClassInfo))
{
ScriptError("Bad patrol path with classname '%s' specified for '%s' at (%f %f %f) %i\n",
ScriptError("Bad patrol path with classname '%s' specified for '%s' at (%f %f %f)\n",
l->getClassname(),
targetname.c_str(),
origin.x,
+3 -3
View File
@@ -30,10 +30,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "actorenemy.h"
#include "level.h"
#include "game.h"
#include <gamescript.h>
#include <scriptmaster.h>
#include "gamescript.h"
#include "scriptmaster.h"
#include "grenadehint.h"
#include <parm.h>
#include "parm.h"
extern Event EV_Actor_Start;
extern Event EV_Actor_Dead;
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -90,7 +90,6 @@ Animate::Animate()
frame_delta = vec_zero;
if( !LoadingSavegame )
{
edict->s.actionWeight = 1.0f;
File renamed without changes.
@@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include <lz77.h>
#ifdef GAME_DLL
#include "../game/entity.h"
#include "../fgame/entity.h"
#endif
enum
@@ -437,7 +437,7 @@ qboolean harderror
if( version > ArchiveVersion )
{
readfile.Close();
FileError( "Archive is from version %.2f. Check http://www.x-null.net for an update.", version );
FileError( "Archive is from version %u. Check http://www.x-null.net for an update.", version );
return false;
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef __BODY_H__
#define __BODY_H__
#include <animate.h>
#include "animate.h"
//=============================================================
//class Body
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 345 files, more files were not shown because too many files have changed in this diff. Show more