Move Pomppu Paavo levels to files
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 22 Aug 2025 20:49:12 +0000 (23:49 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 22 Aug 2025 20:49:12 +0000 (23:49 +0300)
Games/Pomppu Paavo/Pomppu Paavo.bas

index a026826..24d661f 100755 (executable)
@@ -572,288 +572,72 @@ FOR a1 = 1 TO 32
   NEXT b1\r
 NEXT a1\r
 \r
-FOR a = 1 TO 10\r
+FOR a = 1 TO 20\r
   asciiLevelData(a) = ""\r
 NEXT a\r
 \r
 CLS\r
 LOCATE 3, 10\r
 \r
-SELECT CASE y\r
-CASE 1\r
-asciiLevelData(1) = "             mmm"\r
-asciiLevelData(2) = "    -       m mm"\r
-asciiLevelData(3) = "        .  - mmm"\r
-asciiLevelData(4) = "o   .  .    mymm"\r
-asciiLevelData(5) = "o           -mmm"\r
-asciiLevelData(6) = "o    t      mxmm"\r
-asciiLevelData(7) = "o            mmm"\r
-asciiLevelData(8) = "o           1 1 "\r
-asciiLevelData(9) = "o  p     p 1 1 1"\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-graphicsMode = 1\r
-CASE 2\r
-asciiLevelData(1) = "mmmmmmmmmmmmmmmm"\r
-asciiLevelData(2) = "mm   h h        "\r
-asciiLevelData(3) = "mmx m    mmmymmm"\r
-asciiLevelData(4) = "mmommmmmm  mom m"\r
-asciiLevelData(5) = "mo   1 1 1 o1m1m"\r
-asciiLevelData(6) = "momm m m m m111m"\r
-asciiLevelData(7) = "m      h mmmmoom"\r
-asciiLevelData(8) = " mm h          m"\r
-asciiLevelData(9) = "        v mmm mm"\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-graphicsMode = 1\r
-CASE 3\r
-asciiLevelData(1) = "mmmmmmmmmmmmmmmm"\r
-asciiLevelData(2) = " h h h h h  ym11"\r
-asciiLevelData(3) = "mm mmmmmmmmmmm1m"\r
-asciiLevelData(4) = "m h  m      xm  "\r
-asciiLevelData(5) = "mm m m mmmmmmmmm"\r
-asciiLevelData(6) = "mmmm     m1m    "\r
-asciiLevelData(7) = "m    h   m1moo m"\r
-asciiLevelData(8) = "m mmmmmm m1moomm"\r
-asciiLevelData(9) = "m 11111m  h h   "\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-CASE 4\r
-asciiLevelData(1) = "mmmmmmmmmmmmmmmm"\r
-asciiLevelData(2) = "     h1  h1    m"\r
-asciiLevelData(3) = "mmm  1 11  1 o1m"\r
-asciiLevelData(4) = "  m 1  oo   1o1m"\r
-asciiLevelData(5) = "m moo       oo1m"\r
-asciiLevelData(6) = "  m      h  o   "\r
-asciiLevelData(7) = "mmm  h      o   "\r
-asciiLevelData(8) = "m           o   "\r
-asciiLevelData(9) = "        x   oy  "\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-CASE 5\r
-asciiLevelData(1) = "m       . y -   "\r
-asciiLevelData(2) = "m      m     moo"\r
-asciiLevelData(3) = "m.    mxm    mmo"\r
-asciiLevelData(4) = "m  -    m mmmmmm"\r
-asciiLevelData(5) = "m .    m     mm "\r
-asciiLevelData(6) = "mt  o   o    m  "\r
-asciiLevelData(7) = "m   o om o  ooo "\r
-asciiLevelData(8) = "m   ooooooooooo "\r
-asciiLevelData(9) = "         v    o "\r
-asciiLevelData(10) = "oooooooooooooooo"\r
-CASE 6\r
-CLS\r
-asciiLevelData(1) = "    -           "\r
-asciiLevelData(2) = "             .  "\r
-asciiLevelData(3) = "       oo- oo   "\r
-asciiLevelData(4) = "  -    11  11  ."\r
-asciiLevelData(5) = "       oo  oo   "\r
-asciiLevelData(6) = "   m ym11  11   "\r
-asciiLevelData(7) = "   m  m         "\r
-asciiLevelData(8) = "   ooom  <>  <> "\r
-asciiLevelData(9) = "       xmmm  mmm"\r
-asciiLevelData(10) = "mmmmmmmmmmm  mmm"\r
-CASE 7\r
-asciiLevelData(1) = " oooo           "\r
-asciiLevelData(2) = " o111  .        "\r
-asciiLevelData(3) = " oooo>    >>>>>>"\r
-asciiLevelData(4) = "  .    x v     m"\r
-asciiLevelData(5) = "       mym     m"\r
-asciiLevelData(6) = "        m      m"\r
-asciiLevelData(7) = "            111m"\r
-asciiLevelData(8) = "            111m"\r
-asciiLevelData(9) = "  v          p  "\r
-asciiLevelData(10) = "oooaaaaaaaaaoooo"\r
-CASE 8\r
-asciiLevelData(1) = "      .        o"\r
-asciiLevelData(2) = "  .    mm      o"\r
-asciiLevelData(3) = ".     ommm  t  o"\r
-asciiLevelData(4) = "     mom mm    o"\r
-asciiLevelData(5) = "   pmmoyxmmm   o"\r
-asciiLevelData(6) = "   mmmomammmm  m"\r
-asciiLevelData(7) = "p mmmmv   mmmm  "\r
-asciiLevelData(8) = "mmmmmmmmm mmmmmm"\r
-asciiLevelData(9) = "                "\r
-asciiLevelData(10) = ">>>>>>>>>>>>>>>>"\r
-CurrentLevelNumber% = CurrentLevelNumber% + 1\r
-CASE 10\r
-asciiLevelData(1) = "m.  -          m"\r
-asciiLevelData(2) = "m  .           m"\r
-asciiLevelData(3) = "m 111     -    m"\r
-asciiLevelData(4) = "mmmmm>>>    ammm"\r
-asciiLevelData(5) = "a           a  m"\r
-asciiLevelData(6) = "mmm  t      a  m"\r
-asciiLevelData(7) = "           ma  m"\r
-asciiLevelData(8) = ">>>         a  m"\r
-asciiLevelData(9) = "       m yx  m m"\r
-asciiLevelData(10) = ">>>mmmmmmmmmmm m"\r
-CASE 9\r
-asciiLevelData(1) = "mammmmmmmmmmmmm "\r
-asciiLevelData(2) = "m1m  y     xmo  "\r
-asciiLevelData(3) = "mamooo>>>a>am om"\r
-asciiLevelData(4) = "m1m     m1mamo m"\r
-asciiLevelData(5) = "mamm    m1mam om"\r
-asciiLevelData(6) = "m1m    mm1mamo m"\r
-asciiLevelData(7) = "mammm   m1ma  om"\r
-asciiLevelData(8) = "m1m   mmm1ma o m"\r
-asciiLevelData(9) = "m        amam om"\r
-asciiLevelData(10) = "mmmmmmmm<mmammmm"\r
-CurrentLevelNumber% = CurrentLevelNumber% + 2\r
-CASE 11\r
-asciiLevelData(1) = ">>>>>>>>>>>>>>><"\r
-asciiLevelData(2) = "> <x           <"\r
-asciiLevelData(3) = "> <         >> <"\r
-asciiLevelData(4) = "> <y>>>>>>>    <"\r
-asciiLevelData(5) = "> <       <  <<<"\r
-asciiLevelData(6) = "> <<<<a<< << < >"\r
-asciiLevelData(7) = "> <        < <  "\r
-asciiLevelData(8) = "> <m >m>>m <   >"\r
-asciiLevelData(9) = ">              <"\r
-asciiLevelData(10) = ">>>>m<<<<<<<<mm<"\r
-CurrentLevelNumber% = CurrentLevelNumber% + 2\r
-CASE 12\r
-asciiLevelData(1) = "m     aaaaaaaaam"\r
-asciiLevelData(2) = "m  -         xmm"\r
-asciiLevelData(3) = "m        t. ym 1"\r
-asciiLevelData(4) = "m     .     moom"\r
-asciiLevelData(5) = "m          am  1"\r
-asciiLevelData(6) = "m         mamomm"\r
-asciiLevelData(7) = "m      - mmam  1"\r
-asciiLevelData(8) = "m       mmmamomm"\r
-asciiLevelData(9) = "m p  p mm      1"\r
-asciiLevelData(10) = "mmmmmmmmmammmm<<"\r
-CASE 13\r
-asciiLevelData(1) = "mmmmmmmmmmmmmmmm"\r
-asciiLevelData(2) = "m   m          m"\r
-asciiLevelData(3) = "  ma   1a1a1a  m"\r
-asciiLevelData(4) = "mmma aaaaaaaam m"\r
-asciiLevelData(5) = "11maaaaaaaaaam m"\r
-asciiLevelData(6) = "mmmaaaaaaaaaam m"\r
-asciiLevelData(7) = "11x         ym m"\r
-asciiLevelData(8) = "mmmmmmmmmmmmmm m"\r
-asciiLevelData(9) = "               m"\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-CASE 14\r
-asciiLevelData(1) = "mmmmmmmmm-      "\r
-asciiLevelData(2) = "mm mmmmmmm  -   "\r
-asciiLevelData(3) = "mm       m      "\r
-asciiLevelData(4) = "mm >>>>> m  -   "\r
-asciiLevelData(5) = "mmv  m   m     ."\r
-asciiLevelData(6) = ">><< m <<m  -   "\r
-asciiLevelData(7) = "11 m m m   .    "\r
-asciiLevelData(8) = ">> m m m    xy    "\r
-asciiLevelData(9) = "mm  vm    v     "\r
-asciiLevelData(10) = "mm>><m>>>>>mmmmm"\r
-CASE 15\r
-CLS\r
-asciiLevelData(1) = "      m        m"\r
-asciiLevelData(2) = "mm ymmmmmmmmmaaa"\r
-asciiLevelData(3) = "<<oo    1111maaa"\r
-asciiLevelData(4) = "       <<111maaa"\r
-asciiLevelData(5) = "<<m<     m11maaa"\r
-asciiLevelData(6) = "    t  oomm  aaa"\r
-asciiLevelData(7) = "      vo    mm1m"\r
-asciiLevelData(8) = "       mm<<<mm1m"\r
-asciiLevelData(9) = "  m  x <<mmmmm11"\r
-asciiLevelData(10) = "mmmmmmmmmmmmmmmm"\r
-graphicsMode = 1\r
-CASE 16\r
-asciiLevelData(1) = "m11     aa       m     11111  m"\r
-asciiLevelData(2) = "m11    a   a  a    <          m"\r
-asciiLevelData(3) = "m11  >aam       v  t  a       m"\r
-asciiLevelData(4) = "m11om y o                 a  am"\r
-asciiLevelData(5) = "m11  oooo  t                  m"\r
-asciiLevelData(6) = ">>>om         p  p        m   m"\r
-asciiLevelData(7) = "m     mmm     mamamom     mm  m"\r
-asciiLevelData(8) = "m  v mmmmm    mam 11m  mmmmmm m"\r
-asciiLevelData(9) = "m  mmmmmmmmm  mam  1mm    mm  m"\r
-asciiLevelData(10) = "mm  m1     m  mam111m     m   m"\r
-asciiLevelData(11) = "m m  o     m  mam  vm         m"\r
-asciiLevelData(12) = "m  m  m1111m vmammmmm  m      m"\r
-asciiLevelData(13) = "m   m  mmmmm 11                "\r
-asciiLevelData(14) = "mmmmmm   m mamammmmm         mm"\r
-asciiLevelData(15) = "m       m  mam1111m       m  >m"\r
-asciiLevelData(16) = "m      m   m1m111m     m      m"\r
-asciiLevelData(17) = "      m    mammmm  mm>>> <<<>>m"\r
-asciiLevelData(18) = "     m     m  x   m      m   m "\r
-asciiLevelData(19) = "mmmmm      mmmmmmm       mmm mm"\r
-graphicsMode = 2\r
-CASE 17\r
-asciiLevelData(1) = "mu 1111        m"\r
-asciiLevelData(2) = "mmmmmmm   <<<<am"\r
-asciiLevelData(3) = "m     m  a   mam"\r
-asciiLevelData(4) = "m     m    y m1m"\r
-asciiLevelData(5) = "m     mm   <xmam"\r
-asciiLevelData(6) = "      m  <<<<m1m"\r
-asciiLevelData(7) = "      m      ma1"\r
-asciiLevelData(8) = "mmmm  m    <<mmm"\r
-asciiLevelData(9) = "m111    vU   m  "\r
-asciiLevelData(10) = "mmmmmmmaamaaam  "\r
-graphicsMode = 1\r
-CASE 18\r
-asciiLevelData(1) = "oo            m                "\r
-asciiLevelData(2) = "oo     h   h  m                "\r
-asciiLevelData(3) = "oo x          m   h      m>>>>>"\r
-asciiLevelData(4) = "oo m11111111m m         mm    m"\r
-asciiLevelData(5) = "oo m11111111m m  mm  h  m     m"\r
-asciiLevelData(6) = "oo mmmmmmmmmm m   m    vm     m"\r
-asciiLevelData(7) = "oo            mm  mmmmmmm     m"\r
-asciiLevelData(8) = " v                            m"\r
-asciiLevelData(9) = "mom    mmmmmm   v             m"\r
-asciiLevelData(10) = "m m m  mmmmmm     mm   h  h   m"\r
-asciiLevelData(11) = "m                             m"\r
-asciiLevelData(12) = "m <<<<<<<<<<<<<<<<<<<<<<<<<<< m"\r
-asciiLevelData(13) = "mam                           m"\r
-asciiLevelData(14) = "mammooooommaaammm      maaaaavm"\r
-asciiLevelData(15) = "mam     oo       a ma  m111111m"\r
-asciiLevelData(16) = "mam    oo  <<< h mh h  mma<>amm"\r
-asciiLevelData(17) = "mam   moom   <<               m"\r
-asciiLevelData(18) = "my   mm         m     m       m"\r
-asciiLevelData(19) = "mmmmmmmmmmmm<<mmmaaaaammmmmmmmm"\r
-graphicsMode = 2\r
-CASE 19\r
-CLS\r
-DrawSprite 1, 1, 10, 3, 1\r
-LOCATE 20, 1\r
-PRINT "end"\r
-FOR a = 1 TO 50\r
-a$ = INKEY$\r
-NEXT a\r
-a$ = INPUT$(1)\r
-CLS\r
-SCREEN 2\r
-END\r
-END\r
-CASE 100\r
-asciiLevelData(1) = "                "\r
-asciiLevelData(2) = "                "\r
-asciiLevelData(3) = "                "\r
-asciiLevelData(4) = "                "\r
-asciiLevelData(5) = "                "\r
-asciiLevelData(6) = "                "\r
-asciiLevelData(7) = "                "\r
-asciiLevelData(8) = "                "\r
-asciiLevelData(9) = "                "\r
-asciiLevelData(10) = "                "\r
-CASE 101\r
-asciiLevelData(1) = "                               "\r
-asciiLevelData(2) = "                               "\r
-asciiLevelData(3) = "                               "\r
-asciiLevelData(4) = "                               "\r
-asciiLevelData(5) = "                               "\r
-asciiLevelData(6) = "                               "\r
-asciiLevelData(7) = "                               "\r
-asciiLevelData(8) = "                               "\r
-asciiLevelData(9) = "                               "\r
-asciiLevelData(10) = "                               "\r
-asciiLevelData(11) = "                               "\r
-asciiLevelData(12) = "                               "\r
-asciiLevelData(13) = "                               "\r
-asciiLevelData(14) = "                               "\r
-asciiLevelData(15) = "                               "\r
-asciiLevelData(16) = "                               "\r
-asciiLevelData(17) = "                               "\r
-asciiLevelData(18) = "                               "\r
-asciiLevelData(19) = "                               "\r
-graphicsMode = 2\r
-\r
-END SELECT\r
+IF y >= 1 AND y <= 18 THEN\r
+  fileName$ = "lvl/" + LTRIM$(STR$(y)) + ".lvl"\r
+  OPEN fileName$ FOR INPUT AS #1\r
+  INPUT #1, graphicsMode, increment\r
+  i% = 1\r
+  WHILE NOT EOF(1)\r
+    LINE INPUT #1, asciiLevelData(i%)\r
+    i% = i% + 1\r
+  WEND\r
+  CLOSE #1\r
+  CurrentLevelNumber% = CurrentLevelNumber% + increment\r
+ELSE\r
+  SELECT CASE y\r
+  CASE 19\r
+    CLS\r
+    DrawSprite 1, 1, 10, 3, 1\r
+    LOCATE 20, 1\r
+    PRINT "end"\r
+    FOR a = 1 TO 50\r
+      a$ = INKEY$\r
+    NEXT a\r
+    a$ = INPUT$(1)\r
+    CLS\r
+    SCREEN 2\r
+    END\r
+  CASE 100\r
+    asciiLevelData(1) = "                "\r
+    asciiLevelData(2) = "                "\r
+    asciiLevelData(3) = "                "\r
+    asciiLevelData(4) = "                "\r
+    asciiLevelData(5) = "                "\r
+    asciiLevelData(6) = "                "\r
+    asciiLevelData(7) = "                "\r
+    asciiLevelData(8) = "                "\r
+    asciiLevelData(9) = "                "\r
+    asciiLevelData(10) = "                "\r
+  CASE 101\r
+    asciiLevelData(1) = "                               "\r
+    asciiLevelData(2) = "                               "\r
+    asciiLevelData(3) = "                               "\r
+    asciiLevelData(4) = "                               "\r
+    asciiLevelData(5) = "                               "\r
+    asciiLevelData(6) = "                               "\r
+    asciiLevelData(7) = "                               "\r
+    asciiLevelData(8) = "                               "\r
+    asciiLevelData(9) = "                               "\r
+    asciiLevelData(10) = "                               "\r
+    asciiLevelData(11) = "                               "\r
+    asciiLevelData(12) = "                               "\r
+    asciiLevelData(13) = "                               "\r
+    asciiLevelData(14) = "                               "\r
+    asciiLevelData(15) = "                               "\r
+    asciiLevelData(16) = "                               "\r
+    asciiLevelData(17) = "                               "\r
+    asciiLevelData(18) = "                               "\r
+    asciiLevelData(19) = "                               "\r
+    graphicsMode = 2\r
+  END SELECT\r
+END IF\r
 IF graphicsMode = 2 THEN GOTO 124\r
 FOR e = 0 TO 9\r
 FOR D = 0 TO 15\r
@@ -900,4 +684,4 @@ IF q$ = "U" THEN PUT (D * 10, e * 10), DoorSpriteSmall, PSET: TerrainGrid(D + 1,
 NEXT D\r
 NEXT e\r
 123\r
-END SUB\r
+END SUB
\ No newline at end of file