[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]
{
Yes, I should have been able to imagine myself that there will be at
least _one_ person out there who asks for the Fade_VerticalSplitClose
after he has tried the Fade_HorizontalSplitClose for AniVGA V1.2,
couldn't I?... <sigh>
Well, here it is; for the bored ones amongst us, here's a more
challenging question:
What do you expect to see when you remove the comment brackets of the
line in the main body part of the snippet below? --Try to answer that
question w/o further trying! :-)
kai.rohrbacher@logo.ka.sub.org
}
{$A+,B-,D+,L+,N-,E-,O-,R-,S-,V-,G-,F-,I-,X+}
{$M 32768,0,655360}
PROGRAM Example8E;
USES ANIVGA;
CONST pic='DOG1.PIC'; {or any other PIC}
picPal1='DOG1.PAL';
{$IFDEF VER60}
Seg0040:WORD=$40;
{$ENDIF}
PROCEDURE VerticalSplitClose(pa,time:WORD);
{ in: pa = page, which contents will be made visible }
{ time = time (in milliseconds) for this action (approx.) }
{out: - }
{rem: the contents of page "pa" has been copied to page 1-PAGE }
CONST n = (YMAX+1) DIV 2; {number of executions of the delay loop}
VAR counter:WORD;
ClockTicks:^LONGINT; {LONGINT ABSOLUTE $40:$6C geht nicht}
t: LONGINT;
temp:REAL;
mitte,lines:INTEGER;
p:POINTER;
BEGIN
ClockTicks:=Ptr(Seg0040,$6C);
t := ClockTicks^;
counter := 0;
temp := 0.0182*time/n;
mitte:=YMAX SHR 1;
FOR lines:=0 TO mitte DO
BEGIN
p:= GetImage(StartVirtualX,StartVirtualY+mitte-lines,
StartVirtualX+XMAX,StartVirtualY+mitte,pa);
PutImage(StartVirtualX,StartVirtualY,p,1-PAGE);
FreeImageMem(p);
p:= GetImage(StartVirtualX,StartVirtualY+mitte+1,
StartVirtualX+XMAX,StartVirtualY+mitte+1+lines,pa);
PutImage(StartVirtualX,StartVirtualY+YMAX-lines,p,1-PAGE);
FreeImageMem(p);
INC(counter);
WHILE (ClockTicks^ < (t+counter*temp)) DO BEGIN END;
END;
{Cleanup:}
(* IF Odd(YMAX+1)
THEN CopyPage(pa,1-PAGE); *)
END;
VAR pal1:Palette;
i:WORD;
BEGIN
InitGraph;
StartVirtualX:=20; StartVirtualY:=10;
LoadBackgroundPage(pic);
LoadPalette(picPal1,0,pal1); SetPalette(pal1,FALSE);
FillPage(1-Page,0);
FOR i:=1 TO 20000 DO
PutPixel(Random(Succ(XMAX)),Random(Succ(YMAX)),Random(256));
VerticalSplitClose(BACKGNDPAGE,2000);
(* So what do you expect when uncommenting the following line??? *)
(* VerticalSplitClose(1-PAGE,2000); *)
CloseRoutines;
END.
[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]