From aa2ddf538e7d59c7277560f1c1c8b0d82471a8c2 Mon Sep 17 00:00:00 2001 From: Rob Pearce Date: Wed, 12 Nov 2008 05:06:32 +0000 Subject: [PATCH] Fixed bug with player2 and scuba mask Added armour images for player 2 --- data/sprites/armor2.png | Bin 0 -> 648 bytes data/sprites/armor2climb1.png | Bin 0 -> 503 bytes data/sprites/armor2climb2.png | Bin 0 -> 478 bytes data/sprites/armor2fall.png | Bin 0 -> 615 bytes data/sprites/armor2jump.png | Bin 0 -> 712 bytes data/sprites/armor2shoot.png | Bin 0 -> 896 bytes data/sprites/armor2slam1.png | Bin 0 -> 778 bytes data/sprites/armor2slam2.png | Bin 0 -> 594 bytes data/sprites/armor2slam3.png | Bin 0 -> 625 bytes data/sprites/armor2slam4.png | Bin 0 -> 765 bytes data/sprites/armor2slam5.png | Bin 0 -> 700 bytes data/sprites/armor2swim1.png | Bin 0 -> 774 bytes data/sprites/armor2swim2.png | Bin 0 -> 703 bytes data/sprites/d2slam5.png | Bin 991 -> 969 bytes data/sprites/dwarf2head.png | Bin 0 -> 1327 bytes data/sprites/dwarf2head5.png | Bin 0 -> 1330 bytes data/sprites/p2dwarfjump.png | Bin 761 -> 761 bytes defs.h | 4 ++- globals.h | 1 + rc.c | 46 ++++++++++++++++++---------------- shared.c | 30 +++++++++++++++++++++- 21 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 data/sprites/armor2.png create mode 100644 data/sprites/armor2climb1.png create mode 100644 data/sprites/armor2climb2.png create mode 100644 data/sprites/armor2fall.png create mode 100644 data/sprites/armor2jump.png create mode 100644 data/sprites/armor2shoot.png create mode 100644 data/sprites/armor2slam1.png create mode 100644 data/sprites/armor2slam2.png create mode 100644 data/sprites/armor2slam3.png create mode 100644 data/sprites/armor2slam4.png create mode 100644 data/sprites/armor2slam5.png create mode 100644 data/sprites/armor2swim1.png create mode 100644 data/sprites/armor2swim2.png create mode 100644 data/sprites/dwarf2head.png create mode 100644 data/sprites/dwarf2head5.png diff --git a/data/sprites/armor2.png b/data/sprites/armor2.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc616323dbfb232cc6b4217760fde2e1217b357 GIT binary patch literal 648 zcmV;30(bq1P)1q5*@_N4#-0u@O_ zK~y-)m6SbbQ(+W_pL3g9EBKcnSh2NWtkhhMkW8i4!GG=QCfs(>!9mo)MR0LZ97Jky zN{ki})JY{(J17+gX&|?>RcwYpZM8}g(9*R2wI{WfS*>t?xnE{^5ml!%BcUf1@@l7(=}b|=4RP6cviBQOih@*&&#ZxCRM zw##_-S4eVZV-@mp8W}H=nJ6&uC|@mx7LJyM|CCniWT~TPh>o5i06rIYO05e(ARH}= z6MS`ZF97M`7U?>47;|cx$4>_BCAT7W#x~d-*9Eg`AbD1uI&qvM2M*dHHD;(as|Q`# zVX7SG@K;X$j3Gd_m7PTB!*yGc(nn57WBsonrS(?uMPJQ~+#X z>C=7yG7|-Fr;ySxjb3qrzHJ1c>rLEEe5Gmqf?6nR%zUh8zPy}61K zy7UJE=;IF2RMOQQrqL^JqnGG2O?SyHz&X9qR8l=H6=-YOi0?M?8pMET{*&vsBaH7q z__FxTUI=T~Ev0K0Cgol}?;X!iy73d8X8Lc;{dRhAJ4AHHJhh{L<$B2VG`5e|&sPv! it8nfMCmaq}1mG8c`@>^Ny?Ai|00004jUiTBAWmJ0fb3J zK~zY`tyM8g!$25)C*3lYLS3YEu|o$-HxV2%bPL_23Pnf3#VJdFfJ-N#2z4t+mpVzO zI%FtFsba8Th18)GmkzqcDeyTZB;oFIt$h&4cOT!o_bx99z`=C-Mvy?%Pay$yBOeUj z_2&%hpl;;J9oLA6$Q{>$D@-28mW=TB{u95?$B|lwM4PW4Kf>Navq=C@HBFYNY*lc{ zz85K_;dFL@batS2W+I3-+o;V%KSkXN?qA+Z0Dw%+!?05!0608*46?^0R=9bZT6&}o zlO@`W4~Lb8i6Y9vnHhE}RMf2qkzW^e3z?k9lpcV87MB-0T!ryew2VlLL}|HC81AK>pGA>wjc=nWKR@d+Y!J002ovPDHLkV1f!L&M*J~ literal 0 HcmV?d00001 diff --git a/data/sprites/armor2climb2.png b/data/sprites/armor2climb2.png new file mode 100644 index 0000000000000000000000000000000000000000..56670bbf838a645bd425a3ae57abd7877f525972 GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv|!3HGfF>hH2q}Y>R#`Jr*ZRPW}ehKY?b0*@De`2TukfyKZ7K(K!Kq5sO#eS9-MNLpl{m9_YN z`z42nU0i z{Nh%f`=yvRG0y+%-nk7}%mG=n78hS2e3zC?SBLK3Lp*?2e$^Vyk R9|Xn(gQu&X%Q~loCIBed$iM&q literal 0 HcmV?d00001 diff --git a/data/sprites/armor2fall.png b/data/sprites/armor2fall.png new file mode 100644 index 0000000000000000000000000000000000000000..72971be6cfbbdf9cec38698a7279c845b96c9523 GIT binary patch literal 615 zcmV-t0+{`YP)2`7L0$lCw_0rW{k zK~zY`rIb%dR8bVhf9JhPEczo#dm$?3PZTr=N+B(T7Oq=Kii;q0GZnOP(V{jk)F_H3 z2qs*)E-D(3P!Pli*!s?72Fz;23{n=1E z1$IrU3gez6wpl+I61G@!Zu8{sR=s(f>P3r{Vwr002ovPDHLkV1h=F B8chHI literal 0 HcmV?d00001 diff --git a/data/sprites/armor2jump.png b/data/sprites/armor2jump.png new file mode 100644 index 0000000000000000000000000000000000000000..731c080651eebd059daf91d399a0a9c06516b37f GIT binary patch literal 712 zcmV;(0yq7MP)2m!S0d}jav0#!*w zK~zY`rIk-elW`cwzt6j^5+o(TLtS>5g}GRu2+Be_jDmLY5Oi2fJme(^=}?e|h`M+Z z0>c7hu}kdWWr2|w(GtYPTr*)Cv6JOt5;J@&=bjGwd-wj{f4s{F2Jd)(zt8*qzR&mf zynvyYnc+}9!C>8Pjn`@8QX;|tu(q)S02rUlkU}1^Tdz2Qx`!qJ0DV1Y006P5pL4k^ zE}ZXr>l!9(Y%V^vd{CiSy5$N+L^SoF4?>mIeb+W)QNLpYoXYl{*;#ZdQ#T(!+Xk?W z@7eJ2V5RjI$>Npxho)d;1+r7Mwy}fE*9wy9GTFW}qoQLqAP`c?N-Y2kjx1nsWI+qB zohogkP!U*X;Rd3VYJAr$}+?ma6l%zb>q$=CP!-q;=7 zxOQE-cd*jWQqBaB^Kou(o99aFs00+})93S9f(};tS@O^MI9FOn(eZ0m+OVA2(ynJx zMeRD7E>kS(=ftBV?2zNOqWS9f+(1v+Yc8p^(Jo{0b@tSe@kWc z-Aw?%r$URWfSO2)(bCJf#tb~ln?;u9-6S6X=69L zSU5_i%jOdh9@a*U_7QO!jz>VmqJD4{jU;eYm#eu*Q`19;$ba(^04Q`?v-V#g*B@cs u#5HxDhYuevR9(7U(}lL-osQHtUH<^vYyQ@A0lWDC00003py^!#()3-0}V+; zK~zY`rIlMqR8bU$zdafXUC;y#OH5)i&A|aBDH_I7d$5Zb)T=T?GNKGrX2n2Ic2y$i zAu7lWdnypp9#TuhB9N4E(h;-JFf;>8Br@{U?qNKq89j5W|7Ei`oBv4}AT+vcik9?h#Y z@Ws!#DzTs_+_-&*ioycz{6I}j@C@W)RR+gKK3_j&nBNq2ST{2F%X6~1@wjwU9OYK$ zv+%k|CC61JXI9xr_;%Ot@{7Jny(05X1^@s6)5{gA00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3x)sy3x)wf2W7Va000McNliru*b58>Gz__}c_jb<0+&fd zK~y-)m6Tsd(@_-1KUZfqNicng#3)>UumwJBl!<10$OO%&@+D-F54|Oo5r`0hMC5~k zSx{tHLG%zJ6)ZGtDT(Rgx2^f}K}iY{A2x@Ie`xdeP@DVn`>l20!o7!cKYY(Q_gsOF zNhzhOdPIN!0O4?$Kwy!gqC!HUF!l9yoNGA0{?+Tv7D9-~9gzxVJ9$Ffe{c`~M5_dt z^aTJI7|#*@z|yA2qlj2o1}UuWOfCM2R#{Tj4uI914?t1w59#qJ;?ThZFJt3VDgzjO zS{>(~^aXHD`FZyG8?mZVD!bI!DDGaj5>b_Ci6C9rot73BgQJrFG)-726pHRuXNTs+ z+gGk8`3zctZ9P5AxQ)O9^Gby#Y-uT&9&E;Kj7zc7KBy7(IJu7hf@vv>boBX~xzyd1 z1~6IHL^=hpJzb;S0BQKM0A^jrq)wJM4N=}S6n(tS7rTXSnlhn!5ny7PlfD2Y$J#{q z!$-V*=SWs2HQEqKwZc*u=eL^kQO9q|omtZ|F-^^GqSyhX>F=?^Qpl+5XB-f~H8m|` zv&)d$I0@k2aY48ER&zd>baq7@{uyVq_ysGyjMR^aSXJqdlVXE?{tL0>WcQB@hP!@G1rgusiR)?!Oj0 zNxB2=RSYudwvkslOweshS*uF>pwORy1j{QOj_xDi2q4ye0}r10;)v*%d;kCd07*qo IM6N<$g4;AF*%ZINkaet0pCeP zK~zY`)s??X8(|p7KW}nYs}`ybLMMmTA4!Xa1i?}f2dPm11mU2Q;N;Z74i4?osgvL$ z1nlIfg5n^eAZP*xlPZnFO@f1|pskA4r$cjTdVTMFFYVF?Zn%5yK77CTeeOB^+tVcs(^J0O@=YfbsVkrMoX;0_y6213)s~48X{6n}~>Xv_Bd%hPgKO*4}FSp9=?5 zMlhw6`tUl5t4h~5wmCA~CSgPK4Pf%!5pd*d(KvvE>|Lp5oU9o)!Uq$ zXayhg;D?#4c z$Q%ODXRr8=#`R{8NX{0?+2SgxeAumYzR1_cQT6i0kY3sKW{&_w?sffYJWeUEN*7#u zXMDNpREx_?`q8*K-TMvXSIKxYiC7CwHT&W_XVKm*uB1?~pwU`S4TgicoAy?+sf6vd2KjbgN9~vLJCG#X8M%ya+%0scuu zK~zY`t(8A$6Hy$;KfmNOqESktiy(BVk~X1%6iKC03})-5npKn+@8tPt2$s09)J5ku&wpzp_Y%Q zF9w2HCXm+k>6iZNsUexHBU|fHH9vQr=kqo(X9X8Stf54?C$A#ooB{w ze%Q8@d(Zcs8|o-S`!a1Z)u3-=L;6NGdiPl~I?+H^v?NoFj(`6F8dJJCpjVC%00000 LNkvXXu0mjft??F^ literal 0 HcmV?d00001 diff --git a/data/sprites/armor2slam4.png b/data/sprites/armor2slam4.png new file mode 100644 index 0000000000000000000000000000000000000000..4346ad6a864e64db1fd1357d541d3daa1f902d96 GIT binary patch literal 765 zcmVHUx!3la&Af03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00Lo2L_t(Y$EB5DNK;W9 z$3JJgYa=AmLTXS*up~DjaDdiMPs8&%l zEX2ih{vj0!f{PDM1!Y<-PY-t2b-VZOPJd5_^E|aw67vg}fRHV~KcCM?0B2}alo5P+Ut{R; z?;q8HYiDO@R497z*7kLwCwVk*n3kqP1pN?>Cas%cGAaSK)@IO0AdDhtZC@8!{O_HMjlc}UYDOFep!mMd+WI%$m1-1I z)qGXkR20zKuBR!|H?X zeK^^SLN@b1Ftgw6##NvEx3B2;dMguTGl~RQ9goPP2j5A}d$YgTu80!wssR#1bE5g{ vFJh`{OrU{lWX-1wm<(2Npma8r+Lp>+YkcS1>{K_C00000NkvXXu0mjf=!RG? literal 0 HcmV?d00001 diff --git a/data/sprites/armor2slam5.png b/data/sprites/armor2slam5.png new file mode 100644 index 0000000000000000000000000000000000000000..0958fea0c8a8bce50aa1c3100c4cec5540b6dfac GIT binary patch literal 700 zcmV;t0z>_YP)Hy&X+Tdn{A0!c|k zK~zY`t(8wmlVKdkKfmoYGrYK9geQ?q%1KhvK^!rf6(mN`QJ8e8U4jl{2pu{UQR`4t z2ZKVvTQ@bzKM|IA+GuJkNDn)`xyUuhwAf2emtJf7ZhPOY@9lk`Ki}v3{r;Zk2W6m? zQl-Y*e7;|$=4d#;n~@#`5Kmw%V+ zRS}pLe3-p%IsS2ZC0H?mh{)Y&C+6v`#;dZZzqd(I1#D+f%${;6TSeDyWPl8xlHLEG zU}d4Mz#e~S+A)FHC9qNuPi0BGUt@G4Efr<3|L~?zC0tG{0_Yl;p=)4f>%x^feMy40 zmR9fm*!jBc|L2E;%nt{Nr?Pynza(c)ovu8C?Qc-`(MAB~5;}(GvH;}sdF~B8;@RX2 z#$vI3eUZqjV*>RqqyX0HFR*w0$qte`4<2$cc;XoF7N`Zj^+h7$NP&5JE6gSIg72@N zPuf$UG(2;Ud$K@*MgJ z@gJKm^wknCo3np#aNev6ip8tolM!5t`up{L6-I+3ce(= z!TexKqPku-0|ltuLO^{<&#Gz~&5jI~l9~d@Ed*?JFn?%T{wP-FnxYn&6WcosvGUz4 iN2{#1m9d!FnfMJGzv{x!Th$o=00005IG+8T%Z5|0+UHZ zK~zY`<(5xq6G0Tlze!1LC=DjTM60b4n$#p>)r3+*avl66v&DMxgJoyt&CGA! zn>Vuy?1Jc)@UQj%Kmi~Uc2i0zO-F-tHJ764Xplz2?yALT{uXc`WTgWkD+PeUr&j=g z_o+Jo0FTQEDO?b;bjRTNtd6obE4!U0T)g%`1TxLc6_F7NV%_05zH^T|y2@letD_xV zWx}8ymyrvVXFDN;h~Uu?lWK3J<-QAoV*iX#z{s2@0RLd3D#WpPP6RR$>4ZXJFEQ*pCK{!a)XHLy%ebx0KbSxy>=ySm7S9p+I3o9i zt(@6v!3RQCdiA`GYmPQN7pz}|AO0l*OeeLV1<#!U;a-4PgXQu64@?X?4}EQeN|v2-*@70x87 zH-yr?(Ymo z4FGz7|H`iYsc2;1*fv6t-{1MQ*R literal 0 HcmV?d00001 diff --git a/data/sprites/armor2swim2.png b/data/sprites/armor2swim2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba0828584f463170ba46420853d8c7b86c35f0d GIT binary patch literal 703 zcmV;w0zmzVP)5+F#Zmf`>a0!&Fn zK~zY`<(55Y6JZ#~f6p~)L#b#2DR#=xv^D_)CMZe+O3Btqa554QiXb?+ba8QTaJ_2b!ACmC58c>iyy26G*$u z+&ETR9BG0AWbzx_fBY5z5fQB&@IbgCPEb=OR77NGFc1UUa}1Ce^Q%bEOElyGAeKy{ zr{X)7_`#D^>B!--$_fS0Q*mO+bkn{zYG00z_xV^^TPHE*S643vZ0E$1X-9@M92VPs z@&sQ|&Y!id7uL?n@#g?6OpP+1D|6#crlm2LQy?=j&(ST)&Ci;&Fg0p>eOiKxSvQ7( zG7PFfmrWv@b}x@a`s?kNnUD2$H00Ugw)*;%>N@jAn!tup1C&;JU7C%v>Mtn+{Z0<7 zNdTy&qyjL$EZ5-xW&&F6LMstLw5_mh(9+t0uXf{BmwT0~u-J_VykF{7T`eYkuXKOX zU~o6^dk+f$eA^6^9z9F9TqRcxdf4&c96I=;@2Ac9_(ayVvbJ7rEGPgy-GyULF{QBR z=0mPmox8Ly`iu`Y!^(0OWxv%7;QECg08U@YImgjweCRX2j(n%*rbB9OI<&i=f=)nZ lpL&n*Unmq9I=`3szX8R40GJt%%?|(o002ovPDHLkV1l6aHz@!B literal 0 HcmV?d00001 diff --git a/data/sprites/d2slam5.png b/data/sprites/d2slam5.png index 5c7fe4608c76f1bab29a5eb21b629725b949ff4b..555a25578249dc9b33b5159be8c08506b6454e92 100644 GIT binary patch delta 911 zcmV;A191G`2gwJJDhdAp{{a7>y{D6rGa-KlHw2tmqSOEY16D~yK~zY`t(9MB6jv0+ ze|Owf)2bMfN=dT*c@Q7WYCup*4Ur~VY20W?1RINeDU=N>rq)ID+15=bkd$PzXrT|K zi4Pi;M2+~biN+_TWH;#)s`xKviB>^Ya4S3O?L#u-?(FO)5kDA)d*;sf-S3<;XTX03 znifXW!fdK2N7KTxr6oX1OMn9h_8T!)mzEm$QB4a=vcN$OY~HdNfOCE4jgSOr^!oUy zARj;|VvZ{phsgFo)50ccPtO@~^~zOQSyf41-h2QiCZ2Np)-5_i9qia%SN_kPyF)W} zu&JUvZCzJaD-}f{nN0Hdag>shA_{*C3+N1W0FaG5tAkX5&QJ%9UY|6`y1Gt~pTF2l z-N4`tkt;>E4&1I~jEp^Go2QyauTO6CRCD1%e`+lNNa#tXLx%cK`}W~pzMST>r_%}x z@W;S)F1EGtyl@Ex&z`cisR<#(>>TL2&VwgUaJ!cA#kzH@{Om9Qcdq>iz>$AbC)rtF z&+ex0*tqf2X&ormz~Nw!m+`nkZrk6h5X=;cUC?l0MbGbD3=Q1`;9^@Fo(-Q6*#Etp zwLsUUD_r|?n7=O{NjvI?&;F%75Fn-~#HD1dtAtqW1@DBWufFDPI8Pc^e`~AkZ*7%H zA!Jer`OU6fvikF_=Kfw)o%w%vARSP;V%3tW4eMij{iospzqU7|?Wy$Ch=i`we*71{ zt*SKRHGY3?0crDP1odtS;964*z*uCQ)qM*EKq8Ug=VQkWk&kQq{)wzLkXc5bYfZ69 zZmj?Eyp#Y=r_%_p2cGw;>VjTXl^G6Xj=37tyJf0?6=RX{wDnSTJl%gmwgOF&+mhHh zv^uTv`-Mm)_Z)g#puVFji$ft^c)dLG7fUN)Hf)bnh>Rlls;XK2)Kv8yofNkU81T^` z0Gf-6J~$YSzM55=rjVx%JUamcBf}2dWqRhYlQD>_U10_zDI30gw1@xV3egECuj2EW zH}^Gj1UTn8M00%+2cvt@>BqHb5sIo-&w7~X@sOt*EACNO&M zZ2{iYx@JOdE0mEUvB(sW0E1<}@xEXldGwxRR^&b!#K`bu35|EGr#Dk%Y;>3DLdGDt ls9Wahmej7XbeOP;{12rpTWa|5Js+r@AL%VrQ+~OY?4a_ZBx`b+a%IAfg<7s>P2cP7m`QCo#dCv1b-+6xz z*g(@FXj+854fSYRME3Os=<5q`?ATGG#1nBbm zc%r-vKq#Wbm5)Q@`a{zqCh6GN8FBH#McLTYNNMRh02UVRGJX9z!=WKwYHhFo<<{+~ zq8;pQs83tBx3@_}QAnjy+_@8@rlx<2ii&cELqh=MBG2i-Dli-xqRZ=(2HD8S=aiLg zG+TG&>NSzCMYayyu1(yS`-20XX1csSdBD@mxpNcNEC5LADGDJ={evS%aBtpB?^j=@ z1q*Qb%6Ci-3~;}qlJa|Z+27rb5Mp%>bY187#YNn%O}w~sCr>|j0)ShW-Uol+P%;ZAfJ{w_b>U#ht2L|x$eulu& zcjT%CM!vbgr5|Vb`P-9ekNU{HKN$=Jh${*SDcRwwAs&Cg|3dexuW>t4DvfKRzh6%D z_sf(JG9`q3)(hgPm!68a*u{sp|}$ z`j|JH8qIo(-=AMV+PoP-eN+OtwpRl%7oBHY_%Q*HOeXp8qf>^+lP!M#Le30ij?w4Z zUTu;a>z_OiC4kfEG|Ibx`{Szm=(wuNEC({rTn*}@(khUNx#)b_`YC^PKHWjCfPlw? z`lv05ox@D0Eq=ccR&vj~W05R>1*$Ei9G2_5pr)Lj48HebO zEoLzaOTc-c_0a6$>A!yx3b6$zONn)?UGq030-S3dqPL@pF4}Aat03CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00fgsL_t(I%YBqvY*a-U z$A5D!+r6^grQMcNT1q8c0#xaPAp!ytgFw>wguxJfFfk#9xFjlgd(!AziM~h(2?!zj z0Eh}P#zZSsLI}hSW(&G)=?Zjv+jeEUmvb8*cK3i%oaAIObN=6NzRS!f0Fuc>J-zO#Ww7|L3auBLE_qOq>MF=H{k> zNTlg^;HnT}>`@RYWfRanJw3K6lNnn9=o;`MFcXP1^$8&^0PNhpE#mY0+JU+U?90VM zain^{1u11LlNmb*)N6B{RyK?^lT+E(rF0h5_JmMIL!saypzptWH=MS%MFZt>>CT5A ze8gaCxH}jM>@iKdK}v}b0$o=p^Y>;?bUxN`^__PQQdj3)m`?xYhOzSa^@@i*Q)IHLiaJaLkdbehJ-Mz%fo zEG-KbVi*RtZKFyR1b9>rU2D3yJ9>w&zxsxWi3wU-S^&@h0-+$`Xav)?>HqZ-nyO;k z4vMNGgg{D(W80{zf@Ry7woN!1aTBWnENX~Rx>vxF79O<@iA2|Qj8cKz_$1+210Js* zDIGkjMt#7KA~YhQ;QbQ)aprV=D&doeq_$tvxz$M}e6qHf7YuSJ9w!(Mvwr;s z^3z$u(I`V#t}vb&q`&_n`CN|W9UU$pmGDVXgZ%m9$Dcakd7FLte4A}q^MsV-OJy>- z9L?b{L2n&W2vkk`yBG|nm#y8q>Y;F+{G@l^cw77GY&4nzkU|jfdFgC!BH;7#%>MlV zWTVm4cw77G=<`j&eZ{GS4?uQy6-A-Bky{&|=I*+uB*4~q+;#hh-rh=CFa07G|J;W^ zGr?dr3Ks&<*;N!(1No@Vwly9XfC~VG0?5wpim|1^>5!jXEGFgx)SMG_hVDO1<(zAJHg+x+`L=X7!>l&76q3Ie0 z)54rBAQ4Oi0~7*57oq?xu?+mCfpBaD5$8p$hl<7>~`2~ZnNdcU5>wnS;6GKy0qIhb#iIZK002ovPDHLkV1gGfXlwug literal 0 HcmV?d00001 diff --git a/data/sprites/dwarf2head5.png b/data/sprites/dwarf2head5.png new file mode 100644 index 0000000000000000000000000000000000000000..89fbe87a148ef4ad50b4a90a17bcab6f2a96040a GIT binary patch literal 1330 zcmV-21WFU8GbZ8({Xk{QrNlj4iWF>9@00fpvL_t(I%YBt?Y*SSj z$A9PE+jf_AbS)c&F*eIKd5KWNK2d=H8HP85CMFP#(GMmj#u)oSW%%+*Bi}~iCqhUt z5EDNL3T`v31PM!(AjAgKftHm{a4qaLbnDx__xPdhWiaqbZcffQ|NDQQ|MNWO903rI z$LfI|;CUdtW=-%Ho?`KMY)b|EM+G~j#N#oa5aK9c0Mn~iuPgCCR@tAf;Ew``cszCz zC@opyAM$$re*#y95SgcuNGbh5=j3GOxpX?S8gOX9>%f%P>%S<3=mXfZYll}~ptl09 zIsX@Ov$<5oL7$XzaXOvp2I{pZc`Fo)>&C_>K9JH{T3r)D8Lg{x9|kTyj<@Bsv@9Pg z6!Le!{NgKaC6b-)y4p8NC9^?Fi4X#ZLmkULm^snb9=Q6+r`@<*HOodu{;}n}uPDk9 zMNvA&$0t6%olG%1n{#a5x~aCtSwod1U(EY{?mhSR?PTiB@$m_oo10GoZr~jO@XhgK z^0NA&84;!{@4zWb*~m)6*>RczF3>_q>Cei0S2st0e8goV_{F)5G>~n1P-i0Jew2oNd^|BGtvX zSzwXs8U~hyG7(oIrlSF(J(!bGf7iD_2vBCACF<`Y6b@6>>hpLYo9CsmO8_h6oB)(+ zSfNbhHNX$F)E?@ku(kz&NF^GP%>xkicV(mgu33T2FGM1y%eKy(xOG*R?ZF&Te-{9u zOvIK`l~f_A)KwB1Jx?O0qqTMB1XejGQGb_FJx>5r9WBBv8SH;$pPZLfOIU!?9?S_L zH4p~U_E5c$HH8=Mo_o~$91CS4NDUzjP#z=rJ(P)*g&O6C>hC`zLYW9s5m>sDP$ohs z6XC+ME5*E*p!)6H|EfJ7i1g9le};ibA9MG6JKDG$2$0nsWrqNA?OJ}zW_h5h^gEo~ z2(Dq{`t>+e6-*OUwR~Y+yT+vDW~Lq?rks|=u3~|<_)U7B o@RaP1-(+R6fI~`3;-Q-V071A8_$Ti$4gdfE07*qoM6N<$g2Fgow*UYD literal 0 HcmV?d00001 diff --git a/data/sprites/p2dwarfjump.png b/data/sprites/p2dwarfjump.png index 77840a3d69453b420fd939282457a83c7554f221..64394e4ef347d638f8a21b6790ec673476d44822 100644 GIT binary patch delta 30 mcmey#`jd5n7UvTN28REfqNZ;r8Y{6Giu?Tfb#-I(JSG6II}6wV delta 30 mcmey#`jd5n7Uvy?iwv9&7tgg!G*)8cVZ3yV-D+d>JSG6R{0mnA diff --git a/defs.h b/defs.h index c1fdbc3..5f19af5 100644 --- a/defs.h +++ b/defs.h @@ -325,7 +325,7 @@ #define S_SLOPE 2 // Sprite types -#define MAXPTYPES 135 +#define MAXPTYPES 136 #define P_PLAYER 0 #define P_RAT 1 #define P_CHEESE 2 @@ -466,6 +466,7 @@ #define P_PLATFORM 132 #define P_FLY 133 #define P_PLAYER2 134 +#define P_ARMOUR2 135 // player 2 wearing armour #define FLY_FLYTIME 150 @@ -882,6 +883,7 @@ imageset_t imageset[MAXPTYPES]; extern char progname[]; extern SDL_Color black; extern SDL_Surface *screen, *temps, *levelbg, *head, *head5, *icecube; +extern SDL_Surface *head2,*head52; extern SDL_Surface *healthbar[]; extern SDL_Surface *greenbox, *redbox; extern sprite_t *sprite, *lastsprite, *player, *player2, *boss; diff --git a/globals.h b/globals.h index f8c1311..b648c08 100644 --- a/globals.h +++ b/globals.h @@ -31,6 +31,7 @@ SDL_Surface *levelbg; // level background image SDL_Surface *temps; // temporary surface SDL_Surface *screen; // the actual video screen SDL_Surface *head,*head5; // imgs in corner showing number of lives +SDL_Surface *head2,*head52; // imgs in corner showing number of lives SDL_Surface *icecube; // overlaid on frozen monsters SDL_Surface *greenbox; // for fly spray effect SDL_Surface *redbox; // for gunner diff --git a/rc.c b/rc.c index fedfc48..8863492 100644 --- a/rc.c +++ b/rc.c @@ -354,7 +354,7 @@ int main (int argc, char **argv) { srand(time(NULL)); } else { // cheat - want1up = B_TRUE; + want1up = B_FALSE; want2up = B_TRUE; } @@ -2445,7 +2445,7 @@ int movesprite(sprite_t *s) { } } else if (s->id == P_MASK) { // mask effect // stay on top of player - if (player->slamming) { + if (s->owner->slamming) { s->y = s->owner->y + MASKOFFSETSLAMY; s->x = s->owner->x + (MASKOFFSETSLAMX*s->owner->dir); } else { @@ -2551,7 +2551,7 @@ int movesprite(sprite_t *s) { } else if (s->owner->powerup == PW_CANNON) { int targx,targy; // try to stay behind player - targx = s->owner->x - (player->dir * 32); + targx = s->owner->x - (s->owner->dir * 32); targy = s->owner->y; if (s->x < targx) { s->x += 2; @@ -3384,7 +3384,8 @@ int movesprite(sprite_t *s) { } else if ((xdiff <= -(TILEW*2)) && (xdiff >= -(TILEW*3))) { /* jump left */ jump(s, -1); - } else if (s->y - player->y <= (TILEH*6)) { + } else if ((player && (s->y - player->y <= (TILEH*6))) || + (player2 && (s->y - player2->y <= (TILEH*6)))) { if ((xdiff >= 0) && (xdiff < (TILEW*2))) { /* jump up */ jump(s, 0); @@ -4992,25 +4993,25 @@ void drawscore(void) { // go left correct amount numtoshow2 = numtoshow; while (numtoshow2 >= 5) { - area.x -= (head->w + 3); + area.x -= (head2->w + 3); numtoshow2 -= 5; } for (i = 0; i < numtoshow2; i++) { - area.x -= (head->w + 3); + area.x -= (head2->w + 3); } // now start displaying // show "x5" for lots of lives while (numtoshow >= 5) { - SDL_BlitSurface(head5, NULL, screen, &area); - area.x += (head->w + 3); + SDL_BlitSurface(head52, NULL, screen, &area); + area.x += (head2->w + 3); numtoshow -= 5; } for (i = 0; i < numtoshow; i++) { - SDL_BlitSurface(head, NULL, screen, &area); - area.x += (head->w + 3); + SDL_BlitSurface(head2, NULL, screen, &area); + area.x += (head2->w + 3); } @@ -5610,7 +5611,6 @@ void dogravity(sprite_t *s) { if (s->id == P_PINKCLOUD) return; -if (s->id == P_TICK) printf("9 dogravity for tick\n"); // only player can move if you have a clock if (globpowerup == PW_CLOCK) { if (!iseffect(s->id) && (!isplayer(s)) && !s->caughtby && !s->dead) { @@ -5645,7 +5645,6 @@ if (s->id == P_TICK) printf("9 dogravity for tick\n"); } -if (s->id == P_TICK) printf("0 dogravity for tick\n"); if (s->dead) return; if (s->flies && !s->iced) return; // no gravity if you fly, but ice cancels flying if (s->id != P_KSSHELL) { @@ -5733,7 +5732,7 @@ if (s->id == P_TICK) printf("0 dogravity for tick\n"); // get rid of the mask for (ms = sprite; ms ; ms = ms->next) { if ((ms->id == P_MASK) && (ms->owner == s)) { - s->dead = D_FINAL; + ms->dead = D_FINAL; break; } } @@ -5834,8 +5833,7 @@ if (s->id == P_TICK) printf("0 dogravity for tick\n"); } if ((s->id == P_KINGRAT) && (s->timer1 == KRS_FALL)) { // special case // king rat drops until he is at player height - // TODO: 2player - if ((player->dead) || (s->y < player->y)) { // above player + if (!playersalive() || isplayerbelow(s)) { // above player ontheground = B_FALSE; } else { // above player s->dropping = B_FALSE; @@ -6473,8 +6471,11 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) { } else if (s->id == P_HELMET) { int xx,yy; playfx(FX_ARMOR); - // TODO: player2 - pp->id = P_ARMOUR; // change how the player looks + if (pp == player) { + pp->id = P_ARMOUR; // change how the player looks + } else { + pp->id = P_ARMOUR2; // change how the player looks + } pp->armour = B_TRUE; sprintf(tempm, "Armour!"); addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY, TT_NORM); @@ -6783,14 +6784,15 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) { gunorigy = pp->y; guntime = 10; gundelay = 0; // used to control shooting speed + pp->powerup = PW_GUNNER; // turn off netting etc - player->netting = B_FALSE; - player->slamming = B_FALSE; - player->powerup = PW_GUNNER; + if (player) { + player->netting = B_FALSE; + player->slamming = B_FALSE; + } if (player2) { player2->netting = B_FALSE; player2->slamming = B_FALSE; - player2->powerup = PW_GUNNER; } return B_TRUE; @@ -9466,7 +9468,7 @@ void startgame(void) { if (gamemode == GM_EASY) { player2->permarmour = B_TRUE; player2->armour = B_TRUE; - player2->id = P_ARMOUR; + player2->id = P_ARMOUR2; } else { player2->permarmour = B_FALSE; player2->armour = B_FALSE; diff --git a/shared.c b/shared.c index d2608bc..1df5f28 100644 --- a/shared.c +++ b/shared.c @@ -644,7 +644,11 @@ void setdefaults(sprite_t *s) { if (s->permarmour) { s->armour = B_TRUE; - s->id = P_ARMOUR; + if (s == player) { + s->id = P_ARMOUR; + } else { + s->id = P_ARMOUR2; + } } else { s->armour = B_FALSE; } @@ -1106,6 +1110,10 @@ int loadimagesets(void) { head = IMG_Load(tempfile); sprintf(tempfile, "%s/sprites/dwarfhead5.png",datadir); head5 = IMG_Load(tempfile); + sprintf(tempfile, "%s/sprites/dwarf2head.png",datadir); + head2 = IMG_Load(tempfile); + sprintf(tempfile, "%s/sprites/dwarf2head5.png",datadir); + head52 = IMG_Load(tempfile); sprintf(tempfile, "%s/sprites/icecube.png",datadir); icecube = IMG_Load(tempfile); @@ -1189,6 +1197,24 @@ int loadimagesets(void) { loadspriteimage(P_ARMOUR,F_SWIM2, "sprites/armorswim2.png"); imageset[P_ARMOUR].numimages = 18; + loadspriteimage(P_ARMOUR2,F_WALK1, "sprites/armor2.png"); + loadspriteimage(P_ARMOUR2,F_JUMP, "sprites/armor2jump.png"); + loadspriteimage(P_ARMOUR2,F_FALL, "sprites/armor2fall.png"); + loadspriteimage(P_ARMOUR2,F_CAUGHT, "sprites/armor2.png"); + loadspriteimage(P_ARMOUR2,F_DEAD, "sprites/dwarfdie.png"); // not used + /* next 3 are auto generated */ + loadspriteimage(P_ARMOUR2,F_CLIMB1, "sprites/armor2climb1.png"); + loadspriteimage(P_ARMOUR2,F_CLIMB2, "sprites/armor2climb2.png"); + loadspriteimage(P_ARMOUR2,F_SHOOT, "sprites/armor2shoot.png"); + loadspriteimage(P_ARMOUR2,F_SLAM1, "sprites/armor2slam1.png"); + loadspriteimage(P_ARMOUR2,F_SLAM2, "sprites/armor2slam2.png"); + loadspriteimage(P_ARMOUR2,F_SLAM3, "sprites/armor2slam3.png"); + loadspriteimage(P_ARMOUR2,F_SLAM4, "sprites/armor2slam4.png"); + loadspriteimage(P_ARMOUR2,F_SLAM5, "sprites/armor2slam5.png"); + loadspriteimage(P_ARMOUR2,F_SWIM1, "sprites/armor2swim1.png"); + loadspriteimage(P_ARMOUR2,F_SWIM2, "sprites/armor2swim2.png"); + imageset[P_ARMOUR2].numimages = 18; + loadspriteimage(P_SNAKE,F_WALK1, "sprites/snake.png"); loadspriteimage(P_SNAKE,F_JUMP, "sprites/snakejump.png"); @@ -2928,6 +2954,8 @@ int randompowerup(void) { int num; num = rand() % 34; +return P_MASKPOWERUP; + switch (num) { case 0: default: