SCASM Animations
The Rudder
Stock Animation

Template     Original SCA Code     Edited SCA Code

The aircraft rudder moves about the Y-axis and has its own variable that carries the rudder deflection angle.

VAR - hex offset to the variable rudder deflection.

; Part: PARTNAME
:PARTLABEL
Transform_Mat(
     0.000000 0.000000 0.000000
     1.000000 0.000000 0.000000
     0.000000 1.000000 0.000000
     0.000000 0.000000 1.000000
     )
TransformCall( :DrawPARTNAME  0  0  0  0.000000 0x00  0.000000 0x00  0.000000 VAR   )
TransformEnd
Return

:DrawPARTNAME
SetMaterial(  m  t  )
DrawTriList( index  ... vertex indices ...  )
Call32( :CHILDPart1 )
     ..........
Call32( :CHILDPartn )
Return

Original SCA Code     Template     Edited SCA Code

This is the original object source code for the rudder generated by FSDS Pro v2.33 from fxpaint.fsc. Note the Call32( ... ) commands just before the Return command at the end of this code. This is where the "Child Parts" of the rudder are called. This assures that the animation applied to the rudder is also applied to those parts which use the rudder as a parent part.

; Part: rudder
:Part000009
Transform_Mat(
    0.000000 -7.646822 -115.950790
    1.000000 0.000000 0.000000
    0.000000 1.000000 0.000000
    0.000000 0.000000 1.000000
    )
SetMaterial( 0 -1 )
DrawTriList( 240
    0 1 2
    0 2 3
    4 5 6
    4 6 7
    8 9 10
    8 10 11
    )
SetMaterial( 0 0 )
DrawTriList( 240
    12 13 14
    12 14 15
    16 17 18
    16 18 19
    20 21 22
    20 22 23
    )
Call32( :Part000025 )
Call32( :Part000026 )
Call32( :Part000027 )
Call32( :Part000028 )
TransformEnd
Return

Edited SCA Code     Template     Original SCA Code

This is the edited object source code that produces the animated rudder in fxpaint.mdl.

; Part: rudder
:Part000009
Transform_Mat(
    0.000000 -7.646822 -115.950790
    1.000000 0.000000 0.000000
    0.000000 1.000000 0.000000
    0.000000 0.000000 1.000000
    )
TransformCall( :DrawRudder 0 0 0
0.000000 0x00 0.000000 0x00 0.000000 0x78 )
TransformEnd
Return

:DrawRudder
SetMaterial( 0 -1 )
DrawTriList( 240
    0 1 2
    0 2 3
    4 5 6
    4 6 7
    8 9 10
    8 10 11
    )
SetMaterial( 0 0 )
DrawTriList( 240
    12 13 14
    12 14 15
    16 17 18
    16 18 19
    20 21 22
    20 22 23
    )
Call32( :Part000025 )	;bullet hole
Call32( :Part000026 )	;bullet hole
Call32( :Part000027 )	;bullet hole
Call32( :Part000028 )	;bullet hole
Return