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 DoorType Wood1sm
.
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.
Search for Wood1sm
(or whatever your door type is), although Wood1sm
is right at the start of the file. The schemas are doorwood1_op_p
, doorwood_sq_p
and 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.
Open 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 doors.sch
).
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 doorwood
with w
.(e.g. 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 DoorType
s. The copy should only have one, (DoorType Wood1q)
.
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.
DoorType
s have to be listed in Envsound.spc
. Open that and find the //DOOR TYPES
section.
At the end of the DoorType
list, add Wood1q
There’s a limit to the length this line can be, so if you’ve already added your own DoorType
s, 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 DoorType Wood1q
Opening this door should no longer wake up any nearby AI.