From e630e20d4605768cfc74fde72c7ca886c4d24b4a Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sun, 28 Jul 2019 14:48:19 -0400 Subject: [PATCH] save edited sprites to disk and use them in-game --- game.exe | Bin 99664 -> 100569 bytes game.prj | Bin 5667 -> 5667 bytes sprite.gfx | Bin 0 -> 10240 bytes testbed.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100755 sprite.gfx diff --git a/game.exe b/game.exe index dab2edd42039a232e9abf39716107a8c3ecad3e8..a08bb197f45ee83e590096f8330be9a462584b36 100755 GIT binary patch delta 20339 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 4R;~Ns^z)t6yM{3jFhY@khRynQ4D) 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 N7OVo%n+1e~Spd`C7&ZU^ delta 60 zcmZ3ivsh=t6jsix%$(F>y{!DA$q$*!CyTHNGp}3rYqJ*H9!}=fK*me{<&4a;mi?MM OS+EL3Zx#>|W&r^0;uzon diff --git a/sprite.gfx b/sprite.gfx new file mode 100755 index 0000000000000000000000000000000000000000..9a659ef546d03751d204e365f34807743787367f GIT binary patch literal 10240 zcmc&&U2Ggz6~3EsJ;9Ng3W{P-=v*RDT3RPAJYZV4CBqW4lV=s<{?X_%& zCPH*3@Zcv@^^LdXjYl3Mo^~Q5xet|`C$PxFObM_NrSgCy?KnHThjZ?o**mj){gbvD z?$OTNJ>Na&eDlqnJ3kHB{LRj;{a3)|#BO{$sCWk3+}znA4?v?2-wHl+C@v##>mC+w zM~08_-mP0%ewJCqSZ>n3ph`ox3;dO5+4ou~( zqWl0VzoHkKkri7pm2qaqX2$yY0oaL?+}Am(Ul-bWypLZ<`6a&n!S=lYehv;0EF)|3$;orLs&uWy zi5;AnPEJ1;sAWtAn!|0ZfH4PR5N%Lz9FzU+)DP-CobrPl*~@Ro5-0uq3NAXPUqLJA zhrVIbugK4cO{^^oDg6{biQ7WIclI+vd44Vg;yhZB#Ebk)kzdAd-Xr~r{1P0H>397c z>4yx(%(J3wZ$*2shyFUG$4!HNIAGX( zG4moT+ehL;pD|~K*>JvYmdA>qg@)|v1oxW4?Fg+8?dPZPEH2|GqGQA{gPvb#p$*Rr z&oIhL^G>QKdpiASR5ns7p!A^wXmlDKy?!!kN6dwWM!!ro+S3d~^$PlBRcW8`L-qRf zlW2wu1q%8N^0QN1X3g^}>X)&~^ULc;M=#qu9riw6M7w7Amk-HWGzojn?YjT{)BYb} zyXPr(j>d6j?ocrc(LN)#P(B9kez;@2g{m)RGi&qrq?`;Ps_=g6iXpGJPI!1S9ttw5a6 zpcUZa5Wp_%nz;O!{;j(`9y^wAhG#-EG(saXq8E}zn@o$hj8+Cveqm7yn!#4E9khe? zd+=VC|1_tCGBeZ;^^-=v%U>1wx8WY#hMQaORwA^p5>_Hnk&=DKzpcUG2 z_!0T(+_Fh_j=jX*o?7WzXm;2B^B0~FZ3wSlpgUYlbJmILa>Yd%sX5??bzk8$CY{|8 zEddf2gOAuye0{&Z?;ND@D2<)Q6FrZnB&MUS?1k8)CCnG=AAlA8{vU>4!AWZP;?fWo z2%d>RmL>ec-|gO=MS9itB>1myzx=D4H~aH5(IV@IUrL;=+r>i>mxj1NhWHSt8t5$O z7XZ-eg6s2P`Z;)TA74L5oCO(A^iY&O{d@$Keu|$Rx#=^~r_GOMg@Y>454XMJ`y~86 z&G}d4XFt;XQ~IUX2V@th?)*CVmPaZ)+W8HlAZiHxMEt`neo#N(^lmc*PHy<>CkVh4^?w{O;Sa&BiFN)3p=v%#-Y-Pn->M zW2=kVsBnD!OVGr4d{>MlF2^3e74dDWZFjQxD_Bp)6F?X{Xhz8p^ZF)XC5dEX2remFCU6!~F1zVBr5gZz-GE%=>{?J==FXZdMn z_yOLknYa1=PUcm6!ncA^&&+*aP-w1~`+kt~;`a&qet_{ud_TaOg4+f6`Zp(tIX)j? zdzaqox|R4_|EKQ54N-FE)pLKcHJ*xXD1Asw8T+mDsRBei`~G5WnV#j@+X@AIr;zx< zF67tn{1DN{t6z(&?+5u1#V`N;C7O!e$PFhMbLoK)t&zUjK)ZqKiQ7TzrNRFR(5+EE z2H`(};}{y!NXMl(p?&e`0PW60ImxE!)-NBr4A1aRNgL#c)!H(DwnhW-&GB>Nw7!;~ zKm|V)uO*f`2l?UUlj8>oW<-OBX@EvQfgGwIqz{Q7Pd|pAv&h(Edj0zOH8lDa`St5p zc%k(81tN=+1Z`AB-iFcB;}>6f;Na{dywMJt;v)m< zElVT2*zMu@c!}$`1%Br5&iFX{e1i{75AiXE??(<;-Aib0FT8>Gvj*xH^b~dJqb7Ql zNxUxBksyuCP#Rr~PX}msK8q@M&^%mLm63kDGGh$z6IzfyK`IUTX!E9KP&mFQGV z^t}?PXiMo?DX%uDM5kh+@0CbJTT0JLd9^_$Iu#RruS6=^QhHX(s|_mAshH?{B~sCr z(z8-tZBU6$#YEpLk&3pIo|W=ygGzKNCi-59RJ5h^tdv(9RH9Qc(f3NEqAjIorM#!E z`L)_A7hX!i>F?;s1-?djnyijTjQf67uQd=e_lj7I(nG?M|fa@?>G2db!lmxKO+wM$9T}hXTCQ6leOyX z&$#3(Mq-qxjodR1%e9|Z$2V%|;d57Owe{)(9{g8EN9N=|@}okyo2y-0+2{=+|5N

SAKf7bVK4`2xdYDmAm?Kz=Lh8~l~aKX~Ok<8=JfFJiS9iP>{~80tl1X_m;KH!gqo w^;gHg_x(3te*Lvq-;`5gl79`kig`0NCHIs35?|lI)6Jhzv9jQ6n1BlX50|)qa{vGU literal 0 HcmV?d00001 diff --git a/testbed.c b/testbed.c index d20731e..584ce39 100755 --- a/testbed.c +++ b/testbed.c @@ -50,6 +50,38 @@ void text_draw(unsigned int vidOffset, unsigned char *s) { } } +/*** I / O ***/ +size_t fwritefar(FILE *fp, void far *buf, size_t length) { + char nearbuf[32]; + size_t written = 0; + size_t towrite; + + for (; towrite = min(32, length), length > 0; length -= towrite) { + movedata(FP_SEG(buf), FP_OFF(buf) + written, _SS, nearbuf, towrite); + if (!fwrite(nearbuf, towrite, 1, fp)) { + break; + } + written += towrite; + } + return written; +} + +size_t freadfar(FILE *fp, void far *buf, size_t length) { + char nearbuf[32]; + size_t totalread = 0; + size_t toread; + + for (; toread = min(32, length), length > 0; length -= toread) { + size_t bytesread = fread(nearbuf, 1, toread, fp); + movedata(_SS, nearbuf, FP_SEG(buf), FP_OFF(buf) + totalread, bytesread); + totalread += bytesread; + if (bytesread != toread) { + break; + } + } + return totalread; +} + /*** S C R A T C H ***/ #define NUM_SPRITES 64 @@ -109,6 +141,8 @@ void f_loadtiles() { DROP(1); } +#define SPRITE_GFX + void game_init() { FILE *f; TifImageMeta_t meta; @@ -132,10 +166,16 @@ void game_init() { tifLoadEGA(f, meta, 0, 48, 336); fclose(f); +#ifdef SPRITE_GFX + f = fopen("sprite.gfx", "rb"); + freadfar(f, sprites, NUM_SPRITES * SPRITE_STRIDE * 2); + fclose(f); +#else f = fopen("SPRITE.TIF", "rb"); meta = tifLoadMeta(f); tifLoad(f, meta, sprites, NUM_SPRITES * 16, 16, 5); fclose(f); +#endif f = fopen("PORTRAIT.TIF", "rb"); meta = tifLoadMeta(f); @@ -319,6 +359,13 @@ void f_drawfatbox() { DROP(3); } +void f_savegfx() { + FILE *fp; + fp = fopen("sprite.gfx", "wb"); + fwritefar(fp, sprites, NUM_SPRITES * SPRITE_STRIDE * 2); + fclose(fp); +} + void f_mousehide() { mouse_hide(); } @@ -402,6 +449,7 @@ void game_f_init(char *exe, char *bootjor) { CDEF("putpixel", f_putpixel); CDEF("getpixel", f_getpixel); CDEF("spritecount", f_spritecount); + CDEF("savegfx", f_savegfx); f_loadjor(bootjor);