glados: can make horizontal portals now

This commit is contained in:
Vince Weaver 2017-01-10 12:08:13 -05:00
parent 5fd174c30a
commit c7d76640e6
2 changed files with 84 additions and 73 deletions

View File

@ -1,18 +1,21 @@
# Number of shapes # Number of shapes
7 7
# "Cross Hair" # "Cross Hair" (why is this in quotes?)
# | # #
# | # #
# -- -- # #
# | # #
# | # ##.##
# #
# #
# #
# #
START START
NLT NLT NLT NLT
RT RT NRT RT RT NRT NRT LT LT
NRT LT LT NDN NDN NDN NDN UP UP UP UP UP UP UP UP UP
NDN NDN
UP UP UP UP UP
STOP STOP
# #
# "Portal" # "Portal"
# # # #
@ -28,11 +31,27 @@ STOP
# # # # # #
# # # # # #
# # # #
#
START START
NLT NLT UP UP UP NRT UP UP UP NRT RT NDN NLT NLT UP UP UP NRT UP UP UP NRT RT NDN
DN DN DN NRT DN DN DN DN DN NLT DN DN DN NLT DN DN DN NRT DN DN DN DN DN NLT DN DN DN NLT
UP NLT UP UP UP NLT UP UP UP UP NLT UP UP UP NLT UP UP UP
STOP STOP
# Sideways Portal
# #*#*#*#*#*#*#
# #*# #*#
# *# . #*
# #*# #*#
# #*#*#*#*#*#*#
START
NDN NDN NRT RT NRT RT NRT RT NRT UP
RT NRT UP UP LT NLT UP
LT NLT LT NLT LT NLT LT NLT LT NLT LT NLT DN
LT NLT DN DN RT NRT DN
RT NRT RT NRT RT
STOP
# Chell Right # Chell Right
# #
# B B # B B
@ -73,7 +92,7 @@ NRT RT DN LT LT DN NRT RT DN NLT DN LT NLT
LT UP LT LT LT LT LT DN NRT RT RT NRT NRT NDN LT LT LT LT LT LT LT UP LT LT LT LT LT DN NRT RT RT NRT NRT NDN LT LT LT LT LT LT
STOP STOP
# FireBall #5 # FireBall #6
# #
# # # #
# # # # # #
@ -84,7 +103,7 @@ START
NDN NDN UP NRT UP NRT UP NLT UP NLT DN NLT DN NLT DN NRT DN NRT NDN NDN UP NRT UP NRT UP NLT UP NLT DN NLT DN NLT DN NRT DN NRT
STOP STOP
# Blue Core #6 # Blue Core #7
# ####### # #######
# ## ## # ## ##
# ## # # # ## # ## # # # ##
@ -102,17 +121,3 @@ LT LT LT UP LT UP LT UP RT UP LT UP NRT RT UP RT RT RT RT RT RT DN
# Upper Left # Upper Left
RT DN RT DN LT DN RT DN NLT LT DN LT LT LT RT DN RT DN LT DN RT DN NLT LT DN LT LT LT
STOP STOP
#
# Sideways Portal
# #*#*#*#*#*#*#
# #*# #*#
# *# . #*
# #*# #*#
# #*#*#*#*#*#*#
START
NDN NDN NRT RT NRT RT NRT RT NRT UP
RT NRT UP UP LT NLT UP
LT NLT LT NLT LT NLT LT NLT LT NLT LT NLT DN
LT NLT DN DN RT NRT DN
RT NRT RT NRT RT
STOP

View File

