/* 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