- Backend update from Raze.
Mainly optimizations for the sound system and texture manager.
This commit is contained in:
parent
79a38f1f3a
commit
941c0850ba
30 changed files with 323 additions and 261 deletions
|
|
@ -99,106 +99,23 @@ void VersionInfo::operator=(const char *string)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
FScanner::FScanner()
|
||||
FScanner::FScanner(TMap<FName, Symbol>* extsymbols) : symbols(extsymbols? *extsymbols : mysymbols)
|
||||
{
|
||||
ScriptOpen = false;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FScanner Destructor
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FScanner::~FScanner()
|
||||
{
|
||||
// Humm... Nothing to do in here.
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FScanner Copy Constructor
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FScanner::FScanner(const FScanner &other)
|
||||
{
|
||||
ScriptOpen = false;
|
||||
*this = other;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FScanner OpenLumpNum Constructor
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FScanner::FScanner(int lumpnum)
|
||||
FScanner::FScanner(int lumpnum, TMap<FName, Symbol>* extsymbols) : symbols(extsymbols ? *extsymbols : mysymbols)
|
||||
{
|
||||
ScriptOpen = false;
|
||||
OpenLumpNum(lumpnum);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FScanner :: operator =
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
FScanner &FScanner::operator=(const FScanner &other)
|
||||
{
|
||||
if (this == &other)
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
if (!other.ScriptOpen)
|
||||
{
|
||||
Close();
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Copy protected members
|
||||
ScriptOpen = true;
|
||||
ScriptName = other.ScriptName;
|
||||
ScriptBuffer = other.ScriptBuffer;
|
||||
ScriptPtr = other.ScriptPtr;
|
||||
ScriptEndPtr = other.ScriptEndPtr;
|
||||
AlreadyGot = other.AlreadyGot;
|
||||
AlreadyGotLine = other.AlreadyGotLine;
|
||||
LastGotToken = other.LastGotToken;
|
||||
LastGotPtr = other.LastGotPtr;
|
||||
LastGotLine = other.LastGotLine;
|
||||
CMode = other.CMode;
|
||||
Escape = other.Escape;
|
||||
StateMode = other.StateMode;
|
||||
StateOptions = other.StateOptions;
|
||||
|
||||
// Copy public members
|
||||
if (other.String == other.StringBuffer)
|
||||
{
|
||||
memcpy(StringBuffer, other.StringBuffer, sizeof(StringBuffer));
|
||||
BigStringBuffer = "";
|
||||
String = StringBuffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Past practice means the string buffer must be writeable, which
|
||||
// removes some of the benefit from using an FString to store
|
||||
// the big string buffer.
|
||||
BigStringBuffer = other.BigStringBuffer;
|
||||
String = BigStringBuffer.LockBuffer();
|
||||
}
|
||||
StringLen = other.StringLen;
|
||||
TokenType = other.TokenType;
|
||||
Number = other.Number;
|
||||
Float = other.Float;
|
||||
Line = other.Line;
|
||||
End = other.End;
|
||||
Crossed = other.Crossed;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FScanner :: Open
|
||||
|
|
@ -1229,7 +1146,7 @@ void FScanner::AddSymbol(const char *name, int64_t value)
|
|||
{
|
||||
Symbol sym;
|
||||
sym.tokenType = TK_IntConst;
|
||||
sym.Number = int(value);
|
||||
sym.Number = value;
|
||||
sym.Float = double(value);
|
||||
symbols.Insert(name, sym);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue