From a14f6fcf6f6d906b1eebddd0b8af8a757b6a7adb Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 8 Mar 2025 20:04:43 +0100 Subject: [PATCH] Mil arreglos de paletes, gifs i colors transparents El gif del jugador de game over estava mal --- data/ending/ending1.gif | Bin 995 -> 1014 bytes data/ending/ending2.gif | Bin 2999 -> 2999 bytes data/ending/ending3.gif | Bin 2937 -> 2937 bytes data/ending/ending4.gif | Bin 1166 -> 1166 bytes data/ending/ending5.gif | Bin 1338 -> 1349 bytes data/loading/loading_screen_bn.gif | Bin 4976 -> 4931 bytes data/loading/loading_screen_color.gif | Bin 7242 -> 7141 bytes data/player/player_game_over.gif | Bin 225 -> 225 bytes data/tilesets/standard.gif | Bin 9166 -> 9299 bytes data/title/title_loading.gif | Bin 4656 -> 0 bytes data/title/title_logo.gif | Bin 1630 -> 1493 bytes source/director.cpp | 162 +++----------------------- source/ending.cpp | 2 + source/game.cpp | 10 +- source/game_over.cpp | 25 ++-- source/loading_screen.cpp | 2 +- source/notifier.cpp | 2 +- source/options.h | 2 +- source/resource.cpp | 15 ++- source/room.cpp | 25 +--- source/surface.h | 3 +- source/title.cpp | 6 +- 22 files changed, 61 insertions(+), 193 deletions(-) delete mode 100644 data/title/title_loading.gif diff --git a/data/ending/ending1.gif b/data/ending/ending1.gif index d7c03d4f1616d942fa3b2b5f4a71c0129f98b648..2fd78f8737ff9bd618aea1ae693106958d9b0f53 100644 GIT binary patch delta 928 zcmV;R17G~(2lfY$WPcFINvpj$>&?6WU?`4cX`X1Ru59bRa4gSsZQpoKD?Gp}o1V@E zloWkGOEEb-F*U#E^4J6kQN3%GLv3}pN-awarhH%La@t$Iq#1AvJkBMz*YHNeqMz(B zYj+oOdWCy^hlXZ$Z4+H{41E=f5`|`sP!y1nlAV?ml7Wqnkbj?kl!$*mm~IuDl$D06 zv45gqU!}6Tk^r(stV(i(yTrP`z?ZJW#h=Ej$d1B!%!Adz_!wRixUppxnOS z;L39ursR9)=o66b%#+X1(VFwyrteK_upDaLtMG=`K7j)X4vN%kU$TVw(j9yVF`_GK z!766tQ*5I~g?|_S{s1)64_QfjqoSx>Q}QH?CxFBhkq5;k8VUn)>eRU?3xG|VBrvde zOTx~hNI?Qs*Q*jrY(|kv-6?HYtcJ&mPTfjX)3Sz%vcls^R)TPRY)let`{ZfGc2oY;4(p3dF7Bu-f0)#h2A7Q690b*o;F zAFn5o<$r{iLH}|2`BEJ%+vSwqe!NNc7lP-(*T*>oN@m|s^;P!=PwK6w;9nM60v}cr zdN7}T0RGoWR0}fL--FG3S7HYhN@h%b2KK>WhpU0um592;@lB1#Ipd2ZJ2KeghajGJ z939upCz&{w5$cSBE#~Q$es{_FD=<{0eWp#4b7QV#ba35UdYI>mrkJs#F0_0)zBy!Tr(;8%zx=)To|kM*LP9 zl@Z~q02oVP@P6O6Is*`%g)Hy9&Q&Y|${8T5+;5M7@>+w-FRQWA&OG<*bH^=20029Z Ce#_ec delta 909 zcmV;819JTK2jd5jWPdQoNvpj$>&?6WU?`4cX`X1Ru59bRa4gSsZQppV?|ko5ieMn9 z*a&~AqC`0)T9i(tD5@b+p-ibUYZ4x{7%oc;rnbJ|WsQtvpVJdIV{Vz#Ip%U^-e_3* z6MkWE6=ZgOh<<>Ii9l$CLlt%mfEA4rh(M5q6qA&dpqUhvZhv~6lcIr_i-M7xt`nY@ zn2D{lf~9SBhqb+x0kvwcVyM2xy~3NsyvL%*u#n4q&5h5wKhmGnfZC+5&;hcumVVuS z*VvMi8L6Xy=;^U`?$nmx(USDrv+zD{;~Q{&i-X~ls%^;z-U~+w*gj1P6UsAp3}Qry zvFdTUXpx+;Cx0COL0%99ut~@Z{W?mq!t#;I4k>5kdGbifx+*bcWEsG-XHQ377WJ7%|eCL#o%V5(H%Qh3O>@vuDw& zJy_A`*0^!g(hY_(CyF9?@#?)bPJr6EP+`DbYQbv&!+&%s7=|oifL4|&7BBTwnd;yR zlMyEc$HnCouAV0nMJoY8f&>#LPwF;;6aq(L!s;n*l+J%@Z*aVw_t)UlpM@pL;5!i5*SF_8 zdvpNc@qY!z6aQA)Vb#!inlQ!}f2maU9ekC^w_GUYu!0~#{^_UTdWz`wAAH~qDBvyO zgpw6JixEbWGpls=AAlhW_!Em_-Iv=^$RyI+f`0t;AcQiimkC95peP@Q&jgc+k1)da zlZ*v&cn3O~3H1?=J!bb~jFv%Z%xy+aWgJC(8Gpnihyezf9U`1Prq(t2HT6-6fSie@ zlR+Lsin8dIKz2D=qCJJysH5_2%G*aw zHW{OY&JE|2rgIsIDykRADTsrVrirO+Q)zmkFss_y>P_hxdZ=!UHA9A#N80cH{2Cgkd01{otT&$dXuAwpc#@Arkh8Pp{f{?f25V60kQN0 z0Ra$`_yKPL6_aQJApr)HiULLf7qigDR|4GoHnCWaP|k`taBoGV_5 zmzZ*+A)^cht)X$5uor-Jbf%}6bB!0R4UfMQ!JeOea1)l750`wZ9-M!Qo|kw94FJ^D z)fBZbQHsgS%$g*2-^A0vzvqy+Cv+ z(W$n)KBZUhTZU6)&*r$|7453FAa!1aOTn656;T}2{TH_HUZ!8+2wwXVgH{hxbp#%~ z5<@a!hlw)gy7(^$XqEtE*1VOoTF+E_{XD#F$K=ht!m_S_8gPGC%3R|jrp;sW>6~Qs zlI~O6_U+$Ld;Xxi7&aC%&{d%>{+Ub$=EyN{+xBKp#Ou^kx7I$P^K}XX(yLd`-Ayce z5f_DjCP8p^E_8WbSYlHh17>0 zjw(tpz>ZGgM+$S#O;?{g}dDI#_>PSVu`2OMA|dlqa+WtCT+DL|D+ z;sjlgKO%J(m|=?Ppgm(U$YKU-t~mjJ94UB)bx(F#AOL?y)*0r5e5@z|0tqBAL7#u> zIj98Rfk8oY&K*i80CifHiJ1UEDk+wETH2ah#7Q7#oFdYZXsE9yIgq0Wm|7;OW>^5D ztBV5JSeuFpHyoyjHu$KnmEt%@|5PAqc9WRF#%c_ipc=~uU#S9GYNU~NTO_nMT}BkO zVp_|Hw^n~{J65w~ni_7hQbzb;grR}@s=9MbIo7+}I+!cCryg1Fz4w~?E5H46*zUtt zf|%#G1Sd;Chn2&?aY^lU{hT4&qa1Psh=!os3)dfKW0|8icxk}Id;eGOoMi$z`t8Ds`uis|-;=7i;>+;Vp{p7a0z~06uit;6| zUf%m&>HPDiC@HUF&m+>*#AZK<5K41g!Q4O1aF#%-nQ0Uk^g-+JceAk7uWke+MejCv pB>J7ueM{KInpoJv|JjUi7!+X&M-)TiMCXS<45APlsDlUq06S3>SRnua delta 1216 zcmV;x1V8)53c3oAWC1XdWh#Gi$!t0=ifACJ*hqudT2->0QZ3tWFFX@#sOE4N*EO@U zCn;PTU`)BKb)^u$ZS50tC2o6s7lvngF;WbTfOvfy1(Sz}XEa?54GoTvCW;o5mJ^~J zpetgHo1Av1A*T!lv88pLv`~U?c&e+Mcaayd4U@wY#iFBubQ7AJ51W60t{$L{qMLjL z4FTBM*%X9}wY<;Jo+NsXv&6&e*2Bf-n6<0qtiOX4>CNu!$l3kz1?=+a&L zw{RgtTGC!rY4)tsy%7l=ty|7A>UK+fPrj20Ab{J4>!$B^Ng`GWaDk;-20 zaJu|QQ=)`&J*TDAh_ip_rk^f@x~Nhv7s?7Zjp7VYRH?3?Ry)`vDs`&NqbKD#P=*R> zRBacIe$^Jy=h(2oBc_fU*D`HJL3SE0uV4I_ggS|fU0S+vcte*gf;i7OQ z*aKR=x*}snh@qJ=#$Y#>)eM80CaR#(W*z-jbj@JAK!4j|7;%5NV2r`=s4cmy-NqGM ztEk<&30%H*#<0eSvH_TwE)f>#kfcM~EiFbm!8*1)uZBqWA5uXJhC>dOd{! z@Z-lNyt6N9Cht^$6q`F4k)2~L#gzWHlZ2E zplz4*r_6*PQkZ`aSEyllnT8B1_=|@Th6thr0x$!dYAWK>Ty<7V&{~Twz8K?YfvK0* zgN~Up-FrQ{D8T?gR)q^H-*Ms8B}5{bB!L0^SYmQn#;B!!kWjapZjeoIzyV9nXF-Tv zHc5d1aB9gUT-PPioRpJMaORl-P&ikg6T+B5oN`jA$Dw~~ba!WsTJ;&go_w117oZYO zfItEXOc3V;fhKBTe(^ZRs404)xo2mcuo=LmnZo!Zo1RXJ=c9{G86A_5(z+#BwNQ#B z0<5m7su~v1_-LeK=IH3Lkxm7b|E~f{04%0fDp^GrN7Y4@1g4@ns!(d`+6y4srdjE# zm{JR^wLpK$m8~}2e%mOtO_J*@r_rLDuDMBGcp-AyoOW!oIb!MTz2#Ck?Y@p)`R~J? z@hWel`EF^)xc_EruD<)ix9*E24g@f2vtE_&!P*|2=BliAd?ke`zgriW?h#lO#wb(D za=O&M>~Xtm*+VlF>+b60RCUd_u**#L$Ss;N7ZiU@Vgz!9bY@&Cj{t2hp%2s+Ha56nDEze9lJYv|J4qafNpIQypSG4lEb>7jQ`?IEm z!W}o3lE!A#(}v^Cbssz@A+x%g z-s*pg@NFs~>wc37JL|BSM|tU%s|#}D6K>i$sa^iAe4E0~NrCPBR;oLQKlZ-f7S22W zv6^WkZvETr+R#P!&npQm^WdXe3&m^b|LV56m0TiGEX_$cs0028lFJjOD diff --git a/data/loading/loading_screen_bn.gif b/data/loading/loading_screen_bn.gif index a53e97840649b5f62ff444778302d4b9a4acdb47..cfa1c58e5d4016b55b30bdc33c596e3f6c882a6a 100644 GIT binary patch delta 4342 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 diff --git a/data/loading/loading_screen_color.gif b/data/loading/loading_screen_color.gif index 8b61168540be9358dfc4159aea62d86abfeec5dc..2d269916dd80dc48a86dac0caab31bc0b4408523 100644 GIT binary patch delta 5650 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 delta 32 ocmaFJ_>hs;-P6s&Jkf_ih@qT;VWO}KdjkUl!~g&PCt9oo0Fj~!3jhEB diff --git a/data/tilesets/standard.gif b/data/tilesets/standard.gif index 0142112b082ad7839c556024668632d266602397..63f026d396a2393617971643882f4430cabe6fae 100644 GIT binary patch literal 9299 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 literal 9166 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 diff --git a/data/title/title_logo.gif b/data/title/title_logo.gif index 4a36fb1922c89d823386933943200377fb35c59c..6120cbfcdef4cc35fb6bfd5fb6ef87eac33ec17b 100644 GIT binary patch delta 1460 zcmV;l1xxzg4Alz>M@dFFH(|yAHjxQ6fBy?kMO0HmK~P09E-(WD0000X`2-0H0000i z00000#sD?|00jRK$VsccIP3ZPG#zQ4XWz{9-&#KalL%D=|T7|RFE%FoW!(7ew)#TwB!+cw=7;Zo7#;uhxU z#vAGB74FT#*}>Hk@b=Qu%*DX^f93H1_+48U(BHau{^(&7$WPs|g9z;f?3YYmLS*sI zG2BORpTc(-tQZU*NXw#w^e{!U{t);}69Wi<(x^ybifilTPZKu{Je^+_{3}l67 zpswAxVZr9Ty0_}thjJ&#wJI{LRL^&IR+Kh6(v*7hEJ(h!*U`F`wz=+!B~RtCnvFlyx#!xE_wm=BX&s*1?ld~)$CA9y z3c4qDznG@4q5Ku+nw9t(3u}#Meple35Q%F6iuvlQ7<%)_e|j&s4-+e!VEKuY8>@p} zq_4r%63i(*08{L)#qgRcYCY>g8=Q!|FbgNjGo9-y&7mTD>Z#3!q!@k}^z2Kt1+M7a zz*VkmvVrgN^>JKaoaaUE*wGhBX;I>eeSG81r3i z*7|L$k;T@}f74aJ-QGuDLCW))6|W8UZkyTzH;{e>S>)j%s+V`r-!5Ge(IJmIc+T<( zinssVRUxMuwP%w_QF}0FttWD1&MdOzux3;);+>{=Cg98RT=hDsvCH|<_M+`2&8@dx z=*O@ZJG}3A^SV#&8ty*wH_4_R_`#S{pE#jdVO;#Ne}!t_xb6P=S-9e`6+`)(z!JWd z@If{6`Pd{0=@FXyBJ2NkK>>=r{!^472Y*0wt;SraJL?#xjiBOD^6F-+kBSz7L7<^#}E0she zZ)p*Vsq5Ml#|XwUl97oY(v=xICc=HGv5Rv0qLE5?#ub8ajdjdp6s?%Ly5SLyR6L>| zF*qAE3384^{39ZD_(wfTv5{*`l^(M=MK=;sB72q`&<<>vLKMzWh@1?i41?H4QP%B; OpycGjiim*-002AM*x+se delta 1598 zcmV-E2EqB&3*HO~M@dFFH(>w)P>~5WfB6In3IG5AEC2ui0003{000F45XecZy*TU5 zyZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4u?LDrK$yJNp zb}8K~csnMC#Q-e#n-;UHa2dHhZ;vfrbe=2m+TB@mW`Tr#XmN-vgNA&KcYk_?e;0z0 zjCN_4iJC2gZ*_H+dyJrtl!j^*Z=0(jiFVho>+a|P@9!D%_3H8V81@JF z_4@h$_MMZ$F9bXd1vwm4NY4bne}wuhK)mp9!^C(N|Ft97@1eg57yl`E9C;7kx{e+r zmK2C_Bub1GNUn5QQX)!rArlUiM}_3gdH7WBbl39c%YhV+vaE>nAjE<^naYGJQbJUl zKCeQd`ID&Cq)lfY?N}76Nr6ns)&$vgXG^VL{Y`Wm_GCyUGTVB+IMwc3f4g+SqOIB2 z=~ul)KT<_JH}29Xg$Ki|y04#Jw+007Gr+ksfXtEI{+%aPYiNF%Cx9L;7xLxGlO4A{ zUGcNo&7VE528c9YX`sFRrM4ZDCC9-$W7D==8TD|sXft<~&f2S0-_=io%r~5KP~@?h z(0&XZ`|^U%Wpkfyd;Ivsf6ZBTFON3-68F66M;+SQd(77v>{eg@bJ@+bA92+2XWmvn z(F50c1>z(@dJ&p59eelz_#06JB1l<%_TkmwUcjkGnu4U|c3V``Nhe@@3&Qx3hpWBD zj%ys!1yza_21X!pANFTkf;LLFA#y~eHe6xX`Q=1k@#v;vSKn!fe=VJt7Go zk~}Hd-c8SSCgGDKsx~B(DG>-Ekou*V){$Vg*(G??#d&~>xfyU~6Hx9sDW?BKORGu}Ph7+zxYX5<|=GtpzdBz%PvzA^e z;;Vy#ChK`u`emz$MmE~vwCfG&ZKT4k<*JjKiRC73%5}57^O`JiwVcj~F-{_5T{N}_%ZV?4OJDsomUG_&q;xrw7qHz8zr!?O za6_uIz#`+UfA8RRVg&PNIj=lKWQ7lF_u|0KnK-C74qf;Eyz`dxTaKohY!wkn40W$M2}3zcVU`Xy_hVnTha)S5D1HR=cb zEi=h+p}zV~y5Vhnvd&Q+th(Bzo$P(kW2SDx)?@DRe@d&i4?4u`PkHpU;Me5h{MrUx ze(ZAlHnZ=5bDP^>rajKRu5?gqS4r;Iv;47aR5SA2`2eUaq|xkkC@Kr@-UmDhK_q7M zbCI|-HNMgL%x)6v-}E5pw6OqCE%?YDUzo7uFZNx$Xg*afaZvXKM1H>aiwMH;T3kZu(0jig# z7+A(*eNjzcOJfouN5|5At&VBKqaN?K$H?8VaH`Q^9sel4Ea{PuvTGO~nPA7Oxr~VJ zbEG66IZ3Ti@{X5O7aP6!t4a3hlQ-+)8NK+(e>ZBek(opz2~+7wR=Tp4>_MZ^Ug@&- zMUsf9yP1BHbuHXR5Px@_Q#d13AcY*z=zF%%?v0$ wET}*SO3;ED^q>e$s6rRY(1tqnp%9IzL?=qoidyswq8QDnMmNgQdqw~NJKokaZ~y=R diff --git a/source/director.cpp b/source/director.cpp index d5d3a43..8382983 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -426,129 +426,13 @@ bool Director::setFileList() Asset::get()->add(system_folder_ + "/stats.csv", AssetType::DATA, false, true); Asset::get()->add(system_folder_ + "/cheevos.bin", AssetType::DATA, false, true); - // Habitaciones - Asset::get()->add(prefix + "/data/room/01.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/02.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/03.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/04.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/05.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/06.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/07.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/08.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/09.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/10.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/11.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/12.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/13.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/14.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/15.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/16.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/17.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/18.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/19.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/20.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/21.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/22.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/23.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/24.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/25.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/26.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/27.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/28.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/29.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/30.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/31.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/32.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/33.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/34.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/35.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/36.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/37.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/38.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/39.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/40.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/41.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/42.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/43.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/44.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/45.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/46.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/47.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/48.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/49.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/50.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/51.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/52.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/53.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/54.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/55.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/56.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/57.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/58.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/59.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/60.room", AssetType::ROOM); - - // Tilemaps - Asset::get()->add(prefix + "/data/room/01.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/02.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/03.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/04.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/05.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/06.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/07.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/08.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/09.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/10.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/11.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/12.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/13.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/14.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/15.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/16.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/17.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/18.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/19.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/20.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/21.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/22.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/23.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/24.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/25.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/26.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/27.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/28.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/29.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/30.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/31.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/32.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/33.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/34.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/35.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/36.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/37.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/38.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/39.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/40.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/41.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/42.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/43.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/44.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/45.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/46.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/47.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/48.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/49.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/50.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/51.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/52.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/53.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/54.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/55.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/56.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/57.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/58.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/59.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/60.tmx", AssetType::TILEMAP); + // Tilemaps y Rooms + for (int i = 1; i <= 60; ++i) + { + std::string index = (i < 10 ? "0" : "") + std::to_string(i); + Asset::get()->add(prefix + "/data/room/" + index + ".tmx", AssetType::TILEMAP); + Asset::get()->add(prefix + "/data/room/" + index + ".room", AssetType::ROOM); + } // Tilesets Asset::get()->add(prefix + "/data/tilesets/standard.gif", AssetType::BITMAP); @@ -693,32 +577,15 @@ bool Director::setFileList() // Efectos de sonido Asset::get()->add(prefix + "/data/sound/item.wav", AssetType::SOUND); Asset::get()->add(prefix + "/data/sound/death.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump1.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump2.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump3.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump4.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump5.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump6.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump7.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump8.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump9.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump10.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump11.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump12.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump13.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump14.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump15.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump16.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump17.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump18.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump19.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump20.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump21.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump22.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump23.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump24.wav", AssetType::SOUND); Asset::get()->add(prefix + "/data/sound/notify.wav", AssetType::SOUND); + // Efectos de sonido para el salto + for (int i = 1; i <= 24; ++i) + { + std::string jump_index = std::to_string(i); + Asset::get()->add(prefix + "/data/sound/jump" + jump_index + ".wav", AssetType::SOUND); + } + // Logo Asset::get()->add(prefix + "/data/logo/jailgames.gif", AssetType::BITMAP); Asset::get()->add(prefix + "/data/logo/since_1998.gif", AssetType::BITMAP); @@ -728,7 +595,6 @@ bool Director::setFileList() Asset::get()->add(prefix + "/data/loading/loading_screen_color.gif", AssetType::BITMAP); // Title - Asset::get()->add(prefix + "/data/title/title_loading.gif", AssetType::BITMAP); Asset::get()->add(prefix + "/data/title/title_logo.gif", AssetType::BITMAP); // Ending diff --git a/source/ending.cpp b/source/ending.cpp index 462d4ff..75cace4 100644 --- a/source/ending.cpp +++ b/source/ending.cpp @@ -72,6 +72,7 @@ void Ending::update() // Actualiza el volumen de la musica updateMusicVolume(); + // Actualiza el objeto Screen Screen::get()->update(); } } @@ -241,6 +242,7 @@ void Ending::iniPics() // Crea la texture sp.image_surface = Resource::get()->getSurface(pic.caption); + sp.image_surface->setTransparentColor(); const int WIDTH = sp.image_surface->getWidth(); const int HEIGHT = sp.image_surface->getHeight(); diff --git a/source/game.cpp b/source/game.cpp index 690201c..436d507 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -440,7 +440,7 @@ void Game::renderBlackScreen() { if (black_screen_) { - auto const color = static_cast(PaletteColor::BRIGHT_BLACK); + auto const color = static_cast(PaletteColor::BLACK); Screen::get()->setRendererSurface(); Screen::get()->clearSurface(color); Screen::get()->setBorderColor(color); @@ -451,13 +451,13 @@ void Game::renderBlackScreen() void Game::setScoreBoardColor() { // Obtiene el color del borde - const Uint8 colorBorder = room_->getBorderColor(); + const Uint8 BORDER_COLOR = room_->getBorderColor(); - const bool isBlack = colorBorder == stringToColor("black"); - const bool isBrightBlack = colorBorder == stringToColor("bright_black"); + const bool IS_BLACK = BORDER_COLOR == static_cast(PaletteColor::BLACK); + const bool IS_BRIGHT_BLACK = BORDER_COLOR == static_cast(PaletteColor::BRIGHT_BLACK); // Si el color del borde es negro o negro brillante cambia el texto del marcador a blanco - board_->color = isBlack || isBrightBlack ? stringToColor("white") : colorBorder; + board_->color = IS_BLACK || IS_BRIGHT_BLACK ? static_cast(PaletteColor::WHITE) : BORDER_COLOR; } // Comprueba si ha finalizado el juego diff --git a/source/game_over.cpp b/source/game_over.cpp index e0bc08a..4f9c2cf 100644 --- a/source/game_over.cpp +++ b/source/game_over.cpp @@ -30,6 +30,8 @@ GameOver::GameOver() tv_sprite_->setPosX(GAMECANVAS_CENTER_X - tv_sprite_->getWidth() - 10); tv_sprite_->setPosY(30); + Screen::get()->setBorderColor(static_cast(PaletteColor::BLACK)); + // Inicializa el vector de colores const std::vector COLORS = {"white", "yellow", "cyan", "green", "magenta", "red", "blue", "black"}; for (const auto &color : COLORS) @@ -61,6 +63,7 @@ void GameOver::update() player_sprite_->update(); tv_sprite_->update(); + // Actualiza el objeto Screen Screen::get()->update(); } } @@ -71,7 +74,7 @@ void GameOver::render() constexpr int Y = 32; Screen::get()->start(); - Screen::get()->clearSurface(1); + Screen::get()->clearSurface(static_cast(PaletteColor::BLACK)); auto text = Resource::get()->getText("smb2"); @@ -84,10 +87,10 @@ void GameOver::render() renderSprites(); // Escribe el texto con las habitaciones y los items - const std::string itemsTxt = std::to_string(options.stats.items / 100) + std::to_string((options.stats.items % 100) / 10) + std::to_string(options.stats.items % 10); - const std::string roomsTxt = std::to_string(options.stats.rooms / 100) + std::to_string((options.stats.rooms % 100) / 10) + std::to_string(options.stats.rooms % 10); - text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 80, "ITEMS: " + itemsTxt, 1, color_); - text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 90, "ROOMS: " + roomsTxt, 1, color_); + const std::string ITEMS_TEXT = std::to_string(options.stats.items / 100) + std::to_string((options.stats.items % 100) / 10) + std::to_string(options.stats.items % 10); + const std::string ROOMS_TEXT = std::to_string(options.stats.rooms / 100) + std::to_string((options.stats.rooms % 100) / 10) + std::to_string(options.stats.rooms % 10); + text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 80, "ITEMS: " + ITEMS_TEXT, 1, color_); + text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 90, "ROOMS: " + ROOMS_TEXT, 1, color_); // Escribe el texto con "Tu peor pesadilla" text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 110, "YOUR WORST NIGHTMARE IS", 1, color_); @@ -131,15 +134,15 @@ void GameOver::updateColor() if (counter_ < half) { - const float step = std::min(counter_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; - const int index = (colors_.size() - 1) - int((colors_.size() - 1) * step); - color_ = colors_[index]; + const float STEP = std::min(counter_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; + const int INDEX = (colors_.size() - 1) - int((colors_.size() - 1) * STEP); + color_ = colors_[INDEX]; } else { - const float step = std::min(std::max(counter_, COUNTER_INIT_FADE_) - COUNTER_INIT_FADE_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; - const int index = (colors_.size() - 1) * step; - color_ = colors_[index]; + const float STEP = std::min(std::max(counter_, COUNTER_INIT_FADE_) - COUNTER_INIT_FADE_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; + const int INDEX = (colors_.size() - 1) * STEP; + color_ = colors_[INDEX]; } } diff --git a/source/loading_screen.cpp b/source/loading_screen.cpp index 2f3ceb9..0b1abc5 100644 --- a/source/loading_screen.cpp +++ b/source/loading_screen.cpp @@ -25,7 +25,7 @@ LoadingScreen::LoadingScreen() screen_surface_(std::make_shared(options.game.width, options.game.height)) { // Configura la superficie donde se van a pintar los sprites - screen_surface_->clear(stringToColor("white")); + screen_surface_->clear(static_cast(PaletteColor::WHITE)); // Inicializa variables options.section.section = Section::LOADING_SCREEN; diff --git a/source/notifier.cpp b/source/notifier.cpp index 71cefab..9978bc0 100644 --- a/source/notifier.cpp +++ b/source/notifier.cpp @@ -237,7 +237,7 @@ void Notifier::show(std::vector texts, NotificationText text_is, Ui { n.surface->clear(bg_color_); SDL_Rect rect = {0, 0, n.surface->getWidth(), n.surface->getHeight()}; - n.surface->drawRectBorder(&rect, static_cast(PaletteColor::RED)); + n.surface->drawRectBorder(&rect, static_cast(PaletteColor::CYAN)); } // Dibuja el icono de la notificación diff --git a/source/options.h b/source/options.h index 3c8328e..3759e46 100644 --- a/source/options.h +++ b/source/options.h @@ -81,7 +81,7 @@ constexpr Subsection DEFAULT_SUBSECTION = Subsection::LOGO_TO_INTRO; constexpr ControlScheme DEFAULT_CONTROL_SCHEME = ControlScheme::CURSOR; // Control por defecto constexpr NotificationPosition DEFAULT_NOTIFICATION_POSITION = NotificationPosition::UPPER_LEFT; // Posición de las notificaciones por defecto constexpr bool DEFAULT_NOTIFICATION_SOUND = true; // Sonido de las notificaciones por defecto -const Uint8 DEFAULT_NOTIFICATION_COLOR = static_cast(PaletteColor::BLACK); // Color de las notificaciones por defecto +const Uint8 DEFAULT_NOTIFICATION_COLOR = static_cast(PaletteColor::BLUE); // Color de las notificaciones por defecto constexpr bool DEFAULT_CONSOLE = false; // Consola desactivada por defecto constexpr const char *DEFAULT_VERSION = "1.10"; // Versión por defecto diff --git a/source/resource.cpp b/source/resource.cpp index e880cb0..0ab5ea8 100644 --- a/source/resource.cpp +++ b/source/resource.cpp @@ -14,8 +14,8 @@ #include "text.h" // for Text, loadTextFile #include "utils.h" // for getFileName, printWithDots, Color #include "room.h" -struct JA_Music_t; // lines 12-12 -struct JA_Sound_t; // lines 13-13 +struct JA_Music_t; // lines 12-12 +struct JA_Sound_t; // lines 13-13 // [SINGLETON] Hay que definir las variables estáticas, desde el .h sólo la hemos declarado Resource *Resource::resource_ = nullptr; @@ -257,6 +257,15 @@ void Resource::loadSurfaces() surfaces_.back().surface->setTransparentColor(0); updateLoadingProgress(); } + + // Reconfigura el color transparente de algunas surfaces + getSurface("loading_screen_color.gif")->setTransparentColor(); + getSurface("ending1.gif")->setTransparentColor(); + getSurface("ending2.gif")->setTransparentColor(); + getSurface("ending3.gif")->setTransparentColor(); + getSurface("ending4.gif")->setTransparentColor(); + getSurface("ending5.gif")->setTransparentColor(); + getSurface("standard.gif")->setTransparentColor(16); } // Carga las paletas @@ -434,7 +443,7 @@ void Resource::renderProgress() const int wired_bar_width = options.game.width - (X_PADDING * 2); SDL_Rect rect_wired = {X_PADDING, bar_position, wired_bar_width, X_PADDING}; surface->drawRectBorder(&rect_wired, static_cast(PaletteColor::WHITE)); - + const int full_bar_width = wired_bar_width * count_.getPercentage(); SDL_Rect rect_full = {X_PADDING, bar_position, full_bar_width, X_PADDING}; surface->fillRect(&rect_full, static_cast(PaletteColor::WHITE)); diff --git a/source/room.cpp b/source/room.cpp index bbed97b..23d612d 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -487,28 +487,15 @@ void Room::fillMapTexture() // Tiled pone los tiles vacios del mapa como cero y empieza a contar de 1 a n. // Al cargar el mapa en memoria, se resta uno, por tanto los tiles vacios son -1 // Tampoco hay que dibujar los tiles animados que estan en la fila 19 (indices) - const int index = (y * MAP_WIDTH_) + x; - const bool a = (tile_map_[index] >= 18 * tile_set_width_) && (tile_map_[index] < 19 * tile_set_width_); - const bool b = tile_map_[index] > -1; + const int INDEX = (y * MAP_WIDTH_) + x; + const bool A = (tile_map_[INDEX] >= 18 * tile_set_width_) && (tile_map_[INDEX] < 19 * tile_set_width_); + const bool B = tile_map_[INDEX] > -1; - if (b && !a) + if (B && !A) { - clip.x = (tile_map_[index] % tile_set_width_) * TILE_SIZE_; - clip.y = (tile_map_[index] / tile_set_width_) * TILE_SIZE_; + clip.x = (tile_map_[INDEX] % tile_set_width_) * TILE_SIZE_; + clip.y = (tile_map_[INDEX] / tile_set_width_) * TILE_SIZE_; surface_->render(x * TILE_SIZE_, y * TILE_SIZE_, &clip); - -#ifdef DEBUG - /*if (Debug::get()->getEnabled()) - { - if (clip.x != -TILE_SIZE_) - { - clip.x = x * TILE_SIZE_; - clip.y = y * TILE_SIZE_; - SDL_SetRenderDrawColor(Screen::get()->getRenderer(), 64, 64, 64, 224); - SDL_RenderFillRect(Screen::get()->getRenderer(), &clip); - } - }*/ -#endif } } diff --git a/source/surface.h b/source/surface.h index 2442a7f..dee7a77 100644 --- a/source/surface.h +++ b/source/surface.h @@ -6,6 +6,7 @@ #include #include #include +#include "utils.h" // Alias using Palette = std::array; @@ -137,7 +138,7 @@ public: // Color transparente Uint8 getTransparentColor() const { return transparent_color_; } - void setTransparentColor(Uint8 color) { transparent_color_ = color; } + void setTransparentColor(Uint8 color = static_cast(PaletteColor::TRANSPARENT)) { transparent_color_ = color; } // Paleta void setPalette(const std::array &palette) { palette_ = palette; } diff --git a/source/title.cpp b/source/title.cpp index 0bd7b93..3e5c33d 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -23,9 +23,9 @@ // Constructor Title::Title() : title_logo_surface_(Resource::get()->getSurface("title_logo.gif")), - title_logo_sprite_(std::make_shared(title_logo_surface_, 0, 0, title_logo_surface_->getWidth(), title_logo_surface_->getHeight())), - loading_screen_surface_(Resource::get()->getSurface("title_loading.gif")), - loading_screen_sprite_(std::make_shared(loading_screen_surface_, 0, options.game.height - loading_screen_surface_->getHeight(), loading_screen_surface_->getWidth(), loading_screen_surface_->getHeight())), + title_logo_sprite_(std::make_shared(title_logo_surface_, 29, 9, title_logo_surface_->getWidth(), title_logo_surface_->getHeight())), + loading_screen_surface_(Resource::get()->getSurface("loading_screen_color.gif")), + loading_screen_sprite_(std::make_shared(loading_screen_surface_, 0, 0, loading_screen_surface_->getWidth(), loading_screen_surface_->getHeight())), bg_surface_(std::make_shared(options.game.width, options.game.height)) { // Inicializa variables