I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX

Legacy:Decoration

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT2003 :: Actor >> Decoration (Package: Engine)

This is an abstract base class, and shouldn't be added to a map.

Children of this class are decoration actors – meshes seen by the player in the game that have no AI and are not weapon or inventory pickups. Many decorations are static, but a certain level of interaction can be set.

Usually Static Meshes are used instead of Decoration actors unless the decorative object should be animated or have some special behavior.

See Decoration (UT) for the UT version of this class.

Properties[edit]

Main[edit]

bool bDamageable 
Whether the Decoration can take damage.
bool bPushable 
When activated, a player will be able to push the decoration on the floor, e.g. wooden boxes.
class<Inventory> contents 
spawned when destroyed
class<Actor> EffectWhenDestroyed 
If set, the pyrotechnic or explosion when item is damaged ?Destroyed.
Sound EndPushSound 
This sound is played when the decoration stops moving.
Texture FragSkin 
skin to use for fragments
class<Fragment> FragType 
type of fragment to use
int Health 
The amount of damage the Decoration can take before it's destroyed.
int NumFrags 
Number of fragments to spawn when destroyed.
Sound PushSound 
This sound is played then the decoration is pushed.
float SplashTime 

Hidden[edit]

bool bPushSoundPlaying 
The decoration currently plays the PushSound. This variable is reset to false by a Timer function every 0.3 seconds.
bool bSplash 
vector FragMomentum 
Momentum to be imparted to frags when destroyed. Set when taking damage.
NavigationPoint LastAnchor (const) 
recent nearest path
float LastValidAnchorTime 
last time a valid anchor was found
int numLandings (const) 
Used by engine physics.

Known Subclasses[edit]

Discussion[edit]

EricBlade: A little tip: In my source tree, decoration defaults to bStatic = true and bStasis = true. This makes it pretty much useless if you don't forget to reset those. I'm not sure if UT2k3/2k4 implements a better version or a replacement for this handy dandy object, but in my game, 99% of the items in game are simply immutable static meshes. I've subbed this, made it default to bStatic and bStasis false, and added code so that it will be burned by Fire. It could probably use some improved method of dealing with sound, as it is now, the sound only plays once per push, wether you push it across a room or across the Sahara desert.

An additional tip: Stacking three of these on top of each other in a game, then pushing them, results in this appearing in the log:

Log: UZGDeco test2.UZGDeco4 fell out of the world at -1.#IND00 -1.#IND00 -1.#IND00!
Log: Octree Warning (RemoveActor): UZGDeco4 moved without proper hashing
Log: UZGDeco test2.UZGDeco5 fell out of the world at -1.#IND00 -1.#IND00 -1.#IND00!
Log: Octree Warning (RemoveActor): UZGDeco5 moved without proper hashing

and then the computer completely and totally locks up.

Also, this seems to quite well show off some pretty serious problems in collision detection inside the game. Even though my meshes have fully functional collision information, pushing a couple of these at each other results in them not colliding until they are several units inside each other. Also, a tester reported that he was able to get inside one of these objects. That same tester also reported a computer crash (with no log) when pushing into one of them. Meh.