Some things to add to your "to-do" list [message #109562] |
Mon, 23 August 2004 00:52 |
|
basicly, animation for most renegade objects (except those created in cinematics) is handled by a class called SimpleAnimControlClass.
Each object in the game will have one of these if it animates.
Animation is all handled on the host.
Most animation (including the Set_Animation and Set_Animation_Frame script commands and the harvester animation) that happens (except if its a cinematic object) ends up in PhysicalGameObj::Set_Animation or PhysicalGameObj::Set_Animation_Frame.
This will then create the SimpleAnimControlClass (if needed) and pass the right values to it (e.g. the name of the animation)
At some point, the game calls into the netcode which passes all the stuff to the client.
The client deals with the stuff in PhysicalGameObj::ImportRare.
Problem is, on the client the SimpleAnimControlClass is never created.
What it normally does (in regular renegade) is to say "if the SimpleAnimControlClass exists, fill in the data".
With my patch, it says "if the SimpleAnimControlClass doesnt exist,, create it and fill in the data otherwise just fill in the data" (there is a ckeck to make sure it doesnt trigger for CinematicGameObjs to prevent problems with cinematic created animations like the cargo plane)
This makes most animations work (obelisk animation, vehicle leg animations and such).
The harvester arms use the same animation logic (specifically PhysicalGameObj::Set_Animation) so in theory it should be 100% working.
The problem is that the game passes the wrong animation name to PhysicalGameObj::Set_Animation so the engine never finds the animation (because it doesnt exist)
The new fix should fix that so it passes the correct animation name (at least assuming you are using the same hierarchy and animation name as westwood did, making it user-customizable is too hard)
Note that this harvester animation fix will be in 2.0 and will require the server to be running 2.0.
The clients can run 1.9.1 and it will stlll work however
Jonathan Wilson aka Jonwil
Creator and Lead Coder of the Custom scripts.dll
Renegade Engine Guru
Creator and Lead Coder of TT.DLL
Official member of Tiberian Technologies
|
|
|