mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 20:11:47 +00:00
Add dynslope demoversion compat check
This commit is contained in:
parent
a1f007c40c
commit
ea45def97b
2 changed files with 18 additions and 4 deletions
|
|
@ -169,8 +169,11 @@ demoghost *ghosts = NULL;
|
||||||
// - Slope physics changed with a scaling fix
|
// - Slope physics changed with a scaling fix
|
||||||
// - 0x000C (Ring Racers v2.2)
|
// - 0x000C (Ring Racers v2.2)
|
||||||
// - 0x000D (Ring Racers v2.3)
|
// - 0x000D (Ring Racers v2.3)
|
||||||
|
// - 0x000E (Ring Racers v2.4 in-dev before DYNSLOPE thinker change)
|
||||||
|
// - 0x000F (Ring Racers v2.4)
|
||||||
|
|
||||||
#define DEMOVERSION 0x000E
|
#define MINDEMOVERSION 0x000E
|
||||||
|
#define DEMOVERSION 0x000F
|
||||||
|
|
||||||
boolean G_CompatLevel(UINT16 level)
|
boolean G_CompatLevel(UINT16 level)
|
||||||
{
|
{
|
||||||
|
|
@ -2440,7 +2443,7 @@ UINT8 G_CmpDemoTime(char *oldname, char *newname)
|
||||||
c = READUINT8(p); // SUBVERSION
|
c = READUINT8(p); // SUBVERSION
|
||||||
I_Assert(c == SUBVERSION);
|
I_Assert(c == SUBVERSION);
|
||||||
s = READUINT16(p);
|
s = READUINT16(p);
|
||||||
I_Assert(s == DEMOVERSION);
|
I_Assert(s >= MINDEMOVERSION && s <= DEMOVERSION);
|
||||||
p += 64; // full demo title
|
p += 64; // full demo title
|
||||||
p += 16; // demo checksum
|
p += 16; // demo checksum
|
||||||
I_Assert(!memcmp(p, "PLAY", 4));
|
I_Assert(!memcmp(p, "PLAY", 4));
|
||||||
|
|
@ -2488,6 +2491,8 @@ UINT8 G_CmpDemoTime(char *oldname, char *newname)
|
||||||
oldversion = READUINT16(p);
|
oldversion = READUINT16(p);
|
||||||
switch(oldversion) // demoversion
|
switch(oldversion) // demoversion
|
||||||
{
|
{
|
||||||
|
case 0x000E:
|
||||||
|
/* fallthru */
|
||||||
case DEMOVERSION: // latest always supported
|
case DEMOVERSION: // latest always supported
|
||||||
break;
|
break;
|
||||||
// too old, cannot support.
|
// too old, cannot support.
|
||||||
|
|
@ -2636,6 +2641,8 @@ void G_LoadDemoInfo(menudemo_t *pdemo, boolean allownonmultiplayer)
|
||||||
|
|
||||||
switch(pdemoversion)
|
switch(pdemoversion)
|
||||||
{
|
{
|
||||||
|
case 0x000E:
|
||||||
|
/* fallthru */
|
||||||
case DEMOVERSION: // latest always supported
|
case DEMOVERSION: // latest always supported
|
||||||
if (P_SaveBufferRemaining(&info) < 64)
|
if (P_SaveBufferRemaining(&info) < 64)
|
||||||
{
|
{
|
||||||
|
|
@ -3033,6 +3040,8 @@ void G_DoPlayDemoEx(const char *defdemoname, lumpnum_t deflumpnum)
|
||||||
demo.version = READUINT16(demobuf.p);
|
demo.version = READUINT16(demobuf.p);
|
||||||
switch(demo.version)
|
switch(demo.version)
|
||||||
{
|
{
|
||||||
|
case 0x000E:
|
||||||
|
/* fallthru */
|
||||||
case DEMOVERSION: // latest always supported
|
case DEMOVERSION: // latest always supported
|
||||||
break;
|
break;
|
||||||
// too old, cannot support.
|
// too old, cannot support.
|
||||||
|
|
@ -3521,6 +3530,8 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname)
|
||||||
ghostversion = READUINT16(p);
|
ghostversion = READUINT16(p);
|
||||||
switch(ghostversion)
|
switch(ghostversion)
|
||||||
{
|
{
|
||||||
|
case 0x000E:
|
||||||
|
/* fallthru */
|
||||||
case DEMOVERSION: // latest always supported
|
case DEMOVERSION: // latest always supported
|
||||||
break;
|
break;
|
||||||
// too old, cannot support.
|
// too old, cannot support.
|
||||||
|
|
@ -3805,6 +3816,8 @@ staffbrief_t *G_GetStaffGhostBrief(UINT8 *buffer)
|
||||||
ghostversion = READUINT16(p);
|
ghostversion = READUINT16(p);
|
||||||
switch(ghostversion)
|
switch(ghostversion)
|
||||||
{
|
{
|
||||||
|
case 0x000E:
|
||||||
|
/* fallthru */
|
||||||
case DEMOVERSION: // latest always supported
|
case DEMOVERSION: // latest always supported
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
#include "d_think.h"
|
#include "d_think.h"
|
||||||
#include "doomdef.h"
|
#include "doomdef.h"
|
||||||
|
#include "g_demo.h"
|
||||||
#include "r_defs.h"
|
#include "r_defs.h"
|
||||||
#include "r_state.h"
|
#include "r_state.h"
|
||||||
#include "m_bbox.h"
|
#include "m_bbox.h"
|
||||||
|
|
@ -308,7 +309,7 @@ static inline void P_AddDynLineSlopeThinker (pslope_t* slope, dynplanetype_t typ
|
||||||
th->sourceline = sourceline;
|
th->sourceline = sourceline;
|
||||||
th->extent = extent;
|
th->extent = extent;
|
||||||
// Handle old demos as well.
|
// Handle old demos as well.
|
||||||
P_AddThinker(/*G_CompatLevel(0x000D) ? THINK_DYNSLOPEDEMO :*/ THINK_DYNSLOPE, &th->thinker);
|
P_AddThinker(G_CompatLevel(0x000E) ? THINK_DYNSLOPEDEMO : THINK_DYNSLOPE, &th->thinker);
|
||||||
|
|
||||||
// interpolation
|
// interpolation
|
||||||
R_CreateInterpolator_DynSlope(&th->thinker, slope);
|
R_CreateInterpolator_DynSlope(&th->thinker, slope);
|
||||||
|
|
@ -339,7 +340,7 @@ static inline void P_AddDynVertexSlopeThinker (pslope_t* slope, const INT16 tags
|
||||||
th->relative |= 1<<i;
|
th->relative |= 1<<i;
|
||||||
}
|
}
|
||||||
// Handle old demos as well.
|
// Handle old demos as well.
|
||||||
P_AddThinker(/*G_CompatLevel(0x000D) ? THINK_DYNSLOPEDEMO :*/ THINK_DYNSLOPE, &th->thinker);
|
P_AddThinker(G_CompatLevel(0x000E) ? THINK_DYNSLOPEDEMO : THINK_DYNSLOPE, &th->thinker);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a new slope and add it to the slope list.
|
/// Create a new slope and add it to the slope list.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue