]> 4ch.mooo.com Git - 16.git/commitdiff
it is semi working the bg preservation wwww
authorsparky4 <sparky4@cock.li>
Fri, 27 Jan 2017 16:05:57 +0000 (10:05 -0600)
committersparky4 <sparky4@cock.li>
Fri, 27 Jan 2017 16:05:57 +0000 (10:05 -0600)
15 files changed:
data/test.map
data/test.tmx
src/0.c
src/lib/16_enti.c
src/lib/16_enti.h
src/lib/16_sprit.c
src/lib/16_tail.h
src/lib/16_tdef.h
src/lib/16_vl.c
src/lib/16_vl.h
src/lib/scroll16.c
src/lib/scroll16.h
src/scroll.c
src/test.c
src/zcroll.c

index 81ae685c2df2d6b7e15b72d9f2f42fff2ae7e3ca..04d87322dcd9dda2e2a8b77d4c82255550011dde 100755 (executable)
@@ -2,7 +2,7 @@
  "height":30,
  "layers":[
         {
-         "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, 1, 1, 1, 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, 1, 1, 1, 1, 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, 1, 1, 1, 1, 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, 1, 1, 1, 1, 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, 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, 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, 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, 1, 1, 1, 1, 1, 1, 1, 10, 10, 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, 10, 10],
+         "data":[1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7, 8, 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, 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, 1, 1, 1, 1, 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, 1, 1, 1, 1, 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, 1, 1, 1, 1, 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, 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, 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, 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, 1, 1, 1, 1, 1, 1, 1, 10, 10, 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, 10, 10],
          "height":30,
          "name":"bg",
          "opacity":1,
@@ -17,7 +17,6 @@
     {
 
     },
- "renderorder":"right-down",
  "tileheight":16,
  "tilesets":[
         {
index cb3cd45a8fe31c1f50b05dc0fa895c1da049de84..306c6bc3a5278532459572f78482f26bd7d1abee 100755 (executable)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<map version="1.0" orientation="orthogonal" renderorder="right-down" width="40" height="30" tilewidth="16" tileheight="16" backgroundcolor="#000000">
+<map version="1.0" orientation="orthogonal" width="40" height="30" tilewidth="16" tileheight="16" backgroundcolor="#000000">
  <tileset firstgid="1" name="wwww" tilewidth="16" tileheight="16">
   <image source="ed.png" width="64" height="64"/>
  </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,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,2,3,4,0,1,2,3,4,5,6,7,8,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,
 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,1,1,1,1,
 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,1,1,1,1,
 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,1,1,1,1,
diff --git a/src/0.c b/src/0.c
index 2d55bcdfdddc3edbabe1432e1423531f9eb3ff23..31d1952eb2ff6c24b8eee5e0dc75b76c278e66f9 100755 (executable)
--- a/src/0.c
+++ b/src/0.c
@@ -83,7 +83,7 @@ int main(int argc,char **argv)
 \r
        IN_Startup();\r
        IN_Default(0,&player,ctrl_Keyboard1);\r
-       EN_initplayer(&player, 0);\r
+       EN_initplayer(&player, 0, &gvar.video);\r
 \r
        /* setup camera and screen~ */\r
        modexHiganbanaPageSetup(&gvar.video);\r
index 1c89d9b75d8f80f3e9e146288388c7f329f915ea..cb05a46af76f76793ca2c96b8d42cb3794fc8f65 100755 (executable)
 \r
 #include "src/lib/16_enti.h"\r
 \r
-void EN_initentity(entity_t *enti)\r
+void EN_initentity(entity_t *enti, video_t *video)\r
 {\r
+       unsigned int i,o,o2,w,h;\r
        //tx and ty inited by map\r
        enti->x = enti->tx*TILEWH;\r
        enti->y = enti->ty*TILEWH;\r
        enti->triggerx = enti->tx;\r
-       enti->triggery = enti->ty+1;\r
+       enti->triggery = enti->ty+1;    //south\r
+\r
        enti->q = 1;\r
        enti->d =2;\r
        enti->hp=4;\r
@@ -38,12 +40,31 @@ void EN_initentity(entity_t *enti)
        enti->pred = enti->d;\r
        enti->overdraww=0;\r
        enti->overdrawh=4;\r
+\r
+//     VL_Initofs(video);\r
+\r
+//     modexClearRegion(&video->page[0], enti->x, enti->y, 16, 16, 2);\r
+//     modexClearRegion(&video->page[2], 0, 0, video->page[2].sw, video->page[2].sh, 45);\r
+//     modexClearRegion(&video->page[3], 0, 0, video->page[3].sw, video->page[3].sh, 47);\r
+\r
+       video->ofs.pattern_ofs=(uint16_t)video->page[0].data;\r
+       video->ofs.offscreen_ofs=(uint16_t)video->page[3].data;\r
+       w = (enti->x + 24) & (~3);\r
+       h = enti->y + 32;\r
+\r
+       // block copy pattern to where we will draw the sprite\r
+       vga_setup_wm1_block_copy();\r
+       o2 = video->ofs.offscreen_ofs;                                                                          //dest\r
+       o = video->ofs.pattern_ofs + (enti->y * video->page[0].stridew) + (enti->x >> 2);       // source\r
+       for (i=0;i < h;i++,o += video->page[0].stridew,o2 += (w >> 2)) vga_wm1_mem_block_copy(o2,o,w >> 2);\r
+       // must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally\r
+       vga_restore_rm0wm0();\r
 }\r
 \r
 //init player!\r
-void EN_initplayer(player_t *player, word pn)\r
+void EN_initplayer(player_t *player, word pn, video_t *video)\r
 {\r
-       EN_initentity(&player[pn].enti);\r
+       EN_initentity(&player[pn].enti, video);\r
 /*     player[0].info.x = player[0].tx;\r
        player[0].info.xaxis = player[0].tx*TILEWH;\r
        player[0].info.y = player[0].ty;\r
index dc76c8a45be528506f685d407d6f8b03dc4673b3..7f18b15299c2b06bdc5c0d81e69a14df886ad31e 100755 (executable)
@@ -44,7 +44,7 @@
 //     word spt;               // speed per tile
 // } entity_t;
 
-void EN_initentity(entity_t *enti);
-void EN_initplayer(player_t *player, word pn);
+void EN_initentity(entity_t *enti, video_t *video);
+void EN_initplayer(player_t *player, word pn, video_t *video);
 
 #endif
index d9ecad991bfedaf07b7f626ca8099e89718a98ac..66797e3da75bae4fc8a21a1aa25d7a59bbaca1df 100755 (executable)
@@ -99,16 +99,13 @@ void print_anim_ids(struct sprite *spri)
 void animate_spri(entity_t *enti, video_t *video)\r
 {\r
 #define INC_PER_FRAME if(enti->q&1) enti->persist_aniframe++; if(enti->persist_aniframe>4) enti->persist_aniframe = 1;\r
-       const unsigned int offscreen_ofs =      video->page[0].pagesize+video->page[1].pagesize;//(vga_state.vga_stride * vga_state.vga_height);\r
-       const unsigned int pattern_ofs =        0x10000UL - (uint16_t)video->page[2].data;//(vga_state.vga_stride * vga_state.vga_height);\r
-       unsigned int copy_ofs =                 offscreen_ofs;\r
-       unsigned int display_ofs =              0x0000;\r
        unsigned int i,o,o2; int j;\r
        int x,y,rx,ry,w,h;\r
 \r
        VGA_RAM_PTR omemptr = (VGA_RAM_PTR)video->page[0].data;// save original mem ptr\r
        x=enti->spri->x;\r
        y=enti->spri->y;\r
+       VL_Initofs(video);\r
 \r
        // Depending on delay, update indices\r
 //#define FRAME1 modexDrawSpriteRegion(pip[(pip->video->p)].page, x, y, 48, player[pn].enti.dire, 24, 32,      PLAYERBMPDATAPTR);\r
@@ -116,11 +113,11 @@ void animate_spri(entity_t *enti, video_t *video)
 //#define FRAME3 modexDrawSpriteRegion(pip[(pip->video->p)].page, x, y, 0, player[pn].enti.dire, 24, 32,       PLAYERBMPDATAPTR);\r
 //#define FRAME4 modexDrawSpriteRegion(pip[(pip->video->p)].page, x, y, 24, player[pn].enti.dire, 24, 32,      PLAYERBMPDATAPTR); stand\r
 \r
-       /* copy active display (0) to offscreen buffer (0x4000) */\r
-       vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = vga_state.vga_stride;\r
+       // copy active display (0) to offscreen buffer (0x4000)\r
+       /*vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = vga_state.vga_stride;\r
        vga_setup_wm1_block_copy();\r
        vga_wm1_mem_block_copy(copy_ofs,        display_ofs,    vga_state.vga_stride * vga_state.vga_height);\r
-       vga_restore_rm0wm0();\r
+       vga_restore_rm0wm0();*/\r
 \r
        switch(enti->spri->delay)\r
        {\r
@@ -171,8 +168,8 @@ void animate_spri(entity_t *enti, video_t *video)
 \r
        // block copy pattern to where we will draw the sprite\r
        vga_setup_wm1_block_copy();\r
-       o2 = offscreen_ofs;\r
-       o = pattern_ofs + (ry * video->page[0].stridew) + (rx >> 2); // source offscreen                0x10000UL -\r
+       o2 = video->ofs.offscreen_ofs;\r
+       o = video->ofs.pattern_ofs + (ry * video->page[0].stridew) + (rx >> 2); // source offscreen\r
        for (i=0;i < h;i++,o += video->page[0].stridew,o2 += (w >> 2)) vga_wm1_mem_block_copy(o2,o,w >> 2);\r
 \r
        // must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally\r
@@ -180,7 +177,7 @@ void animate_spri(entity_t *enti, video_t *video)
 \r
        // replace VGA stride with our own and mem ptr. then sprite rendering at this stage is just (0,0)\r
        vga_state.vga_draw_stride = w >> 2;\r
-       vga_state.vga_graphics_ram = omemptr + offscreen_ofs;\r
+       vga_state.vga_graphics_ram = omemptr + video->ofs.offscreen_ofs;\r
        }else{ rx=ry=w=h=0; vga_state.vga_graphics_ram = (VGA_RAM_PTR)video->page[0].data; }\r
        vga_state.vga_draw_stride_limit = (video->page[0].width + 3 - x) >> 2;//round up\r
 \r
@@ -203,7 +200,7 @@ void animate_spri(entity_t *enti, video_t *video)
 \r
        // block copy to visible RAM from offscreen\r
        vga_setup_wm1_block_copy();\r
-       o = offscreen_ofs; // source offscreen\r
+       o = video->ofs.offscreen_ofs; // source offscreen\r
        o2 = (ry * video->page[0].stridew) + (rx >> 2); // dest visible (original stride)\r
        for (i=0;i < h;i++,o += vga_state.vga_draw_stride,o2 += video->page[0].stridew) vga_wm1_mem_block_copy(o2,o,w >> 2);\r
        // must restore Write Mode 0/Read Mode 0 for this code to continue drawing normally\r
index 22d51178b708be1b085b989e50d49d74a05d2ce3..984ad3650d27a35b736723e501a7dd60ff9cc985 100755 (executable)
 #define PANKEYFUNZC \\r
        ZC_panPageManual(&mv, &player, 0);\r
 \r
-#define FUNCTIONKEYDRAWJUNK \\r
+#define FUNCTIONKEYSHOWMV \\r
        if(IN_KeyDown(1+1)){ gvar.video.sp=0; ZC_ShowMV(&mv, 0, 0); } \\r
        if(IN_KeyDown(2+1)){ gvar.video.sp=1; ZC_ShowMV(&mv, 0, 0); } \\r
        if(IN_KeyDown(3+1)){ gvar.video.sp=2; ZC_ShowMV(&mv, 0, 1); } \\r
        if(IN_KeyDown(4+1)){ gvar.video.sp=3; ZC_ShowMV(&mv, 0, 1); } \\r
+\r
+#define FUNCTIONKEYDRAWJUNK \\r
+       FUNCTIONKEYSHOWMV \\r
        FUNCTIONKEYDRAWJUNKNOMV\r
 \r
 #define FUNCTIONKEYDRAWJUNKNOMV \\r
index 206598c412c7b116bf1fc2fe3ee2857280e10992..0a4248badcc8961697c20c31b657d58c7ee172aa 100755 (executable)
@@ -249,6 +249,11 @@ typedef struct
 } kurokku_t;\r
 \r
 //video\r
+typedef struct\r
+{\r
+       unsigned int offscreen_ofs;\r
+       unsigned int pattern_ofs;\r
+} ofs_t;\r
 #define NUMCHUNKS      416     //keen\r
 \r
 typedef struct\r
@@ -271,6 +276,7 @@ typedef struct
        word pr[MAXPAGE][4];    //render sections of pages (this is supposed to be set up to draw sections of the screen if updated)\r
 \r
        nibble sfip;            //shinku_fps_indicator_page; // we're on page 1 now, shinku(). follow along please or it will not be visible.\r
+       ofs_t   ofs;            //offset vars used for doslib\r
        word    vh;             //video combined height\r
        //0000word startclk; float clk, tickclk;        //timer\r
 //newer vars\r
index 31a76ce66feb8b61b552abdfa2b0b88e9e63b7f7..083e21241032716adb66850f331085fd13b6ad6c 100755 (executable)
@@ -277,6 +277,12 @@ void modexCalcVmemRemain(video_t *video)
        }\r
 }\r
 \r
+void VL_Initofs(video_t *video)\r
+{\r
+       video->ofs.offscreen_ofs =      video->page[0].pagesize+video->page[1].pagesize;//(vga_state.vga_stride * vga_state.vga_height);\r
+       video->ofs.pattern_ofs =        (uint16_t)video->page[2].data;\r
+}\r
+\r
 void modexHiganbanaPageSetup(video_t *video)\r
 {\r
        video->vmem_remain=65535U;\r
@@ -290,9 +296,12 @@ void modexHiganbanaPageSetup(video_t *video)
        (video->page[2]) = modexNextPageFlexibleSize(&(video->page[1]), video->page[0].width, 96);      video->num_of_pages++;\r
        (video->page[3]) = modexNextPageFlexibleSize(&(video->page[2]), video->page[0].width, 96);      video->num_of_pages++;\r
        modexCalcVmemRemain(video);\r
+\r
        video->sp=video->p=0;\r
        video->r=1;\r
        video->vh=video->page[0].height+video->page[1].height+video->page[3].height-8;//+video->page[2].height\r
+\r
+       VL_Initofs(video);\r
        //doslib origi var\r
        video->omemptr=                 vga_state.vga_graphics_ram;\r
        video->vga_draw_stride= vga_state.vga_draw_stride;\r
index 97438affcab3d079a960cc207ecf0b1794b807ff..3ce8d71afc9ef1b65320a3369e6e6186cedf54df 100755 (executable)
@@ -102,6 +102,7 @@ page_t modexDefaultPage(page_t *p);
 page_t modexNextPage(page_t *p);\r
 page_t modexNextPageFlexibleSize(page_t *p, word x, word y);\r
 void modexCalcVmemRemain(video_t *video);\r
+void VL_Initofs(video_t *video);\r
 void modexHiganbanaPageSetup(video_t *video);\r
 //void modexShowPage(page_t *page);\r
 void VL_ShowPage(page_t *page, boolean vsync, boolean sr);\r
index 4ad596f0969b2bb1408a48589f3e3c07ffdcee72..dd37e3fe12965b9333b645915a441e03533afc58 100755 (executable)
@@ -348,12 +348,12 @@ allocMap(int w, int h) {
        return result;\r
 }*/\r
 \r
-/*void\r
+void\r
 initMap(map_t *map) {\r
        // just a place holder to fill out an alternating pattern\r
-       int x, y, xx, yy;\r
-       int i, q;\r
-//     int tile = 1;\r
+       int x, y;//, xx, yy;\r
+       int i;//, q;\r
+       int tile = 1;\r
        //if(!isEMS() || !checkEMS())\r
 //             map->tiles = malloc(sizeof(tiles_t));\r
        //else\r
@@ -375,7 +375,7 @@ initMap(map_t *map) {
 //     map->tiles->rows = 1;\r
 //     map->tiles->cols = 1;//2;\r
 \r
-       q=0;\r
+/*     q=0;\r
        //for(y=0; y<map->height; y++) {\r
        //for(x=0; x<map->width; x++) {\r
        i=0;\r
@@ -393,7 +393,7 @@ initMap(map_t *map) {
 //     printf("\n");\r
        }\r
 //     printf("[%d]", map->data[q]);\r
-       q++;\r
+       q++;*/\r
 //     }\r
        //printf("\n\n");\r
 //     }\r
@@ -401,14 +401,14 @@ initMap(map_t *map) {
        i=0;\r
        for(y=0; y<map->height; y++) {\r
                for(x=0; x<map->width; x++) {\r
-//                     map->data[i]=255;\r
-                       printf("[%d]", map->data[i]);\r
-                       //tile = tile ? 0 : 1;\r
+                       map->data[i]=255;\r
+//                     printf("[%d]", map->data[i]);\r
+                       tile = tile ? 0 : 1;\r
                        i++;\r
                }\r
-               //tile = tile ? 0 : 1;\r
+               tile = tile ? 0 : 1;\r
        }\r
-}*/\r
+}\r
 \r
 void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid)\r
 {\r
index dc81f8735216504ba47fc21e6f289385cbcff1fb..c3260f785688ac9db4c3364b48f62a28824b99e0 100755 (executable)
@@ -95,7 +95,7 @@ extern boolean pagenorendermap, pagedelayrendermap;
 extern char global_temp_status_text[512];\r
 \r
 //map_t allocMap(int w, int h);\r
-//void initMap(map_t *map);\r
+void initMap(map_t *map);\r
 void ZC_walk(map_view_t *pip, player_t *player, word pn);\r
 //void oldwalk(map_view_t *pip, player_t *player, word pn);\r
 void ZC_panPageManual(map_view_t *pip, player_t *player, word pn);\r
index be6f43d1106ccc6bd8f8ca81bccbb61ee7d6cbf5..98e5a16067b7badc4cdef76c4d74a32bb05e5819 100755 (executable)
@@ -119,7 +119,7 @@ void main(int argc, char *argv[])
        mapGoTo(&mv, 0, 0);\r
 \r
        playerXYpos(0, 0, &player, &mv, 0);\r
-       EN_initplayer(&player, 0);\r
+       EN_initplayer(&player, 0, &gvar.video);\r
        player[0].enti.spri->x = player[0].enti.x-4;\r
        player[0].enti.spri->y = player[0].enti.y-16;\r
 \r
index 190b396b2b7cf8a1b03dd8a2005c3a5bba79bfc8..839915fca95c245e818eb6384a30b9f67841ee24 100755 (executable)
@@ -83,7 +83,7 @@ void main(int argc, char *argv[])
 \r
        //IN_Startup();\r
        IN_Default(0,&player,ctrl_Keyboard1);\r
-       EN_initplayer(&player, 0);\r
+       EN_initplayer(&player, 0, &gvar.video);\r
 \r
        VGAmodeX(1, 1, &gvar);\r
        //====modexPalBlack();\r
index 1e783794574ea7d2889298191788f5059525f242..6cdba594518faaeee6ddf7d4bdba3e86201021bd 100755 (executable)
@@ -84,6 +84,7 @@ void main(int argc, char *argv[])
 //     fprintf(stderr, "testing map load~      ");\r
        loadmap("data/test.map", &map);\r
        chkmap(&map, 0);\r
+//     initMap(&map);\r
 //     printf("chkmap ok       ");\r
 //     fprintf(stderr, "yay map loaded~~\n");\r
 \r
@@ -131,7 +132,7 @@ void main(int argc, char *argv[])
        mapGoTo(&mv, 0, 0);\r
 \r
        playerXYpos(0, 0, &player, &mv, 0);\r
-       EN_initplayer(&player, 0);\r
+       EN_initplayer(&player, 0, &gvar.video);\r
        player[0].enti.spri->x = player[0].enti.x-4;\r
        player[0].enti.spri->y = player[0].enti.y-16;\r
 \r
@@ -148,9 +149,10 @@ void main(int argc, char *argv[])
                modexFadeOn(4, dpal);\r
 #endif\r
        }\r
-       animate_spri(&(player[0].enti), &gvar.video);\r
 \r
+//     while(!IN_KeyDown(sc_Escape) && !IN_KeyDown(sc_Space) && !IN_KeyDown(sc_Enter)){ FUNCTIONKEYSHOWMV }\r
        VL_ShowPage(mv[0].page, 0, 0);//modexShowPage(mv[0].page);//!(gvar.video.p)\r
+       animate_spri(&(player[0].enti), &gvar.video);\r
 #ifdef FADE\r
        modexFadeOn(4, gpal);\r
 #endif\r