]> 4ch.mooo.com Git - 16.git/commitdiff
-- reverted to before layer vars
authorsparky4 <sparky4@cock.li>
Tue, 14 Feb 2017 22:57:32 +0000 (16:57 -0600)
committersparky4 <sparky4@cock.li>
Tue, 14 Feb 2017 22:57:32 +0000 (16:57 -0600)
21 files changed:
ZCROLL.L16 [deleted file]
data/foresttiles_0.gif [new file with mode: 0755]
data/test.map
data/test.tmx
makefile
src/lib/16_head.c
src/lib/16_head.h
src/lib/16_map.c
src/lib/16_tail.c
src/lib/16_tail.h
src/lib/16_tdef.h
src/lib/16_vl.c
src/lib/16_vl.h
src/lib/16_vlpal.c
src/lib/16_vlpal.h
src/lib/16_vlpal_.c [new file with mode: 0755]
src/lib/scroll16.c
src/lib/scroll16.h
src/maptest.c
src/scroll.c
src/zcroll.c

diff --git a/ZCROLL.L16 b/ZCROLL.L16
deleted file mode 100755 (executable)
index ec5b862..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-01 02 03 04 00 03 03 03 03 03 03 03 03 04 11 11 11 11 11 11 11 \r
-01 02 03 04 00 03 03 03 03 03 03 03 03 04 11 11 11 11 11 11 11 \r
-04 05 06 07 08 00 01 00 01 00 00 11 11 11 11 11 11 11 11 11 11 11 \r
-04 05 06 07 08 00 01 00 01 00 00 11 11 11 11 11 11 11 11 11 11 11 \r
-08 09 10 11 12 04 01 00 01 00 00 11 11 11 11 11 11 11 11 11 11 11 \r
-08 09 10 11 12 04 01 00 01 00 00 11 11 11 11 11 11 11 11 11 11 11 \r
-12 13 14 15 16 00 01 01 01 05 08 11 11 11 11 11 11 11 11 11 11 11 \r
-12 13 14 15 16 00 01 01 01 05 08 11 11 11 11 11 11 11 11 11 11 11 \r
-16 00 00 04 00 00 00 00 00 08 08 11 11 11 03 11 11 11 11 11 11 11 \r
-16 00 00 04 00 00 00 00 00 08 08 11 11 11 03 11 11 11 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 08 08 11 11 11 11 11 11 11 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 08 08 11 11 11 11 11 11 11 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 11 11 11 11 11 11 11 11 11 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 11 11 11 11 11 11 11 11 11 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 00 00 00 00 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 00 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 00 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 03 03 03 03 01 02 03 04 03 \r
-11 11 11 11 11 11 11 11 11 11 11 11 11 03 03 03 03 01 02 03 04 03 \r
-11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 05 06 07 08 06 \r
-11 11 11 11 11 11 11 11 11 11 11 11 03 11 11 11 11 05 06 07 08 06 \r
-11 11 11 11 11 11 11 11 11 11 03 03 11 11 11 11 11 09 10 11 12 06 \r
-11 11 11 11 11 11 11 11 11 11 03 03 11 11 11 11 11 09 10 11 12 06 \r
-11 11 11 11 11 11 11 11 11 03 11 11 11 11 11 11 11 13 14 15 16 03 \r
-11 11 11 11 11 11 11 11 11 03 11 11 11 11 11 11 11 13 14 15 16 03 \r
-11 11 11 11 11 11 11 11 11 03 11 11 11 11 11 11 11 11 11 11 11 03 \r
-11 11 11 11 11 11 11 11 11 03 11 11 11 11 11 11 11 11 11 11 11 03 \r
-\r
-Project 16 zcroll.exe. This is just a test file!\r
-version Feb 14 2017 16:41:55\r
-page[0]dxy: 16x16\r
-\r
-player vars:\r
-       xy: 160x128     txy: 10x8       triggxy: 10x9   value: 0\r
-       hp: 4   q: 1    info.dir: 2     d: 2    dire: 30        pdir: 0\r
-       delay=0\r
-\r
-VL_PrintmodexmemInfo:\r
-  Virtual Screen: 352x272      Tile: 22x17=((Virtual Screen)/16)\r
-         Screen: 320x240       Tile: 20x15=((Screen)/16)\r
-  Free Video Memory: 767\r
-  page [0]=(a000:0000) size=23936      w=352  h=272 sw=320  sh=240 pi=1408\r
-       [1]=(a000:5d80) size=23936      w=352  h=272 sw=320  sh=240 pi=1408\r
-       [2]=(a000:bb00) size=8448       w=352  h=96  sw=352  sh=96  pi=1408\r
-       [3]=(a000:dc00) size=8448       w=352  h=96  sw=352  sh=96  pi=1408\r
-gvar.video:\r
- r=0 bgps=1 \r
-\r
-detected CPU type: 80386 or newer\r
-detected FPU type: 80387\r
diff --git a/data/foresttiles_0.gif b/data/foresttiles_0.gif
new file mode 100755 (executable)
index 0000000..934befa
Binary files /dev/null and b/data/foresttiles_0.gif differ
index c804bc1091454464d32d8262a6d4a97f96bb3294..db458f36fe17ed698b0ac32eddcb7f001b8481a8 100755 (executable)
@@ -2,7 +2,7 @@
  "height":30,
  "layers":[
         {
-         "data":[1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 5, 6, 7, 8, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 9, 10, 11, 12, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 13, 14, 15, 16, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 8, 8, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 3, 3, 1, 2, 3, 4, 3, 3, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 5, 6, 7, 8, 6, 6, 6, 6, 6, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 11, 11, 11, 11, 11, 9, 10, 11, 12, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 13, 14, 15, 16, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 3, 3, 3, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 11, 11, 11, 11, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 0, 0, 0, 11, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3, 3, 3, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 0, 11, 11, 11, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 1, 2, 3, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 11, 11, 11, 11, 11, 11, 11, 11, 1, 2, 3, 4, 5, 6, 7, 8, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 6, 7, 8, 9, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 9, 10, 11, 12, 13, 14, 15, 16, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 13, 14, 15, 16],
+         "data":[1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 10, 11, 12, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 1, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 1, 11, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 2, 3, 4, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 6, 7, 8, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 9, 10, 11, 12, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 10, 11, 12, 13, 14, 15, 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16],
          "height":30,
          "name":"bg",
          "opacity":1,
          "spacing":0,
          "tileheight":16,
          "tilewidth":16
-        }, 
-        {
-         "firstgid":17,
-         "image":"forest.gif",
-         "imageheight":112,
-         "imagewidth":80,
-         "margin":0,
-         "name":"forest",
-         "properties":
-            {
-
-            },
-         "spacing":0,
-         "tileheight":16,
-         "tilewidth":16
         }],
  "tilewidth":16,
  "version":1,
index eddc0b0bcfaa41c2b76c3e550a37d937ced68f91..8fd236f611e71ccc247a2333869609fae64cb8bf 100755 (executable)
@@ -3,41 +3,38 @@
  <tileset firstgid="1" name="wwww" tilewidth="16" tileheight="16">
   <image source="ed.png" width="64" height="64"/>
  </tileset>
- <tileset firstgid="17" name="forest" tilewidth="16" tileheight="16">
-  <image source="forest.gif" width="80" height="112"/>
- </tileset>
  <layer name="bg" width="40" height="30">
   <data encoding="csv">
-1,2,3,4,0,3,3,3,3,3,3,3,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,1,2,3,4,
-5,6,7,8,0,1,0,1,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,6,7,8,
-9,10,11,12,4,1,0,1,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,10,11,12,
-13,14,15,16,0,1,1,1,5,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,14,15,16,
-0,0,4,0,0,0,0,0,8,8,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,0,0,0,0,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,0,0,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,0,0,0,0,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,1,2,3,4,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,5,6,7,8,6,6,6,6,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,9,10,11,12,6,6,6,6,6,6,6,6,3,3,3,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,13,14,15,16,3,6,6,6,6,6,6,6,6,6,6,3,3,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,3,6,6,6,6,6,6,6,6,6,6,6,6,3,3,11,11,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,3,6,6,6,6,6,6,6,6,6,6,6,6,6,3,11,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,6,6,6,6,6,6,6,6,6,6,6,6,3,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,6,6,6,6,6,6,6,3,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,3,11,11,11,
-11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,0,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,0,11,0,0,0,11,0,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,0,11,0,11,11,11,0,11,11,11,11,11,11,
-11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,0,0,0,0,0,11,11,11,11,11,11,
-1,2,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,1,2,3,4,
-5,6,7,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,11,5,6,7,8,
-9,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,10,11,12,
-13,14,15,16,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,14,15,16
+1,2,3,4,0,3,3,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,
+5,6,7,8,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,6,7,8,
+9,10,11,12,4,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,10,11,12,
+13,14,15,16,0,1,1,1,5,8,1,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,13,14,15,16,
+0,0,4,0,0,0,0,0,8,8,1,11,11,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0,0,0,0,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,2,3,4,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,5,6,7,8,6,6,6,6,6,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,9,10,11,12,6,6,6,6,6,6,6,6,3,3,3,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,13,14,15,16,3,6,6,6,6,6,6,6,6,6,6,3,3,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,3,6,6,6,6,6,6,6,6,6,6,6,6,3,3,1,1,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,3,6,6,6,6,6,6,6,6,6,6,6,6,6,3,1,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,6,6,6,6,6,6,6,6,6,6,6,6,3,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,6,6,6,6,6,6,6,3,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,1,
+1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,
+1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,2,3,4,
+5,6,7,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,5,6,7,8,
+9,10,11,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,10,11,12,
+13,14,15,16,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,13,14,15,16
 </data>
  </layer>
 </map>
index 9440b2da39208c01a077f842aad11e8802a07632..bde26ed1a70c21649909ff3ea5d107ec19bbae68 100755 (executable)
--- a/makefile
+++ b/makefile
@@ -321,7 +321,7 @@ joytest.exe:
        $(COPYCOMMAND) $(DOSLIB_JOYSTICK:$(to_os_path))$(DIRSEP)$(DOSLIB_MEMMODE)$(DIRSEP)test.exe joytest.exe
 
 16_vl.$(OBJ):  $(SRCLIB)/16_vl.c $(SRCLIB)/16_vl.h
-16_vlpal.$(OBJ):       $(SRCLIB)/16_vlpa_.c    $(SRCLIB)/16_vlpal.c $(SRCLIB)/16_vlpal.h
+16_vlpal.$(OBJ):       $(SRCLIB)/16_vlpal.c $(SRCLIB)/16_vlpal.h
 bakapee.$(OBJ):$(SRCLIB)/bakapee.c $(SRCLIB)/bakapee.h
 16render.$(OBJ):$(SRCLIB)/16render.c $(SRCLIB)/16render.h
 16planar.$(OBJ):$(MODEXLIB16)/16planar.c $(MODEXLIB16)/16planar.h
index 7f46743e44644c2f9fb9d722358f8b72c9f6620b..f48a09c868fb78fad6e99ae023e9a9fa6fc80f5d 100755 (executable)
@@ -34,73 +34,6 @@ filesize(FILE *fp)
        return(size_of_file);\r
 }\r
 \r
-//from http://stackoverflow.com/questions/2736753/how-to-remove-extension-from-file-name\r
-// remove_ext: removes the "extension" from a file spec.\r
-//   mystr is the string to process.\r
-//   dot is the extension separator.\r
-//   sep is the path separator (0 means to ignore).\r
-// Returns an allocated string identical to the original but\r
-//   with the extension removed. It must be freed when you're\r
-//   finished with it.\r
-// If you pass in NULL or the new string can't be allocated,\r
-//   it returns NULL.\r
-\r
-char *remove_ext (char* mystr, char dot, char sep) {\r
-       char *retstr, *lastdot, *lastsep;\r
-\r
-       // Error checks and allocate string.\r
-\r
-       if (mystr == NULL)\r
-               return NULL;\r
-       if ((retstr = malloc (strlen (mystr) + 1)) == NULL)\r
-               return NULL;\r
-\r
-       // Make a copy and find the relevant characters.\r
-\r
-       strcpy (retstr, mystr);\r
-       lastdot = strrchr (retstr, dot);\r
-       lastsep = (sep == 0) ? NULL : strrchr (retstr, sep);\r
-\r
-       // If it has an extension separator.\r
-\r
-       if (lastdot != NULL) {\r
-               // and it's before the extenstion separator.\r
-\r
-               if (lastsep != NULL) {\r
-                       if (lastsep < lastdot) {\r
-                               // then remove it.\r
-\r
-                               *lastdot = '\0';\r
-                       }\r
-               } else {\r
-                       // Has extension separator with no path separator.\r
-\r
-                       *lastdot = '\0';\r
-               }\r
-       }\r
-\r
-       // Return the modified string.\r
-\r
-       return retstr;\r
-}\r
-\r
-//from http://quiz.geeksforgeeks.org/c-program-cyclically-rotate-array-one/\r
-void rotateR(byte *arr, byte n)\r
-{\r
-       byte x = arr[n-1], i;\r
-       for (i = n-1; i > 0; i--)\r
-               arr[i] = arr[i-1];\r
-       arr[0] = x;\r
-}\r
-\r
-void rotateL(byte *arr, byte n)\r
-{\r
-       byte x = arr[n+1], i;\r
-       for (i = n+1; i > 0; i++)\r
-               arr[i] = arr[i+1];\r
-       arr[0] = x;\r
-}\r
-\r
 void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free)\r
 {\r
        byte str[64];\r
index 134def28dd16f7c392fde7f67f8377f158d20b3f..aad7a554ef79ac9854b67d7547f55ff320459002 100755 (executable)
@@ -198,9 +198,6 @@ typedef union REGPACK       regs_t;
 \r
 /* local function */\r
 long int filesize(FILE *fp);\r
-char *remove_ext(char* mystr, char dot, char sep);\r
-void rotateR(byte arr[], byte n);\r
-void rotateL(byte arr[], byte n);\r
 void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free);\r
 int US_CheckParm(char *parm,char **strings);\r
 byte dirchar(byte in);\r
index a304ca2d7d804a02f70edf40ffa771793fca917e..3d97e863db93678025adcd2049e9c69f3c2877d5 100755 (executable)
@@ -32,7 +32,7 @@ int jsoneq(const char *json, jsmntok_t *tok, const char *s) {
        return -1;\r
 }\r
 \r
