Commit graph

779 commits

Author SHA1 Message Date
def 35a8aa5146 Revert "Don't time out on info2.ddnet.tw"
This reverts commit e936a86b5b.
2020-09-04 18:23:43 +02:00
Dennis Felsing 27f8402755
Merge pull request #2735 from def-/pr-timeout
Don't time out on info2.ddnet.tw
2020-09-04 16:26:03 +02:00
def e936a86b5b Don't time out on info2.ddnet.tw 2020-09-04 15:36:00 +02:00
def 80df6ca3b1 Remove temporary files after failure 2020-09-04 15:32:35 +02:00
def d6f74eb654 Don't update news when something was only removed 2020-09-03 12:32:13 +02:00
heinrich5991 674d7856fd Begin the groundwork to set a custom status on Steam
Currently, this just shows the current map in the status. Might need
localization data in Steamworks to be available to work in languages
other than English.

CC #2642
2020-09-02 00:32:22 +02:00
def e0cbd3b888 Remove fallback for Teeworlds' settings.cfg (partially fixes #2698) 2020-09-01 09:55:14 +02:00
heinrich5991 db52340ab1 Use the correct name for determining ranks
Was broken by the recent Steam name update.
2020-08-29 12:39:57 +02:00
def df82d24ffc Remove panic quit button 2020-08-26 15:38:39 +02:00
heinrich5991 bfe7b3cbeb Use player name prefixed with "[D] " for the dummy name 2020-08-25 16:22:03 +02:00
heinrich5991 5d83e9177f Use player name from the Steam API as fallback
Fixes #2605.
2020-08-25 16:21:58 +02:00
heinrich5991 3c6f05887f Add SteamAPI + stub 2020-08-25 13:03:20 +02:00
Dennis Felsing dbb9c662ba
Merge pull request #2617 from Jupeyy/pr_font_fallback
Font fallback
2020-08-20 20:34:48 +02:00
def a388b709d6 Generalize loading fallback fonts 2020-08-20 19:48:08 +02:00
def 178d864ec9 Switch to Source Han Sans font 2020-08-20 13:55:03 +02:00
def 446526486d Use two fonts, one as explicit fallback
Merging with fontforge had problems, for example for the Bei (U+5317) in
Beijing, see https://github.com/fontforge/fontforge/issues/4432
2020-08-20 11:13:08 +02:00
def c458ee52b0 Remove need for custom certificate
in anticipation of using CloudFlare
2020-08-19 17:54:05 +02:00
def 1394ac0fc4 Merge DejaVuSansCJKName with DejavuWenQuanYiMicroHei and use it for all (fixes #2593)
got them merged with fontforge, finally looks good.

allows reading CJK for everyone independent of language chosen.

Hopefully the lags are gone.
2020-08-19 12:31:55 +02:00
def 07f18d4ac4 Client: Support .map file drag-and-drop to open map in editor
As suggested by Lady Saavik
2020-08-02 13:00:01 +02:00
Fireball 918f321dfb Improved dummy switching
- Fix a use-after-free when there are no new snapshots for the cl_dummy tee after the switch.
- When one of the tees is hooked, cycling through them will no longer show phantom hook for the other tee.
- Dummy switch might happen a bit quicker since it doesn't depend on receiving new snapshots.
- Simplified code: m_LastDummy2 is no more.
2020-07-12 19:14:18 +01:00
bors[bot] 160a7b71fb
Merge #2279 #2327
2279: Only forbid resizing when videorecorder is recording r=heinrich5991 a=def-



2327: List data files in `CMakeLists.txt` r=def- a=heinrich5991

This fixes missing files for people recompiling when we add new data
files.

Co-authored-by: def <dennis@felsin9.de>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-06-23 08:48:05 +00:00
def 83c820db09 Fix some naming conventions in videorecorder 2020-06-23 08:00:03 +02:00
Learath b0e5a37fa9 Do message translation differently 2020-06-19 20:27:15 +03:00
Learath 345798f9e1 Don't miss dummy disconnects. Fix #2257 2020-06-11 13:33:08 +03:00
heinrich5991 0d7872c79e Send DDNet version early in the connection process
This gets rid of the problem that we don't know whether we should send
full snapshots to clients because they haven't told us about them being
DDNet yet.
2020-05-22 17:58:41 +02:00
trml 99baf219d0 Revert "Remove the dummy prediction"
This reverts commit 681f30950c.
2020-04-18 22:16:25 +02:00
Arda Demir 8648b1a7dc Don't push notification when active 2020-04-15 00:37:58 +03: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
def dde88bbd77 Fix division by 0 (fixes #2131)
Caused by https://github.com/ddnet/ddnet/pull/2119/
2020-04-10 20:54:05 +02:00
Jupeyy 888223a529 Change last render logic, when inactive 2020-04-06 03:18:30 +02:00
Learath 61e5667624 Streamline platform client 2020-03-28 02:20:16 +03:00
sirius 3c085b53ed fix bug that demo can't play when demo pause and use start_video 2020-03-26 18:25:50 +08:00
bors[bot] 6e78deb0c4
Merge #2069 #2076 #2095
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>
2020-03-23 17:04:15 +00:00
def 127372b03d Fix timeout protection (fixes #2067)
CNetMsg_Cl_Say should not be a system message
2020-02-22 09:55:17 +01:00
ChillerDragon 9e0f6d2ce0 Move global configuration out of client interface 2020-02-19 11:24:58 +01:00
def 31ae4c4d5a use pid in file names of temporary files
to prevent race conditions with multiple clients running when saving
maps, config on quit, during upgrade
2020-02-12 23:14:30 +01:00
bors[bot] 72fcf9caa8
Merge #2050
2050: Fix race condition. Closes #2004 r=def- a=Learath2

I guess a new state is better then a global variable

Co-authored-by: Learath <learath2@gmail.com>
2020-01-26 15:49:30 +00:00
Learath cc8dea393d Address feedback 2020-01-25 21:05:33 +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
Learath 40dc9692aa Fix race condition. Closes #2004 2020-01-25 17:48:32 +01:00
bors[bot] 7a3ebd5948
Merge #2041
2041: Strip spaces in browser (server name) r=heinrich5991 a=ChillerDragon

before:
![image](https://user-images.githubusercontent.com/20344300/72688976-b45f1d00-3b0c-11ea-8920-5328c6d721f7.png)
after:
![image](https://user-images.githubusercontent.com/20344300/72688970-9db8c600-3b0c-11ea-8636-330218d75ca1.png)


Co-authored-by: KillaBilla <robomastermail@googlemail.com>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-01-25 12:45:36 +00:00
bors[bot] 749929431a
Merge #2040
2040: fixed faulty message id r=heinrich5991 a=ChillerDragon

(cherry picked from commit 9023796d27)

Co-authored-by: oy <Tom_Adams@web.de>
2020-01-25 12:40:14 +00:00
def 8779be6bd8 Looks like my comment was wrong... 2020-01-25 07:37:28 +01:00
12pm ec42291756 Allow filtering by name in status
Easier to find players when the server is full
2020-01-24 14:44:54 +01:00
ChillerDragon 610976eddd Fix max snapshot size 2020-01-22 13:44:05 +01:00
ChillerDragon ee825f42e9 Add snap check for dummy 2020-01-21 22:20:09 +01:00
oy 49168da784 fixed typo
(cherry picked from commit 3deb58d409)
2020-01-21 22:17:20 +01:00
oy ef3bce204c added some checks to snap handling
(cherry picked from commit a09d498bc9)
2020-01-21 22:16:28 +01:00
KillaBilla ba1abac52f remove leading and trailing space from server name and forbit the use of multiple spaces
(cherry picked from commit a9cc1e8de2)
2020-01-19 22:28:19 +01:00
oy 1b4131a7fd fixed faulty message id
(cherry picked from commit 9023796d27)
2020-01-19 21:30:12 +01:00
sirius 483885b6b1 try to solve the problem that video not fluent caused by previous commits 2020-01-08 14:25:06 +08:00
sirius 3baba93ed2 fix the problem of audio when video fps is low 2020-01-06 11:57:24 +08:00
sirius 0be4629cc1 forget to deal with pError 2020-01-04 17:44:12 +08:00
sirius 3967ddba00 replace same operations by call Demoplay_Play() when rendering video by render button 2020-01-04 17:08:00 +08:00
sirius 521e822bbb update map fix part when rendering video 2020-01-04 17:02:00 +08:00
Learath d2fad6c79a Fix demo bug 2020-01-03 12:13:40 +03:00
def 017b8c3621 Move DDNet-custom json code out of external directory (fixes #2022) 2020-01-01 20:07:04 +01:00
sirius 7710b88670 Merge branch 'master' of https://github.com/ddnet/ddnet into demo_render2 2020-01-01 18:36:49 +08:00
Learath 65ec25a8a1 Fix small bug with demos that don't include a map 2019-12-18 13:51:08 +01:00
Dennis Felsing 4171e8751f
Merge pull request #1939 from Learath2/dd_pr_demoload
Always try extracting map before fail. Fix #1886
2019-12-17 21:20:10 +01:00
ChillerDragon 4a6a85124a Remove some unused includes 2019-12-14 10:20:42 +01:00
Magnus Auvinen 6a6a5f00c9 more typesafty in the graphics. introduced the IGraphics::CTextureHandle
Edited by @ChillerDragon to fit in ddnet
(cherry picked from commit cb95e8dfe8)
2019-11-22 18:08:37 +01:00
ChillerDragon 9c3447dd17 Use an enum for netclient indices 2019-11-10 13:46:27 +01:00
sirius e910fe404f Direct mix when recording audio now, and seems solve the stuck problem when
DDNet is not the focusing window
2019-11-02 18:21:47 +08:00
Sirius 45263ebdd0
Merge branch 'master' into demo_render2 2019-10-31 22:08:49 +08:00
Learath 7cdd050fee Add SHA to demos. Bump Demo Version 2019-10-14 02:27:08 +02:00
Learath b2cefb20ed Always try extracting map before fail. Fix #1886 2019-10-13 18:46:28 +02:00
Learath 49a2a47dc8 Fix #1888 2019-10-02 20:44:03 +03:00
sirius 6acae69d96 repair the segment fault bug in con_startvideo 2019-10-02 09:52:54 +08:00
sirius b0ee5671ff rebased to ef32fc4 2019-10-02 09:51:33 +08:00
sirius 605da124d4 add button to adjust render speed 2019-09-30 20:54:42 +08:00
sirius 1c150106f8 demoplayer disconnect when render finished 2019-09-30 20:54:42 +08:00
sirius d9d1e8b309 add if defined to newly added lines 2019-09-30 20:54:19 +08:00
sirius 562dffe800 segment fault repaired (don't nest others' function thoughtless) 2019-09-30 20:52:25 +08:00
sirius a71339366b add function to appoint video name, but will segment fault 2019-09-30 20:52:25 +08:00
sirius 1375fbb95d add a button to render whole demo 2019-09-30 20:52:24 +08:00
H-M-H 7ae4b39574 made recording demos work
- videorecorder only works for recording demos now
- demoplayer was modified to allow controll over the time that passed
  in order to get perfect fps, IVideo controlls how much time passed,
  basically every rendercall sets the time to record the next frame
2019-09-30 20:48:47 +08:00
H-M-H 94860c935f raw H.264 --> mp4 \o/ 2019-09-30 20:46:45 +08:00
H-M-H c5c171a3cb initial work on a video recorder 2019-09-30 20:46:45 +08:00
Corantin H 043859b66d Fix keeping tmp replay demo file on map change 2019-08-21 22:49:21 +02:00
heinrich5991 ca03ab6337 Address Learath2's comments 2019-06-14 00:28:59 +02:00
heinrich5991 a7857d58c4 Remove now-useless function in CGameClient
(incorporate @fokkonaut's feedback)
2019-06-14 00:28:59 +02:00
heinrich5991 f31e081bd4 Remove all checking for the gametype in the game
OK, maybe not actually remove because it is kept for fallback when the
new method isn't available.

The whole gametype parsing business had the same downsides as user agent
parsing on the web, hence I removed it while keeping behavior the same.

This allows servers to explicitly opt in or out of certain bug
workarounds and other client behavior. This increases the complexity of
different configurations that are available in the client (which is a
bad thing).
2019-06-14 00:28:59 +02: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
archimede67 0e62b4b9b9 fix code style 2019-06-05 19:49:00 +02:00
archimede67 65353c2030 fix 2019-06-05 19:36:45 +02:00
archimede67 929bf57bf6 infinite length and a lot of changes including notifications are now chat messages 2019-06-05 19:17:55 +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
bors[bot] 647bbcc259 Merge #1732
1732: Implement ISDDNET and Time Score cleanly r=def- a=Learath2

This is an attempt at implementing the two things in a cleaner way.

Deprecated #1320 
Willfix #1622  soon(tm)

Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: Learath2 <learath2@gmail.com>
2019-05-31 10:12:10 +00:00
Corantin H 709a6c2924 Moved notification outside of the demoedit job, so now we keep track of all the editjbos and show the notification when they are done in the client loop 2019-05-28 13:24:55 +02:00
Corantin H 7c79b48da5 The demoeditors are now initialised in the constructor of the job 2019-05-26 21:06:43 +02:00
Corantin H cbcb8d4830 The slicing is now done with a new demoeditor each time we save a replay 2019-05-25 15:16:03 +02:00
Corantin H e35951dedc demo slicing is now done in a separate task to prevent ingame freeze 2019-05-25 00:24:13 +02:00
Corantin H bf435e8b72 coding style + added cl_notification_time 2019-05-23 23:17:12 +02:00
Corantin H 858a85e7b5 fixed some typo errors, fixed code style and added a slider setting to set the replay length 2019-05-21 23:59:57 +02:00
Corantin H e6ce2c0c46 Renamed class CNotification to CHudNotification 2019-05-21 18:50:41 +02:00
Corantin H 857656e8db Implemented a small notification system, fixed some problems with removing tmp files and update the recorder status when checking/unchecking the setting "Enable replays". 2019-05-21 17:21:53 +02:00
Corantin H ac4d7085c5 Switched to a proper new recorder instead of using the auto one 2019-05-21 12:49:19 +02:00
Learath 23255a04b3 Remove time-score 2019-05-21 10:24:07 +02:00
Learath2 c7d8ca129a Rerevert #1187 2019-05-21 10:51:43 +02:00
Corantin H 817bdaf9cd initial work on a replay system 2019-05-20 23:55:40 +02:00
Learath 66b1b44e07 Style 2019-05-20 00:18:19 +02:00
Kpro998 0856fec38e fix particles, emote wheel, zoom and score for blockworlds 2019-05-19 22:11:16 +01:00
12pm ea324592c6 Change col to color in variable names 2019-05-10 23:34:21 +02:00
Learath 588acdda0d Consolidate color configs, extend debugging 2019-04-27 02:02:31 +03:00
Learath 65a17599e1 Add ColorHSVA, phase out more vec3's 2019-04-26 15:06:32 +03:00
Learath cc36af73be Cleanup colors 2019-04-24 23:53:26 +03:00
trml 681f30950c Remove the dummy prediction 2019-04-23 02:01:17 +02:00
trml c5c837e0e3 Revert dummy input fix (which wasn't a sufficient fix) 2019-04-21 16:12:21 +02:00
trml 0b3f3b03b5 Rewrite of prediction code, with additional prediction 2019-04-21 16:12:20 +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
bors[bot] 279eeed9fc Merge #1614
1614: Remove unmaintained Android code (fixes #1575) r=heinrich5991 a=def-

Thoughts?

Co-authored-by: def <dennis@felsin9.de>
2019-04-11 00:02:17 +00:00
def ab9912c9c1 Rcon console: Don't show duplicates
when connecting to next server after old server shutdown
2019-04-10 23:31:06 +02:00
def 94f3d97ddf Remove unmaintained Android code (fixes #1575) 2019-04-10 19:40:50 +02:00
Dennis Felsing 7c0f4c9856 Address reviewer comments 2019-04-10 09:00:06 +02:00
def cca80da554 Enable dragging demo file into client to play it directly 2019-04-08 21:43:59 +02:00
bors[bot] b25c5275d5 Merge #1585
1585: Use OpenSSL md5 if it is available r=def- a=heinrich5991

Fixes #1582.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2019-04-06 15:43:24 +00:00
12pm 98bfeb3e72 Notify about chat mentions in editor 2019-04-06 11:32:50 +02:00
heinrich5991 e44b1ca986 Use OpenSSL md5 if it is available
Fixes #1582.
2019-04-06 02:56:29 +02:00
def ad70456687 Some more dummy fixes (might fix #1415) 2019-04-02 22:02:55 +02:00
Dennis Felsing 138a9c6ff7
Merge pull request #1545 from def-/pr-load-font
Move out common font loading into method
2019-03-28 23:38:24 +01:00
def 9e25f4c113 Move out common font loading into method 2019-03-28 21:51:42 +01:00
def 8908102536 Add cl_confirm_disconnect_quit_time (fixes #1530)
Number of minutes of active racing time before being asked to confirm
disconnecting, disconnecting dummy or quitting through GUI. Defaults to
20 minutes, -1 to disable, 0 to always enable.

Also removed confirmation to quit when in main menu, except when having
an unsaved map in editor.

Spectate and kill should already be safe thanks to server-side kill
protection.
2019-03-25 20:10:38 +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
heinrich5991 c24c6274b6 Decode extended packets for the dummy as well 2019-01-14 15:42:37 +01:00
fokkonaut b2b6d25a92 add missing semicolon 2019-01-14 08:01:20 +01:00
fokkonaut d156ac47b7 forgot one 2019-01-14 08:01:20 +01:00
fokkonaut fe4426b008 fixed ddrace score (time score) 2019-01-14 08:01:20 +01:00
fokkonaut 0e842359ad Add DDRace Score NETMSG 2019-01-14 08:01:20 +01:00
def caa9e4ba29 Fix auto save statboard limit (fixes #528) 2019-01-11 12:07:12 +01:00
def 1ece46aa4e Revert "setlocale for XOpenIM with compose key"
Has been fixed: https://bugzilla.libsdl.org/show_bug.cgi?id=3102

This reverts commit 6c4e6c5c44.
2019-01-07 21:27:09 +01:00
def 6846a6ecad Fixes and stress improvements 2018-12-17 20:05:50 +01:00
Dennis Felsing e9ee74a941
Merge pull request #1402 from ddnet/remove-modhelp
Remove /modhelp (fixes #1401)
2018-12-17 14:42:07 +01:00
def c4d437bc0f Make client launchable from browser
By needs from https://github.com/teeworlds/teeworlds/pull/1478/files
2018-12-13 19:57:34 +01:00
Dennis Felsing 5c18d6c481 Remove /modhelp (fixes #1401) 2018-12-12 10:05:44 +01:00
Learath 0c13c8cebb Handle the windows console properly. Fixes #1394 2018-12-07 23:52:33 +01:00
Learath2 21609d43fb Fix the beep. Fixes #985 2018-11-22 17:37:52 +01:00
heinrich5991 a36250ba34 Use two threads for the server thread pool
This might help with long DNS timeouts.
2018-10-07 12:47:32 +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 e295a121e4 DDNET_INFO(_TMP) 2018-08-23 09:57:35 +02:00
heinrich5991 2ad4c86632 Fix a typo 2018-08-13 21:35:49 +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
ZombieToad 712fca8adc fixes
thnx to Hey, Fuck you!
2018-07-04 04:35:06 +01:00
def 5e1f62fe7c Fix http map download... 2018-06-30 09:47:45 +02:00
heinrich5991 ab55bcd9c8 Also search for maps with sha256 in downloadedmaps
Additionally, forget the extra map details after disconnecting, they
shouldn't be used for the next server.
2018-06-24 17:04:50 +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
bors[bot] ebb9481857 Merge #1157 #1160
1157: Add a way to call for external moderator help r=Learath2 a=heinrich5991

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.

1160: Fix warning about incompatible function pointers r=Learath2 a=heinrich5991

This comes at the cost of one allocation per started thread. This should
be okay because we're about to invoke a syscall anyway.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2018-06-24 14:12:48 +00:00