REM $INCLUDE: 'future.bi' Set640x480 32 file$ = "sonic3k.bin" rayon = 5 one$ = STRING$(1, 0) null& = 0 red& = RGB2Color(255, 0, 0) blue& = RGB2Color(0, 0, 255) bump& = RGB2Color(50, 50, 50) ring& = RGB2Color(255, 255, 255) yellow& = RGB2Color(255, 255, 0) unknown& = RGB2Color(150, 150, 150) stage1& = 2531552 OPEN file$ FOR BINARY AS #1 future.box 14 - rayon - 2, 14 - rayon - 2, 448 + 14 - rayon - 1, 448 + 14 - rayon - 1, 16777215 future.fillbox 14 - rayon - 2 + 1, 14 - rayon - 2 + 1, 448 + 14 - rayon - 1 - 1, 448 + 14 - rayon - 1 - 1, 0 FOR iii = 1 TO rayon: future.circle 500, 98, rayon + 1 - iii, unknown&: NEXT iii: future.print 514, 92, "INCONNU", 16777215, 0 future.box 500 - 5, 28 - 14 - 5, 500 + 5, 28 - 14 + 5, 16777215: future.print 514, 22 - 14, "", 16777215, 0 future.circle 500, 28, rayon, red&: future.print 514, 22, "ROUGE", 16777215, 0 future.circle 500, 42, rayon, blue&: future.print 514, 36, "BLEUE", 16777215, 0 future.circle 500, 56, rayon, bump&: future.print 514, 50, "MUR", 16777215, 0 future.circle 500, 70, rayon, ring&: future.print 514, 64, "RING", 16777215, 0 future.circle 500, 84, rayon, yellow&: future.print 514, 78, "SAUT", 16777215, 0 future.print 514, 250, "STAGE", 16777215, 0 future.print 514, 264, "< >", 16777215, 0 future.print 514, 300, "SAVE", 16777215, 0 future.print 514, 314, "QUIT", 16777215, 0 future.print 460, 428, "SONIC 3 & KNUCKLES", 16777215, 0 future.print 460, 442, "EDITOR v1.0 KATANA 2002", 16777215, 0 stage = 1 coche$ = "N" 1 future.print 514 + 11 - 2, 264, STR$(stage), 16777215, 0 stag& = stage1& + ((stage - 1) * (1024 + 8)) block$ = "" FOR i = 1 TO 1024 GET #1, stag& + i, one$ IF ASC(one$) = 0 THEN block$ = block$ + "N" IF ASC(one$) = 1 THEN block$ = block$ + "R" IF ASC(one$) = 2 THEN block$ = block$ + "B" IF ASC(one$) = 3 THEN block$ = block$ + "M" IF ASC(one$) = 4 THEN block$ = block$ + "G" IF ASC(one$) = 5 THEN block$ = block$ + "Y" NEXT i FOR i = 1 TO 32 FOR ii = 1 TO 32 stag$ = MID$(block$, i * 32 - 32 + ii, 1) known = 0 IF stag$ = "N" THEN colo& = null&: known = 1 IF stag$ = "R" THEN colo& = red&: known = 1 IF stag$ = "B" THEN colo& = blue&: known = 1 IF stag$ = "M" THEN colo& = bump&: known = 1 IF stag$ = "G" THEN colo& = ring&: known = 1 IF stag$ = "Y" THEN colo& = yellow&: known = 1 IF known = 1 THEN future.circle ii * 14, i * 14, rayon, colo& ELSE FOR iii = 1 TO rayon: future.circle ii * 14, i * 14, rayon + 1 - iii, unknown&: NEXT iii NEXT ii NEXT i future.mouseon DO future.updatemouse mx = Future.MouseX my = Future.MouseY b.g = (((Future.MouseB AND 1) = 1) ^ 2) ^ .5 b.d = (((Future.MouseB AND 2) = 2) ^ 2) ^ .5 future.print 514, 386, "mx: " + STR$(mx) + " ", 16777215, 0 future.print 514, 400, "my: " + STR$(my) + " ", 16777215, 0 IF b.g = 1 AND mx > 514 AND my > 266 AND mx < 521 AND my < 276 AND stage - 1 > 0 THEN stage = stage - 1: GOTO 1 IF b.g = 1 AND mx > 546 AND my > 266 AND mx < 554 AND my < 276 AND stage + 1 < 99 THEN stage = stage + 1: GOTO 1 IF b.g = 1 AND mx > 514 AND my > 301 + 14 AND mx < 545 AND my < 312 + 14 THEN GOTO 999 IF b.g = 1 AND mx > 495 AND my < 51 - 2 * 14 AND mx < 506 AND my > 34 - 2 * 14 THEN coche$ = "N": future.print 500, 120, " ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 495 AND my < 51 - 14 AND mx < 506 AND my > 34 - 14 THEN coche$ = "R": future.print 500, 120, "ROUGE ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 495 AND my < 51 AND mx < 506 AND my > 34 THEN coche$ = "B": future.print 500, 120, "BLEUE ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 495 AND my < 51 + 14 AND mx < 506 AND my > 34 + 14 THEN coche$ = "M": future.print 500, 120, "MUR (BUMPER) ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 495 AND my < 51 + 2 * 14 AND mx < 506 AND my > 34 + 2 * 14 THEN coche$ = "G": future.print 500, 120, "RING ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 495 AND my < 51 + 3 * 14 AND mx < 506 AND my > 34 + 3 * 14 THEN coche$ = "Y": future.print 500, 120, "SAUT (JAUNE) ", 16777215, 0: GOTO 20 IF b.g = 1 AND mx > 514 AND my > 301 AND mx < 545 AND my < 312 THEN GOTO 11 IF b.g = 1 THEN GOTO 10 20 LOOP 999 CLOSE future.mouseoff resetscreen END 666 future.print 1, 1, "ERROR", 1677215, 0 CLOSE resetscreen END 'ROUTINES: '--------- 10 IF coche$ = "N" THEN colo& = null& IF coche$ = "R" THEN colo& = red& IF coche$ = "B" THEN colo& = blue& IF coche$ = "M" THEN colo& = bump& IF coche$ = "G" THEN colo& = ring& IF coche$ = "Y" THEN colo& = yellow& FOR i = 1 TO 32 FOR ii = 1 TO 32 IF b.g = 1 AND mx > 9 + ii * 14 - 14 AND my > 9 + i * 14 - 14 AND mx < 20 + ii * 14 - 14 AND my < 20 + i * 14 - 14 THEN future.fillbox 9 + ii * 14 - 14, 9 + i * 14 - 14, 20 + ii * 14 - 14, 20 + i * 14 - 14, 0: future.circle 9 + ii * 14 - 14 + 5, 9 + _ i * 14 - 14 + 5, rayon, colo&: MID$(block$, i * 32 - 32 + ii, 1) = coche$ NEXT ii NEXT i GOTO 20 11 'SAUVEGARDE! FOR i = 1 TO 1024 a$ = MID$(block$, i, 1) IF a$ = "N" THEN one$ = STRING$(1, 0) IF a$ = "R" THEN one$ = STRING$(1, 1) IF a$ = "B" THEN one$ = STRING$(1, 2) IF a$ = "M" THEN one$ = STRING$(1, 3) IF a$ = "G" THEN one$ = STRING$(1, 4) IF a$ = "Y" THEN one$ = STRING$(1, 5) PUT #1, stag& + i, one$ NEXT i GOTO 1