I have a sleeping servant next to a door, but I think it’s unfair on the player that opening the door wakes her up; the dark engine doesn’t allow players to open a door quietly, so even if the player leans in to the door to hear what’s on the other side, they will have no choice but to wake the servant. An AI’s hearing ability can be reduced, but in my case it had to be set to
well below average, which meant the servant didn’t wake up when I ran right past her.
I decided to prevent this door causing alerts, but other doors would remain as they are.
When opened or closed, the doors play schemas. If the player is responsible, the schemas played are all in the
Sound → Schema → DOORS → PLR_DOOR section of the hierarchy. Look at the properties of that archetype.
AI > Utility > Sound Value: Minor anomoly.
You’ll also notice another section,
AI_DOOR, which doesn’t have that property, so the AI don’t alert themselves or each other when they use doors.
All instances of this door type can be made non-alerting by working out which schemas are played, then editing them in the hierarchy by adding
Sound Value and deslecting everything. Look at the door’s archetype for the
Schema > Class Tags property, or keep looking further up the hierarchy until you see it.
Wood4x8 inherits the value from
spinny_door, and the value is
Sometimes you can use the
DoorType to make an educated guess when looking through
PLR_DOOR, but it’s useful to know how to be certain without resorting to trial and error. Look at your schema files (download them from Telliamed’s site if you don’t already have them) and open doors.sch in any text editor.
Wood1sm (or whatever your door type is), although
Wood1sm is right at the start of the file. The schemas are
doorwood1_cl_p. The schema names match the archetype names in Dromed, so you can now edit those archetypes and add Sound Value: [none].
That’s not the best solution because it’s perfectly acceptable for most doors to cause a minor alert.
Make a copy of the existing
DoorType schemas, using a new
DoorType which can be edited without affecting other doors.
First, if you don’t already have a set of working schema files, you will need to get them (e.g. from Telliamed’s site) and extract them to your schema folder. This will either be Thief2\schema or, if using FMSel, Thief2\FMs\[fm name]\schema.
Doors.sch and look for the
DoorType you require. You can edit
doors.sch or make a new, empty, .sch file. I prefer to use a new file so I can quickly see my changes. It also makes it easy to share schemas with other taffers.
There are three schemas for
DoorType Wood1sm at the beginning of the file, and three more further down. The second set is used by the AI. Copy and paste both sets of schemas into a new file (or use
Rename the schemas so they don’t overwrite the originals. There’s a 15 character schema name limit, so do something like this:
Add the text
_noalrt to the end and replace
schema w1_op_p_noalrt). The actual schema names don’t matter, since it’s unlikely you’ll ever need to play them directly, but the first 15 characters must be unique.
Next, for all six schemas change the
DoorType value to (
DoorType Wood1q) (it’s a good idea to keep the names short). With this example, the original squeak schemas have two
DoorTypes. The copy should only have one,
The second line for each schema is
archetype. You will see that the AI schemas are under
AI_DOOR, so you can change
archetype PLYR_DOOR to
archetype AI_DOOR. These ai schemas are also used by levers and buttons.
DoorTypes have to be listed in
Envsound.spc. Open that and find the
//DOOR TYPES section.
At the end of the
DoorType list, add
There’s a limit to the length this line can be, so if you’ve already added your own
DoorTypes, you may need to add a new line below it, like this:
tag DoorType Wood1q
Make sure the new/edited schema files have been saved, then load your FM and use the
reload_schemas command. Save your gamesys.
Edit the door (or its archetype) and add
Schema > Class Tags. Change it to
Opening this door should no longer wake up any nearby AI.