]> 4ch.mooo.com Git - 16.git/commitdiff
wwww added timer!!
authorsparky4 <sparky4@cock.li>
Thu, 30 Jul 2015 15:43:03 +0000 (10:43 -0500)
committersparky4 <sparky4@cock.li>
Thu, 30 Jul 2015 15:43:03 +0000 (10:43 -0500)
modified:   16.exe
deleted:    16.hed
modified:   bakapi.exe
modified:   exmmtest.exe
modified:   fmemtest.exe
modified:   fontgfx.exe
modified:   fonttest.exe
modified:   inputest.exe
modified:   makefile
modified:   maptest.exe
modified:   palettec.exe
modified:   pcxtest.exe
modified:   scroll.exe
modified:   sountest.exe
modified:   src/lib/16_head.c
modified:   src/lib/16_head.h
modified:   src/lib/doslib/cpu.c
modified:   src/lib/mapread.c
modified:   src/lib/scroll16.c
modified:   src/lib/scroll16.h
new file:   src/lib/timer.c
new file:   src/lib/timer.h
modified:   src/scroll.c
modified:   test.exe
modified:   test2.exe
modified:   tsthimem.exe

26 files changed:
16.exe
16.hed [deleted file]
bakapi.exe
exmmtest.exe
fmemtest.exe
fontgfx.exe
fonttest.exe
inputest.exe
makefile
maptest.exe
palettec.exe
pcxtest.exe
scroll.exe
sountest.exe
src/lib/16_head.c
src/lib/16_head.h
src/lib/doslib/cpu.c
src/lib/mapread.c
src/lib/scroll16.c
src/lib/scroll16.h
src/lib/timer.c [new file with mode: 0644]
src/lib/timer.h [new file with mode: 0644]
src/scroll.c
test.exe
test2.exe
tsthimem.exe

diff --git a/16.exe b/16.exe
index f0f538fef00661ff84f6900ba37c50260601d52f..4097801115fd74e1472aadba1e3857ac0b79c35a 100644 (file)
Binary files a/16.exe and b/16.exe differ
diff --git a/16.hed b/16.hed
deleted file mode 100644 (file)
index 610bc56..0000000
Binary files a/16.hed and /dev/null differ
index 6eba44792e640c76b8d5abd02a12e377ad935031..f9447403a7c1e2157625dd0cc71f8bb4ebca96fc 100644 (file)
Binary files a/bakapi.exe and b/bakapi.exe differ
index 680624bfbc74a9d1d22d4062c478d607f2119d54..eaaf113a63f77688985ee003649726a6730ab526 100644 (file)
Binary files a/exmmtest.exe and b/exmmtest.exe differ
index dd8b328ada3f1de91a6a84d8241c7b3db6306173..fddfc4b5a2f904a4a30881676224e664ac0e7945 100644 (file)
Binary files a/fmemtest.exe and b/fmemtest.exe differ
index 364eb3706d50ff24f60af8848eedff120948b9f9..8da2cc7fedb3f56d24645ed135c361612a9401b7 100644 (file)
Binary files a/fontgfx.exe and b/fontgfx.exe differ
index 7f7af80072f24273bf615b16f371c16aad6aaf5c..b8d8bd9a6ae7892674acfe720cdf01bd66adfc59 100644 (file)
Binary files a/fonttest.exe and b/fonttest.exe differ
index b23b7ecd44878ce584b0ec2ea7c31c928bf3fde4..f655971def5b999e1dd27ffdb01c250be5dda8cf 100644 (file)
Binary files a/inputest.exe and b/inputest.exe differ
index cbb1878fbae62a2f21b90fcae5c06c47573d616a..ea0c9b84dc07fb6de37380c4a026e103cda938ba 100644 (file)
--- a/makefile
+++ b/makefile
@@ -19,15 +19,17 @@ JSMNLIB=$(SRCLIB)jsmn$(DIRSEP)
 DOSLIB=$(SRCLIB)doslib$(DIRSEP)
 WCPULIB=$(SRCLIB)wcpu$(DIRSEP)
 
+16FLAGS=-fh=16.hed
+BAKAPIFLAGS=-fh=bakapi.hed
 ZFLAGS=-zk0 -zu -zc# -zm# -zdp# -zp16 -zq
