]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_pm.h
updated the copyleft wwww i am not deAD! i just been 2 busy last 6 monthes
[16.git] / src / lib / 16_pm.h
index 54f1600b4133d117dec8fd6506d67d90c2f4ebf6..3cda833ce7b0e4b0f64e34febfb1400ca596998b 100755 (executable)
@@ -1,3 +1,28 @@
+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\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 __16_PM__\r
+#define __16_PM__\r
+\r
 //\r
 //     ID_PM.H\r
 //     Header file for Id Engine's Page Manager\r
@@ -6,8 +31,11 @@
 #include "src/lib/16_head.h"\r
 #include "src/lib/16_hc.h"\r
 #include "src/lib/16_mm.h"\r
+#include "src/lib/16_ca.h"\r
+#include <dos.h>\r
 \r
-//     NOTE! PMPageSize must be an even divisor of EMSPageSize, and >= 1024\r
+//#define __PM__NOHOGEMS__\r
+/*//   NOTE! PMPageSize must be an even divisor of EMSPageSize, and >= 1024\r
 #define        EMSPageSize             16384\r
 #define        EMSPageSizeSeg  (EMSPageSize >> 4)\r
 #define        EMSPageSizeKB   (EMSPageSize >> 10)\r
@@ -38,7 +66,7 @@ typedef       enum
 \r
 typedef        struct\r
                {\r
-                       longword        offset;         // Offset of chunk into file\r
+                       dword   offset;         // Offset of chunk into file\r
                        word            length;         // Length of the chunk\r
 \r
                        int                     xmsPage;        // If in XMS, (xmsPage * PMPageSize) gives offset into XMS handle\r
@@ -47,13 +75,13 @@ typedef     struct
                        int                     emsPage;        // If in EMS, logical page/offset into page\r
                        int                     mainPage;       // If in Main, index into handle array\r
 \r
-                       longword        lastHit;        // Last frame number of hit\r
+                       dword   lastHit;        // Last frame number of hit\r
                } PageListStruct;\r
 \r
 typedef        struct\r
                {\r
                        int                     baseEMSPage;    // Base EMS page for this phys frame\r
-                       longword        lastHit;                // Last frame number of hit\r
+                       dword   lastHit;                // Last frame number of hit\r
                } EMSListStruct;\r
 \r
 extern boolean                 XMSPresent,EMSPresent;\r
@@ -61,27 +89,29 @@ extern      word                    XMSPagesAvail,EMSPagesAvail;
 \r
 extern word                    ChunksInFile,\r
                                                PMSpriteStart,PMSoundStart;\r
-extern PageListStruct  far *PMPages;\r
+extern PageListStruct  far *PMPages;*///moved to src/lib/typdefst.h\r
 \r
-#define        PM_GetSoundPage(v)      PM_GetPage(PMSoundStart + (v))\r
-#define        PM_GetSpritePage(v)     PM_GetPage(PMSpriteStart + (v))\r
+#define        PM_GetSoundPage(v)      PM_GetPage(gvar->pm.fi.PMSoundStart + (v), gvar)\r
+#define        PM_GetSpritePage(v)     PM_GetPage(gvar->pm.fi.PMSpriteStart + (v), gvar)\r
 \r
-#define        PM_LockMainMem()        PM_SetMainMemPurge(0)\r
-#define        PM_UnlockMainMem()      PM_SetMainMemPurge(3)\r
+#define        PM_LockMainMem(gvar)    PM_SetMainMemPurge(0, gvar)\r
+#define        PM_UnlockMainMem(gvar)  PM_SetMainMemPurge(3, gvar)\r
 \r
 \r
 extern char    PageFileName[13];\r
 \r
 \r
-extern void    PM_Startup(void),\r
-                               PM_Shutdown(void),\r
-                               PM_Reset(void),\r
-                               PM_Preload(boolean (*update)(word current,word total)),\r
-                               PM_NextFrame(void),\r
-                               PM_SetPageLock(int pagenum,PMLockType lock),\r
+extern void    PM_Startup(global_game_variables_t *gvar),\r
+                               PM_Shutdown(global_game_variables_t *gvar),\r
+                               PM_Reset(global_game_variables_t *gvar),\r
+                               PM_Preload(boolean (*update)(word current,word total), global_game_variables_t *gvar),\r
+                               PM_NextFrame(global_game_variables_t *gvar),\r
+                               PM_SetPageLock(int pagenum,PMLockType lock, global_game_variables_t *gvar),\r
                                PM_SetMainPurge(int level),\r
-                               PM_CheckMainMem(void);\r
-extern memptr  PM_GetPageAddress(int pagenum),\r
-                               PM_GetPage(int pagenum);                // Use this one to cache page\r
+                               PM_CheckMainMem(global_game_variables_t *gvar);\r
+extern memptr  PM_GetPageAddress(int pagenum, global_game_variables_t *gvar),\r
+                               PM_GetPage(int pagenum, global_game_variables_t *gvar);         // Use this one to cache page\r
 \r
-void PM_SetMainMemPurge(int level);\r
+void PM_SetMainMemPurge(int level, global_game_variables_t *gvar);\r
+void PML_StartupMainMem(global_game_variables_t *gvar);\r
+#endif\r