Commit graph

665 commits

Author SHA1 Message Date
Alexander Akulich a14607f818 Introduce GameController::HandleCharacterTiles() 2021-01-16 03:20:58 +03:00
Alexander Akulich d924d9bf68 CCharacter: Extract ResetPickups() 2021-01-16 03:20:58 +03:00
Alexander Akulich f0e34c9c36 Move DefaultEmote logic into CPlayer 2021-01-16 03:20:58 +03:00
Alexander Akulich b36a4fd8c3 Process CPlayer::m_DefEmoteReset in CPlayer 2021-01-16 03:20:58 +03:00
Alexander Akulich ecce5631ed Move Halloween emoticon to CPlayer and send it once per client
GameServer()->SendEmoticon() sends CNetMsg_Sv_Emoticon packet to everyone.

Calling SendEmoticon() from Character::Snap(ClientID) triggers as many
messages to everyone as there are active players.

Move the SendEmoticon() because it is not the Character (a world entity object)
responsibility to celebrate a day. Actually it is not CPlayer responsibility
either but CPlayer is the class where we deciding to celebrate (checking the
date) so at least let's keep the coupled stuff together.
2021-01-16 03:20:58 +03:00
BeaR 9f0b0af862 Add angle<->direction conversion functions to vector math (Cleanup)
Keep angle() (ex. GetAngle()) as-is.

(cherry picked from commit 7735557aa5)
2021-01-16 03:20:57 +03:00
def cbda5b720a Make netclipping of entities and events respect shown distance (fixes #3420) 2021-01-11 23:11:28 +01:00
Alexander Akulich 035a50dd0b Entities: Get rid of direct m_ProximityRadius access 2021-01-10 14:25:12 +03:00
Alexander Akulich 476c2c60d7 Cleanup includes
See the upstream commit 24bda2faa0
2021-01-10 14:25:12 +03:00
Alexander Akulich f16937b361 gamecontext.h: Remove unused player.h include
See the upstream commit 24bda2faa0
2021-01-10 14:25:12 +03:00
def 18ccb39384 Add (un)endless_hook command
As requested by Kicker
2020-12-26 23:09:38 +01:00
bors[bot] b8fca40851
Merge #3340
3340: Fix vec_base constructors & remove useless operator r=heinrich5991 a=Jupeyy

Interestingly besides it found unused variables, this also found some "logic" errors, where vectors were used in `if`.

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2020-11-28 17:06:25 +00:00
trml 7bfd708405 Set ddnetchar flags when collision is disabled with server tunings 2020-11-25 23:38:29 +01:00
Vlad 28cf3b31ba rescue on freeze/dfreeze 2020-11-21 10:52:43 +01:00
Jupeyy f83d528f5d Fix vector constructor impl & remove useless operator 2020-11-20 12:14:33 +01:00
bors[bot] 797116fbfe
Merge #3316
3316: Disable ninja jetpack when player has telegun r=heinrich5991 a=def-

Required for map Taceht because of weapon tele interaction with jetpack

As requested by Cøke

## Checklist

- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)


Co-authored-by: def <dennis@felsin9.de>
Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2020-11-19 13:06:24 +00:00
Dennis Felsing 227405b645
Update src/game/server/entities/character.cpp
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-11-19 10:20:13 +01:00
def c0b48ad89f Disable ninja jetpack when player has telegun
Required for map Taceht because of weapon tele interaction with jetpack

As requested by Cøke
2020-11-16 20:28:17 +01:00
def cfd3f84106 Found some more times with mins, use hours for consistency 2020-11-14 00:22:21 +01:00
def 165857a5a8 Fix variable names manually 2020-11-02 22:40:40 +01:00
def b1f0fd8969 Enable modernize-loop-convert clang-tidy check
and run clang-format afterwards

https://clang.llvm.org/extra/clang-tidy/checks/modernize-loop-convert.html
2020-11-02 22:40:24 +01:00
Jupeyy fa8b8b9324 More Target cleanup 2020-10-17 19:58:07 +02:00
Jupeyy 6426e341f3 Fix NaNs created by bad initialization 2020-10-17 18:17:13 +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 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 35fc180559 Finish /showothers 2 implementation on server 2020-09-21 15:32:16 +02:00
def a67a8e36aa clang-format: fix style 2020-09-14 16:00:51 +02:00
Vlad be90f3f48b Replaced tile names. 2020-09-13 23:00:49 +03:00
trml c98a1f0a59 Only send pain sound in freeze if fire was released 2020-08-25 22:45:23 +02:00
Fireball 7e610f9944 Fix sixup players not making sounds when hooking others
This also fixes some less noticeable edgecases with ground jump sound: for example, when spectating a tee who is in a solo part.
2020-07-18 19:13:56 +01:00
bors[bot] c4d5c8dfa2
Merge #2478 #2480
2478: Use (u)int64 from system.h instead of (u)int64_t from cstdint r=heinrich5991 a=def-