-#DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1
-CFLAGS=-ei -wo -x -r -fh=16.hed -mc -k60000#16384#
+DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1
+CFLAGS=-ei -wo -x -r -mc -k57344
 OFLAGS=-ot -ox -ob -oh -or -om -ol# -ol+
 FLAGS=-0 -d2 -lr $(OFLAGS) $(CFLAGS) $(DFLAGS) $(ZFLAGS)
 
 DOSLIBEXMMOBJ = himemsys.$(OBJ) emm.$(OBJ)
 DOSLIBOBJ = adlib.$(OBJ) midi.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
-16LIBOBJS = bakapee.$(OBJ) 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) scroll16.$(OBJ) 16_ca.$(OBJ)
+16LIBOBJS = bakapee.$(OBJ) 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) scroll16.$(OBJ) 16_ca.$(OBJ) timer.$(OBJ)
 GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) planar.$(OBJ) 16text.$(OBJ)
 
 TESTEXEC =  exmmtest.exe test.exe pcxtest.exe test2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe sountest.exe tsthimem.exe inputest.exe scroll.exe
@@ -40,10 +42,10 @@ all: $(EXEC)
 #game and bakapi executables
 #
 16.exe: 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) 16.lib
-       wcl $(FLAGS) 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) 16.lib
+       wcl $(FLAGS) $(16FLAGS)  16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) 16.lib
 
 bakapi.exe: bakapi.$(OBJ) 16.lib
-       wcl $(FLAGS) bakapi.$(OBJ) 16.lib
+       wcl $(FLAGS) $(BAKAPIFLAGS) bakapi.$(OBJ) 16.lib
 #
 #Test Executables!
 #
@@ -219,6 +221,9 @@ mapread.$(OBJ): $(SRCLIB)mapread.h $(SRCLIB)mapread.c
 #fmapread.$(OBJ): $(SRCLIB)fmapread.h $(SRCLIB)fmapread.c 16.lib
 #      wcl $(FLAGS) $(MFLAGS) -c $(SRCLIB)fmapread.c 16.lib
 
+timer.$(OBJ): $(SRCLIB)timer.h $(SRCLIB)timer.c
+        wcl $(FLAGS) -c $(SRCLIB)timer.c
+
 16_in.$(OBJ): $(SRCLIB)16_in.h $(SRCLIB)16_in.c
        wcl $(FLAGS) -c $(SRCLIB)16_in.c
 
@@ -287,4 +292,4 @@ clean: .symbolic
 #      @$(REMOVECOMMAND) *.smp
        @$(REMOVECOMMAND) *.SMP
        @$(REMOVECOMMAND) 16.hed
-       
+       @$(REMOVECOMMAND) bakapi.hed
index 68bb08b9de6a0027a906af45c1efc0466b7b1c2f..ba1abdf2af6e85eac4eb5433428764d5017201d1 100644 (file)
Binary files a/maptest.exe and b/maptest.exe differ
index 8d7c203a3924e6fe463adbd14592f664e2458fa1..948a90f760831b8ee2b2eebe0af8a751c36fddf0 100644 (file)
Binary files a/palettec.exe and b/palettec.exe differ
index 95d0fbb91b285bd62bf0346597370d1fcb42992d..ddd613509f605e13006f6e931b49610ad6e9961f 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index 4c50552601252d261d7067b272af1bcbd788f12f..c4392e5ed81a97f5c94ca16a6dca854fa2bffb2a 100644 (file)
Binary files a/scroll.exe and b/scroll.exe differ
index 845a26aa7ada504306f4dc0a829bff211578788e..970ccf12276252df8ea88dd691e8ccd0a933c09b 100644 (file)
Binary files a/sountest.exe and b/sountest.exe differ
index 008c654409f12919eda0533725d4113c3745afc8..2aca4bb7cdac82377624bfaf8a4da9fe81538116 100644 (file)
@@ -174,6 +174,70 @@ size_t GetFarFreeSize(void)
        return total;
 }
 
