Commit graph

6450 commits

Author SHA1 Message Date
heinrich5991 c2aaef2adf Remove vendored libwebsockets 2018-02-14 12:55:37 +01:00
def e9bc42a63c Update websockets implementation (fixes #1022)
seems to work with libwebsockets 2.4
2018-02-14 12:30:14 +01:00
Learath2 ff872b39cd Forgot to add GameID to the col-list 2018-02-14 01:17:40 +01:00
Learath2 61f0461d46 Style 2018-02-13 17:15:16 +01:00
bors[bot] 6338a05fd3 Merge #1025
1025: Add Teehistorian UUIDs to every record r=heinrich5991 a=Learath2

For statistic collecting purposes, don't merge before updating the SQL Schema.

    ALTER TABLE record_race ADD COLUMN GameID VARCHAR(64) AFTER cp25;
    ALTER TABLE record_teamrace ADD COLUMN GameID VARCHAR(64) AFTER ID;
2018-02-13 16:01:20 +00:00
Learath2 8cfebaa0b2 Fix #1031 2018-02-13 03:45:43 +01:00
bors[bot] c0fa444f3a Merge #1034
1034: Try to find external GLEW, pnglite and Wavpack  r=Learath2 a=heinrich5991

Allow for newer versions of Wavpack, fixes #1023.

Fixes #1016.
2018-02-13 02:02:07 +00:00
heinrich5991 94818ec1f0 Try to find external GLEW, pnglite and Wavpack
Allow for newer versions of Wavpack, fixes #1023.

Fixes #1016.
2018-02-12 23:29:45 +01:00
heinrich5991 797581502a Remove spurious engine/server include in game 2018-02-12 23:29:45 +01:00
heinrich5991 9e9b57ec62 Move generated files to the CMake build directory 2018-02-12 23:29:45 +01:00
def 5587e6dc96 Remove unused inp_grab 2018-02-11 16:40:08 +01:00
bors[bot] 6283ad2012 Merge #1015
1015: Fix typo r=heinrich5991 a=yangfl
2018-02-07 16:22:48 +00:00
Learath bc11fc2a35 Add GameUuid to teamscore aswell
Also get GameUuid through an interface.
2018-02-07 16:43:36 +01:00
Dennis Felsing f62833b699 Always keep same resolution on macosx 2018-02-07 13:21:18 +01:00
yangfl 1620fc9b0f Fix typo 2018-02-07 16:10:40 +08:00
Dennis Felsing 4c8a770ba6 macosx highdpi try #123456789 2018-02-07 08:22:57 +01:00
Learath 94d98e833a Fix mistakes. Fix CREATE TABLE 2018-02-07 01:10:02 +01:00
Learath 0aeb912db2 Escape the UUID just in case 2018-02-07 00:44:03 +01:00
Learath 4a52bca55d Include the teehistorian uuid instead 2018-02-07 00:35:21 +01:00
def 864ff1ac74 Remove highdpi stuff
This reverts commit d234c55dfa.
2018-02-06 23:21:17 +01:00
Learath 4748d5f065 Add client version to the record 2018-02-06 20:07:42 +01:00
Dennis Felsing d234c55dfa Try macosx highdpi fix 2018-02-05 14:37:26 +01:00
def a00d4112a7 Version 11.0.3 2018-02-03 21:47:09 +01:00
def c73e2a7ba8 New year is on January 1, not February 1 2018-02-01 20:22:18 +01:00
bors[bot] 4b84d7558f Merge #1007
1007: Record rcon authentication stuff into teehistorian r=Learath2 a=heinrich5991

This allows to check moderator actions after-the-fact.
2018-01-30 10:38:01 +00:00
bors[bot] 250dd81e2e Merge #1009
1009: Scrub more references to bam r=heinrich5991 a=Learath2
2018-01-29 13:23:02 +00:00
Learath2 98209fb0f4 Remove bam compatibility symlinks for osx 2018-01-28 22:53:51 +01: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
heinrich5991 a744fe53a2 Remove CPlayer::m_Authed
This can't get out of sync now.
2018-01-27 23:13:17 +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 4377c5d707 comma 2018-01-27 10:54:24 +01:00
def 3672efb6fe Can't change GAME_VERSION after all 2018-01-26 22:12:12 +01:00
def 151da9af97 Remove Emojis 2018-01-25 20:03:18 +01:00
Ryozuki 214a8ba10a fix votes 2018-01-25 19:36:40 +01:00
Dennis Felsing cb0209d6e3 Reapply "Only make grenades explode once (fix by timakro)" 2018-01-25 02:32:34 +01:00
Dennis Felsing f3256f0b6c Revert "Only make grenades explode once (fix by timakro)"
This reverts commit b9a93a18fb.
2018-01-24 07:50:15 +01:00
def dd7281ef86 Limit m_NumTimelineMarkers (reported by GG Kid) 2018-01-23 16:04:24 +01:00
def 39cb6ad8b7 Version 11.0.2 2018-01-22 20:55:24 +01:00
Tim Schumacher b3f7864ecf Don't change map release time when updating map stars/points 2018-01-22 20:47:26 +01:00
Dennis Felsing fac054275c
Merge pull request #992 from Jupeyy/master
RAM usage reduction for map buffering and foreground layer count fix
2018-01-22 20:44:56 +01:00
Dennis Felsing 8f2ce84f4e
Merge pull request #996 from Ryozuki/pr_cmd_vote_no
Add vote_no command
2018-01-22 20:36:20 +01:00
Dennis Felsing b9a93a18fb Only make grenades explode once (fix by timakro) 2018-01-22 14:15:53 +01:00
def 3033fbb466 Also pass negative numbers 2018-01-21 19:13:20 +01:00
def a731482152 /top5, /top5team, /top5points, /times also show worst results with negative numbers 2018-01-21 19:08:52 +01:00
Ryozuki 79fedff12d add /modhelp chat command 2018-01-21 01:32:55 +01:00
Ryozuki 0f328d6c52
wrong side.. 2018-01-18 18:41:37 +01:00
Ryozuki e039145628
fix pointer naming 2018-01-18 18:30:38 +01:00
Ryozuki e59387a304 revision changes 2018-01-18 16:17:23 +01:00
Ryozuki 6413cab702 forgot newline 2018-01-18 07:58:22 +01:00
Ryozuki 1e88ad92a0 add vote_no command and show auth rank in force vote 2018-01-18 07:56:07 +01:00
Ryozuki 6bf4a6e2ee fix style in ddracecommands.h 2018-01-18 01:25:45 +01:00
Jupeyy 15cc8e2dc8 use type that can hold any pointer size 2018-01-16 10:18:14 +01:00
Jupeyy 99bb1cc7db add parentheses 2018-01-16 09:41:06 +01:00
Jupeyy e9a2fc1d6e reduce RAM allocation for map buffering, and fix forground layer count 2018-01-16 09:35:28 +01:00
def c295ffbb6f Version 11.0.1 2018-01-15 20:19:23 +01:00
Dennis Felsing d174509f50
Merge pull request #990 from Ryozuki/pr_add_output_mutes_muteid
Add more output to mutes and muteid
2018-01-15 19:41:19 +01:00
Ryozuki 05ece01690 Add more output to mutes and muteid 2018-01-15 19:31:14 +01:00
def 949bb2d9fc Fix crash in emoji on map change, clear emojis 2018-01-15 19:08:51 +01:00
def 9139737aa7 Minor style cleanup 2018-01-15 19:08:33 +01:00
Dennis Felsing 31bbbaf512 case sensitivity 2018-01-15 09:10:20 +01:00
Dennis Felsing 272e14357c Fix SQL code for points/top5points 2018-01-15 09:08:51 +01:00
def 7ae5f33bdd fix cl_show_direction (thanks jupeyy) 2018-01-14 20:51:02 +01:00
def c8d4b605bf Improved cl_showfps, don't need average/current anymore 2018-01-14 17:21:50 +01:00
def 325371331d Version 11.0 2018-01-14 15:04:18 +01:00
def 2af80de4ea Teeworlds game version update 2018-01-14 13:57:57 +01:00
def 80cf5eff45 Update credits 2018-01-14 08:11:48 +01:00
def 9d5976a07d Fix version number... 2018-01-14 07:37:03 +01:00
def dee03a4f2e Version 11.0 2018-01-14 07:34:46 +01:00
def 48980efa2e Disable OpenGL 3 by default 2018-01-14 07:33:00 +01:00
bors[bot] 861849c924 Merge #981
981: Fix some bugs related to asynchronous IO r=Learath2 a=heinrich5991

Since `aio_thread` was crashing with #964 on an address that we didn't hand to `io_write`, I hope that this was just a bug with concurrently writing to stdout on Windows, and not a bug in the `aio` stuff.

Fixes #914. Fixes #964.
2018-01-14 02:20:29 +00:00
def 4bc0d176d3 More reverts.. 2018-01-13 22:22:55 +01:00
def 3ee76bc5ff Revert voting change 2018-01-13 21:40:29 +01:00
heinrich5991 8f291ce528 Don't use aio logging to stdout on Windows
This should fix #964.
2018-01-13 20:43:41 +01:00
heinrich5991 a5ab0faee7 Simplify aio stuff a little
This hopefully gets rid of the uninitialized writes CI and I sometimes
see.

Fixes #914.
2018-01-13 19:17:33 +01:00
def 16117f74d7 People don't like my vote changes 2018-01-13 16:46:31 +01:00
def 4dc118c752 Mutes work independent of port, don't announce IP in chat (fixes #908) 2018-01-13 10:50:31 +01:00
def 4682eaff56 Add option to turn off emojis (fixes #936) and add options in settings menu 2018-01-13 10:37:24 +01:00
def 484325f493 Fix nameplates with antiping (fixes #943) 2018-01-12 19:24:44 +01:00
heinrich5991 9d9bfee53f Move to ISO 8601-compliant timestamps
https://en.wikipedia.org/w/index.php?title=ISO_8601&oldid=819129098
2018-01-11 16:01:19 +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
def 2ebc993379 Oops 2018-01-11 15:26:41 +01:00
def e29de3295f Vote faster when all press yes 2018-01-10 23:46:14 +01:00
def 37b7f058b2 Fix voting 2018-01-10 23:44:40 +01:00
def 0cc4763a43 Fix crash: Switch tiles with number 0 are handled like non-switch tiles
Thanks to 645654 and phacrum for report
2018-01-10 22:19:38 +01:00
bors[bot] 4a3b280fbb Merge #979
979: Add a missing call to `lock_wait` in test function r=Learath2 a=heinrich5991

This was uncovered when I tried to run other code with ThreadSan, but it
only found this. :(
2018-01-10 15:50:58 +00:00
Dennis Felsing d4f5b6ae69 Remove redundant code 2018-01-10 14:36:04 +01:00
Dennis Felsing ea85e0669a Keep vote running until everyone presses f3 or time runs out
Gives enough time for mods to react and for players to save
2018-01-10 14:33:03 +01:00
bors[bot] 94e43509cc Merge #977
977: Active moderator mode r=heinrich5991 a=Ryozuki

This PR adds a RCON command called "moderate", which enables a active moderator mode for the caller, so this will happen if a vote kick/spec is made:

- Vote will last atleast x seconds defined by CGameContext::m_VoteCloseTime (35 seconds on ddnet, according to @heinrich5991) even if there is majority.
- If a active moderator votes, it will be a force vote.
- If the active moderator doesn't vote, it will pass normally
- This is only for kick and spec votes.

I also added `access_level moderate 1` to autoexec_server.cfg

If there are any spelling errors on the code tell me.

Maybe needs to be tested more.
2018-01-09 09:14:17 +00:00
bors[bot] 5b2a929bc1 Merge #976
976: fixed rand init error message r=heinrich5991 a=ChillerDragon

the ``dbg_msg()`` func doesn't work until the
``IEngine *pEngine = CreateEngine("DDNet", Silent);`` line gets executed.

I used a bool to leave the code order untouched c:
2018-01-07 17:02:44 +00:00
Chiller Dragun 52a7f84583 code styling 2018-01-07 03:03:33 -08:00
def 4813a4b857 Add cl_shownotifications (fixes #949) 2018-01-05 20:20:39 +01:00
def 77a999c0b1 Add cl_showemotes 2018-01-05 20:17:22 +01:00
def f1af7cff98 Still render chat input even when chat is disabled 2018-01-05 20:11:05 +01:00
def 3025ed35c9 Introduce cl_show_chat_system
Set to 0 to disable server messages
2018-01-05 20:10:39 +01:00
heinrich5991 c9fc487c43 Add a missing call to lock_wait in test function
This was uncovered when I tried to run other code with ThreadSan, but it
only found this. :(
2018-01-05 16:06:24 +01:00
Ryozuki d6eb604718 add rcon moderate mode 2018-01-05 15:23:08 +01:00
Chiller Dragun 654dd597fe fixed rand init error message 2018-01-04 06:33:21 -08:00
bors[bot] c15f52bf5f Merge #957
957: Add manual locking to `ASYNCIO` for transacted writes r=Learath2 a=heinrich5991

Previously, e. g. it was possible that newlines are separated from the
printed line in `logger_file`.
2018-01-02 15:31:09 +00: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
def 627291c510 /pause <name> always switches to watching name
Old behaviour switched you out of pause if you were paused already
Thanks to fokkonaut for suggestion
2017-12-23 20:42:54 +01:00
Emir Marincic 08d7fc173c
Merge pull request #967 from heinrich5991/pr_ddnet_address_logging
Add address logging server
2017-12-21 16:35:47 +01:00
Dennis Felsing be9a5fc8c8 Update save command description (by marcelherd) 2017-12-21 13:58:09 +01:00
heinrich5991 eb31a52b83 Add very basic test for Unix sockets 2017-12-20 16:56:44 +01:00
heinrich5991 1a236dbefc Send connection information to external server 2017-12-20 16:56:34 +01:00
bors[bot] 1d55bbda0e Merge #948
948: Remove deprecated multi commands r=Learath2 a=heinrich5991

You now have to use `/mc;` instead of `/` if you want to bind multiple
commands to one key.
2017-12-08 14:48:32 +00:00
bors[bot] a2f010c1fe Merge #941
941: Add cross-compiled DMG archives r=Learath2 a=heinrich5991

Currently they only contain the client and the archives are a lot larger
than the current release artifacts.
2017-12-08 14:20:49 +00:00
Jupeyy 9228e632e9 remove spaces 2017-12-03 11:50:43 +01:00
Jupeyy e314802c9c Initialize m_LastLoad in Constructor and reset it when a new map is
loaded(%current% can be loaded directly)
2017-12-03 08:01:17 +01:00
Jupeyy 060f6fd36e Load shaders through IStorage class
Fixes #939.
2017-12-02 22:19:57 +01:00
ChillerDragon 3acb650a6f
removed unused comment 2017-12-02 18:26:53 +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 8d47638a29 Add manual locking to ASYNCIO for transacted writes
Previously, e. g. it was possible that newlines are separated from the
printed line in `logger_file`.
2017-11-27 01:04:55 +01:00
heinrich5991 fd36b8c8c8 Remove unused header file src/engine/shared/storage.h 2017-11-27 00:58:30 +01:00
bors[bot] 41f6140179 Merge #945
945: Don't use nonstandard `#pragma pack` r=Learath2 a=heinrich5991

It's not needed in that place anyway.
2017-11-26 16:27:50 +00:00
bors[bot] 5bfb25c9c8 Merge #954
954: Change some config variable defaults to official server values r=Learath2 a=heinrich5991
2017-11-26 16:13:23 +00:00
bors[bot] f9e0b6b3fe Merge #931
931: Add Speedup tiles correctly at the border creation & remove tile layer extension restriction & fix the LastIndex buffer initlialization & setup non mipmap textures up correctly(texture completness) r=heinrich5991 a=Jupeyy

Allows speedups to be drawn on extended range(out of map range) too.
2017-11-26 13:32:05 +00:00
Jupeyy b1d99de87a s_ 2017-11-26 14:10:47 +01:00
Jupeyy bff1186d3b is now s_ 2017-11-26 14:08:00 +01:00
Jupeyy 14297ae45c code pattern 2017-11-26 13:28:41 +01:00
heinrich5991 c10db436b4 Change some config variable defaults to official server values 2017-11-24 11:59:45 +01:00
heinrich5991 23734deb14 Call net_init in tests 2017-11-24 10:51:46 +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
heinrich5991 f0c647dba5 Change os_compare_version to os_is_winxp_or_lower
This stops leaking OS details in non-`system.c` files.
2017-11-23 03:10:15 +01:00
heinrich5991 7fc4a21565 Remove deprecated multi commands
You now have to use `/mc;` instead of `/` if you want to bind multiple
commands to one key.
2017-11-18 16:36:34 +01:00
heinrich5991 be80ccb7d6 Don't use nonstandard #pragma pack
It's not needed in that place anyway.
2017-11-18 00:24:44 +01:00
heinrich5991 dcbd8197a4 Stop using deprecated APIs on macOS in server launcher 2017-11-17 14:57:42 +01:00
heinrich5991 dd5c26f81c Build the server launcher on macOS, package it 2017-11-17 14:37:29 +01:00
bors[bot] 27722633a3 Merge #940
940: Put shaders into the data/ directory r=Learath2 a=heinrich5991

Simplifies a lot of things
2017-11-15 23:29:55 +00:00
heinrich5991 17d3f4afa4 Put shaders into the data/ directory
Simplifies a lot of things
2017-11-08 22:19:47 +01:00
bors[bot] 71d77ae778 Merge #937
937: Fix `3 / 2` using integer division r=Learath2 a=heinrich5991
2017-11-08 20:08:59 +00: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
Jupeyy 78c06e180f remove dublicated GL queries 2017-11-04 05:38:48 +01:00
Jupeyy 78a9fbb9b5 use the write buffer slot, instead of elementarray slot to create the
index buffer
2017-11-04 04:57:58 +01:00
heinrich5991 ef0c1b266f Fix 3 / 2 using integer division 2017-11-03 22:10:04 +01:00
Jupeyy d367f94d7c invalidate all index buffer bindigs, when index buffer is resized 2017-11-03 19:48:17 +01:00
Jupeyy c22af4bb4d fix index buffer bindig for normal quads(fixes startup crashes) and
initialize non mipmap textures as linear(texture completness)
2017-11-03 19:33:23 +01:00
bors[bot] 3fdc87047b Merge #935
935: removed dead function prototype r=heinrich5991 a=ChillerDragon
2017-11-01 14:15:56 +00:00
ChillerDragon a013a59aa6 removed dead function prototype 2017-11-01 14:57:34 +01: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 04820b44f8 Simplify emoji 2017-10-28 09:08:17 +02:00
Michał ebe894faef Fix duplicate 2017-10-28 09:08:17 +02:00
Michał f7e64fe99e Quick fix 2017-10-28 09:08:17 +02:00
Michał 2e353beec2 Rendering fix, better offset calculation, optimizations 2017-10-28 09:08:17 +02:00
Michał 58b0ae5fc7 Possible emoji rendering fix 2017-10-28 09:08:17 +02:00
Michał 3c3c7abd3c Removed alias->utf replacer, added alias lookup instead, modified CEmojis class 2017-10-28 09:08:17 +02:00