Commit graph

247 commits

Author SHA1 Message Date
ChillerDrgon f1bb5b5bd9 Use NUM_DUMMIES for dummy array length 2020-10-18 23:15:25 +02:00
Jupeyy 8d6148b20b Modulize skins, particles, emoticons and game 2020-10-09 09:07:19 +02:00
def 1a83651cf1 Allow quitting instantly with SDL_QUIT when non-warning dialog showing 2020-10-04 22:46:28 +02:00
Dennis Felsing 2ba9535529 Use warnings popups for some io failures 2020-10-02 16:06:16 +02:00
Jupeyy 0e71a47708 Add customization 2020-09-28 23:21:32 +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 9f9ccaccf7 Create ALLOW_X_SKINS game info flag
To allow server to set any x_ prefixed skin and client won't filter it
out. As requested by Pure_luck for his mod to show players as tanks,
walls, etc. Won't be enabled on DDNet-Servers, thus such skins can be
added where a server modification wants to fine-control what skins are
allowed and can enforce such skins.
2020-09-24 19:05:30 +02:00
Jupeyy 8235df7752 Add menu background map 2020-09-23 23:38:28 +02:00
def 3832d948bd Sort spectator view by team, then name (not score) (fixes #2808) 2020-09-13 21:31:10 +02:00
def e162045026 Can't detect if paused on KoG, so don't show button
Since they're running an old version of DDNet server
2020-09-05 19:06:12 +02:00
Fireball 918f321dfb Improved dummy switching
- Fix a use-after-free when there are no new snapshots for the cl_dummy tee after the switch.
- When one of the tees is hooked, cycling through them will no longer show phantom hook for the other tee.
- Dummy switch might happen a bit quicker since it doesn't depend on receiving new snapshots.
- Simplified code: m_LastDummy2 is no more.
2020-07-12 19:14:18 +01:00
def 3585d83196 Don't request IUpdater interface when built without updater
Fixes warning:

[kernel]: failed to find interface with the name 'updater'
2020-07-10 00:01:02 +02:00
def 7608eb67d6 Ignore emoticon of spammy players (fixes #2387)
Add ignore emoticon button in player menu.
Someone needs to draw the graphic for that.
2020-06-27 01:15:09 +02:00
heinrich5991 8c095b2727 Make spec character rendering a bit cleaner 2020-06-25 14:56:23 +02:00
Edgar 2f3073c547
fix /spec hook 2020-06-25 10:12:17 +02:00
Edgar b33180ae77
fix /spec rendering 2020-06-24 19:01:01 +02:00
heinrich5991 209726552b Remove unused Sv_PlayerTime game message 2020-05-27 20:03:11 +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
MikiGamer 95c419d684 BlockWorlds Entities 2020-05-19 16:49:28 +02:00
trml 47cafe6d6b Remove unused code 2020-05-02 18:52:09 +02:00
trml a4a0b6e9ed Add config flag for dummy prediction and fix compilation 2020-04-18 23:28:40 +02:00
trml 99baf219d0 Revert "Remove the dummy prediction"
This reverts commit 681f30950c.
2020-04-18 22:16:25 +02:00
ChillerDragon 9e0f6d2ce0 Move global configuration out of client interface 2020-02-19 11:24:58 +01:00
ChillerDragon 96c9b1ab73 Rename rifle to laser
This makes it easier to copy code from/to 0.7
23df3c609e
2019-11-22 15:37:18 +01:00
trml 3986925761 Optimize character evolve 2019-11-09 22:49:53 +01:00
heinrich5991 79bce4250a Address forgotten review comment of #1904 2019-09-17 17:07:33 +02:00
bors[bot] 1bf178614f
Merge #1904
1904: Add tune zone prediction r=heinrich5991 a=trml

Is enabled with cl_predict_ddrace 1.

This will predict tunings loaded from the map the first time tunezones are entered, but will also update the tunes after you receive new tunes while in a tunezone, since it's possible to change them in rcon.

Co-authored-by: trml <trml@users.noreply.github.com>
2019-09-17 13:50:18 +00:00
trml bb5eab0cc0 Add tunezone prediction 2019-09-09 00:53:07 +02:00
Ryozuki e112cf6791
add paused and spec to explayerflags 2019-08-02 18:16:58 +02:00
heinrich5991 9627fd0841 Clarify what ENTITIES_UNUSED does by renaming it 2019-07-31 21:22:11 +02:00
Dennis Felsing c8d12bd386
Merge pull request #1853 from 12pm/pr_unused_non_ddnet
Render all entities on non ddnet servers
2019-07-31 17:31:11 +02:00
Learath 6882db1da2 Introduce flag to render all entities 2019-07-31 15:20:17 +03:00
bors[bot] dc41bb9649 Merge #1821
1821: Add afk marks r=def- a=ardadem

This is final state  (and most minimalist to not create mess) of my previous pull request. I didn't reopen it because it's contains changed unnecessary commits.

If someone will become afk, mark will be spawn next to tee's name.
![2019-07-13-13:59:20-screenshot](https://user-images.githubusercontent.com/13207692/61170739-8c4b9b80-a576-11e9-9d87-4c4b2f93941b.png)


Co-authored-by: Arda <ddmirarda@gmail.com>
2019-07-26 08:58:20 +00:00
Learath 5ddc140494 Remove unused branch/flag 2019-07-22 18:20:19 +03:00
Learath b1ed78d58d Add new flag, Fix #1807 2019-07-19 12:28:08 +03:00
Learath 78ac5ce030 Send the flag from the server 2019-07-19 11:21:32 +03:00
trml ddfcb62caa Apply ShowOtherAlpha to projectiles 2019-07-16 22:06:57 +02:00
Arda 43c94c3d30 Add afk marks 2019-07-13 13:25:54 +03:00
bors[bot] b50e7ee674 Merge #1802
1802: Prediction fixes r=def- a=trml

I believe this fixes #1671 (uninitialized variables).

Some other things: Use new ddnetchar fields in prediction, small fix for prediction of moving pickups, fix the freeze end tick in ddnetcharacter (will add it to the client later)

Also adds a setting for choosing between new/old antiping for grenade like suggested in #1683 (cl_antiping_gunfire 0 to disable).

Co-authored-by: trml <trml@users.noreply.github.com>
2019-07-04 12:59:52 +00:00
trml 011d9aa26f Add option to use new/old antiping for grenades (cl_antiping_gunfire) 2019-07-01 00:42:02 +02:00
trml 8a18cabbb1 Small fix and cleanup of prediction of teams/solo 2019-06-16 16:34:57 +02:00
bors[bot] 9c9264db8b Merge #1785
1785: Revert "Merge pull request #1736 from sirius1242/master" r=Learath2 a=def-

This reverts commit e8362f1727, reversing
changes made to 0f99605ab1.

Apparently people don't like "Digital Wellbeing"-like features @sirius1242 

Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2019-06-15 13:18:11 +00:00
Dennis Felsing 1e74502e66 Revert "Merge pull request #1736 from sirius1242/master"
This reverts commit e8362f1727, reversing
changes made to 0f99605ab1.

Apparently people don't like "Digital Wellbeing"-like features
2019-06-14 12:00:49 +02:00
heinrich5991 ca03ab6337 Address Learath2's comments 2019-06-14 00:28:59 +02:00
heinrich5991 a7857d58c4 Remove now-useless function in CGameClient
(incorporate @fokkonaut's feedback)
2019-06-14 00:28:59 +02:00
heinrich5991 f31e081bd4 Remove all checking for the gametype in the game
OK, maybe not actually remove because it is kept for fallback when the
new method isn't available.

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

This allows servers to explicitly opt in or out of certain bug
workarounds and other client behavior. This increases the complexity of
different configurations that are available in the client (which is a
bad thing).
2019-06-14 00:28:59 +02:00
Dennis Felsing 0d9952b32a
Merge pull request #1748 from archimede67/pr_replays
Replay system (demo after-the-fact)
2019-06-11 18:13:26 +02:00
archimede67 929bf57bf6 infinite length and a lot of changes including notifications are now chat messages 2019-06-05 19:17:55 +02:00
Dennis Felsing e8362f1727
Merge pull request #1736 from sirius1242/master
Recorded the time of the player's game after the client was opened and show it on the top.
2019-06-03 11:02:28 +02:00
Learath2 c98978c9d6 Implement timescore using a netobj 2019-05-21 10:26:33 +02:00
Learath 23255a04b3 Remove time-score 2019-05-21 10:24:07 +02:00
sirius f62f6d2207 show play time move to a new function 2019-05-17 21:57:00 +08:00
sirius 8819f21d3a played time can show now 2019-05-17 21:47:12 +08:00
Andrew 0fffd7705f Cl_text_entities_size (#1632)
* new command added

* fix code duplication after merge

* merge #1632 suggestions

* align the texture to the center vertically

* refactor

* fix RenderSwitchOverlay

* Update src/engine/client/text.cpp

Co-Authored-By: BannZay <bannzay3@gmail.com>

* Apply suggestions from code review

Co-Authored-By: BannZay <bannzay3@gmail.com>

* Apply suggestions from code review

* Apply suggestions from code review

Co-Authored-By: BannZay <bannzay3@gmail.com>

* Apply suggestions from code review
2019-05-06 14:19:10 +02:00
bors[bot] a2f44299e0 Merge #1678
1678: Handle colors in console r=def- a=Learath2

DEPENDS: #1654 

A better way to fix #1581 possibly deprecates #1597 

Co-authored-by: Learath <learath2@gmail.com>
2019-04-30 19:39:56 +00:00
bors[bot] d8964ceedb Merge #1654 #1685
1654: Try working on colors a bit r=def- a=Learath2

There were color functions everywhere, I tried cleaning it up a little. I still couldn't get the roundtrip from Hsl to Rgb to be exactly the same, but I think this is the best possible.

1685: Work on compound binds r=def- a=Learath2

Closes #1417 

Co-authored-by: Learath <learath2@gmail.com>
2019-04-29 15:56:16 +00:00
bors[bot] a5096c4de0 Merge #1663
1663: Use freeze end tick instead of a flag. Fix #1659 r=def- a=Learath2

I used -1 for deep frozen, and 0 for not frozen. Not really sure if this is the best way.

Co-authored-by: Learath <learath2@gmail.com>
2019-04-27 08:53:38 +00: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 cc36af73be Cleanup colors 2019-04-24 23:53:26 +03:00
Learath 67668d7fb2 Use freeze end tick instead of a flag. Fix #1659 2019-04-23 18:57:26 +03:00
trml 681f30950c Remove the dummy prediction 2019-04-23 02:01:17 +02:00
trml 3d8bd174e7 Add extended data to CCharacter and improve prediction of super/solo/endless/superjump 2019-04-22 00:38:24 +02:00
trml e88459acec Make more variables private 2019-04-21 16:12:21 +02:00
trml 0b3f3b03b5 Rewrite of prediction code, with additional prediction 2019-04-21 16:12:20 +02:00
Ryozuki f37f8a8268
add all character flags to ddnetnetwork character 2019-04-19 11:17:28 +02:00
Learath d6bfef2cc0 Use a NetObj instead of a system message 2019-04-17 23:47:32 +02:00
Ryozuki c686ceea53
Merge branch 'master' into pr_fix_solo 2019-04-12 16:34:43 +02:00
Ryozuki 7e43120b6e
make the client aware of other players solo status 2019-04-12 16:16:21 +02:00
def 2eab795c9e Implement color_to_rgb 2019-04-10 22:45:30 +02:00
Dennis Felsing bd4e3716a1 color -> color_from_rgb 2019-04-10 08:58:08 +02:00
def 01ffde25f3 Console command "colors" (fixes #1581)
Converts RGB colors to TW's HSL format
2019-04-07 22:54:29 +02: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
Learath 548e9969b2 Add colors for authed players. Deprecates #1299 2019-03-02 13:50:33 +03: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
Jupeyy 887bcb52ff add window event listener for the client 2018-03-21 15:54:51 +01:00
def 151da9af97 Remove Emojis 2018-01-25 20:03:18 +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
Michał 35fb1ddb41 Add emoji support 2017-10-28 09:08:17 +02:00
Redix d09e825065 Use existing code for rendering the ghost 2017-09-28 16:01:58 +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
necropotame b8e4e5beea Fix style in several places 2017-03-22 19:45:14 +01:00
Learath2 a87edad978 Move to a cpp file 2017-03-06 14:04:09 +01:00
Learath2 5317be824e Fix coloring of team chat. Fixes #648 2017-03-06 10:24:00 +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
Dennis Felsing eb36f421c5 Merge pull request #630 from heinrich5991/pr_ddnet_cmake_basic
Add overly simple CMakeLists.txt
2017-02-27 16:28:19 +01: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
Redix abcb074dcc Fixed statboard
- FPM value
- reset when a player leaves
2017-02-15 16:43:45 +01:00
def 513c742197 Fix cl_antiping_players to be off on solo (thanks HMH) 2016-05-05 18:57:35 +02:00
def 45971ee8e9 no player antiping when appropriate tunings set 2016-05-04 16:01:58 +02:00
def 11e3fd55db seperated ingame input handling from rendering (from TW master) 2016-04-29 23:05:20 +02:00
def 378a713b1d No antiping in demo player 2016-04-24 01:57:01 +02:00
def 8fdeb9df58 Don't use antiping when spectating 2016-04-17 18:36:33 +02:00
H-M-H f0d10ac62d better get dummyinput directly from CControls 2015-11-10 20:29:12 +01:00
heinrich5991 ba4eab1f1c Don't reset antiping subconfiguration on startup 2015-09-10 12:09:38 +01:00
Chairn 70a2cfa4ea Added custom background in entities. 2015-08-27 00:52:31 +02:00
def e97c8ac08f Add foes (permanently ignored players) 2015-07-22 22:16:49 +02:00