#endif\r
IN_Startup(gvar);\r
#endif\r
+#ifdef __16_PM__\r
PM_Startup(gvar);\r
+ PM_CheckMainMem(gvar);\r
PM_UnlockMainMem(gvar);\r
+#endif\r
CA_Startup(gvar);\r
}\r
\r
\r
void Shutdown16(global_game_variables_t *gvar)\r
{\r
+#ifdef __16_PM__\r
PM_Shutdown(gvar);\r
+#endif\r
#ifdef __WATCOMC__\r
#ifdef __DEBUG_InputMgr__\r
if(!dbg_nointest)\r
#endif\r
CA_Shutdown(gvar);\r
MM_Shutdown(gvar);\r
+#ifdef __WATCOMC__\r
VGAmodeX(0, 1, gvar);\r
+#endif\r
}\r
\r
\r
\r
void ClearMemory (global_game_variables_t *gvar)\r
{\r
+#ifdef __16_PM__\r
PM_UnlockMainMem(gvar);\r
+#endif\r
//snd\r
MM_SortMem (gvar);\r
}\r
}\r
\r
//===========================================================================\r
-//from http://stackoverflow.com/questions/2736753/how-to-remove-extension-from-file-name\r
-\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
#ifndef __WATCOMC__\r
char global_temp_status_text[512];\r
}\r
#endif\r
\r
+const char *word_to_binary(word x)\r
+{\r
+ static char b[17];\r
+ int z;\r
+\r
+ b[0] = '\0';\r
+ for (z = 16; z > 0; z >>= 1)\r
+ {\r
+ strcat(b, ((x & z) == z) ? "1" : "0");\r
+ }\r
+ return b;\r
+}\r
+\r
const char *nibble_to_binary(nibble x)\r
{\r
static char b[9];\r