From 388f50ccfcb8c88998cf4c4559e2b3225b4f9b92 Mon Sep 17 00:00:00 2001 From: Rob Pearce Date: Wed, 1 Oct 2008 07:27:44 +0000 Subject: [PATCH] - Made level transition smoother and fixed bug with player movement - Fixed bug - couldn't climb ladders next to walls - Now using outlines instead of shadows on text - Tweaked text colours - Added KABOOM! to bomb and BIFF POW etc to boxing glove - Now drawing puffs last to make sure they are on top of things - Redrew graphics for rat, bee, snake - Changed to new font (and renamed it to gamefont.ttf) - OpenGL mode now mostly works (still need to fix angry sprite images, initial level transition and fullscreen mode) - Replaced all .bmp format graphics with .png format --- bee-nw.bmp | Bin 2574 -> 0 bytes defs.h | 20 +++- edit.c | 19 +++- gamefont.ttf | Bin 0 -> 66788 bytes globals.h | 16 +++ ladder.bmp | Bin 822 -> 0 bytes laddertop.bmp | Bin 822 -> 0 bytes land.bmp | Bin 822 -> 0 bytes left.bmp | Bin 822 -> 0 bytes levels.dat | 20 ++++ newtiles/log1.5.png | Bin 707 -> 793 bytes newtiles/log1.png | Bin 742 -> 860 bytes newtiles/log2.5.png | Bin 708 -> 803 bytes newtiles/log2.png | Bin 729 -> 860 bytes newtiles/log3.5.png | Bin 700 -> 795 bytes newtiles/log3.png | Bin 735 -> 861 bytes newtiles/log4.5.png | Bin 706 -> 788 bytes newtiles/log4.png | Bin 732 -> 858 bytes newtiles/slopedown.png | Bin 503 -> 602 bytes newtiles/slopeup.png | Bin 490 -> 593 bytes newtiles/spikes.png | Bin 0 -> 212 bytes newtiles/water.png | Bin 0 -> 144 bytes newtiles/watertop.png | Bin 0 -> 145 bytes oldblank.bmp | Bin 822 -> 0 bytes pfall.bmp | Bin 1374 -> 0 bytes pjump.bmp | Bin 1374 -> 0 bytes player.bmp | Bin 1374 -> 0 bytes rc.c | 212 ++++++++++++++++++++++++--------------- rc.h | 3 +- right.bmp | Bin 822 -> 0 bytes shared.c | 130 +++++++++++++++--------- sky.bmp | Bin 822 -> 0 bytes slopedown.bmp | Bin 822 -> 0 bytes slopeup.bmp | Bin 822 -> 0 bytes sounds/splash.wav | Bin 24129 -> 48214 bytes spikes.bmp | Bin 822 -> 0 bytes sprites/bee.bmp | Bin 2574 -> 0 bytes sprites/beecaught.bmp | Bin 1622 -> 0 bytes sprites/beedead.bmp | Bin 1286 -> 0 bytes sprites/beejump.bmp | Bin 2574 -> 0 bytes sprites/bignet.bmp | Bin 822 -> 0 bytes sprites/bignet.png | Bin 0 -> 185 bytes sprites/burger.bmp | Bin 822 -> 0 bytes sprites/cheese.bmp | Bin 822 -> 0 bytes sprites/chips.bmp | Bin 822 -> 0 bytes sprites/cloud.bmp | Bin 4134 -> 0 bytes sprites/help.bmp | Bin 822 -> 0 bytes sprites/help.png | Bin 0 -> 218 bytes sprites/icecream.bmp | Bin 822 -> 0 bytes sprites/numnets.bmp | Bin 822 -> 0 bytes sprites/numnets.png | Bin 0 -> 191 bytes sprites/speed.bmp | Bin 822 -> 0 bytes sprites/speed.png | Bin 0 -> 185 bytes sprites/spider.bmp | Bin 1398 -> 0 bytes sprites/spidercaught.bmp | Bin 1398 -> 0 bytes sprites/spiderdead.bmp | Bin 1398 -> 0 bytes sprites/spiderfall.bmp | Bin 2238 -> 0 bytes sprites/spiderjump.bmp | Bin 1482 -> 0 bytes sprites/spit.bmp | Bin 278 -> 0 bytes world1/level1.dat | 2 +- world1/level99.dat | 35 +++---- 61 files changed, 305 insertions(+), 152 deletions(-) delete mode 100644 bee-nw.bmp create mode 100644 gamefont.ttf delete mode 100644 ladder.bmp delete mode 100644 laddertop.bmp delete mode 100644 land.bmp delete mode 100644 left.bmp create mode 100644 levels.dat create mode 100644 newtiles/spikes.png create mode 100644 newtiles/water.png create mode 100644 newtiles/watertop.png delete mode 100644 oldblank.bmp delete mode 100644 pfall.bmp delete mode 100644 pjump.bmp delete mode 100644 player.bmp delete mode 100644 right.bmp delete mode 100644 sky.bmp delete mode 100644 slopedown.bmp delete mode 100644 slopeup.bmp delete mode 100644 spikes.bmp delete mode 100644 sprites/bee.bmp delete mode 100644 sprites/beecaught.bmp delete mode 100644 sprites/beedead.bmp delete mode 100644 sprites/beejump.bmp delete mode 100644 sprites/bignet.bmp create mode 100644 sprites/bignet.png delete mode 100644 sprites/burger.bmp delete mode 100644 sprites/cheese.bmp delete mode 100644 sprites/chips.bmp delete mode 100644 sprites/cloud.bmp delete mode 100644 sprites/help.bmp create mode 100644 sprites/help.png delete mode 100644 sprites/icecream.bmp delete mode 100644 sprites/numnets.bmp create mode 100644 sprites/numnets.png delete mode 100644 sprites/speed.bmp create mode 100644 sprites/speed.png delete mode 100644 sprites/spider.bmp delete mode 100644 sprites/spidercaught.bmp delete mode 100644 sprites/spiderdead.bmp delete mode 100644 sprites/spiderfall.bmp delete mode 100644 sprites/spiderjump.bmp delete mode 100644 sprites/spit.bmp diff --git a/bee-nw.bmp b/bee-nw.bmp deleted file mode 100644 index 17e7a98b3b00f8fa421966902a9646453597977f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2574 zcmeH^y%EAN424ArMM^FON6iEbK+jGdjv?5_JX^9N|HME#IO}Xhk@Y?+%I!WKDB2bN zf_=h1WAA8&CwlIQ9ux1F_(|s+d5<;EM_rr||J7F|TEWbK=B|gmDh)^)3#W*-Tm>9M~hoy*^i(465}$-vIILMr)g~`Jz>2`ed4sAN4U4 zWWF>AolCssDL_07Q&pnPkN8xD%nJHw2=pkloojm&SY*O#Gf|dfEfcZaXlNWtf8M)j ic&$pdB)|a=O2%$MR2l|y+QwDkNQ?=L35*H+;RIf#l3FhS diff --git a/defs.h b/defs.h index cf8effb..9016f13 100644 --- a/defs.h +++ b/defs.h @@ -4,13 +4,16 @@ #include /* Macros */ -//#define OPENGL +#define OPENGL // sound channel numbers #define CH_LASTCHANNEL 21 #define CH_HURRYUP 20 +#define MAXDEATHTEXT 4 +#define MAXBIFFTEXT 4 + // size of flower straem when getting last flower @@ -25,9 +28,15 @@ // text sizes #define TEXTSIZE_HELP 20 +#define TEXTSIZE_DEATH 20 #define TEXTSIZE_POINTS 10 #define TEXTSIZE_BONUS 20 +#define TEXTSIZE_BIFF 26 #define TEXTSIZE_HURRY 50 +#define TEXTSIZE_BOMB 36 +#define TEXTSIZE_LEVEL 32 +#define TEXTSIZE_LEVEL2 22 +#define TEXTSIZE_SCORE 14 // text delays #define TEXTSPEED 2 // how fast text zooms in @@ -36,7 +45,9 @@ #define POINTSDELAY 40 #define BONUSDELAY 50 #define HURRYDELAY 50 -#define LEVELDELAY 80 +#define LEVELWINDELAY 80 +#define LEVELDELAY 100 +#define DIEDELAY 80 #define HELPDELAY 80 @@ -295,6 +306,7 @@ typedef struct level_s { level_t *level; typedef struct levelentry_s { + int id; char *filename; char *desc; } levelentry_t; @@ -405,6 +417,8 @@ extern text_t *text, *lasttext; extern int cheat; extern int nexthurryup; extern levelentry_t levelentry[]; - +extern int numlevels; +extern char *deathtext[]; +extern char *bifftext[]; #endif diff --git a/edit.c b/edit.c index 79424f5..6595c22 100644 --- a/edit.c +++ b/edit.c @@ -30,6 +30,8 @@ int modified = B_FALSE; // has the current level been modified since last save? int curworld = 1; int curlevelnum; +int skipto = -1; + int layer = 1; // which layer we are editting, either 1 or 2 int main (int argc, char **argv) { @@ -55,8 +57,8 @@ int main (int argc, char **argv) { usage(); exit(1); } - curlevelnum = atoi(argv[i]); - printf("Skipping to level %d.\n",curlevelnum); + skipto = atoi(argv[i]); + printf("Skipping to level %d.\n",skipto); } else { usage(); exit(1); @@ -69,6 +71,15 @@ int main (int argc, char **argv) { return 1; } + // is we're skipping to a level, do so now + if (skipto >= 0) { + for (i = 0; i < numlevels; i++) { + if (levelentry[i].id == skipto) { + curlevelnum = i; + } + } + } + /* initialise */ initglobals(); @@ -98,7 +109,7 @@ int main (int argc, char **argv) { fakeblock.lowness[i] = 0; } fakeblock.solid = S_SOLID; - fakeblock.img[0] = IMG_Load("land.bmp"); + fakeblock.img[0] = IMG_Load("newtiles/land.png"); fakeblock.numframes = 1; fakeblock.next = NULL; fakeblock.prev = NULL; @@ -106,7 +117,7 @@ int main (int argc, char **argv) { /* load fonts */ TTF_Init(); - sprintf(filename, "verdana.ttf"); + sprintf(filename, "gamefont.ttf"); for (i = 1; i < MAXLETTERHEIGHT; i++) { font[i] = TTF_OpenFont(filename,i); if (!font[i]) { diff --git a/gamefont.ttf b/gamefont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c404e4a6605346e1967bb2ff96d8f2d314054787 GIT binary patch literal 66788 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 literal 0 HcmV?d00001 diff --git a/globals.h b/globals.h index 53bb5c7..f933bef 100644 --- a/globals.h +++ b/globals.h @@ -5,6 +5,7 @@ int musicplaying; levelentry_t levelentry[MAXLEVELS]; // level filenames etc +int numlevels; SDL_Surface *levelbg; // level background image SDL_Surface *temps; // temporary surface @@ -39,6 +40,21 @@ int gtime; // game time - time elapsed on current level int timer; // generic 1-100 timer for repeated events int toggletimer; // used for toggling between fullscreen mode + +char *deathtext[] = { + "Ouch!", + "Ow!", + "Argh!", + "Noooo!" +}; +char *bifftext[] = { + "Biff!", + "Pow!", + "Wham!", + "Splat!" +}; + + /* colours */ SDL_Color red; SDL_Color black; diff --git a/ladder.bmp b/ladder.bmp deleted file mode 100644 index 4558afc1a20d1294442319cf4bda4945194764d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyaXqX!uVM!PJ6if{K9(Fx4ZAAhRK+ z;TOR#OP+i1>%wm%epyT(5u=_|_mHX{*$v2SOxI$H5Tl+{_mHX{*$v2SOxI$H;8G6& D#jxUs diff --git a/laddertop.bmp b/laddertop.bmp deleted file mode 100644 index 05b59a4874593c4876d64abd26b2c1ca414eef72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyalM4?+$N{|O?9N=notn}E!QSdCu< zzbrw=0~KJJfL|A;dSnq~_Rw~}Ljwu!cW3~n6#-preMv%~J1G0qM_i3<@@DU!+r8%sq|q8n?o zRY)fUf|Z?xW{VIp77;{JSc{0wV!9ZJh-N_zyH3_|cK6M@bLZXr=G_#dL5)_P`h4f` zox>6Q2i(S)(=4}N03aWKZ=xodSpW3eKY8MBN28q;K0E&^t=5wyogOorQJN__FNnNF zOz|V9KYm9DF@8wEeRKUWmip(o`AG|{^aItT*+uQo0H_I{AeNjs`=(f09Ro-J=UmEg z`(WSdSrK`@lCV+5%&PlGUU7*u^8qW^^ zSnM5QdT$CqkkoO`V2!4h6ab8V`JG(d;PrPmyo)P)&#~NkgGMSSii*fjNSbYeSP<3& zvfqA164G3Vke+0Jps1)(Z}j=$r*9>85@RwmPo&JKM~}?^4P$Cy%<8G*bdN3pFjEn} zYyeQr0`~4a?lZW5Tag|fvcD4&*A9^#Y-7e<7W(tx2Df(Tth5l7k2NK=DBlSW%j>%AQmaVT`L zP#48TQPIVvqm#S;fI|mC5M0Dr9TY?;2;v2#)~cXZZEdy2G=E8RZePyTp-`+&{-&4r zdEViLAHhGIJv=aZvirLvWoe9aNRbNUK~{xT;Dr zkL8r2Do(3W(8%nv&BljI=O;&rX2ia4WYlbTjz|hu^&d;ivdq+Mj#B2-e=3Y^FXdk^ zG^r*LUswRzp4VI420%;eT3R2OIN4p@2SAmAR7wWGDSvk66)6^8z3IwMr_h^OSzIj^ z>?mCX@crF$vu{9>5Q@Msjp;l0Ha=!9)y|9$amHmu)(y?}Ndg-90U?Mx9Yi5jw6)r= zJ(d2sPhS8~0Ff^MI4!GIYo#(>jLD42iEtCKj=&3qpUvg~Or1LJ#C?=AivNLGp0H}| z(Ovn3K!4TrI7wpB3WXhq5!a2#7lG?>HO09!_xAIRnFSih@uRQn^`;dh1b}EYd`I|> z0AM#8cD)I}UaQAJaP8rOCjfgc8b$S93F0zec+A;|T+Z=SsW zwne_2X{s{6Idy~(BuEJ3vZ_T^^YN>tTQ6#>^)JTXwr-F~r;E94I_iWZ38)mf-iqzn cUT3rL8y~C=x&Q&ulmGw#07*qoM6N<$g1tyT1poj5 diff --git a/newtiles/log1.png b/newtiles/log1.png index 7156120828200f3dec9c1c2cd4bbe5f59be175dc..4cf0b8ea37ebc757ce8531f63d1b7c8787fcc956 100644 GIT binary patch delta 821 zcmV-51Iqm71>6RZ85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%*{3IPZ=1IMWA z5C8xI=}AOER5;6RlTB+}RRD&cbI-XSGdGi&&LowPj<#s&SE|-_6Cqi+C`v1$(1jam zSFVeKxbp`HF8mGEBB%siD6L3U5|L6-(I#pmam?7Xlli(cb3e{K_qZ$C`mUe%**${$ zW^Z0?5J{ICpFKp?d4xlMOEtd#e3KKWTjHrRTle$gKj&`yVcx&EM9qJaAZVfj4{0q) z6p`qks2;z{**7+Y5YYny`|XGOSpW2Se7S@YWdu1$L$&TP?r4->2Ak4NF7e#!SH$e$ z2*3fb)>gT(vdmQFY4T!1W)p-8D3$8?~688b+tU5!%-qikqt~tlf`S_6gk?ypoIbJwj6VVl9*f}eII2O6zyL(3FR@eUJ2tQ_$s14w-?tFbbsrS#W6B)$-0o|4tbH17a9kR z^0h-{z6BzMqC_DIf|?}h33mS|819b2v5YzyDgcuvOri{blNMMLbLzzn2e~I@GQNvj z4w$Ms^mqPbIM~Me1F$K=l^C5d>Q6vguohzqI(OHYd9>|t?$vdi`d5tmZHBiEIl2} zluVByPlyM939Y|AVe!H*qS=fc0CC_z!s3PNY;3>B?wt*6V!>*xHRxmrWGLw%q-Oi? z%N#p@MI1WSc`&Bc)jGu};EQ)o((sNl9UdeMLX0iw54LFUe8Wp`u8GIb_WrlVd!k#n zs_gte$F-FTHJQ_VO!M=)=EQO&PQTp#H~SA^rdZ+-p)^}700000NkvXXu0mjfU{{7g delta 729 zcmV;~0w(?32Id8j8Gix*005AYXf^-<010qNS#tmY4#WTe4#WYKD-Ig~000McNliru z*a;C08#Bo=U$y`M0)6B~$yiHTz3D`I#EEU+v)JFk1^K7TAoh@R%0;#VF7|0E85 zlNcS_nCS#zH(CGwbt@AayZiqd<8&oclQ+A@<@vGciO_0Ljr3^t?Am(&EhX!R*=RI6 zVdSKy+VTB`)}1TKMC<~95Xx{oqQ!;T&W*)(KFqh%n)4a}FaQKWaBIfDzLXSYU6q1b zRuubw=zDIHXn*ZC45D}MT@;?@0f2!qUQWg@%?9nUD9vc>8^|K2)gVpVkPgz~$X6attLxT-CJ|cbhov)e;kL6skuqRv=B(kaVRC0X)K+aSxBZ`#|};LdAlT! zA3gN>fn__Lb~v4MIm?dv$LFtJGi_J!5}TA#+jE-;lYh{ot83e2F`_L?c&*l%$++oz zren9_u-Q4sszR1SEtM3CV4|f&0NcHkv?*GejXWC@#kDMhv6#?CG3e#}eM}m_GY}Oo zin?O8lplT^7+XWegt9HHBoOK&o~lunGXpgop7u@KsnS&BmBysx>ie<6Oz4AtO6?|g z+|Az`e}6XihM8uyAjIN~6@!5WthH7`zW?}Z=U_nkS%Hvoe!O9mnlbLWu9SK>ND(HI zSAuaZwBbklheyv=HrIQ{L~Fe_VtK~TcHCAJu(IZPA%y@9vaYL=DWsJU&tHF9-OST0 zBLE`Ar(R?rK?(Cj0nL(qZe=1UQ+!S^^OJrfKJaB`98JG<(Moc!F&=m zeOpPrv30oeW#@gb9;Dd`L-2nB&+A5^Cz(LH#ztL~BZYSQgH!MqSocO}(-WXv00000 LNkvXXu0mjfP@P!s diff --git a/newtiles/log2.5.png b/newtiles/log2.5.png index 4cd85f1ee5ed150fd69f98949428d3ea92a46ba4..e1f40e075477e1ddfb20a0f4f8f16b2bdc5f6ea7 100644 GIT binary patch delta 763 zcmVu9ET=hHd<(LIt5+6~9n~?yJ&;0T+r{6r?s3)5bC7O*)x*zdxSG#Y@wwEART8bI(28 zBm8TOF^ccM9piOM04{xh@Cb*-3TGkZ?X}AyqVL7q{~%w#?(^QWPjhVL9RS>x#gUZ| zM~1kL%emK|GRAx)BKvnZazNhram2>ilen!RPV264oksMQ`vARP12vF3KosJ>${0w&*Xf$zXYZs{!iB$MU-<*TM0@ z6a@gDwLnh7VDT}MY=^vx>5oSI`uUV_@(S?2Z8kR-**J5aS{odM?$D>z9s!W<#fVzM z?;CtZl%(v1*GS`(ZudwN;?A`t1OW_!OEtHl-Q4eYeB7Z%DVw}V$-)esH?D)h*nINF ztBT7PJBTs-->J)g8Kd4aik?+rxq|Bjc&>*wLb6+v?AD-#B2DQ%*x~kMf)gyzzwZHp z&JtCTH7AS@m)JL5lG`AGrrisuvSy3r3yY%`S(xDYJ&Y;XpY9VUHCpG?=4Zu~-%9px z)d0kCO%~O6ZRUpAp9%ADN-%IJiP)MOMUA73^*8lFv0yo>&!; zIeb)kahFg%|7OFXMc9)&b8POwevLRD}Emb zzV8tHB}(bp!GVNl04_U(>N%E*mCbsVWv2`|opepRH(q%1;3@z~)f-3cQZcXU*2mRv zFFx#aI-Ncy^{wm{7v?YCzA`Gw8X=O%1kcjEJ0z%7anyoQsQv)zNJ7GCG zfbz(&-CCQUu>r^h%UXJRQ*ch?RCnBR(E$*28r6y^RJ%N8vmp7tvCV>TYP<}r%T?DQ z1OiYMDkC~MfN5uzAuAH|!pLjLBmr=Cr225~9JP2XAb;>5>iXgRTaz>;f=G&K<+Z#{ z1bEouVT%yKeBY{0?fu-zoA$(o(Q0KNiXs4VLSYNmrUMVcPfY5=@u zt6i@F@DoB6?fLTN$*290#Z26o8BRGr*gNpLUeZfnzJ7aYY!pJYkDCP9qs0}^_y2Th zZMU)VwLWh0GefSb$Vpfr>y{Tx_)Q63c#Rs0Gw2}n(^j- di?QgG`3+Mi8CH6RZ85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%*{3IPZ>0j@rl z^8f$>=}AOER5;6Jlg(>fRUC$&-#Pc*xifc?nM@{$4WyA0t(I2W*o75aT~&&eVnwMG z{0rO&1##7}k)2c;FD>Nw~nvi0?W->GPo^$Rwu9Rxt_47Wf z_Z9w^5Q5^;hfh#$ROtSHImP7TdwBBMDdy%r=ImRyMZ`bM%YVxE@27lo{s?~k7`1E+ zLIqRy5D65$WyWT2^2)iJBC@qZ5N`cA&fJB=G{PCO<|MYCgBp;G3^4ry(-Q{y8hNNfRG;!3Tq|exYgW91r>diPv7o@JJ+tNFhAem z>+?@DG&F+^p6bveL`FqBNnQrX!l#k);_Vo;a;jAFfi(GJ-8Jg8^nU22s>oF;-+KiZ*vGjlOB&v!xLa`Ze-2pmIsJCObmU2XYdu%TBbA!nZF1I+-=jSgM z6u0kMHn$cDUSqArxPT8rr4}<-50rSkfHeVc1m_^C)X43x96G+FICQMb^6C$0U6SYs zlpuI|YdxGRDX}Ix{2jsnhGY;GuRf#^D8 zr``nM#JR6Tq`UJ>zu#yxcVQp0_B`#eBZ#g-6jK%jo%K6J6JPN9```al-XQ=8OG{N+ zX_LR^C%JKXFV4g`^&69i*LdN%RgtN|!~EZNDN^1LLyi?X00000NkvXXu0mjfG)IhZ delta 716 zcmV;-0yF*G2H6FW8Gix*005AYXf^-<010qNS#tmY4#WTe4#WYKD-Ig~000McNliru z*a;C090t(94N?FA0(eP8K~yNuRgy_hQ&9kg@9^%M`iAy(cu+zC5kVv-ByI?5jEO(O zh5jl3fQbv@)}=A7*toz1#SntjKoPLCv~TDe?&t!8dN$`QzJIg(AowQ;p_O)MXmHjy zZq3il-dlhD=Iyti7gEX_2Hq^wFg6yNkC%dG-7_>a$*2P0Y!L07vz?R6D2lEzd|j=e zwmDyW@nmsrWzMmXMl@3KF-8sFY&*!qV8n4e$^RSz&wJ1y&!66D)NEk7Pzcl18ev@t zaWzWU?k=?Jwto$HpBYh{U;sePbzVN|bUI<2WMx@|vojhNe!c11Isz;!#3YVyxBW7T z&N794*WC#9XB&$^q9E`b8&6Gnm3k;7r+L(xZmBY7C9^D|6Zokcqv@c!+VKUGP%wm% z?Nnr$LV`66#^VX49O~F{O)ll^R5i3TU^)MPXej4>(%WusC2YU>@suw?wh{`mO3kCVI@ za1H0#{pA_m^?5Q@OaMfPZb`<5mselD|M+}xwA(FqdJ&}*0|1JWUSu%s_uGMC=>%e| zBm@vL#*h-Lo%Zh0@%w`!Nz=bBC0Tx&p>A(1X+;sXY6v4BRgq`=ho@WHrymc?Yx+N1 y0RWb1R;zxySzE3mg23L%aG1+qQIhAy4f7if5>nPp077N}0000g8zKlQ*vMK~h-nOL5kdkM zF|iONF<99JAz)`=v0C~ML{YF38)1>4gcN~<1dPN;vLx&7j?NAL>V@{-|y$6t4_Yo}u64@FY?99-=3&ityFn`^(y7ymo{ZFzda5O$Xjx+CN;%3whxy~* zh&>0^0VIIC``sLI`4uA+K@@-x#KtG^HCn}J6{D0wY6V*H^U^tg_xyPXAl=GJME}WY zl#-Y!13+!U5KoThD9}WKrZyb{P+EnKrnz?Vuyam&XZMQ_F~K4>OHiR9j3uJ<85JNT zn1&`W3Z($OxP*akeCD zr9@GK*u((n$lD5k5rEa(*U@2}tX<%HFwuy{#Grx>DwOFodDe#^lv$57ZSvs!Zl7qe zWKy4C#E5**!_=xcSuiRjGrMO=o^{8;zUR=JJ7~3kVsf@l=S9iPyV9pV{|xbuWmI|; zqZBVz-~v{kZjk?yP~W~C0O^JF2WvRLHg;CiD4R(>I{K7+1v`JmSdLmxT~*A3zAvbsJBP@%Z9ZY}O`s1=t==zochZ$0@hL7A^LE(P87S zJ3@%|>t%9IuF8$izeNY{Gbo!xCcxJro~qGntH+}k$$fG1+Ko4H{{u?82s)e=V1EDr002ovPDHLkV1mt{W)%Pc delta 687 zcmV;g0#N;%2D}B38Gix*005AYXf^-<010qNS#tmY4#WTe4#WYKD-Ig~000McNliru z*a;Eq;sKfu#jSMOhF; z(M5tzL6^XTr-=TFjveh#2Ms!QRERow2#vrHDoim0qjlZ4aerQRXJ?+7>7ayp>vQ_S z_xt5{`4AjI=gOeYr8JjfkxGcelxoY`cbuag^7kqi^A9ie-8?_U3^VY%NfZ*0B*FCT zM?VN#w*AlG{^Z!q)ESltL;?Vq>^hx;C}GTYy~lHFd#yGA24J+De>#1Q0Ww$OFi7cI zN=i`zSx$ja%70`bqRA2c?YD-ABFa_u$(>OuNqV6OKrfoQnFk1Fw{4{TJ4pAkzoL;s?@6O4Cer3)#!?Z**#H`laiS>N&{gilCG<$ zJZEORc7I#=9T48G)d@w|^_D+x&#!DTA;g#6-n}a)gD{pN-?N-J2(^s9^RwnUexqS$ ziiK9gT3YWuUt0Hl|4*XADGh{K-f#Q+%BtGmsEh-+!v9Dnv={?}gfPz?Y<5H76k zo~vm61>JId5Mt&sgXLnk)7jXrzI?a3Q>`7h^(cS`7l$(jzdAkyU~zf#^{4G)g+CQq V|Be4FXa85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%*{3IPZ=FZFPT z^8f$>>PbXFR5;6RlTBz`RUAjp|Gv-pcr!_6l8}jGAr)gQB8F}fixsRWh=dA4)vZf6 zf@`(MiRE~nN9%s;XxM~@!f&&z+#KW$F)#e1tX=1($JJ%S^Op&rs7 z{ziB53(vj1gDPuTTibs?V88u*k=>1#SeRSK7za@XlaI+J3M&d%90r43ZuP$5%)3|Q z$*1oEC;)roa-HiRKhNUAS*-EMOb+;XVFeKf#6v=%Hn+_3;_GaGpFd%5-V6bhZM6z) zpFd9Xp_eICLvTZUuSDPmlq&^-z#)nve7B4q_3@lKReP52&aGN&mCH;xg>+A0D>V-H zGD>9^i$aN|P%1#8$TE*)Ji-fvQq4h+8pQ2q*!ZyR()qnXeRh>BQy42?gmSG&GD@+j z0SS;KqEekE4+9Q=x;<=~QY_744g#0UUoKN{3OJ4;D0n!^C(}@_`xu>4sTEPPiqu&4 z_YBG^jEcbo3~o1FvWW+-N8tN-p^qa52L}>i=HUwdRGId*eQ+|Og@|Bm7^ZFddqWzJ zF1cjt8YW5bJVl;4xSm3}AT}q@6#Aaw;BE`wn?fRo;iyA@nk9%>j;%Fa8YjBk+58na zjx`+uzl0x7u1Irit=;0Ixe@>iufB<%3~_Tv z(~L=yqjiFRPGj;orcl;s`y*%G*%6Uk0f@+eSGF!tST`sY<2r^+4@gFR#^Zf#rtu}j zRYl^#_pGd65|P6PW3o14^Zg|be?CpOb9O`dvTi5puz4)a^Ayx1l(sT@1q{WtqJ+F?c!`nLubsQ>@~07*qoM6N<$f^Khs Ag#Z8m delta 722 zcmV;@0xkXB2Hypc8Gix*005AYXf^-<010qNS#tmY4#WTe4#WYKD-Ig~000McNliru z*a;C091_YJ*)IS90)9zEK~yNuRg%eW(@+>jf8W7F61#SW4v9iKs525RtdJ0h4FZAS z0gzbnW^8!?5FmsKt5OzK%YxD&Nz*n><2do`d#}x+QdG|7`+pW^c_g?&wPfiiqdASH zoMe)Vm2=w}y6#PfjGtu`Hj41zcCAq_BP{u&@StV?ZfQGxIZBv48eMDB_0-D6=d0$c z$7>iekwF+SlnNwCn4-TYy^q`NU$(fk2LONpplq4X7W1!P+>8}WsIPBgMa?Z0k)^Bs{y^|p!H{KH6ok%cvtUf9 zn$|i#ZGU%c8D}SF_WLh8I2I`v_)bHA_u=c${Xd&ab8*Chs62{7-}eWu7eZ~ieB8X) zItjK9+n95H;S1k60)V$KpCl1uT%?FH-wWMfV0*6X#f*R7>wG)vM^S_UAW4$8tIk!X zR%S~GW8V*WDtXQ*O@%CD0Qj-r`E)Sojne>tBuinZuGl@YQ4$n&StbZ$!Z<%Z8*J@% zJ~yNGdH28g#x!Oo>jg5uyy~2{n%!YHr4W!*@op8Q_9b2_h4x@t zJb3ai5XnV7h)6A@P;zRidg!4Sy?PKV3VMiZlVx3YH?y;u+271>e;&rBT5|C@KcDaO z_I(8Z3$2?a{#ZUh@A(XW$!{hAwS^%7b3gti_UuXC%@^;(y3F#|-%{IojIpv=U%3Uq z)YPs`lB@DpM13Ar*EGX`Mt%mP})Xce<-?-AUMJ9_2P z+4nloT9^5K@eY0{aQzBVTVfdjt`{QH9(JWxl(S6YZj3?3zLQ^nh}mPULSXsa6;MoPnL$*a&o-1H~$D|f~RJ53O@ap?$JzfJqjWqyiKLZR*53)q^>bY&bg+1cII;0Mv zyPF-8lk{H;s5)p#l95DaLu?`FTb4n)e;?DX@S&lFVE*L55a0j&3vstu zoXOAe8Xkt}ktt1Y)gT?DTaZ=G(a1soO=JIhF+vnQqds|mfH0`jX|`~!0N-nnj@NK= zpZ4mj!ZnVA;ed^%{@HmkGqX`R@yyjbKUKpsmiT| zA80g=A|pvhraA;c9hoQqp8Ru@b2t7J)6?m;-}qL<;P&D?*=C7WbIgg0kBd0brQ2#V>S|uBC$|VBw$jc z(n`=q#7YYb(aJx;&Qh?k&_=YhvQw~;AjAiS&hu|+%mCx0xvzEdN8$c-P0A8=zQ5^3%Z0|Bn^X5|H`i1#3$0k-=UjW>>bZ+5z z?POhTb>n^z{Sz<^{qgO^x}|eTDhj+`-?(;uImz-Q%V%dB7tbCZhWY2V1Ay%OesXJ( zC~CPD*FL2Ne;H1RER70Uv-@x190#1iHa_lb%m6;X<52af)M7| zxDW*>O@jfGs7Ob89(~yK>DAMXBU4s35~DCukSGc(7?%taB9}=blcdC@B=C`E%crIf z8Y(TDs?!?+&@`@UYU=kZwYoMoMObOKCD)m*0bpiT)_+uKVSX9_<9vK-0)VsSH!8JG za|J+=WB}4Qq#$6WB#vZ}NdP$Kc6YlZ<+XZca;D+iE!8lFe#o>cfMnE7!Z-|KA`z(| z^yS<2vZ3KWARsw9;fH63^GXG>lf zt#$j;DxI0EW<%Ex6WvrrJ_7PbFFrna^KB3Wzb>o)1*LRpuC7W%#L*|W03b8k{<$rL b*mHgXy(JbEMEOF?00000NkvXXu0mjfHPt#X diff --git a/newtiles/log4.png b/newtiles/log4.png index da2425c5166c023c05f32575653211b4343176a8..4159a76dffd25dc59a9e83330730ec629cd15223 100644 GIT binary patch delta 819 zcmV-31I+x~1=V35$MOr(;-TMG!AV9(t(F0 zoD!tN3@IE&3AEOK2x*y|*u~N#TCxB6d79@V{7B-L3|bqcb5y1)NLA4JbDOXVLWhjv zoNU{XB_li`X{>3*^_4CqA?S6+grfrETV#4;AIMZgUeFG7B zSkKY9b(@X#t@m2^$h%N=h-6lQp z0reA?#J(qP-|tKld~*5#t&LnJU4!PYH;5i;;O$5``o=XOL~*zOAL?dF?kffk+42AY002ovPDHLkV1n+xj1~X@ delta 719 zcmV;=0xuu)J5r-W!gP*8vn zLQqm5B#L}E3JUlLkb)|pARysba-q$!8+Lq-?XhPlf&#C4#eeU055a$N9DCCDIu5>c zrlT}`6}mqd2@%RXKQZ*Ad7gKBA$V{#SUPvwvTRi;S(NYI_ug!fFNfK1B#s&RtKH`P zMYVkY+RRkoxE|vis)}LVooZc~ABQ*^6g1A{-+||Och3hHlC|FU(%CcZPMcYl(WNeO z1je73zSs>)A%A`fl@}!jfce0EdT(j@(LDfYdJg8S2E%Pin>KZuRT5UJe0=A^jY)Q@ z(i5wd+HGlKvz$}C2|xvwAE@>H5gT6%gvHh z*V+(97=Qk<6Yl*M#Il$RraR@QQfX{OBjL9?m|CN~UwOs*{b3R(cEkSO+k5#*422*v zFGB2Ey6nyb zr~m)~=Sf6CR5;6}(>+fVQ5ePX|GhJ_GsDWu0zr+~`4#Lf_+T~?3qxUTqrng?DJ-?M zF|ja4Fd!^!b{A%M=l%WOYhg?zMj?1Uz%M6xo`Z>Zw)l@oV!dQeceig2nAXsi?M<7= z$@(x>>W&&>PB_LV>vU*u?gMra)qb_Q7Y!-Z7bN!OS> zy8YxzAf(VUY88`~0wY3>l27b6%!zg-?D-~s{q&zeOsOsyRTWu(6);xE3@jf+L>6RiL#`t-6%gq@V-ryb3rlHWOzNgxY&=Jh zRAI)8%}ano?ahdPOi1hmOoc)jiKW1?C*;>`*&wp*l&dAdmid%G7XGDdKyHFC*CnsWo5y@H}MGs5sgfSeFBAz z1<}A66DKg!O!1KnG!WKNaCc^>d%CB)>-tw22wuR^-IISD4u2dnpH0YlLN5#b?&X7X zfSfUUd-fi>z-5(({c?Q99y(|PqZ|l+jEnhfB4zO(V6|Jz=8Ha+sR$%Ko8FUx{|nTr z>x#ibAc_YPWYUjc+~$n#1PX*rsbRJiestrS)qd>CN7FkyL6>}op|w2#S#7@_g>R9j zJ#y*!)B8I{qkpemZJlYcsaYc_e=k2RNrejEzCQd5h%o^qMrnm>6a5lu@a$Mu$P%@2 zKAQmi3C!RkCYw8q*au^iZ&}YX4}hn3b48VJULC@3h`Q)v@&mdqnJRBB1cHzWaT4(Y z1Hm^Z&6DZfUqGldWaA3g!;o?!2$XZfqGf(HYK~Q#6k%TH`#*m`LkL1;C?YF}RNRR$ zWOL$Iy=WuBZL{hxqE^MS-~9L++q=mI7mE?!c2;X)yg}|+WThC}wk4(9wAF`Zag~oh eAFUrA-1-hxkMv~$o?iO^0000giETsNB{Nh>FkH%Af(#2ao^wwE32aJ@Y zYb)|PBDNOyr+{+^(yfQg7c%cxYKM=Vkg(q6P)U?Yh@B>sV1z{&eHM0t^yO31(lThG zoLU3~Zl95IG%e6LT2dluXl;q9&j{o^+32RLGXifp>o$5qrdzNIWn&UKCvhPiXE3gz zmJ6ES8@S>2CSz59FfhfJaBhbjb!&<;rT{!CQH{llh*JT0HI)g_f%?_$z~$6(<#3R+ zEm0Oxg=2*k2nnrH@o53HLo qR28)e@H^j`=S%pVj3VxU{Q)>W5pf^c-FyH5002ovPDHK)LSTY3Uk3*O delta 475 zcmV<10VMv>1nL8j8Gix*005AYXf^-<010qNS#tmY4#WTe4#WYKD-Ig~000McNliru z*a;B_Ckvlc8vy_S0f|XOK~yNum6AJalu;0d=bSm`yJQpBP2;Z;6dRlU2?6~9iWX+m zBt<&yl>8ZMK@cHD5HDdb-~BtcnMomNiny#(KhOIz%mDn)oPRCmxI2Aueq@!x-LrE5 z239*}gXZh8s=3kI(LA?ji}{yy6@k=5hH~82kZ0!2;t2&EZR8mQ7`HVT)GtpT=3GXI zP#C9TXNOJE{d4ITCy!=);L2D$n60>J?HDC$l)HtK*H5QrpA22{cVZ`q%UA_PPWwBA z5AU8=sji{B+<*Hvk)q9dJrD=i_L+o)1-dOX)I5%SM$tpZ--#v~l2MQxShl)&7g z)%&;4sP{`(MI<9;jWsi=2m+F{PsBdNzrw5I$JMX;-r+u3^gu!Yq@0eUI4j7)tjVW@ ze{NYw8BC}S!aA=gBhyz*?xv(GYxzyG9iZ)l|_Y=zt7k)LUyizx8)=nfo1E9Y4KP(H4$*@;T#dcEyEDLAN<>PPlTV zf6G$mQ|0Uvw?6XYRq|^S`bP0l+XkKvO^}q literal 0 HcmV?d00001 diff --git a/oldblank.bmp b/oldblank.bmp deleted file mode 100644 index ba9c8fd4f46a77c24206feec177ad4ce7276e88a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 pcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;wh`=a08UiCb1ORN50|x*A diff --git a/pfall.bmp b/pfall.bmp deleted file mode 100644 index f4116e8b2ba3d9859aae747b06e7f23eb26f6838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 zcmdszF%p9?3Pk)af2Sd;*W?)Vxi@MYI4i#0G@{Q}Hgg5G_g!;i*J+%evq^V;`_j z*t_Y76CCsh$a(+odTx077B9xauFr2F>5O3)9h=3WECQ|uhKoy}h^(3@ke*^_(OL9b zh4Jh48*ffYrk<2aGUY{uD4p0(GYTr99LLBo0?q4f*qey9F_oaw#MZw5A(9N$h*l%~ j;p!G;n*&x~KO8;E&y!d9q?4(4LUFOR34hp4^)5Xev( diff --git a/player.bmp b/player.bmp deleted file mode 100644 index 829f2a3363fca0086f4a0c81a05e3348fc6026f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374 zcmcJNI}*Y$3!$&t=8QYQAd}St#d8= zan54pL@&K!*X5$zILB|VCH!lqjZW)36)W|%!xK7-R%l}dK}`W?+s6)rPv*n m_f33eB!$REnVzv`XFOw-o3^MLgr5jv?Y1kW;+IADPw@j@zh4Ug diff --git a/rc.c b/rc.c index 6509bfa..587e0f6 100644 --- a/rc.c +++ b/rc.c @@ -59,6 +59,7 @@ int fpsstart = 0; int curworld = 1; int curlevelnum; +int skipto = -1; // which level to skip to level_t *curlevel; int levelcompletetime = -1; @@ -71,6 +72,7 @@ sprite_t *lastsprite; SDL_Color red = {255, 0, 0, 0}; SDL_Color black = {0, 0, 0, 0}; SDL_Color blue = {0, 0, 255, 0}; +SDL_Color cyan = {0, 255, 255, 0}; SDL_Color white = {255, 255, 255, 0}; SDL_Color green = {0, 255, 0, 0}; SDL_Color yellow = {255, 255, 0, 0}; @@ -107,8 +109,8 @@ int main (int argc, char **argv) { usage(); exit(1); } - curlevelnum = atoi(argv[i]); - printf("Skipping to level %d.\n",curlevelnum); + skipto = atoi(argv[i]); + printf("Skipping to level %d.\n",skipto); } else { usage(); exit(1); @@ -132,6 +134,12 @@ int main (int argc, char **argv) { screen = SDL_SetVideoMode(640,480,16,SDL_SWSURFACE|SDL_DOUBLEBUF|vidargs); #endif + + if (!screen) { + printf("Failed to open OpenGL window: %s\n", SDL_GetError()); + exit(1); + } + srand(time(NULL)); if (loadimagesets()) { @@ -144,13 +152,22 @@ int main (int argc, char **argv) { return 1; } + // is we're skipping to a level, do so now + if (skipto >= 0) { + for (i = 0; i < numlevels; i++) { + if (levelentry[i].id == skipto) { + curlevelnum = i; + } + } + } + fakeblock.id = T_LAND; strcpy(fakeblock.name,"Fake"); for (i = 0; i < TILEW; i++) { fakeblock.lowness[i] = 0; } fakeblock.solid = S_SOLID; - fakeblock.img[0] = IMG_Load("land.bmp"); + fakeblock.img[0] = IMG_Load("newtiles/land.png"); fakeblock.numframes = 1; fakeblock.next = NULL; fakeblock.prev = NULL; @@ -158,7 +175,7 @@ int main (int argc, char **argv) { /* load fonts */ TTF_Init(); - sprintf(filename, "verdana.ttf"); + sprintf(filename, "gamefont.ttf"); for (i = 1; i < MAXLETTERHEIGHT; i++) { font[i] = TTF_OpenFont(filename,i); if (!font[i]) { @@ -222,8 +239,8 @@ int main (int argc, char **argv) { /* check for end of level */ if (levelcomplete == LV_CLEAR) { - addtext(318,242,32,"Level Complete!",&black,LEVELDELAY); - addtext(320,240,32,"Level Complete!",&yellow,LEVELDELAY); + + addoutlinetext(320,240,TEXTSIZE_LEVEL,"Level Complete!",&green,&black,LEVELWINDELAY); levelcomplete = LV_WAIT; playfx(FX_WINLEVEL); } else if (levelcomplete == LV_WAIT) { @@ -507,9 +524,13 @@ int main (int argc, char **argv) { drawnetting(player); - /* draw player */ + /* draw non-puff sprites */ for (s = sprite ; s ; s = s->next) { - drawsprite(s); + if (s->id != P_PUFF) drawsprite(s); + } + /* draw puffs sprites */ + for (s = sprite ; s ; s = s->next) { + if (s->id == P_PUFF) drawsprite(s); } /* draw text */ drawtext(); @@ -574,7 +595,7 @@ void tick(void) { s->angry = B_TRUE; } } - addtext(320,240,TEXTSIZE_HURRY, "Hurry up!", &yellow,HURRYDELAY); + addoutlinetext(320,240,TEXTSIZE_HURRY, "Hurry up!", &yellow,&black,HURRYDELAY); stopmusic(); Mix_PlayChannel(CH_HURRYUP, sfx[FX_HURRYUP], 0); @@ -582,7 +603,7 @@ void tick(void) { } else if (gtime == nexthurryup + 10) { if (!levelcomplete) { addsprite(P_CLOUD, 320,240,"cloud"); - addtext(320,240,TEXTSIZE_HURRY, "Too slow!", &red,HURRYDELAY); + addoutlinetext(320,240,TEXTSIZE_HURRY, "Too slow!", &red,&black,HURRYDELAY); playfx(FX_TOOSLOW); } } @@ -622,8 +643,6 @@ void tick(void) { void nextlevel(void) { char msg[SMALLBUFLEN]; - SDL_Surface *tempt; - int wid; // remove the player removesprite(player); @@ -656,21 +675,11 @@ void nextlevel(void) { level->gotpowerup = B_FALSE; sprintf(msg, "Level %d-%d",curworld, curlevelnum); - // calc width - tempt = TTF_RenderText_Solid(font[32], msg, black); - wid = tempt->w; - addtext(318,240-18+2,32,msg,&black,LEVELDELAY); - addtext(320,240-18,32,msg,&red,LEVELDELAY); - SDL_FreeSurface(tempt); + addoutlinetext(320,240-18,TEXTSIZE_LEVEL,msg,&red,&black,LEVELDELAY); sprintf(msg, "%s", curlevel->name); - // calc width - tempt = TTF_RenderText_Solid(font[22], msg, black); - wid = tempt->w; - addtext(319,240+18+1,22,msg,&black,LEVELDELAY); - addtext(320,240+18,22,msg,&blue,LEVELDELAY); - SDL_FreeSurface(tempt); + addoutlinetext(320,240+18,TEXTSIZE_LEVEL2,msg,&cyan,&black,LEVELDELAY); /* reset player stats */ player->netting = B_FALSE; @@ -736,8 +745,13 @@ void die(sprite_t *s) { } if (s == player) { + int tnum; /* play sound */ playfx(FX_DIE); + + // draw text + tnum = rand() % MAXDEATHTEXT; + addoutlinetext(player->x,player->y,TEXTSIZE_DEATH,deathtext[tnum],&red,&black,DIEDELAY); } /* release anything we've caught */ @@ -837,6 +851,8 @@ void checkcollide(sprite_t *s) { s2->willbecome = P_DIAMOND; playfx(FX_KILL); + sprintf(tempm, bifftext[rand() % MAXBIFFTEXT]); + addoutlinetext(s2->x,s2->y - s->img->h/2, TEXTSIZE_BIFF, tempm,&red,&yellow,POINTSDELAY); keepchecking = B_FALSE; } else { @@ -883,7 +899,7 @@ void checkcollide(sprite_t *s) { if (!dofruiteffect(s2)) { playfx(FX_FRUIT); sprintf(tempm, "%d", gotscore); - addtext(s2->x,s2->y - s2->img->h/2, TEXTSIZE_POINTS, tempm, &white,POINTSDELAY); + addoutlinetext(s2->x,s2->y - s2->img->h/2, TEXTSIZE_POINTS, tempm, &white,&black,POINTSDELAY); } } else if (ismonster(s2->id) || isbullet(s2->id)) { if (!s->invuln) { @@ -1666,7 +1682,7 @@ void dotileeffects(sprite_t *s) { if (!s->teleporting) { playfx(FX_TELEPORT); s->teleporting = 1; - } + } } } } @@ -1690,7 +1706,7 @@ void dotileeffects(sprite_t *s) { } finished = B_TRUE; } else if (tt->spikes) { - if (!isfruit(s->id)) { + if (!isfruit(s->id) && !iseffect(s->id) && !isbullet(s->id)) { if (!s->invuln) { if (s->id != P_CLOUD) { die(s); @@ -1743,11 +1759,11 @@ void dotileeffects(sprite_t *s) { // initial transition to a new level void drawlevel(void) { int x,y; - int dstx,dsty,xdis,ydis,dis; + int dstx,dsty,xdis,ydis; int turns; - int pspeed; + double pxspeed,pyspeed; SDL_Rect area,dst; - int speed = TILEW; + int speed = 8; SDL_Surface *playerbg; /* TODO: chekc for memory leak here with temps - @@ -1788,42 +1804,40 @@ void drawlevel(void) { // figure out distance to newposition xdis = player->x - dstx; if (xdis < 0) xdis = -xdis; ydis = player->y - dsty; if (ydis < 0) ydis = -ydis; - if (xdis > ydis) dis = xdis; - else dis = ydis; // figure out how many loops it will take to scroll to the next level switch (oldexitdir) { case D_LEFT: case D_RIGHT: - turns = 640 / TILEW; + turns = 640 / speed; break; case D_UP: case D_DOWN: default: - turns = 480 / TILEH; + turns = 480 / speed; break; } - turns -= 4; // just to be safe + turns -= 2; // just to be safe // figure out how fast player needs to move to get there in time - pspeed = dis / turns; - - + pxspeed = ceil((double)xdis / (double)turns); if (pxspeed < 1) pxspeed = 1; + pyspeed = ceil((double)ydis / (double)turns); if (pyspeed < 1) pyspeed = 1; + if (oldexitdir == D_LEFT) { // blit a column at a time to the real screen, shuffling // the real one along. for (x = 0; x < 640; x += speed) { // move player - movetostart(player,dstx,dsty,pspeed); + movetostart(player,dstx,dsty,pxspeed,pyspeed); // shuffle real screen area.x = 0; area.y = 0; - area.w = 640-TILEW; + area.w = 640-speed; area.h = 480; - dst.x = TILEW; + dst.x = speed; dst.y = 0; dst.w = 0; dst.h = 0; @@ -1832,11 +1846,9 @@ void drawlevel(void) { // blit next column from temp surface (take last column first) area.x = 640-x; area.y = 0; - area.w = TILEW; + area.w = speed; area.h = 480; - - dst.x = 0; dst.y = 0; dst.w = 0; @@ -1850,7 +1862,9 @@ void drawlevel(void) { drawsprite(player); // update screen + SDL_GL_SwapBuffers(); SDL_UpdateRect(screen, 0,0,640,480); + SDL_framerateDelay(&manager); // remove player area.x = player->x - player->img->w/2; @@ -1864,16 +1878,16 @@ void drawlevel(void) { // the real one along. for (y = 0; y < 480; y += speed) { // move player - movetostart(player,dstx,dsty,pspeed); + movetostart(player,dstx,dsty,pxspeed,pyspeed); // shuffle real screen area.x = 0; area.y = 0; area.w = 640; - area.h = 480-TILEH; + area.h = 480-speed; dst.x = 0; - dst.y = TILEH; + dst.y = speed; dst.w = 0; dst.h = 0; SDL_BlitSurface(screen, &area, screen, &dst); @@ -1882,7 +1896,7 @@ void drawlevel(void) { area.x = 0; area.y = 480-y; area.w = 640; - area.h = TILEH; + area.h = speed; dst.x = 0; dst.y = 0; @@ -1897,7 +1911,9 @@ void drawlevel(void) { drawsprite(player); // update screen + SDL_GL_SwapBuffers(); SDL_UpdateRect(screen, 0,0,640,480); + SDL_framerateDelay(&manager); // remove player area.x = player->x - player->img->w/2; @@ -1911,13 +1927,13 @@ void drawlevel(void) { // the real one along. for (y = 0; y < 480; y += speed) { // move player - movetostart(player,dstx,dsty,pspeed); + movetostart(player,dstx,dsty,pxspeed,pyspeed); // shuffle real screen area.x = 0; - area.y = TILEH; + area.y = speed; area.w = 640; - area.h = 480-TILEH; + area.h = 480-speed; dst.x = 0; dst.y = 0; @@ -1929,10 +1945,10 @@ void drawlevel(void) { area.x = 0; area.y = y; area.w = 640; - area.h = TILEH; + area.h = speed; dst.x = 0; - dst.y = 480-TILEH; + dst.y = 480-speed; dst.w = 0; dst.h = 0; SDL_BlitSurface(temps, &area, screen, &dst); @@ -1944,7 +1960,9 @@ void drawlevel(void) { drawsprite(player); // update screen + SDL_GL_SwapBuffers(); SDL_UpdateRect(screen, 0,0,640,480); + SDL_framerateDelay(&manager); // remove player area.x = player->x - player->img->w/2; @@ -1953,18 +1971,17 @@ void drawlevel(void) { area.h = 0; SDL_BlitSurface(playerbg, NULL, screen, &area ); } - } else { // right, or default + } else { // RIGHT right, or default // blit a column at a time to the real screen, shuffling // the real one along. for (x = 0; x < 640; x += speed) { - // move player - movetostart(player,dstx,dsty,pspeed); + movetostart(player,dstx,dsty,pxspeed,pyspeed); // shuffle real screen - area.x = TILEW; + area.x = speed; area.y = 0; - area.w = 640-TILEW; + area.w = 640-speed; area.h = 480; dst.x = 0; @@ -1976,10 +1993,10 @@ void drawlevel(void) { // blit next column from temp surface (take last column first) area.x = x; area.y = 0; - area.w = TILEW; + area.w = speed; area.h = 480; - dst.x = 640-TILEW; + dst.x = 640-speed; dst.y = 0; dst.w = 0; dst.h = 0; @@ -1992,7 +2009,9 @@ void drawlevel(void) { drawsprite(player); // update screen + SDL_GL_SwapBuffers(); SDL_UpdateRect(screen, 0,0,640,480); + SDL_framerateDelay(&manager); // remove player area.x = player->x - player->img->w/2; @@ -2111,7 +2130,7 @@ void drawscore(void) { sprintf(tempm, "%d",player->score); /* shadow */ - score = TTF_RenderText_Solid(font[14], tempm, black); + score = TTF_RenderText_Solid(font[TEXTSIZE_SCORE], tempm, black); area.x = 18; area.y = 7; area.w = 0; @@ -2119,7 +2138,7 @@ void drawscore(void) { SDL_BlitSurface(score, NULL, screen, &area); SDL_FreeSurface(score); /* score */ - score = TTF_RenderText_Solid(font[14], tempm, green); + score = TTF_RenderText_Solid(font[TEXTSIZE_SCORE], tempm, red); area.x = 20; area.y = 5; area.w = 0; @@ -2141,6 +2160,21 @@ void drawtext(void) { } t->img = TTF_RenderText_Solid(font[t->size], t->txt, *t->c); + // make sure it's on the screen (leave space for border) + if (t->x - (t->img->w / 2) < 2) { // left + t->x = 2 + (t->img->w/2); + } + if (t->x + (t->img->w / 2) > 640-2) { // right + t->x = 640-2 - (t->img->w/2); + } + if (t->y - (t->img->h / 2) < 2) { // top + t->y = 2 + (t->img->h/2); + } + if (t->y + (t->img->h / 2) > 480-2) { // bottom + t->y = 480-2 - (t->img->h/2); + } + + /* get bg */ t->bgarea.x = t->x - t->img->w/2; t->bgarea.y = t->y - t->img->h/2; @@ -2508,8 +2542,10 @@ void dogravity(sprite_t *s) { attop = B_TRUE; } - if (isonground(s)) { + //if (isonground(s)) { + if (isongroundpoint(s, s->x, s->y)) { if (!isongroundpoint(s, s->x, s->y-1)) { + attop = B_TRUE; attop = B_TRUE; } } @@ -2742,7 +2778,7 @@ void dogravity(sprite_t *s) { } if (pointsinc > 250) { sprintf(tempm, "%d",pointsinc); - addtext(xnet,ynet-TILEH, psize, tempm, &white,POINTSDELAY); + addoutlinetext(xnet,ynet-TILEH, psize, tempm, &white,&black,POINTSDELAY); /* give points to player */ s->score += pointsinc; } @@ -2846,7 +2882,7 @@ int dofruiteffect(sprite_t *s) { if (s->id == P_SPEED) { playfx(FX_POWERUP); player->speed = 2; - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, "Speed up!", &white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, "Speed up!", &white,&black,POINTSDELAY); return B_TRUE; } else if (s->id == P_NUMNETS) { playfx(FX_POWERUP); @@ -2854,32 +2890,32 @@ int dofruiteffect(sprite_t *s) { player->netmax++; } sprintf(tempm, "%d nets!",player->netmax); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); return B_TRUE; } else if (s->id == P_BIGNET) { playfx(FX_POWERUP); player->netbig = B_TRUE; sprintf(tempm, "Big net!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); return B_TRUE; } else if (s->id == P_MACEPOWERUP) { playfx(FX_POWERUP); player->powerup = PW_MACE; sprintf(tempm, "Mace Slam!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); return B_TRUE; } else if (s->id == P_BOXING) { playfx(FX_POWERUP); player->powerup = PW_BOXING; sprintf(tempm, "Boxing Glove!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); return B_TRUE; } else if (s->id == P_FTODIAMOND) { sprite_t *s2, *nexts; // convert all flowers to diamonds playfx(FX_MORPH); sprintf(tempm, "Make diamonds!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); for (s2 = sprite; s2 ; s2 = nexts) { nexts = s2->next; if (isflower(s2->id)) { @@ -2903,7 +2939,7 @@ int dofruiteffect(sprite_t *s) { // convert all flowers to gems playfx(FX_MORPH); sprintf(tempm, "Make gems!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); for (s2 = sprite; s2 ; s2 = nexts) { nexts = s2->next; if (isflower(s2->id)) { @@ -2962,8 +2998,8 @@ int dofruiteffect(sprite_t *s) { // kill all monsters playfx(FX_BOOM); - sprintf(tempm, "BOMB!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + sprintf(tempm, "KABOOM!!"); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_BOMB, tempm,&red,&yellow,POINTSDELAY); for (s2 = sprite; s2 ; s2 = nexts) { nexts = s2->next; if (isbullet(s2->id)) { @@ -2977,7 +3013,7 @@ int dofruiteffect(sprite_t *s) { } else if (s->id == P_SHIELD) { playfx(FX_POWERUP); sprintf(tempm, "Shield!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY); // temp invincibility player->invuln = SHIELDTIME; @@ -2985,7 +3021,8 @@ int dofruiteffect(sprite_t *s) { return B_TRUE; } else if (s->id == P_HELP) { playfx(FX_POWERUP); - addtext(320,240,TEXTSIZE_HELP, s->name, &white,HELPDELAY); + // TODO: move other HELP text around if need be! + addoutlinetext(320,240,TEXTSIZE_HELP, s->name, &white,&black,HELPDELAY); return B_TRUE; } else if (isflower(s->id)) { int xx; @@ -3030,7 +3067,7 @@ int dofruiteffect(sprite_t *s) { } playfx(FX_BONUS); sprintf(tempm, "BONUS!"); - addtext(s->x,s->y - s->img->h/2, TEXTSIZE_BONUS, tempm,&white,BONUSDELAY); + addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_BONUS, tempm,&white,&black,BONUSDELAY); return B_TRUE; } } @@ -3176,21 +3213,21 @@ void channeldone(int channel) { // move player towards new position -void movetostart(sprite_t *p, int dstx, int dsty, int speed) { +void movetostart(sprite_t *p, int dstx, int dsty, double xspeed, double yspeed) { if (p->x < dstx) { - p->x += speed; + p->x += xspeed; if (p->x > dstx) p->x = dstx; } if (p->x > dstx) { - p->x -= speed; + p->x -= xspeed; if (p->x < dstx) p->x = dstx; } if (p->y < dsty) { - p->y += speed; + p->y += yspeed; if (p->y > dsty) p->y = dsty; } if (p->y > dsty) { - p->y -= speed; + p->y -= yspeed; if (p->y < dsty) p->y = dsty; } } @@ -3213,6 +3250,7 @@ SDL_Surface *grabbehind(sprite_t *s, SDL_Surface *surf) { int randompowerup(void) { int num; num = rand() % 9; + return P_BOXING; switch (num) { case 0: @@ -3255,3 +3293,15 @@ void dumpsprites(void) { printf("Total monsters: %d\n",mcount); printf("\n\n"); } + +void addoutlinetext(int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol, int delay) { + addtext(x-1,y,size,msg,bgcol,delay); // outline + addtext(x-1,y-1,size,msg,bgcol,delay); // outline + addtext(x,y-1,size,msg,bgcol,delay); // outline + addtext(x+1,y-1,size,msg,bgcol,delay); // outline + addtext(x+1,y,size,msg,bgcol,delay); // outline + addtext(x+1,y+1,size,msg,bgcol,delay); // outline + addtext(x,y+1,size,msg,bgcol,delay); // outline + addtext(x-1,y+1,size,msg,bgcol,delay); // outline + addtext(x,y,size,msg,col,delay); // main text +} diff --git a/rc.h b/rc.h index 0a1ed38..1870731 100644 --- a/rc.h +++ b/rc.h @@ -1,5 +1,6 @@ void cleanup(void); int addtext(int x, int y, int size, char *string, SDL_Color *c, int delay); +void addoutlinetext(int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol, int delay); void drawscore(void); void drawtext(void); void movetext(void); @@ -39,7 +40,7 @@ void playfx(int num); void playmusic(Mix_Music *toplay); void stopmusic(void); void channeldone(int channel); -void movetostart(sprite_t *p, int dstx, int dsty, int speed); +void movetostart(sprite_t *p, int dstx, int dsty, double xspeed,double yspeed); SDL_Surface *grabbehind(sprite_t *s, SDL_Surface *surf); int randompowerup(void); void dumpsprites(void); diff --git a/right.bmp b/right.bmp deleted file mode 100644 index 4702df3c41354f5f18baba584b8082299141d0ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyalMKco=Qxg5 FE&x+r^gjRq diff --git a/shared.c b/shared.c index 38fc0c6..35707ed 100644 --- a/shared.c +++ b/shared.c @@ -71,7 +71,7 @@ int loadlevel(int wnum, int lnum) { if (level->animtiles) free(level->animtiles); - level->id = 0; + level->id = levelentry[lnum].id; //sprintf(level->name, "Level %d-%d",wnum,lnum); sprintf(level->name, "\"%s\"",levelentry[lnum].desc); level->prev = NULL; @@ -990,44 +990,44 @@ int loadimagesets(void) { loadspriteimage(P_PLAYER,F_SLAM5, "sprites/dslam5.png"); imageset[P_PLAYER].numimages = 16; - loadspriteimage(P_SNAKE,F_WALK1, "sprites/snake.bmp"); - loadspriteimage(P_SNAKE,F_JUMP, "sprites/snakejump.bmp"); - loadspriteimage(P_SNAKE,F_FALL, "sprites/snakejump.bmp"); - loadspriteimage(P_SNAKE,F_CAUGHT, "sprites/snakecaught.bmp"); - loadspriteimage(P_SNAKE,F_DEAD, "sprites/snakedead.bmp"); + loadspriteimage(P_SNAKE,F_WALK1, "sprites/snake.png"); + loadspriteimage(P_SNAKE,F_JUMP, "sprites/snakejump.png"); + loadspriteimage(P_SNAKE,F_FALL, "sprites/snakejump.png"); + loadspriteimage(P_SNAKE,F_CAUGHT, "sprites/snakecaught.png"); + loadspriteimage(P_SNAKE,F_DEAD, "sprites/snakedead.png"); /* next 3 are auto generated */ imageset[P_SNAKE].numimages = 8; - loadspriteimage(P_RAT,F_WALK1, "sprites/rat.bmp"); - loadspriteimage(P_RAT,F_JUMP, "sprites/ratjump.bmp"); - loadspriteimage(P_RAT,F_FALL, "sprites/ratjump.bmp"); - loadspriteimage(P_RAT,F_CAUGHT, "sprites/ratcaught.bmp"); - loadspriteimage(P_RAT,F_DEAD, "sprites/ratdead.bmp"); + loadspriteimage(P_RAT,F_WALK1, "sprites/rat.png"); + loadspriteimage(P_RAT,F_JUMP, "sprites/ratjump.png"); + loadspriteimage(P_RAT,F_FALL, "sprites/ratjump.png"); + loadspriteimage(P_RAT,F_CAUGHT, "sprites/ratcaught.png"); + loadspriteimage(P_RAT,F_DEAD, "sprites/ratdead.png"); /* next 3 are auto generated */ imageset[P_RAT].numimages = 8; - loadspriteimage(P_BEE,F_WALK1, "sprites/bee.bmp"); - loadspriteimage(P_BEE,F_JUMP, "sprites/beejump.bmp"); - loadspriteimage(P_BEE,F_FALL, "sprites/beejump.bmp"); - loadspriteimage(P_BEE,F_CAUGHT, "sprites/beecaught.bmp"); - loadspriteimage(P_BEE,F_DEAD, "sprites/beedead.bmp"); + loadspriteimage(P_BEE,F_WALK1, "sprites/newbee.png"); + loadspriteimage(P_BEE,F_JUMP, "sprites/newbeejump.png"); + loadspriteimage(P_BEE,F_FALL, "sprites/newbeejump.png"); + loadspriteimage(P_BEE,F_CAUGHT, "sprites/newbeecaught.png"); + loadspriteimage(P_BEE,F_DEAD, "sprites/newbeedead.png"); /* next 3 are auto generated */ imageset[P_BEE].numimages = 8; - loadspriteimage(P_SPIDER,F_WALK1, "sprites/spider.bmp"); - loadspriteimage(P_SPIDER,F_JUMP, "sprites/spiderjump.bmp"); - loadspriteimage(P_SPIDER,F_FALL, "sprites/spiderfall.bmp"); - loadspriteimage(P_SPIDER,F_CAUGHT, "sprites/spidercaught.bmp"); - loadspriteimage(P_SPIDER,F_DEAD, "sprites/spiderdead.bmp"); + loadspriteimage(P_SPIDER,F_WALK1, "sprites/spider.png"); + loadspriteimage(P_SPIDER,F_JUMP, "sprites/spiderjump.png"); + loadspriteimage(P_SPIDER,F_FALL, "sprites/spiderfall.png"); + loadspriteimage(P_SPIDER,F_CAUGHT, "sprites/spidercaught.png"); + loadspriteimage(P_SPIDER,F_DEAD, "sprites/spiderdead.png"); /* next 3 are auto generated */ imageset[P_SPIDER].numimages = 8; - loadspriteimage(P_CLOUD,F_WALK1, "sprites/cloud.bmp"); - loadspriteimage(P_CLOUD,F_JUMP, "sprites/cloud.bmp"); - loadspriteimage(P_CLOUD,F_FALL, "sprites/cloud.bmp"); - loadspriteimage(P_CLOUD,F_CAUGHT, "sprites/cloud.bmp"); - loadspriteimage(P_CLOUD,F_DEAD, "sprites/cloud.bmp"); + loadspriteimage(P_CLOUD,F_WALK1, "sprites/cloud.png"); + loadspriteimage(P_CLOUD,F_JUMP, "sprites/cloud.png"); + loadspriteimage(P_CLOUD,F_FALL, "sprites/cloud.png"); + loadspriteimage(P_CLOUD,F_CAUGHT, "sprites/cloud.png"); + loadspriteimage(P_CLOUD,F_DEAD, "sprites/cloud.png"); imageset[P_CLOUD].numimages = 2; loadspriteimage(P_COKE,F_WALK1, "sprites/coke.png"); @@ -1038,28 +1038,28 @@ int loadimagesets(void) { imageset[P_COKE].numimages = 8; /* fruits / powerups */ - loadspriteimage(P_CHEESE,F_WALK1, "sprites/cheese.bmp"); + loadspriteimage(P_CHEESE,F_WALK1, "sprites/cheese.png"); imageset[P_CHEESE].numimages = 1; - loadspriteimage(P_ICECREAM,F_WALK1, "sprites/icecream.bmp"); + loadspriteimage(P_ICECREAM,F_WALK1, "sprites/icecream.png"); imageset[P_ICECREAM].numimages = 1; - loadspriteimage(P_CHIPS,F_WALK1, "sprites/chips.bmp"); + loadspriteimage(P_CHIPS,F_WALK1, "sprites/chips.png"); imageset[P_CHIPS].numimages = 1; - loadspriteimage(P_BURGER,F_WALK1, "sprites/burger.bmp"); + loadspriteimage(P_BURGER,F_WALK1, "sprites/burger.png"); imageset[P_BURGER].numimages = 1; - loadspriteimage(P_SPEED,F_WALK1, "sprites/speed.bmp"); + loadspriteimage(P_SPEED,F_WALK1, "sprites/speed.png"); imageset[P_SPEED].numimages = 1; - loadspriteimage(P_NUMNETS,F_WALK1, "sprites/numnets.bmp"); + loadspriteimage(P_NUMNETS,F_WALK1, "sprites/numnets.png"); imageset[P_NUMNETS].numimages = 1; - loadspriteimage(P_BIGNET,F_WALK1, "sprites/bignet.bmp"); + loadspriteimage(P_BIGNET,F_WALK1, "sprites/bignet.png"); imageset[P_BIGNET].numimages = 1; - loadspriteimage(P_HELP,F_WALK1, "sprites/help.bmp"); + loadspriteimage(P_HELP,F_WALK1, "sprites/help.png"); imageset[P_HELP].numimages = 1; loadspriteimage(P_FLOWERYELLOW,F_WALK1, "sprites/flower-yellow.png"); @@ -1119,7 +1119,7 @@ int loadimagesets(void) { imageset[P_PUFF].numimages = PUFFFRAMES; /* bullets */ - loadspriteimage(P_SPIT,F_WALK1, "sprites/spit.bmp"); + loadspriteimage(P_SPIT,F_WALK1, "sprites/spit.png"); imageset[P_SPIT].numimages = 1; @@ -1127,17 +1127,18 @@ int loadimagesets(void) { /* generate rotated/flipped images */ for (p = 0; p < MAXPTYPES; p++) { + int fr; + int angle = 90; /* rotated */ // TODO: need to free tempimg ? */ if (!isfruit(p) && !isbullet(p) && !iseffect(p)) { - tempimg = rotozoomSurface(imageset[p].img[F_DEAD],90,1,0); - imageset[p].img[F_DEAD2] = SDL_DisplayFormat(tempimg); - - tempimg = rotozoomSurface(imageset[p].img[F_DEAD],180,1,0); - imageset[p].img[F_DEAD3] = SDL_DisplayFormat(tempimg); - - tempimg = rotozoomSurface(imageset[p].img[F_DEAD],270,1,0); - imageset[p].img[F_DEAD4] = SDL_DisplayFormat(tempimg); + for (fr = F_DEAD2; fr <= F_DEAD4; fr++) { + if (!imageset[p].img[fr]) { + tempimg = rotozoomSurface(imageset[p].img[F_DEAD],angle,1,0); + imageset[p].img[fr] = SDL_DisplayFormat(tempimg); + } + angle += 90; + } } for (i = 0; i < imageset[p].numimages; i++) { @@ -1158,6 +1159,8 @@ int loadimagesets(void) { /* angry image */ + + // create semi-transparent red square reds = SDL_CreateRGBSurface(SDL_SWSURFACE, origi->w, origi->h, @@ -1166,21 +1169,29 @@ int loadimagesets(void) { SDL_FillRect(reds, NULL, SDL_MapRGB(reds->format, 255, 0, 0)); SDL_SetAlpha(reds, SDL_SRCALPHA,100); + // take a copy of the original image imageset[p].img[MAXFRAMES*2+i] = rotozoomSurfaceXY(origi, 0, 1,1,0); + // paste the transparent one on top of it SDL_BlitSurface(reds, NULL, imageset[p].img[MAXFRAMES*2+i], NULL); SDL_FreeSurface(reds); + // Convert the reddened image to the screen format temps = SDL_DisplayFormat(imageset[p].img[MAXFRAMES*2+i]); SDL_FreeSurface(imageset[p].img[MAXFRAMES*2+i]); imageset[p].img[MAXFRAMES*2+i] = temps; + // Make the background red bits completely transparent SDL_SetColorKey(imageset[p].img[MAXFRAMES*2+i], SDL_SRCCOLORKEY, SDL_MapRGB(imageset[p].img[MAXFRAMES*2+i]->format, 101, 0, 0)); /* flipped angry image */ + imageset[p].img[MAXFRAMES*3+i] = rotozoomSurfaceXY(imageset[p].img[MAXFRAMES*2+i], 0, -1,1,0); + + /* flipped angry image */ + /* reds = SDL_CreateRGBSurface(SDL_SWSURFACE, origi->w, origi->h, @@ -1201,6 +1212,7 @@ int loadimagesets(void) { SDL_SetColorKey(imageset[p].img[MAXFRAMES*3+i], SDL_SRCCOLORKEY, SDL_MapRGB(imageset[p].img[MAXFRAMES*3+i]->format, 101, 0, 0)); + */ } } @@ -1487,6 +1499,27 @@ int iseffect(int id) { return B_FALSE; } +#ifdef OPENGL +inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c) +{ + Uint8 *bufp; + + /* check x/y */ + if (x >= screen->w) return; + if (y >= screen->h) return; + if (x < 0) return; + if (y < 0) return; + +// bufp = (Uint16 *)screen->pixels + (y*screen->pitch / 2) + x; + + bufp = (Uint8 *)screen->pixels + y * screen->pitch + x * 4; + +// *bufp = SDL_MapRGB(screen->format, c.r, c.g, c.b); +*(Uint32 *)bufp = SDL_MapRGB(screen->format, c.r, c.g, c.b); +} + +#else + inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c) { @@ -1502,6 +1535,7 @@ inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c) *bufp = SDL_MapRGB(screen->format, c.r, c.g, c.b); } +#endif void drawline16(SDL_Surface *screen, int x1, int y1, int x2, int y2, SDL_Color c) { int deltax, deltay; @@ -1898,11 +1932,16 @@ int loadlevellist(void) { f = fopen("levels.dat","r"); // format is: // - // dummy,filename,description, + // id,filename,description, lev = 1; fgets(buf, BUFLEN, f); while (!feof(f)) { p = strtok(buf, ","); + if (!p) { + printf("invalid level id - line %d\n",lev); + return B_TRUE; + } + levelentry[lev].id = atoi(p); p = strtok(NULL, ","); if (!p) { printf("invalid level filename - line %d\n",lev); @@ -1920,8 +1959,9 @@ int loadlevellist(void) { fgets(buf, BUFLEN, f); } fclose(f); + numlevels = lev; - printf("Read %d levels.\n",lev); + printf("Read %d levels.\n",numlevels); return B_FALSE; } diff --git a/sky.bmp b/sky.bmp deleted file mode 100644 index 08b28e1b34a28c5a7ff1ddca09eb900bb1833c72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 ucmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyVk_|NoJQ3L(9iH*cEOJDB+(;&3rBbap!v4@;i-MW4W6VmtKR)y`pMW{{vVR1x$1Aj7|DK+ dUgm0^PqWPvgmWJ9_FnHflG)D2&71=NXI;9vfh7O{ diff --git a/slopeup.bmp b/slopeup.bmp deleted file mode 100644 index a65469e7c16bb066343c3726c37b4d2ab6066b01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcma)&K@NZ*3(^b diff --git a/sounds/splash.wav b/sounds/splash.wav index f0c56389af7ff6cf8e6482bfeac58b7694ca9e99..dd346aa2438e0c5b825c7422ea5c74100de301e3 100644 GIT binary patch literal 48214 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 xn0X}3Q0^-_?EJNMI;;VIKw}O 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 literal 24129 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 LFPxJd1|Rod3h(X* diff --git a/spikes.bmp b/spikes.bmp deleted file mode 100644 index d94d639300216f7aa35c56cfd5eec069551ec919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmchT!3}^Q3`H^CjYmgt0tVpjP7LQ>SX%fJi4e{w=o=kc6>bbooX#Lxs82C z_va!d2KSVbyp0GVM=&rgPoI7cYI%eh;!hs?LtrsDgZp%On23dlF;a3p}3njVQ%ts#Sg48)d4v^k=;?Z3A5V?&qADEw*yU-(t@VgJ;(sAa(Tc#MpFktlkQG=B+KXs}?YnWF+dsfRvJ4O@6 zoOftIY)FI~1MoRuYRvCJSAmSv*T+GFf1EI+j>}T{yJ9a>9&1aA`@{F_asZ4**0I3#T?4&@US zG9lFFT15##rUF0TP-QA}4Angk=!a6W)!|0VTFB#wgLM;UUjJ4bV3l4+2)G^lT&wvM9!Dq4x+2`-{h zRRfYz_2;9|c%#Q-BIJ6v5+k|=E5w-71V#sDPla}S7R{UqHQR96ISyE;3s)T5jtvNF lAj{tiG5NqCFd*O4)a%>;8kY`kA24njS0g&^m{x^W*S{*K6p;V` diff --git a/sprites/beedead.bmp b/sprites/beedead.bmp deleted file mode 100644 index e12f88fa7c66f7b2eabf26de87beb3117c867bee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1286 zcmb`G!4U#62t{#5J$iKZU;$QO0p9H?#aVzI#ScG;kSsSD!VrA?u$%SyI-kVsfq2Kd zVBN3|vLT9mjv{XqbuCtl)Ed1kkQR18_Ca9o_$i`qa_oaOmIpw~Czd-pW!V>`Qx>A; zPPY_+vm7FdR^Mg&kBSU;q^M}q{X46VC;e?9aRZ?4EW8JH_!!{8QV}c?b_5njgc(RN z+K1t0XzVnyiEi69g5063hf=O535$+^7v1Kp4g*~$y$pa$qcxDY#mMr4^^Vny?e@*<4zO=?_NT$a2gv!^AEF0~|J3CZnDt9#0To-V^--*40_O diff --git a/sprites/beejump.bmp b/sprites/beejump.bmp deleted file mode 100644 index 33470e3b50da8a274ba1f5bbd46cfcb312ec4a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2574 zcmeH`y%EAN424ArMM^FON6iEbK+jGdje;TACOrE|ief`JXlShSk1YFrb|ko5hn*BV zV?3cB(2wXF88M1Hwj%d|y#)H88AwT{DK&p>j#il|0fQTm z*|klbffYjDjeujTe6ph;cArcxJq{k`AQ}yU3`f5?*aJNS LJp(-hf6l-Yi-)FJ diff --git a/sprites/bignet.bmp b/sprites/bignet.bmp deleted file mode 100644 index c10e205258f1f9ef04e01df8c2647e71ea263d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyajmXdoH=|Ia`qf*1}|OpGmXWe^73 zg;*It1F@~eM diff --git a/sprites/bignet.png b/sprites/bignet.png new file mode 100644 index 0000000000000000000000000000000000000000..62953b4906b90cfcd18634b5b80d4af67ceb99f8 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#1{WizEQj6YDeXX^2u~Ns5RLOkgHH1uP~gyB_J3`irS%Mf_Wp-Qzp^Y;Z4L1{ zD9EAkTw{0Gg;oAr_HLJN0nh3tz#$xER`@4Uh-@O8?F)&0-@V?(p^XNj9qs z=I_Pb3pE~DL#wQWBmpd;9wa17pV^sktR^EY`pf$i0bhcY73}rZo_Ymv83s4T9u_UL XYL^ZACbq?GsY79pQ$k1rAlxM$GetjJ diff --git a/sprites/cheese.bmp b/sprites/cheese.bmp deleted file mode 100644 index 5833d3819e3401236b9f50412a54e7d662bc77c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyajmXdoYj1~UK=ktRSCV^vR*IY8@3 zQcsd%V*G;N!2kalkkOul3=o7Y2xkMOfB?>gFo1$^5lp?1h=VIYV?flyO@JtdkeEgx e>qS-xXCo_sYlq8XGLY2+*~9>d7GhM=MhyU@(C+yF diff --git a/sprites/chips.bmp b/sprites/chips.bmp deleted file mode 100644 index d231fee0f39cc86e8a9488409b1dfc2c6b30e0a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmcIh!4bnS2&313ug{Lq2{J(c*~!CouT+2`D!9+;Y@ZOq5a+dTS21ijpV;@gFY+*5 zkbmENyHL*|vRu^{G0aC>5SJKogc*dnHtqPUA02H5A0y{UQb#gBmlXcXzjz;i1YF2K zm^wJG)QjIdHt-nwR(@u!h6c`d?uDs4$=g!b{}nC1Jm_cWSyraU2eJ~*GKX`9-AsjS PV}5>ee0ye<1d@LMHdXlP diff --git a/sprites/cloud.bmp b/sprites/cloud.bmp deleted file mode 100644 index d48be1352cad3a744eba309109e74372dbf537cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4134 zcmd5+J5Iz<5DOOoN-9c30}>4fpyy5;jstN6FfsUfJ(JI_5D;yiJRXld2@y}vH<#0V zJ>tB@eTVxR_t|uXbDG{Rrs?&Z_e}iB@iJd0Msv8HZs%R+g*OFKHh{wqclY&&76%kS zjYRw=A8tlU64y9#Tp?vSOwJ5@K5oI4@2-{m0#E+;=LTJ?Ac?Q-uZKjzPZ1jNF4y1a&A-M!ZT_iVWbI6+HIfo2b(8 z_0q-8J9fj94n~$J(_snd>PSJ#vW^l2{aNs zO9uOS@P)QB;fsJ38Cu^D_xW#TN%^fA=>xGxqjsK;2wB^85*mt~3_NQ_`as-+XUw47 zW6dcjsjnu^%!VVqK{WCi`nLROG8#77P9d*GlB|5Y$EKJ95AAUnX$&BOy_AfmVIpP7 h`VE|wQ6*&x(8@HT?xs>BM*z74>=~1OkNAIRJ^*yx8XN!s diff --git a/sprites/help.bmp b/sprites/help.bmp deleted file mode 100644 index 72fedb44abb982784c66f94d04ddf7bb06c994e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyVja1L@#D(EwsLQ2A#G34#cy3|T$Q zf!JxFX?WDXy=M+Y$U5<>M^*`8<5y3r`Q)jG=z@3zzk86~k4HU33Ry9bjYmC17N`Ij ZL9`R^9$e~yCg4ZN@e5=V14vKH4FFU1Ql{XE z)7O>#1{WiztO9qMO)XHU($mE;MB{vNPDVz80_z3?1A{BquM4l-wQ=J_)ZT*baRhwjjYCcou8Oh<_fG{2sHXf022e7o|4(aQtQn?M=*H0 L`njxgN@xNAm^n$` literal 0 HcmV?d00001 diff --git a/sprites/icecream.bmp b/sprites/icecream.bmp deleted file mode 100644 index e8e02c145d8544e5d2b13ce7d42b2bba5d99a930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmcJJF%Ezr3`H^S#?d2q0%zmyoj4kU_red~Gz2TwLDDwm|JSD5zVt4?1$9P_S9Wg7 zx`TfVObS|Ey_eAZS_AB3M4+iX?f)N-&9YohYFt&pGNN6bH15CGCmwn%UI+odSC|+p iryC=%gp{Vi7w4q5L5jr@EEmPnaLPi0`3f7?TCfvj$fp(n diff --git a/sprites/numnets.bmp b/sprites/numnets.bmp deleted file mode 100644 index 5b399656cf97fa22e0b936fdfa8d2705fd7b95ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmb`D%ME}q3`2vsBaV!~1Ra1oJ24!4fmMT5i4sx?ODS&pa6ikMddo@}XViFAXH)JQ z*7t$MhS}DxBP?bEk8C20=00Hki@;xagp?a-`j#&Mf5B_|$&(E7!esn>VKNRchF9SA Y9lq&(O1SjTd~|%_oCIKk@&l`@CpQ^$K>z>% diff --git a/sprites/numnets.png b/sprites/numnets.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c57c8b4327c4ce3449c83baa8d22c75b16afb1 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5M?jcysy3fAP>{XE z)7O>#1{Wiztnij?vDrYOI8PVH5RLOwCpq#t7_zwdKEC(#$*v!rt?N&%>8Q-$QgRYD z6nwjPc3x;||GanW^{eCFKf5Z*l@_*ybHXe+hK8m{lMp@;=XJt)K3jzv%msYv)Be18 j=kLCtzW&Z0o9m3>y^1<3cJeI-+Qi`L>gTe~DWM4faPU4o literal 0 HcmV?d00001 diff --git a/sprites/speed.bmp b/sprites/speed.bmp deleted file mode 100644 index 78cadb0440e697e68156833e9233fe45ff88ba55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmcJLK@Nj339Az90|a-aqAW{HrWkIz^#Ga3FH5jXkm##&>!|IZ64Y+po8a zq0~eD>FMjjlJoWWM4Su{7kp+5n1#GGPA(pl5r+51Tn9tITU1Xl#1=zqolm~U&v*Rq qGg;&o2C63*0-*Xuu7e?5KgwW;Bhq!St&nbne7aj1Zaf>){{XE z)7O>#1{Wizj0L0M)GVM-gr|#Rh{pN3lLEO8DDXH3-`u-ey{Sv_*E%onWE*{tFQ(*2mU#Qu#`%k%aZUsq!PC{xWt~$(695^lI{E+r literal 0 HcmV?d00001 diff --git a/sprites/spider.bmp b/sprites/spider.bmp deleted file mode 100644 index c01390351cb3e03b35f747b1ed0ec66a754cf55c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1398 zcmdUru@1s83`E_5wd%;gPAA6Bh@IbI&d2q?(j!+at8U~}h=D4$F3$Nm>Ero2N%x~bU0=S!qIUHmz7j-oZPC+?{rIau9Rz11wm4TH`9520 z8~F|N9A6=sbzFF3uus?=gv~a5e+nTnGEgBp}S*^VbLa&xO diff --git a/sprites/spidercaught.bmp b/sprites/spidercaught.bmp deleted file mode 100644 index 187ae1f256c64f8f76228859897025fb95110f69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1398 zcmds$y$-@K41~?ViWnK#>BPv4*m)i1JRI*;j+}b9ZQPoLfhw^a=R5yY?d|^9T753C z9rhmkh`q4`tl1U!&mDISc+;IvTxPxVJu>nIXZR*O1V?Fkz!lPR5tE(ML!LJ;OwRxD zmhT4QY>~PE diff --git a/sprites/spiderdead.bmp b/sprites/spiderdead.bmp deleted file mode 100644 index 9bb7bc0ce0ac0816c12bcfaedc33142ac32dbe72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1398 zcmdT^F%H8p2y}<8RmTq9o2g^xsC&QD*^kS=k_$M58sacjie;<|9QeRe-k3--Ol(>)*dirh=w0p%7oCGZ<5GoKqFfQn4sPa(c0M^ZH3 zQBSTSiG}5sc&?!NsNay`^0#D&U(W|PRDbzJMEb==(gJWK#quRlWLJPwM7)5Cw);5& DpHDN5 diff --git a/sprites/spiderfall.bmp b/sprites/spiderfall.bmp deleted file mode 100644 index bc15041ef606d3cc359342a43a0ca478e05152a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmcgqF%rTs3=10*Gsm&R#K;5K`BO(;#l*jg8XdxE>@*A|m-rl6lAT^}_vbd{bwxbm z9B~dfo3uwv>4Exd$CH6Sgkczd?b0LZ;izvvxs%yR>mOjz&?UGan?|J>jw_c&MFPZL zna@C~7;Ca5BAhQLcY`UbhEH9hTN+1fC$9z7yVO^SJE1_)Y~uAPFp%XiOHeAPeHW?d zmePp*$tMdD8h)0eT;o|!fbO-n^L6qaU(1YVQxykHbNyt;trYdNFCy}ZHa`! Uc0nc_)m+=Ug(`il=Yk-Y-_V89^8f$< diff --git a/sprites/spiderjump.bmp b/sprites/spiderjump.bmp deleted file mode 100644 index 6d7906efe557e69b07ffb2a9fc62497c2e4c85b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmdUrF%H5o3`NbrT8WK;olcA#fSo&W2#(Z=OQoNDu&kP32gE=XTh7n-bJElKwwC%G zkw?T1u|ce4i!5@*`7|)9@TX}!?CtvU6&Cff?&2#!q_h@2dF<2Q1nM9-li2Ef0Lk~+ zVsqp>&~v;(GId;dVX#kF9EDqd0VxGbXZdj