-/* 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.
- *
- */
-
-#if !defined(__LARGE__) && !defined(__COMPACT__) && !defined(__HUGE__)
-#error Invalid memory model for compiling project 16
-#endif
-
-#if !defined(__i86__) && defined(__i386__)
-#error i8088 only
-#endif
-
-#ifndef _LIBHEAD_H_
-#define _LIBHEAD_H_
-#include <i86.h>
-#include <dos.h>
-#include <stdio.h>
-#include <conio.h> // just for wait
-#include <time.h> // just for wait
-#include <stdlib.h>
-#include <malloc.h>
-#include <ctype.h>
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
+ *\r
+ * This file is part of Project 16.\r
+ *\r
+ * Project 16 is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Project 16 is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program. If not, see <http://www.gnu.org/licenses/>, or\r
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
+ * Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ */\r
+\r
+#if !defined(__LARGE__) && !defined(__COMPACT__) && !defined(__HUGE__)\r
+#error Invalid memory model for compiling project 16\r
+#endif\r
+\r
+#if !defined(__i86__) && defined(__i386__)\r
+#error i8088 only\r
+#endif\r
+\r
+#ifndef _LIBHEAD_H_\r
+#define _LIBHEAD_H_\r
+#include <i86.h>\r
+#include <dos.h>\r
+#include <stdio.h>\r
+#include <conio.h> // just for wait\r
+#include <time.h> // just for wait\r
+#include <stdlib.h>\r
+#include <malloc.h>\r
+#include <ctype.h>\r
#include <unistd.h>\r
#include <fcntl.h>\r
-#include <sys/stat.h>
-#include <mem.h>
-#include <alloca.h>
-#include "src/lib/nyan/kitten.h"
-#include "src/lib/types.h"
-
-struct list {
- struct list __based(__self) *next;
- int value;
-};
-
-/* Control codes for all keys on the keyboard */
-//here temperarly
-/*
-#define KEY_A (0x1E)
-#define KEY_B (0x30)
-#define KEY_C (0x2E)
-#define KEY_D (0x20)
-#define KEY_E (0x12)
-#define KEY_F (0x21)
-#define KEY_G (0x22)
-#define KEY_H (0x23)
-#define KEY_I (0x17)
-#define KEY_J (0x24)
-#define KEY_K (0x25)
-#define KEY_L (0x26)
-#define KEY_M (0x32)
-#define KEY_N (0x31)
-#define KEY_O (0x18)
-#define KEY_P (0x19)
-#define KEY_Q (0x10)
-#define KEY_R (0x13)
-#define KEY_S (0x1F)
-#define KEY_T (0x14)
-#define KEY_U (0x16)
-#define KEY_V (0x2F)
-#define KEY_W (0x11)
-#define KEY_X (0x2D)
-#define KEY_Y (0x15)
-#define KEY_Z (0x2C)
-#define KEY_1 (0x02)
-#define KEY_2 (0x03)
-#define KEY_3 (0x04)
-#define KEY_4 (0x05)
-#define KEY_5 (0x06)
-#define KEY_6 (0x07)
-#define KEY_7 (0x08)
-#define KEY_8 (0x09)
-#define KEY_9 (0x0A)
-#define KEY_0 (0x0B)
-#define KEY_DASH (0x0C) // -_
-#define KEY_EQUAL (0x0D) // =+
-#define KEY_LBRACKET (0x1A) // [{
-#define KEY_RBRACKET (0x1B) // ]}
-#define KEY_SEMICOLON (0x27) // ;:
-#define KEY_RQUOTE (0x28) // '"
-#define KEY_LQUOTE (0x29) // `~
-#define KEY_PERIOD (0x33) // .>
-#define KEY_COMMA (0x34) // ,<
-#define KEY_SLASH (0x35) // /?
-#define KEY_BACKSLASH (0x2B) // \|
-#define KEY_F1 (0x3B)
-#define KEY_F2 (0x3C)
-#define KEY_F3 (0x3D)
-#define KEY_F4 (0x3E)
-#define KEY_F5 (0x3F)
-#define KEY_F6 (0x40)
-#define KEY_F7 (0x41)
-#define KEY_F8 (0x42)
-#define KEY_F9 (0x43)
-#define KEY_F10 (0x44)
-#define KEY_ESC (0x01)
-#define KEY_BACKSPACE (0x0E)
-#define KEY_TAB (0x0F)
-#define KEY_ENTER (0x1C)
-#define KEY_CONTROL (0x1D)
-#define KEY_LSHIFT (0x2A)
-#define KEY_RSHIFT (0x36)
-#define KEY_PRTSC (0x37)
-#define KEY_ALT (0x38)
-#define KEY_SPACE (0x39)
-#define KEY_CAPSLOCK (0x3A)
-#define KEY_NUMLOCK (0x45)
-#define KEY_SCROLLLOCK (0x46)
-#define KEY_HOME (0x47)
-#define KEY_UP (0x48)
-#define KEY_PGUP (0x49)
-#define KEY_MINUS (0x4A)
-#define KEY_LEFT (0x4B)
-#define KEY_CENTER (0x4C)
-#define KEY_RIGHT (0x4D)
-#define KEY_PLUS (0x4E)
-#define KEY_END (0x4F)
-#define KEY_DOWN (0x50)
-#define KEY_PGDOWN (0x51)
-#define KEY_INS (0x52)
-#define KEY_DEL (0x53)
-
-#define KEY_LWIN (0x73)
-#define KEY_RWIN (0x74)
-#define KEY_MENU (0x75)
-*/
-
-static dword far* clockdw= (dword far*) 0x046C; /* 18.2hz clock */
-//static dword clockdw=0;
-extern int profilehandle,debughandle; //make it into game global
-
-#define __DEBUG__
-
-//#define _SEGU(__p) ((unsigned)((unsigned long)(void __huge*)(__p) >> 16))
-
-#define nil ((void *)0)
-
+#include <sys/stat.h>\r
+#include <mem.h>\r
+#include <alloca.h>\r
+#include "src/lib/nyan/kitten.h"\r
+#include "src/lib/types.h"\r
+\r
+struct list {\r
+ struct list __based(__self) *next;\r
+ int value;\r
+};\r
+\r
+/* Control codes for all keys on the keyboard */\r
+//here temperarly\r
+/*\r
+#define KEY_A (0x1E)\r
+#define KEY_B (0x30)\r
+#define KEY_C (0x2E)\r
+#define KEY_D (0x20)\r
+#define KEY_E (0x12)\r
+#define KEY_F (0x21)\r
+#define KEY_G (0x22)\r
+#define KEY_H (0x23)\r
+#define KEY_I (0x17)\r
+#define KEY_J (0x24)\r
+#define KEY_K (0x25)\r
+#define KEY_L (0x26)\r
+#define KEY_M (0x32)\r
+#define KEY_N (0x31)\r
+#define KEY_O (0x18)\r
+#define KEY_P (0x19)\r
+#define KEY_Q (0x10)\r
+#define KEY_R (0x13)\r
+#define KEY_S (0x1F)\r
+#define KEY_T (0x14)\r
+#define KEY_U (0x16)\r
+#define KEY_V (0x2F)\r
+#define KEY_W (0x11)\r
+#define KEY_X (0x2D)\r
+#define KEY_Y (0x15)\r
+#define KEY_Z (0x2C)\r
+#define KEY_1 (0x02)\r
+#define KEY_2 (0x03)\r
+#define KEY_3 (0x04)\r
+#define KEY_4 (0x05)\r
+#define KEY_5 (0x06)\r
+#define KEY_6 (0x07)\r
+#define KEY_7 (0x08)\r
+#define KEY_8 (0x09)\r
+#define KEY_9 (0x0A)\r
+#define KEY_0 (0x0B)\r
+#define KEY_DASH (0x0C) // -_\r
+#define KEY_EQUAL (0x0D) // =+\r
+#define KEY_LBRACKET (0x1A) // [{\r
+#define KEY_RBRACKET (0x1B) // ]}\r
+#define KEY_SEMICOLON (0x27) // ;:\r
+#define KEY_RQUOTE (0x28) // '"\r
+#define KEY_LQUOTE (0x29) // `~\r
+#define KEY_PERIOD (0x33) // .>\r
+#define KEY_COMMA (0x34) // ,<\r
+#define KEY_SLASH (0x35) // /?\r
+#define KEY_BACKSLASH (0x2B) // \|\r
+#define KEY_F1 (0x3B)\r
+#define KEY_F2 (0x3C)\r
+#define KEY_F3 (0x3D)\r
+#define KEY_F4 (0x3E)\r
+#define KEY_F5 (0x3F)\r
+#define KEY_F6 (0x40)\r
+#define KEY_F7 (0x41)\r
+#define KEY_F8 (0x42)\r
+#define KEY_F9 (0x43)\r
+#define KEY_F10 (0x44)\r
+#define KEY_ESC (0x01)\r
+#define KEY_BACKSPACE (0x0E)\r
+#define KEY_TAB (0x0F)\r
+#define KEY_ENTER (0x1C)\r
+#define KEY_CONTROL (0x1D)\r
+#define KEY_LSHIFT (0x2A)\r
+#define KEY_RSHIFT (0x36)\r
+#define KEY_PRTSC (0x37)\r
+#define KEY_ALT (0x38)\r
+#define KEY_SPACE (0x39)\r
+#define KEY_CAPSLOCK (0x3A)\r
+#define KEY_NUMLOCK (0x45)\r
+#define KEY_SCROLLLOCK (0x46)\r
+#define KEY_HOME (0x47)\r
+#define KEY_UP (0x48)\r
+#define KEY_PGUP (0x49)\r
+#define KEY_MINUS (0x4A)\r
+#define KEY_LEFT (0x4B)\r
+#define KEY_CENTER (0x4C)\r
+#define KEY_RIGHT (0x4D)\r
+#define KEY_PLUS (0x4E)\r
+#define KEY_END (0x4F)\r
+#define KEY_DOWN (0x50)\r
+#define KEY_PGDOWN (0x51)\r
+#define KEY_INS (0x52)\r
+#define KEY_DEL (0x53)\r
+\r
+#define KEY_LWIN (0x73)\r
+#define KEY_RWIN (0x74)\r
+#define KEY_MENU (0x75)\r
+*/\r
+\r
+static dword far* clockdw= (dword far*) 0x046C; /* 18.2hz clock */\r
+//static dword clockdw=0;\r
+extern int profilehandle,debughandle; //make it into game global\r
+\r
+#define __DEBUG__\r
+\r
+//#define _SEGU(__p) ((unsigned)((unsigned long)(void __huge*)(__p) >> 16))\r
+\r
+#define nil ((void *)0)\r
+\r
#define peekb(segm,ofs) (*(byte far*)MK_FP((segm),(ofs)))\r
#define peekw(segm,ofs) (*(word far*)MK_FP((segm),(ofs)))\r
#define pokeb(segm,ofs,value) (peekb((segm),(ofs)) = (byte)(value))\r
#define pokew(segm,ofs,value) (peekw((segm),(ofs)) = (word)(value))\r
-
-typedef union REGPACK regs_t;
-//typedef struct SREGS sregs_t;
-//sregs_t sregs;
-typedef enum {false,true} boolean;
-//I hope this is correct!
-typedef void __based(__self) * memptr;
-//typedef sregs.w.es * memptr
-//typedef __segment * memptr;
-//typedef fenp.op_ptr_seg * memptr;
-typedef struct
+\r
+typedef union REGPACK regs_t;\r
+//typedef struct SREGS sregs_t;\r
+//sregs_t sregs;\r
+typedef enum {false,true} boolean;\r
+//I hope this is correct!\r
+typedef void __based(__self) * memptr;\r
+//typedef sregs.w.es * memptr\r
+//typedef __segment * memptr;\r
+//typedef fenp.op_ptr_seg * memptr;\r
+typedef struct\r
{\r
- int old_mode; //old video mode before game!
- word frames_per_second;
- clock_t t;
+ int old_mode; //old video mode before game!\r
+ word frames_per_second;\r
+ clock_t t;\r
+ dword tiku;\r
+ word far* clock;\r
} global_game_variables_t;\r
-
+\r
/* local function */\r
-void wait(clock_t wait);
-void __near* LargestFreeBlock(size_t* Size);
-size_t _coreleft(void);
-void far* LargestFarFreeBlock(size_t* Size);
-size_t _farcoreleft(void);
-void huge* LargestHugeFreeBlock(size_t* Size);
-size_t _hugecoreleft(void);
-//void __based(__self)* LargestBasedFreeBlock(size_t* Size);
-//size_t _basedcoreleft(void);
-size_t GetFreeSize(void);
-size_t GetFarFreeSize(void);
-size_t GetNearFreeSize(void);
-long int filesize(FILE *fp);
-void print_normal_entry(char *text, dword total, dword used, dword free);
-void convert(const char *format, dword num);
-void heapdump(void);
-void heapstat(int heap_status);
-int US_CheckParm(char *parm,char **strings);
-
+void wait(clock_t wait);\r
+void __near* LargestFreeBlock(size_t* Size);\r
+size_t _coreleft(void);\r
+void far* LargestFarFreeBlock(size_t* Size);\r
+size_t _farcoreleft(void);\r
+void huge* LargestHugeFreeBlock(size_t* Size);\r
+size_t _hugecoreleft(void);\r
+//void __based(__self)* LargestBasedFreeBlock(size_t* Size);\r
+//size_t _basedcoreleft(void);\r
+size_t GetFreeSize(void);\r
+size_t GetFarFreeSize(void);\r
+size_t GetNearFreeSize(void);\r
+long int filesize(FILE *fp);\r
+void print_normal_entry(char *text, dword total, dword used, dword free);\r
+void convert(const char *format, dword num);\r
+void heapdump(void);\r
+void heapstat(int heap_status);\r
+int US_CheckParm(char *parm,char **strings);\r
+\r
extern void CA_OpenDebug (void);\r
-extern void CA_CloseDebug (void);
-
-#endif/*_LIBHEAD_H_*/
+extern void CA_CloseDebug (void);\r
+\r
+#endif/*_LIBHEAD_H_*/\r
-/* 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"
-
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
+ *\r
+ * This file is part of Project 16.\r
+ *\r
+ * Project 16 is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Project 16 is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program. If not, see <http://www.gnu.org/licenses/>, or\r
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
+ * Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ */\r
+\r
+#include "src/lib/timer.h"\r
+\r
clock_t start_timer(global_game_variables_t *gv)\r
{\r
//time(&(this->t));\r
gv->t = clock();\r
+ gv->tiku = 0;\r
+ gv->clock = (word far*) 0x046C; /* 18.2hz clock */\r
return gv->t;\r
-}
-
+}\r
+\r
double elapsed_timer(global_game_variables_t *gv)\r
{\r
return (clock() - gv->t) / CLOCKS_PER_SEC;\r
double time_in_seconds(time_t in_t)\r
{\r
return (in_t) / CLOCKS_PER_SEC;\r
-}
+}\r
-/* 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.
- *
- */
-
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
+ *\r
+ * This file is part of Project 16.\r
+ *\r
+ * Project 16 is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Project 16 is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program. If not, see <http://www.gnu.org/licenses/>, or\r
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
+ * Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ */\r
+\r
#ifndef _TIMER_H_\r
-#define _TIMER_H_
-#include "src/lib/16_head.h"
-
+#define _TIMER_H_\r
+#include "src/lib/16_head.h"\r
+\r
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 elapsed_timer(global_game_variables_t *gv);\r
+//double time_in_seconds(global_game_variables_t *gv);\r
double time_in_seconds(time_t in_t);\r
-//clock_t _time();
-
-#endif
+\r
+#endif\r