Should make it a lot easier to add more gametypes later.
Also some minor fixes:
- Changed up how shell speed scales in mobjscale juuuust slightly, so
it's less messy
- Fixed CHECK showing spectators
Anyone in the top 50% gets winning music & blue position, everyone below
gets the losing music & red position. For odd numbers, it rounds up.
2p: 1st wins, 2nd loses
3p: 1-2 win, 3rd loses
4p: 1-2 win, 3-4 lose
5p: 1-3 win, 4-5 lose
6p: 1-3 win, 4-6 lose
7p: 1-4 win, 5-7 lose
8p: 1-4 win, 5-8 lose (SMK)
12p: 1-6 win, 7-12 lose (modern MK)
16p: 1-8 win, 9-16 lose (max player count)
In big netgames you won't just hear the losing music all of the time now
:V
- Record Attack replays now save best lap time
- Removed instances of NiGHTS Attack
- Removed a lot of unlockable that have no use in Kart (ultimate mode,
perfect bonus, score emblems, etc)
- Removed all methods of activating ultimate mode
- Improve balloon-based items. Much more distinguished differences
between the different ranks
- Reverted Feather strafing. You can now just... properly move in the
air, if you're using a Feather or a Bounce Pad.
- Bounce pads are now stronger while using speed items.
- Fixed the long standing bug about offroad & ziplines working when
you're on FOFs above them. This is a tricky subject, so please report
any issues you may come across related to this.
- Shells should no longer travel to Mars, nor will they when using
bounce pads. They should now do a gentle hop.
- :WIP: new MP Player Setup screen, now shows character stats. Will
later feature the list of characters in a row of icons, and a backported
2.2 color selector with toast's permission
- Renamed "Match" to "Battle" :p
- Yet MORE minor cases where kartspeed & kartweight were being read as
fixed_t when they're freakin' UINT8's, people!
- Position faces are now drawn in Battle, categorized first by balloons,
then by points
- Balloon-based items, gives people who are worse off better items, and
people who are better off worse items.
- You can strafe while using feather or while using a bounce pad
- Reduced the strength of bounce pad thrust on items
- Increased bounce pad's minimum forward push on players
- Made Frantic Mode just a teeeeensy bit more frantic
- Fixed being able to use Feathers mid-air
- Fixed being unable to steal Feathers
- Drift sparks use frameangle instead of angle
- K_DoBouncePad now uses mobj_t instead of player_t
- Bounce pads can now bump thrown shells
- Bounce pads now give heavier gravity to players
- The suicide command now works in all gamemodes
- Comeback timer is now always 10 seconds instead of scaling
- Takes 10 seconds before exiting
- Flashing tics is doubled in Battle Mode
- Removed a bunch of bomb nerfs
- Bombs are back to making only 1 point per hit
- Exposed K_GetKartAccel & K_GetKartFlashing to Lua
- Item boxes should no longer drop while going up slopes
- Trading item boxes with a bomb should turn you back into a bomb
- Balloons should no longer all respawn when dying in pits in 2-player
games
- Flashing players are able to kill *thrown* shells again (shields and
trap items are still unkillable). Prevents red shells from being able to
stick to a flashing player and hurt them again as soon as they're done
flashing
- CHECK appears at a farther distance
- Player arrows now show if a player is in the item roulette
- Boo has been improved, and added back to Battle's item roulette
- The CHECK HUD item is now more accurate, and should appear more often
- Early comeback mechanic. Functional, but really unpolished
- Attempted (again) to make the first player to join in a netgame spawn
with balloons
- No longer shows respawn text on death
- Different sizes for the balloons, depending on how many you have
- Balloons are fullbright, cast shadows, and stick closer to players
- Mega Mushrooms can now appear
- Can steal items with Boo in Battle Mode now, as intended
- Death pits make you lose only 1 balloon
- Balloons disappear properly if you use Boo
- Boo item icon should no longer appear if you're out of balloons
- You can now properly respawn in Battle Mode
- Can no longer collide with items if you are already holding one
Fixes with respect to sector special touching and slopes
Some important stuff.
* SF_TRIGGERSPECIAL_TOUCH now actually works. Previously, it abandoned the loop early if ANY bounding sector didn't have that sector flag, which it likely didn't - only checking one extra sector's worth of FOFs. Also, the teleport handling there is more robust, and actually bails out if you teleport, instead of just awkwardly continuing through the loop.
* SF_TRIGGERSPECIAL_TOUCH now works for each time thinkers, too.
* Fixed a bug with being able to go under lava because P_CheckSolidLava doesn't take slopes into account.
* Also, P_CanRunOnWater supports slopes now too.
* Quicksand supports slopes and reverse gravity now.
* Space Countdown supports slopes now.
Also, an experiment behind a #define which currently isn't turned on:
* UNDER A #define, "SECTORSPECIALSAFTERTHINK", WHICH IS CURRENTLY TURNED OFF, BUT I WILL WANT TO TURN ON IN INTERNAL: Moved sector touch handling to P_PlayerAfterThinker (from P_PlayerThinker before movement). Allows for being able to trigger moving slope sectors that are going down, most specifically lava (didn't matter in RVZS in 2.1 because you could clip through the sides and go underneath the lava, causing damage - a sloped testwad version of that prevented going underneath.) Also fixes one-frame standing on deathpits before you die. Basically means sector triggers effectively happen one tic earlier, since it's after movement.
See merge request !131
-------
Diagonal springs now keep your current speed if you are faster than their set speed. This only affects players for now.
Offroad is no longer handled by &256, and is now handled by &2, &3, &4; Damage (Damage (Water), Damage (Fire), and Damage (Electric))
Starpost mobj radius and height have been reduced to 1*FRACUNIT, this should fix the checkpoint infinispawn bug.
Lakitu is completely commented out currently and we will be able to re-add it back later
Final lap sounds do some wacky stuff with the variables of the local player only, and also block out the music just to restart it at the same speed currently, changed it to just be the lap sound, we can use a new sound for it later
they are basically unused outside of timeattack and checkpointtimes isn't sent for netplay anyway
we can reimplement later with a more sensible solution for lap times in time attack
Mushrooms rewritten to not use Instathrust, instead they jack up your accel to 10x. Feels nicer.
Floor mushroom panels no longer activate while above them
Mushrooms force player to accelerate (and cannot brake)
K_PlayTauntSound works now. (YES YES YES HUP HUP YES HUP HERE WE GO)
Star and Mega sfx might stop correctly now in netgames (need to test)
Item box radius and height increased from 32 to 36.
Savegame hotfixes
Yes, this another netgame related fix! Named this "savegame hotfixes" rather than "ERCZ hotfix" or the like in advance of the fact we probably need a general branch for other $$$.sav fixes?
Anyway, fixes included in by this branch:
* ERCZ's lava falls now act as expected rather than being stuck in place for the map's duration, fixing all other known desynchronisation issues known in the map for the time being (yay)
* Changing sector tags in a map no longer causes joiners to netgames to have their SRB2 application stop responding etc
* Player names should no longer turn red in the console in gametypes outside of CTF/Team Match if a resynch occurs (not $$$.sav related, but it's related to netplay so I lumped it in anyway)
See merge request !150
Dunno who thought it was a good idea to lump tag, nexttag and firsttag together in $$$.sav, but that meant changing sector tags caused SRB2 to stop responding since it lead to the tag lists being broken
Even more slope-related fixes
What it says on the tin pretty much:
Currently included fixes:
* Pusher specials applied to FOFs did not properly account for slopes applied to the bottom plane; this probably was just a minor slipup that appeared on adding the support in the first place, I take it? (some waterfall in the last section of SUGOI's Fudge Canyon is the only place I can think of offhand where this bug is noticable)
See merge request !114
for some apparent reason the compiler didn't like the while loop condition edit on its own (it complained about inline failures for P_MobjReadyToTrigger for some reason), so I had to add that extra bit above the while loop... and it was happy again, huh
Two interesting points of note:
* The touchspecial sector flag seems to actually do its job now.
* Detection of sectors with polyobjects in seems to have done this incorrectly, but this doesn't mess with anything about touching the polies themselves so it seems to really only handle edge cases where the polyobject was too close to the border of another sector (which would've likely made rendering glitches anyways).
* There was a whole swathe of teetering code that was basically never run properly because of this mistake. I did a simple fix at first, but you started teetering whenever you were slightly less than your radius away from a sector's edge, which was completely different and undesirable behaviour. Instead, I cut out the code that was never running, and just left the hacky method in instead since it was more accurate to what we want in general.
Slope fixes
This branch fixes the following slope-related physics and rendering bugs:
* Rings in multiplayer stages respawning inside slopes (even despite being able to spawn ABOVE them on map load)
* Player starts spawning players inside slopes
* Elemental flame trails not appearing if a player spindashes UP a slope; see issue #21
* Dying players "jumping" off slopes to the side if they were previously standing on one
* Some issues with FOF slope rendering
* Various issues with sprites displaying through walls adjacent to slopes
Other features added:
* Objectplace now supports slopes (this is Inuyasha's doing)
* Automap in DEVMODE now supports slopes (my doing)
Just making this merge request now rather than later, ~~in case I decide not to make any more fixes for the time being~~ (this branch doesn't seem to want to die lol), and so we can get these merged in as soon as the code's all been checked over.
See merge request !50
P_RandomChance is now a macro for something that should happen a
certain percentage of time.
P_SignedRandom was moved to a macro. Nobody cared.
# Conflicts:
# src/p_inter.c
BACKPORT: removal of music slots
Relevant commits cherry-picked. Basically everything except the internal music track name switches.
See merge request !43
This fixes how removing certain flags (such as FF_EXISTS) from FOFs can cause HOMs on walls bordering their target sectors. Also fixes how the force-FOF-to-vanish linedef special can leave behind the FOF's shadow
Use whatever names you want for your music. So long as you prefix the lumps with O_ or D_, it doesn't matter anymore.
DISCLAIMER: Linedef type 413 (change music) and Lua scripting is not tested.
(cherry picked from commit 025ca413a2a01a8ec7c104748c2f510e350aa457)
# Conflicts:
# src/p_user.c
Compiling errors fixed in this commit:
* Various cases of mixed declaration and statement code
* Implicit declaration of slope functions (read: you forgot to put "include "p_slopes.h" in MORE than a few places)
* an odd case of a bad fixed_t to float typecase, cause by using P_GetZAt directly inside FIXED_TO_FLOAT
* a few minor cases of bad unsigned-signed comparisons
* no prototypes for some of the new slope functions. For goodness sake Red, this is basic stuff!
...
(It's that infamous intangible West/South linedefs bug, which was really a blockmap-related bug all along. AND IT WAS SO SIMPLE TO FIX!)
git-svn-id: https://code.orospakr.ca/svn/srb2/trunk@9048 6de4a73c-47e2-0310-b8c1-93d6ecd3f8cd