@ -10,6 +10,7 @@
' SX,SY = Cursor X,Y LX,LY = Old Cursor X,Y ' SX,SY = Cursor X,Y LX,LY = Old Cursor X,Y
' BO=Blue Portal Out BX,BY = Blue Portal X,Y ' BO=Blue Portal Out BX,BY = Blue Portal X,Y
' GO=Orange Portal Out GX,GY = Orange Portal X,Y ' GO=Orange Portal Out GX,GY = Orange Portal X,Y
' PR=Portal rotated, LR=Last rotate
' JO=Object out JX,JY = Object X,Y JA=J add ' JO=Object out JX,JY = Object X,Y JA=J add
' ZY,PY=Laser Y ZX,PX = Laser Begin/End ' ZY,PY=Laser Y ZX,PX = Laser Begin/End
' T = TIME L = Current Level ' T = TIME L = Current Level
@ -24,9 +25,9 @@
6 FOR L=770 TO 804:READ V:POKE L,V:NEXT L 6 FOR L=770 TO 804:READ V:POKE L,V:NEXT L
' '
' Load Shape Table ' Load Shape Table
' ' We just *barely* fit above the soud but below DOS vectors
8 POKE 232,0:POKE 233,31 8 POKE 232,38:POKE 233,3
9 PRINT CHR$(4)+"BLOAD OBJECTS.SHAPE,A$1F00" 9 PRINT CHR$(4)+"BLOAD OBJECTS.SHAPE,A$326"
' '
' Wait a few seconds, or until keypressed ' Wait a few seconds, or until keypressed
' '
@ -35,7 +36,7 @@
12 I=I+1:IF I<500 GOTO 11 12 I=I+1:IF I<500 GOTO 11
13 HGR 13 HGR
' '
14 L=1 14 L=19
' PRINT LEVEL INFO ' PRINT LEVEL INFO
15 TEXT:GOSUB 9000 15 TEXT:GOSUB 9000
' Clear screen to black#2 ' Clear screen to black#2
@ -43,7 +44,7 @@
' '
' Initialize Variables ' 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:JO=0 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:JO=0:PR=0:LR=0
' '
' Draw Level Background ' Draw Level Background
' '
@ -53,7 +54,7 @@
' Draw Initial Chell and Gun Cursor ' Draw Initial Chell and Gun Cursor
' '
25 SCALE=2:XDRAW 1 AT SX,SY 25 SCALE=2:XDRAW 1 AT SX,SY
27 SCALE=1:XDRAW 3 AT CX,CY 27 SCALE=1:XDRAW 4 AT CX,CY
' '
30 REM MAIN LOOP 30 REM MAIN LOOP
' '
@ -62,7 +63,7 @@
32 IF L=1 AND T=50 THEN GOSUB 8000 32 IF L=1 AND T=50 THEN GOSUB 8000
34 IF T>100 THEN T=0 34 IF T>100 THEN T=0
' '
35 OX=CX:OY=CY:OD=CD:LX=SX:LY=SY 35 OX=CX:OY=CY:OD=CD:LX=SX:LY=SY:LR=PR
' '
' Check keyboard ' Check keyboard
' '
@ -81,6 +82,7 @@
58 IF A$="H" THEN GOSUB 5000 58 IF A$="H" THEN GOSUB 5000
60 IF A$="," THEN GOSUB 6000 60 IF A$="," THEN GOSUB 6000
62 IF A$="." THEN GOSUB 6100 62 IF A$="." THEN GOSUB 6100
63 IF A$=";" THEN PR=1-PR
' '
' PHYSICS ENGINE ' PHYSICS ENGINE
' '
@ -89,8 +91,9 @@
' Move X. Ensure we are always odd so colors are right ' Move X. Ensure we are always odd so colors are right
107 IF VX<2 AND VX>-2 THEN VX=0 107 IF VX<2 AND VX>-2 THEN VX=0
110 CX=CX+VX 110 CX=CX+VX
115 IF L=19 AND JO=0 THEN JO=1:JX=45:JY=10:JA=5:SCALE=2:XDRAW 5 AT JX,JY ' Move the Level19 blob object
120 IF L=19 AND JO=1 THEN SCALE=2:XDRAW 5 AT JX,JY:JY=JY+JA:XDRAW 5 AT JX,JY 115 IF L=19 AND JO=0 THEN JO=1:JX=45:JY=10:JA=5:SCALE=2:XDRAW 6 AT JX,JY:POKE 768,200:POKE 769,10:CALL 770
120 IF L=19 AND JO=1 THEN SCALE=2:XDRAW 6 AT JX,JY:JY=JY+JA:XDRAW 6 AT JX,JY
' '
' COLLISION DETECTION ' COLLISION DETECTION
' '
@ -111,8 +114,8 @@
222 IF CX > 240 AND CY>100 THEN GOTO 800 222 IF CX > 240 AND CY>100 THEN GOTO 800
223 IF CX > 215 AND CY>105 THEN CX=215 223 IF CX > 215 AND CY>105 THEN CX=215
' Dropping Blob ' Dropping Blob
224 IF JO=1 AND CX>JX-5 AND CX<JX+5 AND CY<JY+5 AND CY>JY-5 THEN GOTO 800 224 IF JO=1 AND JX>CX-5 AND JX<CX+5 AND JY>CY-7 AND JY<CY+7 THEN GOTO 800
225 IF JO=1 AND JY>120 THEN JO=0 225 IF JO=1 AND JY>120 THEN SCALE=2:XDRAW 6 AT JX,JY:JO=0
226 GOTO 240 226 GOTO 240
' Level 1 Floors ' Level 1 Floors
227 IF CX < 119 AND CY > 112 THEN CY=112:VY=0:VX=VX/2 227 IF CX < 119 AND CY > 112 THEN CY=112:VY=0:VX=VX/2
@ -124,19 +127,20 @@
' '
240 REM 240 REM
' DRAW AT UPDATE CO-ORDS ' DRAW AT UPDATE CO-ORDS
245 IF OX=CX AND OY=CY AND OD=CD GOTO 255 245 IF OX=CX AND OY=CY AND OD=CD GOTO 254
250 SCALE=1:XDRAW 3+OD AT OX,OY 250 SCALE=1:XDRAW 4+OD AT OX,OY
251 XDRAW 3+CD AT CX,CY 251 XDRAW 4+CD AT CX,CY
255 IF LX=SX AND LY=SY GOTO 300 254 IF LX=SX AND LY=SY AND LR=PR GOTO 300
256 SCALE=2:XDRAW 1 AT LX,LY 255 SCALE=2:ROT=0:IF LR=1 THEN ROT=16
257 XDRAW 1 AT SX,SY 256 XDRAW 1 AT LX,LY:ROT=0:IF PR=1 THEN ROT=16
257 XDRAW 1 AT SX,SY:ROT=0
300 REM 300 REM
500 GOTO 30 500 GOTO 30
' '
700 REM LASER DEAD 700 REM LASER DEAD
705 HCOLOR=3 705 HCOLOR=3
707 GOSUB 8010 707 GOSUB 8010
710 SCALE=1:XDRAW 3+OD AT OX,OY:ROT=32:XDRAW 3+CD AT CX,CY 710 SCALE=1:XDRAW 4+OD AT OX,OY:ROT=32:XDRAW 4+CD AT CX,CY
715 M=CX:IF ZX>CX THEN M=ZX 715 M=CX:IF ZX>CX THEN M=ZX
720 FOR I=240 TO M STEP -6:HPLOT I,ZY TO I+3,ZY:X=PEEK(-16336):NEXT I 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 730 FOR I=PX TO CX STEP -6:HPLOT I,PY TO I+3,PY:X=PEEK(-16336):NEXT I
@ -206,7 +210,8 @@
' LEVEL 19 ' LEVEL 19
2000 PRINT CHR$(4);"BLOAD GLADOS.HGR" 2000 PRINT CHR$(4);"BLOAD GLADOS.HGR"
' Draw the blue core ' Draw the blue core
2005 SCALE=1:XDRAW 6 AT 150,65 2005 SCALE=1:XDRAW 7 AT 150,65
2007 HTAB 3:VTAB 21: PRINT "Well, you found me. Congratulations."
2099 RETURN 2099 RETURN
' HELP ' HELP
5000 REM HELP 5000 REM HELP
@ -216,11 +221,12 @@
5030 PRINT " CHELL PORTAL GUN" 5030 PRINT " CHELL PORTAL GUN"
5035 PRINT " ~~~~~~~~~~~~~ ~~~~~~~~~~~~~" 5035 PRINT " ~~~~~~~~~~~~~ ~~~~~~~~~~~~~"
5040 PRINT " A = MOVE LEFT I = UP" 5040 PRINT " A = MOVE LEFT I = UP"
5050 PRINT " D = MOVE RIGHT J = LEFT" 5045 PRINT " D = MOVE RIGHT J = LEFT"
5060 PRINT " SPACE = JUMP K = RIGHT" 5050 PRINT " SPACE = JUMP K = RIGHT"
5070 PRINT " M = DOWN" 5055 HTAB 24:PRINT "M = DOWN"
5080 PRINT " , = SHOOT BLUE" 5060 HTAB 24:PRINT ", = SHOOT BLUE"
5090 PRINT " Q = QUIT . = SHOOT ORANGE" 5065 HTAB 24:PRINT ". = SHOOT ORANGE"
5070 PRINT " Q = QUIT ; = ROTATE PORTAL"
5100 PRINT:GET A$ 5100 PRINT:GET A$
' return to hires ' return to hires
5110 POKE -16304,0 5110 POKE -16304,0
@ -229,20 +235,20 @@
6000 REM DRAW BLUE 6000 REM DRAW BLUE
6002 POKE 768,143:POKE 769,40:CALL 770 6002 POKE 768,143:POKE 769,40:CALL 770
' Erase old ' Erase old
6004 SCALE=2 6004 SCALE=2: IF PR=1 THEN SCALE=1
6005 IF BO=1 THEN XDRAW 2 AT BX,BY 6005 IF BO=1 THEN XDRAW 2+PR AT BX,BY
6010 BX=SX:BY=SY 6010 BX=SX:BY=SY
6020 BO=1:XDRAW 2 AT BX,BY 6020 BO=1:XDRAW 2+PR AT BX,BY
6025 IF BO=1 AND GO=1 AND L=1 THEN GOTO 7000 6025 IF BO=1 AND GO=1 AND L=1 THEN GOTO 7000
6030 RETURN 6030 RETURN
' DRAW ORANGE PORTAL ' DRAW ORANGE PORTAL
6100 REM DRAW ORANGE 6100 REM DRAW ORANGE
6102 POKE 768,72:POKE 769,40:CALL 770 6102 POKE 768,72:POKE 769,40:CALL 770
' Erase old ' Erase old
6104 SCALE=2 6104 SCALE=2: IF PR=1 THEN SCALE=1
6105 IF GO=1 THEN XDRAW 2 AT GX,GY 6105 IF GO=1 THEN XDRAW 2+PR AT GX,GY
6110 GX=SX+1:GY=SY 6110 GX=SX+1:GY=SY
6120 GO=1:XDRAW 2 AT GX,GY 6120 GO=1:XDRAW 2+PR AT GX,GY
6125 IF BO=1 AND GO=1 AND L=1 THEN GOTO 7000 6125 IF BO=1 AND GO=1 AND L=1 THEN GOTO 7000
6130 RETURN 6130 RETURN
' '
@ -336,28 +342,28 @@
' '
' Opening: ' Opening:
' General: ' General:
' FUTURE: Parametric Levels (Generic Game Engine) ' FUTURE: Parametric Levels (Generic Game Engine)
' FUTURE: Button to specify horizontal vs vertical portals ' FUTURE: Button to specify horizontal vs vertical portals
' BUG: Physics: can walk when in air ' BUG: Physics: can walk when in air
' '
' Level 1/19: ' Level 1/19:
' FUTURE: Walking animation? ' FUTURE: Walking animation?
' FUTURE: Walk on all platforms ' FUTURE: Walk on all platforms
' FUTURE: Knock over sentries from behind ' FUTURE: Knock over sentries from behind
' FUTURE: Sentries an object that can go through portal ' FUTURE: Sentries an object that can go through portal
' FUTURE: Objects can be picked up with gun? ' FUTURE: Objects can be picked up with gun?
' BUG: Chell changes color (turns into Mel) going through O->B portal? ' BUG: Chell changes color (turns into Mel) going through O->B portal?
' '
' End level: ' End level:
' FUTURE: Have GLADOS talk? ' FUTURE: Have GLADOS talk?
' FUTURE: Objects through portal ' FUTURE: Objects through portal
' FUTURE: Incinerator ' FUTURE: Incinerator
' FUTURE: Call out to Still Alive when finish ' FUTURE: Call out to Still Alive when finish
' FUTURE: Sound for blob gun? ' FUTURE: Sound for blob gun?
' FUTURE: Erase blob at end ' FUTURE: Erase blob at end
' FUTURE: Explosion at end (red moire circle?) ' FUTURE: Explosion at end (red moire circle?)
' '
' Impossible to draw an ASCII Cake ' It turns out it is impossible to draw an ASCII Cake
' '
' __ /@/| ' __ /@/|
' /@/| | |/| ' /@/| | |/|