+//near versions
+void __near* AllocateLargestNearFreeBlock(size_t* Size)
+{
+       size_t s0, s1;
+       void __near* p;
+
+       s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);
+       while (s0 && (p = _nmalloc(s0)) == NULL)
+               s0 >>= 1;
+
+       if (p)
+               _nfree(p);
+
+       s1 = s0 >> 1;
+       while (s1)
+       {
+               if ((p = _nmalloc(s0 + s1)) != NULL)
+               {
+                       s0 += s1;
+                       _nfree(p);
+               }
+       s1 >>= 1;
+       }
+       while (s0 && (p = _nmalloc(s0)) == NULL)
+               s0 ^= s0 & -s0;
+
+       *Size = s0;
+       return p;
+}
+
+size_t GetNearFreeSize(void)
+{
+       size_t total = 0;
+       void __near* pFirst = NULL;
+       void __near* pLast = NULL;
+       for(;;)
+       {
+               size_t largest;
+               void __near* p = AllocateLargestNearFreeBlock(&largest);
+               if (largest < sizeof(void __near*))
+               {
+                       if (p != NULL)
+                       _nfree(p);
+                       break;
+               }
+               *(void __near* __near*)p = NULL;
+               total += largest;
+               if (pFirst == NULL)
+                       pFirst = p;
+
+               if (pLast != NULL)
+                       *(void __near* __near*)pLast = p;
+               pLast = p;
+       }
+
+       while (pFirst != NULL)
+       {
+               void __near* p = *(void __near* __near*)pFirst;
+               _nfree(pFirst);
+               pFirst = p;
+       }
+       return total;
+}
+
 long int
 filesize(FILE *fp)\r
 {\r
index 6f293147053dca3027fe81a528c544ee4d013735..6c5f9b0bcd2ac6880f37e76d2976b548b21e867f 100644 (file)
@@ -42,7 +42,6 @@
 #include <fcntl.h>\r
 #include <sys/stat.h>
 #include <mem.h>
-//#include <fenv.h>
 #include "src/lib/types.h"
 
 /* Control codes for all keys on the keyboard */
@@ -160,10 +159,12 @@ typedef   enum    {false,true}    boolean;
 typedef void __based(__self) * memptr;
 //typedef sregs.w.es * memptr
 //typedef __segment * memptr;
-//typedef fenp.op_ptr_seg * memptr;//=fenv_t.;
+//typedef fenp.op_ptr_seg * memptr;
 typedef struct
 {\r
        int old_mode;   //old video mode before game!
+       word frames_per_second;
+       clock_t t;
 } global_game_variables_t;\r
 
 /* local function */\r
@@ -172,6 +173,8 @@ void* AllocateLargestFreeBlock(size_t* Size);
 size_t GetFreeSize(void);
 void far *AllocateLargestFarFreeBlock(size_t far* Size);
 size_t GetFarFreeSize(void);
+void __near *AllocateLargestNearFreeBlock(size_t* Size);
+size_t GetNearFreeSize(void);
 long int filesize(FILE *fp);
 int US_CheckParm(char *parm,char **strings);
 
index 17bf1f837a0b38129509909e9975756358186dc7..8e111690b70a8ce1a4ff79799ae8756467efa3b0 100644 (file)
@@ -177,5 +177,5 @@ int cpu_basic_probe()
        pop             bx
        //retnative
        }
-       return;
+       return 0;
 }