-/*//this function is quite messy ^^; sorry! it is a quick and dirty fix~\r
+//this function is quite messy ^^; sorry! it is a quick and dirty fix~\r
 word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv, map_t *map, dword q) {\r
        dword i;\r
        word j;//, k;\r
@@ -53,18 +53,18 @@ word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv,
        if (count == 0) {\r
                return 0;\r
        }\r
-       // We may want to do strtol() here to get numeric value\r
+       /* We may want to do strtol() here to get numeric value */\r
 //0000fprintf(stderr, "t->type=%d\n", t->type);\r
        if (t->type == JSMN_PRIMITIVE) {\r
                if(strstr(js_sv, "data"))\r
                {\r
-                       //\r
-                       //      here we should recursivly call dump again here to skip over the array until we get the width of the map.\r
-                       //      so we can initiate the map which allocates the facking map->tiles ->data->data properly and THEN we can return\r
-                       //      here to read the data.... That is my design for this... wwww\r
+                       /*\r
+                               here we should recursivly call dump again here to skip over the array until we get the facking width of the map.\r
+                               so we can initiate the map which allocates the facking map->tiles->data->data properly and THEN we can return\r
+                               here to read the data.... That is my design for this... wwww\r
 \r
-                       //      well i am stuck.... wwww\r
-                       //\r
+                               FUCK well i am stuck.... wwww\r
+                       */\r
                        map->data[q] = (byte)atoi(js+t->start);\r
                        #ifdef DEBUG_MAPDATA\r
                                fprintf(stdout, "%d[%d]", q, map->data[q]);\r
@@ -87,7 +87,7 @@ word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv,
                        #endif\r
                }\r
                return 1;\r
-               // We may use strndup() to fetch string value\r
+               /* We may use strndup() to fetch string value */\r
        } else if (t->type == JSMN_STRING) {\r
                if(jsoneq(js, t, "data") == 0)\r
                {\r
@@ -101,8 +101,8 @@ word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv,
 //                     bp = bitmapLoadPcx("data/koishi^^.pcx");\r
                        map->tiles->btdata = &bp;\r
 //----                 map->tiles->data = planar_buf_from_bitmap(&bp);\r
-                       //map->tiles->data->data = malloc((16)*16);\r
-                       //map->tiles->data->width = (16/);\r
+                       //map->tiles->data->data = malloc((16/**2*/)*16);\r
+                       //map->tiles->data->width = (16/**2*/);\r
                        //map->tiles->data->height= 16;\r
                        map->tiles->tileHeight = 16;\r
                        map->tiles->tileWidth = 16;\r
@@ -164,10 +164,10 @@ int loadmap(char *mn, map_t *map, global_game_variables_t *gvar)
 \r
        FILE *fh = fopen(mn, "r");\r
 \r
-       // Prepare parser\r
+       /* Prepare parser */\r
        jsmn_init(&p);\r
 \r
-       // Allocate some tokens as a start\r
+       /* Allocate some tokens as a start */\r
 //0000fprintf(stderr, "tok malloc\n");\r
        tok = malloc(sizeof(*tok) * tokcount);\r
        if (tok == NULL) {\r
@@ -176,7 +176,7 @@ int loadmap(char *mn, map_t *map, global_game_variables_t *gvar)
        }\r
 \r
        for (;;) {\r
-               // Read another chunk\r
+               /* Read another chunk */\r
 //0000fprintf(stderr, "read\n");\r
                r = fread(buf, 1, sizeof(buf), fh);\r
                if (r < 0) {\r
@@ -205,9 +205,9 @@ int loadmap(char *mn, map_t *map, global_game_variables_t *gvar)
 again:\r
 //0000fprintf(stdout, "        parse~ tok=%zu  jslen=%zu       r=%d    _memavl()=%u    BUFSIZ=%d~\n", tokcount, jslen, r, _memavl(), BUFSIZ);\r
 //0000fprintf(stdout, "p=[%u]  [%u]    [%d]\n", p.pos, p.toknext, p.toksuper);\r
-//\r
-//             I think it crashes on the line below when it tries to parse the data of huge maps... wwww this is a jsmn problem wwww\r
-//\r
+/*\r
+               I think it crashes on the line below when it tries to parse the data of huge maps... wwww this is a jsmn problem wwww\r
+*/\r
                r = jsmn_parse(&p, js, jslen, tok, tokcount);\r
 //0000fprintf(stdout, "r=      [%d]\n", r);\r
                if (r < 0) {\r
@@ -246,18 +246,17 @@ again:
        //fclose(fh);\r
 \r
        return 0;\r
-}*/\r
+}\r
 \r
 void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {\r
        int i, j, k, indent=0, inner_end;\r
-       char *s;\r
        //bitmap_t bp;\r
 \r
        i = 0;\r
        while(i<count) {\r
                if(jsoneq(js, &(t[i]), "layers") == 0) {\r
                        i++;\r
-//                     map->layerdata = malloc(sizeof(byte*) * t[i].size);\r
+                       map->layerdata = malloc(sizeof(byte*) * t[i].size);\r
                        inner_end = t[i].end;\r
                        k = 0;\r
                        while(t[i].start < inner_end) {\r
@@ -269,12 +268,13 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
                                        printf("Layer %d data: [\n", k);\r
 #endif\r
                                        map->layerdata[k] = malloc(sizeof(byte) * t[i+1].size);\r
-                                       //for backwards compatibility for rest of code\r
                                        map->data = map->layerdata[k];\r
                                        for(j = 0; j < t[i+1].size; j++) {\r
                                                map->layerdata[k][j] = (byte)atoi(js + t[i+2+j].start);\r
+                                               //for backwards compatibility for rest of code\r
+//                                             map->data[j] = map->layerdata[k][j];//(byte)atoi(js + t[i+2+j].start);//(byte)atoi(js+t->start);\r
 #ifdef DEBUG_MAPDATA\r
-                                               //printf("[%d,%d]%d", k, j, map->MAPDATAPTK[j]);\r
+                                               //printf("[%d,%d]%d", k, j, map->layerdata[k][j]);\r
                                                fprintf(stdout, "%c", map->data[j]+44);\r
 #endif\r
                                        }\r
@@ -290,32 +290,32 @@ void extract_map(const char *js, jsmntok_t *t, size_t count, map_t *map) {
                }\r
                if(jsoneq(js, &(t[i]), "tilesets") == 0) {\r
                        i++;\r
+                       map->tiles = malloc(sizeof(tiles_t*) * t[i].size);\r
                        inner_end = t[i].end;\r
                        k = 0;\r
                        while(t[i].start < inner_end) {\r
                                if(jsoneq(js, &(t[i]), "image") == 0) {\r
-                                       map->MAPTILESPTK = malloc(sizeof(tiles_t));\r
-                                       s = remove_ext((char *)js+t[i+1].start, '.', '/');\r
-                                       strcpy(map->MAPTILESPTK->imgname, s);\r
+                                       map->layertile[k] = malloc(sizeof(tiles_t));\r
+                                       //Fix to load tileset specified.\r
                                        //And move to vrs, probably\r
 //                                     bp = bitmapLoadPcx("data/ed.pcx");\r
-//                                     map->MAPTILESPTK->btdata = &bp;\r
-                                       //map->MAPTILESPTK->btdata = malloc(sizeof(bitmap_t));\r
-                                       map->MAPTILESPTK->rows = 1;\r
-                                       map->MAPTILESPTK->cols = 1;\r
+//                                     map->layertile[k]->btdata = &bp;\r
+                                       map->layertile[k]->btdata = malloc(sizeof(bitmap_t));\r
+                                       map->layertile[k]->tileHeight = 16;\r
+                                       map->layertile[k]->tileWidth = 16;\r
+                                       map->layertile[k]->rows = 1;\r
+                                       map->layertile[k]->cols = 1;\r
 #ifdef __DEBUG_MAP__\r
                                        dbg_maptext=false;\r
 #endif\r
-                                       i++;\r
-                               }else if(jsoneq(js, &(t[i]), "tileheight") == 0) {\r
-                                       map->MAPTILESPTK->tileHeight = atoi(js + t[i+1].start);\r
-                                       i++;\r
-                               }else if(jsoneq(js, &(t[i]), "tilewidth") == 0) {\r
-                                       map->MAPTILESPTK->tileWidth = atoi(js + t[i+1].start);\r
-                                       i++;\r
+                                       map->tiles->btdata = map->layertile[k]->btdata;\r
+                                       map->tiles->tileHeight = 16;\r
+                                       map->tiles->tileWidth = 16;\r
+                                       map->tiles->rows = 1;\r
+                                       map->tiles->cols = 1;\r
+                                       k++;\r
                                }\r
                                i++;\r
-                               k++;\r
                        }\r
                }\r
 \r
index 2ff2229d974095d8242c310e344323254decc0f8..1a8a2972024115c7b7b6f95d1cde8391784f0c53 100755 (executable)
@@ -46,9 +46,9 @@ void Startup16(global_game_variables_t *gvar)
 \r
        // DOSLIB: what CPU are we using?\r
        // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
-       //        So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
-       //        parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
-       //        the CPU to carry out tasks. --J.C.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
        cpu_probe();\r
 \r
        // DOSLIB: check for VGA\r
@@ -125,10 +125,10 @@ void Shutdown16(global_game_variables_t *gvar)
 \r
 /*void ReadConfig(void)\r
 {\r
-       int                                      file;\r
-       SDMode            sd;\r
-       SMMode            sm;\r
-       SDSMode          sds;\r
+       int                     file;\r
+       SDMode          sd;\r
+       SMMode          sm;\r
+       SDSMode         sds;\r
 \r
 \r
        if ( (file = open(configname,O_BINARY | O_RDONLY)) != -1)\r
@@ -227,7 +227,7 @@ void Shutdown16(global_game_variables_t *gvar)
 \r
 /*void WriteConfig(void)\r
 {\r
-       int                                      file;\r
+       int                     file;\r
 \r
        file = open(configname,O_CREAT | O_BINARY | O_WRONLY,\r
                                S_IREAD | S_IWRITE | S_IFREG);\r
@@ -275,9 +275,9 @@ void DebugMemory_(global_game_variables_t *gvar, boolean q)
 \r
        US_CPrint ("Memory Usage");\r
        US_CPrint ("------------");\r
-       US_Print ("Total         :");\r
+       US_Print ("Total     :");\r
        US_PrintUnsigned (mminfo.mainmem/1024);\r
-       US_Print ("k\nFree        :");\r
+       US_Print ("k\nFree      :");\r
        US_PrintUnsigned (MM_UnusedMemory()/1024);\r
        US_Print ("k\nWith purge:");\r
        US_PrintUnsigned (MM_TotalFree()/1024);\r
@@ -326,7 +326,7 @@ void ClearMemory (global_game_variables_t *gvar)
 \r
 void Quit (global_game_variables_t *gvar, char *error)\r
 {\r
-       //unsigned              finscreen;\r
+       //unsigned        finscreen;\r
        memptr  screen=0;\r
 \r
        ClearMemory (gvar);\r
@@ -372,7 +372,6 @@ void Quit (global_game_variables_t *gvar, char *error)
 }\r
 \r
 //===========================================================================\r
-\r
 #ifndef __WATCOMC__\r
 char global_temp_status_text[512];\r
 char global_temp_status_text2[512];\r
@@ -410,7 +409,7 @@ void turboXT(byte bakapee)
        out     61h, al                         //; Turn speaker on\r
        mov     cx, 2000h\r
 @@delay:\r
-       loop    @@delay\r
+       loop    @@delay\r
        pop     ax\r
        out     61h, al                         //; Turn speaker off\r
        pop     cx\r
index 5dffd51fd1c40fa2b9a3a3f3594aed30113c84b2..f200f05904042faf70d0cb8c0c73b5f44d1a4740 100755 (executable)
        if(IN_KeyDown(sc_X)){ TESTBG12 } \\r
        if(IN_KeyDown(sc_C)){ TESTBG34 } \\r
        if(IN_KeyDown(sc_V)) VL_PatternDraw(&gvar.video, 0, 1, 1);\r
-/*     if(IN_KeyDown(sc_PgDn)){ \\r
-               rotateR(gvar.video.palette, sizeof(gvar.video.palette)/sizeof(gvar.video.palette[0])); \\r
-               VL_UpdatePaletteWrite(&gvar.video.palette, 0);          IN_UserInput(1,1); } \\r
-       if(IN_KeyDown(sc_PgUp)){ \\r
-               rotateL(gvar.video.palette, sizeof(gvar.video.palette)/sizeof(gvar.video.palette[0])); \\r
-               VL_UpdatePaletteWrite(&gvar.video.palette, 0);          IN_UserInput(1,1); }*/\r
 \r
 void DebugMemory_(global_game_variables_t *gvar, boolean q);\r
 void Shutdown16(global_game_variables_t *gvar);\r
index 4c33811194611fd21df66a65048d4da5a7385eaa..3f839204884f9374b7d8100f0c0131d89cb1ac68 100755 (executable)
@@ -50,10 +50,10 @@ typedef struct {
 \r
 typedef struct {\r
        byte far **data;\r
-       word ntiles;            // the number of tiles\r
-       word twidth;    // width of the tiles\r
-       word theight;   // height of the tiles\r
-       byte *palette;  // palette for the tile set\r
+       word ntiles;   /* the number of tiles */\r
+       word twidth;   /* width of the tiles */\r
+       word theight;  /* height of the tiles */\r
+       byte *palette; /* palette for the tile set */\r
 } tileset_t;\r
 \r
 typedef struct {\r
@@ -64,48 +64,31 @@ typedef struct {
        byte *palette;\r
 } planar_buf_t;\r
 \r
-//===========================================================================//\r
-\r
 //TODO: 16_mm and 16_ca must handle this\r
 typedef struct {\r
-       bitmap_t far *pcximg;           //I will probibaly use this --sparky4\r
-       //planar_buf_t far *pbdata;     //old\r
-       word tileHeight, tileWidth;     //defined by mapfile\r
+       bitmap_t far *btdata;           //old\r
+       planar_buf_t far *data; //old\r
+       word tileHeight, tileWidth;\r
        unsigned int rows, cols;\r
-       byte    imgname[8];             //image file of tileset (set to 8 because DOS ^^;)\r
-} tiles_t;     //seems to be the tileset properties\r
+//     #ifdef __DEBUG__\r
+//     boolean debug_text;     //show the value of the tile! wwww\r
+//     byte *debug_data;\r
+//     #endif\r
+} tiles_t;\r
 \r
 //TODO: 16_mm and 16_ca must handle this\r
 //TODO: add variables from 16_ca\r
-//#define __NEWMAPTILEDATAVARS__\r
-#define MAPLAYERS 4\r
-#ifdef __NEWMAPTILEDATAVARS__\r
-#define MAPTILESPTR            layertile[0]\r
-#define MAPTILESPTK            layertile[k]\r
-#define MAPDATAPTR             layerdata[0]\r
-#define MAPDATAPTK             layerdata[k]\r
-#else\r
-#define MAPTILESPTR            tiles//layertile[0]\r
-#define MAPTILESPTK            tiles//layertile[k]\r
-#define MAPDATAPTR             data//layerdata[0]\r
-#define MAPDATAPTK             data//layerdata[k]\r
-#endif\r
 typedef struct {\r
        //long          planestart[3];\r
        //unsigned      planelength[3];\r
        byte *data;                     //TODO: 16_mm and 16_ca must handle this\r
-       byte far *layerdata[MAPLAYERS]; // mapdata for multilayer (map index values for rendering which image on the tile)\r
-#ifndef __NEWMAPTILEDATAVARS__\r
+       byte * far *layerdata;  //TODO: 16_mm and 16_ca must handle this\r
        tiles_t *tiles;         //TODO: 16_mm and 16_ca must handle this\r
-#else\r
-       tiles_t far *layertile[MAPLAYERS];      // tilesets for layers (currently ony 4 can be loaded wwww)\r
-#endif\r
+       tiles_t * far *layertile;       //TODO: 16_mm and 16_ca must handle this\r
        int width, height;              //this has to be signed!\r
-       byte name[16];\r
+       char            name[16];\r
 } map_t;\r
 \r
-//===================================//\r
-\r
 typedef struct{\r
        word tw;                /* screen width in tiles */\r
        word th;                /* screen height in tiles */\r
@@ -115,12 +98,12 @@ typedef struct{
        sword tilemidposscreeny;        /* middle tile y position */    /* needed for scroll system to work accordingly */\r
        sword tileplayerposscreenx;     /* player position on screen */ /* needed for scroll and map system to work accordingly */\r
        sword tileplayerposscreeny;     /* player position on screen */ /* needed for scroll and map system to work accordingly */\r
-} pagetileinfo_t;\r
+} tileinfo_t;\r
 \r
 typedef struct {\r
        nibble/*word*/ id;      /* the Identification number of the page~ For layering~ */\r
        byte far* data; /* the data for the page */\r
-       pagetileinfo_t  ti;\r
+       tileinfo_t      ti;\r
        word dx;                /* col we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the left size */\r
        word dy;                /* row we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the top size */\r
        word sw;                /* screen width */      /* resolution */\r
index 0ad3d270a24dbd8bcd074c217454dabe0ebe03d6..ec5c9f0a9f84c00e581fcbb215a739391f2998a1 100755 (executable)
@@ -689,7 +689,18 @@ modexLoadPalFile(byte *filename, byte **palette) {
 \r
 void VL_LoadPalFile(const char *filename, byte *palette)\r
 {\r
-       VL_LoadPalFilewithoffset(filename, palette, 0);\r
+       int fd;\r
+\r
+       fd = open(filename,O_RDONLY|O_BINARY);\r
+       if (fd >= 0) {\r
+               word i;\r
+\r
+               read(fd,palette,        PAL_SIZE);\r
+               close(fd);\r
+\r
+               vga_palette_lseek(0);\r
+               for (i=0;i < 256;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
+       }\r
 }\r
 \r
 void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o)\r
@@ -698,19 +709,16 @@ void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o)
 \r
        fd = open(filename,O_RDONLY|O_BINARY);\r
        if (fd >= 0) {\r
+               word i;\r
+\r
                read(fd,palette,        PAL_SIZE);\r
                close(fd);\r
 \r
-               VL_UpdatePaletteWrite(palette, o);\r
+               vga_palette_lseek(o);\r
+               for (i=o;i < 256-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
        }\r
 }\r
 \r
-void VL_UpdatePaletteWrite(byte *palette, word o)\r
-{\r
-       word i;\r
-       vga_palette_lseek(/*1+*/o);\r
-       for (i=o;i < 256-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
-}\r
 \r
 void\r
 modexSavePalFile(char *filename, byte *pal) {\r
@@ -859,20 +867,15 @@ void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, wor
        }\r
 }\r
 \r
-void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, const byte *str)\r
+void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
 {\r
        word s, o, w;\r
-       word x_draw;\r
+       word x_draw = x;\r
        //word addr = (word) romFontsData.l;\r
-       word addrq;\r
-       word addrr;\r
+       word addrq = (page->stridew) * y + (x / 4) + ((word)page->data);\r
+       word addrr = addrq;\r
        byte c;\r
 \r
-       x-=page->tlx; y-=page->tly;\r
-       x_draw = x/4;\r
-       addrq = (page->stridew) * y + (word)(x_draw) +\r
-               ((word)page->data);\r
-       addrr = addrq;\r
        s=romFonts[t].seg;\r
        o=romFonts[t].off;\r
        w=romFonts[t].charSize;\r
@@ -880,16 +883,16 @@ void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, co
 \r
        for(; *str != '\0'; str++)\r
        {\r
-               c = (*str);\r
-               if(c=='\n')\r
-               {\r
-                       x = x_draw;\r
-                       romFontsData.chw = 0;\r
-                       addrq += (page->stridew) * 8;\r
-                       addrr = addrq;\r
-                       y += 8;\r
-                       continue;\r
-               }\r
+       c = (*str);\r
+       if(c=='\n')\r
+       {\r
+               x = x_draw;\r
+               romFontsData.chw = 0;\r
+               addrq += (page->stridew) * 8;\r
+               addrr = addrq;\r
+               y += 8;\r
+               continue;\r
+       }\r
 \r
        // load the character into romFontsData.l\r
        // no need for inline assembly!\r
@@ -899,7 +902,6 @@ void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, co
                x_draw += 8; /* track X for edge of screen */\r
                addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
        }\r
-       //printf("print xy:%dx%d        tlxy:%dx%d\n", x, y, page->tlx, page->tly);\r
 }\r
 \r
 void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
@@ -1002,8 +1004,8 @@ void modexpdump(page_t *pee)
        int palq=(mult)*TILEWH;\r
        int palcol=0;\r
        int palx, paly;\r
-       for(paly=TILEWH*8; paly<palq+TILEWH*8; paly+=mult){\r
-               for(palx=TILEWH*12; palx<palq+TILEWH*12; palx+=mult){\r
+       for(paly=0; paly<palq; paly+=mult){\r
+               for(palx=0; palx<palq; palx+=mult){\r
                                modexClearRegion(pee, palx+TILEWH, paly+TILEWH, mult, mult, palcol);\r
                        palcol++;\r
                }\r
index 0b037ee1251a362902cbe87462ee733637633c45..e2c28a3242d926f02d7b8e0b9b95eb85db1c3cf8 100755 (executable)
@@ -126,7 +126,6 @@ byte *modexNewPal();
 void modexLoadPalFile(char *filename, byte **palette);\r
 void VL_LoadPalFile(const char *filename, byte *palette);\r
 void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o);\r
-void VL_UpdatePaletteWrite(byte *palette, word o);\r
 void modexSavePalFile(char *filename, byte *palette);\r
 \r
 /* fixed palette functions */\r
@@ -167,7 +166,7 @@ static inline byte modexreadPixel(page_t *page, int x, int y, word addr)
 #endif\r
 \r
 void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, word col, word bgcol, word addr);\r
-void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, const byte *str);\r
+void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str);\r
 void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str);\r
 void modexpdump(page_t *pee);\r
 void modexcls(page_t *page, byte color, byte *Where);\r
index 2f155f03a43256587a2878aa9c913be79be9d6ab..87664c77484038fb7a92f7fbae5587d20653e909 100755 (executable)
@@ -30,35 +30,61 @@ void modexchkcolor(imgtestpal_t *bmp, word *q, word *a, word *aa, word *z, word
                word zz=0;\r
                pal = modexNewPal();\r
                modexPalSave(pal);\r
-               CHKCOLDBGOUT1\r
+#ifdef BEVERBOSEPALCHECK\r
+               printf("q: %02d\n", (*q));//\r
+\r
+               printf("chkcolor start~\n");\r
+               printf("1                                  (*z): %d\n", (*z)/3);\r
+               printf("1                                  (*i): %d\n", (*i)/3);\r
+               printf("1 offset of color in palette    (*q): %d\n", (*q)/3);//\r
+               printf("wwwwwwwwwwwwwwww\n");\r
+#endif\r
                //check palette for dups\r
-               for(; (*z)<PAL_SIZE; (*z)+=3)\r
+               for(; (*z)<PAL_SIZE/24; (*z)+=3)\r
                {\r
-                       CHKCOLDBGOUT2\r
+#ifdef BEVERBOSEPALCHECK\r
+                       printf("\n              z: %d\n", (*z));//\r
+                       printf("                  q: %d\n", (*q));//\r
+                       printf("                  z+q: %d\n\n", ((*z)+(*q)));//\r
+#endif\r
                        //if((*z)%3==0)\r
                        //{\r
 //----                   if(pal[(*z)]==pal[(*z)+3] && pal[(*z)+1]==pal[(*z)+4] && pal[(*z)+2]==pal[(*z)+5])\r
                                if((*z)==(*i))\r
                                {\r
-                                       CHKCOLDBGOUT3\r
+#ifdef BEVERBOSEPALCHECK\r
+                                         printf("\n%d  [%02d][%02d][%02d]\n", (*z), pal[(*z)], pal[(*z)+1], pal[(*z)+2]);//\r
+                                         printf("%d      [%02d][%02d][%02d]\n\n", (*z)+3, pal[(*z)+3], pal[(*z)+4], pal[(*z)+5]);//\r
+#endif\r
 //0000                           (*z)-=3;\r
                                        break;\r
                                }\r
                                else for(zz=0; zz<(*q); zz+=3)\r
                                {\r
-                                       CHKCOLDBGOUT4\r
+#ifdef BEVERBOSEPALCHECK\r
+                                       printf("zz: %02d\n", zz/3);//\r
+#endif\r
                                        if(zz%3==0)\r
                                        {\r
                                                if(pal[((*z)+(*q))]==pal[((*z)+(*q))+3] && pal[((*z)+(*q))+1]==pal[((*z)+(*q))+4] && pal[((*z)+(*q))+2]==pal[((*z)+(*q))+5])    //break if duplicate colors found in palette because it have reached the end of the current data of the palette\r
                                                {\r
 //                                                       (*z)-=3;\r
 //                                                       (*i)-=3;\r
-                                                       CHKCOLDBGOUT5\r
+#ifdef BEVERBOSEPALCHECK\r
+                                                         printf("\nzq1:%d[%02d][%02d][%02d]\n", (zz+*q), pal[(zz+*q)], pal[(zz+*q)+1], pal[(zz+*q)+2]);//\r
+                                                         printf("zq2:%d[%02d][%02d][%02d]\n\n", (zz+*q)+3, pal[(zz+*q)+3], pal[(zz+*q)+4], pal[(zz+*q)+5]);//\r
+#endif\r
                                                        break;\r
                                                }\r
                                                else if(pal[zz]==pal[((*z)+(*q))] && pal[zz+1]==pal[((*z)+(*q))+1] && pal[zz+2]==pal[((*z)+(*q))+2])\r
                                                {\r
-                                                       CHKCOLDBGOUT6\r
+#ifdef BEVERBOSEPALCHECK\r
+                                                         printf("\n\nwwwwwwwwwwwwwwww\n");//\r
+                                                         printf("      zq: %d  [%02d][%02d][%02d] value that is needing to be changed~\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);//\r
+                                                         printf("      zz: %d  [%02d][%02d][%02d] value that the previous value is going to change to~\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);//\r
+                                                         //printf("      zv: %d  [%02d][%02d][%02d] wwww\n", (zz-z+q)/3, pal[(zz-z+q)], pal[(zz-z+q)+1], pal[(zz-z+q)+2]);//\r
+                                                         printf("      z : %d  [%02d][%02d][%02d] offset value~\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);//\r
+#endif\r
 //++++                                           (*i)--;\r
 //                                                       (*z)--;\r
                                                        //expand dong here\r
@@ -70,11 +96,18 @@ no... wait.... no wwww
 */\r
                                                        //for(zzii=0; zzii<3; zzii++)\r
                                                        //{\r
-                                                               CHKCOLDBGOUT7\r
+#ifdef BEVERBOSEPALCHECK\r
+                                                               printf("z+q: %d\n\n", ((*z)+(*q)));\r
+#endif\r
                                                                a[(((*z)+(*q)))]=zz;\r
                                                        //}\r
                                                        (*aa)=(((*z)+(*q)));\r
-                                                       CHKCOLDBGOUT8\r
+#ifdef BEVERBOSEPALCHECK\r
+                                                       printf("!!                                        a[%02d]: %d\n", (((*z)+(*q))/3), zz/3);\r
+                                                         printf("\n              aa: %d\n\n", (*aa));//\r
+                                                         printf("      a[%02d]=(%02d) offset array i think the palette should be updated again~\n", ((*z)+(*q))/3, a[((*z)+(*q))/3]);//\r
+                                                         printf("wwwwwwwwwwwwwwww\n\n");//\r
+#endif\r
                                                }\r
                                                /*else\r
                                                {\r
@@ -84,11 +117,19 @@ no... wait.... no wwww
                                                        printf("z : %d  [%02d][%02d][%02d]\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);\r
                                                        printf("================\n");\r
                                                }*/\r
-                                               CHKCOLDBGOUT9\r
+#ifdef BEVERBOSEPALCHECK\r
+                                               printf("[%d]", (zz+*q));//\r
+#endif\r
                                        }\r
                                }\r
                }\r
-               CHKCOLDBGOUT10\r
+#ifdef BEVERBOSEPALCHECK\r
+               printf("wwwwwwwwwwwwwwww\n");\r
+               printf("2                                  (*z): %d\n", (*z)/3);\r
+               printf("2                                  (*i): %d\n", (*i)/3);\r
+               printf("2 offset of color in palette    (*q): %d\n", (*q)/3);//\r
+               printf("chkcolor end~\n");\r
+#endif\r
                //free(pal);\r
 }\r
 \r
@@ -126,7 +167,7 @@ VL_palette(imgtestpal_t *bmp, byte *p, word *i, word qp, word aqoffset)
        }\r
        if((*i)<PAL_SIZE && w==0)\r
        {\r
-               for(; (*i)<PAL_SIZE; (*i)++)\r
+               for(; (*i)<PAL_SIZE/24; (*i)++)\r
                {\r
                        //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))\r
 //____           if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
index f97c4fd4e4d905ab95c2a03787912a14ff1be845..755cbe224eca241df9d1b2212b37bdef86e5e43e 100755 (executable)
@@ -1,9 +1,12 @@
 #ifndef __16_VLPAL_H__\r
 #define __16_VLPAL_H__\r
 \r
-#include "src/lib/16_vlpald.h"\r
 #include "src/lib/16_vl.h"\r
 \r
+#define BEVERBOSEPALCHECK\r
+\r
+#ifdef BEVERBOSEPALCHECK\r
+#endif\r
 \r
 typedef struct\r
 {\r
@@ -12,9 +15,6 @@ typedef struct
        word offset;\r
 } imgtestpal_t;\r
 \r
-void VL_modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqpp);\r
 void VL_palette(imgtestpal_t *bmp, byte *p, word *i, word qp, word aqoffset);\r
-//void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z);\r
-\r
 \r
 #endif //__16_VLPAL_H__\r
diff --git a/src/lib/16_vlpal_.c b/src/lib/16_vlpal_.c
new file mode 100755 (executable)
index 0000000..f38e3ed
--- /dev/null
@@ -0,0 +1,330 @@
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover
+ *
+ * This file is part of Project 16.
+ *
+ * Project 16 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Project 16 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+//#include "src/lib/16_vlpal.h"
+
+//color checker~
+//i want to make another vesion that checks the palette when the palette is being appened~
+void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z)
+{
+               byte *pal;
+               word zz=0;
+               pal = modexNewPal();
+               modexPalSave(pal);
+               //printf("q: %02d\n", (*q));
+
+               //check palette for dups
+               for((*z)=0; (*z)<PAL_SIZE; (*z)+=3)
+               {
+//                     printf("\n              z: %d\n", (*z));
+//                     printf("                q: %d\n", (*q));
+//                     printf("                z+q: %d\n\n", ((*z)+(*q)));
+                       if((*z)%3==0)
+                       {
+                               if(pal[(*z)]==pal[(*z)+3] && pal[(*z)+1]==pal[(*z)+4] && pal[(*z)+2]==pal[(*z)+5])
+                               {
+//                                     printf("\n%d    [%02d][%02d][%02d]\n", (*z), pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+//                                     printf("%d      [%02d][%02d][%02d]\n\n", (*z)+3, pal[(*z)+3], pal[(*z)+4], pal[(*z)+5]);
+                                       break;
+                               }
+                               else for(zz=0; zz<(*q); zz+=3)
+                               {
+                                       //zq=(zz+(q-3));
+                                       //printf("zz: %02d\n", zz/3);
+                                       if(zz%3==0)
+                                       {
+                                               if(pal[((*z)+(*q))]==pal[((*z)+(*q))+3] && pal[((*z)+(*q))+1]==pal[((*z)+(*q))+4] && pal[((*z)+(*q))+2]==pal[((*z)+(*q))+5])
+                                               {
+//                                                     printf("\nzq1:%d[%02d][%02d][%02d]\n", (zz+q), pal[(zz+q)], pal[(zz+q)+1], pal[(zz+q)+2]);
+//                                                     printf("zq2:%d[%02d][%02d][%02d]\n\n", (zz+q)+3, pal[(zz+q)+3], pal[(zz+q)+4], pal[(zz+q)+5]);
+                                                       break;
+                                               }
+                                               else if(pal[zz]==pal[((*z)+(*q))] && pal[zz+1]==pal[((*z)+(*q))+1] && pal[zz+2]==pal[((*z)+(*q))+2])
+                                               {
+//                                                     printf("\n\nwwwwwwwwwwwwwwww\n");
+//                                                     printf("        zq: %d  [%02d][%02d][%02d] value that is needing to be changed~\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
+//                                                     printf("        zz: %d  [%02d][%02d][%02d] value that the previous value is going to change to~\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
+//                                                     //printf("      zv: %d  [%02d][%02d][%02d] wwww\n", (zz-z+q)/3, pal[(zz-z+q)], pal[(zz-z+q)+1], pal[(zz-z+q)+2]);
+//                                                     printf("        z : %d  [%02d][%02d][%02d] offset value~\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+                                                       a[((*z)+(*q))/3]=zz/3;
+                                                       (*aa)=((*z)+(*q))/3;
+//                                                     printf("\n              aa: %d\n\n", (*aa));
+//                                                     printf("        a[%02d]=(%02d) offset array i think the palette should be updated again~\n", ((*z)+(*q))/3, a[((*z)+(*q))/3]);
+//                                                     printf("wwwwwwwwwwwwwwww\n\n");
+                                               }
+                                               /*else
+                                               {
+                                                       printf("================\n");
+                                                       printf("zq: %d  [%02d][%02d][%02d]\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
+                                                       printf("zz: %d  [%02d][%02d][%02d]\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
+                                                       printf("z : %d  [%02d][%02d][%02d]\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+                                                       printf("================\n");
+                                               }*/
+                                               //printf("[%d]", (zz+q));
+                                       }
+                               }
+                               //printf("\nz:  %d\n", z);
+                               //printf("q:    %d\n", q);
+                               //printf("zz:   %d\n", zz);
+                       }
+               }
+               free(pal);
+}
+
+void
+modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqpp)
+{
+       byte *p = bmp->palette;
+       word w=0;
+       word q=0;
+       word qq=0;
+       word ii;
+       static word a[256] = { 0 };
+       word z=0,aq=0,aa=0;
+       word pp=0,spee=0,ppee=0;
+       sword aqpw;
+
+//     if(qp>0) printf("(*i)=%02d\n", (*i));
+       modexWaitBorder();
+       if((*i)==0) outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
+       else if(qp==0)
+       {
+               q=(*i);
+       }
+       else
+       {
+               q=(*i);
+               qq=(*i)/3;
+//             printf("q: %02d\n", (q));
+//             printf("qq: %02d\n", (qq));
+               //printf("      (*i)-q=%02d\n", (*i)-q);
+//             printf("================\n");
+               outp(PAL_WRITE_REG, qq);  /* start at the beginning of palette */
+       }
+       if((*i)<PAL_SIZE/2 && w==0)
+       {
+               for(; (*i)<PAL_SIZE/2; (*i)++)
+               {
+                       //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))
+//____                 if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
+                       if(((((*i)-q)%3==0) || ((qp>0)&&((*i)-(bmp->offset*3))%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
+                       {
+                               if(qp>0)
+                               {
+                                       (*i)-=(aqpp*3);
+                                       aqpw=aqpp-1;
+                                       outp(PAL_WRITE_REG, qq+(((*i)+(aqpw*3)-(bmp->offset*3))/3));
+                                       for(ii=aqpp; ii>0; ii--)
+                                       {
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))]);
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3)+1)-(bmp->offset*3))]);
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3)+2)-(bmp->offset*3))]);
+//                                             printf("position        =       %d\n", qq+(((*i)+(aqpw*3)-(bmp->offset*3))/3));
+/*if(qp>0){ //printf("[%d]", p[((*i)-q)]);     printf("[%d]", p[((*i)-q)+1]);  printf("[%d]", p[((*i)-q)+2]);  printf("[%d]", p[((*i)-q)+3]);                  printf("[%d]", p[((*i)-q)+4]);                  printf("[%d]", p[((*i)-q)+5]);                  printf("        %d [%d]\n", (*i), p[((*i)-q)]); }
+printf("[%d]", p[((((*i)+((aqpp-ii)*3)))-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+1)-(bmp->offset*3))]);
+printf("[%d] | ", p[((((*i)+((aqpp-ii)*3))+2)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+3)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+4)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+5)-(bmp->offset*3))]);
+printf("       %d [%d]\n",((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))/3, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))]); }*/
+                                               //printf("%d\n", ((*i)+((ii)*3))/3);
+                                               //printf("ii=%d\n", ii);
+                                               //printf("aqpp=%d\n", aqpp);
+                                               //printf("                      %d\n", ((*i)+((aqpp-ii)*3))/3);
+                                       }
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3)))-(bmp->offset*3)));
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3))+1)-(bmp->offset*3)));
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3))+2)-(bmp->offset*3)));
+                                       //printf("(*i)=%d\n", (*i));
+                               }
+                               //printf("[%d]", p[((*i)-q)]);  printf("[%d]", p[((*i)-q)+1]);  printf("[%d]", p[((*i)-q)+2]);  printf("[%d]", p[((*i)-q)+3]);                  printf("[%d]", p[((*i)-q)+4]);                  printf("[%d]", p[((*i)-q)+5]);                  printf("        %d [%d]\n", (*i), p[((*i)-q)]);
+                               w++;
+                               break;
+                       }
+                       else
+                       {
+                               if(bmp->offset==0 && (*i)<3 && q==0) outp(PAL_DATA_REG, 0);
+                               else
+                               if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
+                               else outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3))]);
+                       }
+               }
+       }
+       modexWaitBorder();          /* waits one retrace -- less flicker */
+       if((*i)>=PAL_SIZE/2 && w==0)
+       {
+               for(; (*i)<PAL_SIZE; (*i)++)
+               {
+//____                 if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
+                       if(((((*i)-q)%3==0) || ((qp>0)&&((*i)-(bmp->offset*3))%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
+                       {
+                               if(qp>0)
+                               {
+                                       (*i)-=(aqpp*3);
+                                       aqpw=aqpp-1;
+                                       outp(PAL_WRITE_REG, qq+(((*i)+(aqpw*3)-(bmp->offset*3))/3));
+                                       for(ii=aqpp; ii>0; ii--)
+                                       {
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))]);
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3)+1)-(bmp->offset*3))]);
+                                               outp(PAL_DATA_REG, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3)+2)-(bmp->offset*3))]);
+//                                             printf("position        =       %d\n", qq+(((*i)+(aqpw*3)-(bmp->offset*3))/3));
+/*if(qp>0){ //printf("[%d]", p[((*i)-q)]);     printf("[%d]", p[((*i)-q)+1]);  printf("[%d]", p[((*i)-q)+2]);  printf("[%d]", p[((*i)-q)+3]);                  printf("[%d]", p[((*i)-q)+4]);                  printf("[%d]", p[((*i)-q)+5]);                  printf("        %d [%d]\n", (*i), p[((*i)-q)]); }
+printf("[%d]", p[((((*i)+((aqpp-ii)*3)))-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+1)-(bmp->offset*3))]);
+printf("[%d] | ", p[((((*i)+((aqpp-ii)*3))+2)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+3)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+4)-(bmp->offset*3))]);
+printf("[%d]", p[((((*i)+((aqpp-ii)*3))+5)-(bmp->offset*3))]);
+printf("       %d [%d]\n",((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))/3, p[((((*i)+((aqpp-ii)*3))+((aqpp+ii)*3))-(bmp->offset*3))]); }*/
+                                               //printf("%d\n", ((*i)+((ii)*3))/3);
+                                               //printf("ii=%d\n", ii);
+                                               //printf("aqpp=%d\n", aqpp);
+                                               //printf("                      %d\n", ((*i)+((aqpp-ii)*3))/3);
+                                       }
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3)))-(bmp->offset*3)));
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3))+1)-(bmp->offset*3)));
+                                       //printf("      %d\n",((((*i)+((aqpp-ii)*3))+2)-(bmp->offset*3)));
+                                       //printf("(*i)=%d\n", (*i));
+                               }
+                               //printf("[%d]", p[((*i)-q)]);  printf("[%d]", p[((*i)-q)+1]);  printf("[%d]", p[((*i)-q)+2]);  printf("[%d]", p[((*i)-q)+3]);                  printf("[%d]", p[((*i)-q)+4]);                  printf("[%d]", p[((*i)-q)+5]);                  printf("        %d [%d]\n", (*i), p[((*i)-q)]);
+                               w++;
+                               break;
+                       }
+                       else
+                       {
+                               if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
+                               else outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3))]);
+                       }
+               }
+       }
+
+       //palette checker~
+       if(q>0 && qp==0)
+       {
+               long lq;
+               long bufSize = (bmp->width * bmp->height);
+               chkcolor(bmp, &q, &a, &aa, &z);
+
+               /*printf("z=%d\n", z/3);
+               printf("q+z=%d\n", (q+z)/3);
+               printf("z-ppee=%d\n", (z-ppee)/3);
+               printf("q=%d\n", q/3);
+               printf("aa=%d\n", aa);*/
+
+               aq=0; pp = q; ppee=q;
+aqpee:
+               while(aq<=aa)
+               {
+                       //printf("a[%02d]=(%d)", aq, a[aq]);
+                       if(a[aq]==0) aq++;
+                       else{ aqpp++; break; }
+               }
+
+/*             printf("aq=%02d\n", aq);
+               printf("z=%02d\n", z/3);
+               printf("(z/3)-aqpp=%02d\n", (z/3)-aqpp);
+               printf("aqpp=%02d\n", aqpp);*/
+
+       for(lq=0; lq<bufSize; lq++)
+       {
+               if(bmp->data[lq]+bmp->offset==aq)
+               {
+                       //printf("\n%02d\n", bmp->data[lq]);
+                       //printf("\n%02d\n", bmp->offset);
+                       //printf("\naq= %02d\n", aq);
+                       //printf("a[aq]=        %02d\n", a[aq]);
+                       //bmp->data[lq]=((bmp->data[lq]+bmp->offset)-a[aq]);
+                       bmp->data[lq]=a[aq];
+                       //printf("_%d \n", bmp->data[lq]);
+               }
+               else if(bmp->data[lq]+bmp->offset < (z/3)-aqpp)
+               {
+                       if(bmp->data[lq]+bmp->offset >= aq) bmp->data[lq]=(bmp->data[lq]+bmp->offset)-aqpp;
+                       else bmp->data[lq]+=(bmp->offset);
+               }
+
+               //printf("%02d ", bmp->data[lq]);
+               //if(lq > 0 && lq%bmp->width==0) printf("\n");
+       }
+
+       while(pp<=(aq*3))
+       {
+               if(((pp/3)==aq || spee>0))
+               {
+                       /*printf("spee=%d\n", spee);
+                       printf("                pp=%02d ", pp/3);
+                       printf("old     bmp: [%d]", bmp->palette[(pp-ppee)]);
+                       printf("[%d]", bmp->palette[(pp-ppee)+1]);
+                       printf("[%d]\n", bmp->palette[(pp-ppee)+2]);*/
+                       //if(spee==0) printf("\npp=%02d\n\n", pp/3);
+                       bmp->palette[(pp-ppee)]=                bmp->palette[(pp-ppee)+3];
+                       bmp->palette[(pp-ppee)+1]=      bmp->palette[(pp-ppee)+4];
+                       bmp->palette[(pp-ppee)+2]=      bmp->palette[(pp-ppee)+5];
+                       if(spee==0) spee++;
+               }
+               /*printf("              pp=%02d ", pp/3);
+               printf("        bmp: [%d]", bmp->palette[(pp-ppee)]);
+               printf("[%d]", bmp->palette[(pp-ppee)+1]);
+               printf("[%d]\n", bmp->palette[(pp-ppee)+2]);*/
+               pp+=3;
+       }
+
+       //update the palette~
+       //printf("      aqpp=           %d\n", aqpp);
+       modexPalUpdate(bmp, &ppee, 1, aqpp);
+       (*i)=ppee;
+       //printf("      aqpp=   %d\n", aqpp);
+       //printf("      ppee=   %d\n", ppee);
+
+       /*printf(".\n");
+       printf("aqpp=   %02d\n", aqpp/3);
+       printf("aq=     %02d\n", aq);
+       printf("aa=     %02d\n", aa);
+       printf("                ppee=   %02d\n", ppee);*/
+
+       if(aq<aa){ /*printf("~~~~\n"); */ppee=q; aq++; goto aqpee; }
+       /*printf("ppee=%d\n", ppee);
+       printf("pp=%d\n", pp);
+       printf("q=%d\n", q);
+       printf("(*i)=%d\n", (*i));*/
+
+       }
+}
+
+void
+modexPalUpdate2(byte *p)
+{
+       int i;
+       modexWaitBorder();
+       outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
+       for(i=0; i<PAL_SIZE/2; i++)
+       {
+               outp(PAL_DATA_REG, p[i]);
+       }
+       modexWaitBorder();          /* waits one retrace -- less flicker */
+       for(; i<PAL_SIZE; i++)
+       {
+               outp(PAL_DATA_REG, p[(i)]);
+       }
+}
index 4711fc76613dcd53eecdd4ed5183f7baf4fc777e..d44fadea145554ea257ffd5fa2d1ee6c278c95dd 100755 (executable)
@@ -37,7 +37,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                //right movement\r
                case 3:\r
                        if(pip[0].tx >= 0 && pip[0].tx+pip[0].page->ti.tw < pip[0].map->width && player[pn].enti.tx == pip[0].tx+pip[0].page->ti.tilemidposscreenx &&\r
-                       !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY))    //collision detection!\r
+                       !(pip[0].map->data[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY))  //collision detection!\r
                        {\r
                                player[pn].walktype=2;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -48,7 +48,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                                        //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;\r
                                } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; }\r
                        }\r
