Commit graph

9772 commits

Author SHA1 Message Date
Christoph Oelckers
321608e5ac - made cursectnum et. al. real pointers. 2021-12-26 23:09:41 +01:00
Christoph Oelckers
f19f656dd9 - deal with SW's Warp functions. 2021-12-26 23:09:41 +01:00
Christoph Oelckers
10d0ea29ce - renamed some sectnum variables. 2021-12-26 23:09:41 +01:00
Christoph Oelckers
ef6bc9db56 - do the remaining clipmove calls. 2021-12-26 23:09:41 +01:00
Christoph Oelckers
bdbb3b4004 - handled the main actor movement functions. 2021-12-26 23:09:40 +01:00
Christoph Oelckers
afd05add96 - adapted several clipmove calls in SW. 2021-12-26 23:09:40 +01:00
Christoph Oelckers
c0b0b00f96 fixed collision access. 2021-12-26 23:09:09 +01:00
Christoph Oelckers
30f36e4871 - use backend's collision struct in SW. 2021-12-26 23:08:58 +01:00
Christoph Oelckers
b3bbf8932e - same procedure for Exhumed. 2021-12-26 23:08:58 +01:00
Christoph Oelckers
8ce34c7772 - use refactored Collision struct and clipmove in Blood, too. 2021-12-26 23:08:57 +01:00
Christoph Oelckers
4788c7ba5e - made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
Done for Doom so far.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
96b9572905 - moved parts of the HitInfo subclasses into the backend.
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
a5ccd2ccd2 - adapted FAFhitscan to the new backend API.
Lots of search & replace to change the names of the HitInfo struct, no manual edits outside of FAFhitscan.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
3f43f48b57 - adapted all SW hitscan calls outside of FAFhitscan. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
4bfb03b6b3 - adapted hitscan calls in Exhumed. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
10dce7dd2d - adapted all hitscan calls in Duke/RR. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
129ce0aea8 - migrated Blood's hitscan calls and its global gHitInfo struct. 2021-12-26 23:08:56 +01:00
Christoph Oelckers
9380819e4e - initialize actorArray for all games.
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a - added coreactor.h 2021-12-26 23:08:55 +01:00
Christoph Oelckers
e526686d1e - the really final ones. 2021-12-26 23:08:55 +01:00
Christoph Oelckers
7dd2f79676 - the final ones before moving to the backend. 2021-12-26 23:08:55 +01:00
Christoph Oelckers
33d2d80c42 - sector references in remote, some cursectnum replacements. 2021-12-26 23:08:55 +01:00
Christoph Oelckers
104e80e34a - NEAR_TAG_LIST, also deleted useless OperateWall code. 2021-12-26 23:08:55 +01:00
Christoph Oelckers
b7cfb07245 - all sectnums that can trivially be replaced.
Most of the rest is in backend calling code and should be done while cleaning up the backend API.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
19f8458f01 - FindCeilingView, FindFloorView and related things. 2021-12-26 23:08:54 +01:00
Christoph Oelckers
db95dc95d1 - FAF_Sector + SpawnQuake 2021-12-26 23:08:54 +01:00
Christoph Oelckers
98c3d57b73 - ->sectnum in ai.cpp and draw.cpp. 2021-12-26 23:08:54 +01:00
Christoph Oelckers
cf6e75ad54 - the final doable sector[] replacements.
The rest needs to be done with the backend.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
e2e0f69393 - deleted deprecated Warp... functions. 2021-12-26 23:08:54 +01:00
Christoph Oelckers
c4f29772ae - SpawnVis 2021-12-26 23:08:53 +01:00
Christoph Oelckers
1457cf2c0d - track stuff 2021-12-26 23:08:53 +01:00
Christoph Oelckers
b3eceb3b56 - the remaining trivial sector[] replacements 2021-12-26 23:08:53 +01:00
Christoph Oelckers
1a7cc6d782 - FAFgetzrangepoint + ActorDrop 2021-12-26 23:08:53 +01:00
Christoph Oelckers
959c3bc18b - springboard 2021-12-26 23:08:53 +01:00
Christoph Oelckers
0345615518 - some smaller changes. 2021-12-26 23:08:52 +01:00
Christoph Oelckers
9a6bd0b7e1 - SectorWallBits 2021-12-26 23:08:52 +01:00
Christoph Oelckers
1763fbc7ff - OperateSector 2021-12-26 23:08:52 +01:00
Christoph Oelckers
df558bd9a2 - GetUpperLowerSector 2021-12-26 23:08:52 +01:00
Christoph Oelckers
0c9d465e4c - FAF_Connect* functions and related code. 2021-12-26 23:08:52 +01:00
Christoph Oelckers
96915a646b - SectorZadjust 2021-12-26 23:08:52 +01:00
Christoph Oelckers
b076edcc6f - PlayerRemoteReset 2021-12-26 23:08:51 +01:00
Christoph Oelckers
75af6966c9 - FAFHitscan cleanup. 2021-12-26 23:08:51 +01:00
Christoph Oelckers
1a7c70cbbd - use pointers in FAFHitscan 2021-12-26 23:08:51 +01:00
Christoph Oelckers
6ae8e93de8 - hitinfo.hitwall is also gone. 2021-12-26 23:08:51 +01:00
Christoph Oelckers
270a443c88 - hitinfo.hitsect is gone. 2021-12-26 23:08:51 +01:00
Christoph Oelckers
bcc61470a2 - mostly deal with hitinfo.hitsect. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
f495097663 - first step of replacing hitinfo.hitsect with a pointer.
This takes care of easy to handle common patterns
2021-12-26 23:08:50 +01:00
Christoph Oelckers
1162442068 - handle most GetOverlapSector callers. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
11d3a660ad - GetOverlapSector internals. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
4d5c255b08 - adjust a few warp functions. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
c4e388ef56 - merged SpawnActor wrapper. 2021-12-26 23:08:50 +01:00
Christoph Oelckers
d447e3e86f - make the sector reference in SINE_WAVE_FLOOR a pointer. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
16480ccfcc - use sector wrappers where applicable. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
52d9451cbc - SOP::op_main_sector 2021-12-26 23:08:49 +01:00
Christoph Oelckers
f388efc5ef - eliminated the redundant SOP::sector array. 2021-12-26 23:08:49 +01:00
Christoph Oelckers
c43d594f34 - SectorIsUnderwaterArea 2021-12-26 23:08:49 +01:00
Christoph Oelckers
4149a335a3 - SOP::mid_sector 2021-12-26 23:08:48 +01:00
Christoph Oelckers
b936345e11 - sectnum() cleanup and AnimSet return type. 2021-12-26 23:08:48 +01:00
Christoph Oelckers
f68d17133a - SectorSetup, SetupSectorObject 2021-12-26 23:08:48 +01:00
Christoph Oelckers
3b16db7a0f - SectorMidPoint 2021-12-26 23:08:48 +01:00
Christoph Oelckers
da8a5f282d - CopySectorMatch 2021-12-26 23:08:48 +01:00
Christoph Oelckers
de5377cb2c - WallBreakPosition 2021-12-26 23:08:48 +01:00
Christoph Oelckers
d6cd291030 - use a wall pointer in SINE_WAVE 2021-12-26 23:08:47 +01:00
Christoph Oelckers
33b3864d14 - final wall not related to hitscan/neartag. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
f0dd018ad4 - use pointers in sparks interface. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
4acca06c71 - the final wall iterators. 2021-12-26 23:08:47 +01:00
Christoph Oelckers
bb315f8148 - more wall cleanup 2021-12-26 23:08:47 +01:00
Christoph Oelckers
031ad6e4a5 - wall[] in wallmove.cpp 2021-12-26 23:08:47 +01:00
Christoph Oelckers
01c8662c3c - wall[] in track.cpp 2021-12-26 23:08:46 +01:00
Christoph Oelckers
770b242c76 - wall[] in sector.cpp 2021-12-26 23:08:46 +01:00
Christoph Oelckers
5cafd7b591 - QueueHole 2021-12-26 23:08:46 +01:00
Christoph Oelckers
e3ad05d4d7 - quick cursectnum replacements. 2021-12-26 23:08:46 +01:00
Christoph Oelckers
c0496420ec - LadderSector 2021-12-26 23:08:46 +01:00
Christoph Oelckers
991795df4b - CollectPortals 2021-12-26 23:08:46 +01:00
Christoph Oelckers
d0eece244b - got rid of most nextsector references. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
612a9e258e - auto replacement. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
b7a2687a7b - all nextwall references removed. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
ca536ce5bd - quick wall[] replacements. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
ce4a44dd84 - hitinfo.hitwall. 2021-12-26 23:08:45 +01:00
Christoph Oelckers
9f9c01284b - all wall loops using point2. 2021-12-26 23:08:44 +01:00
Christoph Oelckers
7e6de45e46 - WallSetup + SpriteSetup 2021-12-26 23:08:44 +01:00
Christoph Oelckers
d8893f3521 - DoSlidorInstantClose 2021-12-26 23:08:44 +01:00
Christoph Oelckers
9c21483279 - wall[] in light.cpp and player.cpp 2021-12-26 23:08:44 +01:00
Christoph Oelckers
732aa2023b - over_sp/under_sp sectnums 2021-12-26 23:08:44 +01:00
Christoph Oelckers
302016956f - sector parameters in SpawnActor calls. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
e17da708e7 - lots of ->sectnum search & replace. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
d1f156dec3 - most InsertActor calls. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
cab2181ddc - PrevWall 2021-12-26 23:08:43 +01:00
Christoph Oelckers
5cf776daaa - sector save struct. 2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981 - FAFcansee. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
3ccf3ab52d - pointers in mirror struct. 2021-12-26 23:08:42 +01:00
Christoph Oelckers
4d8434ffd2 - CircleCamera and interpso.cpp 2021-12-26 23:08:42 +01:00
Christoph Oelckers
317aa3f217 - CopySectorWalls 2021-12-26 23:08:42 +01:00
Christoph Oelckers
75d59196fc - WallBreakPosition (wall pointer only) 2021-12-26 23:08:42 +01:00
Christoph Oelckers
6e018bd056 - DoSlidorMoveWalls 2021-12-26 23:08:42 +01:00
Christoph Oelckers
ac655abc42 - search & replace only. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
82447233a7 - several getangle(delta) blocks. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
0a0cc85407 - renamed HITINFO fields. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
993d460420 - another delta. 2021-12-26 23:08:41 +01:00
Christoph Oelckers
fe3a02420a - major cleanup and condensing of DoSlidorInterp
The logic here still looks very weird but let's keep it to ensure proper functioning.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
a93dbaf5fe - SW: simplified rotation interpolation functions. 2021-12-26 23:08:40 +01:00
Christoph Oelckers
33c707c708 - Duke: getangle simplification 2021-12-26 23:08:40 +01:00
Christoph Oelckers
5d78b228b7 - the final bits and pieces in Blood 2021-12-26 23:08:40 +01:00
Christoph Oelckers
41506f35db - calcviewpitch 2021-12-26 23:08:40 +01:00
Christoph Oelckers
879407538e - several 'sectnum's. 2021-12-26 23:08:40 +01:00
Christoph Oelckers
9388f839b6 - main view render function and dependencies. 2021-12-26 23:08:40 +01:00
Christoph Oelckers
0797e7ac90 - trInit 2021-12-26 23:08:39 +01:00
Christoph Oelckers
7442edc59f - more trigger stuff 2021-12-26 23:08:39 +01:00
Christoph Oelckers
2967edf827 - triggers.cpp subfunctions. 2021-12-26 23:08:39 +01:00
Christoph Oelckers
8f3c97dde4 - SetSectorState 2021-12-26 23:08:39 +01:00
Christoph Oelckers
7f94eee9bb - busy interface + unlimiting. 2021-12-26 23:08:00 +01:00
Christoph Oelckers
28840b3afa - pass sectors to AddBusy and ReverseBusy. 2021-12-26 22:35:08 +01:00
Christoph Oelckers
9d423d19cd - partial transition of busy interface to sector pointers. 2021-12-26 22:25:59 +01:00
Christoph Oelckers
9017fee74f - FindSector. 2021-12-25 21:29:17 +01:00
Christoph Oelckers
b8953849ee - secnum in fx.cpp 2021-12-25 21:29:17 +01:00
Christoph Oelckers
765ff7609d - all remaining ->sectnum in nnexts.cpp. 2021-12-25 21:29:16 +01:00
Christoph Oelckers
d0376e5485 - nnext sound functions. 2021-12-25 21:29:16 +01:00
Christoph Oelckers
b7c4e4b9fa - useSlopeChanger 2021-12-25 21:29:16 +01:00
Christoph Oelckers
36d66f14b5 - smaller stuff 2021-12-25 21:29:16 +01:00
Christoph Oelckers
4438c20cb4 - fxProcess 2021-12-25 21:29:16 +01:00
Christoph Oelckers
f52a542fad - callback interface. 2021-12-25 21:29:15 +01:00
Christoph Oelckers
e4e5bd0966 - CFX::fxSpawnActor 2021-12-25 21:29:15 +01:00
Christoph Oelckers
331a7654bf - actSpawnThing 2021-12-25 21:29:15 +01:00
Christoph Oelckers
443cfc991c - actSpawnSprite, ZONE, startsectnum and dbLoadMap 2021-12-25 21:29:15 +01:00
Christoph Oelckers
b187f3c028 - CheckProximity 2021-12-25 21:29:15 +01:00
Christoph Oelckers
e172d0c138 - actRadiusDamage 2021-12-25 21:29:14 +01:00
Christoph Oelckers
3d336c13ac - GetClosestSpriteSectors 2021-12-25 21:29:14 +01:00
Christoph Oelckers
f9b2b6311f - slope checks in sprite display code. 2021-12-25 21:29:14 +01:00
Christoph Oelckers
b063e19980 - gFX.fxSpawnActor and a few other simple replacements. 2021-12-25 21:29:14 +01:00
Christoph Oelckers
d99542a678 - get*slope and sfxPlay3DSound 2021-12-25 21:29:14 +01:00
Christoph Oelckers
9343e3f9c4 - handle most cansee calls. 2021-12-25 21:29:13 +01:00
Christoph Oelckers
c8f4caf364 - animatesprite.cpp. 2021-12-25 21:29:13 +01:00
Christoph Oelckers
a34e89c8b7 - debrisMove + getting rid of the index based ClipMove variant. 2021-12-25 21:29:13 +01:00
Christoph Oelckers
94671c5b05 - MoveMissile + GetZRangeXYZ 2021-12-25 21:29:13 +01:00
Christoph Oelckers
9a85ff9bad - MoveThing 2021-12-25 21:29:13 +01:00
Christoph Oelckers
611d35222e - MoveDude 2021-12-25 21:29:13 +01:00
Christoph Oelckers
6ee9ae7ec6 - actFloorBounceVector 2021-12-25 21:29:12 +01:00
Christoph Oelckers
38c0bc915d - get rid of '.sectnum'. 2021-12-25 21:29:12 +01:00
Christoph Oelckers
669aa033e9 - wrap the bit tests for GetClosestSpriteSectors's return.
They need to check spritenum which is supposed to go away, so this function avoids keeping obsolete references.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
368a21f75e - useDataChanger + setDataValueOfObject 2021-12-25 21:29:12 +01:00
Christoph Oelckers
a7fc5d2193 - refactored most wall[] references.
What's left is in either setup code or the mirror setup.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
dd1e7dd94f - use HITINFO to let ActionScan return its result. 2021-12-25 21:29:11 +01:00
Christoph Oelckers
6fcc652111 - usePictureChanger + useIncDecGen
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-12-25 21:29:11 +01:00
Christoph Oelckers
96b6bb21ef - several smaller places.
This gets rid of the less frequent names to look for.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
063e3fb34e - changed parameters of several modern action functions. 2021-12-25 21:29:11 +01:00
Christoph Oelckers
759a8428fa - dragPoint 2021-12-25 21:29:11 +01:00
Christoph Oelckers
7bffcad49f - trMessage* functions.
# Conflicts:
#	source/games/blood/src/eventq.cpp
2021-12-25 21:29:10 +01:00
Christoph Oelckers
45a8654fc2 - use EventObject in SEQINST 2021-12-25 21:29:10 +01:00
Christoph Oelckers
2721a59dc4 - use wall pointers in gib code. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
f07fafea9c - use EventObject for OBJECTS_TO_TRACK. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
dbbca2972a - use EventObject for condition serials. 2021-12-25 21:29:10 +01:00
Christoph Oelckers
da4ec51782 - convert info to an event object in condCheckMixed before doing any checks. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
2b2a8c3ec8 - condPush cleanup in nnexts.cpp. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
2c3d2f4850 - remove the RXBUCKET alias 2021-12-25 21:29:09 +01:00
Christoph Oelckers
9e02da6380 - alias RXBucket to EventObject. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
483b28b258 - uses bucket interface in evSend. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
1de75d2c0f - use wrapper stuff in GetBucketChannel. 2021-12-25 21:29:09 +01:00
Christoph Oelckers
042520e447 - variants of nnExtTriggerObject and getDataFieldOfObject that work directly on an RXBUCKET element. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
10dc47a9bf - some remaining RXBUCKET access in nnexts.cpp 2021-12-25 21:29:08 +01:00
Christoph Oelckers
f775fe577c - use RXBUCKET interface in nnext's fight code. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
f0c74981fe - use the new RXBUCKET interface for nnext's wind code. 2021-12-25 21:29:08 +01:00
Christoph Oelckers
546dee2724 - added accessors to RXBUCKET to match EventObject and renamed some of its members.
As a first preparation for replacement.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
5787ec9618 - use EventObject as storage in EVENT. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
5bec3be5e9 - abstracted access to event target objects. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
32874414fd - evSendSector, too. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
0472c78ddc - same for walls. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
37f4843953 - changed evPostSector to receive a sector pointer instead of index. 2021-12-25 21:29:07 +01:00
Christoph Oelckers
292f100114 - pass an array of wall pointers to GetClosestSpriteSectors 2021-12-25 21:29:06 +01:00
Christoph Oelckers
d5e660a40c - converted gHitInfo.hitwall to a pointer. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
2f6bd64746 - SetWallState parameters 2021-12-25 21:29:06 +01:00
Christoph Oelckers
79da890c6e - TranslateSector cleanup. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
3f46507313 - some wall[] replaced. 2021-12-25 21:29:06 +01:00
Christoph Oelckers
378bf40143 - got rid of the mostly redundant GetWallType function. 2021-12-25 21:29:05 +01:00
Christoph Oelckers
1fc99d4733 - Blood: use wall pointers in wall utilities exclusively. 2021-12-25 21:29:05 +01:00
Christoph Oelckers
93cdaee9f0 - Blood: simplify GetWallAngle 2021-12-25 21:29:05 +01:00
Christoph Oelckers
7a7537961b - Blood: remove GetWallAngle variant with index parameter 2021-12-25 21:29:05 +01:00
Christoph Oelckers
624ad6a2ad - cleanup stuff.
Removed unneeded prototypes, renamed some variables; no logic changes.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
943641d18e - renamed all nSector pointers to pSector
No logic changes!
2021-12-25 21:29:04 +01:00
Christoph Oelckers
a3ecbe6371 - MoveQS 2021-12-25 21:29:04 +01:00
Christoph Oelckers
b1b7608cf7 - most remaining sectnum references. 2021-12-25 21:29:04 +01:00
Christoph Oelckers
2027c6ebaf - the last sector[] 2021-12-25 21:29:04 +01:00
Christoph Oelckers
6e786fcf1e - RadialDamage + DimSector 2021-12-25 21:29:04 +01:00
Christoph Oelckers
24d4680f6e - sector[] in move.cpp 2021-12-25 21:29:03 +01:00
Christoph Oelckers
80f80ed5e5 - initsect 2021-12-25 21:29:03 +01:00
Christoph Oelckers
f09e7ed32f - spawn functions. 2021-12-25 21:29:03 +01:00
Christoph Oelckers
40ae38c173 - calcChaseCamPos. 2021-12-25 21:29:03 +01:00
Christoph Oelckers
a3f1821670 - nPlayerViewSect 2021-12-25 21:29:03 +01:00
Christoph Oelckers
eaa155d52e - various sectnums, 2021-12-25 21:29:02 +01:00
Christoph Oelckers
9b19845dfb - AddMovingSector/CheckPushBlock 2021-12-25 21:29:02 +01:00
Christoph Oelckers
63d66e95c5 - runlist_ProcessSectorTag 2021-12-25 21:29:02 +01:00
Christoph Oelckers
1163a79da9 - renamed sectp in runlist_ProcessSectorTag 2021-12-25 21:29:02 +01:00
Christoph Oelckers
a58548c2f9 - AIElev 2021-12-25 21:29:02 +01:00
Christoph Oelckers
7713723045 - Bullets and bobs. 2021-12-25 21:29:02 +01:00
Christoph Oelckers
b191bca49e - BuildAnim 2021-12-25 21:29:01 +01:00
Christoph Oelckers
2394420f48 - quick replacements 2021-12-25 21:29:01 +01:00
Christoph Oelckers
109ff8c3cb - Above and Below 2021-12-25 21:29:01 +01:00
Christoph Oelckers
7b84a1464c - don't access invalid sector in DrawView.
Old bug exposed by having operator[] assert on bad access to sector[].
2021-12-25 21:29:01 +01:00
Christoph Oelckers
aee560624d - some more sectors. 2021-12-25 21:29:01 +01:00
Christoph Oelckers
78d9b78193 - most of the rest of the walls. 2021-12-25 21:29:00 +01:00
Christoph Oelckers
5374dafb56 - switches 2021-12-25 21:29:00 +01:00