mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 00:42:08 +00:00
- engine updates from GZDoom.
This commit is contained in:
parent
a9ca6c8081
commit
0795c79a3a
10 changed files with 46 additions and 23 deletions
|
@ -41,7 +41,6 @@
|
|||
#include "utf8.h"
|
||||
#include "m_joy.h"
|
||||
#include "vm.h"
|
||||
#include "cheathandler.h"
|
||||
#include "gamestate.h"
|
||||
|
||||
bool G_Responder(event_t* ev);
|
||||
|
|
|
@ -4,4 +4,5 @@
|
|||
SystemCallbacks *sysCallbacks;
|
||||
FString endoomName;
|
||||
bool batchrun;
|
||||
float menuBlurAmount;
|
||||
|
||||
|
|
|
@ -32,3 +32,4 @@ struct WadStuff
|
|||
|
||||
extern FString endoomName;
|
||||
extern bool batchrun;
|
||||
extern float menuBlurAmount;
|
||||
|
|
|
@ -1039,6 +1039,9 @@ xx(AttackZOffset)
|
|||
xx(SpawnMask)
|
||||
xx(ScoreIcon)
|
||||
xx(ViewHeight)
|
||||
xx(ViewAngle)
|
||||
xx(ViewPitch)
|
||||
xx(ViewRoll)
|
||||
xx(FallingScreamMinSpeed)
|
||||
xx(FallingScreamMaxSpeed)
|
||||
xx(GruntSpeed)
|
||||
|
@ -1072,3 +1075,4 @@ xx(PlayerSkin)
|
|||
xx(NewPlayerMenu)
|
||||
xx(AltHud)
|
||||
xx(GameScreen)
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include "templates.h"
|
||||
#include "palettecontainer.h"
|
||||
#include "files.h"
|
||||
#include "c_dispatch.h"
|
||||
|
||||
PaletteContainer GPalette;
|
||||
FColorMatcher ColorMatcher;
|
||||
|
@ -821,15 +820,4 @@ bool FRemapTable::AddColors(int start, int count, const uint8_t*colors, int tran
|
|||
|
||||
}
|
||||
|
||||
CCMD(exportpalette)
|
||||
{
|
||||
FILE* f = fopen("palette.pal", "wb");
|
||||
if (!f) return;
|
||||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
fputc(GPalette.BaseColors[i].r, f);
|
||||
fputc(GPalette.BaseColors[i].g, f);
|
||||
fputc(GPalette.BaseColors[i].b, f);
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
|
|
|
@ -676,6 +676,7 @@ void FSerializer::ReadObjects(bool hubtravel)
|
|||
{
|
||||
Printf(TEXTCOLOR_RED "Failed to restore all objects in savegame\n");
|
||||
mErrors++;
|
||||
mObjectErrors++;
|
||||
}
|
||||
}
|
||||
catch(...)
|
||||
|
|
|
@ -182,6 +182,7 @@ public:
|
|||
}
|
||||
|
||||
int mErrors = 0;
|
||||
int mObjectErrors = 0;
|
||||
};
|
||||
|
||||
FSerializer& Serialize(FSerializer& arc, const char* key, char& value, char* defval);
|
||||
|
@ -242,7 +243,7 @@ FSerializer &Serialize(FSerializer &arc, const char *key, TArray<T, TT> &value,
|
|||
template<int size>
|
||||
FSerializer& Serialize(FSerializer& arc, const char* key, FixedBitArray<size>& value, FixedBitArray<size>* def)
|
||||
{
|
||||
return arc.Array(key, value.Storage(), def ? def->Storage() : nullptr, value.StorageSize());
|
||||
return arc.SerializeMemory(key, value.Storage(), value.StorageSize());
|
||||
}
|
||||
|
||||
template<> FSerializer& Serialize(FSerializer& arc, const char* key, PClass*& clst, PClass** def);
|
||||
|
|
|
@ -226,15 +226,44 @@ struct FReader
|
|||
//==========================================================================
|
||||
|
||||
template<class T>
|
||||
FSerializer &SerializePointer(FSerializer &arc, const char *key, T *&value, T **defval, T *base)
|
||||
FSerializer &SerializePointer(FSerializer &arc, const char *key, T *&value, T **defval, T *base, const int64_t count)
|
||||
{
|
||||
assert(base != nullptr);
|
||||
assert(count > 0);
|
||||
if (arc.isReading() || !arc.w->inObject() || defval == nullptr || value != *defval)
|
||||
{
|
||||
int64_t vv = value == nullptr ? -1 : value - base;
|
||||
int64_t vv = -1;
|
||||
if (value != nullptr)
|
||||
{
|
||||
vv = value - base;
|
||||
if (vv < 0 || vv >= count)
|
||||
{
|
||||
Printf("Trying to serialize out-of-bounds array value with key '%s', index = %lli, size = %lli\n", key, vv, count);
|
||||
vv = -1;
|
||||
}
|
||||
}
|
||||
Serialize(arc, key, vv, nullptr);
|
||||
value = vv < 0 ? nullptr : base + vv;
|
||||
if (vv == -1)
|
||||
value = nullptr;
|
||||
else if (vv < 0 || vv >= count)
|
||||
{
|
||||
Printf("Trying to serialize out-of-bounds array value with key '%s', index = %lli, size = %lli\n", key, vv, count);
|
||||
value = nullptr;
|
||||
}
|
||||
else
|
||||
value = base + vv;
|
||||
}
|
||||
return arc;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
FSerializer &SerializePointer(FSerializer &arc, const char *key, T *&value, T **defval, TArray<T> &array)
|
||||
{
|
||||
if (array.Size() == 0)
|
||||
{
|
||||
Printf("Trying to serialize a value with key '%s' from empty array\n", key);
|
||||
return arc;
|
||||
}
|
||||
return SerializePointer(arc, key, value, defval, array.Data(), array.Size());
|
||||
}
|
||||
|
||||
|
|
|
@ -132,6 +132,9 @@ inline uint64_t rdtsc()
|
|||
}
|
||||
while (upper != temp);
|
||||
return (static_cast<unsigned long long>(upper) << 32) | lower;
|
||||
#elif defined __aarch64__
|
||||
// TODO: Implement and test on ARM64
|
||||
return 0;
|
||||
#else // i386
|
||||
if (CPU.bRDTSC)
|
||||
{
|
||||
|
|
|
@ -93,10 +93,6 @@ TArray<TArray<FString>> FStringTable::parseCSV(const TArray<uint8_t> &buffer)
|
|||
|
||||
for (size_t i = 0; i < bufLength; ++i)
|
||||
{
|
||||
if (buffer[i] == '#')
|
||||
{
|
||||
int a = 0;
|
||||
}
|
||||
if (buffer[i] == '"')
|
||||
{
|
||||
// Double quotes inside a quoted string count as an escaped quotation mark.
|
||||
|
|
Loading…
Reference in a new issue