index 777de7da29f645b238714f67ea2da658023603aa..b6219969d60be486d77a2d255f97439ebbd6079e 100644 (file)
@@ -69,18 +69,18 @@ word dump(const char *js, jsmntok_t *t, size_t count, word indent, char *js_sv,
                {
 //                     fprintf(stdout, "[[[[%d|%d]]]]\n", &(t+1)->size, (t+1)->size);
 //                     fprintf(stdout, "\n%.*s[xx[%d|%d]xx]\n", (t+1)->end - (t+1)->start, js+(t+1)->start, &(t+1)->size, (t+1)->size);
-                       map->data = _nmalloc(sizeof(byte) * (t+1)->size);
-                       map->tiles = _nmalloc(sizeof(tiles_t));
+                       map->data = malloc(sizeof(byte) * (t+1)->size);
+                       map->tiles = malloc(sizeof(tiles_t));
                        //map->tiles->data = malloc(sizeof(bitmap_t));
                        //fix this to be far~
                        bp = bitmapLoadPcx("data/ed.pcx");
                        map->tiles->data = &bp;
                        //map->tiles->data->data = malloc((16/**2*/)*16);
-                       //map->tiles->data->width = (16/**2*/);\r
-                       //map->tiles->data->height= 16;\r
-                       map->tiles->tileHeight = 16;\r
-                       map->tiles->tileWidth = 16;\r
-                       map->tiles->rows = 1;\r
+                       //map->tiles->data->width = (16/**2*/);
+                       //map->tiles->data->height= 16;
+                       map->tiles->tileHeight = 16;
+                       map->tiles->tileWidth = 16;
+                       map->tiles->rows = 1;
                        map->tiles->cols = 1;
                        strcpy(js_sv, "data");//strdup(js+t->start);//, t->end - t->start);
                }
index 9ddbe90b124eeaa5449b7758aa40a38a49d312f0..854eaed05b31bed03537bc3a28202aaff3424d4e 100644 (file)
@@ -377,6 +377,29 @@ void mapScrollDown(map_view_t *mv, player_t *player, word id, word plid)
        //}
 }
 
+sword chkmap(map_t *map, word q)
+{
+       bitmap_t bp;
+       byte x[MAPW*MAPH] = {4};//{ 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 };
+       //check for failed to load map
+       if((map->width == map->height == 0) || (q>0))
+       {
+               //initiate a null map!
+               map->width=MAPW;
+               map->height=MAPH;
+//             map->data = malloc((map->width*map->height)*sizeof(byte));
+               map->data = &x;
+               map->tiles = malloc(sizeof(tiles_t));
+               //fix this to be far~
+               bp = bitmapLoadPcx("data/ed.pcx");
+               map->tiles->data = &bp;
+               map->tiles->tileHeight = 16;
+               map->tiles->tileWidth = 16;
+               map->tiles->rows = 1;
+               map->tiles->cols = 1;
+       }
+       return 0;
+}
 
 void mapGoTo(map_view_t *mv, int tx, int ty)
 {
@@ -517,6 +540,25 @@ void pdump(page_t *pee)
        }
 }
 
+//sync!
+void shinku(page_t *page, global_game_variables_t *gv)
+{
+       byte *pee;
+       word x = (SCREEN_WIDTH/2);
+       word y = (SCREEN_HEIGHT/2);
+       word col = 33;
+       word bgcol = 0;
+       word type = 1;
+       if(elapsed_timer(gv) >= (1.0 / gv->frames_per_second))
+       {
+               pee = malloc(sizeof(double));
+               sprintf(pee, "%f", (((0x046C)-(gv->t)) /18.2));
+               modexprint(page, x, y, type, col, bgcol, pee);
+               sprintf(pee, "%f", elapsed_timer(gv));
+               modexprint(page, x, y+16, type, col, bgcol, pee);
+       }
+}
+
 void animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch)
 {
        sword dire=32; //direction
index f4e0b9cbe61ed80abc29fdd5b939bb4cce953014..46d1f18495d676b5cd43c02ea6f206bd100dbb7e 100644 (file)
@@ -29,6 +29,7 @@
 #include "src/lib/bitmap.h"
 #include "src/lib/planar.h"
 #include "src/lib/mapread.h"
+#include "src/lib/timer.h"
 
 typedef struct {
        map_t *map;
@@ -46,7 +47,9 @@ typedef struct
 
 #define TILEWH 16
 #define QUADWH                 TILEWH/2
-//#define LOOPMAX (TILEWH/(player[0].speed))
+//for null map!
+#define MAPW   40
+#define MAPH   30
 
 //map_t allocMap(int w, int h);
 //void initMap(map_t *map);
@@ -55,6 +58,7 @@ void mapScrollRight(map_view_t *mv, player_t *player, word id, word plid);
 void mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid);
 void mapScrollUp(map_view_t *mv, player_t *player, word id, word plid);
 void mapScrollDown(map_view_t *mv, player_t *player, word id, word plid);
+sword chkmap(map_t *map, word q);
 void mapGoTo(map_view_t *mv, int tx, int ty);
 void mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y);
 void mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *p, word poopoffset);