-                       else if(player[pn].enti.tx < pip[0].map->width && !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY))\r
+                       else if(player[pn].enti.tx < pip[0].map->width && !(pip[0].map->data[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY))\r
                        {\r
                                player[pn].walktype=1;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -70,7 +70,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                //left movement\r
                case 1:\r
                        if(pip[0].tx > 0 && pip[0].tx+pip[0].page->ti.tw <= pip[0].map->width && player[pn].enti.tx == pip[0].tx+pip[0].page->ti.tilemidposscreenx &&\r
-                       !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY))  //collision detection!\r
+                       !(pip[0].map->data[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY))        //collision detection!\r
                        {\r
                                player[pn].walktype=2;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -81,7 +81,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                                        //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;\r
                                } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx--; }\r
                        }\r
-                       else if(player[pn].enti.tx > 1 && !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY))\r
+                       else if(player[pn].enti.tx > 1 && !(pip[0].map->data[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY))\r
                        {\r
                                player[pn].walktype=1;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -103,7 +103,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                //down movement\r
                case 4:\r
                        if(pip[0].ty >= 0 && pip[0].ty+pip[0].page->ti.th < pip[0].map->height && player[pn].enti.ty == pip[0].ty+pip[0].page->ti.tilemidposscreeny &&\r
-                       !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY))    //collision detection!\r
+                       !(pip[0].map->data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY))  //collision detection!\r
                        {\r
                                player[pn].walktype=2;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -114,7 +114,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                                        //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;\r
                                } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty++; }\r
                        }\r
