mirror of https://github.com/OpenRCT2/OpenRCT2.git
Fix #6300: Saving track triggers assertion
This commit is contained in:
parent
18db4a5274
commit
09517caa88
|
@ -182,7 +182,7 @@ bool track_design_save(uint8 rideIndex)
|
|||
|
||||
Intent * intent = intent_create(WC_LOADSAVE);
|
||||
intent_set_uint(intent, INTENT_EXTRA_LOADSAVE_TYPE, LOADSAVETYPE_SAVE | LOADSAVETYPE_TRACK);
|
||||
intent_set_string(intent, INTENT_EXTRA_CALLBACK, track_name);
|
||||
intent_set_string(intent, INTENT_EXTRA_PATH, track_name);
|
||||
intent_set_pointer(intent, INTENT_EXTRA_CALLBACK, (void *) track_design_save_callback);
|
||||
context_open_intent(intent);
|
||||
intent_release(intent);
|
||||
|
|
|
@ -9,8 +9,8 @@ Intent::Intent(rct_windowclass windowclass)
|
|||
Intent * Intent::putExtra(uint32 key, uint32 value)
|
||||
{
|
||||
IntentData data = {};
|
||||
data.uintVal = value;
|
||||
data.type = IntentData::DT_UINT;
|
||||
data.intVal.unsignedInt = value;
|
||||
data.type = IntentData::DT_INT;
|
||||
|
||||
_Data.insert(std::make_pair(key, data));
|
||||
|
||||
|
@ -31,8 +31,8 @@ Intent * Intent::putExtra(uint32 key, void * value)
|
|||
Intent * Intent::putExtra(uint32 key, sint32 value)
|
||||
{
|
||||
IntentData data = {};
|
||||
data.sintVal = value;
|
||||
data.type = IntentData::DT_SINT;
|
||||
data.intVal.signedInt = value;
|
||||
data.type = IntentData::DT_INT;
|
||||
|
||||
_Data.insert(std::make_pair(key, data));
|
||||
|
||||
|
@ -75,8 +75,8 @@ uint32 Intent::GetUIntExtra(uint32 key)
|
|||
}
|
||||
|
||||
auto data = _Data.at(key);
|
||||
openrct2_assert(data.type == IntentData::DT_UINT, "Actual type doesn't match requested type");
|
||||
return data.uintVal;
|
||||
openrct2_assert(data.type == IntentData::DT_INT, "Actual type doesn't match requested type");
|
||||
return data.intVal.unsignedInt;
|
||||
}
|
||||
|
||||
sint32 Intent::GetSIntExtra(uint32 key)
|
||||
|
@ -87,8 +87,8 @@ sint32 Intent::GetSIntExtra(uint32 key)
|
|||
}
|
||||
|
||||
auto data = _Data.at(key);
|
||||
openrct2_assert(data.type == IntentData::DT_SINT, "Actual type doesn't match requested type");
|
||||
return data.sintVal;
|
||||
openrct2_assert(data.type == IntentData::DT_INT, "Actual type doesn't match requested type");
|
||||
return data.intVal.signedInt;
|
||||
}
|
||||
|
||||
utf8string Intent::GetStringExtra(uint32 key)
|
||||
|
|
|
@ -11,10 +11,12 @@
|
|||
#ifdef __cplusplus
|
||||
struct IntentData
|
||||
{
|
||||
enum DATATYPE { DT_UINT, DT_SINT, DT_STRING, DT_POINTER } type;
|
||||
enum DATATYPE { DT_INT, DT_STRING, DT_POINTER } type;
|
||||
|
||||
uint32 uintVal;
|
||||
sint32 sintVal;
|
||||
union {
|
||||
uint32 unsignedInt;
|
||||
sint32 signedInt;
|
||||
} intVal;
|
||||
utf8string stringVal;
|
||||
void * pointerVal;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue