O, rly? Interesting!
Well, I've decided to go through the new T-Script reference in chunks, a bit like you do with the TPA decoding. Here is my analysis for the latest chunk I've read today.
CEntityAttached
Pretty much like a CInstance, but has a "string Target" value, which is the object it is attached to. Beware, if it's tangible and it's colliding with the "parent" object, it will attempt to "free" itself.
Hmmmm, interesting, machf do you know of instances when this freeing happened?
CEntityWater
Ripples happen on water entities when objects collide with it. See also CWaterDisturbance.
Type Name Default Description
float ResolutionRatio 1.0 Optional. One original level has this as 2.0, the others do not specify it.
Dunno if you want to mention this or not, but the accepted range seems to be 0.0 to 2.0 - TC Isle uses 0.5 on a number of occasions, I think to ease up rendering.. it alters the scale of ripples on the water. See JPDS~testing for examples.
EDIT: Actually, I would use this:
float ResolutionRatio 1.0 Optional. One original level has this as 2.0, the others do not specify it. Range is 0.0 to 2.0? Specifies scales of ripples on water.
string SoundMaterial none Optional. For the few original levels that have this, it is "Water".
Actually, SoundMaterial has no effect on CEntityWater, even while it was assigned to one or two of them in the retail (or it might have just been demo, not sure). Seems to have been for an older build of the engine, 'cause as much as I try, CEntityWatter objects will not use any other sound, not even the other water sounds. Also, "Water" as a sound material doesn't seem to work for any other objects..
CGun
See a level for examples..
Type Name Default Description
string MFlashObject0 must specify CMuzzleFlash(s) for gun (Named object must exist.)
string MFlashObject1 none CMuzzleFlash(s) for gun (Named object must exist.)
Example:
group Pak47drumagazine-00 = {
string MFlashOrg = "$FAKDFlash-00"
string MFlashObject0 = "FMFrifleMF03-00"
string MFlashObject1 = "FMFrifleMF04-00"
string MFlashObject2 = "FMFrifleMF05-00"
bool RandomRotate = true
float MFlashDuration = 0.000000
bool AutoFire = true
string Sample = "GUN - AK47 SHOT"
string RingSample = "GUN - AK47 REL"
string EmptyClipSample = "GUN - AUTOMATIC DRYFIRE 01"
string SoundMaterial = "Rifle"
float WakeUp = 175.000000
float RecoilForce = 55.000000
float ROF = 10.000000
float Push = 230.000000
float Damage = 15.000000
float DamageMultiplier = 1.000000
float Range = 200.000000
int MaxAmmo = 100
bool AltAmmoCount = true
string Class = "CGun"
bool Tangible = true
bool Moveable = true
float Density = 0.080000
string Type = "Compound"
string Model00 = "$Fak47drum00-00"
string Model01 = "$Fak47drum01-00"
string Detail1 = "$Pak47drumagazineDRC-00"
float A01 = 30.000000
string DetailShadow = "$Pak47drumagazineShdw-00"
string Barrel = "$FAKDbarrel-00"
string RecoilOrg = "$FAKDrecoil-00"
float Diffuse = 1.200000
float Specular = 1.200000
float SpecularAngle = 37.000000
}
Not the most organized entry.. could suffice but, I'd say this could stand to be better documented. For example, listing what values are needed and what aren't. I could give a detailed description later. Also - as far as I can tell, it accepts all CInstance values, so that should be mentioned. Haven't tested all of them, of course, like AlwaysFace.. that would be interesting..
CInstance
General object in world. See also the trigger actions "CAnimateTextureAction", "CSetPhysicsAction", and "CSubstituteMeshAction".
Type Name Default Description
Misc
bool AI If true and a dino has ActGetOut=true, the dino won't go into this bounding volume. I think the default value of AI is true if object is Visible, and false if it has Visible=false.
This is good about AI, but it's not just a question of not going into - certain tangible objects also have an AI true/false value; it basically states whether the object's existance and dimentions are used by an AI when it calculates its movements and actions through the world space. Dunno how or if this should be mentioned..
int AIType unknown What AI sees this object as:
2 = dinosaur
3 = bone, carcas
5 = Anne
15 = water
Herbivor food/plant matter seems to be missing from this list.. I'm guessing it's 1 but don't go by that. I think Rebel or Remdul had a diffinitive answer on AI types..
float Damage unknown ?
float Height unknown ? Use if Planted=true.
bool Merge true ?
bool Split true ?
string Mesh none Use mesh of given object instead of own mesh.
string Physics none Use physics objects of given object instead of own ones.
bool Planted false ?
string SoundMaterial none Used by CCollisionTrigger. May also be name of sound from "Effects.tpa", but doesn't have to be.
bool Wrap true ?
--->
float Damage 0.0 Base value for calculating damage caused by an object to Anne or CAnimals in collisions.
bool Planted false Stretches the vertices of a mesh between the lowest boundry and the specified Height value onto the terrain. Will cause rendering anomolies when part of the mesh lies underground. Used for certain tree models in original levels.
float Height ? See Planted.
bool Merge true Unused value; used for Max importing scripts?
bool Split true Unused value; used for Max importing scripts?
bool Wrap true Unused value; used for Max importing scripts?
string Mesh none Use mesh of given object instead of own mesh.
string Physics none Use physics of given object instead of its own.
string SoundMaterial none Name of material located in the foley table of "Effects.tpa" (does not need to exist). Also used by CCollisionTrigger.
int AlphaChannel none 0,1,8 in original levels. Make object transparent. Used by LightBeam in testscene, and also by many triggers.
int AlphaChannel none 0,1,8 in original levels. Makes object transparent, where 0 means invisible, 1 gives 50% transparent white, and values above 1 (unknown limit) give increasing degrees of transparency. Used by LightBeam in testscene; many original triggers assign as 0 but value isn't needed.
float Bumpiness unknown
bool Curved false ? Ignored?
float Bumpiness unknown Degree of expession for bump (normal) maps.
bool Curved false Used for calculating smoothness of shading on meshes; used in original levels for CAnimals.
bool CacheIntersecting false ?
bool CacheIntersecting false ? Can be used to prevent certain water ripple anomolies in hardware mode.