From b5ae8623c9386a65c84c2b170f1e0301641c1f47 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Tue, 31 Aug 2021 16:50:11 +0100 Subject: [PATCH] Refer to tiles and font characters by pointer (once cached). Fixed missing colon from font. Minor map changes (and more obvious tile zero). Misc map tweaks. --- !TheEsc/!MapEdit,ff8 | Bin 11288 -> 11364 bytes !TheEsc/!RunImage,ff8 | Bin 25808 -> 26312 bytes !TheEsc/Font,ff9 | Bin 7456 -> 7612 bytes !TheEsc/Tiles,ff9 | Bin 142192 -> 170064 bytes !TheEsc/c/CTheEscape | 4 +- !TheEsc/c/Graphics | 85 ++++++++++++++++++++++++++++++++++-------- !TheEsc/c/MapEdit | 45 ++++++++++------------ !TheEsc/c/Mission2 | 10 ++--- !TheEsc/m2_map,ffd | Bin 20000 -> 20000 bytes 9 files changed, 95 insertions(+), 49 deletions(-) diff --git a/!TheEsc/!MapEdit,ff8 b/!TheEsc/!MapEdit,ff8 index 8594123cca0a9c8e482e210fc7541fce3457ec3f..65a99e0f0ec933d9671f6fb3de90861f832336d5 100644 GIT binary patch delta 3942 zcmZu!3vg7`8UD}RM|PJyHjgDFo8;bPO#%e-5SmCRH7L>wC_$725=$r>AqB~j#2Uv( z5=aOtG)Yer)RAVDF!E4~qjpeeOQ z{hjap=dsUL{=G7b$R89VnrO7nPNVTeUk>CE9j3@W!W~Z-Lt2kK^ zQmERKO!WNGo?vneIcW4sI6N}2kLU!quvONbb{aWkQ?@N zwAxyP&==Bpv8hr2t6zk}?+`MW5qTRjW47vAZZR*B z66}1rIm`7KjACB*oQTZJhLUG_k2%?%WVn~{*UfqCJ$~L?!VYnlWft4R7h7`KasH?! zw$`?ELBzsZ zO~2Nfd5`@z-6I7auNofM9D4SM$3N|}?4rUg@Yv3a9Eq%%-|6t6>Q3!m=sJz4C`3gf z+8oJgY{Gj;n_F-z=PM>BtT zLZ@z>32T;73wzS2<%+IwiC8gzt6`1AwMBR8mesKQ%@Se8p=V5w$<-|n!gA_cmSr)y zdab3f3>p?38Ah$=V)FF3d9dyuXKm(ZV+!;*!AHMgi9?*=xtV9imbjd>N$2Ak!|KtI zJQVwk&eUSWt>P?Bj;}K80%?TJqBy~IyXJwdYv2|B zw$tN!2?x+FiAFy`#%S81nd#I8AHU>OCLc|)a6ZS; z&BF`%-SKW#%yTQUeMH+d2eS4;H#D1n7Vl|^ zZw(|6*UD`E;21Q@YzrhQJGDujvgV^_wKrv1tC`b}425bvQEC%(t%PZ?wg44&Yja~| zO`_>RQUZxh$`%)u`_&HW2z-G!>VXeEr>)75wIrnneucs5Mh-?k)!bCR#loj06}pOn zdxpU6>kOGOyBTsN{ zG+7k?=~m^=BR(c;i{!44?~%KX*nl%b!SRj;*#iBSe5T87Sr@k`)XSH-+-!(H?8v1zdFgNG!d1?RS0g2R0vuzIlzh86_Tv5^Ka-p`vC~WkeblcV1K>F1dI@is1`~Ho zO0CTWzdy&w##n=~5cm_(bYOeb3)y)!JX-usSidu_hQkig?s&pDqN8Q496NU}QVMvq zyK30mM|61~5uni(e9x<2-y|Si;-WB=TX7NWi4 zNSKbo%Z-Ga@%^U{mxe4c)jM%9oJ#~4(bvL{5MKh{MTYNV_%_q#5Ow>5O}eff3ot{q zfOLz9L(FXW-(jXG9c{gtKbTU?{>^u!w}@Se8t?PF-HX@`zQdg-tv2!F?hI*#iI2Fm zSR0Q?%d;#%jD??cyQMo!e0f@qh8RN0>eX@jH=Pg*{euz6mP@IM-0S-%TfngG7e}vfUy}81w3H5u30O_!4Iy4BIUrT<+C5cgqv(?hihjuzCO%1piFhQ$W8=sFG#qvdTOGQ4 z2Hr&YRdswC{x8D+cHX1p+42!piU|I$vK2qW7H7Jp-81?6%pB>&6yBFvDn*y_k2ABR zY4iD4nHj0&r81gqlNO66ipICuxe1-ON%KzS`B|kC2j*i6cr_6PRI2f-bEtjz&E@>b ztOsW)3nC_Oc|S7rVt=&aR&Up4tc~=F8575*Q_Hb~n*bHlr((8A)g>Aq!6-m(5@l#;3J4q7(UqZtNpu@vB7G-zd-Zn|MvGnO~f0 r%Q&zL{ftqGAwDAO3mATkf!#baZ!Is(o4~i`Dg0udf>w@vMC$(o!z8}l delta 3734 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 bhZ&0m!~>E6(+*?Uvi`a2_jCGUo#OuhXDShG diff --git a/!TheEsc/Font,ff9 b/!TheEsc/Font,ff9 index 799a5c89bcd728e93144266c92694c1fcf4ab80c..45dc522d03881e50cb8d1f9903adac22f748aa50 100644 GIT binary patch delta 64 zcmZ2rwa1#%fPsNQ0EiE4odaZ9P5#KDIXO&FfZN0b$Yn4A0*1+ff})e#1SKZ# N6J(n_RZt2<0|3d_4-o(W delta 18 YcmdmEy}*i7pMilv0EksKa*E3W043@JEC2ui diff --git a/!TheEsc/Tiles,ff9 b/!TheEsc/Tiles,ff9 index b664c70734ea6f2b3e44d66fcd6e4f4fa6f39d28..b36485bc7d3ad8f9a3627923436d4289d971b474 100644 GIT binary patch literal 170064 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 diff --git a/!TheEsc/c/CTheEscape b/!TheEsc/c/CTheEscape index 4c4e426..7aa507b 100644 --- a/!TheEsc/c/CTheEscape +++ b/!TheEsc/c/CTheEscape @@ -5,8 +5,8 @@ #include "Sound.h" #include "Graphics.h" -#define SKIP_INTRO -#define SKIP_MISSION1 +//#define SKIP_INTRO +//#define SKIP_MISSION1 //#define SKIP_MISSION2 // SWI Registers diff --git a/!TheEsc/c/Graphics b/!TheEsc/c/Graphics index f9a496f..6aee785 100644 --- a/!TheEsc/c/Graphics +++ b/!TheEsc/c/Graphics @@ -10,7 +10,12 @@ extern unsigned char *buffer; extern unsigned char *fontbuffer; extern unsigned char *tilebuffer; +char tilenamebuffer[4]; +char letternamebuffer[2]; + int screen = 1; +int tilecache[256]; +int lettercache[256]; extern void screen_nobuffer(); // Loads sprite file into buffer @@ -205,35 +210,86 @@ void draw_sprite_flippedv(char* spritename,int x, int y) } -void draw_letter(char* spritename,int x, int y) +int get_letter_address(int letternumber) { - // SpriteOp 34 to put sprite at a location - inreg.r[0] = 256+34; + if(lettercache[letternumber] > 0) + return lettercache[letternumber]; + + sprintf(letternamebuffer,"%c",letternumber); + inreg.r[0] = 256+24; inreg.r[1] = (int) fontbuffer; - inreg.r[2] = (int) spritename; + inreg.r[2] = (int) letternamebuffer; + _kernel_swi(OS_SpriteOp,&inreg,&outreg); + + // For now, if we get an invalid character just display an X + // to make it really obvious + if(outreg.r[2] == inreg.r[2]) + get_letter_address((int)'X'); + + lettercache[letternumber] = outreg.r[2]; + + return lettercache[letternumber]; +} + +void draw_letter(int letter,int x, int y) +{ + int address = get_letter_address(letter); + // SpriteOp 34 to put sprite at a location + inreg.r[0] = 512+34; + inreg.r[1] = (int) fontbuffer; + inreg.r[2] = address; inreg.r[3] = x; inreg.r[4] = y; inreg.r[5] = 8; _kernel_swi(OS_SpriteOp,&inreg,&outreg); } -void draw_tile(char* spritename,int x, int y) +int get_tile_address(int tilenumber) { - // SpriteOp 34 to put sprite at a location - inreg.r[0] = 256+34; + if(tilecache[tilenumber] > 0) + return tilecache[tilenumber]; + + sprintf(tilenamebuffer,"%i",tilenumber); + inreg.r[0] = 256+24; inreg.r[1] = (int) tilebuffer; - inreg.r[2] = (int) spritename; + inreg.r[2] = (int)tilenamebuffer; + _kernel_swi(OS_SpriteOp,&inreg,&outreg); + + // Show default tile if not found + if(outreg.r[2] == inreg.r[2]) + { + get_tile_address(0); + } + + // Caching 0 seems to make it shit itself? + if(tilenumber > 0) + tilecache[tilenumber] = outreg.r[2]; + + return outreg.r[2]; +} + +void draw_tile(int tilenumber,int x, int y) +{ + int address = get_tile_address(tilenumber); + + // SpriteOp 34 to put sprite at a location + inreg.r[0] = 512+34; + inreg.r[1] = (int) tilebuffer; // unused because pointers are in use now + inreg.r[2] = address; inreg.r[3] = x; inreg.r[4] = y; inreg.r[5] = 0; _kernel_swi(OS_SpriteOp,&inreg,&outreg); } -void draw_tile_trans(char* spritename,int x, int y) + +void draw_tile_trans(int tilenumber,int x, int y) { + int address = get_tile_address(tilenumber); + // SpriteOp 34 to put sprite at a location - inreg.r[0] = 256+34; + inreg.r[0] = 512+34; inreg.r[1] = (int) tilebuffer; - inreg.r[2] = (int) spritename; + inreg.r[2] = address; inreg.r[3] = x; inreg.r[4] = y; inreg.r[5] = 8; @@ -245,15 +301,13 @@ void draw_spritetext(char* text, int x, int y) int currentx; int currenty; int i; - char str[2] = "\0"; + currentx = x; currenty = y; for(i = 0; i < strlen(text); i++) { - str[0] = text[i]; - if((text[i] != ' ') && (text[i] != '\n') && (text[i] != '~')) - draw_letter(str,currentx,currenty); + draw_letter(text[i],currentx,currenty); switch (text[i]) { @@ -262,6 +316,7 @@ void draw_spritetext(char* text, int x, int y) case '.': case ',': case 'y': + case ':': currentx += 12 + 4; break; case '\'': diff --git a/!TheEsc/c/MapEdit b/!TheEsc/c/MapEdit index c10234b..d1c7d73 100644 --- a/!TheEsc/c/MapEdit +++ b/!TheEsc/c/MapEdit @@ -46,8 +46,7 @@ unsigned char map_overlay[3][TILESX][TILESY]; unsigned char fullmap[10000*2]; -char tilenamebuffer[4]; -char textbuffer[63]; +char textbuffer[128]; struct EntityLocation_s { short signed int X,Y; @@ -595,8 +594,8 @@ int game2_tick() lasttick = tick; tick = clock(); - screen_flipbuffer(); - + //screen_flipbuffer(); +screen_nobuffer(); if(1) { screen_clear(); @@ -608,8 +607,7 @@ int game2_tick() if(1/*map[0][x][y] ^ map[screen+1][x][y]*/) { map[screen+1][x][y] = map[0][x][y]; - sprintf(tilenamebuffer,"%i",map[screen+1][x][y] & 127); - draw_tile(tilenamebuffer,x*100,y*100); + draw_tile(map[screen+1][x][y] & 127,x*100,y*100); if(((map[screen+1][x][y] >> 7) & 0x01)) { draw_sprite("solid",x*100,y*100); @@ -618,8 +616,7 @@ int game2_tick() map_overlay[screen+1][x][y] = map_overlay[0][x][y]; if(map_overlay[screen+1][x][y] > 0) { - sprintf(tilenamebuffer,"%i",map_overlay[screen+1][x][y]); - draw_tile_trans(tilenamebuffer,x*100,y*100); + draw_tile_trans(map_overlay[screen+1][x][y],x*100,y*100); } udt++; @@ -701,7 +698,7 @@ int game2_tick() } } - sprintf(textbuffer,"Tile:%i\nSprite:%i\nSolid: %i", + sprintf(textbuffer,"Tile:%i\nSprite:%i\nSolid: %i\n", TilePlayer.rawtile, fullmap[TilePlayer.rawtile], ((fullmap[TilePlayer.rawtile] >> 7) & 0x01) @@ -719,11 +716,11 @@ int game2_tick() if((i >=0) && (i <= 255)) { if(i > 127) - sprintf(tilenamebuffer,"%i",i - 128); + draw_tile(i - 128,x,y); else - sprintf(tilenamebuffer,"%i",i); + draw_tile(i,x,y); + - draw_tile(tilenamebuffer,x,y); if(i > 127) sprintf(textbuffer,"%i",i - 128); @@ -745,8 +742,7 @@ int game2_tick() { if((i >=0) && (i <= 255)) { - sprintf(tilenamebuffer,"%i",i); - draw_tile(tilenamebuffer,x,y); + draw_tile(i,x,y); sprintf(textbuffer,"%i",i); draw_spritetext(textbuffer, x+20, y+30); @@ -756,26 +752,25 @@ int game2_tick() } y = y - 100; } - +/* x = 1180; y = 750; if(clipboard > 127) - sprintf(tilenamebuffer,"%i",clipboard - 128); + draw_tile(clipboard - 128,x,y); else - sprintf(tilenamebuffer,"%i",clipboard); - draw_tile(tilenamebuffer,x,y); + draw_tile(clipboard,x,y); + if(clipboard_overlay > 0) { - sprintf(tilenamebuffer,"%i",clipboard_overlay); - draw_tile_trans(tilenamebuffer,x,y); + draw_tile_trans(clipboard_overlay,x,y); } draw_sprite("select1",x,y); - sprintf(tilenamebuffer,"%i",clipboard_tileid); - draw_spritetext(tilenamebuffer, x+10, y+30); + sprintf(textbuffer,"%i",clipboard_tileid); + draw_spritetext(textbuffer, x+10, y+30); draw_spritetext("Clipboard", x-174, y+30); - + */ return 0; }else{ @@ -798,14 +793,14 @@ int game_hitbox_collide(int x1, int y1, int w1, int h1, int x2, int y2, int w2, } void exitfunc () { - screen_flipbuffer(); +/* screen_flipbuffer(); screen_clear(); screen_flipbuffer(); screen_clear(); screen_nobuffer(); free(buffer); free(fontbuffer); - free(tilebuffer); + free(tilebuffer);*/ } int main(int argc, char *argv[]) diff --git a/!TheEsc/c/Mission2 b/!TheEsc/c/Mission2 index e159669..bda1e09 100644 --- a/!TheEsc/c/Mission2 +++ b/!TheEsc/c/Mission2 @@ -30,7 +30,6 @@ unsigned char fullmap[10000*2]; unsigned char areaname[13]; -char tilenamebuffer[4]; char textbuffer[63]; struct EntityLocation_s { @@ -750,17 +749,14 @@ int game2_tick() { map[screen+1][x][y] = map[0][x][y]; if(map[screen+1][x][y] < 128) - sprintf(tilenamebuffer,"%i",map[screen+1][x][y]); + draw_tile(map[screen+1][x][y],x*100,y*100); else - sprintf(tilenamebuffer,"%i",(map[screen+1][x][y]-128)); - - draw_tile(tilenamebuffer,x*100,y*100); + draw_tile((map[screen+1][x][y]-128),x*100,y*100); map_overlay[screen+1][x][y] = map_overlay[0][x][y]; if(map_overlay[screen+1][x][y] > 0) { - sprintf(tilenamebuffer,"%i",map_overlay[screen+1][x][y]); - draw_tile_trans(tilenamebuffer,x*100,y*100); + draw_tile_trans(map_overlay[screen+1][x][y],x*100,y*100); } } } diff --git a/!TheEsc/m2_map,ffd b/!TheEsc/m2_map,ffd index 529c3691bc9d3ee5086bfe73eb469f884d78e58f..ad52567b62692e0658a4b1f47140fd87246306d3 100644 GIT binary patch delta 923 zcmZ{g&ui0Q7{~J@Y1YIfO)OLf9U5i2v>mo$X06#;6|8j|+6@$M9XdhSVP3^UgLv>} zeCA=WNl#uB85F$u2Y9mjmk3@2Z$9svA6rL#4sTwb&+~o0-#3Fj80^8p2auK)7x9_6 zihrPh+u}pq6t`gsP4NNFOF0}!_wlXtE9*eOYA1B&@IWq|1YY-i-@nFh2|0!3OrB9c znxHcXAfi3h#@CtYSR3<{wiGwdM2AAA<%TUKF^ok&Mk7cFjucBw=G^>RQhYSszBR>= zAHi|-lObx23;FuKZs7Io41Z6I0mwYE>+1#loX!7F+)@lw)nno`P)|MXnxd9+rud!$ z?FfSKE)7loQEr~hG7a>!V*K2Ihoe7DmEv9Pv_yUUs%^;hrT%5ynzC{8#49`}yJ1zu zqJ9bbp;N$6eUGF9vvE`HP4^w2UZfR_1q=;xkKgM%BnyQsJYxQT(gf=}HS zy!Qmo68VIGOS_rot#gJbKV!bwa0%=PPseRbhd3yWK9Gbx-J!em&_% z^NlN$y2PT{2Jxe{%2t1wuLHw9Io{cm(=`*aRIq*V!niA~q)iq4H~~=l5*k%^ToF5U m@J&^-8{UyrvGpV1!u^_xH)^wbGfLfDSzf+F3y1r)m&Jc{)Xrf5 delta 642 zcmZvYy=&WG5XOD}kS$k|Wh=NCY#IejEXAR56j_cxz-=I&0?81PX7bQL3xT$4>0l@w zx;1{1!4N0z(xngrg8Uby{Yy$aw9u{hM*bRdgYLQey{CKLcXUCc3%dD25wq38oA3_) zQkJ$@9pX6rnoMZn1FS|;w1m%*ee@$g6CI*$jubH}tRr|~hC6I6@@QTN8QEm=l$)4Lm-z$vmbbD-=y>y{fJuzI}xU55ghC(DxM??6Vm~nUbd%Xah)&>Vr#QWR+E(~WSNKW zHQtqZYu%l5J~z0SzvSvH6bhXaiRYS&;ODxg!cFFlIlyviP2fTDQIvZFyizytD_KTK ztKlS`#_@v>r{+5H%DPCsAhjhGzm=ls=$ec@)ne)ETA8?h?l)6!bJ(|cAz4}UtR1|x z-uX&(f$+~B^h*uU#vzJj%h#(f2)C;>7S9Ns$IJav3tvTQ;E$uDu$DvDKEkK9B#!JW S3@b98R*D#DRexA{pZ^aeq>)qr