From bb988d1dd322742b713a06a52ba3ebdc570fd3af Mon Sep 17 00:00:00 2001 From: Sally Coolatta <tehrealsalt@gmail.com> Date: Wed, 12 Aug 2020 18:45:55 -0400 Subject: [PATCH] Minor fixes to g_demo --- src/g_demo.c | 20 ++++++++------------ src/g_demo.h | 1 + src/k_collide.c | 12 ++++++------ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index 71f23971e3..e7cb87d4ae 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -39,9 +39,12 @@ #include "lua_hook.h" #include "md5.h" // demo checksums -#include "dehacked.h" // get_number (for ghost thok) +// SRB2Kart #include "lua_script.h" // LUA_ArchiveDemo and LUA_UnArchiveDemo +#include "k_kart.h" +#include "k_battle.h" + static CV_PossibleValue_t recordmultiplayerdemos_cons_t[] = {{0, "Disabled"}, {1, "Manual Save"}, {2, "Auto Save"}, {0, NULL}}; consvar_t cv_recordmultiplayerdemos = {"netdemo_record", "Manual Save", CV_SAVE, recordmultiplayerdemos_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -54,7 +57,8 @@ tic_t demostarttime; // for comparative timing purposes static char demoname[128]; static UINT8 *demobuffer = NULL; -static UINT8 *demo_p, *demotime_p; +static UINT8 *demotime_p, *demoinfo_p; +UINT8 *demo_p; static UINT8 *demoend; static UINT8 demoflags; boolean demosynced = true; // console warning message @@ -89,14 +93,6 @@ static struct { // Your naming conventions are stupid and useless. // There is no conflict here. -typedef struct demoghost { - UINT8 checksum[16]; - UINT8 *buffer, *p, fadein; - UINT16 color; - UINT16 version; - mobj_t oldmo, *mo; - struct demoghost *next; -} demoghost; demoghost *ghosts = NULL; // @@ -170,7 +166,7 @@ static ticcmd_t oldcmd[MAXPLAYERS]; #define FZT_SCALE 0x10 // different scale to object // spare FZT slots 0x20 to 0x80 -static mobj_t oldmetal, oldghost; +static mobj_t oldmetal, oldghost[MAXPLAYERS]; void G_SaveMetal(UINT8 **buffer) { @@ -326,7 +322,7 @@ void G_ReadDemoExtraData(void) { players[p].spectator = true; if (players[p].mo) - P_DamageMobj(players[p].mo, NULL, NULL, 10000); + P_DamageMobj(players[p].mo, NULL, NULL, 1, DMG_INSTAKILL); else players[p].playerstate = PST_REBORN; } diff --git a/src/g_demo.h b/src/g_demo.h index af4e6ea906..7517e92ffb 100644 --- a/src/g_demo.h +++ b/src/g_demo.h @@ -115,6 +115,7 @@ extern UINT8 demo_writerng; #define DXD_NAME 0x04 // name changed #define DXD_COLOR 0x08 // color changed #define DXD_PLAYSTATE 0x10 // state changed between playing, spectating, or not in-game +#define DXD_FOLLOWER 0x20 // follower was changed #define DXD_PST_PLAYING 0x01 #define DXD_PST_SPECTATING 0x02 diff --git a/src/k_collide.c b/src/k_collide.c index ecaa9bd8ea..28c85506b1 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -45,7 +45,7 @@ boolean K_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2) else { // Player Damage - P_DamageMobj(t2, t1, t1->target, 1); + P_DamageMobj(t2, t1, t1->target, 1, 0); K_KartBouncing(t2, t1, false, false); S_StartSound(t2, sfx_s3k7b); } @@ -87,7 +87,7 @@ boolean K_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2) else if (t2->flags & MF_SHOOTABLE) { // Shootable damage - P_DamageMobj(t2, t2, t1->target, 1); + P_DamageMobj(t2, t1, t1->target, 1, 0); damageitem = true; } @@ -177,7 +177,7 @@ boolean K_BananaBallhogCollide(mobj_t *t1, mobj_t *t2) else if (t2->flags & MF_SHOOTABLE) { // Shootable damage - P_DamageMobj(t2, t2, t1->target, 1); + P_DamageMobj(t2, t1, t1->target, 1, 0); damageitem = true; } @@ -316,7 +316,7 @@ boolean K_MineCollide(mobj_t *t1, mobj_t *t2) // Bomb death P_KillMobj(t1, t2, t2); // Shootable damage - P_DamageMobj(t2, t2, t1->target, 1); + P_DamageMobj(t2, t1, t1->target, 1, 0); } return true; @@ -337,7 +337,7 @@ boolean K_MineExplosionCollide(mobj_t *t1, mobj_t *t2) else if (t2->flags & MF_SHOOTABLE) { // Shootable damage - P_DamageMobj(t2, t2, t1->target, 1); + P_DamageMobj(t2, t1, t1->target, 1, 0); } return true; @@ -358,7 +358,7 @@ boolean K_KitchenSinkCollide(mobj_t *t1, mobj_t *t2) HU_SetCEchoDuration(5); HU_DoCEcho(va("%s\\was hit by a kitchen sink.\\\\\\\\", player_names[t2->player-players])); I_OutputMsg("%s was hit by a kitchen sink.\n", player_names[t2->player-players]); - P_DamageMobj(t2, t1, t1->target, 10000); + P_DamageMobj(t2, t1, t1->target, 1, DMG_INSTAKILL); P_KillMobj(t1, t2, t2); } else if (t2->flags & MF_SHOOTABLE) -- GitLab