ObjIDs are used in MOUL/Myst V. You can safely ignore them on CC.
IIRC, later versions of Plasma identify each object by a number. Complete Chronicles' version of Plasma identifies each object... by its name. Which explains why loading times are 20x longer on Uru.
As for the error...
It seems PyPRP creates the visreg "VisReg_Hedges1" in the wrong PRP. It should be in mainRoom (since the corresponding softvolume is there), but the plVisRegion is in the Hedges PRP.
It might come from here: prp_DrawClasses.py, around line1958:
- Code: Select all
propString = FindInDict(objscript,"visual.visregions", [])
if type(propString) == list:
for reg in propString:
if (reg != None):
if(softVolParser != None and softVolParser.isStringProperty(str(reg))):
volume = softVolParser.parseProperty(str(reg),str(self.Key.name))
else:
refparser = ScriptRefParser(self.getRoot(),str(self.Key.name),"softvolume")
volume = refparser.MixedRef_FindCreateRef(reg)
vr = root.find(0x0116, volume.Key.name, 1)
vr.data.scenenode=SceneNodeRef
vr.data.BitFlags.clear()
vr.data.BitFlags.SetBit(plVisRegion.VecFlags["kReplaceNormal"])
vr.data.fRegion = volume
self.fRegions.append(vr.data.getRef())
vr = root.find(0x0116, volume.Key.name, 1) looks for a visregion in the same PRP as the object. Since it doesn't find one, the last argument with value 1 means "create it if it isn't found". So the visregion is created in the second PRP, although the SoftVolumeSimple is located in the first.
Then, either
volume = softVolParser.parseProperty(str(reg),str(self.Key.name))
or
volume = refparser.MixedRef_FindCreateRef(reg)
does the same thing: look for the soft volume with the name you gave in the same PRP as the object, and since it cannot find it, it creates one... probably empty, which crashes Uru.