Jump to content

That animation was so cool


Recommended Posts

COPY_EXISTING ~BHAAL4B.SPL~ ~OVERRIDE~
~SPCL213.SPL~ ~OVERRIDE~
~SPIN550.SPL~ ~OVERRIDE~
~SPIN553.SPL~ ~OVERRIDE~
~SPIN558.SPL~ ~OVERRIDE~
~SPIN674.SPL~ ~OVERRIDE~
~SPIN675.SPL~ ~OVERRIDE~
~SPIN696.SPL~ ~OVERRIDE~
~SPIN826.SPL~ ~OVERRIDE~
~SPIN891.SPL~ ~OVERRIDE~
~SPPR107.SPL~ ~OVERRIDE~
~SPPR408.SPL~ ~OVERRIDE~
~SPWI113.SPL~ ~OVERRIDE~
~SPWI214.SPL~ ~OVERRIDE~
~SPWI702.SPL~ ~OVERRIDE~
 FOR (READ_LONG 0x6a effectsOffset ELSE 0x72; effectsOffset < SOURCE_SIZE; effectsOffset = effectsOffset + 0x30) BEGIN
   READ_SHORT ~%effectsOffset%~ ~effectType~ ELSE 0x00
   PATCH_IF (~%effectType%~ = 0xd7) BEGIN
     READ_ASCII ~%effectsOffset%~ + 0x14 ~animation~ ELSE ~~
     PATCH_IF NOT (~%animation%~ STRING_COMPARE_CASE ~ICRMPARI~) OR NOT (~%animation%~ STRING_COMPARE_CASE ~ICSTRENI~) OR NOT (~%animation%~ STRING_COMPARE_CASE ~SPPOWWRD~) OR NOT (~%animation%~ STRING_COMPARE_CASE ~SPROTECT~) BEGIN
       READ_BYTE ~%effectsOffset%~ + 0x0c ~effectDuration~ ELSE 0x01
       READ_LONG ~%effectsOffset%~ + 0x0e ~effectLength~ ELSE 0x02
       WRITE_LONG ~%effectsOffset%~ + 0x0e ((~%effectDuration%~ = 0x00) AND (~%effectLength%~ > 0x02)) ? 0x02 : ~%effectLength%~
     END ELSE PATCH_IF NOT (~%animation%~ STRING_COMPARE_CASE ~SPDISPMA~) OR NOT (~%animation%~ STRING_COMPARE_CASE ~SPTRUSEE~) BEGIN
       READ_BYTE ~%effectsOffset%~ + 0x0c ~effectDuration~ ELSE 0x01
       READ_LONG ~%effectsOffset%~ + 0x0e ~effectLength~ ELSE 0x03
       WRITE_LONG ~%effectsOffset%~ + 0x0e ((~%effectDuration%~ = 0x00) AND (~%effectLength%~ > 0x03)) ? 0x03 : ~%effectLength%~
     END ELSE PATCH_IF NOT (~%animation%~ STRING_COMPARE_CASE ~ICWRATI~) OR NOT (~%animation%~ STRING_COMPARE_CASE ~SPNWCHRM~) BEGIN
       READ_BYTE ~%effectsOffset%~ + 0x0c ~effectDuration~ ELSE 0x01
       READ_LONG ~%effectsOffset%~ + 0x0e ~effectLength~ ELSE 0x04
       WRITE_LONG ~%effectsOffset%~ + 0x0e ((~%effectDuration%~ = 0x00) AND (~%effectLength%~ > 0x04)) ? 0x04 : ~%effectLength%~
     END
   END
 END
BUT_ONLY_IF_IT_CHANGES

This optional (but cool) update tightens up some of the durations for spell animations. Everybody knows that if the duration for a non-permanent single-shot animation is too long, any action (that causes effects to be re-applied) within the specified duration after the animation plays once causes the animation to play again. So we set it to the minimum duration possible (frames divided by 15, rounding up), but only where the duration is greater than the minimum possible.

 

This was reduced substantially from an earlier incarnation (although technically more accurate, it caused more problems than it solved).

 

SPWISH* spells were intentionally removed for their absolute worthlessness.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...