1 CLS:PRINT TAB(32)"> SPRITE-Editor <":LOCATE 3,26:PRINT"(C)opyright C.E.Software 2010":LOCATE 5,24:PRINT"programmiert von Carsten Engelmann":LOCATE 13,26:PRINT"Press to start editor!" 3 LOCATE 24,18:PRINT"=Cursor bewegen =Anleitung" 5 ON-(INKEY$<>" ")GOTO 5:SCREEN 9,,0:DIM A(8),B(7,7),C(301),D(344):ON ERROR GOTO 260:COLOR 15:FOR I=0 TO 24:LOCATE I+1,1:PRINT"º";:NEXT:GET(0,0)-(7,343),D:LOCATE 1,1:PRINT"±":FOR I=0 TO 7:FOR J=0 TO 7:B(I,J)=POINT(I,J):NEXT J,I 20 CLS:PUT(400,0),D,PSET:COLOR 15:LOCATE 1,60:PRINT"SPRITE-Editor":IF S$="<" GOTO 215 40 B=15:X=0:Y=0:K=0:L=0:F=0:R=0:GOTO 85 50 Y$=INKEY$:ON-(Y$="")GOTO 50:S$=MID$(Y$,2):IF Y$="8" AND Y>7 THEN Y=Y-8 ELSE IF Y$="2" AND Y<336 THEN Y=Y+8 ELSE IF Y$="4" AND X>7 THEN X=X-8 ELSE IF Y$="6" AND X<385 THEN X=X+8 ELSE IF S$="?" THEN F=1-F:IF F THEN GET(500,150)-(549,192),C 55 IF Y$="7" AND Y>7 AND X>7 THEN Y=Y-8:X=X-8 ELSE IF Y$="1" AND Y<336 AND X>7 THEN Y=Y+8:X=X-8 ELSE IF Y$="9" AND X<385 AND Y>7 THEN X=X+8:Y=Y-8 ELSE IF Y$="3" AND X<385 AND Y<336 THEN X=X+8:Y=Y+8 ELSE IF S$="-" THEN CLS:END 60 IF S$="G" THEN GET(500,150)-(549,192),C:M=1:GOTO 20 62 PUT(K,L),A,PSET:COLOR B:ON-(S$=";")GOTO 300:ON-(S$="=")GOTO 200:ON-(S$="<")GOTO 210:ON-(S$="C")GOTO 120:ON-(S$="D")GOTO 110:ON-(S$="…")GOTO 125:ON-(S$="†")GOTO 130:ON-(S$="B" AND M=1)GOSUB 100:ON-(S$=">")GOTO 150:ON-(S$="@")GOTO 290 63 IF S$="A" THEN GET(500,150)-(549,192),C:LINE(499,149)-(550,193),,B:PAINT(500+X/8,150+Y/8):LINE(499,149)-(550,193),0,B:GOSUB 102:M=1 65 IF F THEN ON-(Y$<"1" OR Y$>"9")GOTO 85:LINE(K,L)-(K+7,L+7),,BF:PSET(500+K/8,150+L/8):M=1:GOTO 85 75 ON-(Y$<>" " AND Y$<>CHR$(13))GOTO 85:GET(500,150)-(549,192),C:IF Y$=" " THEN COLOR 0 80 LINE(X,Y)-(X+7,Y+7),,BF:PSET(500+X/8,150+Y/8):M=1:IF X<385 THEN X=X+8 ELSE IF Y<336 THEN Y=Y+8:X=0 85 GET(X,Y)-(X+7,Y+7),A:FOR I=0 TO 7:C=X+I:FOR J=0 TO 7:D=Y+J:IF B(I,J) THEN IF POINT(C,D)=0 THEN PSET(C,D),15 ELSE PSET(C,D),0 90 NEXT J,I:K=X:L=Y:GOTO 50 100 SCREEN 9,,0:PUT(500,150),C,PSET 101 PUT(400,0),D,PSET:COLOR 15:LOCATE 1,60:PRINT"SPRITE-Editor":M=0 102 FOR J=0 TO 42:P=J*8:Q=150+J:FOR I=0 TO 49:LINE(I*8,P)-(I*8+7,P+7),POINT(500+I,Q),BF:NEXT J,I:RETURN 110 GOSUB 190:GET(500+G,150+H)-(500+C,150+D),C:R=1-R:CLS:PUT(500+R*(49-(C-G)),150+R*(42-(D-H))),C,PSET:GOSUB 101:GOTO 85 120 GOSUB 190:GET(500+G,150+H)-(500+C,150+D),C:CLS:PUT(500+INT((49-(C-G))/2),150+INT((42-(D-H))/2)),C,PSET:GOSUB 101:GOTO 85 125 GOSUB 190:GET(500,150)-(549,192),C:FOR I=0 TO C-G:Q=(G+I)*8:FOR J=0 TO D-H:PSET(500+C-I,150+H+J),POINT(Q,(H+J)*8):NEXT J,I:GOSUB 102:M=1:GOTO 85 130 GOSUB 190:GET(500,150)-(549,192),C:FOR I=0 TO C-G:Q=(G+I)*8:FOR J=0 TO D-H:PSET(500+G+I,150+D-J),POINT(Q,(H+J)*8):NEXT J,I:GOSUB 102:M=1:GOTO 85 150 SCREEN,,1:CLS:COLOR 7:LOCATE 3,34:PRINT"Farbpalette":PRINT TAB(34)"ÄÄÄÄÄÄÄÄÄÄÄ":PRINT:FOR I=0 TO 15:COLOR 7:Y$=MID$(STR$(I),2):IF I<10 THEN Y$="0"+Y$ 157 PRINT TAB(32)Y$"=";:COLOR I:PRINT"Û":NEXT:COLOR 7:LOCATE 14,38:PRINT"Aktuell: ";:IF B=0 THEN LINE(368,182)-(375,195),,B ELSE COLOR B:PRINT"Û":COLOR 7 158 LOCATE 16,38:PRINT"Auswahl: --":T$="" 160 Y$=INKEY$:ON-(Y$=CHR$(27))GOTO 165:ON-(Y$<"0" OR Y$>"9")GOTO 160:ON-(T$="" AND Y$>"1")GOTO 160:ON-(LEFT$(T$,1)="1" AND Y$>"5")GOTO 160:T$=T$+Y$:LOCATE 16,47:PRINT T$:ON-(LEN(T$)=1)GOTO 160:B=VAL(T$):DELAY .5 165 SCREEN,,0:GOTO 85 190 C=-1:D=-1:G=50:H=50:FOR I=0 TO 49:FOR J=0 TO 42:ON-(POINT(500+I,150+J)=0)GOTO 195:IF IC THEN C=I 194 IF J>D THEN D=J 195 NEXT J,I:IF C<0 THEN LOCATE 4,56:COLOR 4:PRINT"Sprite-Feld ist leer!":DELAY 1:LOCATE 4,56:PRINT REPEAT$(21," "):RETURN 85 ELSE RETURN 200 GOSUB 190:GOSUB 220:GOSUB 100:OPEN"o",1,Z$+".SPT":WRITE#1,C-G,D-H:FOR I=G TO C:FOR J=H TO D:PRINT#1,CHR$(POINT(500+I,150+J)+32):NEXT J,I:CLOSE:GOTO 85 210 GOSUB 220:SCREEN 9,,0:GOTO 20 215 OPEN"i",1,Z$+".SPT":M=1:INPUT#1,C,D:FOR I=0 TO C:FOR J=0 TO D:LINE INPUT#1,Y$:COLOR ASC(Y$)-32:LINE(I*8,J*8)-(I*8+7,J*8+7),,BF:PSET(500+I,150+J):NEXT J,I:CLOSE:GOTO 40 220 GET(500,150)-(549,192),C:SCREEN 0:CLS:IF S$="<" THEN PRINT TAB(38)"Laden" ELSE PRINT TAB(36)"Speichern" 221 Z$=EXTRACT$(Z$,"."):Y$="Verzeichnis: "+CURDIR$:LOCATE 12,INT((82-LEN(Y$))/2):PRINT Y$:LOCATE 14,23:PRINT"Dateiname: "Z$+MID$(REPEAT$(24,"ú"),1+LEN(Z$)):O=24:P=34:Q=14:GOSUB 230:IF MID$(Z$,2,1)=":" THEN CHDRIVE LEFT$(Z$,1):Z$=MID$(Z$,3) 225 FOR I=O TO 1 STEP-1:IF MID$(Z$,I,1)="\" THEN CHDIR LEFT$(Z$,I)+".":Z$=MID$(Z$,I+1):RETURN ELSE NEXT:RETURN 230 LOCATE Q,P,1,6,7:U=1:Q=1 235 Y$=INKEY$:IF Y$=CHR$(8) AND U>1 THEN Z$=LEFT$(Z$,U-2)+MID$(Z$,U):LOCATE,P:PRINT Z$"ú";:U=U-1:LOCATE,U-1+P ELSE T$=MID$(Y$,2):IF T$="S" AND UU-1 THEN LOCATE,P+U:U=U+1 ELSE IF T$="K" AND U>1 THEN LOCATE,P+U-2:U=U-1 ELSE IF T$="R" THEN Q=1-Q:LOCATE,,,Q*6,7 ELSE IF T$="O" THEN U=LEN(Z$)+1:LOCATE,P+U-1 ELSE IF T$="G" THEN LOCATE,P:U=1 245 IF Y$=CHR$(13) THEN LOCATE,,0:RETURN ELSE IF Y$=CHR$(27) THEN LOCATE,,0:GOSUB 100:RETURN 85 250 ON-(Y$<" " OR Y$>"þ" OR U>O)GOTO 235:Z$=LEFT$(Z$,U-1)+Y$+MID$(Z$,U+Q,O-U):LOCATE,P:PRINT Z$;:LOCATE,P+U:U=U+1:GOTO 235 260 SCREEN 9,,1:CLS:E=ERR:IF E=75 THEN M$="Datei geschtzt" ELSE IF E=71 THEN M$="Laufwerk nicht bereit" ELSE IF E=76 OR E=53 OR E=64 THEN M$="Datei nicht gefunden" ELSE IF E=61 THEN M$="Datentr„ger ist voll" 270 M$="Ursache: "+M$:SOUND 1200,2:COLOR 7:LOCATE 1,38:PRINT"Fehler":LOCATE 13,INT((82-LEN(M$))/2):PRINT M$:LOCATE 25,24:PRINT"Neue Eingabe <1> Wiederholen <2>"; 280 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 100:RESUME 85 285 ON-(Y$<"1" OR Y$>"2")GOTO 280:IF Y$="2" THEN RESUME ELSE IF S$="<" THEN RESUME 210 ELSE RESUME 200 290 GET(500,150)-(549,192),C:Q=POINT(X,Y):FOR I=0 TO 49:C=500+I:FOR J=0 TO 42:D=150+J:IF Q=POINT(C,D) THEN LINE(I*8,J*8)-(I*8+7,J*8+7),,BF:PSET(C,D) 295 NEXT J,I:M=1:GOTO 85 300 SCREEN,,1:CLS:U=0:FOR I=2 TO 24:READ Y$:FOR J=1 TO LEN(Y$):COLOR 14:LOCATE I,J+2:PRINT MID$(Y$,J,1);:COLOR 15:PRINT"Û":ON-(U=1)GOTO 305:SOUND 50,.2:DELAY .03:IF INKEY$=" " THEN U=1 305 NEXT:LOCATE I,J+2:PRINT" ":NEXT:RESTORE 310 ON-(INKEY$<>CHR$(27))GOTO 310:SCREEN,,0:GOTO 85 315 DATA"A N L E I T U N G","ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ","","....Punkt an Cursorposition setzen",".....Punkt an Cursorposition l”schen","........Anleitung aufrufen","........Sprite laden","........Sprite speichern" 320 DATA"........Farbpalette (Vordergrundfarbe „ndern)","........Pinselmodus de-/aktivieren","........Im ganzen Sprite Farbe unter Cursor"," durch Vordergrundfarbe ersetzen","........Mit gleicher Farbe umrandeten" 325 DATA" Bereich ausfllen","........Letzte Aktion rckg„ngig machen","........Sprite zentrieren",".......Sprite in entsprechende Ecke setzen"," (fr mehr Platz an Seiten gegenber)" 330 DATA".......Sprite horizontal spiegeln",".......Sprite vertikal spiegeln","......SPRITE-Editor zurcksetzen",".......Rckkehr in den Malmodus","+...Programm im Malmodus verlassen"