From 7555ac4851751c6e6ef6df58051fb108b12ae17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20=C4=8C=C3=AD=C5=BE?= Date: Tue, 11 Feb 2020 21:24:50 +0100 Subject: [PATCH] Start menu --- assets/background1.png | Bin 979 -> 8051 bytes assets/logo.png | Bin 1128 -> 1176 bytes images.h | 64 ++++++++++++++++++++---------- main.c | 88 +++++++++++++++++++++++++++++++++++++++-- 4 files changed, 127 insertions(+), 25 deletions(-) diff --git a/assets/background1.png b/assets/background1.png index f49dd613c73e831c41c93f4fb9d91bf3e1b04ea4..c0ce7c4a2a2e7be6b296ccc81998674914601f84 100644 GIT binary patch literal 8051 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 delta 880 zcmV-$1CRXkKGO$~Ba_S+J;K~z}7y;m)8qd*k?!XQ>e ztUw?to;ZPsKt>`fBP&i+oQODavJzQwqB64LM8%27NF)+bfjF_EVg&+Gv4WYNfL#`{ zke}(@&SXg5d*A!M_w5Ff#eI@|;DS|uNx=VP7uC&SJY2ZWA-@E3v4CqyX~qAqfOE*t z5-nTjpB0{-?qlp$SDMXi0?qf%fP*Kw=?;4yB&%P zLkKBNAD#0l43SmEEIEZ1an~e~8HCO=(dQ2ee{{?GUdtRp0ff->p@2hF?R$T$Ncgfn zG~rOleVPtFKR+fQGT(ZLs@+0%7qy{f4!o}|fiWnsT<+fc_T*FKW;$I9K!^xLO4xu5G{XVidfhsaQ+mjzu-@FrH?>hjKZ*8uPGlMO)obX(G ze=Pu%h2#F+HD_@$>yV4cj?r>s1bTDD2B32X)w)-lejx2thP}#AEDM7lb5Ov$JK;pZ zlmh_3zC8`jz<6y~f_)0?Q{es~Grf~T_f`D8b3Y5}fXqQVihoT_e4Xz=%Z;g@#p!cL z2k_U{MgFRgueb1wvhP27YaCzzpkL`Af1a7*BY#CR!K-sPz}sy06-IO6KE%<>csPKRt9u4yQwa6UCT<$=9zyQZ|(zy6eg$|nC7-9n^a$I z+%0000-ZQYC4g^$B z0R;;R3+G&CqEI1o^rro13`E)MC=Rl^9lfe8ldN2k!jvK zFwxoW5pW$raOx2R0nvGco@sP0NJf7F0D~Yz^w-jHTmwnZ$8D6%LT?v=^;6z#8lHv3 z$p}5uWH$hUa$YhBLUI+O=k>Z4#C@+mC&xY^wdbzZFQ#J8fNeZ&NZl4S5L2LMnlvfv zT<@lohmR3-3ilpQY-d6pFv;X`5`*HAWUH*cG)BU#yfBMbRn;Y*7>|5T4hL&6*$xI?jIuLC^(|PSZ{V z8abV&))m-vnp$6A;m6zn#Sxa}UL0YEe)vo`jv*#DMk3FYL)Z2I?UtG7n?g_ zorle3xL!8W^N=$G3r&Af6rIY^GtJ~Oq4$u~YnnZWC&<~?*I!01F#ITC*?9W<0{^JK z=g+R{-jJqs!%|9-$1yU^2@eFlWB*wPY+CWFZo>w|U}<>$9_YCR1ENs ze9~CfjVr9j{2?Q`kuP3Gzg>dd^x+a1{++P^4#j|P|5UvHz1M#lA3el44|j}`g!`K> z^#3@4fzLe8nCBUfl_vRX{NtYz1NJ3u%IjKY_F86k=!aG%-A1DlV-d99n>}U=#%#N= zsq+t^H49_MT)+`Lk1ppWZjYJDmtY|I0UG3ZWDhT3od0J!cFTG!X>GraL(9&p{|q%Q8;v+Ez? zfys*J$NBMk^3}z*dA~mQ{Kc=J**Aa4vJ6To+-ePAfxIcv>>B{U;=k=+W3D6M<=L*! zT_+=881Iz%(myg=bRrBPLLYeH5N(U}Hya*`O035spQZL5qTZ4b1$}iV| zVZAKN5Cj3#KQ-ce0lWetO2EJHKA&$57N}4aHDp}?4u{;egSWTQ@O)Ie>T(MB9k<-g z7(=-!0RZ{Gha9h;Q9kyYZ+CrI{YU^3sCNp*;{&jVeI{JTz#hk_IDGQdB%nHeL0e>A^5XQE7YmqkDrIH$JV~goYs!CyQb6CT=uIbdSuIm#J zA<5;kzh5q?+?3YV9bGMe@#%N!*bJXvcPjcEBv&EnPE#yEa5#bYd%Az4D*(DVWh%xP zvMjT@QVLI=z*FF&Ivhr(Ky|0>0Dy8+LU$T*kN~?HN-5+!jx>yc7e335_A|_~zPkAx zM;IR2Ymp=nZ42xrlu~Fn%7QRbZc4Np1qC4fTLHhd$Y$s_O;fmh^fkN-qaRb`$9?z? zL#~qkew6dmnvkoIN?Csm?9!FAc2kXuGub3ChG-=b-TMH5+bd^Hn$oY3%pKH@##IA`!O*fgm(mC)AH6}Tl@vNe})W&b!^16A=_Pr z;)gujoZg)26;b?IauTY5CD#usQi3`%pcPN->*+00000NkvXXu0mjf$57)* diff --git a/images.h b/images.h index 87a69a7..37091d3 100644 --- a/images.h +++ b/images.h @@ -583,27 +583,27 @@ SFG_PROGRAM_MEMORY uint8_t SFG_itemSprites[][SFG_TEXTURE_STORE_SIZE] = SFG_PROGRAM_MEMORY uint8_t SFG_backgroundImages[][SFG_TEXTURE_STORE_SIZE] = { { // 0, city -64,73,10,168,19,12,14,13,80,101,0,100,136,57,59,63,34,34,34,68,87,119,119,119, -118,8,0,16,0,28,17,17,34,34,36,85,84,85,119,118,102,96,0,129,129,1,17,17,34,34, -36,66,68,69,119,102,99,48,48,0,1,16,17,17,34,34,34,34,68,68,87,118,102,102,104, -0,1,12,17,17,34,34,34,36,69,69,51,51,0,8,0,192,1,16,17,17,34,34,34,36,85,87,58, -170,163,51,0,0,0,1,17,17,34,34,34,68,85,119,218,170,51,192,48,0,0,16,17,193,34, -34,34,68,85,119,51,51,48,3,0,0,129,17,17,17,34,34,68,68,85,119,119,102,102,104, -48,24,16,16,17,17,34,34,36,69,87,119,119,102,102,102,128,128,0,1,17,17,34,34,34, -69,87,51,51,51,0,8,48,24,16,16,17,17,34,34,34,36,87,58,250,250,227,51,0,0,128,1, -17,17,226,34,34,36,85,58,170,170,51,48,48,0,16,16,17,17,34,34,34,68,85,51,61,51, -48,51,8,129,129,1,17,17,34,34,36,69,103,149,85,95,102,0,56,0,0,28,17,17,34,34, -34,69,85,153,85,89,111,3,13,0,0,1,17,17,34,34,34,68,85,153,51,51,0,8,8,0,0,16, -17,17,34,34,34,68,75,153,51,51,48,0,140,0,0,1,17,17,34,34,34,68,75,185,51,51,0, -8,48,0,0,16,17,17,34,34,66,69,51,51,58,170,163,51,192,0,0,1,17,17,34,34,68,69, -63,207,170,170,51,48,192,0,0,16,17,17,34,34,78,69,51,51,51,51,48,208,136,128,12, -1,17,17,238,34,78,68,85,187,153,185,144,8,48,24,16,28,17,17,34,34,36,68,69,91, -185,179,48,0,0,0,0,1,28,17,34,34,68,68,75,185,187,179,0,8,48,0,192,16,17,17,226, -36,69,85,84,185,187,147,48,0,136,128,0,1,17,17,34,68,69,85,119,121,187,185,150, -104,8,16,0,16,17,17,34,34,68,69,87,105,187,153,246,102,102,128,0,1,17,17,34,34, -36,85,87,105,185,156,0,8,8,0,0,16,17,17,34,34,36,84,86,105,150,102,102,3,192,0, -1,1,17,17,34,34,36,68,71,103,118,108,0,8,0,24,17,16,17,17,34,34,34,68,71,102, -103,102,246,102,248,128,0,1,17,17 +64,10,73,168,19,12,14,13,80,1,72,101,0,100,136,57,17,17,17,68,87,119,119,119, +118,8,0,32,0,46,34,154,17,17,20,85,84,85,119,118,102,96,0,130,130,2,34,154,17, +17,20,65,68,69,119,102,99,48,48,0,2,32,34,154,17,17,17,17,68,68,87,118,102,102, +104,0,2,14,34,154,17,17,17,20,69,69,51,51,0,8,0,224,2,32,34,154,17,17,17,20,85, +87,60,204,195,51,0,0,0,2,34,154,17,17,17,68,85,119,252,204,51,224,48,0,0,32,34, +154,17,17,17,68,85,119,51,51,48,3,0,0,130,34,34,154,17,17,68,68,85,119,119,102, +102,104,48,40,32,32,34,154,17,17,20,69,87,119,119,102,102,102,128,128,0,2,34, +154,17,17,17,69,87,51,51,51,0,8,48,40,32,32,34,154,17,17,17,20,87,60,252,252, +243,51,0,0,128,2,34,154,65,17,17,20,85,60,204,204,51,48,48,0,32,32,34,154,17,17, +17,68,85,51,63,51,48,51,8,130,130,2,34,154,17,17,20,69,103,181,85,86,102,0,56,0, +0,46,34,154,17,17,17,69,85,187,85,91,102,3,15,0,0,2,34,154,17,17,17,68,85,187, +51,51,0,8,8,0,0,32,34,154,17,17,17,68,77,187,51,51,48,0,142,0,0,2,34,154,17,17, +17,68,77,219,51,51,0,8,48,0,0,32,34,154,17,17,65,69,51,51,60,204,195,51,224,0,0, +2,34,154,17,17,68,69,63,239,204,204,51,48,224,0,0,32,34,154,17,17,71,69,51,51, +51,51,48,240,136,128,14,2,34,154,68,17,71,68,85,221,187,219,176,8,48,40,32,46, +34,154,17,17,20,68,69,93,219,211,48,0,0,0,0,2,34,154,17,17,68,68,77,219,221,211, +0,8,48,0,224,32,34,154,65,20,69,85,84,219,221,179,48,0,136,128,0,2,34,154,17,68, +69,85,119,123,221,219,182,104,8,32,0,32,34,154,17,17,68,69,87,107,221,187,102, +102,102,128,0,2,34,154,17,17,20,85,87,107,219,190,0,8,8,0,0,32,34,154,17,17,20, +84,86,107,182,102,102,3,224,0,2,2,34,154,17,17,20,68,71,103,118,110,0,8,0,40,34, +32,34,154,17,17,17,68,71,102,103,102,102,102,104,128,0,2,34,154 }, { // 1, reddish scifi interior 168,18,17,19,65,153,1,9,152,232,0,45,61,80,96,160,18,114,34,34,34,34,34,80,0,0, @@ -1225,6 +1225,28 @@ SFG_PROGRAM_MEMORY uint8_t SFG_monsterSprites[][SFG_TEXTURE_STORE_SIZE] = } }; +uint8_t SFG_logoImage[SFG_TEXTURE_STORE_SIZE] = +{ +175,224,0,7,4,5,162,77,2,74,70,69,6,11,68,75,0,0,0,0,0,0,17,17,17,17,17,0,0,0,0, +0,0,0,0,0,0,1,132,69,51,84,65,0,0,0,0,0,0,0,0,0,0,24,65,17,19,17,17,0,0,0,0,0,0, +0,0,0,0,24,65,0,19,16,0,0,0,0,0,0,0,0,0,0,0,24,65,17,19,17,17,0,0,0,0,0,0,0,0,0, +0,1,132,69,51,84,65,32,0,0,0,0,0,0,0,0,0,1,17,17,17,17,17,242,0,0,0,0,0,0,0,6, +97,243,94,40,51,84,66,159,32,0,0,0,0,0,17,17,24,60,190,40,50,34,34,155,146,0,0, +0,0,0,33,17,20,203,238,109,51,84,66,251,178,0,0,0,0,0,17,17,131,171,123,145,18, +34,38,122,187,32,0,0,0,0,6,97,92,170,167,113,115,35,81,122,171,32,0,0,0,0,2,22, +202,170,170,212,51,37,210,26,121,130,0,0,0,0,34,17,22,234,164,28,60,34,92,23, +218,56,32,0,0,2,33,17,102,110,113,69,210,35,51,93,51,66,50,0,0,34,34,40,126,246, +210,34,195,35,51,49,210,34,34,0,0,0,2,40,119,238,105,197,210,35,51,93,51,65,50, +0,0,0,2,38,87,119,166,156,60,34,92,223,218,161,32,0,0,2,34,38,87,119,170,20,51, +37,223,23,114,18,0,0,0,2,34,34,69,122,119,241,211,35,86,102,187,32,0,0,0,0,0,97, +213,119,187,97,134,45,17,246,105,32,0,0,0,0,34,33,22,247,238,29,51,53,65,155,98, +0,0,0,0,0,2,34,33,110,233,29,54,17,17,155,146,0,0,0,0,0,0,0,97,111,153,34,34,34, +29,159,32,0,0,0,0,0,0,0,0,41,150,40,51,84,65,146,0,0,0,0,0,0,0,0,0,2,38,40,56, +24,65,32,0,0,0,0,0,0,0,0,0,0,2,40,49,145,65,0,0,0,0,0,0,0,0,0,0,1,17,34,17,17, +17,0,0,0,0,0,0,0,0,0,0,1,132,69,51,84,65,0,0,0,0,0,0,0,0,0,0,1,17,24,56,17,17,0, +0,0,0,0,0,0,0,0,0,0,0,24,51,84,65,0,0,0,0,0,0,0,0,0,0,0,0,1,17,17,17,0,0,0,0,0 +}; + uint8_t SFG_charToFontIndex(char c) { if (c >= 'a' && c <= 'z') diff --git a/main.c b/main.c index a3c4863..e87e65c 100755 --- a/main.c +++ b/main.c @@ -660,7 +660,7 @@ void SFG_pixelFunc(RCL_PixelInfo *pixel) #if SFG_BACKGROUND_BLUR != 0 + SFG_backgroundBlurOffsets[SFG_backgroundBlurIndex] #endif - ) * SFG_RAYCASTING_SUBSAMPLE + SFG_game.backgroundScroll) % SFG_GAME_RESOLUTION_Y], + ) * SFG_RAYCASTING_SUBSAMPLE + SFG_game.backgroundScroll) % SFG_GAME_RESOLUTION_Y], (SFG_game.backgroundScaleMap[(pixel->position.y // ^ TODO: get rid of mod? #if SFG_BACKGROUND_BLUR != 0 + SFG_backgroundBlurOffsets[SFG_backgroundBlurIndex + 1] @@ -1873,7 +1873,7 @@ uint8_t SFG_projectileCollides(SFG_ProjectileRecord *projectile, return RCL_vectorsAngleCos(projDir,toElement) >= 0; } -SFG_getLevelElementSprite( +void SFG_getLevelElementSprite( uint8_t elementType, uint8_t *spriteIndex, uint8_t *spriteSize) { *spriteSize = 0; @@ -3012,12 +3012,92 @@ void SFG_drawWeapon(int16_t bobOffset) SFG_WEAPON_IMAGE_SCALE); } +void SFG_drawMenu() +{ + #define BACKGROUND_SCALE (SFG_GAME_RESOLUTION_X / (4 * SFG_TEXTURE_SIZE ) ) + + #if BACKGROUND_SCALE == 0 + #define BACKGROUND_SCALE 1 + #endif + + #define SCROLL_PIXELS_PER_FRAME ((64 * SFG_GAME_RESOLUTION_X) / (8 * SFG_FPS)) + + #if SCROLL_PIXELS_PER_FRAME == 0 + #define SCROLL_PIXELS_PER_FRAME 1 + #endif + + #define MAX_ITEMS 8 + + #define CHAR_SIZE (SFG_FONT_SIZE_MEDIUM * (SFG_FONT_CHARACTER_SIZE + 1)) + + uint16_t scroll = (SFG_game.frame * SCROLL_PIXELS_PER_FRAME) / 64; + + for (uint16_t y = 0; y < SFG_GAME_RESOLUTION_Y; ++y) + for (uint16_t x = 0; x < SFG_GAME_RESOLUTION_X; ++x) + SFG_setGamePixel(x,y, + (y >= (SFG_TEXTURE_SIZE * BACKGROUND_SCALE)) ? 0 : + SFG_getTexel(SFG_backgroundImages[0],((x + scroll) / BACKGROUND_SCALE) + % SFG_TEXTURE_SIZE,y / BACKGROUND_SCALE)); + + char *itemTexts[MAX_ITEMS]; + + for (uint8_t i = 0; i < MAX_ITEMS; ++i) + itemTexts[i] = 0; + + itemTexts[0] = "continue"; + itemTexts[1] = "map"; + itemTexts[2] = "play level 1"; + itemTexts[3] = "load"; + itemTexts[4] = "sound on"; + itemTexts[5] = "exit"; + + +uint16_t y = CHAR_SIZE; + + +SFG_blitImage(SFG_logoImage, SFG_GAME_RESOLUTION_X / 2 - 16 * SFG_FONT_SIZE_MEDIUM, + y,SFG_FONT_SIZE_MEDIUM ); + + y += 32 * SFG_FONT_SIZE_MEDIUM + CHAR_SIZE * 2; + + for (uint8_t i = 0; i < MAX_ITEMS; ++i) + { + + if (itemTexts[i] == 0) + break; + + uint8_t textLen = 0; + + while (itemTexts[i][textLen] != 0) + textLen++; + + + uint16_t drawX = (SFG_GAME_RESOLUTION_X - textLen * CHAR_SIZE) / 2; + + + + //SFG_drawText(itemTexts[i],drawX - 1,y - 1,SFG_FONT_SIZE_MEDIUM,63); + SFG_drawText(itemTexts[i],drawX,y,SFG_FONT_SIZE_MEDIUM,23); + + + y += CHAR_SIZE + SFG_FONT_SIZE_MEDIUM; + } + + #undef CHAR_SIZE + #undef MAX_ITEMS + #undef BACKGROUND_SCALE + #undef SCROLL_PIXELS_PER_FRAME +} + void SFG_draw() { #if SFG_BACKGROUND_BLUR != 0 SFG_backgroundBlurIndex = 0; #endif +SFG_drawMenu(); +return; + if (SFG_keyPressed(SFG_KEY_MAP)) { SFG_drawMap(); @@ -3217,14 +3297,14 @@ void SFG_draw() SFG_drawNumber( // ammo SFG_player.ammo[SFG_weaponAmmo(SFG_player.weapon)], SFG_GAME_RESOLUTION_X - SFG_HUD_MARGIN - - SFG_FONT_CHARACTER_SIZE * SFG_FONT_SIZE_MEDIUM * 3, + (SFG_FONT_CHARACTER_SIZE + 1) * SFG_FONT_SIZE_MEDIUM * 3, TEXT_Y, SFG_FONT_SIZE_MEDIUM, 4); for (uint8_t i = 0; i < 3; ++i) // access cards if (SFG_player.cards & (1 << i)) - SFG_drawText(",",SFG_HUD_MARGIN + SFG_FONT_CHARACTER_SIZE * + SFG_drawText(",",SFG_HUD_MARGIN + (SFG_FONT_CHARACTER_SIZE + 1) * SFG_FONT_SIZE_MEDIUM * (6 + i), TEXT_Y,SFG_FONT_SIZE_MEDIUM,i == 0 ? 93 : (i == 1 ? 124 : 60));