Implemented MakePrimitive()

This commit is contained in:
smallmodel 2024-02-28 22:52:25 +01:00
parent 77ef0f3579
commit 960469be77
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512
2 changed files with 33 additions and 6 deletions

View file

@ -281,6 +281,19 @@ void ScriptVariable::ArchiveInternal(Archiver& arc)
break;
}
}
void ScriptVariable::MakePrimitive()
{
switch (type) {
case VARIABLE_LISTENER:
case VARIABLE_REF:
case VARIABLE_CONTAINER:
case VARIABLE_SAFECONTAINER:
Com_Error(ERR_DROP, "^~^~^ game.%s cannot be archived since it is of type '%s'.", getName().c_str(), GetTypeName());
Clear();
break;
}
}
#endif
ScriptArrayHolder::ScriptArrayHolder()
@ -2568,6 +2581,15 @@ void ScriptVariableList::Archive(Archiver& arc)
list.Archive(arc);
}
void ScriptVariableList::MakePrimitive()
{
con_set_enum<short3, ScriptVariable> en = list;
for (con_set_enum<short3, ScriptVariable>::Entry *entry = en.NextElement(); entry; entry = en.NextElement()) {
entry->value.MakePrimitive();
}
}
CLASS_DECLARATION(Class, ScriptVariableList, NULL) {
{NULL, NULL}
};