View Issue Details

IDProjectCategoryView StatusLast Update
0001963The Dark ModCodingpublic26.03.2010 07:39
ReporterFidcal Assigned Togreebo  
PrioritylowSeverityminorReproducibilitysometimes
Status closedResolutionfixed 
Product VersionSVN 
Target VersionTDM 1.01Fixed in VersionTDM 1.01 
Summary0001963: Double doors sometimes highlight at a distance
DescriptionDouble doors sometimes highlight at a distance, typically just one door is highlighted.
Additional Informationsee bug discussion: http://modetwo.net/darkmod/index.php?/topic/10148-doors-staying-frob-lit/

I could investigate this issue today, and it seems this is a defect of the code keeping up with the entities' "am I frobbed" state.

The problem depends on several conditions:

- The frob-highlighted entity A has frob peers
- The frob trace seamlessly transitions from entity A to entity B.
- The newly frobbed entity B updates its frob status before entity A (basically a race condition)

Reason: the frob highlighting code regularly checks (each frame) whether it is frob-highlighted or not. To determine this, it compares the CDarkModPlayer::m_frobEnt pointer with "this", which is not reliable in the case of frob-peered entities. When entity A is highlighted, it propagates its frob status to entity C which is frob-peered to entity A. Hence the check fails (either this or the check using m_frobEntPrevious fails). So the code decides not to de-highlight and the door stays brightly lit.

This is not an easy fix, and I'll have to re-design this algorithm a bit, considering frob_peers (a single frobEnt pointer is not suitable for this kind of check). This is going to need some serious testing afterwards, as frobbing is a critical function.
TagsNo tags attached.

Activities

Fidcal

Fidcal

06.10.2009 19:22

updater   ~0002674

This bugginess extends to other (all?) frob-highlight-able objects, not just double doors.
It (at least) also occurs for normal doors and ragdoll bodies.
greebo

greebo

09.10.2009 11:35

administrator   ~0002676

I've already seen that behaviour in-game, so I'll set this to confirmed. Probably won't be fixed before release.
greebo

greebo

05.11.2009 07:30

administrator   ~0002733

First draft in darkmod_src, new PK4 incoming.

Issue History

Date Modified Username Field Change
06.10.2009 09:48 Fidcal New Issue
06.10.2009 19:22 Fidcal Note Added: 0002674
09.10.2009 11:35 greebo Note Added: 0002676
09.10.2009 11:35 greebo Status new => confirmed
03.11.2009 06:50 greebo Additional Information Updated
03.11.2009 06:51 greebo Projection none => major rework
03.11.2009 06:51 greebo ETA none => 2-3 days
03.11.2009 06:51 greebo Target Version => TDM 1.01
03.11.2009 06:51 greebo Status confirmed => assigned
03.11.2009 06:51 greebo Assigned To => greebo
05.11.2009 07:30 greebo Note Added: 0002733
05.11.2009 07:30 greebo Status assigned => resolved
05.11.2009 07:30 greebo Fixed in Version => TDM 1.01
05.11.2009 07:30 greebo Resolution open => fixed
05.11.2009 07:31 greebo Build => 3746
26.03.2010 07:39 greebo Status resolved => closed