-                       else if(player[pn].enti.ty < pip[0].map->height && !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY))\r
+                       else if(player[pn].enti.ty < pip[0].map->height && !(pip[0].map->data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY))\r
                        {\r
                                player[pn].walktype=1;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -136,7 +136,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                //up movement\r
                case 0:\r
                        if(pip[0].ty > 0 && pip[0].ty+pip[0].page->ti.th <= pip[0].map->height && player[pn].enti.ty == pip[0].ty+pip[0].page->ti.tilemidposscreeny &&\r
-                       !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty-1 == TRIGGY))  //collision detection!\r
+                       !(pip[0].map->data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty-1 == TRIGGY))        //collision detection!\r
                        {\r
                                player[pn].walktype=2;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -147,7 +147,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn)
                                        //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;\r
                                } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty--; }\r
                        }\r
-                       else if(player[pn].enti.ty > 1 && !(pip[0].map->MAPDATAPTR[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(player[pn].enti.tx == TRIGGX &&  player[pn].enti.ty-1 == TRIGGY))\r
+                       else if(player[pn].enti.ty > 1 && !(pip[0].map->data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(player[pn].enti.tx == TRIGGX &&  player[pn].enti.ty-1 == TRIGGY))\r
                        {\r
                                player[pn].walktype=1;\r
                                if(player[pn].enti.q<=player[pn].enti.spt)\r
@@ -318,8 +318,8 @@ initMap(map_t *map) {
        i=0;\r
        for(y=0; y<map->height; y++) {\r
                for(x=0; x<map->width; x++) {\r
-                       map->MAPDATAPTR[i]=255;\r
-//                     printf("[%d]", map->MAPDATAPTR[i]);\r
+                       map->data[i]=255;\r
+//                     printf("[%d]", map->data[i]);\r
                        tile = tile ? 0 : 1;\r
                        i++;\r
                }\r
@@ -337,7 +337,7 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid)
        ScrollRight(mv, player, id, plid);\r
 \r
        /* draw the next column */\r
-       x= mv[0].page->sw + mv[0].map->MAPTILESPTR->tileWidth;\r
+       x= mv[0].page->sw + mv[0].map->tiles->tileWidth;\r
 #ifndef FULLRCREND\r
        if(player[plid].enti.q%4)\r
 #else\r
@@ -347,7 +347,7 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid)
                        mapDrawCol(&mv[id], mv[0].tx + mv[0].page->ti.tw, mv[0].ty-1, x, player, DRAWCOLNUM);\r
 //             else\r
 //                     if(mv[0].video->bgps)\r
-//                             modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[0].map->MAPTILESPTR->tileWidth, mv[0].page->height);\r
+//                             modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[0].map->tiles->tileWidth, mv[0].page->height);\r
        //mv[0].video->dorender=1;//ScrollRight\r
 }\r
 \r
@@ -369,7 +369,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid)
                        mapDrawCol(&mv[id], mv[0].tx - 1, mv[0].ty-1, x, player, DRAWCOLNUM);\r
 //             else\r
 //                     if(mv[0].video->bgps)\r
-//                             modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[0].map->MAPTILESPTR->tileWidth, mv[0].page->height);\r
+//                             modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[0].map->tiles->tileWidth, mv[0].page->height);\r
        //mv[0].video->dorender=1;//ScrollLeft\r
 }\r
 \r
@@ -391,7 +391,7 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid)
                        mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty-1, y, player, DRAWROWNUM);\r
 //             else\r
 //                     if(mv[0].video->bgps)\r
