Haplo on 25/9/2018 at 22:48
Hi all
All of a sudden Lord DromEd has started behaving in a way that I had never seen before. If I change the "Engine Features\Locked" property of any door in my mission, DromEd creates 32 objects directly descending from Object(-1), with "Object system\Transient" property set, at 0,0,0. They don't appear to be causing any harm, and they go away if I save the mission or enter/exit game mode, as one expects.
I tried:
- Starting a new mission, adding one room and one door, and locking it. This didn't happen.
- Loading any of the original missions and locking one of the doors. This
did happen everytime.
The only real reference I could find to this behaviour was: (
http://www.ttlg.com/forums/showthread.php?t=50627&p=559065&viewfull=1#post559065)
Has anyone seen this before? Seems to be safe, but this is DromEd after all.
I have around 2536 object IDs used out of max 8183.
GORT on 26/9/2018 at 06:37
This has been happening to me in my contest FM for Thief 1 gold, but it was only happening quite a ways into building the mission. Although, it might have started after I've updated to v1.26. I'm not sure. At that moment and on, I've been deleting those. But sometimes DromEd doesn't like me doing that. Some things will become wedges in-game, but if I just jump back and forth between the editor and back to in-game it goes back to normal.
Unna Oertdottir on 26/9/2018 at 07:53
This doesn't happen on a door which have blocks vision disabled. I assume this is some sort of helper object for blocks vision. It will vanish in the void/deleted by DromEd right after creating it. No need to worry about it.I was wrong. Whatever it is, StdDoor is the culprit.
Quote:
StdDoor
gen.osm 1/G/2
The door is opened by the messages TurnOn or Open. It is closed with TurnOff or Close. It is also operates in response to FrobWorldEnd. Frobbing normally toggles the state of the door. In Thief 2, if the door had previously been halted, frobbing it will reverse the action it was engaged in before the halt. The door states are closed, open, closing, opening, and halted. A door that is locked and closed cannot be opened by FrobWorldEnd. Instead, it plays an environmental schema with the event tags Event Reject, Operation OpenDoor. The lock is disregarded when the door opens any other way. The lock will also be disregarded if the config variable LockCheat is set (only in Thief 2). When a door is locked, it will close itself. Unlocking a door also opens it. Doors cannot be killed. When Slain, the door will be resurrected with 1 hit point. Any Lock links from the door are removed, and the Engine Features\Locked and Engine Features\KeyDst properties are removed. The Engine Features\Locked property is set to 0 before being removed, so the door will receive a NowUnlocked message. The door opens with it is slain. In Thief 2, if the door has the Script\Timing property, it will automatically close itself that many milliseconds after it is opened. The timer aborts if the door begins to close. When the door state changes, an environmental schema is played with the event tags Event StateChange, OpenState <state>, OldOpenState ><state>. Previous schemas are halted if the state is closed or open. If the door had recently been frobbed by the player, with FrobWorldEnd or PlayerToolFrob, the tag CreatureType Player is added to the list. The flag that determines whether to add the tag is cleared when the door state is closed, open, or halted. When the door is opened, it will set a secret as being found if it is marked as Hidden in Dark Gamesys\Stats. Two or more doors can be combined into a set of "double" doors by creating ScriptParams links between the doors and setting the link data to Double. There must be at least one link between any two doors in a group. More than one link between two doors is unnecessary, but harmless. The doors will keep in synch for most state changes. A halted door will not cause the linked doors to halt. If the linked doors are meant to be locked, they should all have the Engine Features\Locked property (or a Lock link). A door without the property will not synch properly with the others. (This is because it might have been Slain and lost the property that way.) Doors keep in synch by sending the SynchUp message from the door that had its state changed to each door it has a link with. When a double door spans an opening, it can cause AI to get stuck between them. The AI tries to frob both doors, which makes them start to open, then immediately close. Thief 2 solves this by creating a marker with the property AI\Utility\Path avoid on it. The marker is placed at the midpoint between two doors, but only if the doors share a room boundary, and are touching (or close to) at the midpoint. The marker will be created for pairs of doors with a ScriptParams link between them, regardless of whether the data is set to Double. So you can take advantage of the feature without having to synchronize the doors.
nicked on 26/9/2018 at 12:08
I wouldn't worry about it - Dromed likes to create stuff at 0,0,0 for a variety of reasons. As long as you make sure that location is well in solid so it never affects the player, it shouldn't be a problem.
Unna Oertdottir on 26/9/2018 at 12:27
It's bizarre for sure
I created a bunk bed (but not a door)
I added
-stddoor
-some rotating door property
-Engine Feature--locked: true
-->no transient object created at 0,0,0
I compared to settings to another door and added Class Tags: DoorType Wood1sm to the bed
-->transient object created
I checked it again and again :confused:
can't explain this
skacky on 26/9/2018 at 12:36
I've encountered this quite a lot myself, but it usually seems to happen quite late into mission building. Since they disappear upon reload or entering game mode I wouldn't worry about it.
FireMage on 26/9/2018 at 14:03
I had this bug as well but it appeared at the middle of the mission building. The object is created for any object with locked set to true, even for containers, so it's not due to StdDoor. Maybe Locksounds ?
Unna Oertdottir on 26/9/2018 at 14:21
The bunk bed has no locksound script
to let the transient object appear you need
-stddoor
-door property
-a class tag
on a object. If one of them is missing, it doesn't work.
vfig on 27/9/2018 at 02:01
These objects are for sounds. The sound system creates 32 transient objects (with the Render Type: Not rendered and Has Refs: false) for managing the active sounds being played. I'm not sure why you're seeing them in the editor, but you can ignore them: being transient, they're never saved, and the sound system recreates them as needed anyway. (See PSNDINST.CPP:cPropSndInst::Init() if you care.)
Haplo on 28/9/2018 at 10:56
Thanks. I had forgotten I could look in the source code myself instead of asking all these questions!