Commit graph

1752 commits

Author SHA1 Message Date
heinrich5991 070504b5c8 Update ghost format to v6: Replace CRC with SHA256
To be friendly to other implementors of the format, the CRC field is now
zeroed out instead of completely gone.

Drop support for v2 and v3 of the ghost format, the ghost files should
have been automatically converted by the client already.
2020-10-14 17:08:58 +02:00
heinrich5991 6ff53358d3 Remove code for CRC in most places, except where needed for net compat
This should path the way to remove it altogether in the future.
2020-10-14 17:08:58 +02:00
def 7f38bc0941 Fix clang-analyzer-core.uninitialized.Assign
/media/ddnet/src/engine/shared/dilate.cpp:32:22: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
2020-10-14 15:45:47 +02:00
def a4f13ed4a8 Fix clang-analyzer-optin.portability.UnixAPI
and mark some false positives

/media/ddnet/src/engine/client/backend_sdl.cpp:329:30: warning: Call to 'malloc' has an allocation size of 0 bytes [clang-analyzer-optin.portability.UnixAPI]
2020-10-14 15:45:43 +02:00
Redix d172286c6c Fix out of bounds access in snapshot delta handling 2020-10-11 18:42:06 +02:00
bors[bot] 91619b9886
Merge #3051
3051: Fix some undefined behaviour r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-10-11 14:46:44 +00:00
def 3d76010fe9 aPastIndecies -> aPastIndices 2020-10-11 16:37:03 +02:00
def 346853e817 Signed overflow is undefined in CSnapshot::Crc
src/engine/shared/snapshot.cpp:72:8: runtime error: signed integer overflow: -1297193910 + -1824658838 cannot be represented in type 'int'
    #0 0x565165b0687d in CSnapshot::Crc() /media/ddnet/src/engine/shared/snapshot.cpp:72:8
    #1 0x565165c4d20b in CClient::ProcessServerPacket(CNetChunk*) /media/ddnet/src/engine/client/client.cpp:1981:49
    #2 0x565165c5d960 in CClient::PumpNetwork() /media/ddnet/src/engine/client/client.cpp:2589:6
    #3 0x565165c67a71 in CClient::Update() /media/ddnet/src/engine/client/client.cpp:2856:2
    #4 0x565165c72f4e in CClient::Run() /media/ddnet/src/engine/client/client.cpp:3237:4
    #5 0x565165c94b7e in main /media/ddnet/src/engine/client/client.cpp:4341:11
    #6 0x7fba5af2c151 in __libc_start_main (/usr/lib/libc.so.6+0x28151)
    #7 0x5651659e1e0d in _start (/media/ddnet/DDNet+0x705e0d)
2020-10-11 16:37:03 +02:00
def e6b0283722 No null pointer to mem_copy in SendControlMsg
src/base/system.c:261:15: runtime error: null pointer passed as argument 2, which is declared to never be null
/usr/include/string.h:44:28: note: nonnull attribute specified here
    #0 0x565165b348dc in mem_copy /media/ddnet/src/base/system.c:261:2
    #1 0x565165aeb27d in CNetBase::SendControlMsg(NETSOCKET, NETADDR*, int, int, void const*, int, int, bool) /media/ddnet/src/engine/shared/network.cpp:313:2
    #2 0x565165aeeb4e in CNetConnection::SendControl(int, void const*, int) /media/ddnet/src/engine/shared/network_conn.cpp:169:2
    #3 0x565165af08c5 in CNetConnection::Feed(CNetPacketConstruct*, NETADDR*, int) /media/ddnet/src/engine/shared/network_conn.cpp:367:6
    #4 0x565165aec7d2 in CNetClient::Recv(CNetChunk*) /media/ddnet/src/engine/shared/network_client.cpp:94:174
    #5 0x565165c5d5ea in CClient::PumpNetwork() /media/ddnet/src/engine/client/client.cpp:2571:24
    #6 0x565165c67a71 in CClient::Update() /media/ddnet/src/engine/client/client.cpp:2856:2
    #7 0x565165c72f4e in CClient::Run() /media/ddnet/src/engine/client/client.cpp:3237:4
    #8 0x565165c94b7e in main /media/ddnet/src/engine/client/client.cpp:4341:11
    #9 0x7fba5af2c151 in __libc_start_main (/usr/lib/libc.so.6+0x28151)
    #10 0x5651659e1e0d in _start (/media/ddnet/DDNet+0x705e0d)
2020-10-11 16:37:03 +02:00
heinrich5991 a2b3f45f8b Reintroduce CMDFLAG_TEST
Add some more helpful messages for executing test/game commands.
2020-10-11 16:27:28 +02:00
Andrii 26a07c804f Disallow game-related commands unless testing is enabled 2020-10-11 16:02:10 +02:00
bors[bot] 1a79fdec82
Merge #3053
3053: Optimize uuid lookup r=heinrich5991 a=Jupeyy

Already wrote that patch when i noticed its not about this, maybe we can use it, else nvm

Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2020-10-11 13:07:36 +00:00
def 4327194d27 Add GUI & Game sound volume sliders
As requested by Pipou
2020-10-11 10:16:38 +02:00
Jupeyy 9e8cbfea5d Optimize uuid lookup 2020-10-11 08:39:29 +02:00
Jupeyy bfe55728d2 fix c++ one definition rule for config 2020-10-07 08:06:26 +02:00
def 62dc12aacb Fix all Multiplication type alerts by CodeQL
> Multiplication result converted to larger type

> A multiplication result that is converted to a larger type can be a
> sign that the result can overflow the type converted from.