@@ -63,6 +67,7 @@ void mapDrawWRow(map_view_t *mv, int tx, int ty, word y);
 void mapDrawWCol(map_view_t *mv, int tx, int ty, word x);
 void pdump(page_t *pee);
 void qclean();
+void shinku(page_t *page, global_game_variables_t *gv);
 void animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch);
 
 #endif /*__SCROLL16_H_*/
diff --git a/src/lib/timer.c b/src/lib/timer.c
new file mode 100644 (file)
index 0000000..3adc37b
--- /dev/null
@@ -0,0 +1,45 @@
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ *
+ * 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/timer.h"
+
+clock_t start_timer(global_game_variables_t *gv)\r
+{\r
+       //time(&(this->t));\r
+       gv->t = clock();\r
+       return gv->t;\r
+}
+
+double elapsed_timer(global_game_variables_t *gv)\r
+{\r
+       return (clock() - gv->t) / CLOCKS_PER_SEC;\r
+}\r
+\r
+/*double time_in_seconds(global_game_variables_t *gv)\r
+{\r
+       return (gv->t) / CLOCKS_PER_SEC;\r
+}*/\r
+\r
+double time_in_seconds(time_t in_t)\r
+{\r
+       return (in_t) / CLOCKS_PER_SEC;\r
+}
diff --git a/src/lib/timer.h b/src/lib/timer.h
new file mode 100644 (file)
index 0000000..fae0ebe
--- /dev/null
@@ -0,0 +1,33 @@
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ *
+ * 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.
+ *
+ */
+
+#ifndef _TIMER_H_\r
+#define _TIMER_H_
+#include "src/lib/16_head.h"
+
+clock_t start_timer(global_game_variables_t *gv);\r
+double elapsed_timer(global_game_variables_t *gv);
+//double elapsed_timer(global_game_variables_t *gv)\r
+double time_in_seconds(time_t in_t);\r
+//clock_t _time();
+
+#endif
index c6316e5628cea25a85c2b2d86aaa3f95fdc55ea5..6bd40c83e0998a5ef72bab2e4024f9fcbe3d3e4d 100644 (file)
 #include "src/lib/scroll16.h"
 #include "src/lib/mapread.h"
 #include "src/lib/wcpu/wcpu.h"
