/* CMD:Reverse Scene
*/
/* Reverse Scene */
/* Doesn't do envelopes (yet) */
/* By GLYPH July 1996 */
/* E-Mail: y82s1@unb.ca */
JUNK:
mxx="LWModelerARexx.port"
signal on error
signal on syntax
mxx_add = addlib(mxx,0)
call main
if (mxx_add) then call remlib(mxx)
exit
syntax:
error:
t=Notify(1,'!Rexx Script Error','@'ErrorText(rc),'Line 'SIGL)
if (mxx_add) then call remlib(mxx)
exit
return
main:
Address 'LWModelerARexx.port'
scenename = getfilename('Scene File','toaster:3d/scenes')
if scenename = '(none)' then exit(0)
newname = getfilename('New Scene File','toaster:3d/scenes')
if newname = '(none)' then exit(0)
call open(for,scenename,'R')
call open(rev,newname,'W')
firstframe = 1
lastframe = 30
do while eof(for)=0
stuff = readln(for)
call writeln rev, stuff
fram1 = pos('FirstFrame',stuff)
fram2 = pos('LastFrame',stuff)
mot1 = pos('ObjectMotion',stuff)
mot2 = pos('LightMotion',stuff)
mot3 = pos('CameraMotion',stuff)
if fram1 = 1 then parse var stuff dud firstframe
if fram2 = 1 then parse var stuff dud lastframe
if mot1 = 1 then call Motion
if mot2 = 1 then call Motion
if mot3 = 1 then call Motion
end
call close for
call close rev
return
Motion:
stuff = readln(for)
call writeln rev, stuff
keys = readln(for)
call writeln rev, keys
do k = 1 to keys
stuff = readln(for)
keya.k = stuff
stuff = readln(for)
parse var stuff frame l t c b
newframe = trunc(lastframe-frame)
keyb.k = ' '||newframe||' '||l||' '||t||' '||c||' '||b
end
do k = 1 to keys
newk = keys-k+1
call writeln rev, keya.newk
call writeln rev, keyb.newk
end
return
               (
geocities.com/g_fyffe)