]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tail.c
xcrollbroke
[16.git] / src / lib / 16_tail.c
index ec7023c8e47c0fba9c013f629551f88a693dad8e..e9b0be9ad9b0ad9f7b4a7750777bf4c82d516859 100755 (executable)
 ==========================\r
 */\r
 \r
-void Startup16(global_game_variables_t *gvar)\r
+void Startup16 (global_game_variables_t *gvar)\r
 {\r
        gvar->video.VL_Started=0;\r
        TL_VidInit(gvar);\r
        gvar->mm.mmstarted=0;\r
        gvar->pm.PMStarted=0;\r
-       MM_Startup(gvar);\r
+       StartupCAMMPM(gvar);\r
 #ifdef __WATCOMC__\r
 #ifdef __DEBUG_InputMgr__\r
        if(!dbg_nointest)\r
 #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
@@ -69,19 +63,15 @@ void Startup16(global_game_variables_t *gvar)
 ==========================\r
 */\r
 \r
-void Shutdown16(global_game_variables_t *gvar)\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
        IN_Shutdown(gvar);\r
 #endif\r
-       CA_Shutdown(gvar);\r
-       MM_Shutdown(gvar);\r
+       ShutdownCAMMPM(gvar);\r
 #ifdef __WATCOMC__\r
        if(gvar->video.VL_Started)\r
                VL_Shutdown (gvar);//VGAmodeX(0, 1, gvar);\r
@@ -90,6 +80,68 @@ void Shutdown16(global_game_variables_t *gvar)
 \r
 //===========================================================================\r
 \r
+/*\r
+==========================\r
+=\r
+= StartupCAMMPM\r
+=\r
+==========================\r
+*/\r
+\r
+void StartupCAMMPM (global_game_variables_t *gvar)\r
+{\r
+/*\r
+       MM_Startup ();                  // so the signon screen can be freed\r
+\r
+       SignonScreen ();\r
+\r
+       VW_Startup ();\r
+       IN_Startup ();\r
+       PM_Startup ();\r
+       PM_UnlockMainMem ();\r
+       SD_Startup ();\r
+       CA_Startup ();\r
+       US_Startup ();\r
+*/\r
+       MM_Startup(gvar);\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
+\r
+/*\r
+==========================\r
+=\r
+= ShutdownCAMMPM\r
+=\r
+==========================\r
+*/\r
+\r
+void ShutdownCAMMPM (global_game_variables_t *gvar)\r
+{\r
+/*\r
+       US_Shutdown ();\r
+       SD_Shutdown ();\r
+       PM_Shutdown ();\r
+       IN_Shutdown ();\r
+       VW_Shutdown ();\r
+       CA_Shutdown ();\r
+       MM_Shutdown ()\r
+*/\r
+#ifdef __16_PM__\r
+       PM_Shutdown(gvar);\r
+#endif\r
+       CA_Shutdown(gvar);\r
+       MM_Shutdown(gvar);\r
+}\r
+\r
+//===========================================================================\r
+\r
 /*\r
 ====================\r
 =\r
@@ -243,27 +295,38 @@ void Shutdown16(global_game_variables_t *gvar)
 ===================\r
 */\r
 \r
-#define PIXPERFRAME     1600\r
-\r
 boolean FizzleFade (unsigned source, unsigned dest, unsigned width, unsigned height, unsigned frames, boolean abortable, global_game_variables_t *gvar)\r
 {\r
        word            p,pixperframe;\r
        unsigned        drawofs,pagedelta;\r
        byte            mask,maskb[8] = {1,2,4,8};\r
-       unsigned        x,y,frame               ,esorig,q;\r
-       dword           rndval;\r
-       word screenseg = SCREENSEG;\r
+       unsigned        x,y,frame;\r
+       long            rndval;\r
+       word            screenseg;\r
+#ifdef __WATCOMC__\r
+       unsigned        esorig;//,q;\r
+#endif\r
 \r
        pagedelta = dest-source;\r
-       rndval = 1;     esorig = 0; q = 16;\r
+       rndval = 1;\r
+#ifdef __WATCOMC__\r
+       esorig = 0;// q = 16;\r
+#endif\r
        x = y = 0;\r
-       pixperframe = 76800/(dword)frames;\r
+       pixperframe = (dword)(gvar->video.page[0].width*gvar->video.page[0].height)/frames;\r
+       screenseg = SCREENSEG;\r
 \r
        IN_StartAck (gvar);\r
 \r
+//     modexClearRegion(&(gvar->video.page[0]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 0);\r
+//     modexClearRegion(&(gvar->video.page[1]), 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 15);\r
+\r
+#ifdef __WATCOMC__\r
        __asm {\r
                mov     [esorig],es\r
        }\r
+#endif\r
+//     TimeCount=\r
        frame=0;\r
        do      // while (1)\r
        {\r
@@ -308,22 +371,19 @@ noxor:
                                mov     [WORD PTR rndval+2],dx\r
                        }\r
 \r
-                       if ((x>width || y>height) && (x<width*2 && y<height*2))\r
+                       if (x>width || y>height)\r
+//                     if ((x>width || y>height) && (x<width*2 && y<height*2))\r
                                continue;\r
-                       //drawofs = source+(gvar->video.ofs.ylookup[y]) + (x>>2);\r
+//                     drawofs = source+(gvar->video.ofs.ylookup[y]) + (x>>2);\r
                        drawofs = source+(y*gvar->video.page[0].stridew) + (x>>2);\r
 \r
                        //\r
                        // copy one pixel\r
                        //\r
-//*\r
                        mask = x&3;\r
                        VGAREADMAP(mask);\r
                        mask = maskb[mask];\r
                        VGAMAPMASK(mask);\r
-//*/\r
-//                     modexputPixel(&(gvar->video.page[0]), x, y, rand()%8);\r
-//                     VL_Plot (x, y, 15, &(gvar->video.ofs));\r
 \r
                        __asm {\r
                                mov     di,[drawofs]\r
@@ -337,11 +397,14 @@ noxor:
                }\r
                frame++;\r
 //--           while (TimeCount<frame){}//;            // don't go too fast\r
+               delay(1);\r
        } while (1);\r
+#ifdef __WATCOMC__\r
        __asm {\r
                mov     es,[esorig]\r
        }\r
        return false;\r
+#endif\r
 }\r
 \r
 //===========================================================================\r
@@ -412,12 +475,13 @@ void ClearMemory (global_game_variables_t *gvar)
 ==========================\r
 */\r
 \r
-void Quit (global_game_variables_t *gvar, char *error)\r
+void Quit (char *error)\r
 {\r
+\r
        //unsigned              finscreen;\r
        memptr  screen=0;\r
 \r
-       ClearMemory (gvar);\r
+       ClearMemory (ggvv);\r
        if (!*error)\r
        {\r
 // #ifndef JAPAN\r
@@ -431,7 +495,7 @@ void Quit (global_game_variables_t *gvar, char *error)
 //             CA_CacheGrChunk (ERRORSCREEN);\r
 //             screen = grsegs[ERRORSCREEN];\r
        }\r
-       Shutdown16(gvar);\r
+       Shutdown16(ggvv);\r
 \r
        if (error && *error)\r
        {\r