2097: Fix bug about console video start r=def- a=sirius1242
Did some small modifications to console video start (using video_start command):
- Fix bug that demo can't play when demo pause and then use console video start.
- If demo playing paused when console video start, video rendering will not begin until video playing continue.
I think this will make experience of console video start more comfortable, you can pause demo playing and type video_start in console, quit console and continue demo playing, then console will not be rendered into video.
Co-authored-by: sirius <sirius.ustc@gmail.com>
2096: Fix the double-free of the antibot r=def- a=heinrich5991
I could not find an easy way to ensure that `AntibotDestroy` is only
being called once for each `AntibotInit` but still happening after all
the `CPlayer` destructors.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2078: Fix cl_showrecord with dummy (fixes#2077) r=heinrich5991 a=def-
Shows best time of either dummy or main player depending on which is selected
Co-authored-by: def <dennis@felsin9.de>
I could not find an easy way to ensure that `AntibotDestroy` is only
being called once for each `AntibotInit` but still happening after all
the `CPlayer` destructors.
2069: Move global configuration out of client interface r=heinrich5991 a=ChillerDragon
2076: Allow editing multiple tile layer props r=heinrich5991 a=Learath2
Requested by Ravie on discord
2095: Fix `AntibotDestroy` being called twice r=def- a=heinrich5991
The resource deallocation needs to happen in symmetry with the
allocation, otherwise we get unmatched dealloctions leading to crashes.
Allocations happened in `CAntibot::Init`, but it was not guaranteed that
this was called before the destructor.
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2070: Fix demo recording with broken maps r=heinrich5991 a=Learath2
Apparently there are maps out there with broken headers advertising the wrong map size. This allows demos to be recorded on those.
Example of such a map is `ctf4_old_d668e9fa_2f472051b26b6bffaa4af8990cf882cafd6364e00e1333b77762cb9911e49464.map`
Hosted on `Allround Network`
Reported by teini94 on discord
Co-authored-by: Learath <learath2@gmail.com>
2071: Add an option to only start a new demo when connect while automatically record demos r=def- a=sirius1242
Origin auto demo recording of ddnet will generate lots of demo files especially when playing in mods which have shorter rounds, such as infclass. I added a new option to open a new demo file only when connect to server (include map changing), this is disabled by default, and can use `cl_auto_demo_on_connect 1` to open. It works only when `cl_auto_demo_record` open.
Co-authored-by: sirius <sirius.ustc@gmail.com>
The resource deallocation needs to happen in symmetry with the
allocation, otherwise we get unmatched dealloctions leading to crashes.
Allocations happened in `CAntibot::Init`, but it was not guaranteed that
this was called before the destructor.
2090: added base-devel alphabetically to dependency list r=heinrich5991 a=Patiga
required for building ddnet on a fresh arch linux installation
(noticed while trying to build ddnet on the arch linux docker image)
Co-authored-by: patiga <patigatus21@gmail.com>
2088: Fix antibot crash r=Learath2 a=heinrich5991
`m_Core.m_HookedPlayer` can be -1 if you get teleported the moment you'd
normally attach the hook.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2081: Add support for dynamically loading an antibot module r=Learath2 a=heinrich5991
Support for this feature is turned off by default. This feature allows
to integrate with noby's anticheat feature.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2075: Add option to pause video rendering when demo playing pause r=def- a=sirius1242
This option default is open, which means video rendering will pause when demo playing pause, we can use this to:
- change player spec to
- check demo playing speed
- check playing progress
I think this is better.
There is a modification which make tee not transparent when playing demo from server with commit 5dab6e2e1, but if you don't like it, you can undo this modification.
Co-authored-by: sirius <sirius.ustc@gmail.com>
2065: Fix build error for Fedora Rawhide r=def- a=ElXreno
This PR fixes build error while building DDNet for Fedora Rawhide.
Build error seems like this:
```
FAILED: CMakeFiles/DDNet.dir/src/game/client/components/background.cpp.o
/usr/bin/c++ -DCONF_OPENSSL -DCONF_WAVPACK_OPEN_FILE_INPUT_EX -DGLEW_STATIC -D_FORTIFY_SOURCE=2 -I/usr/include/freetype2 -I/usr/include/ogg -I/usr/include/opus -I/usr/include/SDL2 -I/usr/include/wavpack -Isrc -I../src -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -flto -O2 -g -DNDEBUG -fdiagnostics-color=always -fstack-protector-all -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wformat=2 -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wrestrict -std=gnu++11 -MD -MT CMakeFiles/DDNet.dir/src/game/client/components/background.cpp.o -MF CMakeFiles/DDNet.dir/src/game/client/components/background.cpp.o.d -o CMakeFiles/DDNet.dir/src/game/client/components/background.cpp.o -c ../src/game/client/components/background.cpp
In file included from ../src/game/client/components/background.cpp:8:
../src/game/client/components/maplayers.h:15:9: error: 'uintptr_t' does not name a type; did you mean 'uint64_t'?
15 | typedef uintptr_t offset_ptr;
| ^~~~~~~~~
| uint64_t
../src/game/client/components/maplayers.h:61:4: error: 'offset_ptr' does not name a type; did you mean 'offset_ptr32'?
61 | offset_ptr IndexBufferByteOffset()
| ^~~~~~~~~~
| offset_ptr32
In file included from ../src/game/client/components/background.cpp:8:
../src/game/client/components/maplayers.h:105:4: error: 'offset_ptr' does not name a type; did you mean 'offset_ptr32'?
105 | offset_ptr m_IndexBufferByteOffset;
| ^~~~~~~~~~
| offset_ptr32
../src/game/client/components/maplayers.h: In constructor 'CMapLayers::SQuadLayerVisuals::SQuadVisual::SQuadVisual()':
../src/game/client/components/maplayers.h:103:20: error: class 'CMapLayers::SQuadLayerVisuals::SQuadVisual' does not have any field named 'm_IndexBufferByteOffset'
103 | SQuadVisual() : m_IndexBufferByteOffset(0) {}
| ^~~~~~~~~~~~~~~~~~~~~~~
```
Full build log you can find here (available for 14 days after build): https://download.copr.fedorainfracloud.org/results/elxreno/ddnet/fedora-rawhide-x86_64/01238446-ddnet/build.log.gz
Co-authored-by: ElXreno <elxreno@gmail.com>
./src/game/client/components/maplayers.h:15:9: error: 'uintptr_t' does not name a type; did you mean 'uint64_t'?
15 | typedef uintptr_t offset_ptr;
| ^~~~~~~~~
| uint64_t
../src/game/client/components/maplayers.h:61:4: error: 'offset_ptr' does not name a type; did you mean 'offset_ptr32'?
61 | offset_ptr IndexBufferByteOffset()
| ^~~~~~~~~~
| offset_ptr32
In file included from ../src/game/client/components/background.cpp:8:
../src/game/client/components/maplayers.h:105:4: error: 'offset_ptr' does not name a type; did you mean 'offset_ptr32'?
105 | offset_ptr m_IndexBufferByteOffset;
| ^~~~~~~~~~
| offset_ptr32
../src/game/client/components/maplayers.h: In constructor 'CMapLayers::SQuadLayerVisuals::SQuadVisual::SQuadVisual()':
../src/game/client/components/maplayers.h:103:20: error: class 'CMapLayers::SQuadLayerVisuals::SQuadVisual' does not have any field named 'm_IndexBufferByteOffset'
103 | SQuadVisual() : m_IndexBufferByteOffset(0) {}
| ^~~~~~~~~~~~~~~~~~~~~~~