From d73a41fa99337675901c4bec8b9338832641084a Mon Sep 17 00:00:00 2001 From: Slyvtt Date: Fri, 25 Mar 2022 13:42:33 +0100 Subject: [PATCH] added Game Options Menu + Player Plate --- CMakeLists.txt | 3 +- CppOutRun.layout | 122 +++---- .../__pycache__/make_grid.cpython-38.pyc | Bin 0 -> 1155 bytes assets-cg/fonts/createfont.py | 2 +- assets-cg/fonts/fxconv-metadata.txt | 10 + assets-cg/fonts/plate5.png | Bin 0 -> 8217 bytes assets-cg/fonts/speedfont.png | Bin 16384 -> 16680 bytes assets-cg/player/player.png | Bin 4430 -> 10680 bytes src/include/drawstuff.h | 1 + src/include/menus.h | 2 + src/main.cc | 23 +- src/src/drawstuff.cc | 5 + src/src/menus.cc | 323 +++++++++++++++--- 13 files changed, 371 insertions(+), 120 deletions(-) create mode 100644 assets-cg/fonts/__pycache__/make_grid.cpython-38.pyc create mode 100644 assets-cg/fonts/plate5.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 24f1080..bec66d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,7 +89,8 @@ set(ASSETS_cg assets-cg/fonts/auto15.png assets-cg/fonts/auto20.png assets-cg/fonts/startseq.png - + assets-cg/fonts/plate5.png + assets-cg/menus/flag.png assets-cg/menus/bigflag.png diff --git a/CppOutRun.layout b/CppOutRun.layout index 569985a..a9737d0 100644 --- a/CppOutRun.layout +++ b/CppOutRun.layout @@ -2,14 +2,34 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + @@ -17,9 +37,19 @@ - + - + + + + + + + + + + + @@ -35,14 +65,9 @@ - + - - - - - - + @@ -52,54 +77,34 @@ - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + - - - - - - + @@ -107,24 +112,19 @@ - - - - - - - - - - + + + + + diff --git a/assets-cg/fonts/__pycache__/make_grid.cpython-38.pyc b/assets-cg/fonts/__pycache__/make_grid.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf95efa84fe992c5b976580d1066323c2f6da99d GIT binary patch literal 1155 zcmZ8g&1)1f6i;R{vme?Iq*y5)a;qzC7q244+Nvmil!}*tlMdh*Zk;$N^wds^@>@Z?KoZHs}t$$NSE<@b9p^Kx#kjbQx#vEDoN5jwTb#o>W- z7pA@rMj(MxlwpQ5k9imgPxv1Z^96Z8h&P{*4Dk1{@xla~AJC_aiT$iLBoMHA*W zO#Ks#z!d;3qa`H#3fC(SjlHpN&@mRI@+!aYiQvQ^6XPBG6*VuQH>$ACSwU5!MqfeK;M7&5-iyY#nG?|*H>==v0GTd(8Hv`i%dS^_BHC3` zT>9i=^p?GSP?6(MT&~a;B<3m%cK&N{f}t2~D8d5&juC3p+1OHpGLyN{E)vCD?T_ef zY8N~*Qmtw_N`#5&jU+dn^Q8E{q*x|{*vzud(08PcR5CP4k-OMa{zg(x2PzQ&3#hl~ z@GzxCpANYYNj{)F7qnL#N=>;cN^m5P;&VDQ$!Vd4RMZqSvuKj*#JaJh{USFsQj**I zHr$10OkQf}xbq&D+E7pohi;#3Z*FcnxP43QMqLIgd(B{`9{SZ=vl{Oqz@EXqbN<9D$b$1&&S#-CD!{?>h zEAuYbS{l6`4Z60mx@+6*`m-@SnzYV50;qZk44PlTS8&@~!b|u%3NgWJo?3wTvkqbY h?xQD8sT1kKj?V=%52=&povaXLDmQHnwJpt}{};#&F^&KL literal 0 HcmV?d00001 diff --git a/assets-cg/fonts/createfont.py b/assets-cg/fonts/createfont.py index cdb3342..dfe9189 100644 --- a/assets-cg/fonts/createfont.py +++ b/assets-cg/fonts/createfont.py @@ -1,3 +1,3 @@ from make_grid import * -make_grid(16, 18) +make_grid(5, 5) diff --git a/assets-cg/fonts/fxconv-metadata.txt b/assets-cg/fonts/fxconv-metadata.txt index e1a48d7..fc01d05 100644 --- a/assets-cg/fonts/fxconv-metadata.txt +++ b/assets-cg/fonts/fxconv-metadata.txt @@ -26,3 +26,13 @@ startseq.png: charset: print grid.size: 70x93 +plate5.png: + name: plate + type: font + charset: print + grid.size: 5x5 + grid.padding: 1 + grid.border: 0 + proportional: true + height: 5 + diff --git a/assets-cg/fonts/plate5.png b/assets-cg/fonts/plate5.png new file mode 100644 index 0000000000000000000000000000000000000000..9074029f68cc6b3327c85430305097273d029cc7 GIT binary patch literal 8217 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 delta 11621 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 diff --git a/assets-cg/player/player.png b/assets-cg/player/player.png index a6690fbfea646586e939443e71d6464c5909ae54..7d2d56e8e5e35b64fedb1b6b56fe4a075752aa67 100644 GIT binary patch literal 10680 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 Bxx4@X literal 4430 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 diff --git a/src/include/drawstuff.h b/src/include/drawstuff.h index a4457e2..bdccf73 100644 --- a/src/include/drawstuff.h +++ b/src/include/drawstuff.h @@ -13,3 +13,4 @@ void drawSky( uint8_t R, uint8_t G, uint8_t B ); void drawSky( int ymin, int ymax ); void drawSkyOptimised( uint16_t color ); +void drawSkyQuick( uint16_t color ); diff --git a/src/include/menus.h b/src/include/menus.h index 01c0849..ed92351 100644 --- a/src/include/menus.h +++ b/src/include/menus.h @@ -17,6 +17,8 @@ void getInputCredit( void ); void drawOptions( void ); void getInputOptions( void ); +void drawGameOptions( void ); +void getInputGameOptions( void ); void drawPauseQuit( void ); void getInputPauseQuit( void ); diff --git a/src/main.cc b/src/main.cc index 80da66a..0f45add 100644 --- a/src/main.cc +++ b/src/main.cc @@ -29,7 +29,7 @@ #include extern bopti_image_t player; -extern font_t speedfont, startseq; +extern font_t speedfont, startseq, plate; extern bopti_image_t speedhud; extern bopti_image_t flag, bigflag; @@ -42,6 +42,10 @@ int MAX_SEGMENT=0; camera *cam; +uint8_t DiffLevel = 1; +uint8_t CarsNumb = 1; +char PlayerName[3] = "SLY"; + struct DataPerf { uint8_t update=0; @@ -389,13 +393,17 @@ int main(void) } else if (stage==2) { - drawOptions(); + drawGameOptions(); } else if (stage==3) { - drawCredit(); + drawOptions(); } else if (stage==4) + { + drawCredit(); + } + else if (stage==5) { exitToOS = true; exitflag=true; @@ -603,7 +611,8 @@ int main(void) //if (BDrawBack) drawSkyOptimised( DAY_BLUE_SKY ); //else drawSkyFull( DAY_BLUE_SKY ); - drawSkyFull( DAY_BLUE_SKY ); + //drawSkyFull( DAY_BLUE_SKY ); + drawSkyQuick( DAY_BLUE_SKY ); if (BDrawClds) @@ -702,6 +711,12 @@ int main(void) else if (viewside==2) dsubimage( SCREEN_CX-40, SCREEN_HEIGHT-46, &player, 407,49,80,46, DIMAGE_NONE); } + dfont(&plate); + if (viewside==-2) dprint_opt( 205, 203, C_WHITE, C_BLACK, DTEXT_CENTER, DTEXT_CENTER, "%c%c%c", PlayerName[0], PlayerName[1], PlayerName[2] ); + else if (viewside==-1) dprint_opt( 202, 203, C_WHITE, C_BLACK, DTEXT_CENTER, DTEXT_CENTER, "%c%c%c", PlayerName[0], PlayerName[1], PlayerName[2] ); + else if (viewside==0) dprint_opt( 197, 203, C_WHITE, C_BLACK, DTEXT_CENTER, DTEXT_CENTER, "%c%c%c", PlayerName[0], PlayerName[1], PlayerName[2] ); + else if (viewside==1) dprint_opt( 193, 203, C_WHITE, C_BLACK, DTEXT_CENTER, DTEXT_CENTER, "%c%c%c", PlayerName[0], PlayerName[1], PlayerName[2] ); + else if (viewside==2) dprint_opt( 189, 203, C_WHITE, C_BLACK, DTEXT_CENTER, DTEXT_CENTER, "%c%c%c", PlayerName[0], PlayerName[1], PlayerName[2] ); score = fround(cam->cZ)/100; diff --git a/src/src/drawstuff.cc b/src/src/drawstuff.cc index 414354a..2f589ff 100644 --- a/src/src/drawstuff.cc +++ b/src/src/drawstuff.cc @@ -117,6 +117,11 @@ void drawSkyOptimised( uint16_t color ) dma_memset(gint_vram, (color << 16) | color, 396 * (minYRoad+2) * 2); }; +void drawSkyQuick( uint16_t color ) +{ + dma_memset(gint_vram, (color << 16) | color, 396 * 150 * 2); +}; + void drawSky( uint8_t R, uint8_t G, uint8_t B ) { dclear( C_RGB(R,G,B) ); diff --git a/src/src/menus.cc b/src/src/menus.cc index 74a93f7..2dca4ca 100644 --- a/src/src/menus.cc +++ b/src/src/menus.cc @@ -10,7 +10,7 @@ extern bopti_image_t mainscreen; extern bopti_image_t africa1, desert1, finland1, plains1, usa1; extern bopti_image_t flag, linear, circular; -extern font_t autofont, autofontsmall; +extern font_t autofont, autofontsmall, speedfont; extern bool record; extern bool screenshot; @@ -29,6 +29,9 @@ bool doneMenuCredit = false; bool doneOptions = false; uint8_t OptionsSelection=0; +bool doneGameOptions = false; +uint8_t GameOptionsSelection=0; + bool donePauseQuit = false; uint8_t PauseQuitSelection=0; @@ -42,6 +45,11 @@ extern bool exitToOS; extern bool stop; extern bool SkipTime; +extern uint8_t DiffLevel; +extern uint8_t CarsNumb; +extern char PlayerName[3]; +bool nameCurrentlyWritten = false; +uint8_t selectedChar=0; void drawStartTitle( void ) @@ -123,27 +131,31 @@ int drawMainMenu( void ) dfont(&autofont); - dprint_opt(102, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); - if (MainMenuSelection!=0) dprint_opt(100, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); - else dprint_opt(100, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); + if (MainMenuSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "ARCADE GAME" ); - dprint_opt(102, 62, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); - if (MainMenuSelection!=1) dprint_opt(100, 60, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); - else dprint_opt(100, 60, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); + if (MainMenuSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "TIME ATTACK" ); - dprint_opt(102, 102, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPTIONS" ); - if (MainMenuSelection!=2) dprint_opt(100, 100, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPTIONS" ); - else dprint_opt(100, 100, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPTIONS" ); + dprint_opt(94, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "GAME OPTIONS" ); + if (MainMenuSelection!=2) dprint_opt(92, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "GAME OPTIONS" ); + else dprint_opt(92, 80, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "GAME OPTIONS" ); - dprint_opt(102, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); - if (MainMenuSelection!=3) dprint_opt(100, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); - else dprint_opt(100, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); + dprint_opt(94, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "VISUAL OPTIONS" ); + if (MainMenuSelection!=3) dprint_opt(92, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "VISUAL OPTIONS" ); + else dprint_opt(92, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "VISUAL OPTIONS" ); - dprint_opt(102, 182, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); - if (MainMenuSelection!=4) dprint_opt(100, 180, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); - else dprint_opt(100, 180, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); + dprint_opt(94, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); + if (MainMenuSelection!=4) dprint_opt(92, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); + else dprint_opt(92, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CREDITS" ); - dimage( 10, 10+40*MainMenuSelection, &flag ); + dprint_opt(94, 172, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); + if (MainMenuSelection!=5) dprint_opt(92, 170, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); + else dprint_opt(92, 170, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "QUIT TO OS" ); + + dimage( 2, 10+30*MainMenuSelection, &flag ); // CODE HERE TO PRINT WELCOME MENU @@ -186,13 +198,13 @@ void getInputMainMenu( void ) if (key==KEY_UP) { - if (MainMenuSelection==0) MainMenuSelection=4; + if (MainMenuSelection==0) MainMenuSelection=5; else MainMenuSelection--; } if (key==KEY_DOWN) { - if (MainMenuSelection==4) MainMenuSelection=0; + if (MainMenuSelection==5) MainMenuSelection=0; else MainMenuSelection++; } #if IS_FXLIB==1 @@ -507,77 +519,77 @@ void drawOptions( void ) if (BDrawDeco) { - dprint_opt(102, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); - if (OptionsSelection!=0) dprint_opt(100, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); - else dprint_opt(100, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); + if (OptionsSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [Y]" ); } else { - dprint_opt(102, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); - if (OptionsSelection!=0) dprint_opt(100, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); - else dprint_opt(100, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); + if (OptionsSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "SCENERY [N]" ); } if (BDrawCars) { - dprint_opt(102, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); - if (OptionsSelection!=1) dprint_opt(100, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); - else dprint_opt(100, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); + if (OptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [Y]" ); } else { - dprint_opt(102, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); - if (OptionsSelection!=1) dprint_opt(100, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); - else dprint_opt(100, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); + if (OptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "OPPONENTS [N]" ); } if (BDrawClds) { - dprint_opt(102, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); - if (OptionsSelection!=2) dprint_opt(100, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); - else dprint_opt(100, 80, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); + dprint_opt(94, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); + if (OptionsSelection!=2) dprint_opt(92, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); + else dprint_opt(92, 80, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [Y]" ); } else { - dprint_opt(102, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); - if (OptionsSelection!=2) dprint_opt(100, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); - else dprint_opt(100, 80, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); + dprint_opt(94, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); + if (OptionsSelection!=2) dprint_opt(92, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); + else dprint_opt(92, 80, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CLOUDS [N]" ); } if (BDrawBack) { - dprint_opt(102, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); - if (OptionsSelection!=3) dprint_opt(100, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); - else dprint_opt(100, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); + dprint_opt(94, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); + if (OptionsSelection!=3) dprint_opt(92, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); + else dprint_opt(92, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [Y]" ); } else { - dprint_opt(102, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); - if (OptionsSelection!=3) dprint_opt(100, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); - else dprint_opt(100, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); + dprint_opt(94, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); + if (OptionsSelection!=3) dprint_opt(92, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); + else dprint_opt(92, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACKGROUND [N]" ); } if (BDrawFPS) { - dprint_opt(102, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); - if (OptionsSelection!=4) dprint_opt(100, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); - else dprint_opt(100, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); + dprint_opt(94, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); + if (OptionsSelection!=4) dprint_opt(92, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); + else dprint_opt(92, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [Y]" ); } else { - dprint_opt(102, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); - if (OptionsSelection!=4) dprint_opt(100, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); - else dprint_opt(100, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); + dprint_opt(94, 142, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); + if (OptionsSelection!=4) dprint_opt(92, 140, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); + else dprint_opt(92, 140, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "STATS-FPS [N]" ); } - dprint_opt(102, 172, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); - if (OptionsSelection!=5) dprint_opt(100, 170, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); - else dprint_opt(100, 170, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + dprint_opt(94, 172, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + if (OptionsSelection!=5) dprint_opt(92, 170, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + else dprint_opt(92, 170, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); - dimage( 10, 5+30*OptionsSelection, &flag ); + dimage( 2, 5+30*OptionsSelection, &flag ); // CODE HERE TO PRINT WELCOME MENU @@ -647,6 +659,211 @@ void getInputOptions( void ) + +void drawGameOptions( void ) +{ + uint16_t pulse=0; + doneGameOptions = false; + + GameOptionsSelection=0; + selectedChar = 0; + + while (!doneGameOptions) + { + + dclear(0x0000); + dimage( 0, 0, &mainscreen); + + dfont(&autofont); + + if (DiffLevel==0) + { + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + if (GameOptionsSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + } + else if (DiffLevel==1) + { + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + if (GameOptionsSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + } + else if (DiffLevel==2) + { + dprint_opt(94, 22, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + if (GameOptionsSelection!=0) dprint_opt(92, 20, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + else dprint_opt(92, 20, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "LVL " ); + } + + + if (CarsNumb==0) + { + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <50>" ); + } + else if (CarsNumb==1) + { + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); + if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <100>" ); + } + else if (CarsNumb==2) + { + dprint_opt(94, 52, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); + if (GameOptionsSelection!=1) dprint_opt(92, 50, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); + else dprint_opt(92, 50, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "CARS <200>" ); + } + + dprint_opt(94, 82, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "PLAYER" ); + dprint_opt(92, 80, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "PLAYER" ); + + + dprint_opt(124, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[0] ); + if (GameOptionsSelection!=2 || selectedChar!=0) dprint_opt(122, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[0] ); + else if (GameOptionsSelection==2 && selectedChar==0) dprint_opt(122, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[0] ); + + dprint_opt(154, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[1] ); + if (GameOptionsSelection!=2 || selectedChar!=1) dprint_opt(152, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[1] ); + else if (GameOptionsSelection==2 && selectedChar==1) dprint_opt(152, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[1] ); + + dprint_opt(184, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[2] ); + if (GameOptionsSelection!=2 || selectedChar!=2) dprint_opt(182, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[2] ); + else if (GameOptionsSelection==2 && selectedChar==2) dprint_opt(182, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "%c", PlayerName[2] ); + + dfont(&speedfont); + dprint_opt(214, 112, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "@" ); + if (GameOptionsSelection!=2 || selectedChar!=3) dprint_opt(212, 110, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "@" ); + else if (GameOptionsSelection==2 && selectedChar==3) dprint_opt(212, 110, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "@" ); + + dfont(&autofont); + dprint_opt(94, 172, C_RGB(0,0,0), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + if (GameOptionsSelection!=3) dprint_opt(92, 170, C_RGB(255,255,255), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + else dprint_opt(92, 170, C_RGB(pulse%256,0,pulse%256), C_NONE, DTEXT_LEFT, DTEXT_TOP, "BACK TO GAME" ); + + if (GameOptionsSelection==0) dimage( 2, 5, &flag ); + else if (GameOptionsSelection==1) dimage( 2, 35, &flag ); + else if (GameOptionsSelection==2) dimage( 2, 65, &flag ); + else if (GameOptionsSelection==3) dimage( 2, 155, &flag ); + + // CODE HERE TO PRINT WELCOME MENU + + dupdate(); + + pulse++; + getInputGameOptions(); + +#if IS_FXLIB==1 + if (screenshot && usb_is_open()) + { + usb_fxlink_screenshot(false); + screenshot = false; + } + + if(record && usb_is_open()) + { + usb_fxlink_videocapture(false); + } +#endif + } + + SkipTime = true; // To avoid counting or de-counting time during menu + + return; +} + +void getInputGameOptions( void ) +{ + int opt = GETKEY_DEFAULT & ~GETKEY_REP_ARROWS; + int timeout = 1; + + while(1) + { + key_event_t ev = getkey_opt(opt, &timeout); + if(ev.type == KEYEV_NONE) return; + + int key = ev.key; + + if (key==KEY_EXE) + { + if (GameOptionsSelection==2) nameCurrentlyWritten=false; + + if (GameOptionsSelection==3) doneGameOptions=true; + } + + if (key==KEY_UP && !nameCurrentlyWritten) + { + if (GameOptionsSelection==0) GameOptionsSelection=3; + else GameOptionsSelection--; + } + + if (key==KEY_UP && nameCurrentlyWritten) + { + if(GameOptionsSelection==2 && selectedChar>=0 && selectedChar<=2) + { + if (PlayerName[selectedChar]>'A') PlayerName[selectedChar]--; + else PlayerName[selectedChar]='Z'; + } + else if(GameOptionsSelection==2 && selectedChar==3) + { + nameCurrentlyWritten=false; + } + } + + if (key==KEY_DOWN && !nameCurrentlyWritten) + { + if (GameOptionsSelection==3) GameOptionsSelection=0; + else GameOptionsSelection++; + } + + if (key==KEY_DOWN && nameCurrentlyWritten) + { + if(GameOptionsSelection==2 && selectedChar>=0 && selectedChar<=2) + { + if (PlayerName[selectedChar]<'Z') PlayerName[selectedChar]++; + else PlayerName[selectedChar]='A'; + } + else if(GameOptionsSelection==2 && selectedChar==3) + { + nameCurrentlyWritten=false; + } + } + + if (key==KEY_LEFT) + { + if (GameOptionsSelection==2 && selectedChar>=0 && selectedChar<=2) nameCurrentlyWritten=true; + else if (GameOptionsSelection==2 && selectedChar==3) nameCurrentlyWritten=false; + + if (GameOptionsSelection==2 && selectedChar>0) selectedChar--; + else if (GameOptionsSelection==2) selectedChar=3; + + if (GameOptionsSelection==0 && DiffLevel>0) DiffLevel--; + else if (GameOptionsSelection==1 && CarsNumb>0) CarsNumb--; + } + + if (key==KEY_RIGHT) + { + if (GameOptionsSelection==2 && selectedChar>=0 && selectedChar<=2) nameCurrentlyWritten=true; + else if (GameOptionsSelection==2 && selectedChar==3) nameCurrentlyWritten=false; + + if (GameOptionsSelection==2 && selectedChar<4) selectedChar++; + else if (GameOptionsSelection==2) selectedChar=0; + + if (GameOptionsSelection==0 && DiffLevel<2) DiffLevel++; + else if (GameOptionsSelection==1 && CarsNumb<2) CarsNumb++; + } + +#if IS_FXLIB==1 + if(keydown(KEY_F5)) screenshot = true; + if(keydown(KEY_F6)) record = !record; +#endif // IS_FXLIB + } +} + + + + + void drawPauseQuit( void ) { uint16_t pulse=0;