From 0ae315946be8dc3a32548e33fc35528b7a0d23c0 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Sun, 4 Apr 2021 22:20:25 +0100 Subject: [PATCH] Allow scrolling around map (what there is of it) --- !TheEsc/!RunImage,ff8 | Bin 18840 -> 19364 bytes !TheEsc/c/Mission2 | 67 ++++++++++++++++++++++++++++++++++-------- !TheEsc/map,ffd | Bin 100 -> 0 bytes !TheEsc/mission2,ffd | Bin 0 -> 10000 bytes 4 files changed, 55 insertions(+), 12 deletions(-) delete mode 100644 !TheEsc/map,ffd create mode 100644 !TheEsc/mission2,ffd diff --git a/!TheEsc/!RunImage,ff8 b/!TheEsc/!RunImage,ff8 index cd7ba724010d1c63814824beab55b72c2c767499..dc4318cc11a17055647a61333ec69c73e72aa6c4 100644 GIT binary patch delta 3425 zcmaJ^3viUx6+ZXwBl$P`_!nYI64*^Pae+XVuv7+U44a66KsAUk6cj@YB8-HPU|ZY4 zY%mc^Re~o*t+81xT1N3v!#FCHk`$N(D57?1rM2CMzd{!3+gcuOzq?sFPN#Nf?%ead z=XuY6_YoGm9u_{LNK7p|QSxn_l5V1p7F|QMTvGaX;mV!9{j*lMX+{1fTPlNmIC-AwnysVNd0@8;)af$humDUpQF&2P!+ z;wjcl<86=W%5S30Lp;m$qirg8SRjv`C@}IedwCnitBI zI{(dFCNJ07X7R{zI+s~|a<4!#zX1%35VT z05CGdPXc@aAQJh3)i2&)M^=eA&r`ED%2&Y6>K3o^%kOuLZ;zKC4XL^8IO!tdnD1vZ`$VBo&Yyf z5MNGEyv|E=O2p6j&K$2cfMb>5Klq89NpiE3kLQ%hT}Sy`PFcY!sO3)e8Ya5?)R9X}2%bi?h56Xp3ZnkfizeQWwx5_LhZ*>H0ekbiKKn-R&`8CG^&v+c4ed7MO2(`z< zbVFh|l{zWFu0Uyuoa}RM7a#I-&TZllU*RedpYRV{Uhy8^>6#)3hxi%SwW5pv<(lMK z=v39+|1qFU7bNXrux`pWB zcMBhrci8xcW0%RzNBH>I59H-GetF#Wo<%lFrZh_CQd`_i2aWl_l`9r|B;l~J-!oml zh^F?G)qJecJ~)#&w#jQugw$U%TJ4LsMJ;vemK`!mzM*{ze9{jY)#gY{fH&60M?9;< zAW!rbIxeP}BW4D8vA0ls#v8ojEvG^6;YT5XWTYKwK(jr~{oZNfP5#1L0{#4=pF5w* za8*aI*Z8HP2V{-LHN~rBnZ{2R4=C(bUqDXRxZ5`@&iA#IxP)xX?t8FwmXzW;Vr{}odGH9|I^m>5j%z0R<&3Pp^%Jd9yv&;>JuEs|n|z%N zTY1IgxdrR3w6E(zD!B(OvI)BtYuv?Da*LH;oBX9jC0;7`$#GWxQ~6wHsg;ta=BTUI zZWLR&EHKM93Z$H`Qc2y)je)zwJAG#ZB|_zVR7IJ%o3E@Wk#||RzGAv_w`C+FCOEml z!cSK;%hIEL1ych;l7$xpgHAgn=3g^%yk_a!9z18l73r8h&2iC$zW)9Q=Um^R>3Lk5{|;Xm9lN5J;@gvrJETU18o~C=2v%}x%@Pb8=M4lc=$gyqlXFp9Pi$U8mC6ZX`jU;~kX{s=}9m?7l>b_SbFfz13 zDECA8utb6K9F7d@xzAID=UG%vQ9bf}Adlx)7Uge;^Shv*heKb6A=Bio@gR)7z-^VI z%bQ_tDY)G@@yDT&VlZHp`UbrXq1MLEVc^vxoRi#NdA9Y|b+_NXVRaM6i%yhs9EilG z{kiS$OG zN6olHQrV%lsD$$&3{@3unwGI0bJZrSL?>nEfMIGHFr4(DVWV)|Ndswl7Y(!;6JcD! zcx(rZqr>z5k1;`^Z#C9{XJ8hdfHDkYIMW0pBL+j?G-%uj-Uq0dvUM4?{_n^r6B)j1 zX-`!-)3pDJj1ZYXWcEyC_Dp0B?D;TsEMq7g6dr)2KZN&cC>q8$Ha+57i&P40qTgod zQdAV~Pe&!FAI5efjiI<5uu8iFyBc%9$r$_i*_9f;mS&ZknZaoudY6$+;@-+=YrKXX zJk@4SBuTZ{S+pP3qI#i7qGMA>)Y7~ynzbns>l)2RW|zrRasG1lEZO-H2SWilIhX50 zRSPbDoJy)El?_j-LHHqRF$rjCVn1LHK3scEuwB$?)J#B|>78kN7PR^wpr_(dF7L(r zqV^~chw811FW{Lm#Mf8fBdmSzRxc5Y!iR`LhlwiBM=k(m|mB delta 2797 zcmZ`*dvKK16+idxBiYS9zCcXL26jV27udiORtyj^Y!Zx!0zn>wP$5Acmhwn|c6bbs z&;&YI5jimgC}csj3{py6hE`EZC>UZZ185nbR^NUdRNq20xpEmb0+%jbvO-1jn-;z={IX7Czw~;`x-@p^g36*= z`3~JkbkL-QA_3>C?VA(Uj%mDFy3?x@%R|6M+SpE&p~#yWAC@lbiUcd9@kN<0a@b<% zZ_UtD+(e67xWKSaWbi)?IqABSV&*KQDp;p0KPuWbC#M_TFI)yoVwoIl(7QyaTjVF$ zy8xasEfg_QgI+`BZHjM9@O|L7f=`qetvoQ(vRqKifbdO;pem8WJbumijJ)FH&y7C$ zhLf!(x7_7qpD9~@;N%G=pJ@{;nAmR0lBJGj*1m75*B#Nw749K6NimwO$2!r~VT`KBdT%;pShrg^%9Iu9X#RQ?393b zoTsMbh$LQ>;;{r_RtYZRy(zi!ww=$V_+(=%-%IhiKC@G2+E9;fpkH3^)fc#{Y)$$l zI~UplvenMZY@6j#w3Tgxth4h5yWhIsPRCuS!Jq8>o_(DAO*_Ss&%e?xg0=0{G$q;@ zk6#sF=bxa)UTbi-MZBJwhO9m`-9p?vMd-2eHFbGO^dZ#(ZTM0CGX;n zo`1DoK1cNaS)%~-hM188cuuXu@t zjw6`p->N+NZy_}!p;bF+Q=6$=-LfkeHp2n2ToX$IYHc#YFzvlLP&Xtd|`*39jns>&g61))sj( znTz|*k_VD`U*A(|H9y-gk0x_NcBfbsuE}u92YTf(b9muEvlPR)DtEhZuw~FhdEdk{29>(5o9KA` z_wm>vv`7`O8PMmy@z{4Jes9oSOXJ5x3n~`R8_JP_Ou5U%mj;(Q_L(SleT=$swR)3@ zef|RLR&1qw8;@-<@e=Mo9YZ#AANXtGFtmXaICBXbE}<=mDTrCI*52F=!<}5OkSZ z!{beOFNMcOyqhZBC7=(3mjhlPD-=yfM6!2H`;Oc3SYPa|9TJL8^@O6Y-;QU-Rzmq3 z2&)GJ)59_h%D=}tAW@`r`*#V}t~>F}4u1FXA*x*t`_s3L%9?Rk(D7|hPlwH8@M9RX zp*;X!yWuC@Iq?U+%duAiSqbwigWc7M<84y4n5)&`++~q_7=&|hwzGHm^Ze)elTo~W z`MecBuO$3N#O){1zLy7g7>_*LZlxC@d*J*ojE;oSJHW$%Rmy{!N?glQP1Hd6;1lHT_?(mCJ|vSzK+gn(1jLkfqa0I!1llmAB^e=*RlX`_U^0M3B?$cN=01OU58Z!Q#yexRU1VQ@l0{UhL} zMMYL9I$#(FihPe?tK&dR_mvLJUh&fxe@0~EqR~C`b8+;_5*!&t8$k+J>!Vc>(R6E3 z11iJcRxlK;tEy`=E!)(VR27OGN#lz}KKW^c?-v!w9=Eul*e}OE!V8NF<@zuAV6n?z zfw2;jFqgGeFCGwzNNuZL)C=<&<(T+ocUf<}J+tEwf*RY(w~ObPANvH4Knu?(*(iP$ zj+9Imr7QnJG~zT-) sizeof(map[0])) + if(length > sizeof(fullmap)) { - screen_nobuffer(); - printf("Map exceeds %d bytes (%d bytes)",sizeof(map[0]),length); - exit(0); + // TODO: Work out why real machine doesn't appear to read size and gives object type 19 + /*screen_nobuffer(); + printf("Map exceeds %d bytes (%d bytes) Object Type %d",sizeof(fullmap),length,outreg.r[0]); + exit(0);*/ } // Attempt to get file info inreg.r[0] = 16; inreg.r[1] = (int) filename; - inreg.r[2] = (int) map[0]; + inreg.r[2] = (int) fullmap; inreg.r[3] = 0; _kernel_swi(OS_File,&inreg,&outreg); @@ -121,19 +124,38 @@ void game2_briefing() } } +void game2_fillmap(int xoffset, int yoffset) +{ + memcpy(map[0][0],fullmap+yoffset+(xoffset*100),10); + memcpy(map[0][1],fullmap+yoffset+(xoffset*100)+100,10); + memcpy(map[0][2],fullmap+yoffset+(xoffset*100)+200,10); + memcpy(map[0][3],fullmap+yoffset+(xoffset*100)+300,10); + memcpy(map[0][4],fullmap+yoffset+(xoffset*100)+400,10); + memcpy(map[0][5],fullmap+yoffset+(xoffset*100)+500,10); + memcpy(map[0][6],fullmap+yoffset+(xoffset*100)+600,10); + memcpy(map[0][7],fullmap+yoffset+(xoffset*100)+700,10); + memcpy(map[0][8],fullmap+yoffset+(xoffset*100)+800,10); + memcpy(map[0][9],fullmap+yoffset+(xoffset*100)+900,10); +} + void game2_setup() { screen_flipbuffer(); screen_clear(); screen_flipbuffer(); screen_clear(); - TilePlayer.location.X = 0; - TilePlayer.location.Y = 0; + TilePlayer.location.X = 100; + TilePlayer.location.Y = 100; TilePlayer.hitbox_bl.X = 0; TilePlayer.hitbox_bl.Y = 0; TilePlayer.hitbox_tr.X = 60; TilePlayer.hitbox_tr.Y = 50; - game2_loadmap("map"); + memset(map[0],0xFF,100); + memset(map[1],0xFF,100); + memset(map[2],0xFF,100); + + game2_loadmap("mission2"); + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); } void game2_tick_input() @@ -142,25 +164,45 @@ void game2_tick_input() // Up arrow if(input_readkey(57)) { - TilePlayer.location.Y += 1 * (tick - lasttick); + TilePlayer.location.Y += 3 * (tick - lasttick); + if(TilePlayer.location.Y > (9*100)) + { + TilePlayer.location.Y = 100; + TilePlayer.mapoffset.Y += 10; + } } // Down arrow if(input_readkey(41)) { - TilePlayer.location.Y -= 1 * (tick - lasttick); + TilePlayer.location.Y -= 3 * (tick - lasttick); + if(TilePlayer.location.Y < (1*100)) + { + TilePlayer.location.Y = 900; + TilePlayer.mapoffset.Y -= 10; + } } // Right arrow if(input_readkey(121)) { - TilePlayer.location.X += 1 * (tick - lasttick); + TilePlayer.location.X += 3 * (tick - lasttick); + if(TilePlayer.location.X > (9*100)) + { + TilePlayer.location.X = 100; + TilePlayer.mapoffset.X += 10; + } } // Left arrow if(input_readkey(25)) { - TilePlayer.location.X -= 1 * (tick - lasttick); + TilePlayer.location.X -= 3 * (tick - lasttick); + if(TilePlayer.location.X < (1*100)) + { + TilePlayer.location.X = 900; + TilePlayer.mapoffset.X -= 10; + } } // Q @@ -188,6 +230,7 @@ int game2_tick() if(1) { + game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); for(x = 0; x < TILESX; x++) { for(y = 0; y < TILESY; y++) diff --git a/!TheEsc/map,ffd b/!TheEsc/map,ffd deleted file mode 100644 index 79ad115be5263fcd9587d3c43956446abe57e75d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 lcmZSh4+BhKzyc&0u>fWWU}a>3s^?(jgt6FRESOPfGysP`H9-IX diff --git a/!TheEsc/mission2,ffd b/!TheEsc/mission2,ffd new file mode 100644 index 0000000000000000000000000000000000000000..cd04641b8a395136b149144fcd7fac4dbdc35647 GIT binary patch literal 10000 zcmeIvO$x&x5C%|9+x*<7_rF|IVj#09*o6v#HwzsQ=F?~T9F=<3bkwtK=h`|i|EN1= zJW9Rte0JaM-TEPA-kP^QgTvHy**e|+3K{Z_5mqv;Ppx$RyaE)CSp|$r%c=qtjz?I9 pI4uDJ1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oU&RU