Better code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Thu, 21 Aug 2025 16:44:41 +0000 (19:44 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Thu, 21 Aug 2025 16:44:41 +0000 (19:44 +0300)
Games/Pomppu Paavo.bas

index c74b013..2822882 100755 (executable)
@@ -20,15 +20,13 @@ DIM SHARED asciiLevelData(1 TO 20) AS STRING * 31
 DIM SHARED FirstCompanionY%, FirstCompanionX%, SecondCompanionY%, SecondCompanionX%\r
 DIM SHARED LivesRemaining%, CoinsCollected%\r
 DIM SHARED DoorEntryX%, DoorEntryY%, DoorExitX%, DoorExitY%\r
-DIM SHARED currentLevelNumber\r
-DIM SHARED text$(1 TO 1000)\r
-DIM SHARED pikkus\r
-DIM SHARED terrainGrid(0 TO 34, -10 TO 20) AS STRING * 1\r
-DIM SHARED objectGrid(0 TO 34, -10 TO 20) AS STRING * 1\r
+DIM SHARED CurrentLevelNumber%\r
+DIM SHARED TerrainGrid(0 TO 34, -10 TO 20) AS STRING * 1\r
+DIM SHARED ObjectGrid(0 TO 34, -10 TO 20) AS STRING * 1\r
 \r
 ' Full scale sprites\r
-DIM SHARED solidBlockImage(51)\r
-DIM SHARED emptySpaceImage(51)\r
+DIM SHARED SolidTerrainSprite(51)\r
+DIM SHARED EmptySpaceSprite(51)\r
 DIM SHARED kast(51)\r
 DIM SHARED mar1(70)\r
 DIM SHARED pilv(209)\r
@@ -41,20 +39,20 @@ DIM SHARED poosas(100)
 DIM SHARED aken(100)\r
 DIM SHARED vedru(50)\r
 DIM SHARED intro(6000)\r
-DIM SHARED puu(3000)\r
+DIM SHARED TreeSprite(3000)\r
 DIM SHARED noolt(51)\r
 DIM SHARED noolt1(51)\r
-DIM SHARED auk(51)\r
+DIM SHARED HoleSprite(51)\r
 DIM SHARED sipp1(51)\r
 DIM SHARED sipp2(51)\r
 DIM SHARED sipp10(51)\r
 DIM SHARED sipp20(51)\r
 DIM SHARED sipp3(51)\r
-DIM SHARED uks(120)\r
+DIM SHARED DoorSprite(120)\r
 \r
 ' Small scale sprites (S suffix is used)\r
-DIM SHARED solidBlockImageS(51)\r
-DIM SHARED emptySpaceImageS(51)\r
+DIM SHARED SolidTerrainSpriteSmall(51)\r
+DIM SHARED EmptySpaceSpriteSmall(51)\r
 DIM SHARED kastm(51)\r
 DIM SHARED marm1(70)\r
 DIM SHARED pilvm(209)\r
@@ -66,16 +64,16 @@ DIM SHARED muntm(30)
 DIM SHARED poosasm(100)\r
 DIM SHARED akenm(100)\r
 DIM SHARED vedrum(50)\r
-DIM SHARED puum(3000)\r
+DIM SHARED TreeSpriteSmall(3000)\r
 DIM SHARED nooltm(51)\r
 DIM SHARED nooltm1(51)\r
-DIM SHARED aukm(51)\r
+DIM SHARED HoleSpriteSmall(51)\r
 DIM SHARED sippm1(51)\r
 DIM SHARED sippm2(51)\r
 DIM SHARED sippm10(51)\r
 DIM SHARED sippm20(51)\r
 DIM SHARED sippm3(51)\r
-DIM SHARED uksm(50)\r
+DIM SHARED DoorSpriteSmall(50)\r
 \r
 \r
 DIM SHARED kuikiir\r
@@ -85,17 +83,17 @@ upArrowKey$ = CHR$(0) + "H"
 downArrowKey$ = CHR$(0) + "P"\r
 LivesRemaining% = 10\r
 SCREEN 1\r
-currentLevelNumber = 1\r
+CurrentLevelNumber% = 1\r
 REM joonist\r
 REM END\r
-GET (1, 1)-(20, 20), emptySpaceImage\r
+GET (1, 1)-(20, 20), EmptySpaceSprite\r
 DrawSprite 0, 0, 1, 1, 1\r
-GET (1, 1)-(20, 20), solidBlockImage\r
+GET (1, 1)-(20, 20), SolidTerrainSprite\r
 DrawSprite 0, 0, 4, 1, 1\r
 GET (1, 1)-(20, 20), kast\r
-PUT (1, 180), solidBlockImage, PSET\r
-PUT (300, 1), solidBlockImage, PSET\r
-PUT (300, 180), solidBlockImage, PSET\r
+PUT (1, 180), SolidTerrainSprite, PSET\r
+PUT (300, 1), SolidTerrainSprite, PSET\r
+PUT (300, 180), SolidTerrainSprite, PSET\r
 DrawSprite 30, 50, 2, 1, 1\r
 GET (31, 51)-(91, 76), pilv\r
 PUT (160, 10), pilv, PSET\r
@@ -118,7 +116,7 @@ DrawSprite 0, 0, 9, 1, 1
 GET (1, 1)-(21, 11), vedru\r
 CLS\r
 DrawSprite 0, 0, 11, 1, 1\r
-GET (1, 1)-(51, 81), puu\r
+GET (1, 1)-(51, 81), TreeSprite\r
 CLS\r
 DrawSprite 0, 0, 12, 1, 1\r
 GET (1, 1)-(20, 20), noolt\r
@@ -127,7 +125,7 @@ DrawSprite 0, 0, 12, 50, 1
 GET (1, 1)-(20, 20), noolt1\r
 CLS\r
 DrawSprite 0, 0, 13, 1, 1\r
-GET (1, 1)-(20, 20), auk\r
+GET (1, 1)-(20, 20), HoleSprite\r
 CLS\r
 DrawSprite 0, 0, 14, 1, 1\r
 GET (1, 1)-(20, 20), sipp1\r
@@ -144,14 +142,14 @@ CLS
 DrawSprite 0, 0, 16, 1, 1\r
 GET (1, 1)-(20, 20), sipp3\r
 CLS\r
-GET (1, 1)-(10, 10), emptySpaceImageS\r
+GET (1, 1)-(10, 10), EmptySpaceSpriteSmall\r
 DrawSprite 0, 0, 1, 1, 2\r
-GET (1, 1)-(10, 10), solidBlockImageS\r
+GET (1, 1)-(10, 10), SolidTerrainSpriteSmall\r
 DrawSprite 0, 0, 4, 1, 2\r
 GET (1, 1)-(10, 10), kastm\r
-PUT (1, 180), solidBlockImage, PSET\r
-PUT (300, 1), solidBlockImage, PSET\r
-PUT (300, 180), solidBlockImage, PSET\r
+PUT (1, 180), SolidTerrainSprite, PSET\r
+PUT (300, 1), SolidTerrainSprite, PSET\r
+PUT (300, 180), SolidTerrainSprite, PSET\r
 DrawSprite 30, 50, 2, 1, 2\r
 GET (16, 26)-(46, 38), pilvm\r
 DrawSprite 20, 100, 3, 1, 2\r
@@ -173,7 +171,7 @@ DrawSprite 0, 0, 9, 1, 2
 GET (1, 1)-(11, 6), vedrum\r
 CLS\r
 DrawSprite 0, 0, 11, 1, 2\r
-GET (1, 1)-(26, 41), puum\r
+GET (1, 1)-(26, 41), TreeSpriteSmall\r
 CLS\r
 DrawSprite 0, 0, 12, 1, 2\r
 GET (1, 1)-(10, 10), nooltm\r
@@ -182,7 +180,7 @@ DrawSprite 0, 0, 12, 50, 2
 GET (1, 1)-(10, 10), nooltm1\r
 CLS\r
 DrawSprite 0, 0, 13, 1, 2\r
-GET (1, 1)-(10, 10), aukm\r
+GET (1, 1)-(10, 10), HoleSpriteSmall\r
 CLS\r
 DrawSprite 0, 0, 14, 1, 2\r
 GET (1, 1)-(10, 10), sippm1\r
@@ -200,7 +198,7 @@ DrawSprite 0, 0, 16, 1, 2
 GET (1, 1)-(10, 10), sippm3\r
 CLS\r
 DrawSprite 0, 0, 17, 1, 1\r
-GET (1, 1)-(21, 31), uks\r
+GET (1, 1)-(21, 31), DoorSprite\r
 CLS\r
 DrawSprite 0, 0, 17, 1, 2\r
 GET (1, 1)-(11, 16), intro\r
@@ -234,36 +232,36 @@ PUT (FirstCompanionX%, FirstCompanionY%), siil, OR
 GET (SecondCompanionX%, SecondCompanionY%)-(SecondCompanionX% + 10, SecondCompanionY% + 10), siil2\r
 PUT (SecondCompanionX%, SecondCompanionY%), siil, OR\r
 SOUND 0, .8\r
-IF terrainGrid((a + 38) \ 20, (b + 37) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
-IF terrainGrid((a + 38) \ 20, (b + 22) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
+IF TerrainGrid((a + 38) \ 20, (b + 37) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
+IF TerrainGrid((a + 38) \ 20, (b + 22) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
 \r
-IF terrainGrid((a + 21) \ 20, (b + 22) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
-IF terrainGrid((a + 21) \ 20, (b + 37) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
+IF TerrainGrid((a + 21) \ 20, (b + 22) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
+IF TerrainGrid((a + 21) \ 20, (b + 37) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
 \r
-IF terrainGrid((a + 22) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
-IF terrainGrid((a + 37) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
+IF TerrainGrid((a + 22) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
+IF TerrainGrid((a + 37) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
 \r
-IF terrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
-IF terrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
+IF TerrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
+IF TerrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
 \r
-qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 1: eda = -10: all = -5: DisplayGameStatistics\r
+qwer = qwer + 1: IF ObjectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 1: eda = -10: all = -5: DisplayGameStatistics\r
 IF qwer > 100 THEN qwer = 50\r
-                IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 1: kustuta1 = 1: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
+                IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 1: kustuta1 = 1: DisplayGameStatistics: TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
 lke = lke + 1\r
 r = r + 1: IF r > 10 THEN r = 0: IF eda > 0 THEN eda = eda - 1:  ELSE IF eda < 0 THEN eda = eda + 1\r
 r1 = r1 + 1: IF r1 > 3 THEN r1 = 0: all = all + 1\r
 lk = lk + 1: cd = cd - 1\r
-IF objectGrid((a + 30) \ 20, (b + 21) \ 20) = "o" THEN terrainGrid((a + 30) \ 20, (b + 21) \ 20) = "": objectGrid((a + 30) \ 20, (b + 21) \ 20) = "": kustuta = 1\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN terrainGrid((a + 30) \ 20, (b + 38) \ 20) = "": objectGrid((a + 30) \ 20, (b + 38) \ 20) = "": kustuta2 = 1\r
-IF terrainGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 25) \ 20) = "z" THEN siiall = -1\r
-IF terrainGrid((FirstCompanionX% + 30) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = -1\r
-IF terrainGrid((FirstCompanionX% + 20) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = 1\r
-IF terrainGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
-IF terrainGrid((SecondCompanionX% + 30) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = -1\r
-IF terrainGrid((SecondCompanionX% + 20) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = 1\r
+IF ObjectGrid((a + 30) \ 20, (b + 21) \ 20) = "o" THEN TerrainGrid((a + 30) \ 20, (b + 21) \ 20) = "": ObjectGrid((a + 30) \ 20, (b + 21) \ 20) = "": kustuta = 1\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN TerrainGrid((a + 30) \ 20, (b + 38) \ 20) = "": ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "": kustuta2 = 1\r
+IF TerrainGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 25) \ 20) = "z" THEN siiall = -1\r
+IF TerrainGrid((FirstCompanionX% + 30) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = -1\r
+IF TerrainGrid((FirstCompanionX% + 20) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = 1\r
+IF TerrainGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
+IF TerrainGrid((SecondCompanionX% + 30) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = -1\r
+IF TerrainGrid((SecondCompanionX% + 20) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = 1\r
 IF FirstCompanionX% > 300 THEN siie = -1\r
 IF FirstCompanionX% < 3 THEN siie = 1\r
 IF SecondCompanionX% > 300 THEN siie1 = -1\r
@@ -271,25 +269,25 @@ IF SecondCompanionX% < 3 THEN siie1 = 1
 PUT (SecondCompanionX%, SecondCompanionY%), siil2, PSET\r
 PUT (FirstCompanionX%, FirstCompanionY%), siil1, PSET\r
 IF b > 0 THEN PUT (a, b), mar1, PSET\r
-IF kustuta = 1 THEN kustuta = 0: PUT (((a + 10) \ 20) * 20, (b \ 20) * 20), emptySpaceImage, PSET\r
-IF kustuta1 = 1 THEN kustuta1 = 0: PUT (((a + 10) \ 20) * 20, ((b + 10) \ 20) * 20), emptySpaceImage, PSET\r
-IF kustuta2 = 1 THEN kustuta2 = 0: PUT (((a + 10) \ 20) * 20, ((b + 28) \ 20) * 20), emptySpaceImage, PSET\r
+IF kustuta = 1 THEN kustuta = 0: PUT (((a + 10) \ 20) * 20, (b \ 20) * 20), EmptySpaceSprite, PSET\r
+IF kustuta1 = 1 THEN kustuta1 = 0: PUT (((a + 10) \ 20) * 20, ((b + 10) \ 20) * 20), EmptySpaceSprite, PSET\r
+IF kustuta2 = 1 THEN kustuta2 = 0: PUT (((a + 10) \ 20) * 20, ((b + 28) \ 20) * 20), EmptySpaceSprite, PSET\r
 IF makk = 1 THEN makk = 0: a = a - 20\r
-objectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "": objectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = ""\r
+ObjectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "": ObjectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = ""\r
 FirstCompanionX% = FirstCompanionX% + siie\r
 FirstCompanionY% = FirstCompanionY% + siiall\r
 SecondCompanionX% = SecondCompanionX% + siie1\r
 SecondCompanionY% = SecondCompanionY% + siiall1\r
-objectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "q": objectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = "q"\r
+ObjectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "q": ObjectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = "q"\r
 siiall = siiall + 1: IF siiall > 2 THEN siiall = 2\r
 siiall1 = siiall1 + 1: IF siiall1 > 2 THEN siiall1 = 2\r
 a = a + eda\r
 b = b + all\r
-IF a > 297 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a < 1 THEN a = 296: IF currentLevelNumber = 1 THEN LoadLevel currentLevelNumber:  ELSE currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: IF graphicsMode = 2 THEN a = 594\r
-IF b > 179 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 10: b = DoorExitY%: eda = 0\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 10: b = DoorEntryY%: eda = 0\r
+IF a > 297 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
+IF a < 1 THEN a = 296: IF CurrentLevelNumber% = 1 THEN LoadLevel CurrentLevelNumber%:  ELSE CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadLevel CurrentLevelNumber%: IF graphicsMode = 2 THEN a = 594\r
+IF b > 179 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadLevel CurrentLevelNumber%: b = 100: a = 2: DisplayGameStatistics\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 10: b = DoorExitY%: eda = 0\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 10: b = DoorEntryY%: eda = 0\r
 WEND\r
 a$ = kbd$: kbd$ = ""\r
 IF a$ = rightArrowKey$ THEN eda = eda + 1: IF eda > 3 THEN eda = 3: r = 0 ELSE IF lke > 10 THEN eda = 5\r
@@ -298,8 +296,8 @@ IF a$ = leftArrowKey$ THEN IF sipa = 1 THEN sipp = 10:  ELSE sipp = 20
 IF a$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
 IF a$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
 IF a$ = downArrowKey$ THEN all = all + 1\r
-IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
+IF a$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
 IF a$ = "q" THEN END\r
 sipa = sipa + 1\r
 IF sipa = 3 THEN sipa = 1\r
@@ -322,36 +320,36 @@ PUT (FirstCompanionX% \ 2, FirstCompanionY% \ 2), siilm, OR
 GET (SecondCompanionX% \ 2, SecondCompanionY% \ 2)-((siia1 + 10) \ 2, (SecondCompanionY% + 10) \ 2), siilm2\r
 PUT (SecondCompanionX% \ 2, SecondCompanionY% \ 2), siilm, OR\r
 SOUND 0, .8\r
-IF terrainGrid((a + 38) \ 20, (b + 37) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
-IF terrainGrid((a + 38) \ 20, (b + 22) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
+IF TerrainGrid((a + 38) \ 20, (b + 37) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
+IF TerrainGrid((a + 38) \ 20, (b + 22) \ 20) = "z" THEN eda = -1: r = 9: lke = 0\r
 \r
-IF terrainGrid((a + 21) \ 20, (b + 22) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
-IF terrainGrid((a + 21) \ 20, (b + 37) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
+IF TerrainGrid((a + 21) \ 20, (b + 22) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
+IF TerrainGrid((a + 21) \ 20, (b + 37) \ 20) = "z" THEN eda = 1: r = 9: lke = 0\r
 \r
-IF terrainGrid((a + 22) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
-IF terrainGrid((a + 37) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
+IF TerrainGrid((a + 22) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
+IF TerrainGrid((a + 37) \ 20, (b + 21) \ 20) = "z" THEN all = 0: cd = 10: lke = 0\r
 \r
-IF terrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
-IF terrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
+IF TerrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
+IF TerrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
 \r
-qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 1: eda = -5: all = -3: DisplayGameStatistics\r
+qwer = qwer + 1: IF ObjectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 1: eda = -5: all = -3: DisplayGameStatistics\r
 IF qwer > 100 THEN qwer = 50\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 1: kustuta1 = 1: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 1: kustuta1 = 1: DisplayGameStatistics: TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
 lke = lke + 1\r
 r = r + 1: IF r > 10 THEN r = 0: IF eda > 0 THEN eda = eda - 1:  ELSE IF eda < 0 THEN eda = eda + 1\r
 r1 = r1 + 1: IF r1 > 3 THEN r1 = 0: all = all + 1\r
 lk = lk + 1: cd = cd - 1\r
-IF objectGrid((a + 30) \ 20, (b + 21) \ 20) = "o" THEN terrainGrid((a + 30) \ 20, (b + 21) \ 20) = "": objectGrid((a + 30) \ 20, (b + 21) \ 20) = "": kustuta = 1\r
-IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN terrainGrid((a + 30) \ 20, (b + 38) \ 20) = "": objectGrid((a + 30) \ 20, (b + 38) \ 20) = "": kustuta2 = 1\r
-IF terrainGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 25) \ 20) = "z" THEN siiall = -1\r
-IF terrainGrid((FirstCompanionX% + 30) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = -1\r
-IF terrainGrid((FirstCompanionX% + 20) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = 1\r
-IF terrainGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
-IF terrainGrid((SecondCompanionX% + 30) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = -1\r
-IF terrainGrid((SecondCompanionX% + 20) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = 1\r
+IF ObjectGrid((a + 30) \ 20, (b + 21) \ 20) = "o" THEN TerrainGrid((a + 30) \ 20, (b + 21) \ 20) = "": ObjectGrid((a + 30) \ 20, (b + 21) \ 20) = "": kustuta = 1\r
+IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN TerrainGrid((a + 30) \ 20, (b + 38) \ 20) = "": ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "": kustuta2 = 1\r
+IF TerrainGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 25) \ 20) = "z" THEN siiall = -1\r
+IF TerrainGrid((FirstCompanionX% + 30) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = -1\r
+IF TerrainGrid((FirstCompanionX% + 20) \ 20, (FirstCompanionY% + 10) \ 20) = "z" THEN siie = 1\r
+IF TerrainGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
+IF TerrainGrid((SecondCompanionX% + 30) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = -1\r
+IF TerrainGrid((SecondCompanionX% + 20) \ 20, (SecondCompanionY% + 10) \ 20) = "z" THEN siie1 = 1\r
 IF FirstCompanionX% > 600 THEN siie = -1\r
 IF FirstCompanionX% < 3 THEN siie = 1\r
 IF SecondCompanionX% > 600 THEN siie1 = -1\r
@@ -359,25 +357,25 @@ IF SecondCompanionX% < 3 THEN siie1 = 1
 PUT (SecondCompanionX% \ 2, SecondCompanionY% \ 2), siilm2, PSET\r
 PUT (FirstCompanionX% \ 2, FirstCompanionY% \ 2), siilm1, PSET\r
 IF b > 0 THEN PUT (a \ 2, b \ 2), marm1, PSET\r
-IF kustuta = 1 THEN kustuta = 0: PUT (((a + 10) \ 20) * 10, (b \ 20) * 10), emptySpaceImageS, PSET\r
-IF kustuta1 = 1 THEN kustuta1 = 0: PUT (((a + 10) \ 20) * 10, ((b + 10) \ 20) * 10), emptySpaceImageS, PSET\r
-IF kustuta2 = 1 THEN kustuta2 = 0: PUT (((a + 10) \ 20) * 10, ((b + 28) \ 20) * 10), emptySpaceImageS, PSET\r
+IF kustuta = 1 THEN kustuta = 0: PUT (((a + 10) \ 20) * 10, (b \ 20) * 10), EmptySpaceSpriteSmall, PSET\r
+IF kustuta1 = 1 THEN kustuta1 = 0: PUT (((a + 10) \ 20) * 10, ((b + 10) \ 20) * 10), EmptySpaceSpriteSmall, PSET\r
+IF kustuta2 = 1 THEN kustuta2 = 0: PUT (((a + 10) \ 20) * 10, ((b + 28) \ 20) * 10), EmptySpaceSpriteSmall, PSET\r
 IF makk = 1 THEN makk = 0: a = a - 20\r
-objectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "": objectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = ""\r
+ObjectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "": ObjectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = ""\r
 FirstCompanionX% = FirstCompanionX% + siie\r
 FirstCompanionY% = FirstCompanionY% + siiall\r
 SecondCompanionX% = SecondCompanionX% + siie1\r
 SecondCompanionY% = SecondCompanionY% + siiall1\r
-objectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "q": objectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = "q"\r
+ObjectGrid((SecondCompanionX% + 25) \ 20, (SecondCompanionY% + 8) \ 20) = "q": ObjectGrid((FirstCompanionX% + 25) \ 20, (FirstCompanionY% + 8) \ 20) = "q"\r
 siiall = siiall + 1: IF siiall > 2 THEN siiall = 2\r
 siiall1 = siiall1 + 1: IF siiall1 > 2 THEN siiall1 = 2\r
 a = a + eda\r
 b = b + all\r
-IF a > 594 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a < 1 THEN a = 594: IF currentLevelNumber = 1 THEN LoadLevel currentLevelNumber:  ELSE currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: IF graphicsMode = 1 THEN a = 297\r
-IF b > 358 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 5: b = DoorExitY%: eda = 0\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 5: b = DoorEntryY%: eda = 0\r
+IF a > 594 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
+IF a < 1 THEN a = 594: IF CurrentLevelNumber% = 1 THEN LoadLevel CurrentLevelNumber%:  ELSE CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadLevel CurrentLevelNumber%: IF graphicsMode = 1 THEN a = 297\r
+IF b > 358 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadLevel CurrentLevelNumber%: b = 100: a = 2: DisplayGameStatistics\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 5: b = DoorExitY%: eda = 0\r
+IF TerrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 5: b = DoorEntryY%: eda = 0\r
 WEND\r
 a$ = kbd$: kbd$ = ""\r
 IF a$ = rightArrowKey$ THEN eda = eda + 1: IF eda > 3 THEN eda = 3: r = 0 ELSE IF lke > 10 THEN eda = 5\r
@@ -386,8 +384,8 @@ IF a$ = leftArrowKey$ THEN IF sipa = 1 THEN sipp = 10:  ELSE sipp = 20
 IF a$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
 IF a$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
 IF a$ = downArrowKey$ THEN all = all + 1\r
-IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
+IF a$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadLevel CurrentLevelNumber%: siie = 1: siie1 = 1\r
 IF a$ = "q" THEN END\r
 sipa = sipa + 1\r
 IF sipa = 3 THEN sipa = 1\r
@@ -839,8 +837,8 @@ aiia1 = 0
 SecondCompanionY% = 0\r
 FOR a1 = 1 TO 32\r
 FOR b1 = 1 TO 20\r
-terrainGrid(a1, b1) = ""\r
-objectGrid(a1, b1) = ""\r
+TerrainGrid(a1, b1) = ""\r
+ObjectGrid(a1, b1) = ""\r
 NEXT b1\r
 NEXT a1\r
 FOR a = 1 TO 10\r
@@ -939,7 +937,7 @@ asciiLevelData(7) = "p mmmmv   mmmm  "
 asciiLevelData(8) = "mmmmmmmmm mmmmmm"\r
 asciiLevelData(9) = "                "\r
 asciiLevelData(10) = ">>>>>>>>>>>>>>>>"\r
-currentLevelNumber = currentLevelNumber + 1\r
+CurrentLevelNumber% = CurrentLevelNumber% + 1\r
 CASE 10\r
 asciiLevelData(1) = "m.  -          m"\r
 asciiLevelData(2) = "m  .           m"\r
@@ -962,7 +960,7 @@ asciiLevelData(7) = "mammm   m1ma  om"
 asciiLevelData(8) = "m1m   mmm1ma o m"\r
 asciiLevelData(9) = "m        amam om"\r
 asciiLevelData(10) = "mmmmmmmm<mmammmm"\r
-currentLevelNumber = currentLevelNumber + 2\r
+CurrentLevelNumber% = CurrentLevelNumber% + 2\r
 CASE 11\r
 asciiLevelData(1) = ">>>>>>>>>>>>>>><"\r
 asciiLevelData(2) = "> <x           <"\r
@@ -974,7 +972,7 @@ asciiLevelData(7) = "> <        < <  "
 asciiLevelData(8) = "> <m >m>>m <   >"\r
 asciiLevelData(9) = ">              <"\r
 asciiLevelData(10) = ">>>>m<<<<<<<<mm<"\r
-currentLevelNumber = currentLevelNumber + 2\r
+CurrentLevelNumber% = CurrentLevelNumber% + 2\r
 CASE 12\r
 asciiLevelData(1) = "m     aaaaaaaaam"\r
 asciiLevelData(2) = "m  -         xmm"\r
@@ -1126,22 +1124,22 @@ IF graphicsMode = 2 THEN GOTO 124
 FOR e = 0 TO 9\r
 FOR D = 0 TO 15\r
 q$ = RIGHT$(LEFT$(asciiLevelData(e + 1), D + 1), 1)\r
-IF q$ = "m" THEN PUT (D * 20, e * 20), solidBlockImage, PSET: terrainGrid(D + 1, e + 1) = "z"\r
-IF q$ = "o" THEN PUT (D * 20, e * 20), kast, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "o"\r
+IF q$ = "m" THEN PUT (D * 20, e * 20), SolidTerrainSprite, PSET: TerrainGrid(D + 1, e + 1) = "z"\r
+IF q$ = "o" THEN PUT (D * 20, e * 20), kast, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "o"\r
 IF q$ = "." THEN PUT (D * 20, e * 20), taht, PSET\r
 IF q$ = "-" THEN PUT (D * 20, e * 20), pilv, PSET\r
 IF q$ = "x" THEN FirstCompanionX% = D * 20: FirstCompanionY% = (e + 1) * 20\r
 IF q$ = "y" THEN SecondCompanionX% = D * 20: SecondCompanionY% = (e + 1) * 20\r
-IF q$ = "1" THEN PUT (D * 20, e * 20), munt, PSET: terrainGrid(D + 1, e + 1) = "1"\r
+IF q$ = "1" THEN PUT (D * 20, e * 20), munt, PSET: TerrainGrid(D + 1, e + 1) = "1"\r
 IF q$ = "p" THEN PUT (D * 20, (e * 20) + 10), poosas, PSET\r
 IF q$ = "h" THEN PUT (D * 20, e * 20), aken, PSET\r
-IF q$ = "v" THEN PUT (D * 20, (e * 20) + 10), vedru, PSET: terrainGrid(D + 1, e + 1) = "v"\r
-IF q$ = "t" THEN PUT (D * 20, e * 20), puu, PSET\r
-IF q$ = ">" THEN PUT (D * 20, e * 20), noolt, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = ">"\r
-IF q$ = "<" THEN PUT (D * 20, e * 20), noolt1, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "<"\r
-IF q$ = "a" THEN PUT (D * 20, e * 20), auk, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "a"\r
-IF q$ = "u" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
-IF q$ = "U" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
+IF q$ = "v" THEN PUT (D * 20, (e * 20) + 10), vedru, PSET: TerrainGrid(D + 1, e + 1) = "v"\r
+IF q$ = "t" THEN PUT (D * 20, e * 20), TreeSprite, PSET\r
+IF q$ = ">" THEN PUT (D * 20, e * 20), noolt, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = ">"\r
+IF q$ = "<" THEN PUT (D * 20, e * 20), noolt1, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "<"\r
+IF q$ = "a" THEN PUT (D * 20, e * 20), HoleSprite, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "a"\r
+IF q$ = "u" THEN PUT (D * 20, e * 20), DoorSprite, PSET: TerrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
+IF q$ = "U" THEN PUT (D * 20, e * 20), DoorSprite, PSET: TerrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
 NEXT D\r
 NEXT e\r
 GOTO 123\r
@@ -1149,22 +1147,22 @@ GOTO 123
 FOR e = 0 TO 19\r
 FOR D = 0 TO 30\r
 q$ = RIGHT$(LEFT$(asciiLevelData(e + 1), D + 1), 1)\r
-IF q$ = "m" THEN PUT (D * 10, e * 10), solidBlockImageS, PSET: terrainGrid(D + 1, e + 1) = "z"\r
-IF q$ = "o" THEN PUT (D * 10, e * 10), kastm, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "o"\r
+IF q$ = "m" THEN PUT (D * 10, e * 10), SolidTerrainSpriteSmall, PSET: TerrainGrid(D + 1, e + 1) = "z"\r
+IF q$ = "o" THEN PUT (D * 10, e * 10), kastm, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "o"\r
 IF q$ = "." THEN PUT (D * 10, e * 10), tahtm, PSET\r
 IF q$ = "-" THEN PUT (D * 10, e * 10), pilvm, PSET\r
 IF q$ = "x" THEN FirstCompanionX% = D * 20: FirstCompanionY% = (e + 1) * 20\r
 IF q$ = "y" THEN SecondCompanionX% = D * 20: SecondCompanionY% = (e + 1) * 20\r
-IF q$ = "1" THEN PUT (D * 10, e * 10), muntm, PSET: terrainGrid(D + 1, e + 1) = "1"\r
+IF q$ = "1" THEN PUT (D * 10, e * 10), muntm, PSET: TerrainGrid(D + 1, e + 1) = "1"\r
 IF q$ = "p" THEN PUT (D * 10, (e * 10) + 5), poosasm, PSET\r
 IF q$ = "h" THEN PUT (D * 10, e * 10), akenm, PSET\r
-IF q$ = "v" THEN PUT (D * 10, (e * 10) + 5), vedrum, PSET: terrainGrid(D + 1, e + 1) = "v"\r
-IF q$ = "t" THEN PUT (D * 10, e * 10), puum, PSET\r
-IF q$ = ">" THEN PUT (D * 10, e * 10), nooltm, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = ">"\r
-IF q$ = "<" THEN PUT (D * 10, e * 10), nooltm1, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "<"\r
-IF q$ = "a" THEN PUT (D * 10, e * 10), aukm, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "a"\r
-IF q$ = "u" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
-IF q$ = "U" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
+IF q$ = "v" THEN PUT (D * 10, (e * 10) + 5), vedrum, PSET: TerrainGrid(D + 1, e + 1) = "v"\r
+IF q$ = "t" THEN PUT (D * 10, e * 10), TreeSpriteSmall, PSET\r
+IF q$ = ">" THEN PUT (D * 10, e * 10), nooltm, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = ">"\r
+IF q$ = "<" THEN PUT (D * 10, e * 10), nooltm1, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "<"\r
+IF q$ = "a" THEN PUT (D * 10, e * 10), HoleSpriteSmall, PSET: TerrainGrid(D + 1, e + 1) = "z": ObjectGrid(D + 1, e + 1) = "a"\r
+IF q$ = "u" THEN PUT (D * 10, e * 10), DoorSpriteSmall, PSET: TerrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
+IF q$ = "U" THEN PUT (D * 10, e * 10), DoorSpriteSmall, PSET: TerrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
 NEXT D\r
 NEXT e\r
 123\r