Commit graph

58 commits

Author SHA1 Message Date
Robert Müller b82ec33921 Pass x and y to OnEntity instead Pos
Calculate `Pos` in `OnEntity` based on `x` and `y` instead of passing `Pos` and calculating `x` and `y` from that.
This removes duplicate code and makes it easier to understand.
2022-12-17 12:17:58 +01:00
Robert Müller 1fffd9f8c6 Recreate all entities when restarting round
When restarting a round (i.e. with the `restart` command, with the `sv_warmup` option, and after a round ends) some entities where permanently destroyed and others were kept around.

This is changed so all entities are destroyed and then recreated, so rounds can be properly restarted.

Closes #6128.
2022-12-17 12:17:58 +01:00
Robert Müller 13b181c03a Fix server crash on maps with more than 64 spawn points of same type
Using more than 64 spawn points of the same type causes out-of-bounds accesses, as the number of spawn points is not checked before adding a spawn point and the existing check that limits the number of spawn points after adding one contains an off-by-one error.

For neutral and red spawn points this caused the last spawn point to be added for the following team instead. For blue spawn points this caused a server crash.

This is fixed by allowing an arbitrary number of spawn points of all types, by using an `std::vector` instead of an array.
2022-12-17 12:17:58 +01:00
Robert Müller 10433e0c71 Reset teams when restarting round
The state of teams was not reset when restarting a round with `restart`, which led to various issues (#5144):

- Switchers kept their previous state instead of being reset to the initial state after restarting.
- Teams that started racing sometimes could not be joined after restarting.
- Sometimes teams cannot finish a race after restarting. I cannot reproduce this issue, so I don't know if it's fixed by these changes.
2022-11-29 21:56:59 +01:00
def d96f354b28 Make spawn position independent of players in other teams
As suggested by Rockus, should help speedrunners who get followed by
other players
2022-02-06 00:01:50 +01:00
def bc78ba57b9 Enable readability-inconsistent-declaration-parameter-name 2022-01-22 14:12:59 +01:00
Jupeyy a663799188 uint64 -> uint64_t, int64 -> int64_t 2021-06-24 17:19:17 +02:00
Alexander Akulich a6bdda60ed GameController: Add OnPlayerConnect() like in the upstream 2021-02-23 18:26:16 +03:00
Alexander Akulich ef6282d2e0 Replace remaining int64_t by int64 for the sake of consistency
The codebase uses int64 since commit f4344dc420.
2021-02-23 18:26:16 +03:00
Alexander Akulich d2744d595a GameController: Introduce GetMaskForPlayerWorldEvent() 2021-01-19 22:36:23 +03:00
Alexander Akulich a14607f818 Introduce GameController::HandleCharacterTiles() 2021-01-16 03:20:58 +03:00
Alexander Akulich 729262b896 GameController: Move the DDRace-specific code to the subclass
This leads to some small code duplication but let us remove the ugly casts.
2021-01-16 03:20:58 +03:00
Alexander Akulich 19234987c9 Backport IGameController::OnPlayerDisconnect() from the upstream
Upstream commit 5e4caa9b9c
2021-01-16 03:20:58 +03:00
Alexander Akulich 7512ad285b Backport IGameController::DoTeamChange from the upstream
Upstream commit 5e4caa9b9c
2021-01-16 03:20:58 +03:00
Alexander Akulich c4405c4811 GameController: Backport reorder from upstream
Upstream commit 5e4caa9b9c
2021-01-16 03:20:57 +03:00
Alexander Akulich ffe3f110eb GameController: Extract DoActivityCheck()
Apply refactoring from the upstream.
2021-01-16 03:20:57 +03:00
Alexander Akulich c2f276cee1 Port CConfig API from the upstream (0.7.5)
The old (g_Config) API is kept to not break the stuff.

See commits:
    de5859b371
    78076761eb
2021-01-10 17:10:19 +03: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 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 7aed6476dc Allow larger map names 2020-06-18 18:29:27 +02:00
ChillerDragon ad7a2cdef2 Remove unused vanilla code (closed #1658) 2019-04-24 22:36:47 +02:00
heinrich5991 125377bf2d Use <stdint.h> instead of <cstdint> 2018-06-24 17:00:21 +02:00
Ryozuki 21d6f4f39b use cstdint also in gamecontroller.h 2018-05-29 11:38:52 +02:00
yangfl 1620fc9b0f Fix typo 2018-02-07 16:10:40 +08:00
ChillerDragon a013a59aa6 removed dead function prototype 2017-11-01 14:57:34 +01:00
def 6e8ada1ac8 Fix whitespaces a bit 2015-07-09 02:12:35 +02:00
def 145f0434f5 Add /save by the glorious HMH 2014-07-26 14:46:31 +02:00
def 3607218f12 Merge ddrace64 from eeeeee 2013-12-31 06:13:57 +01:00
GreYFoX cd4ba53bae Merge branch 'master' of git://github.com/teeworlds/teeworlds into DDRace
Conflicts:
	bam.lua
	scripts/build.py
	scripts/make_release.py
	src/engine/server.h
	src/game/client/gameclient.cpp
	src/game/server/gamecontext.cpp
	src/game/server/gamecontext.h
	src/game/server/gamecontroller.cpp
	src/game/server/gamecontroller.h
	src/game/server/player.cpp
	src/game/version.h
2012-04-12 02:09:31 +02:00
oy dfe91338f0 added pause command. Closes #15 2012-01-10 00:49:31 +01:00
GreYFoX 5b27758650 Removed level stuff
Removed client ID stuff
Removed console stuff
Resolved merge conflicts
Upgraded Banmaster
Cleaned up
2011-08-13 02:11:06 +02:00
GreYFoX 35d16bd58c Merge branch 'master' of git://github.com/oy/teeworlds into DDRace0611
Conflicts:
	src/engine/console.h
	src/engine/server.h
	src/engine/server/server.cpp
	src/engine/shared/config_variables.h
	src/engine/shared/console.cpp
	src/engine/shared/console.h
	src/engine/shared/network_server.cpp
	src/game/client/components/console.cpp
	src/game/client/components/console.h
	src/game/client/components/menus_browser.cpp
	src/game/client/gameclient.cpp
	src/game/editor/editor.cpp
	src/game/editor/editor.h
	src/game/editor/io.cpp
	src/game/editor/layer_tiles.cpp
	src/game/editor/popups.cpp
	src/game/gamecore.cpp
	src/game/mapitems.h
	src/game/server/entities/character.cpp
	src/game/server/entities/laser.cpp
	src/game/server/gamecontext.cpp
	src/game/server/gamecontroller.cpp
	src/game/server/gamecontroller.h
	src/game/server/gamemodes/ctf.cpp
	src/game/server/player.cpp
	src/game/variables.h
2011-08-13 02:01:40 +02:00
oy c10c7d9ac3 improved sudden death in ctf. Closes #617 2011-06-19 17:32:00 +02:00
oy 4dc79a9ec1 fixed spawn bug. Closes #634 2011-06-15 01:03:14 +02:00
GreYFoX 0df6d0541f Merge branch 'master' of git://github.com/oy/teeworlds into HEAD
Conflicts:
	bam.lua
	src/engine/console.h
	src/engine/server.h
	src/engine/server/server.cpp
	src/engine/shared/config.h
	src/engine/shared/config_variables.h
	src/engine/shared/console.cpp
	src/engine/shared/console.h
	src/game/client/components/binds.cpp
	src/game/client/components/chat.h
	src/game/client/components/console.cpp
	src/game/client/components/console.h
	src/game/client/components/controls.cpp
	src/game/client/components/emoticon.h
	src/game/client/components/maplayers.cpp
	src/game/client/components/menus.h
	src/game/client/components/scoreboard.h
	src/game/client/components/spectator.h
	src/game/client/components/voting.h
	src/game/client/gameclient.cpp
	src/game/client/gameclient.h
	src/game/client/render.h
	src/game/collision.cpp
	src/game/editor/ed_layer_tiles.cpp
	src/game/gamecore.cpp
	src/game/gamecore.h
	src/game/layers.cpp
	src/game/layers.h
	src/game/mapitems.h
	src/game/server/entities/character.cpp
	src/game/server/entities/laser.cpp
	src/game/server/entities/laser.h
	src/game/server/entities/pickup.cpp
	src/game/server/entities/pickup.h
	src/game/server/entities/projectile.cpp
	src/game/server/gamecontext.cpp
	src/game/server/gamecontroller.cpp
	src/game/server/gamecontroller.h
	src/game/server/gameworld.cpp
	src/game/server/gameworld.h
	src/game/server/player.cpp
	src/game/variables.h
2011-04-14 01:27:49 +02:00
oy 06115dd49d added "Whitespace and line Endings cleanup" by GreYFoX 2011-04-13 20:37:12 +02:00
GreYFoX 32a85dabe3 Fixed some merge mistakes, NOTE: This will be be buggy to say the least 2011-04-09 23:01:10 +02:00
GreYFoX f7f6058a92 Merged Oy, Cleaned up, removed some useless features and code parts
Added Icon by landil
alot more...
2011-04-09 22:32:17 +02:00
oy 45eee0c8c2 fixed spawning on crappy maps 2011-02-21 12:35:14 +01:00
GreYFoXGTi 29c9bf531d Fixed merge errors 2011-02-14 09:43:44 +02:00
GreYFoXGTi f83132448d Merged Oy, Isolated Freeze from Deep Freeze 2011-02-13 19:32:06 +02:00
GreYFoXGTi 1b2703aaba Refactoring & fixed WEAPONSPEC_GUN in content.py 2011-02-12 21:18:41 +01:00
oy 3f05289328 fixed a possible problem with occupied spawn points and cleaned up spawn code a bit 2011-02-10 12:05:55 +01:00
GreYFoXGTi 832bad08e6 Cleanup and Added All Left Masks 2011-01-29 16:18:36 +02:00
GreYFoXGTi 5d9ee1736e made the code so it would have less conflicts in the future and Merged branch 'master' of http://github.com/oy/teeworlds
Conflicts:
	data/languages/dutch.txt
	data/languages/french.txt
	data/languages/german.txt
	data/languages/russian.txt
	src/game/server/entities/flag.cpp
	src/game/server/entities/flag.h
	src/game/server/gamecontext.cpp
	src/game/server/gamemodes/ctf.cpp
	src/game/server/gamemodes/ctf.h
	src/game/server/gamemodes/dm.cpp
	src/game/server/gamemodes/dm.h
	src/game/server/gamemodes/mod.cpp
	src/game/server/gamemodes/tdm.cpp
	src/game/server/gamemodes/tdm.h
2010-11-22 00:26:00 +02:00
Sworddragon fc9211c777 Updated copyrights 2010-11-20 21:26:06 +01:00
GreYFoXGTi 071fb6a5a3 new Switch System //TODO Rendering Rotation 2010-11-14 02:39:04 +02:00
GreYFoXGTi e43bcd80db Rotation
FTW
2010-11-01 03:51:17 +02:00
btd faf743b02a Merge branch 'master' of git://github.com/GreYFoXGTi/DDRace into teams 2010-08-29 01:05:02 +04:00
btd 366e175983 Logic and scores seems done. Next will be collision 2010-08-29 00:53:42 +04:00