- SPB: The standard set-up has ATTACKING_TIME in addition to ATTACKING_SPB, so the _TIME check first prevented it from ever being ticked
- SPB: Check for encoremode instead of ATTACKING_SPB, to cover Versus SPB as well
- All Attacking modes: Check for != ATTACKING_NONE just in case we add other potential modeattacking configurations later
- If you called R_ResetViewInterpolation once but G_Ticker
got called more than once, then the effect of
R_ResetViewInterpolation would be cancelled
- This should be a comprehensive solution to the titlemap
camera bug
- Multiple tests:
- -skipintro
- -warp, then exit to title
- map command, then exit to title
- Wait for attract demo, then skip and exit to title
- If tally is skipped, the replay will be cut short
- Just stop reading the demo if this happened after the
tally started
- It's okay to let the level continue without any input
because the player already finished (we know the result)
- Spins and zooms around a center point
- Freezes the level while spinning
- Pans over to follow and object after spinning ends
- Timing and speed completely customizable
Notable deletions:
- Metal Sonic Race
- Includes all the specialised recording/playback apparatus which made g_demo.c harder to read
- A bunch of hyperspecialised code inside several A_ actions
- EXCEPTION: intentfully left in the spriteless SMK stuff for Sal's add-on down the line.
- Add lua_profile cheat: calculate average time spent in
hooks over a period
- Show hook times in a sorted table, along with lump name,
script line number and hook type
- Show cumulative time spent in game logic hooks and
percentage of overhead to game logic
A first pass in attempts to fix crashes when ACS causes map changes.
Frustratingly still got a crash, but I think this is definitely the right foundation to work with.
- There's a freeze cheat bool to freeze everything except for players.
- There's a level freeze bool to freeze literally everything.
- There's a frozen bool on mobj_t to explicitly control freeze status on an object.
This commit handles everything except actually respawning
the player at a checkpoint.
- Checkpoints are formed by two checkpoint things (2030):
- thingarg0 - The ID for the checkpoint. Must be the
same for these two things, and these two
things only. ID cannot be 0.
- angle - The direction the player is intended to face
after respawning. Must be the same for both
things.
- Each checkpoint thing is a starpost with a stick and an
orb at the end.
- By default, the sticks are lowered to horizontal and
face toward the opposite starpost.
- Rainbow tether sparkles form a field between the two
starposts.
- When a player crosses between these two starposts, each
spins in the direction that the player crossed. The
sparkles also fly out in that direction.
- Over time the sticks pivot upward.
- When the starposts are done spinning, the sticks will be
pointing straight upward.
- Orb at the end of the stick begins flashing when the
starpost is done spinnning.
- Players may cross multiple checkpoints.
- When this happens, any previously activated checkpoint
will have its stick lowered back to horizontal, and its
orb will stop flashing.