Merge branch 'demo-fix-custom-maps' into 'master'

Search for map and gametype after addons are loaded when watching replays

See merge request KartKrew/Kart!1211
This commit is contained in:
Oni 2023-04-30 23:44:45 +00:00
commit 82a4af03e2

View file

@ -3207,24 +3207,11 @@ void G_DoPlayDemo(const char *defdemoname)
}
demobuf.p += 4; // "PLAY"
READSTRINGN(demobuf.p, mapname, sizeof(mapname)); // gamemap
gamemap = G_MapNumber(mapname)+1;
demobuf.p += 16; // mapmd5
demoflags = READUINT8(demobuf.p);
READSTRINGN(demobuf.p, gtname, sizeof(gtname)); // gametype
i = G_GetGametypeByName(gtname);
if (i < 0)
{
snprintf(msg, 1024, M_GetText("%s is in a gametype that is not currently loaded and cannot be played.\n"), pdemoname);
CONS_Alert(CONS_ERROR, "%s", msg);
M_StartMessage(msg, NULL, MM_NOTHING);
Z_Free(pdemoname);
Z_Free(demobuf.buffer);
demo.playback = false;
return;
}
G_SetGametype(i);
numlaps = READUINT8(demobuf.p);
@ -3283,6 +3270,21 @@ void G_DoPlayDemo(const char *defdemoname)
}
}
gamemap = G_MapNumber(mapname)+1;
i = G_GetGametypeByName(gtname);
if (i < 0)
{
snprintf(msg, 1024, M_GetText("%s is in a gametype that is not currently loaded and cannot be played.\n"), pdemoname);
CONS_Alert(CONS_ERROR, "%s", msg);
M_StartMessage(msg, NULL, MM_NOTHING);
Z_Free(pdemoname);
Z_Free(demobuf.buffer);
demo.playback = false;
return;
}
G_SetGametype(i);
// character list
demo.skinlist = G_LoadDemoSkins(&demobuf, &demo.numskins, true);
if (!demo.skinlist)