From 0e8508e81806c16a0cc78966050b7bf84e70e84f Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 10 Jan 2017 00:02:39 -0500 Subject: [PATCH] glados: decided separate level19 file not needed --- glados3.3/Makefile | 6 +- glados3.3/level19.bas | 329 ------------------------------------------ 2 files changed, 1 insertion(+), 334 deletions(-) delete mode 100644 glados3.3/level19.bas diff --git a/glados3.3/Makefile b/glados3.3/Makefile index 4cea392a..747ad651 100644 --- a/glados3.3/Makefile +++ b/glados3.3/Makefile @@ -14,9 +14,6 @@ CUBE.BAS: cube.bas PORTAL.BAS: portal.bas $(TXT2BAS) < portal.bas > PORTAL.BAS -LEVEL19.BAS: level19.bas - $(TXT2BAS) < level19.bas > LEVEL19.BAS - STILL_ALIVE.BAS: still_alive.bas $(TXT2BAS) < still_alive.bas > STILL_ALIVE.BAS @@ -34,7 +31,7 @@ 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 CUBE.BAS PORTAL_TITLE.HGR LEVEL19.BAS GLADOS.HGR + PORTAL.BAS CUBE.BAS PORTAL_TITLE.HGR GLADOS.HGR $(DOS33) -y glados33.dsk SAVE A STILL_ALIVE.BAS $(DOS33) -y glados33.dsk SAVE B OBJECTS.SHAPE $(DOS33) -y glados33.dsk SAVE B PORTAL_TITLE.HGR @@ -42,7 +39,6 @@ glados33.dsk: STILL_ALIVE.BAS OBJECTS.SHAPE SHAPE_TEST.BAS SOUND_TEST.BAS \ $(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 LEVEL19.BAS $(DOS33) -y glados33.dsk SAVE A CUBE.BAS clean: diff --git a/glados3.3/level19.bas b/glados3.3/level19.bas deleted file mode 100644 index c7b5ad82..00000000 --- a/glados3.3/level19.bas +++ /dev/null @@ -1,329 +0,0 @@ -' "Portal" in Applesoft BASIC -' by Vince Weaver (vince@deater.net) -' http://www.deater.net/weave/vmwprod/portal/ -' -' Variable Summary -' -' CX,CY = Chell X, Y OX,OY = Old Chell X,Y -' CD = Chell Direction OD = Old Direction -' VX,VY = Chell Velocity X/Y -' SX,SY = Cursor X,Y LX,LY = Old Cursor X,Y -' BO=Blue Portal Out BX,BY = Blue Portal X,Y -' GO=Orange Portal Out GX,GY = Orange Portal X,Y -' ZY,PY=Laser Y ZX,PX = Laser Begin/End -' T = TIME L = Current Level -' -' Title Screen -' -1 HOME:HGR:PRINT CHR$(4)+"BLOAD PORTAL_TITLE.HGR" -' -' Load Sound Library -' Violin sound, based on: https://gist.github.com/thelbane/9291cc81ed0d8e0266c8 -5 DATA 172,1,3,173,0,3,133,250,174,0,3,228,250,208,3,173,48,192,202,208,246,173,48,192,136,240,7,198,250,208,233,76,5,3,96 -6 FOR L=770 TO 804:READ V:POKE L,V:NEXT L -' -' Load Shape Table -' -8 POKE 232,0:POKE 233,29 -9 PRINT CHR$(4)+"BLOAD OBJECTS.SHAPE,A$1D00" -' -' Wait a few seconds, or until keypressed -' -10 I=0:VTAB 24:PRINT "H FOR HELP"; -11 IF PEEK(-16384)>=128 THEN GET A$:GOTO 13 -12 I=I+1:IF I<500 GOTO 11 -13 HGR -' -14 L=19 -' PRINT LEVEL INFO -15 TEXT:GOSUB 9000 -' Clear screen to black#2 -16 HOME:HGR:SCALE=2:ROT=0:HCOLOR=4:HPLOT 0,0:CALL 62454 -' -' Initialize Variables -' -20 CX=21:CY=100:CD=0:VX=0:VY=0:SX=140:SY=80:BO=0:GO=0:T=0:ZY=42:ZX=0:PX=0:PY=0 -' -' Draw Level Background -' -21 GOSUB 1000 -' -' Draw Initial Chell and Gun Cursor -' -22 SCALE=2:XDRAW 1 AT SX,SY -25 SCALE=1:XDRAW 3 AT CX,CY -' -30 REM MAIN LOOP -' -' Time related activities -32 T=T+1:IF T>100 THEN T=0:GOSUB 8000 -' -35 OX=CX:OY=CY:OD=CD:LX=SX:LY=SY -' -' Check keyboard -' -37 IF PEEK(-16384)<128 THEN GOTO 100 -40 GET A$ -42 IF A$="I" AND SY>4 THEN SY=SY-4 -44 IF A$="J" AND SX>4 THEN SX=SX-4 -46 IF A$="K" AND SX<275 THEN SX=SX+4 -48 IF A$="M" AND SY<150 THEN SY=SY+4 -50 IF A$="D" AND VX<0 THEN VX=0:CD=0:GOTO 52 -51 IF A$="D" THEN VX=8:CD=0 -52 IF A$="A" AND VX>0 THEN VX=0:CD=1:GOTO 54 -53 IF A$="A" THEN VX=-8:CD=1 -54 IF A$="Q" THEN GOTO 800 -56 IF A$=" " THEN VY=5:POKE 768,240:POKE 769,10:CALL 770 -58 IF A$="H" THEN GOSUB 5000 -60 IF A$="," THEN GOSUB 6000 -62 IF A$="." THEN GOSUB 6100 -' -' PHYSICS ENGINE -' -100 CY=CY-VY -105 VY=VY-4.5 -' Move X. Ensure we are always odd so colors are right -107 IF VX<2 AND VX>-2 THEN VX=0 -110 CX=CX+VX -' -' COLLISION DETECTION -' -' Portals -200 IF BO=0 OR GO=0 GOTO 210 -202 IF CX>BX-5 AND CXBY-12 THEN CX=GX+5*VX:CY=GY:POKE 768,180:POKE 769,40:CALL 770 -204 IF CX>GX-5 AND CXGY-12 THEN CX=BX+5*VX:CY=BY:POKE 768,180:POKE 769,40:CALL 770 -' Edges -210 IF CX<7 THEN CX=7:VX=0 -212 IF CX>271 THEN CX=271:VX=0 -214 IF CY<7 THEN CY=7:VY=-VY -' Floors -220 IF CX < 119 AND CY > 112 THEN CY=112:VY=0:VX=VX/2 -225 IF CX > 161 AND CY > 112 THEN CY=112:VY=0:VX=VX/2 -230 IF CX > 119 AND CX < 161 AND CY>140 THEN GOTO 800 -' LASER -' -232 IF ZY>CY-8 AND ZYZX AND CX-6<240 THEN GOTO 700 -234 IF PY>CY-8 AND PY0 AND CX-6CX THEN M=ZX -720 FOR I=240 TO M STEP -6:HPLOT I,ZY TO I+3,ZY:X=PEEK(-16336):NEXT I -730 FOR I=PX TO CX STEP -6:HPLOT I,PY TO I+3,PY:X=PEEK(-16336):NEXT I - -' -800 REM DEAD -805 VTAB 22:PRINT "YOU DIED!":PRINT "TRY AGAIN? (Y/N) "; -810 GET A$ -815 IF A$="Y" THEN GOTO 15 -820 IF A$="N" THEN GOTO 999 -830 GOTO 810 -' -999 END -1000 REM LEVEL 1 -' FLOOR -1005 HCOLOR=3 -1010 HPLOT 0,120 TO 112,120 TO 112,159 TO 168,159 TO 168,120 TO 279,120 -' "WATER" -1015 HCOLOR=1 -1020 FOR I=113 TO 167:HPLOT I,130 TO I,158:NEXT I -' PLATFORM -1030 HCOLOR=2:FOR I=230 TO 279:HPLOT I,50 TO I,56:NEXT I -' SENTRY -1035 HCOLOR=3:HPLOT 242,40 TO 242,46:HPLOT 243,40 TO 243,46:HPLOT 247,40 TO 247,46:HPLOT 248,40 TO 248,46 -1037 HPLOT 243,39 TO 247,39:HPLOT 242,46 TO 248,46 -1038 HPLOT 240,47 TO 241,47:HPLOT 239,48 TO 240,48:HPLOT 239,49 TO 240,49 -1039 HPLOT 249,47 TO 250,47:HPLOT 250,48 TO 251,48:HPLOT 250,49 TO 251,49 -1040 HCOLOR=5:HPLOT 244,41 TO 245,41:HPLOT 244,43 TO 245,43 -' LASER -1042 HPLOT ZX,ZY TO 240,ZY -' -' COMPANION CUBE -' 0123456789012 -'0 #### ### #### -'1 ### ### -'2 ## ## -'3 ## ## -'4 ## ##### ## -'5 ## ##### ## -'6 ### -'7 ## # # -'8 ### ### -'9 #### ### #### -1050 HCOLOR=3:X=261:Y=39 -1052 HPLOT X,Y TO X+3,Y :HPLOT X+5,Y TO X+7,Y:HPLOT X+9,Y TO X+12,Y -1054 HPLOT X,Y+1 TO X+2,Y+1: HPLOT X+10,Y+1 TO X+12,Y+1 -1056 HPLOT X,Y+2 TO X+1,Y+2: HPLOT X+11,Y+2 TO X+12,Y+2 -1058 HPLOT X,Y+4 TO X+1,Y+4: HPLOT X+11,Y+4 TO X+12,Y+4 -1060 HPLOT X,Y+5 TO X+1,Y+5: HPLOT X+11,Y+5 TO X+12,Y+5 -1062 HPLOT X,Y+7 TO X+1,Y+7: HPLOT X+11,Y+7 TO X+12,Y+7 -1064 HPLOT X,Y+8 TO X+2,Y+8: HPLOT X+10,Y+8 TO X+12,Y+8 -1066 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 -1068 HPLOT X+4,Y+3 TO X+5,Y+3:HPLOT X+7,Y+3 TO X+8,Y+3 -1070 HPLOT X+4,Y+4 TO X+8,Y+4 -1072 HPLOT X+4,Y+5 TO X+8,Y+5 -1074 HPLOT X+5,Y+6 TO X+7,Y+6 -1076 HPLOT X+6,Y+7 -1099 RETURN -' HELP -5000 REM HELP -5010 TEXT:HOME -5020 PRINT " **** HELP ****" -5025 PRINT -5030 PRINT " CHELL PORTAL GUN" -5035 PRINT " ~~~~~~~~~~~~~ ~~~~~~~~~~~~~" -5040 PRINT " A = MOVE LEFT I = UP" -5050 PRINT " D = MOVE RIGHT J = LEFT" -5060 PRINT " SPACE = JUMP K = RIGHT" -5070 PRINT " M = DOWN" -5080 PRINT " , = SHOOT BLUE" -5090 PRINT " Q = QUIT . = SHOOT ORANGE" -5100 PRINT:GET A$ -' return to hires -5110 POKE -16304,0 -5120 RETURN -' DRAW BLUE PORTAL -6000 REM DRAW BLUE -6002 POKE 768,143:POKE 769,40:CALL 770 -' Erase old -6004 SCALE=2 -6005 IF BO=1 THEN XDRAW 2 AT BX,BY -6010 BX=SX:BY=SY -6020 BO=1:XDRAW 2 AT BX,BY -6025 IF BO=1 AND GO=1 THEN GOTO 7000 -6030 RETURN -' DRAW ORANGE PORTAL -6100 REM DRAW ORANGE -6102 POKE 768,72:POKE 769,40:CALL 770 -' Erase old -6104 SCALE=2 -6105 IF GO=1 THEN XDRAW 2 AT GX,GY -6110 GX=SX+1:GY=SY -6120 GO=1:XDRAW 2 AT GX,GY -6125 IF BO=1 AND GO=1 THEN GOTO 7000 -6130 RETURN -' -' Handle Laser/Portal Interaction -7000 REM -' ERASE OLD -7010 HCOLOR=4:HPLOT ZX,ZY TO 240,ZY:HPLOT PX,PY TO 0,PY -' Check if hitting Blue -7010 IF (ZY>BY-7 AND ZYGY-7 AND ZY | *" -9066 PRINT"* *" -9068 PRINT"************************" -9090 POKE 32,0 -9091 FOR I=1 TO 2500:NEXT I -9099 RETURN -' -' BUGS: -' Shouldn't be able to create portals underground -' Artifacts when deleting portals -' -' TODO: -' -' Opening: -' General: -' Parametric Levels (Generic Game Engine) -' Button to specify horizontal vs vertical portals -' -' Level 1/19: -' Walking animation? -' Sentries shoot/laser through portal -' Walk on platform -' Sentries can be knocked over from behind -' Sentries an object that can go through portal -' Objects can be picked up with gun? -' Chell changes color (turns into Mel) going through O->B portal? -' -' End level: -' GLADOS -' Have GLADOS talk? -' Objects through portal -' Incinerator -' Die if go into incinerator -' Call out to Still Alive -' -