Commit graph

6075 commits

Author SHA1 Message Date
Zwelf 67643e82b0 Make PlayerResult messages an union variant
as it is only used for DIRECT and ALL variants and for no other variants
2020-06-20 14:04:08 +02:00
bors[bot] 4edac3143a
Merge #2281
2281: Add Learn button which opens the ddnet wiki in the browser. r=heinrich5991 a=edg-l

![image](https://user-images.githubusercontent.com/15859336/85147350-05f00d00-b24f-11ea-8b6c-f79dbf605747.png)

## **I didn't test it on windows or mac.**

Co-authored-by: Edgar <git@edgarluque.com>
2020-06-20 12:00:45 +00:00
Edgar 07f0239e01
Add Learn button which opens the ddnet wiki in the browser. 2020-06-20 13:56:02 +02:00
Learath 8d422dfd70 Fix snapping for ninja 2020-06-20 14:24:38 +03:00
Learath b032eddcb4 Fix votes called from 0.7 2020-06-20 14:22:46 +03:00
Zwelf 673f59d99f Restore old message behavior when using /load and /save
Only notify the player initiating /load about the error and don't send
'Loading initiated by ...' and 'Saving initiated by ...' messages resulting
in two messages per /load and /save.
2020-06-20 13:03:25 +02: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
Learath 6db72b2388 Times are no longer negative in 0.7 2020-06-20 11:59:46 +03:00
heinrich5991 e294da41ba teehistorian: Track whether clients join via the 0.7 protocol 2020-06-19 22:06:39 +02: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 623ba68c19 Fix an oversight on skin conversion and some UB 2020-06-19 20:28:55 +03:00
Learath ddaea93e60 Implement the new Chat Commands protocol 2020-06-19 20:28:55 +03:00
Learath 1d4ea6c41b Drop clients properly 2020-06-19 20:28:55 +03:00
Learath d794520748 Remove forgotten debug messages 2020-06-19 20:28:55 +03:00
Learath effa964f08 Translate playerflags 2020-06-19 20:28:55 +03:00
Learath df42ce8b16 Send gameinfo correctly 2020-06-19 20:28:55 +03:00
Learath 32fb6718dd Allow joining TEAM_SPECTATOR 2020-06-19 20:28:55 +03:00
Learath 4067e711ef More template magic. Cleans up 'send-to-all-sixup' 2020-06-19 20:28:55 +03:00
Learath 9e2434c65d Better skin colors. Better game message translation 2020-06-19 20:28:55 +03:00
Learath 1514a6df85 Fix NetObj translation, fix sounds 2020-06-19 20:28:55 +03:00
Learath 46a7b6de2c Fix some oob access 2020-06-19 20:28:55 +03:00
Learath 9dc1a0357a Get /spec working 2020-06-19 20:28:55 +03:00
Learath e81c718180 Rework netobjs, fix chat 2020-06-19 20:28:55 +03:00
Learath eff28c658a Fix server messages 2020-06-19 20:28:55 +03:00
Learath 939b45a0aa Actually remove duplicate message 2020-06-19 20:28:55 +03:00
Learath 465fd570e0 Implement whispers 2020-06-19 20:28:55 +03:00
Learath 25664da121 Remove duplicate message 2020-06-19 20:28:55 +03:00
Learath 974b373ec2 Translate Damage Indicators 2020-06-19 20:28:54 +03:00
Learath 03070d0567 Fix many issues 2020-06-19 20:28:52 +03:00
Learath 807c92f1a4 Generate the 0.7 protocol 2020-06-19 20:27:15 +03:00
Learath b0e5a37fa9 Do message translation differently 2020-06-19 20:27:15 +03:00
Learath 5000b248bb Fix things 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
bors[bot] 7d428676e2
Merge #2263
2263: Fix /spec + super bug r=Learath2 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-06-18 22:17:43 +00:00
def e38cd6b6f2 Fix /spec + super crash (fixes #2262)
Thanks to Learath2 for finding a better solution.
2020-06-18 23:54:05 +02:00
def 2c7f4c71aa Minor code style fixes in sql_score.cpp 2020-06-18 23:03:53 +02:00
bors[bot] 13237ee12e
Merge #2245 #2266
2245: Stop playing map sound when demo player is paused r=heinrich5991 a=def-

Noticed on Shooting Range map

2266: Reset hook & collision in prediction after kill r=heinrich5991 a=def-

Thanks to Pipou for reporting

Co-authored-by: def <dennis@felsin9.de>
2020-06-18 19:29:41 +00:00
def 7aed6476dc Allow larger map names 2020-06-18 18:29:27 +02:00
def 6fcb8abbd0 Initialize m_SqlRandomMapResult (fixes #2272) 2020-06-18 08:18:33 +02:00
def b3d22204c3 Update credits 2020-06-17 23:23:27 +02:00
bors[bot] 98b448ebcc
Merge #2247
2247: Thread safe SQL interaction r=def- a=Zwelf

This PR intends to make the database interaction thread safe and optimizes some SQL queries. This is still a WIP, but since it is a rather big PR I wanted to get feedback early on.

Benefits:

* remove race conditions leading to undefined behavior and potential crashes
* logging game related database results in teehistorian would be possible

Behavior change:

* /top5team prints ranks in reverse order when passing a negative number (like /top5, /top5points)
* Optimize SQL statements for /rank /teamrank /top5 /top5team /points /top5points
* /load without parameters doesn't pass the SQL error to the user (as most other functions)
* Simplify IScore interface
* Add UUID to /save table (update of database schema necessary):
  ```
  ALTER TABLE record_saves ADD SaveID varchar(64);
  ```
* /save immediately kills team and loads it again if the database insert fails.

still TBD:
* [x] saving (team) score when finishing
* [x] loading team save
* [x] loading initial time and birthday check
* [x] /map and random map votes
* [x] RFC: generate a passphrase (2-3 word) if save-code exists or no save-code is given making /save failures much more rare and save-codes more secure
* [x] clean up code (removing now unused structs, ordering of functions in IScore)

Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-17 19:35:45 +00:00
Zwelf f1b2ff086c Clean up thread safe SQL refactor 2020-06-17 21:15:07 +02:00
Learath eed3e783e0 Mark unused tunes as such 2020-06-17 13:39:54 +03:00
bors[bot] c4d71c7ef4
Merge #2264
2264: Add Entites off sign to front layer (fixes #2261) r=Learath2 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-06-16 19:31:25 +00:00
Zwelf 9f15acdbee Thread safe random_unfinished_map and modified sql statement 2020-06-15 11:14:15 +02:00
Zwelf afe96ed69c Thread safe random_map 2020-06-15 11:14:15 +02:00
Zwelf 7f4dc2bb4e Thread safe /map 2020-06-15 11:14:15 +02:00
Zwelf ea31171873 Generate passphrase for save-code
* when none is given
* if the given save-code already exist
* if the database connection fails therefore it can't be checked if the save-code already exists

Using the short word list from eff:
https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases
2020-06-15 11:14:15 +02:00
Zwelf 528ca377ed Thread safe saving of team score 2020-06-15 11:14:15 +02:00
Zwelf 13c80fdc56 Thread safe saving of score 2020-06-15 11:14:15 +02:00
Zwelf 5dcb6f3b0d Thread save Init 2020-06-15 11:14:15 +02:00
Zwelf c278d8dbc3 Read SaveID from database on /load 2020-06-15 11:14:15 +02:00
Zwelf dbf6ac88f6 Thread save loading of player time and birthday 2020-06-15 11:14:15 +02:00
Zwelf e9242f45f1 Thread safe /load 2020-06-15 11:14:15 +02:00
Zwelf 031ac52320 Thread safe /save 2020-06-15 11:14:15 +02:00
Zwelf f5ebbf59b6 Thread safe /load without paramters 2020-06-15 11:14:15 +02:00
Zwelf 7514e93a8a Optimize /top5points SQL query 2020-06-15 11:14:15 +02:00
Zwelf fa8972deb6 Thread safe /top5points 2020-06-15 11:14:15 +02:00
Zwelf 62f3f40c00 Optimize /points database query 2020-06-15 11:14:15 +02:00
Zwelf 0f3f845a7f Thread safe /points 2020-06-15 11:14:15 +02:00
Zwelf e37cf5f3cb Thread safe /times 2020-06-15 11:14:15 +02:00
Zwelf 8fc81e7eca Reworked PlayerResult to signal finished with use_count == 1
Therefore if the sql thread crashes, the result is deleted automatically
2020-06-15 11:14:15 +02:00
Zwelf 1d7289c8f0 Thread safe /top5team and optimize database query 2020-06-15 11:14:15 +02:00
Zwelf 83fbee5f81 Optimize /teamrank database query 2020-06-15 11:14:15 +02:00
Zwelf a92509a5df Simplify /top5 SQL statement 2020-06-15 11:14:15 +02:00
Zwelf 9cf28354d7 Thread safe /top5 command 2020-06-15 11:14:15 +02:00
Zwelf fd44b1dc5b Reduce boilerplate code needed to start player info requesting thread 2020-06-15 11:14:15 +02:00
Zwelf f18daa949c Thread safe /teamrank 2020-06-15 11:14:15 +02:00
Zwelf e311c39151 Remove unused parameters from IScore interface 2020-06-15 11:14:15 +02:00
Zwelf 68aa157c11 Simplify /rank sql request 2020-06-15 11:14:15 +02:00
Zwelf eda0bab4bb Thread safe /rank 2020-06-15 11:14:15 +02:00
Zwelf 91e286f54d Fix parsing responses from player 2020-06-15 11:14:15 +02:00
Zwelf 76c227a542 Reimplement /mapinfo command 2020-06-15 11:14:15 +02:00
Zwelf 9add354367 Use Template for SqlResult 2020-06-15 11:14:15 +02:00
Zwelf 873f478a82 Rename Debut to Offset 2020-06-15 11:14:15 +02:00
Zwelf 4ee08dcc5c Remove unused arguments from IScore 2020-06-15 11:14:15 +02:00
Zwelf 69cf72dae4 Adjust file based ShowRank, ShowTeamRank, ShowPoints consistent functions to sql 2020-06-15 11:14:15 +02:00
Zwelf 3d25953036 Ordered functions 2020-06-15 11:14:14 +02:00
Zwelf a990acc512 Remove existing CRandomMapResult to simplify IScore interface 2020-06-15 11:12:57 +02:00
Zwelf 3af18f5f60 Create shared pointer on demand 2020-06-15 10:59:59 +02:00
Zwelf 0891a0fd51 Remove some unnecessary header includes 2020-06-15 10:59:59 +02:00
Zwelf 8a22cce031 Start of sql refractor
* Use atomic integer in thread count for thread safety
2020-06-15 10:59:46 +02:00
Zwelf add4fab645 Disallow team join while save command is active 2020-06-15 10:59:46 +02:00
Zwelf 7146eb572b Save error handling clean up 2020-06-15 10:59:46 +02:00
Zwelf 2d7886bf33 Small cleanup 2020-06-15 10:59:46 +02:00
def 0d9d873abf Reset hook & collision in prediction after kill
Thanks to Pipou for reporting
2020-06-14 22:50:25 +02:00
12pm 01092a30c1 add sv_tele_others_auth_level 2020-06-14 19:21:12 +03:00
def 2d0340b1cd Add Entites off sign to front layer (fixes #2261) 2020-06-14 16:01:32 +02:00
Learath 8d255921b8 Fix out of bounds read 2020-06-14 12:38:52 +03:00
def 5676e8842a Improve quality default, persist video recorder settings when running other DDNet client 2020-06-06 00:04:42 +02:00
ZombieToad f12d84c2c7
Update gameclient.cpp
so demo renders the right clan as green
2020-06-04 13:49:29 +01:00
bors[bot] ef51f35840
Merge #2240
2240: Don't reset zoom when using timeline in demo r=heinrich5991 a=def-

Thanks to Lady Saavik for reporting

Co-authored-by: def <dennis@felsin9.de>
2020-06-02 17:25:02 +00:00
def d06f1949c2 Stop playing map sound when demo player is paused
Noticed on Shooting Range map
2020-06-02 13:47:05 +02:00
def 690fb852df Don't reset client on demo menu events 2020-06-02 13:22:00 +02:00
bors[bot] 3cd35de942
Merge #2236
2236: Fix team rejoin logic for sv_team 3 r=Learath2 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-06-02 10:27:13 +00:00
bors[bot] f59441f1c2
Merge #2243
2243: Workaround for client crash on predicted explosion r=def- a=trml

I haven't been able to find the exact source of the problem yet, but at least this seems to get rid of the segfault. The crash only happened with with recent versions of gcc and -O3 for me.

Co-authored-by: trml <trml@users.noreply.github.com>
2020-06-01 20:31:06 +00:00
trml e5d348975b Avoid client crash on predicted explosion 2020-06-01 21:23:18 +02:00
d3fault b9844ea6ec Save active weapon with /rescue 2020-05-31 22:39:28 -07:00