This commit is contained in:
raa-eruanna 2016-10-17 01:13:16 -04:00
commit 4ec2db43a4
12 changed files with 28 additions and 23 deletions

View File

@ -497,7 +497,7 @@ DFsSection *FParser::looping_section()
if(!best || (current->start_index > best->start_index)) if(!best || (current->start_index > best->start_index))
best = current; // save it best = current; // save it
} }
current = current->next; current = current->next;
} }
} }

View File

@ -331,6 +331,10 @@ void FRandom::StaticReadRNGState(FSerializer &arc)
FRandom *rng; FRandom *rng;
arc("rngseed", rngseed); arc("rngseed", rngseed);
// Call StaticClearRandom in order to ensure that SFMT is initialized
FRandom::StaticClearRandom ();
if (arc.BeginArray("rngs")) if (arc.BeginArray("rngs"))
{ {
int count = arc.ArraySize(); int count = arc.ArraySize();

View File

@ -1616,7 +1616,7 @@ void FBehavior::StaticSerializeModuleStates (FSerializer &arc)
{ {
if (arc.isReading()) if (arc.isReading())
{ {
int modnum = arc.ArraySize(); auto modnum = arc.ArraySize();
if (modnum != StaticModules.Size()) if (modnum != StaticModules.Size())
{ {
I_Error("Level was saved with a different number of ACS modules. (Have %d, save has %d)", StaticModules.Size(), modnum); I_Error("Level was saved with a different number of ACS modules. (Have %d, save has %d)", StaticModules.Size(), modnum);
@ -2933,7 +2933,7 @@ void DACSThinker::Serialize(FSerializer &arc)
if (arc.BeginArray("runningscripts")) if (arc.BeginArray("runningscripts"))
{ {
auto cnt = arc.ArraySize(); auto cnt = arc.ArraySize();
for (int i = 0; i < cnt; i++) for (unsigned i = 0; i < cnt; i++)
{ {
SavingRunningscript srs; SavingRunningscript srs;
arc(nullptr, srs); arc(nullptr, srs);

View File

@ -184,7 +184,7 @@ void DCeiling::Tick ()
case DCeiling::ceilLowerAndCrush: case DCeiling::ceilLowerAndCrush:
if (m_CrushMode == ECrushMode::crushSlowdown) if (m_CrushMode == ECrushMode::crushSlowdown)
m_Speed = 1. / 8; m_Speed = 1. / 8;
break; break;
default: default:
break; break;

View File

@ -890,10 +890,10 @@ void G_SerializeLevel(FSerializer &arc, bool hubload)
// deep down in the deserializer or just a crash if the few insufficient safeguards were not triggered. // deep down in the deserializer or just a crash if the few insufficient safeguards were not triggered.
BYTE chk[16] = { 0 }; BYTE chk[16] = { 0 };
arc.Array("checksum", chk, 16); arc.Array("checksum", chk, 16);
if (arc.GetSize("linedefs") != numlines || if (arc.GetSize("linedefs") != (unsigned)numlines ||
arc.GetSize("sidedefs") != numsides || arc.GetSize("sidedefs") != (unsigned)numsides ||
arc.GetSize("sectors") != numsectors || arc.GetSize("sectors") != (unsigned)numsectors ||
arc.GetSize("polyobjs") != po_NumPolyobjs || arc.GetSize("polyobjs") != (unsigned)po_NumPolyobjs ||
memcmp(chk, level.md5, 16)) memcmp(chk, level.md5, 16))
{ {
I_Error("Savegame is from a different level"); I_Error("Savegame is from a different level");

View File

@ -392,7 +392,8 @@ int FZipLump::FillCache()
int FZipLump::GetFileOffset() int FZipLump::GetFileOffset()
{ {
if (Method != METHOD_STORED) return -1; if (Method != METHOD_STORED) return -1;
if (Flags & LUMPFZIP_NEEDFILESTART) SetLumpAddress(); return Position; if (Flags & LUMPFZIP_NEEDFILESTART) SetLumpAddress();
return Position;
} }
//========================================================================== //==========================================================================

View File

@ -381,7 +381,7 @@ void FSerializer::Close()
// //
//========================================================================== //==========================================================================
int FSerializer::ArraySize() unsigned FSerializer::ArraySize()
{ {
if (r != nullptr && r->mObjects.Last().mObject->IsArray()) if (r != nullptr && r->mObjects.Last().mObject->IsArray())
{ {
@ -709,7 +709,7 @@ FSerializer &FSerializer::Sprite(const char *key, int32_t &spritenum, int32_t *d
{ {
if (val->IsString()) if (val->IsString())
{ {
int name = *reinterpret_cast<const int*>(val->GetString()); uint32_t name = *reinterpret_cast<const uint32_t*>(val->GetString());
for (auto hint = NumStdSprites; hint-- != 0; ) for (auto hint = NumStdSprites; hint-- != 0; )
{ {
if (sprites[hint].dwName == name) if (sprites[hint].dwName == name)

View File

@ -60,7 +60,7 @@ public:
FWriter *w = nullptr; FWriter *w = nullptr;
FReader *r = nullptr; FReader *r = nullptr;
int ArraySize(); unsigned ArraySize();
void WriteKey(const char *key); void WriteKey(const char *key);
void WriteObjects(); void WriteObjects();

View File

@ -145,8 +145,8 @@ HMISong::HMISong (FileReader &reader, EMidiDevice type, const char *args)
MusHeader = new BYTE[len]; MusHeader = new BYTE[len];
SongLen = len; SongLen = len;
NumTracks = 0; NumTracks = 0;
if (reader.Read(MusHeader, len) != len) if (reader.Read(MusHeader, len) != len)
return; return;
// Do some validation of the MIDI file // Do some validation of the MIDI file
if (memcmp(MusHeader, HMI_SONG_MAGIC, sizeof(HMI_SONG_MAGIC)) == 0) if (memcmp(MusHeader, HMI_SONG_MAGIC, sizeof(HMI_SONG_MAGIC)) == 0)

View File

@ -114,10 +114,10 @@ MIDISong2::MIDISong2 (FileReader &reader, EMidiDevice type, const char *args)
return; return;
} }
#endif #endif
SongLen = reader.GetLength(); SongLen = reader.GetLength();
MusHeader = new BYTE[SongLen]; MusHeader = new BYTE[SongLen];
if (reader.Read(MusHeader, SongLen) != SongLen) if (reader.Read(MusHeader, SongLen) != SongLen)
return; return;
// Do some validation of the MIDI file // Do some validation of the MIDI file
if (MusHeader[4] != 0 || MusHeader[5] != 0 || MusHeader[6] != 0 || MusHeader[7] != 6) if (MusHeader[4] != 0 || MusHeader[5] != 0 || MusHeader[6] != 0 || MusHeader[7] != 6)

View File

@ -117,10 +117,10 @@ XMISong::XMISong (FileReader &reader, EMidiDevice type, const char *args)
return; return;
} }
#endif #endif
SongLen = reader.GetLength(); SongLen = reader.GetLength();
MusHeader = new BYTE[SongLen]; MusHeader = new BYTE[SongLen];
if (reader.Read(MusHeader, SongLen) != SongLen) if (reader.Read(MusHeader, SongLen) != SongLen)
return; return;
// Find all the songs in this file. // Find all the songs in this file.
NumSongs = FindXMIDforms(MusHeader, SongLen, NULL); NumSongs = FindXMIDforms(MusHeader, SongLen, NULL);

View File

@ -91,7 +91,7 @@ static const FLOP FxFlops[] =
// //
//========================================================================== //==========================================================================
FCompileContext::FCompileContext(PClassActor *cls, PPrototype *ret) : Class(cls), ReturnProto(ret) FCompileContext::FCompileContext(PClassActor *cls, PPrototype *ret) : ReturnProto(ret), Class(cls)
{ {
} }
@ -959,7 +959,7 @@ ExpEmit FxUnaryNotBoolean::Emit(VMFunctionBuilder *build)
//========================================================================== //==========================================================================
FxPreIncrDecr::FxPreIncrDecr(FxExpression *base, int token) FxPreIncrDecr::FxPreIncrDecr(FxExpression *base, int token)
: FxExpression(base->ScriptPosition), Base(base), Token(token) : FxExpression(base->ScriptPosition), Token(token), Base(base)
{ {
AddressRequested = false; AddressRequested = false;
AddressWritable = false; AddressWritable = false;
@ -1045,7 +1045,7 @@ ExpEmit FxPreIncrDecr::Emit(VMFunctionBuilder *build)
//========================================================================== //==========================================================================
FxPostIncrDecr::FxPostIncrDecr(FxExpression *base, int token) FxPostIncrDecr::FxPostIncrDecr(FxExpression *base, int token)
: FxExpression(base->ScriptPosition), Base(base), Token(token) : FxExpression(base->ScriptPosition), Token(token), Base(base)
{ {
} }