Revert "DUMPCONSISTENCY for the modern age"
This reverts commit 40dc3de468.
This commit is contained in:
parent
424a50832d
commit
4c8899b373
4 changed files with 24 additions and 53 deletions
|
|
@ -1456,20 +1456,25 @@ static void SV_SendSaveGame(INT32 node, boolean resending)
|
|||
freezetimeout[node] = I_GetTime() + jointimeout + length / 1024; // 1 extra tic for each kilobyte
|
||||
}
|
||||
|
||||
#ifdef DUMPCONSISTENCY
|
||||
#define TMPSAVENAME "badmath.sav"
|
||||
static consvar_t cv_dumpconsistency = CVAR_INIT ("dumpconsistency", "Off", CV_SAVE|CV_NETVAR, CV_OnOff, NULL);
|
||||
|
||||
static void CL_DumpConsistency(const char *file_name)
|
||||
static void SV_SavedGame(void)
|
||||
{
|
||||
size_t length;
|
||||
savebuffer_t save = {0};
|
||||
char tmpsave[1024];
|
||||
char tmpsave[256];
|
||||
|
||||
snprintf(tmpsave, sizeof(tmpsave), "%s" PATHSEP "%s", srb2home, file_name);
|
||||
if (!cv_dumpconsistency.value)
|
||||
return;
|
||||
|
||||
sprintf(tmpsave, "%s" PATHSEP TMPSAVENAME, srb2home);
|
||||
|
||||
// first save it in a malloced buffer
|
||||
if (P_SaveBufferAlloc(&save, NETSAVEGAMESIZE) == false)
|
||||
{
|
||||
CONS_Alert(CONS_ERROR, M_GetText("No more free memory for consistency dump\n"));
|
||||
CONS_Alert(CONS_ERROR, M_GetText("No more free memory for savegame\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1479,18 +1484,21 @@ static void CL_DumpConsistency(const char *file_name)
|
|||
if (length > NETSAVEGAMESIZE)
|
||||
{
|
||||
P_SaveBufferFree(&save);
|
||||
I_Error("Consistency dump buffer overrun");
|
||||
I_Error("Savegame buffer overrun");
|
||||
}
|
||||
|
||||
// then save it!
|
||||
if (!FIL_WriteFile(tmpsave, save.buffer, length))
|
||||
CONS_Printf(M_GetText("Didn't save %s for consistency dump"), tmpsave);
|
||||
CONS_Printf(M_GetText("Didn't save %s for netgame"), tmpsave);
|
||||
|
||||
P_SaveBufferFree(&save);
|
||||
}
|
||||
|
||||
#undef TMPSAVENAME
|
||||
#endif
|
||||
#define TMPSAVENAME "$$$.sav"
|
||||
|
||||
|
||||
static void CL_LoadReceivedSavegame(boolean reloading)
|
||||
{
|
||||
savebuffer_t save = {0};
|
||||
|
|
@ -1591,12 +1599,8 @@ static void CL_LoadReceivedSavegame(boolean reloading)
|
|||
|
||||
static void CL_ReloadReceivedSavegame(void)
|
||||
{
|
||||
if (cv_dumpconsistency.value)
|
||||
{
|
||||
CL_DumpConsistency("TEMP.consdump");
|
||||
}
|
||||
|
||||
INT32 i;
|
||||
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
LUA_InvalidatePlayer(&players[i]);
|
||||
|
|
@ -1621,26 +1625,6 @@ static void CL_ReloadReceivedSavegame(void)
|
|||
cl_redownloadinggamestate = false;
|
||||
|
||||
CONS_Printf(M_GetText("Game state reloaded\n"));
|
||||
|
||||
if (cv_dumpconsistency.value)
|
||||
{
|
||||
// This is dumb, but we want the file names
|
||||
// to be pairable together with the server's
|
||||
// version, and gametic being randomly off
|
||||
// is a deal breaker.
|
||||
char dump_name[1024];
|
||||
snprintf(
|
||||
dump_name, sizeof(dump_name),
|
||||
"%s_%u_%s-client.consdump",
|
||||
server_context,
|
||||
gametic,
|
||||
player_names[consoleplayer]
|
||||
);
|
||||
if (FIL_RenameFile("TEMP.consdump", dump_name) == false)
|
||||
{
|
||||
CONS_Alert(CONS_WARNING, "Failed to rename temporary consdump file.\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void SendAskInfo(INT32 node)
|
||||
|
|
@ -3646,6 +3630,9 @@ static void Got_KickCmd(UINT8 **p, INT32 playernum)
|
|||
|
||||
if (playernode[pnum] == playernode[consoleplayer])
|
||||
{
|
||||
#ifdef DUMPCONSISTENCY
|
||||
if (msg == KICK_MSG_CON_FAIL) SV_SavedGame();
|
||||
#endif
|
||||
LUA_HookBool(false, HOOK(GameQuit)); //Lua hooks handled differently now
|
||||
|
||||
D_QuitNetGame();
|
||||
|
|
@ -3890,7 +3877,9 @@ void D_ClientServerInit(void)
|
|||
RegisterNetXCmd(XD_ADDPLAYER, Got_AddPlayer);
|
||||
RegisterNetXCmd(XD_REMOVEPLAYER, Got_RemovePlayer);
|
||||
RegisterNetXCmd(XD_ADDBOT, Got_AddBot);
|
||||
#ifdef DUMPCONSISTENCY
|
||||
CV_RegisterVar(&cv_dumpconsistency);
|
||||
#endif
|
||||
D_LoadBan(false);
|
||||
|
||||
gametic = 0;
|
||||
|
|
@ -5561,19 +5550,6 @@ static void PT_CanReceiveGamestate(SINT8 node)
|
|||
|
||||
CONS_Printf(M_GetText("Resending game state to %s...\n"), player_names[nodetoplayer[node]]);
|
||||
|
||||
if (cv_dumpconsistency.value)
|
||||
{
|
||||
char dump_name[1024];
|
||||
snprintf(
|
||||
dump_name, sizeof(dump_name),
|
||||
"%s_%u_%s-server.consdump",
|
||||
server_context,
|
||||
gametic,
|
||||
player_names[nodetoplayer[node]]
|
||||
);
|
||||
CL_DumpConsistency(dump_name);
|
||||
}
|
||||
|
||||
SV_SendSaveGame(node, true); // Resend a complete game state
|
||||
resendingsavegame[node] = true;
|
||||
}
|
||||
|
|
@ -5715,8 +5691,8 @@ static void PT_WillResendGamestate(SINT8 node)
|
|||
{
|
||||
(void)node;
|
||||
|
||||
char tmpsave[256];
|
||||
doomdata_t *netbuffer = DOOMCOM_DATA(doomcom);
|
||||
char tmpsave[1024];
|
||||
|
||||
if (server || cl_redownloadinggamestate)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -482,6 +482,9 @@ extern int compuncommitted;
|
|||
/// Allows gravity changes in netgames, no questions asked.
|
||||
//#define NETGAME_GRAVITY
|
||||
|
||||
/// Dumps the contents of a network save game upon consistency failure for debugging.
|
||||
//#define DUMPCONSISTENCY
|
||||
|
||||
/// Allow loading of savegames between different versions of the game.
|
||||
/// \note XMOD port.
|
||||
/// Most modifications should probably enable this.
|
||||
|
|
|
|||
|
|
@ -319,12 +319,6 @@ boolean FIL_ConvertTextFileToBinary(const char *textfilename, const char *binfil
|
|||
return success;
|
||||
}
|
||||
|
||||
boolean FIL_RenameFile(char const *old_name, char const *new_name)
|
||||
{
|
||||
int result = rename(old_name, new_name);
|
||||
return (result == 0);
|
||||
}
|
||||
|
||||
/** Check if the filename exists
|
||||
*
|
||||
* \param name Filename to check.
|
||||
|
|
|
|||
|
|
@ -52,8 +52,6 @@ size_t FIL_ReadFileTag(char const *name, UINT8 **buffer, INT32 tag);
|
|||
|
||||
boolean FIL_ConvertTextFileToBinary(const char *textfilename, const char *binfilename);
|
||||
|
||||
boolean FIL_RenameFile(const char *old_name, const char *new_name);
|
||||
|
||||
boolean FIL_FileExists(const char *name);
|
||||
boolean FIL_WriteFileOK(char const *name);
|
||||
boolean FIL_ReadFileOK(char const *name);
|
||||
|
|
|
|||
Loading…
Reference in a new issue