From 125796cf8dd8ca42554752747c2557c9b7b68ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20=C4=8C=C3=AD=C5=BE?= Date: Sun, 22 Mar 2020 17:52:23 +0100 Subject: [PATCH] Add lamp --- assets/img2map.py | 1 + assets/item_lamp.png | Bin 0 -> 635 bytes assets/levelY.gif | Bin 2838 -> 2963 bytes images.h | 20 +++++++++++++++++++- levels.h | 15 ++++++++------- main.c | 4 +++- 6 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 assets/item_lamp.png diff --git a/assets/img2map.py b/assets/img2map.py index f451a9b..6108e8c 100644 --- a/assets/img2map.py +++ b/assets/img2map.py @@ -20,6 +20,7 @@ elementTypes = [ "TERMINAL", "COLUMN", "RUIN", + "LAMP", "CARD0", "CARD1", "CARD2", diff --git a/assets/item_lamp.png b/assets/item_lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..840f64e4035c778fdaaf589610a7ac679d626bad GIT binary patch literal 635 zcmV->0)+jEP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00HAkL_t(o!_}7|bK@`&g}-(R z3=Iw#E(kCT3^-sIP+(YSa3G+-urRPNFrXmNFh9Ytu;73}fuO(vLxIfbfFt*kOVdbh zn|5b3w%4-sw0is2x-ekzwCI4(5N20_-ytLE@71#k9mXF(1Wcz>(n*9!0&Uv)%Q7em z7d~4M0p&a=5ko}iHSqz6e&}67|LG!;j?$NiyrBk(rlD0^9!QK<5%sDXwgvk@##ziHOOEvE z!oHZV{fg625gIB+K|0W~KKlG&#mK3lQ$A<2Uv~ghEA{cUz_oD}+f|*}aTeRqF@m?? zJ#7#Gt=jVfc&g*U0ItF(Z!wvnsoV2K;M2~Z9gb2A;Ty7}Gb&<`uW%G|nD?AiPNO5g20Z}``q1(Gk175sU*+pTtI57qtq(+Jno zCww2cPTAD$*Is{|9kh{t0@g=ha{mbj7;y6mS zMkt|(+L1V%i6?)eD4vQBve=f3FXjiDj0(o}%@sU;BVvahR)=F#_I)GHkv?t+%!8d?V#I_7J#aR6{=XB$QlQY2b8qW%-y~Msf+Imjr>d*ClYcxTTrmps5o}G}US6 zop|P{=bjaj3FVYj%9-1qh45+Up?ZD*=%R}PP-c{uTta`LLWdTL=%tu`5Y1Q7bn5A* zkA4&Bq$BZZDW<6MsVS$QcIxP#{-Z7^U8Skkn&_qgL>g(Uo!S#>tb&@PT3UCWYU{Be zxhm;cH`oJ$JvRW`A3`3T+ElT~W?PZ6WG&*Yw>N|<>qOQXE0wm{YP#vNVtos)xWR%n zEOFSPd#r!Dxo*XQ5pB5Z@4GjQo900CR#&gRwc@+%zWx5|Znyyln`XHOBaG??5iiWI z!wgvB)H+YI43|eFO2$9^Xgl%XN+%v#J@3g)`1A zQ^qq*KL4C(#5gCp)zCK=O{YaipR07qOcTu&)GU8X+)>q`6@2y5PitK^*HX({=-MM+ zoAlT;VT|_HTu1ydwQC#PGydCfFAcRl9O!FvxX?CxgVQ>L%s0|*zumW9I9CZ49F(_7 zD&9gG8)V;iLTRo>odh3{@#hvVR(jG1c zzyp8J)$Nxb)VP>y`TkAt!f!?V=mQ;(ymMSJZ+-IsJTGzdY)?ojTQQm{P>q6|8W3n031=8DiX2ENy--x zj9~VBAvz^h?|?%~AZ)(0ln#3Eg9QP=4d8!p313jj9}HW>DS8nNag^W+eegsss-cd1 zynqabScNjcQICG4zzhC=D1|Vx@s50`pbLNq#W1kZ4t$UR41+L5F}eW{er!Mqa)`t$ zj$w^;d;lF_45JvwNX9an@r-CZBL^!0gfs+V6SiQ6HZD+vH6%h5ypTpYGC+hkG$NDl z1}z!SAjdpX0EIkQf)>pPhdjQR##XxWm9FHVlQsuf3M*kr&w9R6IwAg(mj_pW^R%Z< zcPd5>@(x)!<*88XNvWUODyTzEYAa*I5t;zNsE0zTQm0zR;LwR8T!E^psLE9}&Z#C? z?TS_t)zz|&v8YZR>z<@))~U{_PES>9p4i&fq%!rYSe5Hs>uT1w>eWzm|w)-*rz(yv4~adW8=DiSh5P1s|ErqWy13Pu)bv8ycyKe(r*(iVR! zo30BJHN)AOFn>GjVOU0Z!Er0Gi9u{D-rmW@7gO;)SzO?_09D4Zq_KGU1mjHMc&R!@ z@qK@c#uE#9$V5(XkWp-Z;Sw8J$W8X}lbM`kuTtyCv#YX_uZ-msYZ<~zUT~BzJY_L| z8O&VnGX8YWjNvq^dCU(kGf&#|JtGCjBr=G2WA*Sg|aQYO6 z{&cAA(P-d38q#+T^PG)B>NDdx)o|T2>I7Y3T<7}A`^_tFt=r>^5Szr1{4H7%FNimuJnehtL$rEgx$GtcZ|2K zUk0ms#OP-22k@4SPR)Imt~s$2c)ACy;9Swa+>biE@cMZvn*B~p=cr ZKK8adL|$Mu`_z5{cDLL8?lK7o06T-_%Rm4C delta 1734 zcmV;%208hY7nT;Vd;@=@N}WozD%B4FvTEJRwX4^!V8en{Xtk`_vuCl2UCXvDTe4{5 z%0;Wzt=+qA;m+O57iwL+fCF#U+qdxCzk(CrH3-tMW4VYGOJ2(ueq!duijkQHSE)}XG`{c`*CjFi5Y*J?)~{U@W8x@7dCzz zuW;MSeK!|fSzz?b%%{6ee*Lg^+6lYOh5TixA&2&PSRsh; zAq1U<0Jas)iY$MwSmJpNE~a9OEWTJ9O*rPLm~oz%kBdP7#K zvg)d@i~{?eu#?(atd<`ft0||jekyB`!xB0zrq*uS)i-Uj`3cev06lWk0}~DPjyiu+OtsZB6D`%&Tp!J*FKDB!mCsc# zO`ygoO4YTwX{((T+h7}HXa3w%)m8W3b_0O7+XwBpPhdln5z$QBJiB9yLle!032@|16$x1#kU?Gzn2v>iTw4^q-DL~(m zjZE3(rZ_A4q;FDdoaiKHX*fa?0GM-1>5OL-bwZSOX62n7{*$LZ6-du8`GYI?>GR4eu@ zsXJG?(vtpjq$DM2K0$w~&mx8Cq$V9{PI1IimA(|FFWsq0kEBtWa?_hZ4Qfka+ESOY zw5dHs=~6E`Q=@WpofSCg<@^8YSy7vB(38tt5PjG z)TjQGBFS84GoKmFX;$-^QX(l@;o8J<>h!KsJ?TaB%1mcMQ<{I&wB{LdikFKJ_NXIK ztWTY)(}yy4uaEVsWCQ!q!Csc1CTc5BL2_Dcf;CSuz5eT^Oxs!lzP3zDP3mlGtIpJ3 zDz>@J6K#3R(2=NCN5ds9I&Q0_t?J0R?NaU~jY}rG=t;Ws^et|G1YJ~Nx3JVbZqB}& zK<0`!xx_W^anXOvTlK1zy|s03TjASU`I?o!r?qcb@q1bQdX&F}^)E&N3|9d|l)z~< zFhUVLRt2N#D3&EJYHga>+)7oYOx>x+Zt#ILeV|c@ipB@NLE;a%%pM=$fQm69;R!!S zvu<@NhK1_V4R;t#A7)gDM_l3)r+CE?Zn15RtJvTc*{6Srtq7ZLe2E;NV#g%@hKXJF zV-B!b$V1ldw2%^HEEhMm8E&dY?b_Xo1metW#gzJ&2WVKKirKBfMedmck>=>G`O6e0 z^IVk*ROfzR&UN9dw(G-BY@1+Dz8&1-8%n>^xHzu`cDT zu`d$taaZ-ut|lt1ovmywi}$Vd7M{NM&F_BeJ5(<0WJx`1GH{dl``|LE$VwERGlmNs cC`CcI#8YAuFfH8TKj}!sC(iMXLnI&oJD~xB2LJ#7 diff --git a/images.h b/images.h index f1010a7..9670188 100644 --- a/images.h +++ b/images.h @@ -623,7 +623,25 @@ SFG_PROGRAM_MEMORY uint8_t SFG_itemSprites[][SFG_TEXTURE_STORE_SIZE] = 0,84,68,71,84,119,117,146,34,40,51,246,0,0,0,0,0,0,68,85,85,85,67,18,35,35,34, 52,0,0,0,0,0,0,0,5,80,0,0,51,51,51,51,51,0,0,0,0,0,0,0,5,0,0,0,0,51,50,51,35 }, - { // 11, access card + { // 11, lamp +175,0,49,31,7,106,27,28,107,3,4,105,1,2,26,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,220,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,220, +16,0,0,0,0,0,0,0,0,0,0,0,0,0,29,220,193,0,0,0,0,0,0,0,0,0,0,0,0,0,22,220,91,0,0, +0,0,0,0,0,0,17,0,1,16,85,103,146,88,85,0,0,0,0,0,0,1,33,0,22,133,51,103,146,232, +51,80,0,0,0,0,0,1,33,17,215,131,51,103,146,248,67,80,0,0,1,16,0,25,33,28,103, +132,68,103,146,248,68,59,187,177,26,33,17,153,33,28,119,132,68,231,98,232,68,55, +119,226,42,34,34,153,33,28,167,132,68,103,111,104,68,59,187,177,26,33,17,169,33, +17,167,131,51,119,98,136,67,80,0,0,1,16,0,26,33,0,23,85,51,119,111,230,51,80,0, +0,0,0,0,1,33,0,1,16,85,119,146,230,85,0,0,0,0,0,0,1,33,0,0,0,0,26,146,97,0,0,0, +0,0,0,0,0,17,0,0,0,0,26,162,241,0,0,0,0,0,0,0,0,0,0,0,0,0,1,175,16,0,0,0,0,0,0, +0,0,0,0,0,0,0,1,162,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + }, + { // 12, access card 175,0,21,45,44,23,46,2,19,34,69,22,68,60,131,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,17,17,17,17,17,17,0,0,0,0,0,0,0,0,1, 68,17,24,102,101,86,97,0,0,0,0,0,0,0,0,1,68,17,24,102,85,86,101,16,0,0,0,0,0,0, diff --git a/levels.h b/levels.h index 49f20bb..7641ff0 100644 --- a/levels.h +++ b/levels.h @@ -98,16 +98,17 @@ typedef struct #define SFG_LEVEL_ELEMENT_TERMINAL 0x09 #define SFG_LEVEL_ELEMENT_COLUMN 0x0a #define SFG_LEVEL_ELEMENT_RUIN 0x0b -#define SFG_LEVEL_ELEMENT_CARD0 0x0c ///< Access card, unlocks doors with lock. -#define SFG_LEVEL_ELEMENT_CARD1 0x0d -#define SFG_LEVEL_ELEMENT_CARD2 0x0e -#define SFG_LEVEL_ELEMENT_LOCK0 0x0f /**< Special level element that must be +#define SFG_LEVEL_ELEMENT_LAMP 0x0c +#define SFG_LEVEL_ELEMENT_CARD0 0x0d ///< Access card, unlocks doors with lock. +#define SFG_LEVEL_ELEMENT_CARD1 0x0e +#define SFG_LEVEL_ELEMENT_CARD2 0x0f +#define SFG_LEVEL_ELEMENT_LOCK0 0x10 /**< Special level element that must be placed on a tile with door. This door is then unlocked by taking the corresponding access card. */ -#define SFG_LEVEL_ELEMENT_LOCK1 0x10 -#define SFG_LEVEL_ELEMENT_LOCK2 0x11 -#define SFG_LEVEL_ELEMENT_BLOCKER 0x12 ///< Invisible wall. +#define SFG_LEVEL_ELEMENT_LOCK1 0x11 +#define SFG_LEVEL_ELEMENT_LOCK2 0x12 +#define SFG_LEVEL_ELEMENT_BLOCKER 0x13 ///< Invisible wall. /* Monsters have lower 4 bits zero and are only distinguished by the 4 upper diff --git a/main.c b/main.c index 59d53d8..9729bac 100755 --- a/main.c +++ b/main.c @@ -1166,6 +1166,7 @@ void SFG_getItemSprite( { case SFG_LEVEL_ELEMENT_TREE: case SFG_LEVEL_ELEMENT_RUIN: + case SFG_LEVEL_ELEMENT_LAMP: *spriteSize = 2; break; @@ -1206,7 +1207,8 @@ uint8_t SFG_itemCollides(uint8_t elementType) elementType == SFG_LEVEL_ELEMENT_TERMINAL || elementType == SFG_LEVEL_ELEMENT_COLUMN || elementType == SFG_LEVEL_ELEMENT_RUIN || - elementType == SFG_LEVEL_ELEMENT_BLOCKER; + elementType == SFG_LEVEL_ELEMENT_BLOCKER || + elementType == SFG_LEVEL_ELEMENT_LAMP; } void SFG_setAndInitLevel(const SFG_Level *level)