From 3e3bad9c9c2bd41137345fac24c1545d2d01bd8a Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Sun, 27 Feb 2005 00:22:13 +0000 Subject: [PATCH] fix LuaData becoming incorrectly set after a reset --- stepmania/src/LuaReference.cpp | 9 ++++++++- stepmania/src/LuaReference.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/stepmania/src/LuaReference.cpp b/stepmania/src/LuaReference.cpp index 91b481b8df..06130a398d 100644 --- a/stepmania/src/LuaReference.cpp +++ b/stepmania/src/LuaReference.cpp @@ -185,11 +185,18 @@ void LuaData::LoadFromString( const CString &s ) void LuaData::BeforeReset() { - m_sSerializedData = Serialize(); + /* If we're unset, Register() should leave us unset, not set us to LUA_REFNIL. */ + m_bWasSet = IsSet(); + + if( m_bWasSet ) + m_sSerializedData = Serialize(); } void LuaData::Register() { + if( !m_bWasSet ) + return; + LoadFromString( m_sSerializedData ); m_sSerializedData.erase( m_sSerializedData.begin(), m_sSerializedData.end() ); } diff --git a/stepmania/src/LuaReference.h b/stepmania/src/LuaReference.h index 25f7ba6b29..4dc2a1b99d 100644 --- a/stepmania/src/LuaReference.h +++ b/stepmania/src/LuaReference.h @@ -77,6 +77,7 @@ protected: virtual void Register(); CString m_sSerializedData; + bool m_bWasSet; }; #endif