05-18-2023, 01:23 AM
I'm still new to using UE explorer, so this is probably my fault in some way, but I'm stuck trying to deserialize two lists, which I can't figure out for the life of me. I'm using the newest version of Mirror's edge, not the launch version, for PC, but loading the same file from both versions of the game gives me the same result.
Here is the problem, under TdGame.u (decompressed) at class TdTeamInfo:
defaultproperties
{
MaxTeamMembers=8
TeamBaseColor(0)=
/* Exception thrown while deserializing TeamBaseColor
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at UELib.Core.UDefaultProperty.DeserializeTagUE3()
at UELib.Core.UDefaultProperty.Deserialize()
at UELib.Core.UDefaultProperty.DeserializeDefaultPropertyValue(PropertyType type, DeserializeFlags& deserializeFlags) */
TeamBaseColor(1)=TeamColorNames=/* Array type was not detected. */,
/* Exception thrown while deserializing TeamBaseColor
System.ArgumentException: Requested value '1HandedDrop_1702194241' was not found.
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at UELib.Core.UDefaultProperty.DeserializeTagUE3()
at UELib.Core.UDefaultProperty.Deserialize()
at UELib.Core.UDefaultProperty.DeserializeDefaultPropertyValue(PropertyType type, DeserializeFlags& deserializeFlags) */
TeamColorNames(0)="Red"
TeamColorNames(1)="Blue"
}
And here are the two "undetected" arrays, defined under the same class:
var array<Color> TeamBaseColor;
var array<string> TeamColorNames;
What makes this weird is that both arrays, despite being defined in the same class, cannot be detected. Even weirder, TeamBaseColor(1), a Color defined under Core.Object that only uses Bytes, is being set to array of strings. Also, there are somehow two separate arrays(?) called TeamColorNames, since one can be detected and the other can't.
Setting TeamColorNames to a String property doesn't work. Setting it to a Name property does, but no matter what I choose, the enclosing array still doesn't deserialize.
Like I said, I'm very new to this (and don't really know that much about the unrealscript bytecode), so if I'm making an obvious mistake, sorry about that. Anyway, if someone can help me understand what I should do to fix this, that would be greatly appreciated!
Here is the problem, under TdGame.u (decompressed) at class TdTeamInfo:
defaultproperties
{
MaxTeamMembers=8
TeamBaseColor(0)=
/* Exception thrown while deserializing TeamBaseColor
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at UELib.Core.UDefaultProperty.DeserializeTagUE3()
at UELib.Core.UDefaultProperty.Deserialize()
at UELib.Core.UDefaultProperty.DeserializeDefaultPropertyValue(PropertyType type, DeserializeFlags& deserializeFlags) */
TeamBaseColor(1)=TeamColorNames=/* Array type was not detected. */,
/* Exception thrown while deserializing TeamBaseColor
System.ArgumentException: Requested value '1HandedDrop_1702194241' was not found.
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at UELib.Core.UDefaultProperty.DeserializeTagUE3()
at UELib.Core.UDefaultProperty.Deserialize()
at UELib.Core.UDefaultProperty.DeserializeDefaultPropertyValue(PropertyType type, DeserializeFlags& deserializeFlags) */
TeamColorNames(0)="Red"
TeamColorNames(1)="Blue"
}
And here are the two "undetected" arrays, defined under the same class:
var array<Color> TeamBaseColor;
var array<string> TeamColorNames;
What makes this weird is that both arrays, despite being defined in the same class, cannot be detected. Even weirder, TeamBaseColor(1), a Color defined under Core.Object that only uses Bytes, is being set to array of strings. Also, there are somehow two separate arrays(?) called TeamColorNames, since one can be detected and the other can't.
Setting TeamColorNames to a String property doesn't work. Setting it to a Name property does, but no matter what I choose, the enclosing array still doesn't deserialize.
Like I said, I'm very new to this (and don't really know that much about the unrealscript bytecode), so if I'm making an obvious mistake, sorry about that. Anyway, if someone can help me understand what I should do to fix this, that would be greatly appreciated!