Example: https://github.com/ddnet/ddnet/security/code-scanning/17?query=ref%3Arefs%2Fheads%2Fmaster
2020-10-05 19:03:54 +02:00
def 74499e9336 Create more config_dir subdirectories at start (fixes #2992) 2020-10-03 21:09:19 +02:00
bors[bot] b27b54a051
Merge #2893 #2972 #2974
2893: Determine binary dir independently of data dir (fixes #2891) r=heinrich5991 a=def-

@Learath2 Could you check if this can be extended to also find the DDNet-Server executable on Mac?

2972: Add explicit button for current map as BG r=heinrich5991 a=def-



2974: Fix autoformatting wrt. generated files r=def- a=heinrich5991

Fix #2962.

Co-authored-by: def <dennis@felsin9.de>
Co-authored-by: Dennis Felsing <dennis@felsin9.de>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-10-02 17:43:04 +00:00
bors[bot] 839f0862fb
Merge #2968 #2969
2968: Create codeql-analysis.yaml r=heinrich5991 a=def-



2969: Print error when opening config file for writing fails r=heinrich5991 a=def-



Co-authored-by: Dennis Felsing <dennis@felsin9.de>
Co-authored-by: def <dennis@felsin9.de>
2020-10-02 17:35:09 +00:00
bors[bot] d2df9c6a66
Merge #2948 #2956 #2965
2948: Show File button in demo player r=heinrich5991 a=def-

to easily get the file instead of having to search for it in the file browser again. Complements #2946

2956: Add Background music volume slider r=heinrich5991 a=def-

as requested by hussainx3

2965: Clean up some data r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-10-02 16:56:17 +00:00
def 606701abff No more hardcoded binary paths for POSIX 2020-10-02 18:24:40 +02:00
def db01e068d9 Add Mac OSX standalone client handling
to find server executable
2020-10-02 18:19:41 +02:00
def 6a79cc3e59 Determine binary dir independently of data dir (fixes #2891)
@Learath2 Could you check if this can be extended to also find the
DDNet-Server executable on Mac?
2020-10-02 18:19:41 +02:00
Dennis Felsing 2ba9535529 Use warnings popups for some io failures 2020-10-02 16:06:16 +02:00
Dennis Felsing 5b50d4f310 Print error when opening config file fails 2020-10-02 11:11:34 +02:00
def ba258d7343 Add Background music volume slider
as requested by hussainx3
2020-09-30 10:06:55 +02:00
def 1b1d8f7964 Don't show wrong decisecs in game time in HUD 2020-09-29 22:58:34 +02:00
Dennis Felsing b88b33cea4
Merge pull request #2928 from Jupeyy/pr_multiple_pngs
Add changeable assets
2020-09-29 07:46:43 +02:00
Jupeyy 0e71a47708 Add customization 2020-09-28 23:21:32 +02:00
Jupeyy c951fc3ee4 Allow specifying texture LOD BIAS 2020-09-27 00:37:42 +02:00
def b178c7c74a Make sure headers compile standalone
Not planning to do this automatically, but at least cleaning it up once
provides some benefit. Every header should include what it uses.

$ for i in src/**/*.h; do j=${i#"src/"}; echo $j; echo "#include <$j>\nint main() { return 0; }" | /usr/bin/c++ -DCONF_OPENSSL -DCONF_SQL -DCONF_VIDEORECORDER -DCONF_WAVPACK_CLOSE_FILE -DCONF_WAVPACK_OPEN_FILE_INPUT_EX -DGAME_RELEASE_VERSION=\"15.0.5\" -DGLEW_STATIC -D_FORTIFY_SOURCE=2 -I/usr/include/freetype2 -I/usr/include/opus -I/usr/include/SDL2 -I/usr/include/wavpack -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -Isrc -I/usr/include/mysql -I/home/deen/sys/include/ -O2 -g -DNDEBUG -fdiagnostics-color=always -fstack-protector-all -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wformat=2 -Wno-nullability-completeness -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wrestrict -std=gnu++11 -o /dev/null -x c++ -; done

Ignored: tuning.h, variables.h, config_common.h, mapitems_ex_types.h, mapbugs_list.h, protocol7.h, teehistorian_ex_chunks.h, protocol_ex_msgs.h, config.h, config_variables.h, external, keynames.h
2020-09-26 21:50:27 +02:00
def 3be8a592e5 Run clang-format
Purely automatic change. In case of conflict with this change, apply the
other change and rerun the formatting to restore it:

$ python scripts/fix_style.py
2020-09-26 21:50:15 +02:00
def f74cc43f4c Remove pure server filters, add space for Countries/Types
Not so relevant anymore
2020-09-26 21:33:25 +02:00
def 9ab8de5718 fix clang-format 2020-09-24 19:05:30 +02:00
def 00b66362c3 Allow zooming on city mod 2020-09-24 19:05:30 +02:00
Jupeyy 8235df7752 Add menu background map 2020-09-23 23:38:28 +02:00
bors[bot] fddb8b34c0
Merge #2898 #2901 #2908
2898: Inform players that they are in team already r=heinrich5991 a=def-



2901: Remove failed downloaded files immediately r=heinrich5991 a=def-

Especially skins were only deleted after they were requested again

2908: Don't log skin downloading progress r=heinrich5991 a=def-

since it's not really interesting for most players, as long as things work fine

Co-authored-by: def <dennis@felsin9.de>
2020-09-22 14:57:20 +00:00
def 56b152e962 Remove failed downloaded files immediately
Especially skins were only deleted after they were requested again
2020-09-22 16:51:40 +02:00
bors[bot] 2a3b254b47
Merge #2890
2890: Finish /showothers 2 implementation on server r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-09-22 14:35:27 +00:00
Jupeyy 0ec7f1e1dc Fix dilate threshold & automatically apply dilate on embedded textures in the editor 2020-09-21 19:17:38 +02:00
def 35fc180559 Finish /showothers 2 implementation on server 2020-09-21 15:32:16 +02:00
清歌 059a2a0a35 fix websockets behavior in net_socket_read_wait 2020-09-18 21:28:17 +08:00
Dennis Felsing 514e974667
Merge pull request #2849 from def-/pr-max-requests
Increase br_max_requests to 100
2020-09-17 18:34:44 +02:00
def 3e58d8b756 Increase br_max_requests to 100
As suggested by BannZay on Discord. We scale down when we notice that
no responses arrive. The idea is that player's internet has become
faster than when DDNet started, so increasing the default is ok.
2020-09-17 17:41:14 +02:00
清歌 b5592cc204
fix websockets client link problem in xp
implement a simple version of inet_ntop by myself
2020-09-17 23:23:16 +08:00
def 24526d0fc8 Further websockets build fixes 2020-09-17 13:44:47 +02:00
bors[bot] edb4462f8a
Merge #2814 #2818
2814: Remove saving to other servers r=Learath2 a=def-

sv_sql_valid_servernames is no longer required

2818: Load fonts from memory (fixes #2810) r=Learath2 a=def-

Missing: Freeing the memory again. But not so important since we keep
the same fonts until end of process anyway in our case.

@QingGo Could you give this a try from the Github build artifacts? If not, I can provide you a nightly build.

Co-authored-by: def <dennis@felsin9.de>
2020-09-15 17:16:21 +00:00
QingGo d627b85202 add windows websockets client support 2020-09-15 20:54:33 +08:00
Jupeyy 3eea399d37 Rename quality texture and compressed texture, because they should not be used 2020-09-14 21:34:56 +02:00
def 0f8d682f81 Remove saving to other servers
sv_sql_valid_servernames is no longer required
2020-09-13 21:49:44 +02:00
bors[bot] 5d64ed34aa
Merge #2805
2805: update libwebsocket to 4.x and fix bug and make client able to use websocket r=def- a=QingGo



Co-authored-by: QingGo <zyqingjohn@qq.com>
2020-09-13 19:10:36 +00:00
QingGo b64a0ef4c6 make client able to connect ws server with ws:// 2020-09-13 09:59:10 +08:00
Andrii a81f46dee2 fix formatting 2020-09-13 01:16:31 +03:00
Andrii a2b149a114 remove sv_team_lock command 2020-09-13 00:46:49 +03:00
QingGo 4ae0833701 use clang formatter 2020-09-12 01:43:42 +08:00
QingGo 3fa500aa60 update libwebsocket to 4.x and fix bug 2020-09-12 00:53:15 +08:00
def f7b37eaf6a clang-format fixes 2020-09-10 20:16:09 +02:00
def 57e2905e24 Clean up econ stuff, don't need it 2020-09-10 20:13:01 +02:00
def 90f3199d98 Implement opening server on Windows (reading autoexec_server.log not working yet) 2020-09-10 20:13:01 +02:00
def 9a5ee2cdbf Auto-bind F7 to show server console if it's free 2020-09-10 20:13:01 +02:00
def 28cd437684 Document which commands only work in initial config (fixes #2773) 2020-09-07 12:31:00 +02:00
def b7da058b76 Remove the rudimentary fuzzing since no one uses it anyway 2020-09-05 23:50:31 +02:00
Jupeyy 7ca716fb3f Do more aggressive analysis and check all gl Functions that were used and added in 2.0 2020-09-05 13:07:25 +02:00
Jupeyy 145d3244db Save cl_overlay_entities 2020-09-04 19:16:28 +02:00
heinrich5991 5b669bcb32 Only send valid UTF-8 over the network 2020-09-03 18:50:23 +02:00
Jupeyy af4923b75b Add config variable, to ignore the check after it executed once 2020-08-29 18:44:48 +02:00
bors[bot] 3101747d46
Merge #2666
2666: Non divisible by 16 texture resize and warning r=heinrich5991 a=Jupeyy



Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2020-08-29 15:25:35 +00:00
Jupeyy b1e98b598b Show warnings with non divisible by 16 textures(3D/2D array textures) 2020-08-29 17:04:30 +02:00
def c85ffb90af Revert "Revert Jupeyy's OpenGL changes"
This reverts commit 3eab3f5eb7.
2020-08-29 12:10:53 +02:00
Andrii cec8bf2195 Read server port from CNetServer but not from app config 2020-08-27 19:54:44 +03:00
def 3eab3f5eb7 Revert Jupeyy's OpenGL changes
Emergency-revert for 14.5.1 release, too many problems
2020-08-26 20:03:22 +02:00
Dennis Felsing 955ccb9995
Merge pull request #2634 from def-/pr-borderless-mac
Use borderless by default on Mac (fixes #2632)
2020-08-25 20:28:56 +02:00
bors[bot] 694db44ee2
Merge #2598
2598: Allow specifying an OpenGL version manually r=def- a=Jupeyy

Ofc don't merge, we'll test it first, and if we want merge it, i'd need to enable shader compability for OpenGL 4+, and general support for OpenGL 3.1 and 3.2(bcs i think they already don't allow some older GL commands).

Also i never really read in the OpenGL 1.x specification, i remember that older OpenGL versions required glBegin and stuff like that

Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2020-08-25 15:35:30 +00:00
heinrich5991 5d83e9177f Use player name from the Steam API as fallback
Fixes #2605.
2020-08-25 16:21:58 +02:00
trml 4abe8caab8 Sort servers by a combination of players and ping as default 2020-08-24 23:25:45 +02:00
def 23a3d46719 Use borderless by default on Mac (fixes #2632)
Proper fix would be 7f594afc9b

Would be great if someone could provide and test it.
2020-08-23 19:16:24 +02:00
Jupeyy f04ec93898 Use OpenGL 3.0 as default 2020-08-22 21:16:30 +02:00
Zwelf c5bba96556 Clarify sv_use_sql config description 2020-08-22 17:17:29 +02:00
def c458ee52b0 Remove need for custom certificate
in anticipation of using CloudFlare
2020-08-19 17:54:05 +02:00
bors[bot] 09faaffec0
Merge #2595
2595: Change default from borderless to fullscreen r=Learath2 a=def-

Switching the default means everyone with borderless window will be
switched to fullscreen. Fullscreen has lower latency and better
performance.

As suggested by Shyzo and voted on on Discord.

Co-authored-by: def <dennis@felsin9.de>
2020-08-19 12:04:58 +00:00
Learath 97b6704a6b Add ban_region_range and sv_region_name 2020-08-19 14:07:55 +03:00
Learath 6a936602aa Add ban_region 2020-08-19 12:38:49 +03:00
Jupeyy c2ce132ba3 Allow specifying an OpenGL version manually 2020-08-19 07:04:54 +02:00
def dd71c293ea Ignore clan of friends by default (fixes #2596) 2020-08-18 19:43:55 +02:00
def 3f5cccd4b1 Change default from borderless to fullscreen
Switching the default means everyone with borderless window will be
switched to fullscreen. Fullscreen has lower latency and better
performance.

As suggested by Shyzo and voted on on Discord.
2020-08-18 19:10:03 +02:00
Dennis Felsing e8d9496f2e
Merge pull request #2586 from def-/pr-show_direction
Enable cl_show_direction by default (fixes #2585)
2020-08-18 11:00:53 +02:00
def 4da0592d78 Replace Kobra 4 and Goo! with Gold Mine
and add maps7 version
2020-08-18 10:47:17 +02:00
def 6cab3c37cc Enable cl_show_direction by default (fixes #2585) 2020-08-18 06:31:51 +02:00
Dennis Felsing d44d596458
Merge pull request #2554 from heinrich5991/pr_ddnet_fix_token
Fix the same token being generated for each client
2020-08-10 23:46:03 +02:00
heinrich5991 2db4e2a3c8 Fix the same token being generated for each client
Theoretically, a regression test would be nice here, but we don't really
have the infrastructure…

This fixes a spoofing vulnerability.
2020-08-10 22:38:49 +02:00
bors[bot] b06bea7c04
Merge #2465
2465: Sqlite3 support and prepared statements r=heinrich5991 a=Zwelf

This PR changes the abstraction layer of the score backend to thin abstractions over the MySQL and SQLite3 library. It executes all Queries in one worker thread making it easier to use the ddnet thread pool. This doesn't change much, because each the mysql-connection was locked with `m_SqlLock` beforehand, serializing writes and reads respectively.

Behavior change (even though I tried to minimize them):

* `sv_use_sql` is used to determine if mysql server should be added
* `sv_sql_failure_file` is replaced by `sv_sqlite_file`
* `sv_sqlite_file` is either used as a backup server when `sv_use_sql` is enabled or as the primary read+write server when `sv_use_sql` is disabled
* `/load` now escapes the like-string

Since I am not good at designing config file commands, I would appreciate feedback on this part.

WIP:
* [x] rewrite SQL statements to work in both MySQL and SQLite (preferable just ANSI-SQL)
  * [x] create tables (`COLLATE BINARY` and encoding info)
  * [x] store rank (UPSERT for points)
  * [x] load birthday (different function in sqlite for time handling)
  * [x] `/mapinfo` (`convert(? using utf8mb4) COLLATE utf8mb4_general_ci`)
  * [x] `/map` (`convert(? using utf8mb4) COLLATE utf8mb4_general_ci`)
  * [x] store teamrank (`GROUP_CONCAT`)
  * [x] `/teamrank` (`GROUP_CONCAT`)
  * [x] ~`/top5team` (`GROUP_CONCAT`)~ doesn't contain GROUP_CONCAT
  * [x] `/times` (`UNIX_TIMESTAMP`)
  * [x] `/load` without any arguments (`UNIX_TIMESTAMP`)
* [x] all commits compiling, making future bisect easier
* [x] write a sqlite_to_mysql script
* [x] write an old_file_server to sqlite script
* [x] gracefully shutdown DbPool

Co-authored-by: Zwelf <zwelf@strct.cc>
2020-08-09 23:30:08 +00:00
Learath f324647aec Send extended snap objects as is to Sixup 2020-08-04 20:10:49 +03:00
Zwelf 3e1324dd0a Add uuid parsing 2020-08-03 12:58:52 +02:00
Zwelf 2c5f892205 Apply suggestions from code review 2020-08-03 12:58:52 +02:00
Zwelf 7c31a15c93 Add SQLite interface 2020-08-03 12:58:52 +02:00
Zwelf 2eb3d23ef4 Rewrite score using the new interface
delete file_score for now as it will be replaced by a sqlite backend
2020-08-03 12:58:52 +02:00
def a34c72530b Some minor improvements to sv_port 0, make it default 2020-07-09 18:28:20 +02:00
MikiGamer f7eda384ea changes for auto port 2020-07-09 17:48:03 +02:00
MikiGamer beaadca6a9 switch, limited tries & sv_port 0 2020-07-09 17:47:30 +02:00
def 3729629c1c Only write non-defaulted config values to settings_ddnet.cfg
As a consequence changed defaults in an update will be respected
instantly if the player hasn't changed the value.
2020-07-09 12:40:35 +02:00
bors[bot] 70ccf76dcf
Merge #2390
2390: Support cl_show_hook_coll_own/other 2 to always show (fixes #2383) r=heinrich5991 a=def-

hook collision, without broadcasting to other players.

Removed cl_show_hook_coll_always in return

Renamed cl_video_showhookcollother to cl_video_show_hook_coll_other for consistency

Co-authored-by: def <dennis@felsin9.de>
2020-06-27 20:31:29 +00:00
Learath af2e02ccd2 Fix color toggles 2020-06-27 15:12:53 +03:00
def dc92626a3b Support cl_show_hook_coll_own/other 2 to always show (fixes #2383)
hook collision, without broadcasting to other players.

Removed cl_show_hook_coll_always in return

Renamed cl_video_showhookcollother to cl_video_show_hook_coll_other for consistency
2020-06-26 23:58:07 +02:00
Zwelf d8aab366fc Log save/load in teehistorian 2020-06-26 00:01:12 +02:00
Zwelf a8abc3937b Make game less dependend on score backend 2020-06-25 12:36:01 +02:00
bors[bot] 1750bb09f7
Merge #2335 #2336 #2340 #2342 #2349
2335: Make it more clear that this is a sixup translation server r=heinrich5991 a=def-



2336: Set skill level for Sixup (fixes #2334) r=heinrich5991 a=def-



2340: Keeping multiple states consistent is hard (fixes #2315) r=heinrich5991 a=def-

let's go recount every time

2342: Don't forget video recorder fps setting r=heinrich5991 a=def-

after switching to non-videorecorder client

2349: Document which MySQL/MariaDB versions we require (fixes #2343) r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-06-24 14:37:53 +00:00
def ef61793854 Don't forget video recorder fps setting
after switching to non-videorecorder client
2020-06-24 14:50:25 +02:00
def a8a2b41f3a Set skill level for Sixup (fixes #2334) 2020-06-23 22:47:29 +02: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
heinrich5991 0db5c51ed9 Add a simple CSV writer for Python's "excel" csv dialect 2020-06-23 09:11:59 +02:00
def 83c820db09 Fix some naming conventions in videorecorder 2020-06-23 08:00:03 +02:00
def 252cda2d49 Use str_comp instead of strcmp
error: ‘strcmp’ was not declared in this scope
2020-06-22 14:47:49 +02:00
Learath 28905c4659 Disable timeout for 0.7 clients 2020-06-20 19:52:23 +03:00
bors[bot] 4a810091b1
Merge #2284
2284: Remove sv_spectator_votes r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-06-20 10:46:03 +00:00
def c53528b92f Allow spectators to start votes 2020-06-20 11:20:54 +02:00
bors[bot] 5b4227fbba
Merge #2283
2283: teehistorian: Track whether clients join via the 0.7 protocol r=Learath2 a=heinrich5991



Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-06-19 20:31:40 +00:00
heinrich5991 e294da41ba teehistorian: Track whether clients join via the 0.7 protocol 2020-06-19 22:06:39 +02:00
Learath da68923ac3 Implement a switch for 0.7 compatibility 2020-06-19 22:08:41 +03:00
Learath 75e96aa5d3 Get rid of more magic constants, adapt to 0.7 2020-06-19 21:48:48 +03:00
Learath d200ef0bb0 Remove ugly hack 2020-06-19 21:42:19 +03:00
Learath 444bd93437 Fix recvmmsg again... 2020-06-19 20:28:55 +03:00
Learath d794520748 Remove forgotten debug messages 2020-06-19 20:28:55 +03:00
Learath 32fb6718dd Allow joining TEAM_SPECTATOR 2020-06-19 20:28:55 +03:00
Learath 2f760e3e40 Forgot to drop port 2020-06-19 20:28:55 +03:00
Learath 88ca573682 Serverinfo and Register support for 0.7
Co-authored-by: Tim Schumacher <tim@timakro.de>
2020-06-19 20:28:55 +03:00
Learath e81c718180 Rework netobjs, fix chat 2020-06-19 20:28:55 +03:00
Learath f9cc634683 Fix recvmmsg issue 2020-06-19 20:28:54 +03:00
Learath 807c92f1a4 Generate the 0.7 protocol 2020-06-19 20:27:15 +03:00
Learath f7e9df7abf Move the rest of the translation to CServer 2020-06-19 20:27:15 +03:00
Learath b0e5a37fa9 Do message translation differently 2020-06-19 20:27:15 +03:00
Tim Schumacher 442148a194 Begin work on 0.7 support 2020-06-19 20:27:15 +03:00
Learath e9ba23b53a Migrate to 0.6.5 flags 2020-06-19 20:27:15 +03:00
def 47e6c7cce2 Only forbid resizing when videorecorder is recording 2020-06-19 08:19:40 +02:00
12pm 01092a30c1 add sv_tele_others_auth_level 2020-06-14 19:21:12 +03:00
bors[bot] 92fc95d742
Merge #2202
2202: Send DDNet version early in the connection process r=Learath2 a=heinrich5991

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.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-27 17:49:31 +00:00
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
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
Zwelf cd015c5e37 Fix storing incomplete game uuid on /save
Previously the formatted game uuid was cut off after 15 bytes.
Therefore only 52 out of 128 bit of the uuid were stored.

introduced in 69fd7f1767
2020-05-20 22:18:14 +02:00
heinrich5991 afe2fc930e Fix ITIS, IDONTKNOW not being system messages 2020-05-16 00:41:03 +02:00
Ryozuki b647c1e978
Add UPnP support 2020-04-14 12:11:50 +02:00
Ryozuki 588f8a833f
Fix snapshot storage leak 2020-04-11 13:38:02 +02:00
Learath 388d792205 Add an option for highdpi 2020-04-07 23:47:15 +03:00
def f7e8b10bff Make gfx_resizable default to 0
because of common graphics issues. As suggested by Jupstar
2020-04-06 12:04:53 +02:00
def a8c3d192d1 Add cl_unpredicted_shadow -1 value (fixes #2100)
to disasble unpredicted shadow even in debug mode
2020-03-31 18:00:20 +02: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] 048ca9fe0a
Merge #2070
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>
2020-03-23 16:58:01 +00:00
bors[bot] bf821fe391
Merge #2071
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>
2020-03-23 16:38:17 +00:00
def 2319151fb4 Disable currently broken sv_vanilla_antispoof 2020-02-27 22:53:56 +01:00
sirius 72fd0f9a21 forget to check CONF_VIDEORECORDER defined or not for video rendering pause 2020-02-27 20:32:42 +08:00
sirius b5c931279f add option to pause video rendering when demo playing pause 2020-02-27 18:50:18 +08:00
sirius 50b980ea16 add an option to only start a new demo when connect while automatically record demos 2020-02-21 17:01:31 +08:00
Learath c52bbb6c02 Fix demo recording with broken maps 2020-02-19 15:38:58 +03: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
Dennis Felsing 50d848ec43
Merge pull request #1928 from sirius1242/demo_render2
Demo to video converter function.
2020-01-25 21:01:08 +01:00
oy ef3bce204c added some checks to snap handling
(cherry picked from commit a09d498bc9)
2020-01-21 22:16:28 +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
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 a882cf5196 Fix bug with slices 2019-12-22 19:09:14 +03: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
Learath2 3784f5bea4 Use a UUID, Cleanup code and UI 2019-12-17 15:44:54 +01:00
bors[bot] 4a83a42f14
Merge #1981
1981: Fix: background colors being set to white r=def- a=Aerll

After changing either of background colors in ddnet tab in settings and reopening the client, both become white.

Co-authored-by: Aerll <31746984+aerll@users.noreply.github.com>
2019-12-10 12:34:48 +00:00
def 8639c902ae map_convert_07: use regular paths 2019-12-08 23:14:56 +01:00
Aerll ff685ac1e0
fix ub 2019-12-08 20:08:00 +01:00
ChillerDragon 1a957f0abe Fix typo 'user' -> 'use' 2019-11-05 09:16:54 +01:00
def 258eaf5a98 Fix uninitialized variable
As reported by valgrind --tool=memcheck:

[201==344082== Conditional jump or move depends on uninitialised value(s)
==344082==    at 0x483BC85: strlen (vg_replace_strmem.c:461)
==344082==    by 0x5B9E61D: __vfprintf_internal (in /usr/lib/libc-2.30.so)
==344082==    by 0x5BB0409: __vsnprintf_internal (in /usr/lib/libc-2.30.so)
==344082==    by 0x222AE7: str_format (system.c:2350)
==344082==    by 0x2196AB: CStorage::GetPath(int, char const*, char*, unsigned int) (storage.cpp:274)
==344082==    by 0x219DDD: CStorage::RemoveFile(char const*, int) (storage.cpp:409)
==344082==    by 0x255D3C: CClient::DemoRecorder_Stop(int, bool) (client.cpp:3546)
==344082==    by 0x2569E7: CClient::ConchainReplays(IConsole::IResult*, void*, void (*)(IConsole::IResult*, void*), void*) (client.cpp:3727)
==344082==    by 0x1F4659: CConsole::Con_Chain(IConsole::IResult*, void*) (console.cpp:1169)
==344082==    by 0x1E4C2C: CConsole::ExecuteLineStroked(int, char const*, int, bool) (console.cpp:504)
==344082==    by 0x1E4F37: CConsole::ExecuteLine(char const*, int, bool) (console.cpp:558)
==344082==    by 0x1E5240: CConsole::ExecuteFile(char const*, int, bool, int) (console.cpp:604)
2019-11-03 18:05:42 +01:00
sirius 8c48e7d633 some small changes 2019-11-03 11:20:24 +08:00
sirius 4cc03af9a9 remove useless functions for previous audio sync 2019-11-02 18:32:48 +08: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
sirius ae1ff28579 not abort sample when sync now 2019-10-31 22:01:12 +08:00
sirius 5ad8028aa4 sync audio frame with video frame number 2019-10-31 20:02:41 +08:00
sirius 99f6b66fbd solve sync between video and audio by magic number 2019-10-31 17:37:38 +08:00
sirius 9866a73b1c sync audio and video 2019-10-26 19:54:25 +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
12pm 36df86fcd2 Add toggle keyboard shortcuts button to demo player
Demo shortcuts can be annoying if you have other binds on them.

Icons made by eNJi
2019-10-05 18:06:58 +02:00
bors[bot] e7ea336a94
Merge #1925 #1929
1925: Don't bundle libcurl for Linux r=Learath2 a=heinrich5991

It's installed basically everywhere and just increases release size.
They're serious about backward compatibility and haven't had a breaking
change in ages.

1929: Remove space at end of cfg description r=Learath2 a=ChillerDragon

Happy hacktoberfest :octocat: 

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-10-02 17:25:02 +00:00
ChillerDragon 3777021383 Remove space at end of cfg description 2019-10-02 17:15:42 +02:00
sirius 1375fbb95d add a button to render whole demo 2019-09-30 20:52:24 +08:00
HMH 41da2f4497 removed superfluous const 2019-09-30 20:48:50 +08:00
H-M-H 4b86630b42 fps for videos configurable and videos are stored at a proper location 2019-09-30 20:48:47 +08:00
H-M-H 2f71720fb1 correct time after stopping recording a video 2019-09-30 20:48:47 +08:00
H-M-H ab9e716444 fixed compiling on linux 2019-09-30 20:48:47 +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
trml bb5eab0cc0 Add tunezone prediction 2019-09-09 00:53:07 +02:00
def cb738ffed0 Fix show_ips to show regular formatting (fixes #1873) 2019-08-01 20:24:30 +02:00
fokkonaut 5c280a3c9d
Fix blockZ and infectionZ
I talked to coffee (creator of both mods) and he said it is okay to use zoom on the mods, also: eye emotes work there so the eye wheel is also supported. I have updated both mods to ddnet master so they have all the new stuff
2019-07-24 06:52:32 +02:00
bors[bot] 658efe776b Merge #1845
1845: Fix infectionZ gamemode seen as DDNet r=heinrich5991 a=fokkonaut

InfectionZ's gametype is somehow infection, instead of infectionZ

Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-07-21 08:32:59 +00:00
fokkonaut a8756f99e0 Fix infectionZ gamemode seen as DDNet 2019-07-21 10:03:27 +02:00
bors[bot] ebeeace65e Merge #1841
1841: Restart required message when changing Show console r=heinrich5991 a=fokkonaut



Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-07-19 00:16:01 +00:00
fokkonaut 78f52629e4 fix build 2019-07-19 01:58:49 +02:00
Learath2 8469949257 Remove debug message 2019-07-02 14:56:02 +02:00
Learath2 1993989067 Fix toggle not working with colors 2019-07-02 14:54:06 +02:00
heinrich5991 62846821da Revert "Implement ISDDNET. Deprecates #1320"
This reverts commit 1929bc6739.
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
bors[bot] f8ba394c5d Merge #1781
1781: sv_server_info_per_second, sv_van_conn_per_second: allow 0 to disable r=heinrich5991 a=def-

Clean up code a bit, also allow larger values

Co-authored-by: def <dennis@felsin9.de>
2019-06-12 20:23:27 +00: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
def 85bb376bdc sv_server_info_per_second, sv_van_conn_per_second: allow 0 to disable
Clean up code a bit, also allow larger values
2019-06-11 18:12:43 +02:00
Dennis Felsing 0992e3c7c4
Merge pull request #1777 from ChillerDragon/pr_demo_wrong_hash
Prefer downloadedmaps over maps ( #1702 )
2019-06-11 18:05:12 +02:00
Dennis Felsing bbb1b2cdef
Merge pull request #1733 from Learath2/dd_pr_colorsigned
Store colors unsigned
2019-06-11 12:26:28 +02:00
ChillerDragon 839009fc93 Prefer downloadedmaps over maps ( #1702 )
Fixes corrupted demos if there is a different version of the current map in the maps/ folder.
Thanks to @archimede67 for initial research.
2019-06-05 22:24:17 +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
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 b6b8f7e536 Somehow build failed because of that 2019-05-21 18:04:37 +02:00
Learath 1929bc6739 Implement ISDDNET. Deprecates #1320 2019-05-21 10:25:15 +02:00
Learath 23255a04b3 Remove time-score 2019-05-21 10:24:07 +02:00
Corantin H 817bdaf9cd initial work on a replay system 2019-05-20 23:55:40 +02:00
Kpro998 f3ff81e5ab fix IsBlockInfectionZ duplication 2019-05-19 22:35:56 +01:00
Kpro998 0856fec38e fix particles, emote wheel, zoom and score for blockworlds 2019-05-19 22:11:16 +01:00
Learath db5c17ce71 Avoid implementation-defined behaviour 2019-05-15 18:11:22 +02:00
Learath 0d39eb128d Use unsigned integers for colors 2019-05-15 18:05:19 +02:00
Learath2 e608e2f34f Add Hex display 2019-05-11 02:32:37 +02:00
Learath2 0dd67c92f1 Abbreviate alpha 2019-05-11 02:16:48 +02:00
Learath2 82e6d180e4 Use % and ° 2019-05-11 02:12:37 +02:00
Learath2 b059ac256e Show Alpha only if it's relevant 2019-05-11 02:12:36 +02:00
Dennis Felsing 2396096e3b
Merge branch 'master' into pr-rename-col 2019-05-10 23:46:38 +02:00
12pm ea324592c6 Change col to color in variable names 2019-05-10 23:34:21 +02:00
12pm eda002993e Restore old echo default color 2019-05-10 23:07:32 +02:00
trml 8eb4b7fd71 Add setting cl_predict_freeze 2 for having a small amount of misprediction while frozen 2019-05-05 12:32:06 +02:00
Learath b86c457c91 Remember whether a color is lit or not 2019-05-01 23:35:29 +03:00
Learath f479f69735 Add a flag for colors with alpha 2019-05-01 13:58:51 +03:00
Learath 324c389e87 Accept negatives aswell, don't clamp 2019-05-01 13:41:58 +03:00
Learath 588acdda0d Consolidate color configs, extend debugging 2019-04-27 02:02:31 +03:00
Learath 93d14a1eca Inconvenience for windows 2019-04-26 22:36:49 +03:00
Learath ffa07d88cb Please -WError 2019-04-26 19:11:34 +03:00
Learath 69d78c21b4 Lighten tee colors 2019-04-26 16:38:16 +03:00
Learath 93265dbb9c Please MSVC 2019-04-25 21:09:32 +03:00
Learath e637064a68 Don't store HSL separately 2019-04-25 19:49:27 +03:00
Learath 95a3a69e08 Start phasing out vectors for colors 2019-04-25 18:21:35 +03:00
Learath cc319e0152 Fix warnings and style 2019-04-25 15:04:36 +03:00
Learath 0f781df1dd Try handling colors in console 2019-04-25 14:48:53 +03:00
trml 0b3f3b03b5 Rewrite of prediction code, with additional prediction 2019-04-21 16:12:20 +02:00
12pm 6e880644af Add some demo player shortcuts 2019-04-15 21:08:12 +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 b91530eedc Console: Can't deallocate temp entries, so don't even try 2019-04-10 23:32:45 +02:00
def 94f3d97ddf Remove unmaintained Android code (fixes #1575) 2019-04-10 19:40:50 +02:00
Jordy Ruiz 1e0cc51ba1 Add bound check in datafile.cpp anywhere m_ppDataPtrs is accessed as an array. Should fix #2073
(cherry picked from commit e086f4b35b)
2019-04-07 13:10:07 +02:00
heinrich5991 e3657ab2d5 Use SHA256 instead of MD5 in some places
This only works in places where the actual choice of hashing function
doesn't matter.
2019-04-06 02:56:29 +02:00
heinrich5991 e44b1ca986 Use OpenSSL md5 if it is available
Fixes #1582.
2019-04-06 02:56:29 +02:00
Dennis Felsing fc76c2219f
Merge pull request #1566 from def-/pr-demo-speed
Demo speed improvements
2019-04-03 19:02:42 +02:00
def 989726db00 Allow demo speeds up to 256 2019-04-02 23:16:01 +02:00
def 392fe03844 Enable gun sound by default 2019-04-02 21:52:02 +02:00
Dennis Felsing 0b578c4330 Fix cl_confirm_disconnect/quit_time (fixes #1550)
-1 now works as described
Split into two settings
2019-03-29 14:56:02 +01:00
Dennis Felsing 95cc357dd6
Merge pull request #1540 from def-/pr-disconnect-time
Add cl_confirm_disconnect_quit_time (fixes #1530)
2019-03-28 23:38:16 +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 bf576723a3 Add KoG tab in server browser
- As requested by qshar and KoG players
- Similar to DDNet tab
- Info fetched from servers-kog entry from https://info.ddnet.tw/info
- Also supports countries and types
- Doesn't inform whether map has been finished
- Generalized the code a bit but it's still ugly
- Depends on #1533, also shows KoG servers as official/verified
2019-03-24 23:15:40 +01:00
Dennis Felsing abe9f6f5a9
Merge pull request #1518 from ddnet/fetch-info
Demo browser: Make Fetch Info a checkbox instead
2019-03-20 07:45:12 +01:00
def 1e4890c499 More error checking in system.c (fixes #1317) 2019-03-19 23:16:29 +01:00
def 22f278fdb8 Demo browser: Make Fetch Info a checkbot instead
And persist the result. Helps with the workflow described by Shyzo on
Discord:

> I mean after i press ctrl-f or fetch info. then i want to sort by marker (from ... to 0) and just delete every demo without a marker. either in a whole (not possible i think) or just one by one. but I think after deleting one demo the order of demos change again
> so i have to fetch info again, delete one. fetch info again. delete one
> and so on
2019-03-19 18:28:10 +01:00
def 6f9cfd5af1 Increase MAX_PATH_LENGTH to support our own downloadedmaps names 2019-03-12 18:43:03 +01:00
def deb2494692 Don't suggest to downgrade, clean up versioning (fixes #1440) 2019-03-03 20:31:23 +01:00
Learath 37c67c00ad Style 2019-02-13 15:13:44 +01:00
Learath 0086452757 Use str_in_list, generalize further 2019-02-11 18:52:40 +01:00
ChillerDragon eaf61b662d Never ban known bots 2019-02-06 14:49:41 +01:00
ChillerDragon 3f8e9613f7 Fix style 2019-02-06 13:06:28 +01:00
ChillerDragon 8ddb487e2b Use consisten seperators (comma not semicolons) 2019-02-04 23:12:05 +01:00
ChillerDragon ec7b525609 Default kick known bots instead of ban 2019-02-04 23:10:07 +01:00
ChillerDragon 867b0a66ce Fixings thanks to @Learath2 2019-02-04 22:16:09 +01:00
ChillerDragon 069b1763dd Add autoban depending on client version 2019-02-04 20:46:42 +01:00
Dennis Felsing a5c78f85cf Disallow sv_map_vote in map settings 2019-01-15 08:57:30 +01:00
fokkonaut ade7b13f98 paranthese placement 2019-01-14 17:31:07 +01:00
fokkonaut 6206450e1b moved paranthese 2019-01-14 17:28:34 +01:00
fokkonaut cf09fbd1ea Merge BW support into IsDDNet 2019-01-14 16:50:06 +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 15fb7891cb Fix FileCollection to remove the oldest file (fixes #605)
Previously it removed one entry from m_aTimestamps before having filled
it entirely, so there was a small chance that it was not the smallest
one. Only after we have filled more entries than we want to keep can we
know which ones can be deleted for sure.
2019-01-11 11:39:05 +01:00
def 6e9aa68149 Fix timestamp extraction with wildcards (fixes #605)
in CFileCollection. Previously it included the _ character.
2019-01-11 11:37:43 +01:00
def f9d9fee314 Demo browser: Show markers (fixes #329)
- Fetch Headers button
- Display Markers & Length columns
- Display footer info
- Don't rescan directory when not required
- Clean up code a bit
2019-01-09 08:25:03 +01:00
def 8b782285ab Fix return type of CStorage::RemoveFile 2019-01-07 14:35:11 +01:00
def a116ed3dbe Revert "New try at not decompressing unknown packets"
Causes connection problems with old clients
This reverts commit a3b07dbf9c.
2018-12-30 12:22:05 +01:00
def 87fa394daa Add Christmas skin event for client 2018-12-23 22:58:30 +01:00
def 4b92e72763 Prevent copies 2018-12-17 22:15:41 +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
Dennis Felsing 9febf58f37 New try at recvmmsg with some improvements 2018-12-16 22:59:41 +01:00
def a3b07dbf9c New try at not decompressing unknown packets 2018-12-16 22:15:45 +01:00
def d884465710 Revert "Don't decompress packets from unknown IPs"
This reverts commit 9089c2b35a.
2018-12-14 17:12:49 +01:00
Dennis Felsing 0b256ff653 Allow connecting clients to compress
TODO: Look for better solution
2018-12-14 11:17:15 +01:00
Dennis Felsing 9089c2b35a Don't decompress packets from unknown IPs 2018-12-13 16:24:37 +01:00
Dennis Felsing 5c18d6c481 Remove /modhelp (fixes #1401) 2018-12-12 10:05:44 +01:00
def 5b436adff8 blockZ & infectionZ are 64player but not DDNet
even though their name contains DDNet
fixes #1364
2018-10-29 21:33:35 +01:00
bors[bot] 1b0b36c6eb Merge #1316 #1341 #1349
1316: code improvement on gameclient.cpp r=def- a=Ryozuki



1341: Mark unused envelopes r=def- a=Learath2

Thought I'd do this one as well while looking at the editor code.

1349: Don't ignore CONNECT packets with data that we don't know r=def- a=heinrich5991

This specifically affects 0.6.5. Just treat them the same way as those
without any data.

Co-authored-by: Ryozuki <edgar@ryobyte.com>
Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2018-10-29 14:31:27 +00:00
heinrich5991 c7750f3616 Don't ignore CONNECT packets with data that we don't know
This specifically affects 0.6.5. Just treat them the same way as those
without any data.
2018-10-14 08:18:32 +02:00
Dennis Felsing e02a9956a5 Remove unused cl_eventthread 2018-10-12 14:42:40 +02:00
bors[bot] 61559f2ff0 Merge #1329
1329: Add support for extra map items in datafiles r=Learath2 a=heinrich5991

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.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2018-10-09 09:30:23 +00: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
Learath 5b95eddca1 DRY with net_addr_comp_noport 2018-10-08 21:04:04 +03:00
Dennis Felsing dbaf779bda
Merge pull request #1335 from heinrich5991/pr_ddnet_serverjobs
Use two threads for the server thread pool
2018-10-07 17:29:22 +02: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 189a2939b0 Try closing the file earlier. Fix #1250 2018-10-04 16:10:27 +02:00
fokkonaut cf727576eb spaces again? 2018-09-28 18:29:14 +02:00
fokkonaut ea64d57be1 spaces 2018-09-28 18:28:45 +02:00
fokkonaut 3240f6fbc5 fix bw support 2018-09-28 18:27:51 +02:00
def 2198f6c997 Limit demo speed to 64 (thanks to fokkonaut for report) 2018-09-24 18:07:14 +02:00
def 48d1757793 Fix bw support 2018-08-26 21:21:27 +02:00
Dennis Felsing 39b36b2c3b Check file system operations and log them 2018-08-23 09:58:35 +02:00
Dennis Felsing 20ea1651cb Don't save non-client configs 2018-08-23 09:57:48 +02:00
Dennis Felsing e2eb4a66dc Add Filter for connecting players (fixes #1263) 2018-08-21 09:03:48 +02:00
Dennis Felsing 0b539df741 bw 2018-08-09 13:05:36 +02:00
Dennis Felsing dda2b06672
Merge pull request #1235 from fokkonaut/master
block worlds zoom + eye wheel
2018-08-09 13:04:07 +02:00
def 18529fa082 Revert "Implement recvmmsg"
This reverts commit de5fe64be5.
2018-07-29 23:07:59 +02:00
fokkonaut 2dafafd75b oops, tab instead of spaces 2018-07-27 23:32:10 +02:00
fokkonaut cd5d69bfc5 added bw to isddnet 2018-07-27 23:28:02 +02:00
fokkonaut b8730b3653 block worlds zoom + eye wheel 2018-07-26 21:34:24 +02:00
heinrich5991 e8c7dca035 Fix storage.cfg reading broken by the str_startswith change 2018-07-26 15:46:54 +02:00
heinrich5991 5c4e819e44 Use str_startswith, str_endswith instead of ad-hoc implementations 2018-07-26 14:18:23 +02:00
Dennis Felsing de5fe64be5 Implement recvmmsg 2018-07-25 16:06:00 +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 925aff21d4 Fix all the header guards and adjust the script a little 2018-07-06 16:11:38 +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
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
heinrich5991 c739aef60e Some style fixes 2018-06-19 14:28:53 +02:00
ZombieToad e05bd9c6c8
remove unused thingy 2018-06-14 20:44:14 +01:00
Dennis Felsing ae3d91cf17 Set cl_refresh_rate to 0 by default to get higher fps and faster input processing 2018-05-28 08:03:31 +02:00
bors[bot] eca23e45b7 Merge #1128
1128: Remove superfluous parameter from `CServer::NewClientNoAuthCallback` r=Learath2 a=heinrich5991

The `Reset` parameter was only ever set to true, at the only call site.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2018-05-12 15:47:29 +00:00
def a7b778977a Add sv_sql_validservernames (fixes #1123) 2018-05-11 21:57:47 +02:00
heinrich5991 9454dfbff9 Remove superfluous parameter from CServer::NewClientNoAuthCallback
The `Reset` parameter was only ever set to true, at the only call site.
2018-05-09 23:50:25 +02:00
ChillerDragon 589749c2cf Allows low mousesens
Lower minimum mousesens value to avoid confusion. Responing to GG Kid's request:
https://forum.ddnet.tw/viewtopic.php?f=45&t=5807&p=58207&hilit=mousesens#p58207
2018-04-27 01:40:59 +02:00
Dennis Felsing 96ecbfcfa8 Add cl_show_hook_coll_always 2018-04-25 12:03:27 +02:00
heinrich5991 f8277267a0 Remove mem_alloc and mem_free, use standard C functions instead
Replace `mem_free` by `free`, and `mem_alloc` by `malloc` or `calloc`
(the latter one being used to allocate a zeroed array of elements,
sometimes, this makes a call to `mem_zero` superfluous).

This results in having to remove `mem_stats` which previously recorded
the number of allocations and their size that the Teeworlds code did
directly.

Remove OOM handling in `src/game/client/components/binds.cpp`.

Remove needless copying in the CSV code in
`src/game/client/components/statboard.cpp`.
2018-04-09 11:56:39 +02:00
def c95e1a61c6 More conservative config saving 2018-04-05 17:24:49 +02:00
Dennis Felsing fc355797a5
Merge pull request #1101 from Jupeyy/pr_mem_fix
Make mem_alloc, mem_free thread safe (fixes #1087)
2018-04-05 09:10:55 +02:00
yangfl 46b7e4198b Allow specifying DATA_DIR by compiler option, retry #1042 2018-04-05 11:11:31 +08:00
Jupeyy 1208bcc562 Make mem_alloc, mem_free thread safe (fixes #1087) 2018-04-05 04:17:21 +02:00
def a9a71094dd Revert "Allow specifying DATA_DIR by compiler option"
This reverts commit 3c488ff5c7.
2018-04-03 19:18:27 +02:00
bors[bot] cc6449bcd6 Merge #1055
1055: Keep track of lost frames and update time r=heinrich5991 a=Jupeyy

The problem a friend was occuring was, that on a fresh Windows install settings like cl_refresh_rate are set to 480.
Since the render calls take longer time than no render calls, it happened that client was sleeping on one update cycle and then took to long in another, where it called the render functions, leeding to less FPS than the cl_refresh_rate. this caused mouse lags and rarely frame drops.

another thing is, that select on Windows is non microsecond accurate, or just often returns too early, which caused that the refresh rate is much too high, or even ignored, (probably windows can only sleep on milliseconds, or again, is extremly inaccurate).

Another things on windows is that time_freq might be a "very odd" number ^^
i mean like on unix it's one microsecond (1,000,000 = 1s), but on windows the time_freq depends on the CPU leading to inaccurate calculation of the sleep time and render time.
This wasn't insanly huge issue, but probably skipped a few microseconds here and there.

This fix should stabilize the frames. I'd like to hear your opinion on this tho.
2018-03-13 19:41:38 +00:00
Jupeyy ced0ea3f82 set the gfx refresh rate limit higher for the console 2018-03-02 03:29:02 +01:00
yangfl 3c488ff5c7 Allow specifying DATA_DIR by compiler option 2018-02-22 00:12:52 +08:00
def e9bc42a63c Update websockets implementation (fixes #1022)
seems to work with libwebsockets 2.4
2018-02-14 12:30:14 +01:00
def 5587e6dc96 Remove unused inp_grab 2018-02-11 16:40:08 +01:00
yangfl 1620fc9b0f Fix typo 2018-02-07 16:10:40 +08:00
heinrich5991 1c3dc8c316 Record rcon authentication stuff into teehistorian
This allows to check moderator actions after-the-fact.
2018-01-28 03:13:05 +01:00
bors[bot] f48a2a395b Merge #947
947: Add support for extra chunks in teehistorian r=Learath2 a=heinrich5991

This allows to add rarely-used chunks without increasing the file format
version.
2018-01-27 21:09:43 +00:00
def dd7281ef86 Limit m_NumTimelineMarkers (reported by GG Kid) 2018-01-23 16:04:24 +01:00
def 48980efa2e Disable OpenGL 3 by default 2018-01-14 07:33:00 +01:00
heinrich5991 22080c840f Move teehistorian UUIDs into engine 2018-01-11 16:01:13 +01:00
heinrich5991 6c378b972b Add support for extra chunks in teehistorian
This allows to add rarely-used chunks without increasing the file format
version.
2018-01-11 15:59:53 +01:00
Learath2 8353701789 Add sv_rcon_vote. Fix punctuation.
Add option to only allow authed clients to call votes.
2017-12-27 10:40:51 +03:00
heinrich5991 1a236dbefc Send connection information to external server 2017-12-20 16:56:34 +01:00
bors[bot] bad105c5e4 Merge #953
953: Overhauled job system r=Learath2 a=heinrich5991

The engine now takes `std::shared_ptr<IJob>`, this will ensure the
appropriate lifetime of the given parameters, it also allows for proper
destruction. Remove the now obsolete `IFetcher` interface and `CFetcher`
class.

Also adds some locks to `CUpdater`, previously it didn't have any locks
at all.
2017-11-27 23:34:54 +00:00
heinrich5991 fd36b8c8c8 Remove unused header file src/engine/shared/storage.h 2017-11-27 00:58:30 +01:00
heinrich5991 c10db436b4 Change some config variable defaults to official server values 2017-11-24 11:59:45 +01:00
heinrich5991 3f43624d21 Add a couple of tests for CJobPool 2017-11-24 10:33:42 +01:00
heinrich5991 01d81fc4cc Make m_Shutdown variable atomic instead of volatile 2017-11-24 09:23:23 +01:00
heinrich5991 a3cdfac84e Fix lookup job being zeroed in CMasterServer::Load 2017-11-24 02:13:34 +01:00
heinrich5991 94acac91a0 Overhauled job system
The engine now takes `std::shared_ptr<IJob>`, this will ensure the
appropriate lifetime of the given parameters, it also allows for proper
destruction. Remove the now obsolete `IFetcher` interface and `CFetcher`
class.

Also adds some locks to `CUpdater`, previously it didn't have any locks
at all.
2017-11-23 15:47:38 +01:00
bors[bot] fdb2e330ce Merge #904
904: Fix use-after-free r=heinrich5991 a=Learath2

Not sure if this is the best way to go about this, but it works :/
2017-11-08 17:30:34 +00:00
bors[bot] 5528cde5f6 Merge #869
869: Complete rework of the ghost and race recorder r=Learath2 a=Redix

This PR fixes a lot of issues with the ghost and race recorder, introduces a new ghost file format and implements some pretty useful features.

**A quick overview:**
 - When you cross the start line multiple times, both (ghost and recorder) will only restart if it is a non-solo server
 - If available, both will use the race timer to recognize the start instead of searching for the start line
 - Fastcap support for both
 - The recorder immediately starts when the Tee spawns, so the preparation steps (which are quite important for speedruns) will be included in the demo. If you do not cross the start-line within 20 seconds, it will stop the demo until you really start.
 - Better ghost menu (colors, reloading, deleting and saving ghosts)
 - The ghosts are more resistant against lags (old ones were sometimes completely useless due to small lags)
 - New ghosts files are significantly smaller
 - Cleanup, bugfixes..


**About the new ghost format (version 4/5):**
This format is used by Teerace for over a year now. The code for handling the binary files was moved to the engine. It includes an auto updater which creates a backup of all ghosts and converts them to the new format afterwards. The major differences from the format used by DDNet right now (version 2), are the ability to store multiple types of data, the usage of delta-encoding and a more portable header.

For whatever reason, the ghost stores values for every predicted tick, but without tick information, so lost snapshots can make them unusable. The new code uses the original values from the snapshots including ticks but it can also handle the old ones without. Since hardly any server uses the high bandwidth option this practically reduces the file size.

Like the demo recorder the ghost recorder directly stores the data to a file (every 50 snapshots) instead of writing the whole file at the end of the race. Indeed this can be changed with only a few lines if the old behavior is preferred.

The updater can handle version 2 (DDNet) and 3 (old teerace format, only slightly different from version 2) files. The updating already happens when the files are scanned for generating the list in the menu and not only when you activate them. The change from version 4 to 5 was only needed due to a bug in the implementation, the ghost loader can read both.

Some numbers about the file size: (map: hotrun, both about 30 seconds)

 - Old ghost: 30.4 kB (converted: 10.7 kB)
 - New ghost: 5.4 kB


**One thing about the race recorder:**
The old implementation compared the new file only with the first file it found for the particular map. The new one compares with all related demos and deletes them possibly, so that only the best demo is left. Since DDNet can also store the demos without name, this might also delete demos from other players, that you might have in your directory.
To prevent this I at least check whether the demo contains the player name if `cl_demo_name` is on. 
In my opinion the better solution would be to remove `cl_demo_name` and always use the player name.
2017-10-30 20:27:10 +00:00
Redix de1c0cf24d Fixed several issues with the ghost (thanks to Learath2) 2017-10-28 14:23:24 +02:00
def cb00a294b8 Enable gfx_opengl3 by default 2017-10-20 22:52:38 +02:00
def 342c6048bf Use new opengl by default 2017-10-20 22:47:59 +02:00
Learath2 b8b4f7771d Rename the callback 2017-10-19 18:13:28 +02:00
Dennis Felsing d6999bb726 Merge "Pull Request using OpenGL 3.3" 2017-10-18 12:49:27 +02:00
Learath 96acddb57f Fix the other use after free 2017-10-17 15:39:20 +02:00
heinrich5991 dfc53b48cf Fix victim handling 2017-10-17 01:32:40 +02:00
Jupeyy 1814fa8d19 make OpenGL 3.3 experimental option, and don't initialize it as default 2017-10-10 15:35:20 +02:00
heinrich5991 2fc018aac3 Add asynchronous file output, port dbg_msg()s to that system
Also add tests.
2017-10-10 04:11:14 +02:00
Redix 2586c001b7 Use demos/auto/race for the race recorder 2017-09-28 19:14:36 +02:00
Redix 5721612761 Clean up trailing whitespaces 2017-09-28 16:02:01 +02:00
Redix 216e5654e8 Added config variables for server controlled ghost and race recording 2017-09-28 16:02:00 +02:00
Redix 1c377ed00f Added Fastcap support for ghost and race demo 2017-09-28 16:01:57 +02:00
Redix b1e7138847 Added ghost file handling classes 2017-09-28 16:01:56 +02:00
Jupeyy 91216fb90c reduce upload size by normalizing color values, fix slow upload for some
iGPUs and force old opengl context, if issueinit fails
2017-09-27 12:16:34 +02:00
heinrich5991 a201352b29 Fix a grammar mistake in bot client message 2017-09-24 21:11:23 +02:00
heinrich5991 9761e9606a Make most user input teehistoric
Exclude private stuff like chat messages and votes.
2017-09-20 02:23:28 +02:00
heinrich5991 6ef9c8dbcd First working version of teehistorian
teehistorian records all inputs from the players as well as the player
positions in each tick. It stores this info in a highly compressible
output format (I've achived 5x compression using xz or bz2).
2017-09-20 02:16:11 +02:00
Redix 43f246f174 Made int packing functions safe 2017-09-17 02:36:50 +02:00
Jupeyy 77b3c39553 allow disabling texture unit optimization by command, also use
drawelements instead of drawarrays for quads
2017-09-14 02:49:35 +02:00
Jupeyy 629bf2c5f9 Merge branch 'master' of https://github.com/ddnet/ddnet 2017-09-12 20:24:58 +02:00
Jupeyy 96694fb399 make new opengl version optionally 2017-09-12 20:12:37 +02:00
def c2c453bd45 Make sending name to info.ddnet.tw optional, show dialog at start and some minor fixes 2017-09-07 20:51:46 +02:00
def 89ed22e8d8 Introduce ddnet-info.json
- Single json file containing all information for the client
- Fetched from https://info.ddnet.tw/info?name=deen
- Replaces versionsrv, news, ddnet-maps.json and ddnet-ranks.json
- Servers are sorted by most popular ones for respective player
- Always stays < 100 ms response time, compared to occasional 50 s for
  old ddnet-ranks.json
2017-09-03 17:42:04 +02:00
def 27b7549bba Make --silent stop stdout logging 2017-09-03 10:37:24 +02:00
def e64e59a839 semaphore instead of busy waiting in CJobPool 2017-09-02 12:30:55 +02:00
Dennis Felsing ed59b0f4a2 Fix binary dirs for installed locations on POSIX
Also rename them from teeworlds to ddnet
2017-09-01 13:37:01 +02:00
def 705349f2e5 Clean up and fix semaphores and threading 2017-08-31 19:18:07 +02:00
Dennis Felsing eb2634ab0a Merge pull request #852 from heinrich5991/pr_ddnet_fix_extractname
Add testing; fix, rename and test the `CEditor::ExtractName` function
2017-08-30 22:09:17 +02:00
def 16f3ddc5a7 Show if user has rank on map in browser (+filter)
UI implementation by timakro
2017-08-30 21:34:04 +02:00
heinrich5991 22be1be389 Fix and rename the CEditor::ExtractName function
Fixes #846.
2017-08-30 13:59:42 +02:00
heinrich5991 2682480f8a Rename GetUncompressedDataSize to GetDataSize
Also rename the old `GetDataSize` to `GetFileDataSize`. `GetDataSize`
now returns the actual data size, not the data size before
decompression.
2017-08-30 08:36:17 +02:00
root 2c748ebf70 Fixing PR over heinrich revision 2017-08-30 00:21:41 +02:00
sctt 0849fa6024 fixing map_resave and adding map_replace_image
Update datafile.h

Update datafile.cpp

Update datafile.cpp

Update map_resave.cpp

Update datafile.h

Update map_resave.cpp

Update datafile.h

Update datafile.cpp

Update config_store.cpp

Update config_retrieve.cpp

Update io.cpp

Update gamecontext.cpp

Update config_store.cpp

Update CMakeLists.txt

Create map_replace_image.cpp

Update map_replace_image.cpp

fixing bug with height and witdth
2017-08-29 16:21:16 +02:00
def 0b1842d438 Use filesystem paths for -f command line param 2017-08-11 21:07:20 +02:00
def 0b5dcdc478 Disable vsync by default and warn about possible delay 2017-08-08 19:53:16 +02:00
def 5d8a0ddc1e Add time in console 2017-08-04 22:38:22 +02:00
heinrich5991 33315452c3 Merge branch 'master' into leak_fix 2017-07-31 20:42:32 +02:00
HMH 19a8e7add6 removed some spaces 2017-07-28 20:44:03 +02:00
HMH 6655b35bdd minior style issues 2017-07-28 14:49:09 +02:00
heinrich5991 6247aa0c7f Enable -Wextra and -Wformat=2
Also annotate `dbg_msg`, `str_format` and `str_timestamp_ex` so that the
compiler can determine whether the format strings are correct.

Fix the compiler warnings generated by these extra warnings -- some of
them were security issues.
2017-07-27 20:38:17 +02:00
heinrich5991 1ebb4f89a6 Reopen: Add a flag for rcon login via username (#800)
This uses an extended protocol message to signal that rcon
authentication might require a username, allowing the client to enable
the username prompt.

Add a forgotten logout on key update
2017-07-24 21:43:55 +02:00
def 60d7388d9f Fix demo slicing 2017-07-22 22:03:05 +02:00
def 0b5942fc04 Add special handling for infClass class selection (fixes #794) 2017-07-21 21:43:56 +02:00
HMH bfc5700314 Yes the Kernel and Interfaces need to be deleted too... 2017-07-21 19:46:31 +02:00
HMH d3714f7efa close workerthreads on shutdown 2017-07-21 15:52:42 +02:00
HMH 80fac31175 fixed memory leak in console 2017-07-21 15:51:56 +02:00
def a736a27430 No need for writing to tmp config file anymore 2017-07-16 06:54:02 +02:00
def f2444b0de7 Add map_diff tool to compare tile layers of map versions 2017-07-12 20:15:00 +02:00
def 46cedf3a8c Compiler warnings 2017-07-09 10:27:58 +02:00
def 66f6f16e81 Windows DPI fixes #2 2017-07-09 09:44:07 +02:00
def 35dcb4d6cf Don't open map file again if we have it open already 2017-07-08 22:09:03 +02:00
def f3e3d57a90 Always close files, cleaner demo recording, fix some other stuff 2017-07-08 13:39:20 +02:00
heinrich5991 409bc0e019 Ensure null-termination in str_escape
This also fixes a couple of potential buffer overflows. The affected
code is still buggy (doesn't do the right thing on potential buffer
overflow), but at least it won't result in crashes/out of bound writes
anymore.
2017-07-08 13:06:03 +02:00
def 36d5c8d608 string toggling supports escaped strings; also some code cleanup 2017-07-08 11:03:51 +02:00
Dennis Felsing 80565b646c Merge pull request #790 from Learath2/dd_pr_togglestr
Add toggling for string options
2017-07-08 10:03:47 +02:00
Learath2 5941755832 Add toggling for string options 2017-06-20 11:27:14 +02:00
heinrich5991 1a50d405cb Use str_find from src/base/system.h and check for C: on Windows
Previously, using drive-relative paths could be used to escape the
Teeworlds directory on Windows.
2017-06-18 16:26:29 +02:00
def 59b33b95e4 Stronger catch for .. 2017-06-17 23:07:02 +02:00
def d3daa51486 Correct filter 2017-06-16 22:19:36 +02:00
def 624fd38188 Oops 2017-06-16 20:46:41 +02:00
def 1b0de108c6 Forbid escaping base directory 2017-06-16 20:22:43 +02:00
Learath2 ca4da73b75 Update the range of sv_default_timer_type. Fixes #760 2017-06-08 14:35:48 +03:00
def e4b3c17829 Add option to disable long pain sound (used when shooting in freeze) 2017-06-06 18:58:23 +02:00
eeeee 2797227063 also remove references to CGameContext from CServer 2017-06-05 22:31:56 -07:00
def 7e503a306b Revert "Back to cl_cpu_throttle_inactive"
This reverts commit c217040319.
2017-06-02 23:27:35 +02:00
def c217040319 Back to cl_cpu_throttle_inactive 2017-06-02 23:18:14 +02:00
def d6e5df0023 oops 2017-06-02 21:58:16 +02:00
def b8d61e9b7d Change some defaults 2017-06-02 21:49:30 +02:00
def 8553ed727b Replace cl_cpu_throttle with cl_refresh_rate 2017-06-02 21:33:45 +02:00
def 4125941896 Disable dbg_stress in release builds (fewer confused kids that think they hacked the server, less useless code in cache) 2017-06-02 20:45:09 +02:00
def a6e144ea72 Let's not crash the client and server on dbg_assert 2017-06-02 20:12:20 +02:00
def 27074e926a Further cleanup 2017-06-02 19:44:14 +02:00
Dennis Felsing ca9cca4c94 Merge pull request #770 from heinrich5991/pr_fix_events_uuid
Fix unpacking of net events
2017-05-27 16:21:37 +02:00
heinrich5991 3b88d78736 Fix a possible out-of-bounds read in snapshot.cpp 2017-05-27 15:52:05 +02:00
heinrich5991 9e7020368e Fix UUID formatting - the last field only has 12 hex digits
It didn't cause misprinted UUIDs because the string buffers had the
correct size.
2017-05-27 15:02:32 +02:00
heinrich5991 5ae37e6c72 Add protocol extension with UUIDs
This system can easily be extended by independent authors without
collisions, something the old system with plain increasing integers did
not allow.

Do this by utilizing the previously unused message code `NETMSG_NULL`
which has a value of 0.

This works for engine and game messages, snapshot items and events.
2017-05-25 00:52:43 +02:00
def c2400c79cf Rename cl_show_other_hook_coll to cl_show_hook_coll_other and add cl_show_hook_coll_own (fixes #741) 2017-05-14 12:03:09 +02:00
Dennis Felsing a0a1276b6a Merge pull request #751 from Learath2/dd_pr_ratelimitinvite
Add ratelimiting for /invite
2017-05-14 11:50:43 +02:00
Dennis Felsing 728e548f55 Merge pull request #754 from SheikhZayx/master
CSV file instead of statboard screenshot
2017-05-14 11:49:46 +02:00
def 6d81f1f188 Fix cl_cpu_throttle_inactive 2017-05-14 11:01:48 +02:00
def 7a9f316dd1 cl_cpu_throttle_inactive can be set higher than 1 2017-05-14 10:58:01 +02:00
SheikhZayx ea0e4948b4 CSV file instead of statboard screenshot
En-/Disable statboard being saved as csv
2017-04-26 05:10:31 +02:00
def 4b376d239c rename 2017-04-24 17:36:13 +02:00
Learath2 c1a4a95d61 Add ratelimiting and config options for invite 2017-04-24 14:04:50 +02:00
def d4ed1310d2 Configurable rate limit for SQL queries 2017-04-13 09:33:26 +02:00
Henritees 33cdfee821 Handle multi-line motd correctly in the console
Rewrote MOTD processing to handle both kinds of newlines correctly
and added an option to disable printing it to the console.

Closes #711.
2017-04-03 12:29:31 +02:00
heinrich5991 1d81d56850 Introduce new, vanilla-compatible server info protocol
This means that we have a reliable and fast way to query for extended info,
while also not wasting network bandwidth.

The protocol is designed to be extensible, there's four bytes space for
encoding more request types (currently zeroed), and there's one string in each
response packet and one string for each player available (currently the empty
string).

The protocol itself has no problems with more than 64 players, although the
current client implementation will drop the player info after the 64th player,
because it uses a static array for storage.

Also fixes #130, the player list is just sorted each time new player info
arrives.
2017-03-29 12:56:13 +02:00
necropotame b8e4e5beea Fix style in several places 2017-03-22 19:45:14 +01:00
Dennis Felsing 761c3c9be1 Merge pull request #646 from heinrich5991/pr_ddnet_brace_style
Fix the brace style in some places
2017-03-09 13:31:21 +01:00
heinrich5991 d98abf35db Rename WEBSOCKETS to CONF_WEBSOCKETS 2017-03-07 13:03:37 +01:00
heinrich5991 ba5af42b1f Fix the brace style in some places 2017-03-04 15:43:49 +01:00
heinrich5991 a13cdc25b2 Merge pull request #632 from Learath2/dd_pr_friend
Put hearts before friends names. Closes #606
2017-03-04 15:37:24 +01:00
Dennis Felsing 4c1053c6c4 Merge pull request #635 from heinrich5991/pr_dummy_input_demo_filter
Refactor dummy input and demo filtering
2017-03-01 07:59:24 +01:00
heinrich5991 b841fdc203 Bump version requirement for warmup race timer 2017-03-01 00:08:56 +01:00
heinrich5991 6517567e7e Merge pull request #602 from necropotame/gametick
Send the race time using warmup timer
2017-03-01 00:05:22 +01:00
heinrich5991 305a67d492 Initialize variable in the demo recorder 2017-02-28 17:16:22 +01:00
heinrich5991 e3f2316106 Revert "Revert "Refactor dummy input and demo filtering""
This reverts commit 187560c8c0.
2017-02-28 10:08:14 +01:00
Dennis Felsing 187560c8c0 Revert "Refactor dummy input and demo filtering"
This reverts commit 8375f4888e.
2017-02-28 08:15:35 +01:00
necropotame 6a9406dc81 Fixed merge conflict 2017-02-28 07:31:39 +01:00
necropotame 4cfe96801b Send the race time using warmup timer 2017-02-28 07:31:24 +01:00
Learath2 fa22425f26 Add a checkbox to disable friend heart 2017-02-27 23:56:22 +03:00
Learath2 c76849c51a Add sliders for friend chat color 2017-02-27 23:39:06 +03:00
heinrich5991 8375f4888e Refactor dummy input and demo filtering
Remove references to src/game/ from src/engine/
2017-02-23 14:13:14 +01:00
Learath2 9cd5fa53e5 Fix horrible indent. 2017-02-09 13:01:19 +01:00
def 224b9d5443 echo command for clients prints to chat instead of mostly useless console 2017-01-06 00:17:53 +01:00
heinrich5991 80ea4c8590 Disallow usage of semicolons in chat commands
This prevents player name exploits due to tab completion of nicknames
that could result in unwanted commands being executed.

Print a deprecation message that is supposed to be removed in the
future.
2017-01-03 14:01:51 +01:00
Dennis Felsing c92e10914a Refactor demo speed setting, add 1.5x speed (fixes #568) 2016-10-28 09:31:22 +02:00
east 823e330a76 Merge pull request #554 from heinrich5991/pr_ddnet_random_timeouttoken
Generate server-specific timeout codes
2016-10-05 12:21:51 +02:00
ChillerDragon 944752b78a Fixed typo. 2016-10-04 20:08:39 +02:00
heinrich5991 7ca2697135 Generate server-specific timeout codes
This way, servers can no longer hijack the timeout codes of clients.
Timeout codes are generated from md5(seed + dummy + server address).

If `cl_timeout_seed` is set to the empty string, the old config options
are used instead.
2016-10-02 11:36:42 +02:00
east c9a50916b3 sv_dnsbl_vote option added 2016-09-05 11:53:26 +02:00
east 678a69bf5b basic DNSBL implementation 2016-09-05 11:38:11 +02:00
Dennis Felsing 1990707d68 Merge pull request #527 from heinrich5991/pr_no_compressed_control
Disallow compressed control messages
2016-08-13 00:39:42 +02:00
heinrich5991 884ad25204 Disallow compressed control messages 2016-08-12 18:41:03 +02:00
def 28f50e4440 Revert "Implement comma in search and exclude queries to separate search terms"
This reverts commit 3341e18d13.
2016-08-07 00:52:00 +02:00
def 3341e18d13 Implement comma in search and exclude queries to separate search terms 2016-08-02 22:16:02 +02:00
Dennis Felsing 8b10d15845 Merge pull request #509 from timakro/pr_no_disconnect_timeout
Don't send disconnect on timeout
2016-07-08 17:25:43 +02:00
Tim Schumacher 46b75886c9 Don't send disconnect on timeout 2016-07-08 17:00:47 +02:00
Dennis Felsing 45bf601570 Merge pull request #495 from heinrich5991/pr_ddnet_smaller_dummy_map
Reduce dummy map size from 549 bytes to 191 bytes
2016-07-03 23:26:42 +02:00
heinrich5991 0244640aca Also don't send the token magic to unsupported clients
Since only the client can initiate the secure session, there's basically
no reason to send this magic to clients which didn't advertise the
feature.
2016-06-08 09:57:17 +02:00
Dennis Felsing 3dd2f23d45 Merge pull request #499 from heinrich5991/pr_ddnet_no_tokens_for_vanilla
Don't send token to harmless vanilla clients
2016-06-07 16:22:29 +02:00
heinrich5991 a2e64f0a16 Don't send token to harmless vanilla clients 2016-06-07 15:52:57 +02:00
H-M-H ada3b9a5db Merge pull request #378 from H-M-H/sqlmasters
separate sqlwrite and sqlread server
2016-05-28 23:00:16 +02:00
heinrich5991 4d6657e3f1 Fix CRC of dummy map 2016-05-26 11:06:56 +02:00
heinrich5991 b075f1ff1b Use a dummy map with background 2016-05-25 23:47:34 +02:00
heinrich5991 702ed7e023 Reduce dummy map size from 549 bytes to 191 bytes
Also include a tool to generate said map; the map is generated without
any hacks. It could likely be made smaller using a few tricks.
2016-05-24 01:47:04 +02:00
heinrich5991 e353aa80b2 Don't send uninitialized memory over the network 2016-05-23 11:48:23 +02:00
H-M-H b648b530d5 Merge branch 'master' into sqlmasters 2016-05-20 23:40:29 +02:00
def 1645310750 Keep reading packets after invalid control packet 2016-05-17 23:44:57 +02:00
def 695bf346ac Make gfx_refresh_rate functional (fixes #255) 2016-05-10 17:43:27 +02:00
def f3a4069867 Set gfx_highdpi to 0 as default (needs someone to fix it on Win >= 8.1 and Mac) 2016-05-08 19:40:53 +02:00
Dennis Felsing 6c771f6bff Merge pull request #475 from east/timeoutprotfix
Copy resendbuffer on timeout protection
2016-05-07 23:41:54 +02:00
east 1cbaa0c4ef copy resendbuffer on timeout protection 2016-05-07 19:28:16 +02:00
def 9bd30ce447 Make high-dpi screen support optional 2016-05-07 17:47:05 +02:00
def c325b08087 Add inp_mouseold for warped mouse input 2016-05-07 15:59:13 +02:00
def 939f2136c0 Nicer way of handling Mac fifo rewinding (just don't use high level file streams) 2016-05-05 23:32:55 +02:00
H-M-H 319729e207 ifdef for rewind as it is only required of OS X 2016-05-05 21:15:15 +02:00
H-M-H 491d878a64 always read fifo from start 2016-05-05 20:29:31 +02:00
def 14f1670fda Fix fifo console to remove newline character at end 2016-05-05 18:48:15 +02:00
H-M-H e351080dd3 removed double semicolons 2016-05-04 00:24:54 +02:00
H-M-H c9e65c7931 Merge branch 'master' into sqlmasters 2016-05-03 23:07:24 +02:00
Henningstone be010ff370 Fixed crashbug in fifo.cpp 2016-05-03 19:17:44 +02:00
def a954241169 style 2016-05-02 23:37:40 +02:00
def 21ac41bfae Clean up fifo console 2016-05-02 23:36:21 +02:00
def 61e47422f6 Clean up debug messages a bit (lower case, no useless errors) 2016-05-02 21:35:32 +02:00
def a9ed7035ee Add inp_ignored_modifiers to ignore set of keyboard modifiers 2016-05-01 23:07:19 +02:00
def 644a23ba57 Fix folder creation 2016-05-01 14:45:47 +02:00
def 13143eac23 Reconnect for timeout instead of bans, some simplification 2016-05-01 11:12:07 +02:00
def cc002d244d Fix gfx_resizable to be on by default with X11 2016-05-01 03:28:41 +02:00
Dennis Felsing f016a0eb1f Merge pull request #436 from timakro/pr_other_gametype_entities_clear
added entities clear for other gametypes
2016-04-30 20:28:27 +02:00
def 1446adee2c Window resizing only with X11 (not on Windows and Mac OS X) 2016-04-30 19:19:19 +02:00
def 644fec7e55 Resize window without restarting client 2016-04-30 17:59:58 +02:00
def db8a126315 Merge swick's SDL2 branch 2016-04-29 21:55:48 +02:00
Tim Schumacher 4a22e762ff added entities clear for other gametypes 2016-04-29 19:29:19 +02:00
def 86a0f46937 Add a connection limit (fixes #408) 2016-04-27 22:09:18 +02:00
def 0f5611c2f0 Add function to filter chat out of demo when slicing (fixes #382) 2016-04-27 17:05:30 +02:00
east a5de7596fa comments added 2016-04-23 17:44:42 +02:00
east 32ba1c9239 Antispoof dm1 fallback on flood added 2016-04-23 17:23:01 +02:00
H-M-H e35de5a371 whether to setup a db can be configured for each server now 2016-02-20 15:33:35 +01:00
H-M-H 88ed7391da handle exceptions from sql properly
- write failed sqlinserts to a file
- improved structure
2016-02-20 15:33:35 +01:00
H-M-H 1314085928 restructured sqlconnection
reading from and writing to several different servers is now possible
TODO:
-handle Exceptions properly (try another sqlserver)
-if everything fails while writing write the insert to a file
2016-02-20 15:33:35 +01:00
H-M-H 15f2e07c48 moved sqlserver stuff into CServer-class
as sqlconnections should not last only
until next mapreload
2016-02-20 15:33:35 +01:00
H-M-H 6ba10d2719 mastersqlservers are working now
TODO: move the sqlserver objects somewhere else
so they wont be destroyed on every reload
2016-02-20 15:33:35 +01:00
H-M-H 9ed66f7adc Cleanup of Sqlconnection
-moved all connectionstuff to a new class
-moved sqlstring functions to an own file
-do not give threads access to CSqlScore
2016-02-20 15:33:35 +01:00
Tim Schumacher 9e6e062793 added cl_skin_filter_string for skin quick search 2016-02-14 19:51:49 +01:00
def 0a49428e21 Veto considers time on server not in current race 2016-01-27 02:14:46 +01:00
def 56ca49f1de More conservative default for sv_server_info_per_second 2016-01-23 15:14:22 +01:00
heinrich5991 96f0eddbb8 Add sv_max_server_info_per_second
This controls how many complete server info responses are sent per
second.
2016-01-22 16:42:54 +01:00
Väinö Mäkelä f1038b0092 Obey the Teeworlds code formatting rules. 2016-01-18 18:20:47 +02:00
Väinö Mäkelä cb84cf2216 Improve the handling of invalid skins.
CDataFileReader::Open(): Check the return status of io_read()
before reading the buffer, to avoid reading uninitialized data
in case the file was shorter than a full header.

CSkins::SkinScan(): Check that the image is high enough.
2016-01-17 10:48:21 +02:00
H-M-H e41b4f463d Merge pull request #389 from H-M-H/command_usage
added (console-)command usage fixes #387
2016-01-03 20:59:32 +01:00
def c78ade00c1 Fix bug where timed out people can connect more than sv_max_clients_per_ip times 2016-01-03 01:42:28 +01:00
H-M-H cc2bbd62ca if there is no matching ']' do not attempt to read
beyond the given string
2015-12-29 00:45:51 +01:00
H-M-H 8e24ef8020 commanddescription can now be placed directly in
the commandparamsstring: "s[file]"
2015-12-28 16:19:52 +01:00
H-M-H 11a426c18b added (console-)command usage 2015-12-23 14:29:31 +01:00
H-M-H c38cba9bd0 Merge pull request #373 from H-M-H/eyewheel
Eyewheel (by Chairn and CytraL)
2015-12-01 14:02:22 +01:00
H-M-H b3b38dd0d3 minior cleanup of eyewheel 2015-11-16 21:15:37 +01:00
timgame 2874e18ce0 dont restore empty config values at start 2015-11-16 20:31:56 +01:00
H-M-H 8d9dd65f0b Merge branch 'master' into pr/317 2015-11-15 00:05:04 +01:00
Tim Schumacher d99660f20e Merge pull request #356 from H-M-H/helper_pw
Implemented Helper accesslevel
2015-10-27 02:18:00 +01:00
H-M-H cd6c297cb0 removed some code duplication and updated autoexec_server.cfg 2015-10-27 00:46:28 +01:00
H-M-H 1b8a201a48 increased max sv_rules_line<x> length 2015-10-24 18:41:30 +02:00
H-M-H 0e532adb67 Implemented Helper accesslevel
basically just copied everything from moderator-accesslevel implementation

note however that mod_command changed to access_level
2015-10-23 04:21:07 +02:00
timgame 7fafd2db2f added sv_reload_when_empty 2015-10-22 17:27:30 +02:00
H-M-H bf8aea3857 Merge pull request #333 from heinrich5991/pr_ddnet_antiping_no_reset
Don't reset `cl_antiping` subconfig on restart
2015-10-22 00:01:28 +02:00
Tim Schumacher 7bf36ac174 Merge pull request #334 from heinrich5991/pr_error_string
Only clear the error string if none is given
2015-10-21 02:56:06 +02:00
timgame 4b07927213 Added possibility to discard settings 2015-10-21 00:54:10 +02:00
fstd d276f2c0e7 add /usr/pkg to the list of paths searched for data files (this is the default installation prefix on NetBSD (pkgsrc)) 2015-09-23 16:47:01 +02:00
def 336e916548 Add option not to create sql tables 2015-09-15 09:28:18 +02:00
heinrich5991 19e9f4e2fb Only clear the error string if none is given 2015-09-11 11:08:35 +01:00