From 6b14b729e8507d178deb139bfe8d0d503daad826 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 19 Oct 2023 23:01:17 +0200 Subject: [PATCH] revert a few things to GZDoom state. This mainly is the CI workflow, the icons, plus and a few changed options and marking the blocker flags unfriendly. --- .devcontainer/GZDoom.dockerfile | 16 +++ .devcontainer/devcontainer.json | 6 + .github/ISSUE_TEMPLATE/bug_report.yml | 124 +++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 107 +++++++++++++++ .github/workflows/appimage.yml | 53 ++++++++ .github/workflows/continuous_integration.yml | 128 ++++++++++++++++++ AppImageBuilder.yml | 45 ++++++ CMakeLists.txt | 4 +- README.md | 26 +++- src/am_map.cpp | 4 +- src/common/platform/win32/i_mainwindow.cpp | 2 +- .../rendering/hwrenderer/data/hw_cvars.cpp | 2 +- src/common/startscreen/endoom.cpp | 2 +- src/common/statusbar/base_sbar.cpp | 4 +- src/d_netinfo.cpp | 2 +- src/g_game.cpp | 2 +- src/g_level.cpp | 4 + src/posix/osx/zdoom.icns | Bin 80444 -> 120245 bytes src/version.h | 26 ++-- src/win32/icon1.ico | Bin 1453926 -> 300318 bytes src/win32/zdoom.rc | 2 +- wadsrc/static/graphics/bootlogo.png | Bin 9640 -> 86801 bytes 22 files changed, 530 insertions(+), 29 deletions(-) create mode 100644 .devcontainer/GZDoom.dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/workflows/appimage.yml create mode 100644 .github/workflows/continuous_integration.yml create mode 100644 AppImageBuilder.yml diff --git a/.devcontainer/GZDoom.dockerfile b/.devcontainer/GZDoom.dockerfile new file mode 100644 index 0000000000..da2440913d --- /dev/null +++ b/.devcontainer/GZDoom.dockerfile @@ -0,0 +1,16 @@ +FROM ubuntu:latest +LABEL org.opencontainers.image.authors="CandiceJoy " +LABEL author="CandiceJoy" +LABEL description="GZDoom compilation image (Designed for GZDoom 4.11pre)" +LABEL verion="4.11pre" + +# Update these as needed +ENV GZ_ZMUSIC_URL="https://github.com/coelckers/ZMusic.git" +ENV GZ_ZMUSIC_COMMIT="75d2994b4b1fd6891b20819375075a2976ee34de" +ENV GZ_PACKAGES="build-essential git cmake libsdl2-dev libvpx-dev" + +# Update package lists and install package-based build dependencies +RUN apt-get update; apt-get install -y $GZ_PACKAGES + +# Install ZMusic +RUN git clone $GZ_ZMUSIC_URL; git reset --hard $GZ_ZMUSIC_COMMIT; cd ZMusic; cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; make; make install diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..9bcbdd2f9f --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,6 @@ +{ + "build":{ "dockerfile": "GZDoom.dockerfile" }, + "name": "GZDoom", + "features": { + } +} diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..7ed0af7ce6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,124 @@ +name: Bug Report +description: File a Bug report +title: '[BUG] ' +labels: bug +#assignees: 'anonymous@temp' + +body: + - type: markdown + attributes: + value: | + ## Please fill out forms as cleanly as possible. + #### Make sure that you have + * properly edited & filled in the title of this bug report + - type: input + id: version + attributes: + label: GZDoom version + description: | + What version are you using? + Run `gzdoom --version` or check in the console in game. + Make sure to update to latest [release](https://github.com/coelckers/gzdoom/releases) version and test again before continuing. + placeholder: "ex: GZDoom 4.0.0, Git version, Branch, other" + validations: + required: false + - type: dropdown + id: gameid + attributes: + label: Which game are you running with GZDoom? + multiple: false + options: + - Doom + - Doom 2 + - Heretic + - Hexen + - Strife + - Other + validations: + required: false + - type: dropdown + id: OS + attributes: + label: What Operating System are you using? + multiple: false + options: + - Windows 11 + - Windows 10 + - Windows 8 + - Windows 7 + - Windows Other + - Mac OS + - Linux x86 + - Linux x86_64 + - Linux ARM (Raspberry Pi) + - Other + validations: + required: false + - type: input + id: os_detail + attributes: + label: Please describe your specific OS version + description: Other details + placeholder: "Windows 11 Home/Pro/Server/etc, Mac OSX version, Debian 10/11/etc, Ubuntu 18/20/etc, Arch, etc." + validations: + required: false + - type: input + id: hardware + attributes: + label: Relevant hardware info + description: Hardware + placeholder: "CPU, GPU, device brand/model: e.g. Intel, AMD, Nvidia, etc" + validations: + required: false + - type: checkboxes + id: checked + attributes: + label: Have you checked that no other similar issue already exists? + description: Searched issues before creating report? + options: + - label: I have searched and not found similar issues. + required: true + - type: textarea + id: description + attributes: + label: A clear and concise description of what the bug is. + description: Describe what happens, what software were you running? _Include a small mod demonstrating the bug, or a screenshot if possible_ + placeholder: "How & When does this occur?" + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce the behaviour. + description: How can we reproduce this? + placeholder: "Explain how to reproduce" + value: | + Explain how to reproduce + 1. + 2. + 3. + validations: + required: false + - type: textarea + id: config_file + attributes: + label: Your configuration + description: | + Share the config file(s) you've been using to run the program. (`gzdoom.ini`) + Please avoid pasting the full config, _use attachments or links_ in a [Gist](https://gist.github.com/) + placeholder: "example: cl_autorun=true" + render: ini # syntax highlighting + validations: + required: false + - type: textarea + id: log + attributes: + label: Provide a Log + description: Please avoid pasting the full log, _use attachments or links_ in a [Gist](https://gist.github.com/) + placeholder: "Copy & paste error log section or provide link" + validations: + required: false + - type: markdown + attributes: + value: | + * Make sure you have properly filled in the title of this bug report diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..60c7440fe5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,107 @@ +name: Feature Request +description: Suggest an idea (a new feature or other improvement) for this project +title: '[Feature] ' +labels: enhancement +#assignees: 'anonymous@temp' + +body: + - type: markdown + attributes: + value: | + ## Please fill out forms as cleanly as possible. + #### Make sure that you have + * properly edited & filled in the title of this bug report + - type: input + id: version + attributes: + label: GZDoom version + description: | + What version are you using? + Run `gzdoom --version` or check in the console in game. + Make sure to update to latest [release](https://github.com/coelckers/gzdoom/releases) version and test again before continuing. + placeholder: "ex: GZDoom 4.0.0, Git version, Branch, other" + validations: + required: false + - type: dropdown + id: gameid + attributes: + label: Which game are you running with GZDoom? + multiple: false + options: + - Doom + - Doom 2 + - Heretic + - Hexen + - Strife + - Other + validations: + required: false + - type: dropdown + id: OS + attributes: + label: What Operating System are you using? + multiple: false + options: + - Windows 11 + - Windows 10 + - Windows 8 + - Windows 7 + - Windows Other + - Mac OS + - Linux x86 + - Linux x86_64 + - Linux ARM (Raspberry Pi) + - Other + validations: + required: false + - type: input + id: other + attributes: + label: If Other OS, please describe + description: Other details + placeholder: "Windows, Mac OSX version, Debian, Ubuntu, Arch, etc." + validations: + required: false + - type: input + id: hardware + attributes: + label: Relevant hardware info + description: Hardware + placeholder: "CPU, GPU, device brand/model: e.g. Intel, AMD, Nvidia, etc" + validations: + required: false + - type: textarea + id: related + attributes: + label: Is your feature request related to a problem? Please describe. + description: Related + placeholder: "Ex. I'm always frustrated when" + validations: + required: true + - type: textarea + id: solution + attributes: + label: Describe the solution you'd like + placeholder: "Ex. How can we make it better?" + validations: + required: false + - type: textarea + id: alternative + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + placeholder: "Similar idea or software" + validations: + required: false + - type: textarea + id: additional + attributes: + label: Add any other context or screenshots about the feature request here. + description: Screenshots or Links? + placeholder: "Ex. Screenshot or Link" + validations: + required: false + - type: markdown + attributes: + value: | + * Make sure you have properly filled in the title of this feature request diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml new file mode 100644 index 0000000000..885c329210 --- /dev/null +++ b/.github/workflows/appimage.yml @@ -0,0 +1,53 @@ +name: Continuous Integration + +on: [push, pull_request] + +jobs: + build-appimage: + name: Linux Clang 12 | AppImage + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Install GZDoom dependencies + run: | + sudo apt-get update + sudo apt-get install clang-12 libsdl2-dev libvpx-dev libwebp-dev cmake -y + - name: Install appimage-builder dependencies + run: | + sudo apt-get install binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf -y + sudo apt-get install python3-pip python3-setuptools squashfs-tools strace util-linux zsync -y + sudo apt-get install imagemagick-6.q16hdri -y + - name: Install appimage-builder + run: | + python3 -m pip install --upgrade pip + pip install appimage-builder + - name: Build zmusic dependency + run: | + git clone -b 1.1.12 https://github.com/ZDoom/ZMusic.git zmusic_build + mkdir ./zmusic_build/build + cd ./zmusic_build/build + cmake -DCMAKE_BUILD_TYPE=Release .. + cmake --build . + cd ../../ + mkdir -p ./AppDir/zmusic/lib + mkdir ./AppDir/zmusic/include + mv ./zmusic_build/build/source/libzmusic* ./AppDir/zmusic/lib/ + mv ./zmusic_build/include/zmusic.h ./AppDir/zmusic/include/ + - name: Configure + run: cmake -B AppDir -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_PREFIX_PATH=`pwd`/AppDir/zmusic -DPK3_QUIET_ZIPDIR=ON -DCMAKE_C_COMPILER=clang-12 -DCMAKE_CXX_COMPILER=clang++-12 . + - name: Build + shell: bash + run: | + export MAKEFLAGS=--keep-going + cmake --build AppDir --config Release --parallel `nproc` + cp ./AppDir/zmusic/lib/* ./AppDir/ + mkdir -p ./AppDir/usr/share/icons + convert ./src/win32/icon1.ico[0] -flatten ./AppDir/usr/share/icons/game_icon.png + - name: Build AppImage + run: | + appimage-builder --skip-tests + - uses: actions/upload-artifact@v2 + with: + name: AppImage + path: './*.AppImage*' diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml new file mode 100644 index 0000000000..aa323c9399 --- /dev/null +++ b/.github/workflows/continuous_integration.yml @@ -0,0 +1,128 @@ +name: Continuous Integration + +on: [push, pull_request] + +jobs: + build: + name: ${{ matrix.config.name }} | ${{ matrix.config.build_type }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - name: Visual Studio 2022 + os: windows-2022 + extra_options: -DCMAKE_TOOLCHAIN_FILE=build/vcpkg/scripts/buildsystems/vcpkg.cmake + build_type: Release + + - name: Visual Studio 2022 + os: windows-2022 + extra_options: -DCMAKE_TOOLCHAIN_FILE=build/vcpkg/scripts/buildsystems/vcpkg.cmake + build_type: Debug + + - name: Visual Studio 2019 + os: windows-2019 + extra_options: -DCMAKE_TOOLCHAIN_FILE=build/vcpkg/scripts/buildsystems/vcpkg.cmake + build_type: Release + + - name: macOS + os: macos-12 + deps_cmdline: brew install libvpx webp + build_type: Release + + - name: macOS + os: macos-12 + extra_options: -G Xcode -DDYN_OPENAL=OFF + deps_cmdline: brew install libvpx webp + build_type: Debug + + - name: Linux GCC 9 + os: ubuntu-22.04 + extra_options: -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 + deps_cmdline: sudo apt update && sudo apt install libsdl2-dev libvpx-dev libgtk2.0-dev libwebp-dev + build_type: RelWithDebInfo + + - name: Linux GCC 12 + os: ubuntu-22.04 + extra_options: -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 + deps_cmdline: sudo apt update && sudo apt install libsdl2-dev libvpx-dev libgtk-3-dev libwebp-dev + build_type: MinSizeRel + + - name: Linux Clang 11 + os: ubuntu-22.04 + extra_options: -DCMAKE_C_COMPILER=clang-11 -DCMAKE_CXX_COMPILER=clang++-11 -DDYN_OPENAL=OFF + deps_cmdline: sudo apt update && sudo apt install clang-11 libsdl2-dev libvpx-dev libopenal-dev libwebp-dev + build_type: Debug + + - name: Linux Clang 15 + os: ubuntu-22.04 + extra_options: -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 + deps_cmdline: sudo apt update && sudo apt install clang-15 libsdl2-dev libvpx-dev libwebp-dev + build_type: Release + + steps: + - uses: actions/checkout@v4 + + - name: Install Dependencies + shell: bash + run: | + if [[ -n "${{ matrix.config.deps_cmdline }}" ]]; then + eval ${{ matrix.config.deps_cmdline }} + fi + mkdir build + if [[ "${{ runner.os }}" == 'macOS' ]]; then + export ZMUSIC_PACKAGE=zmusic-1.1.9-macos.tar.xz + elif [[ "${{ runner.os }}" == 'Linux' ]]; then + export ZMUSIC_PACKAGE=zmusic-1.1.9-linux.tar.xz + fi + if [[ -n "${ZMUSIC_PACKAGE}" ]]; then + cd build + wget -q "https://github.com/coelckers/gzdoom/releases/download/ci_deps/${ZMUSIC_PACKAGE}" + tar -xf "${ZMUSIC_PACKAGE}" + fi + + - name: Setup vcpkg + uses: lukka/run-vcpkg@v11 + if: runner.os == 'Windows' + with: + vcpkgDirectory: '${{ github.workspace }}/build/vcpkg' + vcpkgGitCommitId: '2c401863dd54a640aeb26ed736c55489c079323b' + + - name: Configure + shell: bash + run: | + cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DCMAKE_PREFIX_PATH=`pwd`/build/zmusic -DPK3_QUIET_ZIPDIR=ON ${{ matrix.config.extra_options }} . + + - name: Build + shell: bash + run: | + export MAKEFLAGS=--keep-going + cmake --build build --config ${{ matrix.config.build_type }} --parallel 3 + + - name: Create Package + if: runner.os == 'Windows' # Remove to make packages of all targets + shell: bash + run: | + cd build + mkdir package + if [[ "${{ runner.os }}" == 'Windows' ]]; then + cp ${{ matrix.config.build_type }}/gzdoom.exe ${{ matrix.config.build_type }}/*.pk3 package + elif [[ "${{ runner.os }}" == 'macOS' ]]; then + cp -r gzdoom.app package + elif [[ "${{ runner.os }}" == 'Linux' ]]; then + cp gzdoom *.pk3 package + fi + + - name: Upload Package + if: runner.os == 'Windows' # Remove to store packages of all targets + uses: actions/upload-artifact@v3 + with: + path: build/package + name: ${{ matrix.config.name }} ${{ matrix.config.build_type }} + + - name: List Build Directory + if: always() + shell: bash + run: | + git status + ls -lR build diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml new file mode 100644 index 0000000000..6f9ebcc3bd --- /dev/null +++ b/AppImageBuilder.yml @@ -0,0 +1,45 @@ +# appimage-builder recipe see https://appimage-builder.readthedocs.io for details +version: 1 +AppDir: + path: ./AppDir + app_info: + id: com.GZDoom.app + name: GZDoom + icon: game_icon.png + version: latest + exec: ./gzdoom + exec_args: $@ + apt: + arch: amd64 + allow_unauthenticated: true + sources: + - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ jammy main restricted + - sourceline: deb http://us.archive.ubuntu.com/ubuntu/ jammy-updates main restricted + include: [] + files: + include: [] + exclude: + - usr/share/man + - usr/share/doc/*/README.* + - usr/share/doc/*/changelog.* + - usr/share/doc/*/NEWS.* + - usr/share/doc/*/TODO.* + test: + fedora-30: + image: appimagecrafters/tests-env:fedora-30 + command: ./AppRun + debian-stable: + image: appimagecrafters/tests-env:debian-stable + command: ./AppRun + archlinux-latest: + image: appimagecrafters/tests-env:archlinux-latest + command: ./AppRun + centos-7: + image: appimagecrafters/tests-env:centos-7 + command: ./AppRun + ubuntu-xenial: + image: appimagecrafters/tests-env:ubuntu-xenial + command: ./AppRun +AppImage: + arch: x86_64 + update-information: guess diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b4c0792d2..94101d28a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOS set(VCPKG_TARGET_TRIPLET "x64-windows-static") endif() -project(VkDoom) +project(GZDoom) if (WIN32 AND VCPKG_TOOLCHAIN) option(LIBVPX_VCPKG "Use libvpx from vcpkg" OFF) @@ -155,7 +155,7 @@ IF( NOT CMAKE_BUILD_TYPE ) ENDIF() set( ZDOOM_OUTPUT_DIR ${CMAKE_BINARY_DIR} CACHE PATH "Directory where zdoom.pk3 and the executable will be created." ) -set( ZDOOM_EXE_NAME "vkdoom" CACHE FILEPATH "Name of the executable to create" ) +set( ZDOOM_EXE_NAME "gzdoom" CACHE FILEPATH "Name of the executable to create" ) if( MSVC ) # Allow the user to use ZDOOM_OUTPUT_DIR as a single release point. # Use zdoom, zdoomd, zdoom64, and zdoomd64 for the binary names diff --git a/README.md b/README.md index a0ea1d01ce..7268877ea3 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,28 @@ -## Welcome to VkDoom! +# Welcome to GZDoom! -VkDoom is a source port based on the DOOM engine with a focus on Vulkan and modern computers. +[![Continuous Integration](https://github.com/ZDoom/gzdoom/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/ZDoom/gzdoom/actions/workflows/continuous_integration.yml) -Please see license files for individual contributor licenses. +## GZDoom is a modder-friendly OpenGL and Vulkan source port based on the DOOM engine -Visit our [website](https://vkdoom.org) for more details. +Copyright (c) 1998-2023 ZDoom + GZDoom teams, and contributors + +Doom Source (c) 1997 id Software, Raven Software, and contributors + +Please see license files for individual contributor licenses + +Special thanks to Coraline of the EDGE team for allowing us to use her [README.md](https://github.com/3dfxdev/EDGE/blob/master/README.md) as a template for this one. ### Licensed under the GPL v3 ##### https://www.gnu.org/licenses/quick-guide-gplv3.en.html +--- + +## How to build GZDoom + +To build GZDoom, please see the [wiki](https://zdoom.org/wiki/) and see the "Programmer's Corner" on the bottom-right corner of the page to build for your platform. + +# Resources +- https://zdoom.org/ - Home Page +- https://forum.zdoom.org/ - Forum +- https://zdoom.org/wiki/ - Wiki +- https://dsc.gg/zdoom - Discord Server +- https://docs.google.com/spreadsheets/d/1pvwXEgytkor9SClCiDn4j5AH7FedyXS-ocCbsuQIXDU/edit?usp=sharing - Translation sheet (Google Docs) diff --git a/src/am_map.cpp b/src/am_map.cpp index 856ec7e049..4c4f29cbe7 100644 --- a/src/am_map.cpp +++ b/src/am_map.cpp @@ -132,8 +132,8 @@ struct islope_t CVAR(Bool, am_textured, true, CVAR_ARCHIVE) CVAR(Float, am_linealpha, 1.0f, CVAR_ARCHIVE) -CVAR(Int, am_linethickness, 2, CVAR_ARCHIVE) -CVAR(Int, am_lineantialiasing, 1, CVAR_ARCHIVE) +CVAR(Int, am_linethickness, 1, CVAR_ARCHIVE) +CVAR(Int, am_lineantialiasing, 0, CVAR_ARCHIVE) CVAR(Bool, am_thingrenderstyles, true, CVAR_ARCHIVE) CVAR(Int, am_showsubsector, -1, 0); diff --git a/src/common/platform/win32/i_mainwindow.cpp b/src/common/platform/win32/i_mainwindow.cpp index d043417c04..7b7b086a52 100644 --- a/src/common/platform/win32/i_mainwindow.cpp +++ b/src/common/platform/win32/i_mainwindow.cpp @@ -55,7 +55,7 @@ void MainWindow::Create(const FString& caption, int x, int y, int width, int hei WS_EX_APPWINDOW, WinClassName, wcaption.c_str(), - WS_OVERLAPPEDWINDOW/* | WS_VISIBLE*/ | WS_CLIPCHILDREN, + WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN, x, y, width, height, (HWND)NULL, (HMENU)NULL, diff --git a/src/common/rendering/hwrenderer/data/hw_cvars.cpp b/src/common/rendering/hwrenderer/data/hw_cvars.cpp index 94f65e1429..0b3e634b38 100644 --- a/src/common/rendering/hwrenderer/data/hw_cvars.cpp +++ b/src/common/rendering/hwrenderer/data/hw_cvars.cpp @@ -120,7 +120,7 @@ CUSTOM_CVARD(Float, gl_texture_filter_anisotropic, 8.f, CVAR_ARCHIVE | CVAR_GLOB screen->SetTextureFilterMode(); } -CUSTOM_CVARD(Int, gl_texture_filter, 6, CVAR_ARCHIVE|CVAR_GLOBALCONFIG|CVAR_NOINITCALL, "changes the texture filtering settings") +CUSTOM_CVARD(Int, gl_texture_filter, 4, CVAR_ARCHIVE|CVAR_GLOBALCONFIG|CVAR_NOINITCALL, "changes the texture filtering settings") { if (self < 0 || self > 6) self=4; screen->SetTextureFilterMode(); diff --git a/src/common/startscreen/endoom.cpp b/src/common/startscreen/endoom.cpp index d5e371a528..4a7565dbc6 100644 --- a/src/common/startscreen/endoom.cpp +++ b/src/common/startscreen/endoom.cpp @@ -67,7 +67,7 @@ // PUBLIC DATA DEFINITIONS ------------------------------------------------- -CUSTOM_CVAR(Int, showendoom, 0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +CUSTOM_CVAR(Int, showendoom, 1, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) { if (self < 0) self = 0; else if (self > 2) self=2; diff --git a/src/common/statusbar/base_sbar.cpp b/src/common/statusbar/base_sbar.cpp index 3b1029c651..95719632bb 100644 --- a/src/common/statusbar/base_sbar.cpp +++ b/src/common/statusbar/base_sbar.cpp @@ -59,8 +59,8 @@ IMPLEMENT_CLASS(DHUDFont, false, false); CVAR(Color, crosshaircolor, 0xff0000, CVAR_ARCHIVE); CVAR(Int, crosshairhealth, 2, CVAR_ARCHIVE); -CVARD(Float, crosshairscale, 0.2f, CVAR_ARCHIVE, "changes the size of the crosshair"); -CVAR(Bool, crosshairgrow, true, CVAR_ARCHIVE); +CVARD(Float, crosshairscale, 0.3f, CVAR_ARCHIVE, "changes the size of the crosshair"); +CVAR(Bool, crosshairgrow, false, CVAR_ARCHIVE); CUSTOM_CVARD(Float, hud_scalefactor, 1.f, CVAR_ARCHIVE, "changes the hud scale") { diff --git a/src/d_netinfo.cpp b/src/d_netinfo.cpp index d6f387046f..51c6e0dc02 100644 --- a/src/d_netinfo.cpp +++ b/src/d_netinfo.cpp @@ -54,7 +54,7 @@ static FRandom pr_pickteam ("PickRandomTeam"); -CVAR (Float, autoaim, 0.f, CVAR_USERINFO | CVAR_ARCHIVE); +CVAR (Float, autoaim, 35.f, CVAR_USERINFO | CVAR_ARCHIVE); CVAR (String, name, "Player", CVAR_USERINFO | CVAR_ARCHIVE); CVAR (Color, color, 0x40cf00, CVAR_USERINFO | CVAR_ARCHIVE); CVAR (Int, colorset, 0, CVAR_USERINFO | CVAR_ARCHIVE); diff --git a/src/g_game.cpp b/src/g_game.cpp index 8a20b76a54..9f3611a30e 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -201,7 +201,7 @@ int lookspeed[2] = {450, 512}; #define SLOWTURNTICS 6 -CVAR (Bool, cl_run, false, CVAR_GLOBALCONFIG|CVAR_ARCHIVE) // Always run? +CVAR (Bool, cl_run, true, CVAR_GLOBALCONFIG|CVAR_ARCHIVE) // Always run? CVAR (Bool, freelook, true, CVAR_GLOBALCONFIG|CVAR_ARCHIVE) // Always mlook? CVAR (Bool, lookstrafe, false, CVAR_GLOBALCONFIG|CVAR_ARCHIVE) // Always strafe with mouse? CVAR (Float, m_forward, 1.f, CVAR_GLOBALCONFIG|CVAR_ARCHIVE) diff --git a/src/g_level.cpp b/src/g_level.cpp index 5231baab52..557662f434 100644 --- a/src/g_level.cpp +++ b/src/g_level.cpp @@ -1854,7 +1854,11 @@ void FLevelLocals::Init() flags |= info->flags; flags2 |= info->flags2; flags3 |= info->flags3; +#ifdef UNFRIEBDLY_OPTIONS vkdflags |= info->vkdflags; +#else + vkdflags = 0; +#endif levelnum = info->levelnum; Music = info->Music; musicorder = info->musicorder; diff --git a/src/posix/osx/zdoom.icns b/src/posix/osx/zdoom.icns index ad89dfc5063b5c184bbcc394349a7692402bd18c..a0df7f5f7931e269dc82f81a9e4e15548bb5e9a6 100644 GIT binary patch literal 120245 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