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
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
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