Good catch!

Add it to the bugzilla, as you have a better idea of what is going on than I
do (busy bug fixing my own code). An interesting condition to say the least,
anyone else w/ experience in this field wanting to comment?

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Daniel Menard
Sent: Friday, September 08, 2006 12:12 AM
To: hlcoders@list.valvesoftware.com
Subject: [hlcoders] Interesting Hierarchy Bug

Well I've found an interesting hierarchy related bug. I figured I
should notify the list about this one because it took me a while to
wrap my head around it. I'm not sure if this has been fixed in the new
SDK update (my mod is still running on the old codebase until we have
time to merge in the new SDK), but I did a quick search in the known
issues list and the new source and there doesnt appear to be a fix.

It looks like a comment was left regarding parent attachments in the
SDK update, but it doesnt resolve the parent issue. Anyways this bug
occurs when a FL_EDICT_ALWAYS entity is parented to a PVSCHECK entity.
When the PVS entity becomes dormant, it will call UnlinkFromHierarchy
which will unlink it from its parent and do the same for all its
children.

The trouble comes when the PVSCHECK entity comes back into view. The
entity loses its dormant state and it begins to move again, but the
FL_EDICT_ALWAYS entity stops following (atleast client side). The
reason being that the hierarchy system expects a full entity update
from the server when it comes back into view (which would fix up the
parent of the ALWAYS entity), but since the entity is always
transmitted, it never receives the message to reset the parent because
server side the parent never changed and the entity never went
dormant.

I have yet to find a concrete solution to the problem (though its only
been about an hour or so since I figured it out), but I am beginning
the think UnlinkHierarchy should never get called when an entity goes
dormant in the first place. The EHandles would return NULL if the
entity was ever removed and if anything is parented to an entity that
is dormant it should stay where it is without unlinking. I'm weary of
removing the call though, because it may break in some odd condition.

I won't be able to make the change to my codebase until tomorrow, but
some comments would be appreciated. I could add this to the Known
Issues list in the wiki once a stable solution is found.

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to