Game Development Community

[resloved] setHidden Crash

by Steve Acaster · in Torque 3D Professional · 08/17/2009 (1:09 pm) · 5 replies

T3D crashes when setHidden(1); is called on a player in all projects.
Call on a scripted non-player object and all is well.

Apparently resolved as of B6

#1
08/17/2009 (2:05 pm)
Ahh, this is an old friend! SetHidden() *never* worked on Players. It promptly causes a crash since the TGE days.

I'm so used to it that I always have Player::setHidden() overridden in my scripts which set the player's scale to "0 0 0" and back to the old value instead.
#2
08/17/2009 (2:14 pm)
lol! Perhaps some note on %player.dump() mentioning not to use it on players could help ... or a fix, I guess.

Anyhow, %player.setAllmeshesHidden(); works fine.
#3
08/17/2009 (6:57 pm)
Logged as THREED-680
#4
09/07/2009 (1:15 pm)

Fixed for next release.

Please note that calling setHidden(1) on the control object does not make much sense. setHidden will completely remove the object from the scene graph and take it out of the simulation. Having the game's control object removed from the game is not really a useful thing to do, though.

It will no longer crash but since no more game code runs on the control object, you will see all player controls freeze until the object is unhidden again. If you just want to hide the player's visible representation, make use of the "setAllMeshesHidden" method mentioned by Steve above.

"setHidden" certainly is a misnomer for what the function actually does.
#5
09/07/2009 (3:06 pm)
Sent to resolved.

It wasn't so much a bug as a lack of clear info regarding how to use it. Glad the crash is fixed though, it's nice to merciful when someone screws up.