SCREEN 13: CLS DIM pic%(31200), block%(240), r%(256), g%(256), b%(256) DEF SEG = VARSEG(pic%(0)): BLOAD "bobstuf.vga", VARPTR(pic%(0)) x = 0: y = 0: cur = 0: picker% = 0 u$ = CHR$(0) + CHR$(72) d$ = CHR$(0) + CHR$(80) l$ = CHR$(0) + CHR$(75) r$ = CHR$(0) + CHR$(77) DEF SEG OPEN "bobpal.pll" FOR BINARY AS #1 rc% = 0 FOR a% = 0 TO 255 rc% = rc% + 1: GET #1, rc%, r%(a%) rc% = rc% + 1: GET #1, rc%, g%(a%) rc% = rc% + 1: GET #1, rc%, b%(a%) r%(a%) = r%(a%) AND 255 g%(a%) = g%(a%) AND 255 b%(a%) = b%(a%) AND 255 NEXT CLOSE #1 FOR a% = 0 TO 255 PALETTE a%, r%(a%) + g%(a%) * 256 + b%(a%) * 65536 NEXT FOR yy = 0 TO 11 FOR xx = 0 TO 19 cur = (yy * 20) + xx block%(cur) = 0 NEXT: NEXT: GOSUB drawall w: LOCATE 1, 1: PRINT picker%; " " a$ = "": a$ = INKEY$ IF a$ = CHR$(27) THEN CLS : END PUT (x * 16, y * 16), pic%(picker% * 130), PSET IF a$ = u$ OR a$ = d$ OR a$ = l$ OR a$ = r$ THEN PUT (x * 16, y * 16), pic%(block%(curr) * 130), PSET IF a$ = u$ THEN y = y - 1: IF y < 0 THEN y = 0 IF a$ = d$ THEN y = y + 1: IF y > 11 THEN y = 11 IF a$ = l$ THEN x = x - 1: IF x < 0 THEN x = 0 IF a$ = r$ THEN x = x + 1: IF x > 19 THEN x = 19 IF a$ = "f" THEN GOSUB fillit curr = (y * 20) + x IF a$ = "." THEN picker% = picker% + 1: IF picker% > 199 THEN picker% = 0 IF a$ = "," THEN picker% = picker% - 1: IF picker% < 0 THEN picker% = 199 IF a$ = " " THEN block%(curr) = picker%: PUT (x * 16, y * 16), pic%(picker% * 130), PSET IF a$ = CHR$(13) THEN GOSUB done GOTO w drawall: FOR yy = 0 TO 11 FOR xx = 0 TO 19 cur = (yy * 20) + xx PUT (xx * 16, yy * 16), pic%(block%(cur) * 130), PSET NEXT: NEXT RETURN done: GOSUB drawall LOCATE 1, 1: INPUT "How many doors? ", doors FOR i = 1 TO doors GOSUB drawall LOCATE 1, 1: PRINT "door "; i d1: c$ = "": c$ = INKEY$ LINE (x * 16, y * 16)-(x * 16 + 15, y * 16 + 15), 15, B IF c$ = u$ OR c$ = d$ OR c$ = l$ OR c$ = r$ THEN PUT (x * 16, y * 16), pic%(block%(curr) * 130), PSET IF c$ = u$ THEN y = y - 1: IF y < 0 THEN y = 0 IF c$ = d$ THEN y = y + 1: IF y > 11 THEN y = 11 IF c$ = l$ THEN x = x - 1: IF x < 0 THEN x = 0 IF c$ = r$ THEN x = x + 1: IF x > 19 THEN x = 19 curr = (y * 20) + x IF c$ = " " THEN port%(i) = curr: LOCATE 1, 1: INPUT "to where? (room #) ", dest(i): GOTO d2 GOTO d1 d2: NEXT i GOSUB drawall LOCATE 1, 1: INPUT "Filename? ", n$ OPEN n$ FOR OUTPUT AS #1 FOR yy = 0 TO 11 FOR xx = 0 TO 19 cur = (yy * 20) + xx WRITE #1, block%(cur) NEXT: NEXT WRITE #1, doors FOR o = 1 TO doors WRITE #1, port%(o) WRITE #1, dest(o) NEXT o: CLOSE #1 GOSUB drawall: RETURN fillit: LOCATE 1, 1: INPUT "Fill screen with what block? ", fil FOR yy = 0 TO 11 FOR xx = 0 TO 19 cur = (yy * 20) + xx block%(cur) = fil NEXT: NEXT: GOSUB drawall: RETURN