1227: Allow multiple layers to be selected and edited at the same time. r=heinrich5991 a=bojidar-bg
Resolves#486.
Please test, I'm still not completely sure it won't crash or mess up a map from time to time.
Co-authored-by: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
1224: vanilla skins only list now only shows vanilla skins r=Learath2 a=fokkonaut
Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
1221: Allow entering automapper rule probability as percentage r=heinrich5991 a=bojidar-bg
Fixes#837
Took a while to guess the right `sscanf` usage (since it does not detect unmatched input past the last format specifier).
Co-authored-by: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
1200: Share libcurl resources across requests r=def- a=heinrich5991
Use the libcurl-share interface to share DNS cache and connections
between different requests.
If compiled with OpenSSL, libcurl can only be safely used from multiple
threads for OpenSSL >= 1.1.0, but this problem is not newly introduced
by this commit: According to libcurl-thread(3):
>OpenSSL <= 1.0.2 the user must set callbacks.
>
>https://www.openssl.org/docs/man1.0.2/crypto/threads.html#DESCRIPTION
>
>https://curl.haxx.se/libcurl/c/opensslthreadlock.html
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
1204: Add Teleportation gun/grenade/rifle (finished) r=def- a=Ryozuki
As i made some changes and force-pushed i can't reopen the old pr: https://github.com/ddnet/ddnet/pull/1075
Features:
- Teleport gun: Teleports you where it collided (tees included, in a special way). Doesn't teleport if the collided tile is an untele tile.
- Teleport grenade: Teleports you where it collided (tees included, in a special way). Doesn't teleport if the collided tile is an untele tile.
- Teleport rifle (laser): Teleports you where the laser runs out of energy or if it collides with a tee. Doesn't teleport if the laser bounced in an untele tile.
Co-authored-by: Ryozuki <edgar@ryobyte.com>
Co-authored-by: Tim Schumacher <tim@timakro.de>
Co-authored-by: Edgar <edgar@ryobyte.com>
1195: Fix votespec on /pause (Fixes#1193) r=heinrich5991 a=ChillerDragon
I also thought about using a `` if (str_find(m_aVoteCommand, "set_team"))`` in front of the pause reset.
But then i thought its ok to unpause the VoteVictim every time.
I didn't test but i could belive that this can cause some unwanted unpause for a player with the id of the last VoteVictim on a server type vote for example. Thats why i also reset the ``m_VoteVictim`` to -1 to avoid this.
Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
1187: fix projectiles not rendering on mods based on ddnet r=heinrich5991 a=ZombieToad
for some reason the client doesnt render extrainfo projectiles if the gamemode wasnt ddnet
Co-authored-by: ZombieToad <25847476+zombietoad@users.noreply.github.com>
Previously, when you added an image to the map in the editor, it would
start off as embedded, i.e. included in the map file. This does not make
sense for vanilla images as every client has those.
That's why we now only mark non-vanilla images as external by default.
https://cdn.discordapp.com/attachments/293493549758939136/461236206131478538/PainWeaponBug.gif
because I'm new to coding it took me 2 hours to find this bug. I spent a while looking at the POWERUP_ARMOR and RemoveNinja() code wondering why it didn't work.
this bug is funny to some players so maybe you don't want to fix it. i wont mind because it was a challange for me to find it
SHA256 was chosen because it is reasonably standard, the file names
don't explode in length (this rules out SHA512) and it is supported by
basically all versions of OpenSSL (this rules out SHA512/256 and SHA3).
The protocol is changed in a backward compatible way: The supporting
server sends the SHA256 corresponding to the map in the `MAP_DETAILS`
message prior to sending the `MAP_CHANGE` message. The client saves the
SHA256 obtained from the `MAP_DETAILS` message until the next
`MAP_CHANGE` message.
For servers not supporting this protocol, the client falls back to
simply opening maps like in the previous scheme.
Remove the `map_version` tool, it is not being used and would have been
a little bit effort to update.
Use the OpenSSL implementation of SHA256 if it is supported, otherwise
fall back to a public domain one.
Fix#1127.
1157: Add a way to call for external moderator help r=Learath2 a=heinrich5991
This is done by HTTP POSTing to a location specified by
`sv_modhelp_url`. We also provide a `src/modhelp/server.py` which can
use theses POSTs to forward them to Discord servers.
The POST contains a JSON object payload, with the keys `"port"` which
contains the server port, `"player_id"` which contains the calling
player's client ID, `"player_name"` which contains the calling player's
nick and `"message"` which is the user-specified message.
Make JSON-escaping function public, add tests and fix bugs uncovered by
these tests.
Supersedes #1129.
1160: Fix warning about incompatible function pointers r=Learath2 a=heinrich5991
This comes at the cost of one allocation per started thread. This should
be okay because we're about to invoke a syscall anyway.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>