From 1d3602d0866596ac5b32df793375822cc39b69ec Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 8 Jan 2017 23:18:27 -0500 Subject: [PATCH] glados: add companion cube/sprite editor --- glados3.3/Makefile | 6 ++++- glados3.3/cube.bas | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 glados3.3/cube.bas diff --git a/glados3.3/Makefile b/glados3.3/Makefile index 86e59bfa..747d7f64 100644 --- a/glados3.3/Makefile +++ b/glados3.3/Makefile @@ -8,6 +8,9 @@ all: glados33.dsk OBJECTS.SHAPE: objects.shape $(SHAPETABLE) -b < objects.shape > OBJECTS.SHAPE +CUBE.BAS: cube.bas + $(TXT2BAS) < cube.bas > CUBE.BAS + PORTAL.BAS: portal.bas $(TXT2BAS) < portal.bas > PORTAL.BAS @@ -28,12 +31,13 @@ SOUND_TEST.BAS: sound_test.bas $(TXT2BAS) < sound_test.bas > SOUND_TEST.BAS glados33.dsk: STILL_ALIVE.BAS OBJECTS.SHAPE SHAPE_TEST.BAS SOUND_TEST.BAS \ - PORTAL.BAS + PORTAL.BAS CUBE.BAS $(DOS33) -y glados33.dsk SAVE A STILL_ALIVE.BAS $(DOS33) -y glados33.dsk SAVE B OBJECTS.SHAPE $(DOS33) -y glados33.dsk SAVE A SHAPE_TEST.BAS $(DOS33) -y glados33.dsk SAVE A SOUND_TEST.BAS $(DOS33) -y glados33.dsk SAVE A PORTAL.BAS + $(DOS33) -y glados33.dsk SAVE A CUBE.BAS clean: rm -f *~ *.BAS *.SHAPE sound_test.bas shape_test.bas *.lst diff --git a/glados3.3/cube.bas b/glados3.3/cube.bas new file mode 100644 index 00000000..0e9a1a2f --- /dev/null +++ b/glados3.3/cube.bas @@ -0,0 +1,67 @@ +10 HGR +20 HCOLOR=3 +' CUBE +'30 HPLOT 0,1 TO 4,1:HPLOT 10,1 TO 14,1 +'40 HPLOT 0,2 TO 2,2:HPLOT 12,2 TO 14,2 +'50 HPLOT 0,3 TO 1,3:HPLOT 13,3 TO 14,3 +'60 HPLOT 0,4 TO 1,4:HPLOT 13,4 TO 14,4 +'70 HPLOT 0,6 TO 1,6:HPLOT 13,6 TO 14,6 +'80 HPLOT 0,7 TO 1,7:HPLOT 13,7 TO 14,7 +'90 HPLOT 0,8 TO 2,8:HPLOT 12,8 TO 14,8 +'100 HPLOT 0,9 TO 4,9:HPLOT 10,9 TO 14,9 +' +25 X=10:Y=10 +30 HPLOT X,Y TO X+3,Y :HPLOT X+5,Y TO X+7,Y:HPLOT X+9,Y TO X+12,Y +40 HPLOT X,Y+1 TO X+2,Y+1: HPLOT X+10,Y+1 TO X+12,Y+1 +50 HPLOT X,Y+2 TO X+1,Y+2: HPLOT X+11,Y+2 TO X+12,Y+2 +60 HPLOT X,Y+4 TO X+1,Y+4: HPLOT X+11,Y+4 TO X+12,Y+4 +70 HPLOT X,Y+5 TO X+1,Y+5: HPLOT X+11,Y+5 TO X+12,Y+5 +80 HPLOT X,Y+7 TO X+1,Y+7: HPLOT X+11,Y+7 TO X+12,Y+7 +90 HPLOT X,Y+8 TO X+2,Y+8: HPLOT X+10,Y+8 TO X+12,Y+8 +100 HPLOT X,Y+9 TO X+3,Y+9:HPLOT X+5,Y+9 TO X+7,Y+9:HPLOT X+9,Y+9 TO X+12,Y+9 +' 0123456789012 +'0 #### ### #### +'1 ### ### +'2 ## ## +'3 ## ## +'4 ## ##### ## +'5 ## ##### ## +'6 ### +'7 ## # # +'8 ### ### +'9 #### ### #### +' HEART +110 HPLOT X+4,Y+3 TO X+5,Y+3:HPLOT X+7,Y+3 TO X+8,Y+3 +120 HPLOT X+4,Y+4 TO X+8,Y+4 +130 HPLOT X+4,Y+5 TO X+8,Y+5 +140 HPLOT X+5,Y+6 TO X+7,Y+6 +150 HPLOT X+6,Y+7 +'110 HPLOT 5,3 TO 6,3:HPLOT 8,3 TO 9,3 +'120 HPLOT 4,4 TO 10,4 +'130 HPLOT 4,5 TO 10,5 +'140 HPLOT 5,6 TO 9,6 +'150 HPLOT 6,7 TO 8,7 +'160 HPLOT 7,8 +' +200 REM SPRITE EDIT +210 X=0:Y=0:ROT=0:SCALE=1 +220 HIMEM:8170 +230 POKE 232,234:POKE 233,31 +240 FOR L=8170 TO 8175: READ B:POKE L,B:NEXT L +250 DATA 1,0,4,0,6,0 +' +510 GET A$ +515 XDRAW 1 AT X,Y +517 IF A$="Q" THEN END +520 IF A$="I" THEN Y=Y-1 +530 IF A$="J" THEN X=X-1 +540 IF A$="K" THEN X=X+1 +550 IF A$="M" THEN Y=Y+1 +560 IF Y<0 THEN Y=0 +570 IF X<0 THEN X=0 +580 IF A$="0" THEN HCOLOR=0:HPLOT X,Y +590 IF A$="3" THEN HCOLOR=3:HPLOT X,Y +600 IF A$="1" THEN HCOLOR=1:HPLOT X,Y +610 IF A$="2" THEN HCOLOR=2:HPLOT X,Y +620 XDRAW 1 AT X,Y +630 GOTO 510