fichier des Animations: Anim.s
%ANIM%%%%%%%%%%%%%%%%% % R0 R1 R2 R3 R4 B D % % R0 string data % % R1 X % % R2 Y % % R3 datas % % R4 frames % %%%%%%%%%%%%%%%%%%%%%%
**ANIMATION
D0= 001C9 A=DAT0.A D0=A D0=D0+ 2 AD0EX R0=A AD0EX
A=DAT0.P R4=A % FRAME D0=D0- 1
A=DAT0.P LC 1 ?A=C.P { GOSUBL PRINCESS }
D0= 001C9 A=DAT0.A D0=A D0=D0+ 1 D0=D0+ 8 AD0EX R0=A AD0EX
A=DAT0.P LC 2 ?A=C.P { GOSUBL MARIO }
RTN
**PRINCESS %%%%% ANIMATION %%%%%%
D0= 001CE A=DAT0.P LC A ?AC.P { A++.P DAT0=A.P RTN }
C=0.P DAT0=C.P D0= 001C9 A=DAT0.A D0=A D0=D0+ 2 A=DAT0.P
?A=0.P { LC 1 } ELSE { C=0.P } DAT0=C.P
%%%%%%%%%%%%%%%%%%%%%%
D0= 001C9 A=DAT0.A D0=A D0=D0+ 2 A=DAT0.P R4=A % FRAME D0=D0+ 1 A=0.A A=DAT0.B R1=A %X D0=D0+ 2 A=0.A A=DAT0.B R2=A %Y
?ST=1.12 { C=R2 LA 00030 ?C<A.A { RTN } ELSE { C=C-A.A R2=C } }
A=0.A A=R4.P
A=A+A.A C=A.A A=A+A.A A=A+C.A A=A+A.A %*12
ASL.A % * 16 = 160 B=A.A
%%%%%% P1 GROB' %%%%%% D0= 001DA A=DAT0.A D0=A C=DAT0.A A=A+C.A A=A+10.A C=A.A C=C+B.A D=C.A
%%%%%%%%%%%%%%%%%%%%%% % 00180.B = X.LINK % % 00182.B = Y.LINK % % R1 = X.PERSO % % R2 = Y.PERSO % %%%%%%%%%%%%%%%%%%%%%%
ST=0.0 ST=0.1
D0= 00180 A=DAT0.B C=R1 ?A<C.B { ACEX.B ST=1.0 }
A=A-C.B B=A.B %_X_%
D0= 00182 A=DAT0.B C=R2 ?A<C.B { ACEX.B ST=1.1 }
A=A-C.B %_Y_%
C=B.B
?A<C.B {
?ST=1.0 { LC 00480 } % GAUCHE ELSE { LC 00180 } % DROITE
} ELSE {
?ST=1.1 { LC 00300 } % HAUT ELSE { LC 00000 } % BAS }
C=C+D.A R3=C % DATA
GOSUB SOLS $0000000060000000007000000000FFFFC100000000000003000000000830FFFF0000000000000000000000000000000000000000000000000000000000000000 *SOLS C=RSTK R4=C % SOL.X
%%%%% MASK1 DISP %%%%%
D0= 00176 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 8 GOSUBL MASK2
%%%%% FIRST DISP %%%%%
D0= 00176 GOSUBL (X,Y)2 D0=A
C=R3 D1=C GOSUBL DISP2
%%%%% MASK2 DISP %%%%%
D0= 00162 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 8 GOSUBL MASK2
%%%% SECOND DISP %%%%%
D0= 00162 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 4 GOSUBL DISP2
RTN
**MARIO %%%%% ANIMATION %%%%%%
D0= 001CF A=DAT0.P LC A ?AC.P { A++.P DAT0=A.P RTN }
C=0.P DAT0=C.P A=R0 AD0EX D0=D0+ 1 A=DAT0.P
?A=0.P { LC 1 } ELSE { C=0.P } DAT0=C.P %%%%%%%%%%%%%%%%%%%%%%
A=R0 AD0EX D0=D0+ 2 A=0.A A=DAT0.B R1=A %X D0=D0+ 2 A=0.A A=DAT0.B R2=A %Y
?ST=1.12 { C=R2 LA 00030 ?C<A.A { RTN } ELSE { C=C-A.A R2=C } }
%%%%%% P1 GROB' %%%%%% D0= 001DA A=DAT0.A D0=A C=DAT0.A A=A+C.A A=A+5.A D0=A C=DAT0.A A=A+C.A A=A+10.A C=A.A D=C.A
%%%%%%%%%%%%%%%%%%%%%% % 00180.B = X.MARIO % % 00182.B = Y.MARIO % % R1 = X.PERSO % % R2 = Y.PERSO % %%%%%%%%%%%%%%%%%%%%%%
ST=0.0
D0= 00180 A=DAT0.B C=R1 ?A<C.B { ACEX.B ST=1.0 }
A=A-C.B B=A.B %_X_%
D0= 00182 A=DAT0.B C=R2 ?A<C.B { ACEX.B }
A=A-C.B %_Y_% C=B.B
?A<C.B { ?ST=1.0 { LC 00000 } % GAUCHE ELSE { LC 00180 } % DROITE } ELSE { LC 000C0 % BAS }
C=C+D.A R3=C % DATA
GOSUB SOLS2 $0000000060000000007000000000FFFFC100000000000003000000000830FFFF0000000000000000000000000000000000000000000000000000000000000000 *SOLS2 C=RSTK R4=C % SOL.X
%%%%% MASK1 DISP %%%%%
D0= 00176 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 8 GOSUBL MASK2
%%%%% FIRST DISP %%%%%
D0= 00176 GOSUBL (X,Y)2 D0=A
C=R3 D1=C GOSUBL DISP2
%%%%% MASK2 DISP %%%%%
D0= 00162 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 8 GOSUBL MASK2
%%%% SECOND DISP %%%%%
D0= 00162 GOSUBL (X,Y)2 D0=A
C=R3 D1=C D1=D1+ 4 GOSUBL DISP2 RTN
**(X,Y)2 A=DAT0.A C=R2 B=C.A CSL.A C=C+B.A C=C+C.A A=A+C.A C=R1 CSRB.A CSRB.A A=A+C.A RTN
**MASK2 LC F D=C.P C=R4 B=C.A
DO { AD0EX C=B.A D0=C C=DAT0.A AD0EX
A=0.A A=DAT1.4 A=-A-1.A A=A&C.A P= 3 DAT0=A.WP P= 0
D0=D0+ 34 D1=D1+ 12 B=B+4.A
D--.P } WHILENC
C=B.A R4=C RTN
**DISP2 LC F D=C.P
DO { A=0.A A=DAT1.4 C=DAT0.A A=A!C.A DAT0=A.A
D1=D1+ 12 D0=D0+ 34
D--.P } WHILENC RTN
@