From d182bbe56ee5292986d3ae5ea273b9ff4142fd7e Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 8 Mar 2017 09:04:33 -0600 Subject: [PATCH] __seguse.txt added to show _seg usage also OpenVGMFile needs to be ported to 16_snd.c ][ ca needs huge amounts of work and i should remember what needs to be done soon also i should reverify 16_in.c to make sure it can work with other code of id engine --- EXMMTEST.L16 | 472 --------------------------------------------- MEMINFO.16W | 0 TODO.md | 10 +- __seguse.txt | 352 +++++++++++++++++++++++++++++++++ db.exe | Bin 13186 -> 13186 bytes q.sh | 19 +- qcata.sh | 11 ++ qkeen.sh | 12 +- qwolf.sh | 15 +- src/0.c | 13 +- src/16.c | 5 +- src/inputest.c | 45 +++-- src/lib/16_enti.c | 2 +- src/lib/16_enti.h | 2 +- src/lib/16_in.h | 2 +- src/lib/16_tail.h | 28 +-- src/lib/16_tdef.h | 9 +- src/lib/scroll16.c | 2 +- src/lib/scroll16.h | 48 ++--- src/pcxtest.c | 3 +- src/scroll.c | 39 ++-- src/test.c | 13 +- src/util/qfoot.sh | 2 + src/util/qhead.sh | 4 + src/vgmtest.c | 9 +- src/vrstest.c | 2 +- src/zcroll.c | 57 +++--- wcpu.exe | Bin 13312 -> 13328 bytes 28 files changed, 545 insertions(+), 631 deletions(-) delete mode 100755 EXMMTEST.L16 delete mode 100755 MEMINFO.16W create mode 100755 __seguse.txt create mode 100755 qcata.sh create mode 100755 src/util/qfoot.sh create mode 100755 src/util/qhead.sh diff --git a/EXMMTEST.L16 b/EXMMTEST.L16 deleted file mode 100755 index 5c2f9577..00000000 --- a/EXMMTEST.L16 +++ /dev/null @@ -1,472 +0,0 @@ -MM_GetPtr - baseptr=1430:1db4 useptr=1430:1db4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec62 &useptr=1430:1e20 -MM_GetPtr - baseptr=1430:1ba6 useptr=1430:1ba6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e30 -MM_GetPtr - baseptr=1430:1ba8 useptr=1430:1ba8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e40 -MM_GetPtr - baseptr=1430:1baa useptr=1430:1baa - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e50 -MM_GetPtr - baseptr=1430:1bac useptr=1430:1bac - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e60 -MM_GetPtr - baseptr=1430:1bae useptr=1430:1bae - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e70 -MM_GetPtr - baseptr=1430:1bb0 useptr=1430:1bb0 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e80 -MM_GetPtr - baseptr=1430:1bb2 useptr=1430:1bb2 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1e90 -MM_GetPtr - baseptr=1430:1bb4 useptr=1430:1bb4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ea0 -MM_GetPtr - baseptr=1430:1bb6 useptr=1430:1bb6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1eb0 -MM_GetPtr - baseptr=1430:1bb8 useptr=1430:1bb8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ec0 -MM_GetPtr - baseptr=1430:1bba useptr=1430:1bba - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ed0 -MM_GetPtr - baseptr=1430:1bbc useptr=1430:1bbc - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ee0 -MM_GetPtr - baseptr=1430:1bbe useptr=1430:1bbe - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ef0 -MM_GetPtr - baseptr=1430:1bc0 useptr=1430:1bc0 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f00 -MM_GetPtr - baseptr=1430:1bc2 useptr=1430:1bc2 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f10 -MM_GetPtr - baseptr=1430:1bc4 useptr=1430:1bc4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f20 -MM_GetPtr - baseptr=1430:1bc6 useptr=1430:1bc6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f30 -MM_GetPtr - baseptr=1430:1bc8 useptr=1430:1bc8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f40 -MM_GetPtr - baseptr=1430:1bca useptr=1430:1bca - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f50 -MM_GetPtr - baseptr=1430:1bcc useptr=1430:1bcc - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f60 -MM_GetPtr - baseptr=1430:1bce useptr=1430:1bce - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f70 -MM_GetPtr - baseptr=1430:1bd0 useptr=1430:1bd0 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f80 -MM_GetPtr - baseptr=1430:1bd2 useptr=1430:1bd2 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1f90 -MM_GetPtr - baseptr=1430:1bd4 useptr=1430:1bd4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1fa0 -MM_GetPtr - baseptr=1430:1bd6 useptr=1430:1bd6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1fb0 -MM_GetPtr - baseptr=1430:1bd8 useptr=1430:1bd8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1fc0 -MM_GetPtr - baseptr=1430:1bda useptr=1430:1bda - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1fd0 -MM_GetPtr - baseptr=1430:1bdc useptr=1430:1bdc - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1fe0 -MM_GetPtr - baseptr=1430:1bde useptr=1430:1bde - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:1ff0 -MM_GetPtr - baseptr=1430:1be0 useptr=1430:1be0 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2000 -MM_GetPtr - baseptr=1430:1be2 useptr=1430:1be2 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2010 -MM_GetPtr - baseptr=1430:1be4 useptr=1430:1be4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2020 -MM_GetPtr - baseptr=1430:1be6 useptr=1430:1be6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2030 -MM_GetPtr - baseptr=1430:1be8 useptr=1430:1be8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2040 -MM_GetPtr - baseptr=1430:1bea useptr=1430:1bea - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2050 -MM_GetPtr - baseptr=1430:1bec useptr=1430:1bec - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2060 -MM_GetPtr - baseptr=1430:1bee useptr=1430:1bee - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2070 -MM_GetPtr - baseptr=1430:1bf0 useptr=1430:1bf0 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2080 -MM_GetPtr - baseptr=1430:1bf2 useptr=1430:1bf2 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2090 -MM_GetPtr - baseptr=1430:1bf4 useptr=1430:1bf4 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20a0 -MM_GetPtr - baseptr=1430:1bf6 useptr=1430:1bf6 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20b0 -MM_GetPtr - baseptr=1430:1bf8 useptr=1430:1bf8 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20c0 -MM_GetPtr - baseptr=1430:1bfa useptr=1430:1bfa - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20d0 -MM_GetPtr - baseptr=1430:1bfc useptr=1430:1bfc - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20e0 -MM_GetPtr - baseptr=1430:1bfe useptr=1430:1bfe - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:20f0 -MM_GetPtr - baseptr=1430:1c00 useptr=1430:1c00 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2100 -MM_GetPtr - baseptr=1430:1c02 useptr=1430:1c02 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2110 -MM_GetPtr - baseptr=1430:1c04 useptr=1430:1c04 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2120 -MM_GetPtr - baseptr=1430:1c06 useptr=1430:1c06 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2130 -MM_GetPtr - baseptr=1430:1c08 useptr=1430:1c08 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2140 -MM_GetPtr - baseptr=1430:1c0a useptr=1430:1c0a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2150 -MM_GetPtr - baseptr=1430:1c0c useptr=1430:1c0c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2160 -MM_GetPtr - baseptr=1430:1c0e useptr=1430:1c0e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2170 -MM_GetPtr - baseptr=1430:1c10 useptr=1430:1c10 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2180 -MM_GetPtr - baseptr=1430:1c12 useptr=1430:1c12 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2190 -MM_GetPtr - baseptr=1430:1c14 useptr=1430:1c14 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21a0 -MM_GetPtr - baseptr=1430:1c16 useptr=1430:1c16 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21b0 -MM_GetPtr - baseptr=1430:1c18 useptr=1430:1c18 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21c0 -MM_GetPtr - baseptr=1430:1c1a useptr=1430:1c1a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21d0 -MM_GetPtr - baseptr=1430:1c1c useptr=1430:1c1c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21e0 -MM_GetPtr - baseptr=1430:1c1e useptr=1430:1c1e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:21f0 -MM_GetPtr - baseptr=1430:1c20 useptr=1430:1c20 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2200 -MM_GetPtr - baseptr=1430:1c22 useptr=1430:1c22 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2210 -MM_GetPtr - baseptr=1430:1c24 useptr=1430:1c24 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2220 -MM_GetPtr - baseptr=1430:1c26 useptr=1430:1c26 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2230 -MM_GetPtr - baseptr=1430:1c28 useptr=1430:1c28 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2240 -MM_GetPtr - baseptr=1430:1c2a useptr=1430:1c2a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2250 -MM_GetPtr - baseptr=1430:1c2c useptr=1430:1c2c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2260 -MM_GetPtr - baseptr=1430:1c2e useptr=1430:1c2e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2270 -MM_GetPtr - baseptr=1430:1c30 useptr=1430:1c30 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2280 -MM_GetPtr - baseptr=1430:1c32 useptr=1430:1c32 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2290 -MM_GetPtr - baseptr=1430:1c34 useptr=1430:1c34 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22a0 -MM_GetPtr - baseptr=1430:1c36 useptr=1430:1c36 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22b0 -MM_GetPtr - baseptr=1430:1c38 useptr=1430:1c38 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22c0 -MM_GetPtr - baseptr=1430:1c3a useptr=1430:1c3a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22d0 -MM_GetPtr - baseptr=1430:1c3c useptr=1430:1c3c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22e0 -MM_GetPtr - baseptr=1430:1c3e useptr=1430:1c3e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:22f0 -MM_GetPtr - baseptr=1430:1c40 useptr=1430:1c40 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2300 -MM_GetPtr - baseptr=1430:1c42 useptr=1430:1c42 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2310 -MM_GetPtr - baseptr=1430:1c44 useptr=1430:1c44 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2320 -MM_GetPtr - baseptr=1430:1c46 useptr=1430:1c46 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2330 -MM_GetPtr - baseptr=1430:1c48 useptr=1430:1c48 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2340 -MM_GetPtr - baseptr=1430:1c4a useptr=1430:1c4a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2350 -MM_GetPtr - baseptr=1430:1c4c useptr=1430:1c4c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2360 -MM_GetPtr - baseptr=1430:1c4e useptr=1430:1c4e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2370 -MM_GetPtr - baseptr=1430:1c50 useptr=1430:1c50 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2380 -MM_GetPtr - baseptr=1430:1c52 useptr=1430:1c52 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2390 -MM_GetPtr - baseptr=1430:1c54 useptr=1430:1c54 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23a0 -MM_GetPtr - baseptr=1430:1c56 useptr=1430:1c56 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23b0 -MM_GetPtr - baseptr=1430:1c58 useptr=1430:1c58 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23c0 -MM_GetPtr - baseptr=1430:1c5a useptr=1430:1c5a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23d0 -MM_GetPtr - baseptr=1430:1c5c useptr=1430:1c5c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23e0 -MM_GetPtr - baseptr=1430:1c5e useptr=1430:1c5e - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:23f0 -MM_GetPtr - baseptr=1430:1c60 useptr=1430:1c60 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2400 -MM_GetPtr - baseptr=1430:1c62 useptr=1430:1c62 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2410 -MM_GetPtr - baseptr=1430:1c64 useptr=1430:1c64 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2420 -MM_GetPtr - baseptr=1430:1c66 useptr=1430:1c66 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2430 -MM_GetPtr - baseptr=1430:1c68 useptr=1430:1c68 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2440 -MM_GetPtr - baseptr=1430:1c6a useptr=1430:1c6a - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2450 -MM_GetPtr - baseptr=1430:1c6c useptr=1430:1c6c - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec48 &useptr=1430:2460 -------------------------------------------------------------------------------- -&main()= 1430:6cc1 -buffer: - 1430:0000 &1430:1b78 - 0000 & 1b78 -------------------------------------------------------------------------------- -press any key to continue! -======================================load====================================== -MM_GetPtr - baseptr=1430:1b78 useptr=1430:1b78 - *baseptr=1430:0000 *useptr=1430:0000 - &baseptr=1430:ec64 &useptr=1430:2470 -------------------------------------------------------------------------------- -&main()= 1430:6cc1 -buffer: - 1430:893b &1430:1b78 - 893b & 1b78 -------------------------------------------------------------------------------- - -yay! -======================================read====================================== -------------------------------------------------------------------------------- -&main()= 1430:6cc1 -buffer: - 1430:893b &1430:1b78 - 893b & 1b78 -------------------------------------------------------------------------------- - -yay! -======================================== - DebugMemory_ -======================================== -Memory Usage ------------- -Total: 578k -Free: 170k -With purge: 570k ------------- -MMDUMP.16 created. -======================================== - MM_Report_ -======================================== - ÉLIMEMS 1 - ÇÄEMM v4.0 available - ÇÄtotalEMSpages: 4032 freeEMSpages: 3939 - ÇÄEMSPageFrame: e000 - ÓÄEMSmem: 64536576 - ÉXMS 1 - ÇÄXMS v3.0 available - ÇÄXMSDriver: c83f:0010 - ÇÄXMSHandle: 0800 - ÓÄXMSmem: 2097152 - ÉConv. 1 - ÓÄTotal: 578k Free: 170k With purge:570k -nearheap: 3884 farheap: 588812 -======================================== -near= 1430:eec8 far= 2431:009c -&near= 1430:1dc0 &far= 1430:1dbc -bigb= 1430:0000 &bigb=1430:1b78 -======================================== - -_memavl(): 4404 -HC_farcoreleft(): 962022 -HC_GetNearFreeSize(): 4406 -HC_GetFarFreeSize(): 40134 -Project 16 exmmtest.exe. This is just a test file! -version Feb 22 2017 12:35:11 -debugmm: 1 diff --git a/MEMINFO.16W b/MEMINFO.16W deleted file mode 100755 index e69de29b..00000000 diff --git a/TODO.md b/TODO.md index 2402c78b..6107ab78 100755 --- a/TODO.md +++ b/TODO.md @@ -4,7 +4,7 @@ What needs to be done - [ ] Fix pngwen's pcx rendering code it dose not render large relolution pcx files well at all! almost done - [ ] tweak animation frame perloop and make the dpad controls a case switch (look at commander keen code?) and vsync horizontal animation - [x] ~~movement and player movement when reaching edge of map~~ -- [ ] sprite rendering +- [x] sprite rendering - [ ] text box rendering - [x] text rendering - [x] ~~YAY! map loading~~ @@ -13,15 +13,15 @@ What needs to be done - [ ] item inventory~ * ==working on extending== - [ ] Memory management [EMS + XMS] done but not tested... -- [ ] case switch with keyboard code +- [x] case switch with keyboard code - when your holding 2 arrow keys and a key is released the keyboard controller dose not read input from the port anymore for some weired reason - [ ] masking layer! [i think this is not easy to accomplish!] - [x] ~~8088 detection to turn off vsync!~~ -- [ ] *very important!* optimize draw row and draw col +- [x] *very important!* optimize draw row and draw col - [ ] Study verge2's map system, - [ ] save feature! +- [ ] config feature! - [ ] *also important* interperator! and possibly custom map system -- [ ] *also important* lua scripting system! - [ ] extend the map system! - [x] ~~opl2/3 audio!!!!~~ - [ ] engine core! @@ -29,7 +29,7 @@ What needs to be done - [ ] *MOST important!* FUCKING MASSIVE DATA MANAGEMENT!!! - [ ] MUSIC PLAYBACK!!!! WWWW - [ ] basic SFX from opl2 + pc speaker! -- [ ] clean up repository after event 1. +- [ ] clean up repository after event 1.?? - [ ] script system for text and interaction - [ ] ====00 IMPORTANT! 00==== AS PART OF FINISHING THE GRAPHICAL LIB. Make a palette manager that updates the display palette with the pallet of images and sprites. in a stack and reuse same colors in the pallette on the image by changing the image's values to the matching color. - Use a little database to keep track of the images loaded and have manipulated the display pallette. diff --git a/__seguse.txt b/__seguse.txt new file mode 100755 index 00000000..d9d49f56 --- /dev/null +++ b/__seguse.txt @@ -0,0 +1,352 @@ +------------------------------------------------------------------------------- + ./qkeen.sh start +------------------------------------------------------------------------------- +16/keen/id_ca.c:byte _seg *tinf; +16/keen/id_ca.c:unsigned _seg *mapsegs[3]; +16/keen/id_ca.c:maptype _seg *mapheaderseg[NUMMAPS]; +16/keen/id_ca.c:byte _seg *audiosegs[NUMSNDCHUNKS]; +16/keen/id_ca.c:void _seg *grsegs[NUMCHUNKS]; +16/keen/id_ca.c:long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/keen/id_ca.c:long _seg *audiostarts; // array of offsets in audio / audiot +16/keen/id_ca.c: grstarts = (long _seg *)FP_SEG(&EGAhead); +16/keen/id_ca.c: grstarts = (long _seg *)FP_SEG(&CGAhead); +16/keen/id_ca.c: tinf = (byte _seg *)FP_SEG(&maphead); +16/keen/id_ca.c: audiostarts = (long _seg *)FP_SEG(&audiohead); +16/keen/id_ca.c: spritetype _seg *dest; +16/keen/id_ca.c: dest = (spritetype _seg *)grsegs[chunk]; +16/keen/id_ca.c: dest = (spritetype _seg *)grsegs[chunk]; +16/keen/id_ca.c: pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum]; +16/keen/id_ca.c: CA_FarRead (maphandle,bufferseg,((mapfiletype _seg *)tinf)->headersize[mapnum]); +16/keen/id_ca.c: ((mapfiletype _seg *)tinf)->RLEWtag); +16/keen/id_ca.c: ((mapfiletype _seg *)tinf)->RLEWtag); +16/keen/id_ca.c: source = (byte _seg *)bufferseg+(pos-bufferstart); +16/keen/id_in.c:static byte _seg *DemoBuffer; +16/keen/id_in.c:IN_StartDemoPlayback(byte _seg *buffer,word bufsize) +16/keen/id_rf.c: spritetype _seg *block; +16/keen/id_rf.c: block = (spritetype _seg *)grsegs[spritenumber]; +16/keen/id_rf.c: spritetype _seg *block; +16/keen/id_rf.c: block = (spritetype _seg *)grsegs[spritenumber]; +16/keen/id_sd.c: word *SoundTable; // Really * _seg *SoundTable, but that don't work +16/keen/id_vw.c:pictabletype _seg *pictable; +16/keen/id_vw.c:pictabletype _seg *picmtable; +16/keen/id_vw.c:spritetabletype _seg *spritetable; +16/keen/id_vw.c: fontstruct _seg *font); +16/keen/id_vw.c: spritetype _seg *block; +16/keen/id_vw.c: block = (spritetype _seg *)grsegs[chunknum]; +16/keen/id_vw.c:VWL_MeasureString (char far *string, word *width, word *height, fontstruct _seg *font) +16/keen/id_vw.c: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONT]); +16/keen/id_vw.c: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONTM]); +16/keen/id_vw.c: spritetype _seg *block; +16/keen/id_vw.c: block = (spritetype _seg *)grsegs[chunknum]; +16/keen/kd_act2.c: map = (unsigned _seg *)mapsegs[1]+ +16/keen/kd_act2.c: map = (unsigned _seg *)mapsegs[1]+ +16/keen/kd_act2.c: map = (unsigned _seg *)mapsegs[1]+ +16/keen/kd_keen.c: spritetype _seg *block; +16/keen/kd_keen.c: block = (spritetype _seg *)grsegs[SCOREBOXSPR]; +16/keen/kd_keen.c: spritetype _seg *dest; +16/keen/kd_keen.c: dest = (spritetype _seg *)grsegs[SCOREBOXSPR]; +16/keen/kd_keen.c: spritetype _seg *block; +16/keen/kd_keen.c: block = (spritetype _seg *)grsegs[SCOREBOXSPR]; +16/keen/kd_keen.c: block = (spritetype _seg *)grsegs[SCOREBOXSPR]; +16/keen/kd_keen.c: block = (spritetype _seg *)grsegs[SCOREBOXSPR]; +16/keen/kd_keen.c: tile = *((unsigned _seg *)mapsegs[2]+mapbwidthtable[y]/2+x); +16/keen/kd_keen.c: map = (unsigned _seg *)mapsegs[1]+ +16/keen/kd_keen.c: map = (unsigned _seg *)mapsegs[1]+ +16/keen/kd_keen.c: map = (unsigned _seg *)mapsegs[1]+mapbwidthtable[ob->tiletop]/2+ob->temp4; +16/keen/kd_keen.c: map = (unsigned _seg *)mapsegs[1]+mapbwidthtable[ob->tilebottom]/2+ob->temp4; +16/keen/kd_main.c: spritetype _seg *block; +16/keen/kd_main.c: block = (spritetype _seg *)grsegs[sprite]; +16/keen/id_ca.h:extern byte _seg *tinf; +16/keen/id_ca.h:extern unsigned _seg *mapsegs[3]; +16/keen/id_ca.h:extern maptype _seg *mapheaderseg[NUMMAPS]; +16/keen/id_ca.h:extern byte _seg *audiosegs[NUMSNDCHUNKS]; +16/keen/id_ca.h:extern void _seg *grsegs[NUMCHUNKS]; +16/keen/id_in.h: IN_StartDemoPlayback(byte _seg *buffer,word bufsize), +16/keen/id_mm.h:typedef void _seg * memptr; +16/keen/id_vw.h:extern pictabletype _seg *pictable; +16/keen/id_vw.h:extern pictabletype _seg *picmtable; +16/keen/id_vw.h:extern spritetabletype _seg *spritetable; +=============== ./qkeen.sh end =============== +------------------------------------------------------------------------------- + ./qwolf.sh start +------------------------------------------------------------------------------- +==== 16/wf3d8086 ==== +16/wf3d8086/contigsc.c:byte _seg *endscalermemory; +16/wf3d8086/contigsc.c: endscalermemory = (void _seg *)(seg+ofs/16); +16/wf3d8086/contigsc.c: t_compshape _seg *shape; +16/wf3d8086/contigsc.c: t_compshape _seg *shape; +16/wf3d8086/id_ca.c:byte _seg *tinf; +16/wf3d8086/id_ca.c:unsigned _seg *mapsegs[MAPPLANES]; +16/wf3d8086/id_ca.c:maptype _seg *mapheaderseg[NUMMAPS]; +16/wf3d8086/id_ca.c:byte _seg *audiosegs[NUMSNDCHUNKS]; +16/wf3d8086/id_ca.c:void _seg *grsegs[NUMCHUNKS]; +16/wf3d8086/id_ca.c:long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/wf3d8086/id_ca.c:long _seg *audiostarts; // array of offsets in audio / audiot +16/wf3d8086/id_ca.c: grstarts = (long _seg *)FP_SEG(&EGAhead); +16/wf3d8086/id_ca.c: tinf = (byte _seg *)FP_SEG(&maphead); +16/wf3d8086/id_ca.c: pos = ((mapfiletype _seg *)tinf)->headeroffsets[i]; +16/wf3d8086/id_ca.c: audiostarts = (long _seg *)FP_SEG(&audiohead); +16/wf3d8086/id_ca.c: ((mapfiletype _seg *)tinf)->RLEWtag); +16/wf3d8086/id_ca.c: ((mapfiletype _seg *)tinf)->RLEWtag); +16/wf3d8086/id_ca.c: source = (byte _seg *)bufferseg+(pos-bufferstart); +16/wf3d8086/id_in.c: byte _seg *DemoBuffer; +16/wf3d8086/id_pm.c: _seg *PMSegPages; +16/wf3d8086/id_pm.c: void _seg *buf; +16/wf3d8086/id_pm.c: MM_FreePtr(&(void _seg *)PMSegPages); +16/wf3d8086/id_sd.c: word *SoundTable; // Really * _seg *SoundTable, but that don't work +16/wf3d8086/id_sd.c: word _seg *DigiList; +16/wf3d8086/id_vh.c:pictabletype _seg *pictable; +16/wf3d8086/id_vh.c: byte _seg *temp, far *dest, far *srcline; +16/wf3d8086/id_vh.c: , fontstruct _seg *font) +16/wf3d8086/id_vh.c: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONT+fontnumber]); +16/wf3d8086/id_vh.c: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONTM+fontnumber]); +16/wf3d8086/id_vh.c: src = (byte _seg *)grsegs[STARTTILE8]; +16/wf3d8086/id_vh.c: src = (byte _seg *)grsegs[STARTTILE16]; +16/wf3d8086/id_vh.c: src = (byte _seg *)grsegs[STARTTILE16+i]; +16/wf3d8086/oldscale.c:t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +16/wf3d8086/oldscale.c:t_compscale _seg *work; +16/wf3d8086/oldscale.c: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/wf3d8086/oldscale.c: t_compshape _seg *shape; +16/wf3d8086/oldscale.c: t_compscale _seg *comptable; +16/wf3d8086/oldscale.c: t_compshape _seg *shape; +16/wf3d8086/oldscale.c: t_compscale _seg *comptable; +16/wf3d8086/wl_debug.c: spritetype _seg *block; +16/wf3d8086/wl_debug.c:extern word _seg *DigiList; +16/wf3d8086/wl_menu.c: fontstruct _seg *font; +16/wf3d8086/wl_scale.c:t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +16/wf3d8086/wl_scale.c:t_compscale _seg *work; +16/wf3d8086/wl_scale.c: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/wf3d8086/wl_scale.c: t_compshape _seg *shape; +16/wf3d8086/wl_scale.c: t_compscale _seg *comptable; +16/wf3d8086/wl_scale.c: t_compshape _seg *shape; +16/wf3d8086/wl_scale.c: t_compscale _seg *comptable; +16/wf3d8086/wl_text.c: text = (char _seg *)grsegs[artnum]; +16/wf3d8086/wl_text.c: text = (char _seg *)layout; +16/wf3d8086/wl_text.c: text = (char _seg *)grsegs[artnum]; +16/wf3d8086/wl_text.c: text = (char _seg *)layout; +16/wf3d8086/id_ca.h:extern byte _seg *tinf; +16/wf3d8086/id_ca.h:extern unsigned _seg *mapsegs[MAPPLANES]; +16/wf3d8086/id_ca.h:extern maptype _seg *mapheaderseg[NUMMAPS]; +16/wf3d8086/id_ca.h:extern byte _seg *audiosegs[NUMSNDCHUNKS]; +16/wf3d8086/id_ca.h:extern void _seg *grsegs[NUMCHUNKS]; +16/wf3d8086/id_ca.h:extern long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/wf3d8086/id_ca.h:extern long _seg *audiostarts; // array of offsets in audio / audiot +16/wf3d8086/id_in.h:extern byte _seg *DemoBuffer; +16/wf3d8086/id_mm.h:typedef void _seg * memptr; +16/wf3d8086/id_vh.h:extern pictabletype _seg *pictable; +16/wf3d8086/id_vh.h:extern pictabletype _seg *picmtable; +16/wf3d8086/id_vh.h:extern spritetabletype _seg *spritetable; +16/wf3d8086/wl_def.h:extern t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +==== 16/wolf3d/WOLFSRC ==== +16/wolf3d/WOLFSRC/CONTIGSC.C:byte _seg *endscalermemory; +16/wolf3d/WOLFSRC/CONTIGSC.C: endscalermemory = (void _seg *)(seg+ofs/16); +16/wolf3d/WOLFSRC/CONTIGSC.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/CONTIGSC.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/ID_CA.C:byte _seg *tinf; +16/wolf3d/WOLFSRC/ID_CA.C:unsigned _seg *mapsegs[MAPPLANES]; +16/wolf3d/WOLFSRC/ID_CA.C:maptype _seg *mapheaderseg[NUMMAPS]; +16/wolf3d/WOLFSRC/ID_CA.C:byte _seg *audiosegs[NUMSNDCHUNKS]; +16/wolf3d/WOLFSRC/ID_CA.C:void _seg *grsegs[NUMCHUNKS]; +16/wolf3d/WOLFSRC/ID_CA.C:long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/wolf3d/WOLFSRC/ID_CA.C:long _seg *audiostarts; // array of offsets in audio / audiot +16/wolf3d/WOLFSRC/ID_CA.C: grstarts = (long _seg *)FP_SEG(&EGAhead); +16/wolf3d/WOLFSRC/ID_CA.C: tinf = (byte _seg *)FP_SEG(&maphead); +16/wolf3d/WOLFSRC/ID_CA.C: pos = ((mapfiletype _seg *)tinf)->headeroffsets[i]; +16/wolf3d/WOLFSRC/ID_CA.C: audiostarts = (long _seg *)FP_SEG(&audiohead); +16/wolf3d/WOLFSRC/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/wolf3d/WOLFSRC/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/wolf3d/WOLFSRC/ID_CA.C: source = (byte _seg *)bufferseg+(pos-bufferstart); +16/wolf3d/WOLFSRC/ID_IN.C: byte _seg *DemoBuffer; +16/wolf3d/WOLFSRC/ID_PM.C: _seg *PMSegPages; +16/wolf3d/WOLFSRC/ID_PM.C: void _seg *buf; +16/wolf3d/WOLFSRC/ID_PM.C: MM_FreePtr(&(void _seg *)PMSegPages); +16/wolf3d/WOLFSRC/ID_SD.C: word *SoundTable; // Really * _seg *SoundTable, but that don't work +16/wolf3d/WOLFSRC/ID_SD.C: word _seg *DigiList; +16/wolf3d/WOLFSRC/ID_VH.C:pictabletype _seg *pictable; +16/wolf3d/WOLFSRC/ID_VH.C: byte _seg *temp, far *dest, far *srcline; +16/wolf3d/WOLFSRC/ID_VH.C: , fontstruct _seg *font) +16/wolf3d/WOLFSRC/ID_VH.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONT+fontnumber]); +16/wolf3d/WOLFSRC/ID_VH.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONTM+fontnumber]); +16/wolf3d/WOLFSRC/ID_VH.C: src = (byte _seg *)grsegs[STARTTILE8]; +16/wolf3d/WOLFSRC/ID_VH.C: src = (byte _seg *)grsegs[STARTTILE16]; +16/wolf3d/WOLFSRC/ID_VH.C: src = (byte _seg *)grsegs[STARTTILE16+i]; +16/wolf3d/WOLFSRC/OLDSCALE.C:t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +16/wolf3d/WOLFSRC/OLDSCALE.C:t_compscale _seg *work; +16/wolf3d/WOLFSRC/OLDSCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/wolf3d/WOLFSRC/OLDSCALE.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/OLDSCALE.C: t_compscale _seg *comptable; +16/wolf3d/WOLFSRC/OLDSCALE.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/OLDSCALE.C: t_compscale _seg *comptable; +16/wolf3d/WOLFSRC/WL_DEBUG.C: spritetype _seg *block; +16/wolf3d/WOLFSRC/WL_DEBUG.C:extern word _seg *DigiList; +16/wolf3d/WOLFSRC/WL_MENU.C: fontstruct _seg *font; +16/wolf3d/WOLFSRC/WL_SCALE.C:t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +16/wolf3d/WOLFSRC/WL_SCALE.C:t_compscale _seg *work; +16/wolf3d/WOLFSRC/WL_SCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/wolf3d/WOLFSRC/WL_SCALE.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/WL_SCALE.C: t_compscale _seg *comptable; +16/wolf3d/WOLFSRC/WL_SCALE.C: t_compshape _seg *shape; +16/wolf3d/WOLFSRC/WL_SCALE.C: t_compscale _seg *comptable; +16/wolf3d/WOLFSRC/WL_TEXT.C: text = (char _seg *)grsegs[artnum]; +16/wolf3d/WOLFSRC/WL_TEXT.C: text = (char _seg *)layout; +16/wolf3d/WOLFSRC/WL_TEXT.C: text = (char _seg *)grsegs[artnum]; +16/wolf3d/WOLFSRC/WL_TEXT.C: text = (char _seg *)layout; +16/wolf3d/WOLFSRC/ID_CA.H:extern byte _seg *tinf; +16/wolf3d/WOLFSRC/ID_CA.H:extern unsigned _seg *mapsegs[MAPPLANES]; +16/wolf3d/WOLFSRC/ID_CA.H:extern maptype _seg *mapheaderseg[NUMMAPS]; +16/wolf3d/WOLFSRC/ID_CA.H:extern byte _seg *audiosegs[NUMSNDCHUNKS]; +16/wolf3d/WOLFSRC/ID_CA.H:extern void _seg *grsegs[NUMCHUNKS]; +16/wolf3d/WOLFSRC/ID_CA.H:extern long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/wolf3d/WOLFSRC/ID_CA.H:extern long _seg *audiostarts; // array of offsets in audio / audiot +16/wolf3d/WOLFSRC/ID_IN.H:extern byte _seg *DemoBuffer; +16/wolf3d/WOLFSRC/ID_MM.H:typedef void _seg * memptr; +16/wolf3d/WOLFSRC/ID_VH.H:extern pictabletype _seg *pictable; +16/wolf3d/WOLFSRC/ID_VH.H:extern pictabletype _seg *picmtable; +16/wolf3d/WOLFSRC/ID_VH.H:extern spritetabletype _seg *spritetable; +16/wolf3d/WOLFSRC/WL_DEF.H:extern t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +=============== ./qwolf.sh end =============== +------------------------------------------------------------------------------- + ./qcata.sh start +------------------------------------------------------------------------------- +==== 16/Catacomb3D ==== +16/Catacomb3D/C3_DEBUG.C: spritetype _seg *block; +16/Catacomb3D/C3_GAME.C: text = (char _seg *)grsegs[LEVEL1TEXT+mapon]; +16/Catacomb3D/C3_GAME.C: src = (byte _seg *)grsegs[STARTTILE8]; +16/Catacomb3D/C3_GAME.C: src = (byte _seg *)grsegs[STARTTILE16]; +16/Catacomb3D/C3_GAME.C: src = (byte _seg *)grsegs[STARTTILE16+i]; +16/Catacomb3D/C3_SCALE.C:t_compscale _seg *scaledirectory[MAXSCALE+1]; +16/Catacomb3D/C3_SCALE.C:t_compshape _seg *shapedirectory[NUMSCALEPICS]; +16/Catacomb3D/C3_SCALE.C: plane0 = (byte _seg *)grsegs[picnum]; +16/Catacomb3D/C3_SCALE.C: t_compscale _seg *work; +16/Catacomb3D/C3_SCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/Catacomb3D/C3_SCALE.C:unsigned BuildCompShape (t_compshape _seg **finalspot) +16/Catacomb3D/C3_SCALE.C: t_compshape _seg *work; +16/Catacomb3D/C3_SCALE.C: work = (t_compshape _seg *)(0xa000+(buff+15)/16); +16/Catacomb3D/C3_SCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/Catacomb3D/C3_SCALE.C:void ScaleShape (int xcenter, t_compshape _seg *compshape, unsigned scale) +16/Catacomb3D/C3_SCALE.C: t_compscale _seg *comptable; +16/Catacomb3D/C3_WIZ.C: text = (char _seg *)grsegs[LEVEL1TEXT+mapon]+textstarts[number]; +16/Catacomb3D/ID_CA.C:byte _seg *tinf; +16/Catacomb3D/ID_CA.C:unsigned _seg *mapsegs[3]; +16/Catacomb3D/ID_CA.C:maptype _seg *mapheaderseg[NUMMAPS]; +16/Catacomb3D/ID_CA.C:byte _seg *audiosegs[NUMSNDCHUNKS]; +16/Catacomb3D/ID_CA.C:void _seg *grsegs[NUMCHUNKS]; +16/Catacomb3D/ID_CA.C:long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/Catacomb3D/ID_CA.C:long _seg *audiostarts; // array of offsets in audio / audiot +16/Catacomb3D/ID_CA.C: grstarts = (long _seg *)FP_SEG(&EGAhead); +16/Catacomb3D/ID_CA.C: grstarts = (long _seg *)FP_SEG(&CGAhead); +16/Catacomb3D/ID_CA.C: tinf = (byte _seg *)FP_SEG(&maphead); +16/Catacomb3D/ID_CA.C: audiostarts = (long _seg *)FP_SEG(&audiohead); +16/Catacomb3D/ID_CA.C: spritetype _seg *dest; +16/Catacomb3D/ID_CA.C: dest = (spritetype _seg *)grsegs[chunk]; +16/Catacomb3D/ID_CA.C: dest = (spritetype _seg *)grsegs[chunk]; +16/Catacomb3D/ID_CA.C: pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum]; +16/Catacomb3D/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/Catacomb3D/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/Catacomb3D/ID_CA.C: source = (byte _seg *)bufferseg+(pos-bufferstart); +16/Catacomb3D/ID_IN.C: byte _seg *DemoBuffer; +16/Catacomb3D/ID_IN.C:IN_StartDemoPlayback(byte _seg *buffer,word bufsize) +16/Catacomb3D/ID_RF.C: spritetype _seg *block; +16/Catacomb3D/ID_RF.C: block = (spritetype _seg *)grsegs[spritenumber]; +16/Catacomb3D/ID_RF.C: spritetype _seg *block; +16/Catacomb3D/ID_RF.C: block = (spritetype _seg *)grsegs[spritenumber]; +16/Catacomb3D/ID_SD.C: word *SoundTable; // Really * _seg *SoundTable, but that don't work +16/Catacomb3D/ID_VW.C:pictabletype _seg *pictable; +16/Catacomb3D/ID_VW.C:pictabletype _seg *picmtable; +16/Catacomb3D/ID_VW.C:spritetabletype _seg *spritetable; +16/Catacomb3D/ID_VW.C: fontstruct _seg *font); +16/Catacomb3D/ID_VW.C: spritetype _seg *block; +16/Catacomb3D/ID_VW.C: block = (spritetype _seg *)grsegs[chunknum]; +16/Catacomb3D/ID_VW.C:VWL_MeasureString (char far *string, word *width, word *height, fontstruct _seg *font) +16/Catacomb3D/ID_VW.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONT+fontnumber]); +16/Catacomb3D/ID_VW.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONTM+fontnumber]); +16/Catacomb3D/ID_VW.C: spritetype _seg *block; +16/Catacomb3D/ID_VW.C: block = (spritetype _seg *)grsegs[chunknum]; +16/Catacomb3D/C3_DEF.H:extern t_compscale _seg *scaledirectory[MAXSCALE+1]; +16/Catacomb3D/C3_DEF.H:extern t_compshape _seg *shapedirectory[NUMSCALEPICS]; +16/Catacomb3D/C3_DEF.H:void ScaleShape (int xcenter, t_compshape _seg *compshape, unsigned scale); +16/Catacomb3D/C3_DEF.H:unsigned BuildCompShape (t_compshape _seg **finalspot); +16/Catacomb3D/ID_CA.H:extern byte _seg *tinf; +16/Catacomb3D/ID_CA.H:extern unsigned _seg *mapsegs[3]; +16/Catacomb3D/ID_CA.H:extern maptype _seg *mapheaderseg[NUMMAPS]; +16/Catacomb3D/ID_CA.H:extern byte _seg *audiosegs[NUMSNDCHUNKS]; +16/Catacomb3D/ID_CA.H:extern void _seg *grsegs[NUMCHUNKS]; +16/Catacomb3D/ID_IN.H:extern byte _seg *DemoBuffer; +16/Catacomb3D/ID_IN.H: IN_StartDemoPlayback(byte _seg *buffer,word bufsize), +16/Catacomb3D/ID_MM.H:typedef void _seg * memptr; +16/Catacomb3D/ID_VW.H:extern pictabletype _seg *pictable; +16/Catacomb3D/ID_VW.H:extern pictabletype _seg *picmtable; +16/Catacomb3D/ID_VW.H:extern spritetabletype _seg *spritetable; +==== 16/CatacombApocalypse ==== +16/CatacombApocalypse/C6_GAME.C: text = (char _seg *)grsegs[LEVEL1TEXT+mapon]; +16/CatacombApocalypse/C6_GAME.C: src = (byte _seg *)grsegs[STARTTILE8]; +16/CatacombApocalypse/C6_GAME.C: src = (byte _seg *)grsegs[STARTTILE16]; +16/CatacombApocalypse/C6_GAME.C: src = (byte _seg *)grsegs[STARTTILE16+i]; +16/CatacombApocalypse/C6_SCALE.C:t_compscale _seg *scaledirectory[NUMSCALEPICS]; +16/CatacombApocalypse/C6_SCALE.C:t_compshape _seg *shapedirectory[NUMSCALEPICS]; +16/CatacombApocalypse/C6_SCALE.C: plane0 = (byte _seg *)grsegs[picnum]; +16/CatacombApocalypse/C6_SCALE.C: t_compscale _seg *work; +16/CatacombApocalypse/C6_SCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/CatacombApocalypse/C6_SCALE.C:unsigned BuildCompShape (t_compshape _seg **finalspot) +16/CatacombApocalypse/C6_SCALE.C: t_compshape _seg *work; +16/CatacombApocalypse/C6_SCALE.C: work = (t_compshape _seg *)(0xa000+(buff+15)/16); +16/CatacombApocalypse/C6_SCALE.C: _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); +16/CatacombApocalypse/C6_SCALE.C:void ScaleShape (int xcenter, t_compshape _seg *compshape, unsigned scale) +16/CatacombApocalypse/C6_SCALE.C: t_compscale _seg *comptable; +16/CatacombApocalypse/C6_WIZ.C: text = (char _seg *)grsegs[LEVEL1TEXT+mapon]+textstarts[number]; +16/CatacombApocalypse/C6_WIZ.C: txt = (char _seg *)grsegs[SCROLLTEXT]; +16/CatacombApocalypse/C6_WIZ.C: txt = (char _seg *)grsegs[SCROLLTEXT]+ofset; +16/CatacombApocalypse/GELIB.C: fontstruct _seg *font = (fontstruct _seg *)grsegs[STARTFONT]; +16/CatacombApocalypse/ID_CA.C:byte _seg *tinf; +16/CatacombApocalypse/ID_CA.C:unsigned _seg *mapsegs[3]; +16/CatacombApocalypse/ID_CA.C:maptype _seg *mapheaderseg[NUMMAPS]; +16/CatacombApocalypse/ID_CA.C:byte _seg *audiosegs[NUMSNDCHUNKS]; +16/CatacombApocalypse/ID_CA.C:void _seg *grsegs[NUMCHUNKS]; +16/CatacombApocalypse/ID_CA.C:long _seg *grstarts; // array of offsets in egagraph, -1 for sparse +16/CatacombApocalypse/ID_CA.C:long _seg *audiostarts; // array of offsets in audio / audiot +16/CatacombApocalypse/ID_CA.C: grstarts = (long _seg *)FP_SEG(&EGAhead); +16/CatacombApocalypse/ID_CA.C: grstarts = (long _seg *)FP_SEG(&CGAhead); +16/CatacombApocalypse/ID_CA.C: tinf = (byte _seg *)FP_SEG(&maphead); +16/CatacombApocalypse/ID_CA.C: audiostarts = (long _seg *)FP_SEG(&audiohead); +16/CatacombApocalypse/ID_CA.C: spritetype _seg *dest; +16/CatacombApocalypse/ID_CA.C: dest = (spritetype _seg *)grsegs[chunk]; +16/CatacombApocalypse/ID_CA.C: dest = (spritetype _seg *)grsegs[chunk]; +16/CatacombApocalypse/ID_CA.C: pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum]; +16/CatacombApocalypse/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/CatacombApocalypse/ID_CA.C: ((mapfiletype _seg *)tinf)->RLEWtag); +16/CatacombApocalypse/ID_CA.C: source = (byte _seg *)bufferseg+(pos-bufferstart); +16/CatacombApocalypse/ID_IN.C:// byte _seg *DemoBuffer; +16/CatacombApocalypse/ID_IN.C:IN_StartDemoPlayback(byte _seg *buffer,word bufsize) +16/CatacombApocalypse/ID_RF.C: spritetype _seg *block; +16/CatacombApocalypse/ID_RF.C: block = (spritetype _seg *)grsegs[spritenumber]; +16/CatacombApocalypse/ID_RF.C: spritetype _seg *block; +16/CatacombApocalypse/ID_RF.C: block = (spritetype _seg *)grsegs[spritenumber]; +16/CatacombApocalypse/ID_SD.C: word *SoundTable; // Really * _seg *SoundTable, but that don't work +16/CatacombApocalypse/ID_VW.C:pictabletype _seg *pictable; +16/CatacombApocalypse/ID_VW.C:pictabletype _seg *picmtable; +16/CatacombApocalypse/ID_VW.C:spritetabletype _seg *spritetable; +16/CatacombApocalypse/ID_VW.C: fontstruct _seg *font); +16/CatacombApocalypse/ID_VW.C: spritetype _seg *block; +16/CatacombApocalypse/ID_VW.C: block = (spritetype _seg *)grsegs[chunknum]; +16/CatacombApocalypse/ID_VW.C:VWL_MeasureString (char far *string, word *width, word *height, fontstruct _seg *font) +16/CatacombApocalypse/ID_VW.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONT+fontnumber]); +16/CatacombApocalypse/ID_VW.C: VWL_MeasureString(string,width,height,(fontstruct _seg *)grsegs[STARTFONTM+fontnumber]); +16/CatacombApocalypse/ID_VW.C: spritetype _seg *block; +16/CatacombApocalypse/ID_VW.C: block = (spritetype _seg *)grsegs[chunknum]; +16/CatacombApocalypse/DEF.H:extern t_compscale _seg *scaledirectory[NUMSCALEPICS]; +16/CatacombApocalypse/DEF.H:extern t_compshape _seg *shapedirectory[NUMSCALEPICS]; +16/CatacombApocalypse/DEF.H:void ScaleShape (int xcenter, t_compshape _seg *compshape, unsigned scale); +16/CatacombApocalypse/DEF.H:unsigned BuildCompShape (t_compshape _seg **finalspot); +16/CatacombApocalypse/ID_CA.H:extern byte _seg *tinf; +16/CatacombApocalypse/ID_CA.H:extern unsigned _seg *mapsegs[3]; +16/CatacombApocalypse/ID_CA.H:extern maptype _seg *mapheaderseg[NUMMAPS]; +16/CatacombApocalypse/ID_CA.H:extern byte _seg *audiosegs[NUMSNDCHUNKS]; +16/CatacombApocalypse/ID_CA.H:extern void _seg *grsegs[NUMCHUNKS]; +16/CatacombApocalypse/ID_IN.H:extern byte _seg *DemoBuffer; +16/CatacombApocalypse/ID_IN.H: IN_StartDemoPlayback(byte _seg *buffer,word bufsize), +16/CatacombApocalypse/ID_MM.H:typedef void _seg * memptr; +16/CatacombApocalypse/ID_VW.H:extern pictabletype _seg *pictable; +16/CatacombApocalypse/ID_VW.H:extern pictabletype _seg *picmtable; +16/CatacombApocalypse/ID_VW.H:extern spritetabletype _seg *spritetable; +16/CatacombApocalypse/ID_VW.H:void VWL_MeasureString (char far *string, word *width, word *height, fontstruct _seg *font); +=============== ./qcata.sh end =============== diff --git a/db.exe b/db.exe index 457a9fa192d31529e39312c63fcfc8b50357625a..af80cac81c36b2b54df02442584b23793f3cadcb 100755 GIT binary patch delta 801 zcmZvaUr5tY6vyxVd38U3`B8sU@4bg}4)>fh*frQS zJmc2qBQy@gfVTw*kwS!ufHL4wT7;VfIzjgV4}mG5vIwC@pc{w*2_T0=xTjk1*CEsj z3e}HX+Xj5iqk^d3U;r`0~uGLSe*H%%P~q z_3VM-7LKr7r4diE)5;n=#`=_6JR*%MM=>sB)#?yVur2i~w;%iM0uB4$iHkNKA-do> zS>9U?Z$rdt?muCzb=QhM8&5+kv6UDO4UzjRF{2sbkX@v$d}4LJyWiqvtZvrYuA(XCsgkP%hfs6_6!<^ z8aB~Qx}=H^umN3@S}&&|`Wjvj(eJAGWA<6sj2+CPZ^JHjSFgb%?1{cFRo6N*J8U?M zO{~XIcclvIY$5)R9V(lRaP%_gkKPGV-M_{`-&&fQFTIFxVE0FT$1TJMX783O)BE0) zzS~&;N1x0GuB(A6LLnTD(oI#|$dttga62n2{-z!KN`oylyc=R@{1owg!R925wl7x( z*WO5#2ell&$1ap=aEx6mwFx!+aN@_>I!}YrTxmlFz9^+t{FZ4D%BWX@Lu&7Vw)_EMa}2rw delta 822 zcmZ9KZAep57{|}qZhF0Y^Bw2f-85b0aE&<>Wm=Y-6uq#Cikfeq41y$_A5y_#h#ePW zaIjh+xYRyYa3M^n)+`mI=))k1eF{di+1mn*u&rlW6dm|o{^xL?|9Q^yJY#)heclJ7 z$^wLZKp1#gh)@E^S0SVU?ubL8yFdr%LEr}92lV?9ss}CrVITtJG9l5N8sdR-JVKMe zG_VLf2KqG!eFYwZ-y*OBx{wKRqIoSsQ$+|33DuaeSWA~OY&cWkI0rspU}lXB+3f7@ zYH#aUTgXQ8x@b6ytc(W+FYoQ<>8ONfOpM=5{gNCIvu3&=xwOy3xbw|aFD=J@+9o}Q zYv^t15Pn7TWaW5)uWY*9MZY1?Dhu|oMdj58xaoLbflS$g=tS#zJnbPj2yQ?1UPWX zq|0I$Y`3K}LM}_0)AYy73SRYlUflm)Tr8~H?qqeYGYlIOgr2Nb5q>Tl&Xr`S2R?eq zItea>M4t5|KO_Dv=EUUnMughcy*Qf+>gJp{A^+P$MHzEg2JjVwV0 z?IccC<#7V;c_RY>BpnhXt&rsP0O9|(5<1yrceFeTiFOlr zR~i{NZ=j#F1*HatKrB2iE{|4l-q>1Gst;R@60K9zvF2`+!mYhjU-TKesw!6DkWf{u z7OAFLUo76z+Dsx>HyN@_x^~Ff1bG8LM`?eFHM5rW#=dRDSrS0IOL$V!kcLkQV*Sr_ fpage[id].dx #define DRAWROWNUM mv->page[id].dy -//#define DRAWCOLNUM player[plid].enti.q -//#define DRAWROLNUM player[plid].enti.q +//#define DRAWCOLNUM pl[plid].enti.q +//#define DRAWROLNUM pl[plid].enti.q //for null map! #define MAPW 40 @@ -64,25 +64,25 @@ //===========================================================================// - //if(player[0].enti.hp==0) printf("%d wwww\n", player[0].enti.y+8); - //else printf("\nplayer[0].enti.y: %d\n", player[0].enti.y); + //if(gvar.player[0].enti.hp==0) printf("%d wwww\n", gvar.player[0].enti.y+8); + //else printf("\ngvar.player[0].enti.y: %d\n", gvar.player[0].enti.y); //printf("gvar.video.p=%u ", gvar.video.p); -//not used now printf("temporary player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n"); -//not used now printf("temporary player sprite 1: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44606385\n"); +//not used now printf("temporary gvar.player sprite 0: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n"); +//not used now printf("temporary gvar.player sprite 1: http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44606385\n"); //printf("mv[%u].tx: %d", gvar.video.panp, mv[gvar.video.panp].tx); printf(" mv[%u].ty: %d ", gvar.video.panp, mv[gvar.video.panp].ty); //printf("gvar.kurokku: "); printf("%.0f ", clock()); printf("tiku=%lu ", gvar.kurokku.tiku); printf("t=%.0f ", gvar.kurokku.t); printf("ticktock()=%f ", ticktock(&gvar)); printf("%.0f fps", (double)gvar.kurokku.tiku/ticktock(&gvar)); //printf("map.width=%d map.height=%d map.data[0]=%d\n", mv[1].map->width, mv[1].map->height, mv[1].map->layerdata[0][0]); //printf("pageflipflop=%u", pageflipflop); //printf("&global_temp_status_text = %Fp\n", &global_temp_status_text); //printf("middle tile position: %dx", gvar.video.page[0].tilemidposscreenx); printf("%d\n", gvar.video.page[0].tilemidposscreeny); -//printf(" aniframe=%u", player[0].enti.persist_aniframe); +//printf(" aniframe=%u", gvar.player[0].enti.persist_aniframe); //printf("mv[0]txy: %dx%d ", mv[0].tx, mv[0].ty); printf("mv[1]txy: %dx%d", mv[1].tx, mv[1].ty); #define SCROLLEXITMESG printf("page[0]dxy: %dx%d", gvar.video.page[0].dx, gvar.video.page[0].dy);\ printf("\n\n");\ - printf("player vars:\n");\ - printf(" xy: %dx%d", player[0].enti.x, player[0].enti.y); printf(" txy: %dx%d", player[0].enti.tx, player[0].enti.ty); printf(" triggxy: %dx%d", player[0].enti.triggerx, player[0].enti.triggery); printf(" value: %d\n", mv[1].map->layerdata[0].data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\ - printf(" hp: %d", (player[0].enti.hp)); printf(" q: %u", player[0].enti.q); printf(" info.dir: %u", player[0].info.dir); printf(" d: %u", player[0].enti.d); printf(" dire: %u", player[0].enti.dire);\ - printf(" pdir: %u\n", player[0].pdir); printf(" delay=%u", player[0].enti.spri.delay);\ + printf("gvar.player vars:\n");\ + printf(" xy: %dx%d", gvar.player[0].enti.x, gvar.player[0].enti.y); printf(" txy: %dx%d", gvar.player[0].enti.tx, gvar.player[0].enti.ty); printf(" triggxy: %dx%d", gvar.player[0].enti.triggerx, gvar.player[0].enti.triggery); printf(" value: %d\n", mv[1].map->layerdata[0].data[(gvar.player[0].enti.triggerx-1)+(map.width*(gvar.player[0].enti.triggery-1))]);\ + printf(" hp: %d", (gvar.player[0].enti.hp)); printf(" q: %u", gvar.player[0].enti.q); printf(" info.dir: %u", gvar.player[0].info.dir); printf(" d: %u", gvar.player[0].enti.d); printf(" dire: %u", gvar.player[0].enti.dire);\ + printf(" pdir: %u\n", gvar.player[0].pdir); printf(" delay=%u", gvar.player[0].enti.spri.delay);\ printf("\n\n");\ VL_PrintmodexmemInfo(&gvar.video);\ \ @@ -107,7 +107,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid); void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid); void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid); void ZC_mapScroll(map_view_t *mv, player_t *player, word pn); -void ZC_playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn, boolean defaultsw); +void ZC_PlayerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn, boolean defaultsw); sword chkmap(map_t *map, word q); void mapGoTo(map_view_t *mv, int tx, int ty); void ZC_mapinitMV(map_view_t *mv, int tx, int ty); @@ -117,10 +117,10 @@ void near mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *player, w void near mapDrawCol(map_view_t *mv, int tx, int ty, word x, player_t *player, word poopoffset); void mapDrawWRow(map_view_t *mv, int tx, int ty, word y); void mapDrawWCol(map_view_t *mv, int tx, int ty, word x); -inline void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid) +inline void near ScrollRight(map_view_t *mv, player_t *pl, word id, word plid) { /* increment the pixel position and update the page */ - mv[id].page->dx += player[plid].enti.speed; + mv[id].page->dx += pl[plid].enti.speed; /* check to see if this changes the tile */ if(mv[id].page->dx >= mv[id].dxThresh ) @@ -134,10 +134,10 @@ inline void near ScrollRight(map_view_t *mv, player_t *player, word id, word pli } } -inline void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid) +inline void near ScrollLeft(map_view_t *mv, player_t *pl, word id, word plid) { /* decrement the pixel position and update the page */ - mv[id].page->dx -= player[plid].enti.speed; + mv[id].page->dx -= pl[plid].enti.speed; /* check to see if this changes the tile */ if(mv[id].page->dx == 0) @@ -151,10 +151,10 @@ inline void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid } } -inline void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid) +inline void near ScrollUp(map_view_t *mv, player_t *pl, word id, word plid) { /* decrement the pixel position and update the page */ - mv[id].page->dy -= player[plid].enti.speed; + mv[id].page->dy -= pl[plid].enti.speed; /* check to see if this changes the tile */ if(mv[id].page->dy == 0 ) @@ -168,10 +168,10 @@ inline void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid) } } -inline void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid) +inline void near ScrollDown(map_view_t *mv, player_t *pl, word id, word plid) { /* increment the pixel position and update the page */ - mv[id].page->dy += player[plid].enti.speed; + mv[id].page->dy += pl[plid].enti.speed; /* check to see if this changes the tile */ if(mv[id].page->dy >= mv[id].dyThresh ) @@ -194,7 +194,7 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn); // Move an entity around. Should actually be in 16_entity boolean ZC_walk2(entity_t *ent, map_view_t *map_v); -// Move player around and call map scrolling if required/possible +// Move gvar.player around and call map scrolling if required/possible void walk_player(player_t *player, map_view_t *map_v); //check map edge @@ -242,7 +242,7 @@ inline boolean ZC_mapEdgeChk(map_view_t *map_v, nibble dir, boolean pansw) return false; } -// Scroll map in one direction (assumed from player's movement) +// Scroll map in one direction (assumed from gvar.player's movement) void mapScroll(map_view_t *mv, player_t *player); #endif /*__SCROLL16_H_*/ diff --git a/src/pcxtest.c b/src/pcxtest.c index 1360cb6d..047fb7a5 100755 --- a/src/pcxtest.c +++ b/src/pcxtest.c @@ -32,13 +32,12 @@ static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */ -#define PCXBMPVAR player[0].data +#define PCXBMPVAR gvar.player[0].data #define PCXBMP *PCXBMPVAR #define PCXBMPPTR PCXBMPVAR void main() { static global_game_variables_t gvar; - static player_t player[MaxPlayers]; //---- planar_buf_t *p; word start; float t1, t2; diff --git a/src/scroll.c b/src/scroll.c index 36a7370c..7fb6f755 100755 --- a/src/scroll.c +++ b/src/scroll.c @@ -46,7 +46,6 @@ unsigned int i; void main(int argc, char *argv[]) { static global_game_variables_t gvar; - static player_t player[MaxPlayers]; if(argv[1]) bakapee = atoi(argv[1]); else bakapee = 1; @@ -69,7 +68,7 @@ void main(int argc, char *argv[]) #endif /* input! */ - IN_Default(0, &player,ctrl_Keyboard1); + IN_Default(0, &gvar.gvar.player,ctrl_Keyboard1); /* save the palette */ #ifdef MODEX @@ -102,7 +101,7 @@ void main(int argc, char *argv[]) &gvar.video.palette = modexNewPal(); modexPalSave(&gvar.video.palette); modexSavePalFile("data/g.pal", &gvar.video.palette); - modexPalBlack(); //so player will not see loadings~ + modexPalBlack(); //so gvar.player will not see loadings~ #endif #endif @@ -117,8 +116,8 @@ void main(int argc, char *argv[]) //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(&mv, 0, 0); - ZC_playerXYpos(0, 0, &player, &mv, 0, 1); - EN_initplayer(&player, 0, &gvar.video); + ZC_gvar.playerXYpos(0, 0, &gvar.player, &mv, 0, 1); + EN_initgvar.player(&gvar.player, 0, &gvar.video); if (gvar.video.sprifilei == -1) { #ifdef FADE @@ -131,9 +130,9 @@ void main(int argc, char *argv[]) } #ifndef SPRITE - modexClearRegion(mv[0].page, player[0].enti.x, player[0].enti.y-TILEWH, 16, 32, 15); + modexClearRegion(mv[0].page, gvar.player[0].enti.x, gvar.player[0].enti.y-TILEWH, 16, 32, 15); #else - modexDrawSpriteRegion(&gvar.video.page[0], player[0].enti.x, player[0].enti.y-TILEWH, 16, 64, 16, 32, PCXBMPPTR); + modexDrawSpriteRegion(&gvar.video.page[0], gvar.player[0].enti.x, gvar.player[0].enti.y-TILEWH, 16, 64, 16, 32, PCXBMPPTR); #endif //if(!pageflipflop) @@ -161,25 +160,25 @@ void main(int argc, char *argv[]) modexFadeOn(4, &gvar.video.palette); #endif #endif - while(!IN_KeyDown(sc_Escape) && player[0].enti.hp>0) + while(!IN_KeyDown(sc_Escape) && gvar.player[0].enti.hp>0) { shinku(&gvar); //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square - //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction - //when player[0].enti.tx or player[0].enti.ty == 0 or player[0].enti.tx == 20 or player[0].enti.ty == 15 then stop because that is edge of map and you do not want to walk of the map + //to stop scrolling and have the gvar.player position data move to the edge of the screen with respect to the direction + //when gvar.player[0].enti.tx or gvar.player[0].enti.ty == 0 or gvar.player[0].enti.tx == 20 or gvar.player[0].enti.ty == 15 then stop because that is edge of map and you do not want to walk of the map - //player movement - IN_ReadControl(0, &player); + //gvar.player movement + IN_ReadControl(0, &gvar.player); if(!panswitch){ - ZC_walk(&mv, &player, 0); + ZC_walk(&mv, &gvar.player, 0); }else{ - PANKEYFUNZC;//panPageManual(&mv, &player, 0); - //printf(" player[0].enti.q: %d", player[0].enti.q); printf(" player[0].d: %d\n", player[0].d); + PANKEYFUNZC;//panPageManual(&mv, &gvar.player, 0); + //printf(" gvar.player[0].enti.q: %d", gvar.player[0].enti.q); printf(" gvar.player[0].d: %d\n", gvar.player[0].d); } //the scripting stuff.... - //if(((player[0].enti.triggerx == TRIGGX && player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5)) - if(((mv[0].map->layerdata[0].data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5)) + //if(((gvar.player[0].enti.triggerx == TRIGGX && gvar.player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(gvar.player[0].enti.tx == 5 && gvar.player[0].enti.ty == 5)) + if(((mv[0].map->layerdata[0].data[(gvar.player[0].enti.triggerx-1)+(map.width*(gvar.player[0].enti.triggery-1))] == 0) && IN_KeyDown(0x1C))||(gvar.player[0].enti.tx == 5 && gvar.player[0].enti.ty == 5)) { short i; for(i=800; i>=400; i--) @@ -188,7 +187,7 @@ void main(int argc, char *argv[]) } nosound(); } - if(player[0].enti.q == (TILEWH/(player[0].enti.speed))+1 && player[0].info.dir != 2 && (player[0].enti.triggerx == 5 && player[0].enti.triggery == 5)){ player[0].enti.hp--; } + if(gvar.player[0].enti.q == (TILEWH/(gvar.player[0].enti.speed))+1 && gvar.player[0].info.dir != 2 && (gvar.player[0].enti.triggerx == 5 && gvar.player[0].enti.triggery == 5)){ gvar.player[0].enti.hp--; } //debugging binds! #ifdef MODEX #ifdef FADE @@ -215,7 +214,7 @@ void main(int argc, char *argv[]) FUNCTIONKEYFUNCTIONS FUNCTIONKEYDRAWJUNK - if(IN_KeyDown(sc_L)){ modexClearRegion(&gvar.video.page[0], player[0].enti.x, player[0].enti.y, 16, 16, 1); } + if(IN_KeyDown(sc_L)){ modexClearRegion(&gvar.video.page[0], gvar.player[0].enti.x, gvar.player[0].enti.y, 16, 16, 1); } //9 #ifdef FADE @@ -223,7 +222,7 @@ void main(int argc, char *argv[]) #endif if(IN_KeyDown(sc_R)){ modexPalOverscan(rand()%56); } //r - if((player[0].enti.q==1) && !(player[0].enti.x%TILEWH==0 && player[0].enti.y%TILEWH==0)) break; //incase things go out of sync! + if((gvar.player[0].enti.q==1) && !(gvar.player[0].enti.x%TILEWH==0 && gvar.player[0].enti.y%TILEWH==0)) break; //incase things go out of sync! } /* fade back to text mode */ diff --git a/src/test.c b/src/test.c index 2885dc46..acd6886a 100755 --- a/src/test.c +++ b/src/test.c @@ -35,7 +35,6 @@ void main(int argc, char *argv[]) { static word paloffset=0; static global_game_variables_t gvar; - static player_t player[MaxPlayers]; map_t map; map_view_t mv[4]; @@ -88,8 +87,8 @@ void main(int argc, char *argv[]) //====modexPalBlack(); //IN_Startup(); - IN_Default(0,&player,ctrl_Keyboard1); - EN_initplayer(&player, 0, &gvar.video); + IN_Default(0,&gvar.player,ctrl_Keyboard1); + EN_initPlayer(&gvar.player, 0, &gvar.video); VGAmodeX(1, 1, &gvar); modexPalBlack(); @@ -141,8 +140,8 @@ void main(int argc, char *argv[]) startclk = *clockw; while(!IN_KeyDown(sc_Escape)) { - IN_ReadControl(0,&player); - ZC_panPageManual(&mv, &player, 0); + IN_ReadControl(0,&gvar.player); + ZC_panPageManual(&mv, &gvar.player, 0); //[gvar.video.sp] //ZC_MVSync(&mv); @@ -189,7 +188,7 @@ void main(int argc, char *argv[]) // modexClearRegion(&gvar.video.page[1], 48, 48, gvar.video.page[1].sw-64, gvar.video.page[1].sh-64, 128); // } //} - PANKEYFUN; + TAIL_PANKEYFUN; if(IN_KeyDown(12)) modexClearRegion(&gvar.video.page[0], (gvar.video.page[0].width/2)-4, (gvar.video.page[0].height/2)-16, 24, 32, 15); if(IN_KeyDown(13)) modexClearRegion(&gvar.video.page[1], (gvar.video.page[1].width/2)-4, (gvar.video.page[1].height/2)-16, 24, 32, 15); /*==== if(IN_KeyDown(7)){ @@ -217,7 +216,7 @@ void main(int argc, char *argv[]) printf("Project 16 test.exe. This is just a test file!\n"); printf("version %s\n", VERSION); VL_PrintmodexmemInfo(&gvar.video); - printf("tx=%d ", mv[gvar.video.sp].tx); printf("ty=%d ", mv[gvar.video.sp].ty); printf("player.d=%d\n", player[0].enti.d); + printf("tx=%d ", mv[gvar.video.sp].tx); printf("ty=%d ", mv[gvar.video.sp].ty); printf("gvar.player.d=%d\n", gvar.player[0].enti.d); printf("\n====\n"); printf("0 paloffset= %d\n", paloffset/3); printf("====\n\n"); diff --git a/src/util/qfoot.sh b/src/util/qfoot.sh new file mode 100755 index 00000000..758f9dc4 --- /dev/null +++ b/src/util/qfoot.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo ===============" "$1 end" "=============== diff --git a/src/util/qhead.sh b/src/util/qhead.sh new file mode 100755 index 00000000..be47f17b --- /dev/null +++ b/src/util/qhead.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo ------------------------------------------------------------------------------- +echo " "$1 start +echo ------------------------------------------------------------------------------- diff --git a/src/vgmtest.c b/src/vgmtest.c index 3aa5cd0c..f20327eb 100755 --- a/src/vgmtest.c +++ b/src/vgmtest.c @@ -48,22 +48,21 @@ UINT8 OPL2_ReadStatus(void) void main(int argc, char *argv[]) { - //++++global_game_variables_t gvar; +// static global_game_variables_t gvar; VGM_FILE pee[9]; - player_t player[MaxPlayers]; char *bakapee; bakapee = malloc(64); if(argv[1]) bakapee = argv[1]; else bakapee = "data/adlib.vgm"; printf("%x\n", OpenVGMFile(bakapee, &pee[0])); - //IN_Startup(); IN_Default(0,&player,ctrl_Keyboard1); +// IN_Startup(); IN_Default(0,&gvar.player,ctrl_Keyboard1); InitEngine(); PlayMusic(&pee[0]); - //while(!IN_KeyDown(sc_Escape)) +// while(!IN_KeyDown(sc_Escape)) while(!kbhit()) { - IN_ReadControl(0,&player); +// IN_ReadControl(0,&gvar.player); UpdateSoundEngine(); } StopMusic(); diff --git a/src/vrstest.c b/src/vrstest.c index 034c81ac..4ca83465 100755 --- a/src/vrstest.c +++ b/src/vrstest.c @@ -144,7 +144,7 @@ void main() // gvar.video.palette[w]=rand(); break; } - FUNCTIONKEYDRAWJUNKNOMV + TAIL_FUNCTIONKEYDRAWJUNKNOMV if(IN_KeyDown(sc_F7)){ VL_ShowPage(&gvar.video.page[0], 1, 1); IN_UserInput(1,1); } if(IN_KeyDown(sc_F6)){ VL_ShowPage(&gvar.video.page[0], 1, 0); IN_UserInput(1,1); } if(IN_KeyDown(25)){ modexpdump(&gvar.video.page[0]); IN_UserInput(1,1); } //p diff --git a/src/zcroll.c b/src/zcroll.c index af771fb7..b5c51d17 100755 --- a/src/zcroll.c +++ b/src/zcroll.c @@ -51,7 +51,6 @@ memptr pal; void main(int argc, char *argv[]) { static global_game_variables_t gvar; - static player_t player[MaxPlayers]; char *bakapee1,*bakapee1p; // sword bakapee; // if(argv[1]) bakapee = atoi(argv[1]); @@ -74,8 +73,8 @@ void main(int argc, char *argv[]) // OK, this one takes hellova time and needs to be done in farmalloc or MM_... //IN CA i think you use CAL_SetupGrFile but i do think we should work together on this part --sparky4 - //player[0].enti.spri = malloc(sizeof(struct sprite)); - player[0].enti.spri.spritesheet = malloc(sizeof(struct vrs_container)); + //gvar.player[0].enti.spri = malloc(sizeof(struct sprite)); + gvar.player[0].enti.spri.spritesheet = malloc(sizeof(struct vrs_container)); // create the map // fprintf(stderr, "testing map load~ "); @@ -86,10 +85,10 @@ void main(int argc, char *argv[]) // fprintf(stderr, "yay map loaded~~\n"); // data - VRS_LoadVRS(bakapee1, &player[0].enti, &gvar); + VRS_LoadVRS(bakapee1, &gvar.player[0].enti, &gvar); // input! - IN_Default(0, &player,ctrl_Keyboard1); + IN_Default(0, &gvar.player,ctrl_Keyboard1); // save the palette #ifdef FADE @@ -114,7 +113,7 @@ void main(int argc, char *argv[]) #ifdef FADE modexPalSave(&gvar.video.palette); modexSavePalFile("data/g.pal", &gvar.video.palette); - modexPalBlack(); //so player will not see loadings~ + modexPalBlack(); //so gvar.player will not see loadings~ #endif // setup camera and screen~ @@ -125,9 +124,9 @@ void main(int argc, char *argv[]) //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(&mv, 0, 0); - ZC_playerXYpos(0, 0, &player, &mv, 0, 1); - EN_initplayer(&player, 0, &gvar.video); - //print_anim_ids(player[0].enti.spri); + ZC_PlayerXYpos(0, 0, &gvar.player, &mv, 0, 1); + EN_initPlayer(&gvar.player, 0, &gvar.video); + //print_anim_ids(gvar.player[0].enti.spri); if (gvar.video.sprifilei == -1) { #ifdef FADE @@ -147,28 +146,28 @@ void main(int argc, char *argv[]) #ifdef FADE modexFadeOn(4, &gvar.video.palette); #endif - while(!IN_KeyDown(sc_Escape) && player[0].enti.hp>0) + while(!IN_KeyDown(sc_Escape) && gvar.player[0].enti.hp>0) { gvar.video.page[0].tlx=mv[0].tx*TILEWH; gvar.video.page[0].tly=mv[0].ty*TILEWH; shinku(&gvar); //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square - //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction - //when player[0].tx or player[0].ty == 0 or player[0].tx == 20 or player[0].ty == 15 then stop because that is edge of map and you do not want to walk of the map + //to stop scrolling and have the gvar.player position data move to the edge of the screen with respect to the direction + //when gvar.player[0].tx or gvar.player[0].ty == 0 or gvar.player[0].tx == 20 or gvar.player[0].ty == 15 then stop because that is edge of map and you do not want to walk of the map - //player movement - IN_ReadControl(0, &player); + //gvar.player movement + IN_ReadControl(0, &gvar.player); if(!panswitch){ - //ZC_walk2(player[0].ent, mv); - ZC_walk(&mv, &player, 0); + //ZC_walk2(gvar.player[0].ent, mv); + ZC_walk(&mv, &gvar.player, 0); }else{ - PANKEYFUNZC; - //printf(" player[0].enti.q: %d", player[0].enti.q); printf(" player[0].d: %d\n", player[0].d); + TAIL_PANKEYFUNZC; + //printf(" gvar.player[0].enti.q: %d", gvar.player[0].enti.q); printf(" gvar.player[0].d: %d\n", gvar.player[0].d); } //the scripting stuff.... - //if(((player[0].enti.triggerx == TRIGGX && player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5)) - if(((mv[0].map->layerdata[0].data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5)) + //if(((gvar.player[0].enti.triggerx == TRIGGX && gvar.player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(gvar.player[0].enti.tx == 5 && gvar.player[0].enti.ty == 5)) + if(((mv[0].map->layerdata[0].data[(gvar.player[0].enti.triggerx-1)+(map.width*(gvar.player[0].enti.triggery-1))] == 0) && IN_KeyDown(0x1C))||(gvar.player[0].enti.tx == 5 && gvar.player[0].enti.ty == 5)) { short i; for(i=800; i>=400; i--) @@ -177,31 +176,31 @@ void main(int argc, char *argv[]) } nosound(); } - if(player[0].enti.q == (TILEWH/(player[0].enti.speed))+1 && player[0].info.dir != 2 && (player[0].enti.triggerx == 5 && player[0].enti.triggery == 5)){ player[0].enti.hp--; } + if(gvar.player[0].enti.q == (TILEWH/(gvar.player[0].enti.speed))+1 && gvar.player[0].info.dir != 2 && (gvar.player[0].enti.triggerx == 5 && gvar.player[0].enti.triggery == 5)){ gvar.player[0].enti.hp--; } //debugging binds! if(IN_KeyDown(24)){ modexPalUpdate0(&gvar.video.palette); /*paloffset=0;*/ modexpdump(mv[0].page); IN_UserInput(1,1); } //o if(IN_KeyDown(22)){ modexPalUpdate0(&gvar.video.palette); } //u - FUNCTIONKEYFUNCTIONS - FUNCTIONKEYDRAWJUNK - if(IN_KeyDown(sc_L)){ modexClearRegion(&gvar.video.page[0], player[0].enti.x, player[0].enti.y, 16, 16, 1); } + TAIL_FUNCTIONKEYFUNCTIONS + TAIL_FUNCTIONKEYDRAWJUNK + if(IN_KeyDown(sc_L)){ modexClearRegion(&gvar.video.page[0], gvar.player[0].enti.x, gvar.player[0].enti.y, 16, 16, 1); } if(IN_KeyDown(sc_J) || IN_KeyDown(sc_K)) { if(IN_KeyDown(sc_J)) { bakapee1=FILENAME_1; bakapee1p=FILENAME_1P; - player[0].enti.overdraww=0; + gvar.player[0].enti.overdraww=0; } if(IN_KeyDown(sc_K)) { bakapee1=FILENAME_2; bakapee1p=FILENAME_2P; - player[0].enti.overdraww=2; + gvar.player[0].enti.overdraww=2; } - //read_vrs(&gvar, bakapee1, player[0].enti.spri->spritesheet); - VRS_ReadVRS(bakapee1, &player[0].enti, &gvar); + //read_vrs(&gvar, bakapee1, gvar.player[0].enti.spri->spritesheet); + VRS_ReadVRS(bakapee1, &gvar.player[0].enti, &gvar); VL_LoadPalFile(bakapee1p, &gvar.video.palette); }//JK #ifdef FADE @@ -209,7 +208,7 @@ void main(int argc, char *argv[]) #endif if(IN_KeyDown(sc_R)){ modexPalOverscan(rand()%56); } //r - if((player[0].enti.q==1) && !(player[0].enti.x%TILEWH==0 && player[0].enti.y%TILEWH==0)) Quit(&gvar, "PLAYER OFF THE RAILS!");//break; //incase things go out of sync! + if((gvar.player[0].enti.q==1) && !(gvar.player[0].enti.x%TILEWH==0 && gvar.player[0].enti.y%TILEWH==0)) Quit(&gvar, "PLAYER OFF THE RAILS!");//break; //incase things go out of sync! } /* fade back to text mode */ diff --git a/wcpu.exe b/wcpu.exe index 6a5fae4e3fd918f9bbf60ed7c83cc5b9a7215290..dc69eb74367539890f767ce8868d1d928b5bfdc5 100755 GIT binary patch delta 2421 zcmZvee^8Xi8OL|`4m=JxehYU8$MNfcgX2e>L`Wm} zlZB8a@B%o{y-^z`u^uLM?`UPy1^ir z0gFJ>kwJ(FJPV>T2{{M;4oq2uYy!K%Yv3UGIXDllfVt2l83h{1R6a5 z0`2e6{@O%HPc9*kz?MAt0o|Yvybl_D5Iy;XjDYLF3!=?%21>xo;0X8}7z+q_74(AJ zKvhV{GvGyF$AaBx&wz6xjb+gyQOVM%BwE=hq)~AkvQOcMJf-|Dq)%yrj16nkO6;x1 zfX2H{>EidBn|AM+tZv|6*4MhF!P8-HG8m<*&csQq#(f6J?K!y>*Ht=-yOKDyH*KO6Q!@ z{2_-5#^DKk432C0BYsWetxR^IGczKIVC42EZzp5*D^TR|hZ^tR6pYywzUPBoH`-!l zO;f-nPqr&A!R@qv$ZtYS2cj$$+7v!oU(2VuZrBSBElJFtS2~Ba7UEaK&t&!l=S=Aw z<~g>iomWh9l|yHfjSOkX#vOr1NGDu4grme@m-zAQe9v(R!e zAD2r{34Q!Y#uCL)d?WpXh)nR&4TDm`+mxOj>`wX#qkkKWPD!G8!z^tFWUsb3@q1Al zgTXe1ul-*iwJaaAd5^BaPTtjin`%Uq|4nse4tQ`=OdJBCZ7WJFyQL!O)1kp&TIrN^; zr=`(7!kRWo3q+XV_;WX-xJQ1a1bHpna_0`Ukv1;m-}F!VwFquLln4{y*A!6%78ADR zV9-B{Cr4EjQeaWu4x}0q+P3U_AxOUY4gS@zi5Vq1c;{Sc&|%QAt~qtvQinlZW#d@gEW;8(kb%q%-GcynJJDKaBfypel1y+4UhC(~i zp(JhF;JP)`b*wplAV8}|($F9*eii3fPuwW35uV%_M;a+C?T6sNrOO?1` z^Ij6*6MP&7=~>AzSf3@Y`Fz#~kcRA2ke9NnAOqRiMXoP3UIlUa`|9f&u|o>qG#Qa2 zbF3Sc%R_~Ayj|r;q>rqg_9ooVnjG!=&~UpFqf!4enzuSlt}1QD)eg4lvAxGSzCQ|c z&*aF}tR^S9GG%2r7XYENuw+A|4X z38o*>3US!fjh*&Mf5E-yWAgjv4nzHU?mfsWd6P6o9M9Kd(ck3f;!aHEmm<@!QF2yQ z42Wp6O)0St`^7HvdK506=$t+~gnSzgr7G?M=Ay+4&nqxw;GZ^TG@8v7x;S*E3G7blsoGVO}bF-!gNf z4)@?gQdi?9q{e-#utwv(`I+m;Rh7nTCazWW64Vvm%i?5l4*rZjD9(cOFN!U3e=Mx2 zm*>ZRcI2wse{CdAq?hQoMBLDLpCGPsW=|=n_L!fJwk5fZmJyWF`^`Hi-Ppe&_Rd z?m6e)@7#0G_qn%rY+bgti4Yy>AbBKN6^U3B_)E4ELUMro{e*>>6<3Ry5E~dZ5i$kV zfw%TA)5e5YFAMG8RF)lLM_`+-B4h_}f`cFhx(pcf6}5+0kD8D^a0(oZBZQ?B@-y%$ zIFmuhRgj`3qy%gSyTD=axsDK#MMy*sp9O^I!6M)Q9pDQX8N@DMCC z60!l-l|tUgNi*9@M>?-K5~QXn?3T`U z#TkV41qXu$tZ7%g$r_u%y^Zz!a_1F$+3v?7W-qo(VlIEu^X2C;d$Q}AWfFeQRchB+ zgIr}>9JT{iE5+CG7m?x9^S)10MV4lS-WFeK{Ab>bhGk$2yjm+KZsu ztE{fr^%vLFkChz}KmQH^j~Px>sJZ!5ZG`NTj3M>}ayd z|2RR_rS^sYj#G;`HM4Ql{~t#kykU6ItTJ@0RjPsm2$?p}ny`)1&0-?aL>G!jiAB^c za+7-4!(=g>w4R<5iOB(4G4Le$JxUJ_^rXJS==Fi*j8ux}E77(?{zhA#(h$Ea5^*R3 zZO=Y!dAir;@0yD|-qC(1RXNYqqVCwGd(9Dta&e+^t^W7LcXe;lOJYE0g!?UB<`%ir z7H?la>pR6z)vYbEu02Vz{7&8F1mc-gQsK>NH zc5H}AWi6A+R9T~8ZXINOL!u?~#i|es{35`;C=L&9y3;cbavO&6T{LFP;w5|=Yg*u+TY3i_^Cku{8UKglYjw?uAsHhosaTceO}eg?Xf85 zFP*K*;9aEc)!bABcq4a3yi5ykW5LsnP@l|Q2ld>%QpkmQ#gLow7QY0O>)aN89xG0U z_U&m`634d@x;1+1oZG!COnp`3j#u~C!ijj-SBu!B!a-7=gDsHIB!9kbe0KI z;%rU(Nf@~vgF$(IIt*6j%Q=6T|1qSw;1J}6f|nsRg$3rLw>5qRaR*N{Hmt{HDFQw+ zELY~N^vcFytr}}nIaBEUs*$!PoXpLI+Qre~HYG;m|7W!Lxtr`Kj-2N=NYjkHw`y!> zJbe2LWgpvIm|l}HI~Zb1GVhI0uYxKwkHGx&FWPjq;Y&hwd@EMU|(R zQ{OLclxC#$GY(($-1{2;M_;*v6Q1)5tW{lhLN1{!H$_f-kKs@`CxKDR89$ z=k^oQQ0F0}&huwuoyPz5Rrj8ADviICxSy-1ptkxii4V#PX^*&Ao{!`8&vH|u*I3sm z{d2DFIj0VuAEu(bB6FqoipIZ?xT~2xqng_1|J>_H^(2^v(L?VvubuELF$JeRC8ppv z9{L|8!Jt>Z8)rMmUqyFCGyU;Eu;RBYW(qI;De>M5tBoN>b1Gnp<~B!uf&3odFLX&4 TdMeGCk52+hXQKLKe82n)i=eAd -- 2.39.5