mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 14:51:46 +00:00
- Fixed: The conversion of the strings in wbstartstruct_t to FStrings
caused crashes when reloading the hub data. SVN r1181 (trunk)
This commit is contained in:
parent
72fe857acb
commit
39bb50376a
3 changed files with 32 additions and 6 deletions
|
@ -1,4 +1,6 @@
|
|||
August 21, 2008 (Changes by Graf Zahl)
|
||||
- Fixed: The conversion of the strings in wbstartstruct_t to FStrings
|
||||
caused crashes when reloading the hub data.
|
||||
- Replaced WALLF_AUTOCONTRAST with WALLF_NOFAKECONTRAST so that the
|
||||
default setting for the flags is 0.
|
||||
- Added: doom2day's smoothlighting
|
||||
|
|
|
@ -50,7 +50,31 @@
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
TArray<wbstartstruct_t> hubdata;
|
||||
struct FHubInfo
|
||||
{
|
||||
int finished_ep;
|
||||
|
||||
int maxkills;
|
||||
int maxitems;
|
||||
int maxsecret;
|
||||
int maxfrags;
|
||||
|
||||
wbplayerstruct_s plyr[MAXPLAYERS];
|
||||
|
||||
FHubInfo &operator=(const wbstartstruct_t &wbs)
|
||||
{
|
||||
finished_ep = wbs.finished_ep;
|
||||
maxkills = wbs.maxkills;
|
||||
maxsecret= wbs.maxsecret;
|
||||
maxitems = wbs.maxitems;
|
||||
maxfrags = wbs.maxfrags;
|
||||
memcpy(plyr, wbs.plyr, sizeof(plyr));
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
TArray<FHubInfo> hubdata;
|
||||
|
||||
void G_LeavingHub(int mode, cluster_info_t * cluster, wbstartstruct_t * wbs)
|
||||
{
|
||||
|
@ -68,13 +92,13 @@ void G_LeavingHub(int mode, cluster_info_t * cluster, wbstartstruct_t * wbs)
|
|||
}
|
||||
if (i==hubdata.Size())
|
||||
{
|
||||
hubdata.Push(*wbs);
|
||||
hubdata[hubdata.Reserve(1)] = *wbs;
|
||||
}
|
||||
|
||||
hubdata[i].finished_ep=level.levelnum;
|
||||
if (!multiplayer && !deathmatch)
|
||||
{
|
||||
// The player counters don't work in hubs!
|
||||
// The player counters don't work in hubs
|
||||
hubdata[i].plyr[0].skills=level.killed_monsters;
|
||||
hubdata[i].plyr[0].sitems=level.found_items;
|
||||
hubdata[i].plyr[0].ssecret=level.found_secrets;
|
||||
|
@ -131,11 +155,11 @@ static void G_SerializeHub(FArchive & arc)
|
|||
arc << i;
|
||||
if (i>0)
|
||||
{
|
||||
if (arc.IsStoring()) arc.Write(&hubdata[0], i * sizeof(wbstartstruct_t));
|
||||
if (arc.IsStoring()) arc.Write(&hubdata[0], i * sizeof(FHubInfo));
|
||||
else
|
||||
{
|
||||
hubdata.Resize(i);
|
||||
arc.Read(&hubdata[0], i * sizeof(wbstartstruct_t));
|
||||
arc.Read(&hubdata[0], i * sizeof(FHubInfo));
|
||||
}
|
||||
}
|
||||
else hubdata.Clear();
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
// SAVESIG should match SAVEVER.
|
||||
|
||||
// MINSAVEVER is the minimum level snapshot version that can be loaded.
|
||||
#define MINSAVEVER 1179
|
||||
#define MINSAVEVER 1181
|
||||
|
||||
#if SVN_REVISION_NUMBER < MINSAVEVER
|
||||
// Never write a savegame with a version lower than what we need
|
||||
|
|
Loading…
Reference in a new issue