Commit graph

311 commits

Author SHA1 Message Date
heinrich5991 f339fea748
Merge pull request #2139 from edg-l/pr_add_upnp
Add UPnP support
2020-05-24 22:23:20 +02:00
Edgar 3569e174f2
refactor upnp code 2020-05-24 11:36:43 +02:00
Learath 5e02bb5a23 Extend antibot interface
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-13 23:39:40 +03:00
def c9dfcb2b11 Fix Mac OS X notifications linking 2020-04-30 21:30:21 +02:00
Learath 09fad44b87 Strip rpath before adding the correct one 2020-04-30 15:04:51 +02:00
Learath 17d1bccf2b Some osx cleanup 2020-04-30 15:04:51 +02:00
Arda Demir b7d452d2a0
Libnotify support for linux client (#2099)
Add libnotify support for linux client

Also unify notification management

Make libnotify mandatory for the client. It is installed on 100% of Arch
Linux systems and on 70% of Debian systems. I'd guess the remaining
Debian systems are servers.

Detect dependent libraries of `libnotify` using `pkg-config`. Remove
library-specific code from the game module. Decrement refcount for
libnotify notification object before leaving the function.
2020-04-14 17:53:53 +02:00
Ryozuki b647c1e978
Add UPnP support 2020-04-14 12:11:50 +02:00
Ryozuki e2a85345e4
Rename antibot -> ddnet-antibot and install it on cmake 2020-04-12 17:13:47 +02:00
Ryozuki 5f565a5eb5
check for WavpackCloseFile 2020-04-11 13:17:21 +02:00
Dennis Felsing 2965b8578a
Merge pull request #2124 from def-/pr-macosx-10.7
Rebuild Mac OSX libs with -mmacosx-version-min=10.7 (previously 10.9)
2020-04-10 20:28:58 +02:00
Ryozuki 0da0dddf15 drop glu dependency 2020-04-08 18:19:12 +02:00
def a127e6d5aa Rebuild Mac OSX libs with -mmacosx-version-min=10.7 (previously 10.9) 2020-04-08 12:07:33 +02:00
def 18aec44a99 New try for hidapi SDL2 rpath 2020-04-08 09:17:15 +02:00
def ae330bbe25 Try to fix SDL2 hidapi rpath on MacOSX
Following SDL 2.0.12 update
2020-04-08 07:37:00 +02:00
bors[bot] 0c51c0daf5
Merge #2117
2117: Don't emit the CMake rpath warning for CMake >= 3.14 r=def- a=heinrich5991

Fixes #2114.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-04-07 10:50:51 +00:00
heinrich5991 cac164cc71 Don't emit the CMake rpath warning for CMake >= 3.14
Fixes #2114.
2020-04-07 12:01:18 +02:00
def fd86c907a6 Fix ffmpeg package name (fixes #2115) 2020-04-07 09:00:19 +02:00
def 564e7577f7 Try to fix freetype mac warning 2020-04-06 12:48:58 +02:00
Learath 61e5667624 Streamline platform client 2020-03-28 02:20:16 +03:00
heinrich5991 bda3adabcc Use relative rpath, force relative rpath for older CMake versions
This allows you to copy around the built binaries together with the
binaries.
2020-03-14 01:48:45 +01:00
heinrich5991 a3163c5b9c Add support for dynamically loading an antibot module
Support for this feature is turned off by default. This feature allows
to integrate with noby's anticheat feature.
2020-03-11 01:58:50 +01:00
Dennis Felsing 50d848ec43
Merge pull request #1928 from sirius1242/demo_render2
Demo to video converter function.
2020-01-25 21:01:08 +01:00
ChillerDragon 01f42089f3 Add set_src to be more teeworlds compatible
thanks to @heinrich5991
2020-01-19 20:38:11 +01:00
heinrich5991 2fa80d0a67 Properly display hdiutil status in CMake
(cherry picked from commit cc2be456d4)
2020-01-05 17:51:19 +01:00
def df807a7486 -DVIDEORECORDER=ON instead of -DFFMPEG=ON, fix README
remove unused files
2020-01-01 16:56:54 +01:00
sirius 7710b88670 Merge branch 'master' of https://github.com/ddnet/ddnet into demo_render2 2020-01-01 18:36:49 +08:00
Dennis Felsing 45ad7be57c
Merge pull request #2021 from ElXreno/appdata
Add AppData manifest
2019-12-31 10:38:10 +01:00
ElXreno 44adf1878d
Added AppData manifest 2019-12-31 10:06:44 +03:00
Dennis Felsing 070d215ae0 Fix Travis Mac OSX build
ABI check failed, CMAKE_SIZEOF_VOID_P was thus not set and we look for
libs in wrong directory. Something seems to be wrong with the C/C++
compilers Travis is using. Not sure how to figure out more closely.
2019-12-30 13:19:33 +01:00
def fbbf7b3929 Fix MinGW build by temporarily disabling FORTIFY_SOURCE (fixes #2001) 2019-12-17 22:04:21 +01:00
def 28aabc5b91 Add map_convert_07 tool
Fixes https://github.com/ddnet/ddnet7/issues/20
2019-12-08 22:44:25 +01:00
ElXreno f6478067ae
Fixed installation on other than Ubuntu GNU/Linux distributions 2019-12-06 14:20:32 +03:00
sirius 1090953b7d update CMakeLists to make no ffmpeg need when ffmpeg off 2019-10-03 19:01:25 +08:00
sirius d9d1e8b309 add if defined to newly added lines 2019-09-30 20:54:19 +08:00
sirius 1375fbb95d add a button to render whole demo 2019-09-30 20:52:24 +08:00
HMH 461da64021 Basic cmake support for videorecorder 2019-09-30 20:49:35 +08:00
Dennis Felsing 0d9952b32a
Merge pull request #1748 from archimede67/pr_replays
Replay system (demo after-the-fact)
2019-06-11 18:13:26 +02:00
Corantin H 2e27a22927 typo + added an optional argument to save_replay + changed max replay length and fixed cl_notification_time values 2019-06-02 15:34:01 +02:00
Corantin H 761e73a131 should be thread safe now + moved demoedit to a new file 2019-05-31 20:42:28 +02:00
Ryozuki bd1f6be080
add .desktop and ico installation 2019-05-26 18:11:48 +02:00
Ryozuki ed5b96c6b9
fix modern cmake version warnings 2019-05-11 12:00:21 +02:00
Learath 5e5def314f Add tests 2019-04-24 23:53:38 +03:00
bors[bot] 526af034dd Merge #1620
1620: Rewrite of prediction code, with additional prediction (updated) r=def- a=trml

This is a reworked attempt at a rewrite of the prediction code (#464), to allow for more client side prediction. It doesn't fix the duplication of server code, but the client code should otherwise be cleaner. This includes separating prediction code out of gamecore/gameclient, and a refactor of the rendering of predicted characters.

There is also prediction for some new things, and some other changes:
- prediction of laser, shotgun, ninja, fng hammer, pickups and ddrace tiles (freeze/unfreeze tiles with cl_predict_freeze)
- laser and bullets are rendered when you fire them and bullets don't go through walls (when both cl_antiping_grenade and cl_antiping_weapons are enabled)
- antiping for flags
- prediction of dummy input
- an additional smoothing option that attempts to make antiping less jumpy (cl_antiping_smooth)

Co-authored-by: trml <trml@users.noreply.github.com>
Co-authored-by: trml <trml@noreply.github.com>
2019-04-23 17:11:21 +00:00
Dmitry Marakasov e404d6fd63 Fix platform-specific client libraries for Linux
Do not hardcode library names, detect and depend on them properly instead.
2019-04-23 18:15:30 +03:00
trml 0b3f3b03b5 Rewrite of prediction code, with additional prediction 2019-04-21 16:12:20 +02:00
Dennis Felsing 3ac2e0a06a
Merge pull request #1617 from def-/pr-ninja-compiler-color
Add compiler colors when using ninja
2019-04-14 22:00:53 +02:00
bors[bot] 826a7781ae Merge #1621
1621: Actually enable -Wuseless-cast r=heinrich5991 a=def-

It's not supported in C and we only checked using a C compiler.

Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2019-04-12 00:08:19 +00:00
Learath b342048dad Actually add crypto includes to the target 2019-04-11 22:00:33 +02:00
Dennis Felsing cde07b420b Implement changes suggested by -Wuseless-cast
But don't enable it yet because I'm not sure what the best way is.
2019-04-11 19:54:43 +02:00
def 1d09dfa004 Add compiler colors when using ninja 2019-04-11 08:12:40 +02:00
Dennis Felsing ed34dcfec5
Merge pull request #1602 from def-/pr-explain-tiles
Explain game tiles and entities in editor (fixes #1600)
2019-04-10 17:38:22 +02:00
def fe432b8ae4 Enable a few more GCC warnings 2019-04-09 22:05:21 +02:00
def eda16acbca Explain game tiles and entities in editor (fixes #1600)
- Explanations by Lady Saavik taken from https://ddnet.tw/explain/
- CCW/CW were mixed up in enum names, fixed
- Make sure that the texts fits, otherwise reduce font size
- Still need explanations for Portal tiles
2019-04-08 19:39:56 +02:00
heinrich5991 e44b1ca986 Use OpenSSL md5 if it is available
Fixes #1582.
2019-04-06 02:56:29 +02:00
def 985c0153c7 cmake: Warn on unknown CMAKE_BUILD_TYPE (fixes #1334) 2019-03-19 22:14:58 +01:00
heinrich5991 632e91da3a Add a notification when files are not sorted in CMake
Would've solved the problem in teeworlds/teeworlds#2039 faster.

(cherry picked from commit fbdc6d69be)
2019-03-07 12:23:54 +01:00
def bc91659aa8 Get GAME_RELEASE_VERSION back, fix compatibility filter in server browser 2019-03-06 21:02:06 +01:00
def deb2494692 Don't suggest to downgrade, clean up versioning (fixes #1440) 2019-03-03 20:31:23 +01:00
def faa3cc195d UTF8 nocase compare & use for chat TAB completion
- As suggested by Arseniy Zarche
- Also updated confusables to Unicode 12
2019-01-09 08:31:03 +01:00
yangfl 754e6befb3 CMakeLists.txt: Add TESTRUNNER_ARGS
Make it easy to disable certain tests if they can't be run.
2019-01-06 14:17:06 +08:00
yangfl b704fd95e1 CMakeLists.txt: Let compiler tell its arch 2018-12-24 20:47:31 +08:00
def 77c086d617 Another CMake fix 2018-12-23 23:18:56 +01:00
def 280ed3fc3d CMake: Move -lpthread to the very end to fix Linux linking 2018-12-23 23:13:41 +01:00
Dennis Felsing 5c18d6c481 Remove /modhelp (fixes #1401) 2018-12-12 10:05:44 +01:00
heinrich5991 9ef200cd4a Revert "CMakeLists.txt: Replace PythonInterp with Python"
This reverts commit c1523d9fc3.

Fixes #1352.
2018-10-20 14:37:12 +02:00
yangfl c1523d9fc3 CMakeLists.txt: Replace PythonInterp with Python
FindPythonInterp is deprecated since CMake version 3.12. Use Python to
automatically detect Python 3 or 2.
2018-10-11 08:57:56 +08:00
heinrich5991 4660e0a680 Add support for extra map items in datafiles
This works by utilizing the good old UUIDs – this way we can make sure
that we don't clash with other people extending the map format.
2018-10-08 23:05:56 +02:00
Dennis Felsing e8bd8459a6 Fix #1325 2018-10-04 09:25:41 +02:00
Dennis Felsing a95032b633 Apply heinrich5991's fix for #1324 2018-10-04 08:39:43 +02:00
Dennis Felsing b0759830b7
Merge pull request #1300 from Learath2/dd_pr_autoupdateflag
CMake option to disable autoupdater. Closes #1292
2018-10-02 08:04:12 +02:00
heinrich5991 81408cac4e Debug mode should only be default if DEV is set, release otherwise
Fixes #1308.
2018-09-30 19:01:43 +02:00
Learath 2696ac134c Handle the platform differences in CMake. 2018-09-20 14:06:18 +02:00
Learath 3852f0e720 CMake option to disable autoupdater. Closes #1292 2018-09-20 03:01:31 +02:00
Dennis Felsing c7941db9d4 Static linking only when PREFER_BUNDLED_LIBS (closes #1295) 2018-09-19 07:58:17 +02:00
heinrich5991 cb09161dec Add a proper make install command
It will install data into `share/ddnet`, client and server binaries into
`bin` and tools into `lib/ddnet`.

Fixes #1269.
2018-08-26 21:44:31 +02:00
heinrich5991 f7afd76292 (Re-?)add proper install target
This puts binaries in `bin` and the data dir into `share/ddnet`.
2018-08-21 21:53:08 +02:00
heinrich5991 8d04e7e5e1 Share libcurl resources across requests
Use the libcurl-share interface to share DNS cache and connections
between different requests.

If compiled with OpenSSL, libcurl can only be safely used from multiple
threads for OpenSSL >= 1.1.0, but this problem is not newly introduced
by this commit: According to libcurl-thread(3):

>OpenSSL <= 1.0.2 the user must set callbacks.
>
>https://www.openssl.org/docs/man1.0.2/crypto/threads.html#DESCRIPTION
>
>https://curl.haxx.se/libcurl/c/opensslthreadlock.html
2018-07-11 20:17:21 +02:00
yangfl 81a39c229b Fix typo 2018-07-10 17:29:02 +08:00
heinrich5991 67a3042051 Fix Mac linking for cross-compilation
The `Security` framework is now needed on all targets because we link
libcurl everywhere.
2018-06-27 12:35:01 +02:00
Dennis Felsing 6c1e50bba5 Revert "No Crypto on Mac OSX"
This reverts commit fd1cdbfa74.
2018-06-27 10:02:29 +02:00
Dennis Felsing fd1cdbfa74 No Crypto on Mac OSX 2018-06-27 09:47:53 +02:00
heinrich5991 ca8fcc823c Use more secure hash function for map downloads
SHA256 was chosen because it is reasonably standard, the file names
don't explode in length (this rules out SHA512) and it is supported by
basically all versions of OpenSSL (this rules out SHA512/256 and SHA3).

The protocol is changed in a backward compatible way: The supporting
server sends the SHA256 corresponding to the map in the `MAP_DETAILS`
message prior to sending the `MAP_CHANGE` message. The client saves the
SHA256 obtained from the `MAP_DETAILS` message until the next
`MAP_CHANGE` message.

For servers not supporting this protocol, the client falls back to
simply opening maps like in the previous scheme.

Remove the `map_version` tool, it is not being used and would have been
a little bit effort to update.

Use the OpenSSL implementation of SHA256 if it is supported, otherwise
fall back to a public domain one.

Fix #1127.
2018-06-24 17:04:50 +02:00
heinrich5991 36694d3852 Add a way to call for external moderator help
This is done by HTTP POSTing to a location specified by
`sv_modhelp_url`. We also provide a `src/modhelp/server.py` which can
use theses POSTs to forward them to Discord servers.

The POST contains a JSON object payload, with the keys `"port"` which
contains the server port, `"player_id"` which contains the calling
player's client ID, `"player_name"` which contains the calling player's
nick and `"message"` which is the user-specified message.

Make JSON-escaping function public, add tests and fix bugs uncovered by
these tests.

Supersedes #1129.
2018-06-19 23:27:35 +02:00
def 9c29d83d32 Try statically linking libgcc and libstdc++ on Linux too 2018-05-22 19:42:48 +02:00
def f19f4530d3 Revert "Try removing manifest"
This reverts commit 6df2ad55ed.
2018-05-09 22:06:52 +02:00
def 6df2ad55ed Try removing manifest
Causes bug with Intel driver using OpenGL2:
https://stackoverflow.com/questions/34676697/embedding-manifest-into-the-application-binary-breaks-opengl-2
2018-05-07 20:57:06 +02:00
heinrich5991 81aeb30654 Also add a console command to enable map compatibility mode 2018-05-01 12:38:33 +02:00
heinrich5991 4576dae6aa Add infrastructure for special-casing maps 2018-03-24 14:00:41 +01:00
heinrich5991 11304661db Put name ban stuff into a separate file
Fix a bug when overlong names could be used to circumvent name bans. Add
tests for name bans.
2018-03-14 02:35:31 +01:00
heinrich5991 a71cc2a55b Execute git_revision.py in the source directory
Previously, if using an out-of-source build directory, git would report
an error and no revision string would be added to the final executable.
2018-03-10 00:58:10 +01:00
heinrich5991 31a3e8d4c0 Add possibility to ban players by name
This uses the Unicode confusable data together with judging how close
two strings are by using the Levenshtein distance.

Adds the commands `name_ban`, `name_unban` and `name_bans`. Kicks
players who join using a banned name and doesn't allow ingame players to
change their names to the banned ones.
2018-03-09 20:30:27 +01:00
heinrich5991 d118fbd5e0 Fix build with -DCLIENT=OFF on macOS 2018-03-06 19:25:59 +01:00
heinrich5991 458804c059 Make game dependency on generated protocol.h explicit 2018-03-02 03:42:35 +01:00
heinrich5991 1387ee9a3a Regenerate version file on git changes
Previously, this file had to be manually deleted if you wanted to have a
new version compiled in.
2018-03-01 16:50:29 +01:00
heinrich5991 1578e272a3 Ignore old generated files if still present
Our build system used to put generated files into `src/game/generated`,
now it's using `${PROJECT_BUILD_DIR}/src/game/generated`. Prefer the
ones in `${PROJECT_BUILD_DIR}/src/game/generated`.
2018-02-20 17:11:18 +01:00
heinrich5991 ac7e92df5e Rerun wavpack version detection when the library changes 2018-02-20 17:10:52 +01:00
def 491ccc85e1 Revert "Fix system wavpack (fixes #1041)"
This reverts commit 295b8a663a.
2018-02-18 15:35:20 +01:00
def 295b8a663a Fix system wavpack (fixes #1041) 2018-02-18 09:36:35 +01:00
heinrich5991 73c03544b4 Support older wavpack versions 2018-02-17 01:35:07 +01:00