-//                             modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->MAPTILESPTR->tileHeight);\r
+//                             modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->tiles->tileHeight);\r
        //mv[0].video->dorender=1;//ScrollUp\r
 }\r
 \r
@@ -403,7 +403,7 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid)
        ScrollDown(mv, player, id, plid);\r
 \r
        /* draw the next row */\r
-       y= mv[0].page->sh + mv[0].map->MAPTILESPTR->tileHeight;\r
+       y= mv[0].page->sh + mv[0].map->tiles->tileHeight;\r
 #ifndef FULLRCREND\r
        if(player[plid].enti.q%3)\r
 #else\r
@@ -413,7 +413,7 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid)
                        mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty+mv[0].page->ti.th, y, player, DRAWROWNUM);\r
 //             else\r
 //                     if(mv[0].video->bgps)\r
-//                             modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->MAPTILESPTR->tileHeight);\r
+//                             modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->tiles->tileHeight);\r
        //mv[0].video->dorender=1;//ScrollDown\r
 }\r
 \r
@@ -498,16 +498,16 @@ sword chkmap(map_t *map, word q)
                //initiate a null map!\r
                map->width=MAPW;///2;\r
                map->height=MAPH;///2;\r
-//             map->MAPDATAPTR = malloc(((map->width*map->height)+1)*sizeof(byte));\r
-               map->MAPDATAPTR = &x;\r
-               map->MAPTILESPTR = malloc(sizeof(tiles_t));\r
+//             map->data = malloc(((map->width*map->height)+1)*sizeof(byte));\r
+               map->data = &x;\r
+               map->tiles = malloc(sizeof(tiles_t));\r
                //fix this to be far~\r
 //             bp = bitmapLoadPcx("data/ed.pcx");\r
