View Issue Details

IDProjectCategoryView StatusLast Update
0003455The Dark ModSoundpublic17.06.2013 13:23
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilitysometimes
Status resolvedResolutionfixed 
Product VersionTDM 2.00 
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003455: Something is wrong with soundprop to player
DescriptionSomething weird has been happening while I'm testing St. Lucia.

When loading a saved game, sometimes I hear AI talking and walking even though there is a closed door in the way. It's as if the sound is going directly to me and not being occluded at all.

If I open the door between me and the AI and close it again, sound occludes normally.


I have a saved game where this is happening reliably. When the game starts, there are two closed doors between you and an AI, yet you can hear his footsteps normally. If you open and then close either of those doors, they occlude properly. But until you open and close them, they do not occlude sound at all.
TagsNo tags attached.
Attached Files
Quicksave.save (1,637,353 bytes)

Activities

grayman

grayman

16.06.2013 16:23

viewer   ~0005566

1. Sound propagation depends on the current loss values on the portal associated with a door. If you're hearing full volume after a reload, then the loss values must be zeroed.

2. The loss values are correctly saved across save/reload.

It's possible that something in the reload code is zeroing the loss values after they've been restored. Once the door is opened and closed, the loss values are reset to correct values.

But if that were the case, then as you move about the map after a reload, ALL sounds coming through doors would be at full volume. Is that happening?
Springheel

Springheel

16.06.2013 18:58

administrator   ~0005567

I'll do some more tests later today.
Springheel

Springheel

16.06.2013 20:31

administrator   ~0005568

I was just able to reproduce this in Too Late.

Steps:

1. Start Too Late and go to the door just before the docks. Unlock the door, and save the game. You'll notice you cannot hear the waves.

2. Exit TDM, then start it again and load the game. You can now hear the waves from beyond the door.

3. Open and close the door. The waves are now gone again.
grayman

grayman

16.06.2013 22:55

viewer   ~0005569

I reproduced the problem in Too Late.

I checked the player loss value on all portals while saving and restoring, and the values all match.

Will need to debug the player sound code in the engine. Since I have to recreate my virtual desktop to renew my Visual Studio license, it will be a while before I have a solution for this.
Springheel

Springheel

16.06.2013 23:40

administrator   ~0005570

It works okay when you save and restore in the same session. It's when you load a saved game after restarting TDM that the problem occurs.
grayman

grayman

17.06.2013 03:28

viewer   ~0005571

After a door is restored from a savegame, it needs to tell the engine so that both AI and Player sound loss across the door’s portal can be restored. Engine data structures are not saved/restored, and depend instead on being rebuilt after a restore. BrittleFracture and FrobDoor both deal with sound loss across portals. BrittleFracture was telling the engine after its restore, but FrobDoor wasn’t.

Also fixed a bug in the portal entity where the knowledge of whether its sound loss value was to be applied to AI or the Player or both was lost across a save/restore.

Rev. 5813:

FrobDoor.cpp
Misc.cpp
Misc.h

Tested with “Too Late”.
Springheel

Springheel

17.06.2013 13:23

administrator   ~0005572

I assumed "a while" was going to be days or weeks, not hours. Thanks. :)

Issue History

Date Modified Username Field Change
16.06.2013 14:55 Springheel New Issue
16.06.2013 15:13 Springheel Description Updated
16.06.2013 15:14 Springheel File Added: Quicksave.save
16.06.2013 16:23 grayman Note Added: 0005566
16.06.2013 18:58 Springheel Note Added: 0005567
16.06.2013 20:31 Springheel Note Added: 0005568
16.06.2013 22:55 grayman Note Added: 0005569
16.06.2013 22:55 grayman Assigned To => grayman
16.06.2013 22:55 grayman Status new => assigned
16.06.2013 22:55 grayman Status assigned => confirmed
16.06.2013 23:40 Springheel Note Added: 0005570
17.06.2013 03:28 grayman Note Added: 0005571
17.06.2013 03:28 grayman Status confirmed => resolved
17.06.2013 03:28 grayman Resolution open => fixed
17.06.2013 03:28 grayman Fixed in Version => TDM 2.00
17.06.2013 13:23 Springheel Note Added: 0005572