Better code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 24 Aug 2025 19:11:12 +0000 (22:11 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 24 Aug 2025 19:11:12 +0000 (22:11 +0300)
Games/Pomppu Paavo/Pomppu Paavo.bas

index edba001..58df50c 100755 (executable)
@@ -85,7 +85,8 @@ LivesRemaining% = 10
 SCREEN 1\r
 CurrentLevelNumber% = 1\r
 \r
-' Capture sprite images from screen drawing operations\r
+' Capture sprite images from screen drawing operations.\r
+' This technique uses GET command to save drawn graphics into arrays.\r
 GET (1, 1)-(20, 20), EmptySpaceSprite\r
 RenderSpriteFromFile 0, 0, 1, 1, 1\r
 GET (1, 1)-(20, 20), SolidTerrainSprite\r
@@ -144,7 +145,7 @@ GET (1, 1)-(20, 20), sipp3
 CLS\r
 \r
 \r
-' Capture small scale versions of sprites\r
+' Capture small scale versions of sprites (half size)\r
 GET (1, 1)-(10, 10), EmptySpaceSpriteSmall\r
 RenderSpriteFromFile 0, 0, 1, 1, 2\r
 GET (1, 1)-(10, 10), SolidTerrainSpriteSmall\r
@@ -215,7 +216,7 @@ key$ = INPUT$(1)
 LoadCurrentLevel 1\r
 a = 50\r
 b = 50\r
-siie = 1\r
+Companion1HorizontalVelocity = 1\r
 Companion2HorizontalVelocity = 1\r
 MainGameLoop:\r
 keyboardInput$ = INKEY$\r
@@ -280,8 +281,8 @@ IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN TerrainGrid((a + 30) \ 20
 \r
 ' First companion hedgehog terrain collision checks\r
 IF TerrainGrid((Companion1PositionX% + 25) \ 20, (Companion1PositionY% + 25) \ 20) = "z" THEN siiall = -1\r
-IF TerrainGrid((Companion1PositionX% + 30) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN siie = -1\r
-IF TerrainGrid((Companion1PositionX% + 20) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN siie = 1\r
+IF TerrainGrid((Companion1PositionX% + 30) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN Companion1HorizontalVelocity = -1\r
+IF TerrainGrid((Companion1PositionX% + 20) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN Companion1HorizontalVelocity = 1\r
 \r
 ' Second companion hedgehog terrain collision checks\r
 IF TerrainGrid((Companion2PositionX% + 25) \ 20, (Companion2PositionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
@@ -289,8 +290,8 @@ IF TerrainGrid((Companion2PositionX% + 30) \ 20, (Companion2PositionY% + 10) \ 2
 IF TerrainGrid((Companion2PositionX% + 20) \ 20, (Companion2PositionY% + 10) \ 20) = "z" THEN Companion2HorizontalVelocity = 1\r
 \r
 ' Screen boundary checks for companions\r
-IF Companion1PositionX% > 300 THEN siie = -1\r
-IF Companion1PositionX% < 3 THEN siie = 1\r
+IF Companion1PositionX% > 300 THEN Companion1HorizontalVelocity = -1\r
+IF Companion1PositionX% < 3 THEN Companion1HorizontalVelocity = 1\r
 IF Companion2PositionX% > 300 THEN Companion2HorizontalVelocity = -1\r
 IF Companion2PositionX% < 3 THEN Companion2HorizontalVelocity = 1\r
 \r
@@ -311,7 +312,7 @@ IF makk = 1 THEN makk = 0: a = a - 20
 ObjectGrid((Companion2PositionX% + 25) \ 20, (Companion2PositionY% + 8) \ 20) = "": ObjectGrid((Companion1PositionX% + 25) \ 20, (Companion1PositionY% + 8) \ 20) = ""\r
 \r
 ' Update companion positions\r
-Companion1PositionX% = Companion1PositionX% + siie\r
+Companion1PositionX% = Companion1PositionX% + Companion1HorizontalVelocity\r
 Companion1PositionY% = Companion1PositionY% + siiall\r
 Companion2PositionX% = Companion2PositionX% + Companion2HorizontalVelocity\r
 Companion2PositionY% = Companion2PositionY% + siiall1\r
@@ -328,7 +329,7 @@ a = a + eda
 b = b + all\r
 \r
 ' Level transition when reaching right edge\r
-IF a > 297 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
+IF a > 297 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
 \r
 ' Level transition when reaching left edge\r
 IF a < 1 THEN a = 296: IF CurrentLevelNumber% = 1 THEN LoadCurrentLevel CurrentLevelNumber%:  ELSE CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadCurrentLevel CurrentLevelNumber%: IF GraphicsDisplayMode = 2 THEN a = 594\r
@@ -346,8 +347,8 @@ IF keyboardInput$ = leftArrowKey$ THEN IF sipa = 1 THEN sipp = 10:  ELSE sipp =
 IF keyboardInput$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
 IF keyboardInput$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
 IF keyboardInput$ = downArrowKey$ THEN all = all + 1\r
-IF keyboardInput$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
-IF keyboardInput$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
+IF keyboardInput$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
+IF keyboardInput$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
 IF keyboardInput$ = "q" THEN END\r
 sipa = sipa + 1\r
 IF sipa = 3 THEN sipa = 1\r
@@ -418,8 +419,8 @@ IF ObjectGrid((a + 30) \ 20, (b + 38) \ 20) = "a" THEN TerrainGrid((a + 30) \ 20
 \r
 ' First companion hedgehog terrain collision checks\r
 IF TerrainGrid((Companion1PositionX% + 25) \ 20, (Companion1PositionY% + 25) \ 20) = "z" THEN siiall = -1\r
-IF TerrainGrid((Companion1PositionX% + 30) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN siie = -1\r
-IF TerrainGrid((Companion1PositionX% + 20) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN siie = 1\r
+IF TerrainGrid((Companion1PositionX% + 30) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN Companion1HorizontalVelocity = -1\r
+IF TerrainGrid((Companion1PositionX% + 20) \ 20, (Companion1PositionY% + 10) \ 20) = "z" THEN Companion1HorizontalVelocity = 1\r
 \r
 ' Second companion hedgehog terrain collision checks\r
 IF TerrainGrid((Companion2PositionX% + 25) \ 20, (Companion2PositionY% + 25) \ 20) = "z" THEN siiall1 = -1\r
@@ -427,8 +428,8 @@ IF TerrainGrid((Companion2PositionX% + 30) \ 20, (Companion2PositionY% + 10) \ 2
 IF TerrainGrid((Companion2PositionX% + 20) \ 20, (Companion2PositionY% + 10) \ 20) = "z" THEN Companion2HorizontalVelocity = 1\r
 \r
 ' Screen boundary checks for companions\r
-IF Companion1PositionX% > 600 THEN siie = -1\r
-IF Companion1PositionX% < 3 THEN siie = 1\r
+IF Companion1PositionX% > 600 THEN Companion1HorizontalVelocity = -1\r
+IF Companion1PositionX% < 3 THEN Companion1HorizontalVelocity = 1\r
 IF Companion2PositionX% > 600 THEN Companion2HorizontalVelocity = -1\r
 IF Companion2PositionX% < 3 THEN Companion2HorizontalVelocity = 1\r
 \r
@@ -449,7 +450,7 @@ IF makk = 1 THEN makk = 0: a = a - 20
 ObjectGrid((Companion2PositionX% + 25) \ 20, (Companion2PositionY% + 8) \ 20) = "": ObjectGrid((Companion1PositionX% + 25) \ 20, (Companion1PositionY% + 8) \ 20) = ""\r
 \r
 ' Update companion positions\r
-Companion1PositionX% = Companion1PositionX% + siie\r
+Companion1PositionX% = Companion1PositionX% + Companion1HorizontalVelocity\r
 Companion1PositionY% = Companion1PositionY% + siiall\r
 Companion2PositionX% = Companion2PositionX% + Companion2HorizontalVelocity\r
 Companion2PositionY% = Companion2PositionY% + siiall1\r
@@ -464,7 +465,7 @@ a = a + eda
 b = b + all\r
 \r
 ' Level transition when reaching right edge\r
-IF a > 594 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
+IF a > 594 THEN a = 2: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
 \r
 ' Level transition when reaching left edge\r
 IF a < 1 THEN a = 594: IF CurrentLevelNumber% = 1 THEN LoadCurrentLevel CurrentLevelNumber%:  ELSE CurrentLevelNumber% = CurrentLevelNumber% - 1: LoadCurrentLevel CurrentLevelNumber%: IF GraphicsDisplayMode = 1 THEN a = 297\r
@@ -482,8 +483,8 @@ IF keyboardInput$ = leftArrowKey$ THEN IF sipa = 1 THEN sipp = 10:  ELSE sipp =
 IF keyboardInput$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
 IF keyboardInput$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
 IF keyboardInput$ = downArrowKey$ THEN all = all + 1\r
-IF keyboardInput$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
-IF keyboardInput$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadCurrentLevel CurrentLevelNumber%: siie = 1: Companion2HorizontalVelocity = 1\r
+IF keyboardInput$ = "/" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 1: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
+IF keyboardInput$ = "+" THEN a = 2: b = 50: CurrentLevelNumber% = CurrentLevelNumber% + 5: LoadCurrentLevel CurrentLevelNumber%: Companion1HorizontalVelocity = 1: Companion2HorizontalVelocity = 1\r
 IF keyboardInput$ = "q" THEN END\r
 \r
 sipa = sipa + 1\r