mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge g_demo.c, remove OLD22DEMOCOMPAT
This commit is contained in:
parent
9e99b3e9d2
commit
e14f4a5842
4 changed files with 4 additions and 273 deletions
125
src/command.c
125
src/command.c
|
|
@ -63,10 +63,6 @@ static const char *CV_StringValue(const char *var_name);
|
||||||
static consvar_t *consvar_vars; // list of registered console variables
|
static consvar_t *consvar_vars; // list of registered console variables
|
||||||
static UINT16 consvar_number_of_netids = 0;
|
static UINT16 consvar_number_of_netids = 0;
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
static old_demo_var_t *consvar_old_demo_vars;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static char com_token[1024];
|
static char com_token[1024];
|
||||||
static char *COM_Parse(char *data);
|
static char *COM_Parse(char *data);
|
||||||
|
|
||||||
|
|
@ -1169,58 +1165,6 @@ consvar_t *CV_FindVar(const char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
/** Builds a unique Net Variable identifier number, which was used
|
|
||||||
* in network packets and demos instead of the full name.
|
|
||||||
*
|
|
||||||
* This function only still exists to keep compatibility with old demos.
|
|
||||||
*
|
|
||||||
* \param s Name of the variable.
|
|
||||||
* \return A new unique identifier.
|
|
||||||
*/
|
|
||||||
static inline UINT16 CV_ComputeOldDemoID(const char *s)
|
|
||||||
{
|
|
||||||
UINT16 ret = 0, i = 0;
|
|
||||||
static UINT16 premiers[16] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
|
|
||||||
|
|
||||||
while (*s)
|
|
||||||
{
|
|
||||||
ret = (UINT16)(ret + (*s)*premiers[i]);
|
|
||||||
s++;
|
|
||||||
i = (UINT16)((i+1) % 16);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Finds a net variable based on its old style hash. If a hash collides, a
|
|
||||||
* warning is printed and this function returns NULL.
|
|
||||||
*
|
|
||||||
* \param chk The variable's old style hash.
|
|
||||||
* \return A pointer to the variable itself if found, or NULL.
|
|
||||||
*/
|
|
||||||
static old_demo_var_t *CV_FindOldDemoVar(UINT16 chk)
|
|
||||||
{
|
|
||||||
old_demo_var_t *demovar;
|
|
||||||
|
|
||||||
for (demovar = consvar_old_demo_vars; demovar; demovar = demovar->next)
|
|
||||||
{
|
|
||||||
if (demovar->checksum == chk)
|
|
||||||
{
|
|
||||||
if (demovar->collides)
|
|
||||||
{
|
|
||||||
CONS_Alert(CONS_WARNING,
|
|
||||||
"Old demo netvar id %hu is a collision\n", chk);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return demovar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif/*OLD22DEMOCOMPAT*/
|
|
||||||
|
|
||||||
/** Finds a net variable based on its identifier number.
|
/** Finds a net variable based on its identifier number.
|
||||||
*
|
*
|
||||||
* \param netid The variable's identifier number.
|
* \param netid The variable's identifier number.
|
||||||
|
|
@ -1245,32 +1189,6 @@ static consvar_t *CV_FindNetVar(UINT16 netid)
|
||||||
|
|
||||||
static void Setvalue(consvar_t *var, const char *valstr, boolean stealth);
|
static void Setvalue(consvar_t *var, const char *valstr, boolean stealth);
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
/* Sets up a netvar for compatibility with old demos. */
|
|
||||||
static void CV_RegisterOldDemoVar(consvar_t *variable)
|
|
||||||
{
|
|
||||||
old_demo_var_t *demovar;
|
|
||||||
UINT16 old_demo_id;
|
|
||||||
|
|
||||||
old_demo_id = CV_ComputeOldDemoID(variable->name);
|
|
||||||
|
|
||||||
demovar = CV_FindOldDemoVar(old_demo_id);
|
|
||||||
|
|
||||||
if (demovar)
|
|
||||||
demovar->collides = true;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
demovar = ZZ_Calloc(sizeof *demovar);
|
|
||||||
|
|
||||||
demovar->checksum = old_demo_id;
|
|
||||||
demovar->cvar = variable;
|
|
||||||
|
|
||||||
demovar->next = consvar_old_demo_vars;
|
|
||||||
consvar_old_demo_vars = demovar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Registers a variable for later use from the console.
|
/** Registers a variable for later use from the console.
|
||||||
*
|
*
|
||||||
* \param variable The variable to register.
|
* \param variable The variable to register.
|
||||||
|
|
@ -1299,10 +1217,6 @@ void CV_RegisterVar(consvar_t *variable)
|
||||||
/* in case of overflow... */
|
/* in case of overflow... */
|
||||||
if (variable->netid > consvar_number_of_netids)
|
if (variable->netid > consvar_number_of_netids)
|
||||||
I_Error("Way too many netvars");
|
I_Error("Way too many netvars");
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
CV_RegisterOldDemoVar(variable);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// link the variable in
|
// link the variable in
|
||||||
|
|
@ -1596,38 +1510,6 @@ ReadNetVar (UINT8 **p, char **return_value, boolean *return_stealth)
|
||||||
return cvar;
|
return cvar;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
static consvar_t *
|
|
||||||
ReadOldDemoVar (UINT8 **p, char **return_value, boolean *return_stealth)
|
|
||||||
{
|
|
||||||
UINT16 id;
|
|
||||||
char *val;
|
|
||||||
boolean stealth;
|
|
||||||
|
|
||||||
old_demo_var_t *demovar;
|
|
||||||
|
|
||||||
id = READUINT16 (*p);
|
|
||||||
val = (char *)*p;
|
|
||||||
SKIPSTRING (*p);
|
|
||||||
stealth = READUINT8 (*p);
|
|
||||||
|
|
||||||
demovar = CV_FindOldDemoVar(id);
|
|
||||||
|
|
||||||
if (demovar)
|
|
||||||
{
|
|
||||||
(*return_value) = val;
|
|
||||||
(*return_stealth) = stealth;
|
|
||||||
|
|
||||||
return demovar->cvar;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CONS_Alert(CONS_WARNING, "Netvar not found with old demo id %hu\n", id);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif/*OLD22DEMOCOMPAT*/
|
|
||||||
|
|
||||||
static consvar_t *
|
static consvar_t *
|
||||||
ReadDemoVar (UINT8 **p, char **return_value, boolean *return_stealth)
|
ReadDemoVar (UINT8 **p, char **return_value, boolean *return_stealth)
|
||||||
{
|
{
|
||||||
|
|
@ -1755,13 +1637,6 @@ void CV_LoadNetVars(UINT8 **p)
|
||||||
CV_LoadVars(p, ReadNetVar);
|
CV_LoadVars(p, ReadNetVar);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
void CV_LoadOldDemoVars(UINT8 **p)
|
|
||||||
{
|
|
||||||
CV_LoadVars(p, ReadOldDemoVar);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void CV_LoadDemoVars(UINT8 **p)
|
void CV_LoadDemoVars(UINT8 **p)
|
||||||
{
|
{
|
||||||
CV_LoadVars(p, ReadDemoVar);
|
CV_LoadVars(p, ReadDemoVar);
|
||||||
|
|
|
||||||
|
|
@ -148,19 +148,6 @@ typedef struct consvar_s //NULL, NULL, 0, NULL, NULL |, 0, NULL, NULL, 0, 0, NUL
|
||||||
struct consvar_s *next;
|
struct consvar_s *next;
|
||||||
} consvar_t;
|
} consvar_t;
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
typedef struct old_demo_var old_demo_var_t;
|
|
||||||
|
|
||||||
struct old_demo_var
|
|
||||||
{
|
|
||||||
UINT16 checksum;
|
|
||||||
boolean collides;/* this var is a collision of multiple hashes */
|
|
||||||
|
|
||||||
consvar_t *cvar;
|
|
||||||
old_demo_var_t *next;
|
|
||||||
};
|
|
||||||
#endif/*OLD22DEMOCOMPAT*/
|
|
||||||
|
|
||||||
extern CV_PossibleValue_t CV_OnOff[];
|
extern CV_PossibleValue_t CV_OnOff[];
|
||||||
extern CV_PossibleValue_t CV_YesNo[];
|
extern CV_PossibleValue_t CV_YesNo[];
|
||||||
extern CV_PossibleValue_t CV_Unsigned[];
|
extern CV_PossibleValue_t CV_Unsigned[];
|
||||||
|
|
@ -215,10 +202,6 @@ void CV_LoadNetVars(UINT8 **p);
|
||||||
#define CV_SaveDemoVars(p) CV_SaveVars(p, true)
|
#define CV_SaveDemoVars(p) CV_SaveVars(p, true)
|
||||||
void CV_LoadDemoVars(UINT8 **p);
|
void CV_LoadDemoVars(UINT8 **p);
|
||||||
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
|
||||||
void CV_LoadOldDemoVars(UINT8 **p);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// reset cheat netvars after cheats is deactivated
|
// reset cheat netvars after cheats is deactivated
|
||||||
void CV_ResetCheatNetVars(void);
|
void CV_ResetCheatNetVars(void);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -685,7 +685,4 @@ extern const char *compdate, *comptime, *comprevision, *compbranch;
|
||||||
/// MIDI support is really shitty -- we don't use it anyway, so lets throw it behind a define
|
/// MIDI support is really shitty -- we don't use it anyway, so lets throw it behind a define
|
||||||
#define NO_MIDI
|
#define NO_MIDI
|
||||||
|
|
||||||
/// Maintain compatibility with older 2.2 demos
|
|
||||||
//#define OLD22DEMOCOMPAT
|
|
||||||
|
|
||||||
#endif // __DOOMDEF__
|
#endif // __DOOMDEF__
|
||||||
|
|
|
||||||
132
src/g_demo.c
132
src/g_demo.c
|
|
@ -498,12 +498,8 @@ void G_ReadDemoTiccmd(ticcmd_t *cmd, INT32 playernum)
|
||||||
if (ziptic & ZT_LATENCY)
|
if (ziptic & ZT_LATENCY)
|
||||||
oldcmd[playernum].latency = READUINT8(demo_p);
|
oldcmd[playernum].latency = READUINT8(demo_p);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
G_CopyTiccmd(cmd, &oldcmd[playernum], 1);
|
G_CopyTiccmd(cmd, &oldcmd[playernum], 1);
|
||||||
=======
|
|
||||||
G_CopyTiccmd(cmd, &oldcmd, 1);
|
|
||||||
players[playernum].angleturn = cmd->angleturn;
|
players[playernum].angleturn = cmd->angleturn;
|
||||||
>>>>>>> srb2/next
|
|
||||||
|
|
||||||
if (!(demoflags & DF_GHOST) && *demo_p == DEMOMARKER)
|
if (!(demoflags & DF_GHOST) && *demo_p == DEMOMARKER)
|
||||||
{
|
{
|
||||||
|
|
@ -1188,62 +1184,6 @@ void G_GhostTicker(void)
|
||||||
if (g->mo->destscale != g->mo->scale)
|
if (g->mo->destscale != g->mo->scale)
|
||||||
P_SetScale(g->mo, g->mo->destscale);
|
P_SetScale(g->mo, g->mo->destscale);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
if (xziptic & EZT_THOKMASK)
|
|
||||||
{ // Let's only spawn ONE of these per frame, thanks.
|
|
||||||
mobj_t *mobj;
|
|
||||||
UINT32 type = MT_NULL;
|
|
||||||
if (g->mo->skin)
|
|
||||||
{
|
|
||||||
skin_t *skin = (skin_t *)g->mo->skin;
|
|
||||||
switch (xziptic & EZT_THOKMASK)
|
|
||||||
{
|
|
||||||
case EZT_THOK:
|
|
||||||
type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem;
|
|
||||||
break;
|
|
||||||
case EZT_SPIN:
|
|
||||||
type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem;
|
|
||||||
break;
|
|
||||||
case EZT_REV:
|
|
||||||
type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (type != MT_NULL)
|
|
||||||
{
|
|
||||||
if (type == MT_GHOST)
|
|
||||||
{
|
|
||||||
mobj = P_SpawnGhostMobj(g->mo); // does a large portion of the work for us
|
|
||||||
mobj->frame = (mobj->frame & ~FF_FRAMEMASK)|tr_trans60<<FF_TRANSSHIFT; // P_SpawnGhostMobj sets trans50, we want trans60
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mobj = P_SpawnMobjFromMobj(g->mo, 0, 0, -FixedDiv(FixedMul(g->mo->info->height, g->mo->scale) - g->mo->height,3*FRACUNIT), MT_THOK);
|
|
||||||
mobj->sprite = states[mobjinfo[type].spawnstate].sprite;
|
|
||||||
mobj->frame = (states[mobjinfo[type].spawnstate].frame & FF_FRAMEMASK) | tr_trans60<<FF_TRANSSHIFT;
|
|
||||||
mobj->color = g->mo->color;
|
|
||||||
mobj->skin = g->mo->skin;
|
|
||||||
P_SetScale(mobj, (mobj->destscale = g->mo->scale));
|
|
||||||
|
|
||||||
if (type == MT_THOK) // spintrail-specific modification for MT_THOK
|
|
||||||
{
|
|
||||||
mobj->frame = FF_TRANS80;
|
|
||||||
mobj->fuse = mobj->tics;
|
|
||||||
}
|
|
||||||
mobj->tics = -1; // nope.
|
|
||||||
}
|
|
||||||
mobj->floorz = mobj->z;
|
|
||||||
mobj->ceilingz = mobj->z+mobj->height;
|
|
||||||
P_UnsetThingPosition(mobj);
|
|
||||||
mobj->flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY; // make an ATTEMPT to curb crazy SOCs fucking stuff up...
|
|
||||||
P_SetThingPosition(mobj);
|
|
||||||
if (!mobj->fuse)
|
|
||||||
mobj->fuse = 8;
|
|
||||||
P_SetTarget(&mobj->target, g->mo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>>>>>>> srb2/next
|
|
||||||
if (xziptic & EZT_HIT)
|
if (xziptic & EZT_HIT)
|
||||||
{ // Spawn hit poofs for killing things!
|
{ // Spawn hit poofs for killing things!
|
||||||
UINT16 i, count = READUINT16(g->p), health;
|
UINT16 i, count = READUINT16(g->p), health;
|
||||||
|
|
@ -1679,62 +1619,6 @@ void G_ReadMetalTic(mobj_t *metal)
|
||||||
if (metal->destscale != metal->scale)
|
if (metal->destscale != metal->scale)
|
||||||
P_SetScale(metal, metal->destscale);
|
P_SetScale(metal, metal->destscale);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
if (xziptic & EZT_THOKMASK)
|
|
||||||
{ // Let's only spawn ONE of these per frame, thanks.
|
|
||||||
mobj_t *mobj;
|
|
||||||
UINT32 type = MT_NULL;
|
|
||||||
if (metal->skin)
|
|
||||||
{
|
|
||||||
skin_t *skin = (skin_t *)metal->skin;
|
|
||||||
switch (xziptic & EZT_THOKMASK)
|
|
||||||
{
|
|
||||||
case EZT_THOK:
|
|
||||||
type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem;
|
|
||||||
break;
|
|
||||||
case EZT_SPIN:
|
|
||||||
type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem;
|
|
||||||
break;
|
|
||||||
case EZT_REV:
|
|
||||||
type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (type != MT_NULL)
|
|
||||||
{
|
|
||||||
if (type == MT_GHOST)
|
|
||||||
{
|
|
||||||
mobj = P_SpawnGhostMobj(metal); // does a large portion of the work for us
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mobj = P_SpawnMobjFromMobj(metal, 0, 0, -FixedDiv(FixedMul(metal->info->height, metal->scale) - metal->height,3*FRACUNIT), MT_THOK);
|
|
||||||
mobj->sprite = states[mobjinfo[type].spawnstate].sprite;
|
|
||||||
mobj->frame = states[mobjinfo[type].spawnstate].frame;
|
|
||||||
mobj->angle = metal->angle;
|
|
||||||
mobj->color = metal->color;
|
|
||||||
mobj->skin = metal->skin;
|
|
||||||
P_SetScale(mobj, (mobj->destscale = metal->scale));
|
|
||||||
|
|
||||||
if (type == MT_THOK) // spintrail-specific modification for MT_THOK
|
|
||||||
{
|
|
||||||
mobj->frame = FF_TRANS70;
|
|
||||||
mobj->fuse = mobj->tics;
|
|
||||||
}
|
|
||||||
mobj->tics = -1; // nope.
|
|
||||||
}
|
|
||||||
mobj->floorz = mobj->z;
|
|
||||||
mobj->ceilingz = mobj->z+mobj->height;
|
|
||||||
P_UnsetThingPosition(mobj);
|
|
||||||
mobj->flags = MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY; // make an ATTEMPT to curb crazy SOCs fucking stuff up...
|
|
||||||
P_SetThingPosition(mobj);
|
|
||||||
if (!mobj->fuse)
|
|
||||||
mobj->fuse = 8;
|
|
||||||
P_SetTarget(&mobj->target, metal);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>>>>>>> srb2/next
|
|
||||||
if (xziptic & EZT_SPRITE)
|
if (xziptic & EZT_SPRITE)
|
||||||
metal->sprite = READUINT16(metal_p);
|
metal->sprite = READUINT16(metal_p);
|
||||||
}
|
}
|
||||||
|
|
@ -2091,8 +1975,8 @@ void G_BeginRecording(void)
|
||||||
demoinfo_p = demo_p;
|
demoinfo_p = demo_p;
|
||||||
WRITEUINT32(demo_p, 0);
|
WRITEUINT32(demo_p, 0);
|
||||||
|
|
||||||
// Save netvars
|
// Save netvar data
|
||||||
CV_SaveNetVars(&demo_p, true);
|
CV_SaveDemoVars(&demo_p);
|
||||||
|
|
||||||
// Now store some info for each in-game player
|
// Now store some info for each in-game player
|
||||||
|
|
||||||
|
|
@ -2159,17 +2043,12 @@ void G_BeginRecording(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
WRITEUINT8(demo_p, 0xFF); // Denote the end of the player listing
|
WRITEUINT8(demo_p, 0xFF); // Denote the end of the player listing
|
||||||
|
|
||||||
// player lua vars, always saved even if empty
|
// player lua vars, always saved even if empty
|
||||||
LUA_ArchiveDemo();
|
LUA_ArchiveDemo();
|
||||||
|
|
||||||
WRITEUINT32(demo_p,P_GetInitSeed());
|
WRITEUINT32(demo_p,P_GetInitSeed());
|
||||||
=======
|
|
||||||
// Save netvar data
|
|
||||||
CV_SaveDemoVars(&demo_p);
|
|
||||||
>>>>>>> srb2/next
|
|
||||||
|
|
||||||
memset(&oldcmd,0,sizeof(oldcmd));
|
memset(&oldcmd,0,sizeof(oldcmd));
|
||||||
memset(&oldghost,0,sizeof(oldghost));
|
memset(&oldghost,0,sizeof(oldghost));
|
||||||
|
|
@ -2762,19 +2641,16 @@ void G_DoPlayDemo(char *defdemoname)
|
||||||
pflags_t pflags;
|
pflags_t pflags;
|
||||||
UINT32 randseed, followitem;
|
UINT32 randseed, followitem;
|
||||||
char msg[1024];
|
char msg[1024];
|
||||||
<<<<<<< HEAD
|
|
||||||
boolean spectator;
|
boolean spectator;
|
||||||
UINT8 slots[MAXPLAYERS], kartspeed[MAXPLAYERS], kartweight[MAXPLAYERS], numslots = 0;
|
UINT8 slots[MAXPLAYERS], kartspeed[MAXPLAYERS], kartweight[MAXPLAYERS], numslots = 0;
|
||||||
#if defined(SKIPERRORS) && !defined(DEVELOP)
|
#if defined(SKIPERRORS) && !defined(DEVELOP)
|
||||||
boolean skiperrors = false;
|
boolean skiperrors = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
G_InitDemoRewind();
|
|
||||||
=======
|
|
||||||
#ifdef OLD22DEMOCOMPAT
|
#ifdef OLD22DEMOCOMPAT
|
||||||
boolean use_old_demo_vars = false;
|
boolean use_old_demo_vars = false;
|
||||||
#endif
|
#endif
|
||||||
>>>>>>> srb2/next
|
|
||||||
|
G_InitDemoRewind();
|
||||||
|
|
||||||
skin[16] = '\0';
|
skin[16] = '\0';
|
||||||
follower[16] = '\0';
|
follower[16] = '\0';
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue