CStringW DebugBasicSerialize( LuaObject& obj ) { if ( obj.Type() == LUA_TNUMBER ) { CStringW str; str.Format( L"%.16g", obj.GetNumber() ); return str; } else if ( obj.Type() == LUA_TBOOLEAN ) { return obj.GetBoolean() ? L"true" : L"false"; } else if (obj.Type() == LUA_TSTRING) { CString str = obj.GetString(); if ( str == "!!!NIL!!!" ) return L"nil"; else if ( str == "!!!FUNCTION!!!" ) return L"{function}"; else if ( str == "!!!CFUNCTION!!!" ) return L"{cfunction}"; else if ( str == "!!!USERDATA!!!" ) return L"{userdata}"; else if ( str == "!!!TABLE!!!" ) return L"{table}"; return CStringW(str); } #if LUA_WIDESTRING else if (obj.Type() == LUA_TWSTRING) { return CStringW((wchar_t*)obj.GetWString()); } #endif // LUA_WIDESTRING else return _T("Unknown"); }