-//             map->MAPTILESPTR->data = &bp;\r
-               map->MAPTILESPTR->tileHeight = 16;\r
-               map->MAPTILESPTR->tileWidth = 16;\r
-               map->MAPTILESPTR->rows = 1;\r
-               map->MAPTILESPTR->cols = 1;\r
+//             map->tiles->data = &bp;\r
+               map->tiles->tileHeight = 16;\r
+               map->tiles->tileWidth = 16;\r
+               map->tiles->rows = 1;\r
+               map->tiles->cols = 1;\r
 #ifdef __DEBUG_MAP__\r
                dbg_maptext = true;\r
 #endif\r
@@ -538,12 +538,12 @@ void ZC_mapinitMV(map_view_t *mv, int tx, int ty)
        /* set up the coordinates */\r
        mv[0].tx = mv[1].tx = tx;\r
        mv[0].ty = mv[1].ty = ty;\r
-       mv[0].page->dx = mv[1].page->dx = mv[2].page->dx = mv[3].page->dx = mv->map->MAPTILESPTR->tileWidth;\r
-       mv[0].page->dy = mv[1].page->dy = mv[2].page->dy = mv[3].page->dy = mv->map->MAPTILESPTR->tileHeight;\r
+       mv[0].page->dx = mv[1].page->dx = mv[2].page->dx = mv[3].page->dx = mv->map->tiles->tileWidth;\r
+       mv[0].page->dy = mv[1].page->dy = mv[2].page->dy = mv[3].page->dy = mv->map->tiles->tileHeight;\r
 \r
        /* set up the thresholds */\r
-       mv[0].dxThresh = mv[1].dxThresh = mv[2].dxThresh = mv[3].dxThresh = mv->map->MAPTILESPTR->tileWidth * 2;\r
-       mv[0].dyThresh = mv[1].dyThresh = mv[2].dyThresh = mv[3].dyThresh = mv->map->MAPTILESPTR->tileHeight * 2;\r
+       mv[0].dxThresh = mv[1].dxThresh = mv[2].dxThresh = mv[3].dxThresh = mv->map->tiles->tileWidth * 2;\r
+       mv[0].dyThresh = mv[1].dyThresh = mv[2].dyThresh = mv[3].dyThresh = mv->map->tiles->tileHeight * 2;\r
 }\r
 \r
 void ZC_mapredraw(map_view_t *mv, int tx, int ty)\r
@@ -553,7 +553,7 @@ void ZC_mapredraw(map_view_t *mv, int tx, int ty)
 \r
        py=0;\r
        i=mv[0].ty * mv[0].map->width + mv[0].tx;\r
-       for(ty=mv[0].ty-1; py < mv[0].page->sh+mv->dyThresh && ty < mv[0].map->height; ty++, py+=mv[0].map->MAPTILESPTR->tileHeight) {\r
+       for(ty=mv[0].ty-1; py < mv[0].page->sh+mv->dyThresh && ty < mv[0].map->height; ty++, py+=mv[0].map->tiles->tileHeight) {\r
                mapDrawWRow(&mv[0], tx-1, ty, py);\r
                mapDrawWRow(&mv[1], tx-1, ty, py);\r
                i+=mv->map->width - tx;\r
@@ -563,39 +563,45 @@ void ZC_mapredraw(map_view_t *mv, int tx, int ty)
 void near\r
 mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y)\r
 {\r
-       word rx, ry;\r
+       word rx;\r
+       word ry;\r
        //word textx=0, texty=0;\r
        //if(i==0) i=2;\r
-//     printf("%02d ", i); if(x >= page->width - t->tileWidth) printf("\n");\r
-       switch(i)\r
+       if(i==0)\r
        {\r
-               case 0:\r
-                       //wwww\r
-                       modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, 1); //currently the over scan color!\r
-               break;\r
-               default:\r
-                       rx = (((i-1) % ((t->pcximg->width)/t->tileWidth)) * t->tileWidth);\r
-                       ry = (((i-1) / ((t->pcximg->height)/t->tileHeight)) * t->tileHeight);\r
+               //wwww\r
+               modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, 1); //currently the over scan color!\r
+       }\r
+       else\r
+       {\r
+               rx = (((i-1) % ((t->data->width)/t->tileWidth)) * t->tileWidth);\r
+               ry = (((i-1) / ((t->data->height)/t->tileHeight)) * t->tileHeight);\r
+////0000printf("i=%d\n", i);\r
+#ifdef __DEBUG_MAP__\r
+               switch(dbg_maptext)\r
+               {\r
+                       case 0:\r
+#endif\r
 #ifndef TILERENDER\r
-                       if(!pagenorendermap) modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, i+1);\r
+                               if(!pagenorendermap) modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, i+1);\r
+                               sprintf(global_temp_status_text2, "%d", i);\r
+                               modexprint(page, x, y, 1, 1, 2, global_temp_status_text2);\r
 #else\r
-                       modexDrawBmpRegion              (page, x, y, rx, ry, t->tileWidth, t->tileHeight, i);\r
-                       //draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
-                       //modexDrawBmpRegion    (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));\r
+                               modexDrawBmpRegion              (page, x, y, rx, ry, t->tileWidth, t->tileHeight, i);\r
+                               /* then the sprite. note modding ram ptr means we just draw to (x&3,0) */\r
+                               //draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
+                               //modexDrawBmpRegion    (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));\r
+#endif\r
+#ifdef __DEBUG_MAP__\r
+                       break;\r
+                       case 1:\r
+                               if(!pagenorendermap) modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, i);\r
+                               sprintf(global_temp_status_text2, "%d", i);\r
+                               modexprint(page, x, y, 1, 1, 2, global_temp_status_text2);\r
+                       break;\r
+               }\r
 #endif\r
-/*#ifdef __DEBUG_MAP__\r
-                       switch(dbg_maptext)\r
-                       {\r
-                               case 0:\r
-                               break;\r
-                               case 1:\r
-                                       sprintf(global_temp_status_text2, "%u", i); modexprint(page, x, y, 1, 1, 2, global_temp_status_text2);\r
-                               break;\r
-                       }\r
-#endif*/\r
-               break;\r
        }\r
-       //sprintf(global_temp_status_text2, "%d", i); modexprint(page, x+3, y-1, 1, 1, 2, global_temp_status_text2);\r
 }\r
 \r
 void near mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *player, word poopoffset)\r
@@ -607,9 +613,9 @@ if(pagedelayrendermap)              if(!y)  y+=TILEWH;      else    y-=TILEWH;
 if(pagedelayrendermap){ sprintf(global_temp_status_text, "%-3u", mv->dx); modexprint(mv[0].page, player[0].enti.x, player[0].enti.y-28-(poopoffset*8) , 1, 2, 1, global_temp_status_text); }\r
        /* the position within the map array */\r
        i=ty * mv->map->width + tx;\r
-       for(    mv->dx=poopoffset;      mv->dx<(mv->page->sw+mv->dxThresh)/(poopoffset+1) && tx < mv->map->width;       mv->dx+=mv->map->MAPTILESPTR->tileWidth, tx++) {\r
+       for(    mv->dx=poopoffset;      mv->dx<(mv->page->sw+mv->dxThresh)/(poopoffset+1) && tx < mv->map->width;       mv->dx+=mv->map->tiles->tileWidth, tx++) {\r
                if(i>=0)\r
-                       mapDrawTile(mv->map->MAPTILESPTR, mv->map->MAPDATAPTR[i], mv->page, mv->dx, y);\r
+                       mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, mv->dx, y);\r
                i++; /* next! */\r
        }\r
 if(pagedelayrendermap) delay(200);\r
@@ -626,9 +632,9 @@ if(pagedelayrendermap){ sprintf(global_temp_status_text, "%-3u", mv->dy); modexp
        i=ty * mv->map->width + tx;\r
        /* We'll copy all of the columns in the screen,\r
           i + 1 row above and one below */\r
-       for(    mv->dy=poopoffset;      mv->dy<(mv->page->sh+mv->dyThresh)/(poopoffset+1) && ty < mv->map->height;      mv->dy+=mv->map->MAPTILESPTR->tileHeight, ty++) {\r
+       for(    mv->dy=poopoffset;      mv->dy<(mv->page->sh+mv->dyThresh)/(poopoffset+1) && ty < mv->map->height;      mv->dy+=mv->map->tiles->tileHeight, ty++) {\r
                if(i>=0)\r
-                       mapDrawTile(mv->map->MAPTILESPTR, mv->map->MAPDATAPTR[i], mv->page, x, mv->dy);\r
+                       mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, mv->dy);\r
                i += mv->map->width;\r
        }\r
 if(pagedelayrendermap) delay(200);\r
@@ -640,9 +646,9 @@ void mapDrawWRow(map_view_t *mv, int tx, int ty, word y)
 \r
        /* the position within the map array */\r
        i=ty * mv->map->width + tx;\r
-       for(mv->dx=0; mv->dx<mv->page->sw+mv->dxThresh && tx < mv->map->width; mv->dx+=mv->map->MAPTILESPTR->tileWidth, tx++) {\r
+       for(mv->dx=0; mv->dx<mv->page->sw+mv->dxThresh && tx < mv->map->width; mv->dx+=mv->map->tiles->tileWidth, tx++) {\r
                if(i>=0)        /* we are in the map, so copy! */\r
-                       mapDrawTile(mv->map->MAPTILESPTR, mv->map->MAPDATAPTR[i], mv->page, mv->dx, y);\r
+                       mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, mv->dx, y);\r
                i++; /* next! */\r
        }\r
 }\r
@@ -656,21 +662,26 @@ void mapDrawWCol(map_view_t *mv, int tx, int ty, word x)
 \r
        /* We'll copy all of the columns in the screen,\r
           i + 1 row above and one below */\r