src/game/client/prediction/gameworld.h:62:90: error: ‘int64_t’ has not been declared
   62 |  void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, int64_t Mask);
      |                                                                                          ^~~~~~~

2480: Send zoom status for dummy too r=heinrich5991 a=def-



Co-authored-by: def <dennis@felsin9.de>
2020-07-09 18:31:32 +00:00
def f4344dc420 Use (u)int64 from system.h instead of (u)int64_t from cstdint
src/game/client/prediction/gameworld.h:62:90: error: ‘int64_t’ has not been declared
   62 |  void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, int64_t Mask);
      |                                                                                          ^~~~~~~
2020-07-09 13:55:28 +02:00
def 2a35121c84 Use x instead of y in show distance (fixes #2475) 2020-07-08 15:57:00 +02:00
Zwelf ab9cdc294d Reset all input after rescuing 2020-07-02 16:24:23 +02:00
Zwelf 538de72c94 Don't load movement and pause state when rescuing 2020-07-02 14:06:18 +02:00
Zwelf b99bbccd24 Revert "Revert "Fix /save on solo server""
This reverts commit 59a7e1f187.
2020-06-30 20:22:17 +02:00
def 59a7e1f187 Revert "Fix /save on solo server"
This reverts commit 506602d472.
2020-06-30 18:41:22 +02:00
bors[bot] 3f61babae3
Merge #2418
2418: Clean and fix style on character snap r=def- a=edg-l



Co-authored-by: Edgar <git@edgarluque.com>
2020-06-30 12:19:34 +00:00
Edgar 5c45f0876b
Clean and fix style on character snap 2020-06-30 14:17:27 +02:00
bors[bot] a79b1265df
Merge #2401
2401: Client tells server its zoom level (fixes #2087) r=heinrich5991 a=def-

and server adapts the visible distance to it

Co-authored-by: def <dennis@felsin9.de>
2020-06-30 10:01:01 +00:00
Zwelf 506602d472 Fix /save on solo server
Fixes #2404
2020-06-29 19:34:21 +02:00
def 1782d95d99 Client tells server its zoom level (fixes #2087)
and server adapts the visible distance to it
2020-06-29 18:59:07 +02:00
def 3530d0ae32 Set rescue tee immediately after loading (fixes #2248) 2020-06-24 21:19:46 +02:00
bors[bot] 09f60fc919
Merge #2242
2242: Use CSaveTee for rescue (fixes #2241) r=heinrich5991 a=def-

Untested. Edit: Tested, seems to work.

Co-authored-by: def <dennis@felsin9.de>
2020-06-24 14:51:13 +00:00
Learath 62d014d999 Forgot we faked ids for vanilla 2020-06-22 19:02:17 +03:00
def 9d9d5e26e6 Fix double hook sound in 0.7 2020-06-22 09:27:41 +02:00
Learath 8d422dfd70 Fix snapping for ninja 2020-06-20 14:24:38 +03:00
Learath 46a7b6de2c Fix some oob access 2020-06-19 20:28:55 +03:00
Learath e81c718180 Rework netobjs, fix chat 2020-06-19 20:28:55 +03:00
Tim Schumacher 442148a194 Begin work on 0.7 support 2020-06-19 20:27:15 +03:00
def 79ef6c0e84 Use CSaveTee for rescue (fixes #2241) 2020-06-18 23:41:37 +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
d3fault b9844ea6ec Save active weapon with /rescue 2020-05-31 22:39:28 -07:00
def b25c75b558 Allow rescuing while falling down even when not frozen 2020-05-28 12:59:45 +02:00
def cacf17bd96 Save weapons as well with /rescue (fixes #2225) 2020-05-28 12:59:40 +02:00
def fb90990d6d Allow /rescue mid-flight
Thanks to Skeith for the suggestion
2020-05-27 23:48:17 +02:00
def 3cbd75b840 Make /rescue work in deepfreeze
Thanks to NANAMAR for report
2020-05-27 23:27:30 +02: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
bors[bot] 438dc519d6
Merge #2212
2212: Use a consistent PRNG on all platforms r=Learath2 a=heinrich5991

I just used glibc's because that is what we use on all the servers. Based on https://www.mscs.dal.ca/~selinger/random/.

Behavior change: The PRNG is actually seeded now.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-27 16:14:09 +00:00
def e1849ad1bb Implement /practice for teams
As discussed on Discord today, can be enabled inside of teams on the fly
during each run on any server. Finishes don't count. I haven't tested
save/load yet, would do that live on the server if this can be merged.
2020-05-27 17:33:26 +02:00
heinrich5991 2692f3c758 Use a consistent PRNG on all platforms 2020-05-25 15:19:29 +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
Learath eacc56059b Keep ticks going 2020-05-15 19:29:34 +03:00
Learath 5e02bb5a23 Extend antibot interface
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-13 23:39:40 +03:00
Dennis Felsing 7aa69188b5
Merge pull request #2172 from fokkonaut/master
Fix #2162
2020-05-10 10:13:38 +02:00
fokkonaut 92927444d7
Fix #2162 2020-05-09 23:33:12 +02:00
Dennis Felsing 5e213a2619
Merge pull request #2086 from fokkonaut/master
Remove setting ammo for freeze to 0
2020-04-30 12:44:40 +02:00
fokkonaut d460470265
Move comment aswell 2020-04-30 11:49:04 +02:00
fokkonaut 69a6e94833 Fix two bugs 2020-03-17 13:55:30 +01:00
heinrich5991 ed76cd7b12 Fix antibot crash
`m_Core.m_HookedPlayer` can be -1 if you get teleported the moment you'd
normally attach the hook.
2020-03-16 14:16:04 +01:00
fokkonaut d22a1a8f06 Remove setting ammo for freeze to 0 2020-03-16 11:52:53 +01:00
heinrich5991 a3163c5b9c Add support for dynamically loading an antibot module
Support for this feature is turned off by default. This feature allows
to integrate with noby's anticheat feature.
2020-03-11 01:58:50 +01:00
Dennis Felsing fcc25dfc65 Fix crash on pDDNetCharacter 2020-01-16 12:35:26 +01:00
ChillerDragon 4a6a85124a Remove some unused includes 2019-12-14 10:20:42 +01:00
ChillerDragon 01c873bcf7 Remove a few unused stdio.h's 2019-12-09 15:40:59 +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
Dennis Felsing 17a7e37411 Fix (thanks to Bannzay) 2019-10-16 07:08:44 +02:00
Dennis Felsing 3a3df05cca Change sv_deepfly to work with hammer explicitly 2019-10-15 15:13:23 +02:00
Dennis Felsing 7a991615f3 Fix the fix 2019-10-15 10:38:52 +02:00
Dennis Felsing fcfc5a4561 Fix velocity comparison
as Mac build complains:

src/game/server/entities/character.cpp:1681:18: error: ordered comparison between pointer and zero ('const float *' and 'int')
        if(m_Core.m_Vel > 0 && (m_MoveRestrictions&CANTMOVE_DOWN))
           ~~~~~~~~~~~~ ^ ~
2019-10-15 10:36:02 +02:00
bors[bot] c0474a79c2
Merge #1922
1922: Allow to hammer directly on unfreeze r=def- a=heinrich5991

Previously, this was only doable with frame-perfect input if you were
going to get frozen again the next tick. Now, you only have to hold your
hammer to immediately hammer once you get unfrozen.

This fixes that "deepfly" (flying with deep-frozen dummy, binding both
main and dummy tee hammers onto the same key) does not only work for
good connection.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2019-10-15 07:30:47 +00:00
heinrich5991 34087e1a7b Only get double jump when falling onto a stopper
Another unintentional behavior change found by Zwelf.
2019-10-06 13:54:16 +02:00
heinrich5991 eab0815ddc Fix unintentional behavior change with blockers
Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for
reporting.
2019-10-06 13:51:16 +02:00
heinrich5991 f19220f1bb Allow to hammer directly on unfreeze
Previously, this was only doable with frame-perfect input if you were
going to get frozen again the next tick. Now, you only have to hold your
hammer to immediately hammer once you get unfrozen.

This fixes that "deepfly" (flying with deep-frozen dummy, binding both
main and dummy tee hammers onto the same key) does not only work for
good connection.
2019-09-28 21:07:33 +02:00
heinrich5991 947b5e7936 Fix some formatting in src/game/server/entities/character.cpp 2019-09-28 20:58:31 +02:00
heinrich5991 66ccd808aa Rewrite stopper code a bit, second try
Remove the whole copy-and-paste mess.

A seemingly ineffective and apparently code block has been removed.

The broken front layer from the first try has been fixed.
2019-09-18 02:04:46 +02:00
Ryozuki b58037f31e
fix the telegun save 2019-08-19 10:35:37 +02:00
trml 82a47210eb Fix freeze end tick in ddnetchar 2019-07-01 00:50:50 +02:00
d3fault 10e06f919e respawn is now instant, but rate limited to 3 sec unless player clicks mouse1 2019-06-07 02:44:19 -07:00
fokkonaut af7fd12341 Remove m_Weapon parameter from CProjectile 2019-06-02 22:04:11 +02:00
trml 09401a83ec Add strong/weak id to ddnetcharacter 2019-05-02 00:34:20 +02:00
trml ae57b7f205 Add more fields to ddnetcharacter 2019-05-02 00:34:03 +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] 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 93d14a1eca Inconvenience for windows 2019-04-26 22:36:49 +03:00
Learath 24408e6f3c Oops 2019-04-24 19:12:46 +03:00
Ryozuki 42a5d7a9c1 fix conflicts 2019-04-23 20:42:07 +02:00
Learath 67668d7fb2 Use freeze end tick instead of a flag. Fix #1659 2019-04-23 18:57:26 +03:00
trml 0b3f3b03b5 Rewrite of prediction code, with additional prediction 2019-04-21 16:12:20 +02:00