-//====#include "src\lib\ems.c"
 
 //word far *clock= (word far*) 0x046C; /* 18.2hz clock */
 
 void main()
 {
+       dword tiku = 0;
 //     word panswitch=0, panq=1, pand=0;
+       global_game_variables_t gvar;
        word panpagenum=0; //for panning!
        int i;
        static word paloffset=0;
@@ -44,48 +45,29 @@ void main()
        byte *dpal, *gpal;
        byte *ptr;
        byte *mappalptr;
+       byte *mesg=malloc(sizeof(dword));
        player_t player[MaxPlayers];
 
        player[0].persist_aniframe=0;
        player[0].speed=4;
+
+       start_timer(&gvar);
+       gvar.frames_per_second = 60;
        //extern struct inconfig inpu;
-\r
-       //player_t npc0;
 
 //     atexit(qclean());
-       /*if(!emmtest())
-       {
-               printf("Expanded memory is not present\n");
-               exit(0);
-       }
-
-       if(!emmok())
-       {
-               printf("Expanded memory manager is not present\n");
-               exit(0);
-       }
-
-       emsavail = emmavail();
-       if(emsavail == -1)
-       {
-               printf("Expanded memory manager error\n");
-               exit(0);
-       }
-       printf("There are %ld pages available\n",emsavail);
-
-       if((emmhandle = emmalloc(emsavail)) < 0)
-       {
-               printf("Insufficient pages available\n");
-               exit(0);
-       }*/
 
        /* create the map */
        //printf("Total used @ before map load:                 %zu\n", oldfreemem-GetFreeSize());
        printf("Total free @ before map load:                   %zu\n", GetFreeSize());
+       printf("Total near free @ before map load:                      %zu\n", GetNearFreeSize());
        printf("Total far free @ before map load:                       %zu\n", GetFarFreeSize());
        getch();
 //0000 fprintf(stderr, "testing~\n");
 //     loadmap("data/test.map", &map);
+       map.width=0;
+       map.height=0;
+       chkmap(&map, 1);
 //0000 fprintf(stderr, "yay map loaded~~\n");
 //---- map = allocMap(map.width,map.height); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly
        //if(isEMS()) printf("%d tesuto\n", coretotalEMS());
@@ -107,37 +89,6 @@ void main()
        p = planar_buf_from_bitmap(&player[0].data);
 //0000 printf("Total used @ after planar buffer creation:      %zu\n", oldfreemem-GetFreeSize());
 
-       /*if(isEMS())
-       {
-               XMOVE mm;
-               mm.length=sizeof(map);
-               mm.sourceH=0;
-               mm.sourceOff=(long)&map;
-               mm.destH=emmhandle;
-               mm.destOff=1;
-               //halp!
-               ist = move_emem(&mm);
-               printf("%d\n", coretotalEMS());
-               if(!ist){ dealloc_emem(emmhandle); exit(5); }
-               //printf("%d\n", emmhandle);
-       }
-
-       if(isEMS())
-       {
-               XMOVE mm;
-               mm.length=emmhandle;
-               mm.sourceH=0;
-               mm.sourceOff=(long)&ptmp;
-               mm.destH=emmhandle;
-               mm.destOff=0;
-               //halp!
-               ist = move_emem(&mm);
-               printf("%d\n", coretotalEMS());
-               if(!ist){ dealloc_emem(emmhandle); exit(5); }
-               //printf("%d\n", emmhandle);
-       }
-*/
-
        /*      input!  */
        IN_Startup();
        IN_Default(0,&player,ctrl_Joystick);
@@ -147,6 +98,7 @@ void main()
        modexPalSave(dpal);
        modexFadeOff(4, dpal);
 
+       textInit();
        VGAmodeX(1);
        modexPalBlack();        //reset the palette~
 //     printf("Total used @ before palette initiation:         %zu\n", oldfreemem-GetFreeSize());
@@ -156,9 +108,9 @@ void main()
        //printf("1:    %d\n", paloffset);
        map.tiles->data->offset=(paloffset/3);
        //XTmodexPalUpdate(map.tiles->data, &paloffset, 0, 0);
-       printf("\n====\n");
-       printf("0       paloffset=      %d\n", paloffset/3);
-       printf("====\n\n");
+//     printf("\n====\n");
+//     printf("0       paloffset=      %d\n", paloffset/3);
+//     printf("====\n\n");
        gpal = modexNewPal();
        modexPalSave(gpal);
        modexSavePalFile("data/g.pal", gpal);
@@ -212,8 +164,11 @@ void main()
 //     printf("Total used @ before loop:                       %zu\n", oldfreemem-GetFreeSize());
        modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 1);
        modexFadeOn(4, gpal);
-       while(!IN_KeyDown(sc_Escape) && player[0].hp>0)\r
+       while(!IN_KeyDown(sc_Escape) && player[0].hp>0)
        {
+               sprintf(mesg, "%lu", tiku);
+               modexprint(mv[1].page, 0, 0, 1, 15, 0, mesg);
+               shinku(mv[1].page, &gvar);
                IN_ReadControl(0,&player);
        //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square
        //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction
@@ -377,6 +332,7 @@ void main()
 
        if((player[0].q==1) && !(player[0].x%TILEWH==0 && player[0].y%TILEWH==0)) break;        //incase things go out of sync!
 
+       tiku++;
        }
 
        /* fade back to text mode */
index 03c18ca0aa7c003815513bc5c954562f51021d80..dd07d4429eb335d714f14ddadb1d3263a0beadc3 100644 (file)
Binary files a/test.exe and b/test.exe differ
index 0680286f53c5eafc0f82f69677c41070ae90a308..56899e6febe2e27bb51f0b2ee4139d3e8f4469da 100644 (file)
Binary files a/test2.exe and b/test2.exe differ
index c581f9c96dbc40e0ff84d74724564bff30f5dd71..e0b5545c4b3b5c60b9711a4403770c2fcbf3cfb5 100644 (file)
Binary files a/tsthimem.exe and b/tsthimem.exe differ