-       for(mv->dy=0; mv->dy<mv->page->sh+mv->dyThresh && ty < mv->map->height; mv->dy+=mv->map->MAPTILESPTR->tileHeight, ty++) {\r
+       for(mv->dy=0; mv->dy<mv->page->sh+mv->dyThresh && ty < mv->map->height; mv->dy+=mv->map->tiles->tileHeight, ty++) {\r
                if(i>=0)        /* we are in the map, so copy away! */\r
-                       mapDrawTile(mv->map->MAPTILESPTR, mv->map->MAPDATAPTR[i], mv->page, x, mv->dy);\r
+                       mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, mv->dy);\r
                i += mv->map->width;\r
        }\r
 }\r
 \r
+/*void qclean()\r
+{\r
+       //setkb(0);\r
+}*/\r
+\r
 boolean pagenorendermap = 0;\r
 boolean pagedelayrendermap = 0;\r
 \r
 /*     sync    */\r
 void shinku(global_game_variables_t *gv)\r
 {\r
-       word x = gv->video.page[/*!*/(gv->video.p)].dx; //(gv->video.page[(gv->video.p)].tlx) - // follow the screen\r
-       word y = gv->video.page[/*!*/(gv->video.p)].dy; //(gv->video.page[(gv->video.p)].tly) - // follow the screen\r
+       word x = gv->video.page[/*!*/(gv->video.p)].dx - (gv->video.page[(gv->video.p)].tlx); // follow the screen\r
+       word y = gv->video.page[/*!*/(gv->video.p)].dy - (gv->video.page[(gv->video.p)].tly); // follow the screen\r
        word col = 2, bgcol = 1, type = 1;//w = 64, h = 8,\r
        if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second))\r
        {\r
@@ -682,13 +693,6 @@ void shinku(global_game_variables_t *gv)
         //\r
         //      This fixes *** Null pointer assignment detected error message in ZCROLL.EXE on exit.\r
                sprintf(global_temp_status_text, "%.0f fps", (double)gv->kurokku.tiku/ticktock(gv));\r
-               //modexprint(&(gv->video.page[/*!*/(gv->video.p)]), x, y, type, col, bgcol, global_temp_status_text);\r
-               modexCopyPageRegion(&gv->video.page[0], &gv->video.page[1],\r
-                       gv->video.page[/*!*/(gv->video.p)].dx,\r
-                       gv->video.page[/*!*/(gv->video.p)].dy,\r
-                       gv->video.page[/*!*/(gv->video.p)].dx,\r
-                       gv->video.page[/*!*/(gv->video.p)].dy,\r
-                       96, 16);\r
                modexprint(&(gv->video.page[/*!*/(gv->video.p)]), x, y, type, col, bgcol, global_temp_status_text);\r
 //0000printf("dx=%u    dy=%u\n", gv->video.page[/*!*/(gv->video.p)].dx, gv->video.page[/*!*/(gv->video.p)].dy);\r
                gv->kurokku.tiku=0;\r
@@ -747,7 +751,7 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn)
                break;\r
        }\r
        x-=4;\r
-       y-=pip[0].map->MAPTILESPTR->tileHeight;\r
+       y-=pip[0].map->tiles->tileHeight;\r
        switch (player[pn].enti.d)\r
        {\r
                case 0:\r
index fc187954663f4a3fbfdf0d8fe805146f437dfde7..efe02d9b7e32c9d315668dfd0b4641fa2f78e47d 100755 (executable)
@@ -81,7 +81,7 @@
 #define SCROLLEXITMESG         printf("page[0]dxy: %dx%d", gvar.video.page[0].dx, gvar.video.page[0].dy);\\r
        printf("\n\n");\\r
        printf("player vars:\n");\\r
-       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->MAPDATAPTR[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\\r
+       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][(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\\r
        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);\\r
                printf("        pdir: %u\n", player[0].pdir); printf("  delay=%u", player[0].enti.spri->delay);\\r
 printf("\n\n");\\r
@@ -132,7 +132,7 @@ inline void near ScrollRight(map_view_t *mv, player_t *player, word id, word pli
                /* Snap the origin forward */\r
                mv[id].page->data += 4;\r
 \r
-               mv[id].page->dx = mv[id].map->MAPTILESPTR->tileWidth;\r
+               mv[id].page->dx = mv[id].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
@@ -149,7 +149,7 @@ inline void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid
                /* Snap the origin backward */\r
                mv[id].page->data -= 4;\r
 \r
-               mv[id].page->dx = mv[id].map->MAPTILESPTR->tileWidth;\r
+               mv[id].page->dx = mv[id].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
@@ -166,7 +166,7 @@ inline void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid)
                /* Snap the origin upward */\r
                mv[id].page->data -= mv[id].page->pi;\r
 \r
-               mv[id].page->dy = mv[id].map->MAPTILESPTR->tileHeight;\r
+               mv[id].page->dy = mv[id].map->tiles->tileHeight;\r
        }\r
 }\r
 \r
@@ -183,7 +183,7 @@ inline void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid
                /* Snap the origin downward */\r
                mv[id].page->data += mv[id].page->pi;\r
 \r
-               mv[id].page->dy = mv[id].map->MAPTILESPTR->tileHeight;\r
+               mv[id].page->dy = mv[id].map->tiles->tileHeight;\r
        }\r
 }\r
 \r
index deef4c7c5ac6bda9d6d9a778b62034d299dc8cc9..c73ea3dd403f3f32c22c940f4ab902dea676637d 100755 (executable)
@@ -32,9 +32,6 @@ main(int argc, char *argv[])
 #ifdef DUMP\r
 #ifdef DUMP_MAP\r
        short i;\r
-#ifdef __NEWMAPTILEDATAVARS__\r
-       word k;\r
-#endif\r
 #endif\r
 #endif\r
        char *fmt = "Memory available = %u\n";\r
@@ -61,24 +58,15 @@ main(int argc, char *argv[])
        fprintf(stdout, "map.height=    %d\n", map.height);\r
        #ifdef DUMP_MAP\r
        //if(map.width*map.height != 1200)\r
-#ifdef __NEWMAPTILEDATAVARS__\r
-       for(k=0;k<MAPLAYERS;k++)\r
+       for(i=0; i<(map.width*map.height); i++)\r
        {\r
-               printf("maplayer: %u\n", k);\r
-#endif\r
-               for(i=0; i<(map.width*map.height); i++)\r
-               {\r
-                       //fprintf(stdout, "%04d[%02d]", i, map.data[i]);\r
-                       fprintf(stdout, "%c", map.MAPDATAPTK[i]+44);\r
-                       if(!((i+1)%map.width)){\r
-                               //fprintf(stdout, "[%d]", i);\r
-                               fprintf(stdout, "\n"); }\r
-               }\r
-               //fprintf(stdout, "\n");\r
-#ifdef __NEWMAPTILEDATAVARS__\r
-               getch();\r
+               //fprintf(stdout, "%04d[%02d]", i, map.data[i]);\r
+               fprintf(stdout, "%c", map.layerdata[0][i]+44);\r
+               if(!((i+1)%map.width)){\r
+                       //fprintf(stdout, "[%d]", i);\r
+                       fprintf(stdout, "\n"); }\r
        }\r
-#endif\r
+       fprintf(stdout, "\n");\r
        #else\r
        //fprintf(stderr, "contents of the buffer\n[\n%s\n]\n", (gvar.ca.camap.mapsegs));\r
        #endif\r
@@ -89,7 +77,7 @@ main(int argc, char *argv[])
        fprintf(stdout, "&map.height==%Fp\n", map.height);\r
        fprintf(stdout, "&map.data==%Fp\n", map.data);*/\r
        #endif\r
-       //fprintf(stdout, "okies~\n");\r
+       fprintf(stdout, "okies~\n");\r
        MM_FreePtr(&(gvar.ca.camap.mapsegs), &gvar);\r
        PM_Shutdown(&gvar);\r
        CA_Shutdown(&gvar);\r
index beaff2b2c7fc19e1f4ed959ebf2e35871268cb80..7c3dd4fe5266f9a193978893db57593bcceb139c 100755 (executable)
@@ -180,7 +180,7 @@ void main(int argc, char *argv[])
 \r
        //the scripting stuff....\r
        //if(((player[0].enti.triggerx == TRIGGX && player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5))\r
-       if(((mv[0].map->MAPDATAPTR[(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))\r
+       if(((mv[0].map->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))\r
        {\r
                short i;\r
                for(i=800; i>=400; i--)\r
index 342f3ba54b058bdce07d85e2db539793fc0578ac..f2e803f314402b02ebf67bdc968ffb4b676ce6a6 100755 (executable)
@@ -104,15 +104,7 @@ void main(int argc, char *argv[])
        VGAmodeX(1/*bakapee*/, 1, &gvar);\r
 \r
        /* load color palette */\r
-       /*ptmp.offset=(paloffset/3);\r
-       modexPalUpdate(&ptmp, &paloffset, 0, 0);\r
-       //modexClearRegion(bg->page, 0, 0, 320, 240, 255);\r
-       //printf("      %d\n", sizeof(ptmp.data));\r
-       //printf("1:    %d\n", paloffset);\r
-       map.tiles->data->offset=(paloffset/3);\r
-       modexPalUpdate(map.tiles->data, &paloffset, 0, 0);*/\r
        VL_LoadPalFile(bakapee1p, &gvar.video.palette);\r
-       //VL_LoadPalFile("data/default.pal", &gvar.video.palette);\r
 \r
 #ifdef FADE\r
        gpal = modexNewPal();\r
@@ -147,7 +139,6 @@ void main(int argc, char *argv[])
        gvar.video.page[0].tlx=mv[0].tx*TILEWH;\r
        gvar.video.page[0].tly=mv[0].ty*TILEWH;\r
        shinku(&gvar);\r
-//modexpdump(mv[0].page);\r
 #ifdef FADE\r
        modexFadeOn(4, gpal);\r
 #endif\r
@@ -172,7 +163,7 @@ void main(int argc, char *argv[])
 \r
                //the scripting stuff....\r
                //if(((player[0].enti.triggerx == TRIGGX && player[0].enti.triggery == TRIGGY) && IN_KeyDown(0x1C))||(player[0].enti.tx == 5 && player[0].enti.ty == 5))\r
-               if(((mv[0].map->MAPDATAPTR[(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))\r
+               if(((mv[0].map->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))\r
                {\r
                        short i;\r
                        for(i=800; i>=400; i--)\r
@@ -184,8 +175,8 @@ void main(int argc, char *argv[])
                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--; }\r
                //debugging binds!\r
 \r
-               if(IN_KeyDown(24)){ modexPalUpdate0(&gvar.video.palette); /*paloffset=0;*/ modexpdump(mv[0].page); IN_UserInput(1,1); } //o\r
-               if(IN_KeyDown(22)){ modexPalUpdate0(&gvar.video.palette); } //u\r
+               if(IN_KeyDown(24)){ modexPalUpdate0(gpal); /*paloffset=0;*/ modexpdump(mv[0].page); IN_UserInput(1,1); } //o\r
+               if(IN_KeyDown(22)){ modexPalUpdate0(gpal); } //u\r
 \r
                FUNCTIONKEYFUNCTIONS\r
                FUNCTIONKEYDRAWJUNK\r