]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/bakapee.c
updating copy left. i am super fuckin busy with school, and trying to get life back...
[16.git] / src / lib / bakapee.c
index 2026ed126c119e130d0ec17773ce06cb8d96a09f..c7e43966bda4816e9e8dadd153fc25829589c70a 100755 (executable)
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
+ * Copyright (C) 2012-2019 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
  *\r
  * This file is part of Project 16.\r
  *\r
 \r
 #include "src/lib/bakapee.h"\r
 \r
-struct glob_game_vars  *ggvv;\r
 //static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */\r
-char global_temp_status_text[512];\r
-char global_temp_status_text2[512];\r
+//char global_temp_status_text[512];\r
+//char global_temp_status_text2[512];\r
 \r
 //==========================================================================\r
 \r
@@ -54,42 +53,45 @@ char global_temp_status_text2[512];
 */\r
 \r
 //extern       ControlInfo     c;\r
-#define PIXPOSX                        gvar->video.page[0].sw/2\r
-#define PIXPOSY                        gvar->video.page[0].sh/2\r
+//#define PIXPOSX                      gvar->video.page[0].sw/2\r
+//#define PIXPOSY                      gvar->video.page[0].sh/2\r
 #ifdef BAKAFIZZUNSIGNED\r
 boolean baka_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 = 64000/(dword)frames;\r
+       pixperframe = (dword)(gvar->video.page[0].width*gvar->video.page[0].height)/frames;//64000/(dword)frames;\r
+       screenseg = SCREENSEG;\r
 \r
-//     IN_StartAck ();\r
-\r
-//     VL_ShowPage(&(gvar->video.page[0]), 1, 0);\r
-//     VL_ShowPage(&(gvar->video.page[1]), 1, 0);\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
-//     VL_SetLineWidth(44, gvar);\r
 \r
+#ifdef __WATCOMC__\r
        __asm {\r
                mov     [esorig],es\r
        }\r
+#endif\r
 //     TimeCount=\r
        frame=0;\r
        do      // while (1)\r
        {\r
-sprintf(global_temp_status_text, "%u", frame);\r
-modexprint(&(gvar->video.page[0]), PIXPOSX, PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text);\r
-               if (abortable && kbhit())//IN_CheckAck () )\r
+               if (abortable && kbhit())//IN_CheckAck (gvar) )\r
                        return true;\r
 \r
                __asm {\r
@@ -130,12 +132,12 @@ noxor:
                                mov     [WORD PTR rndval+2],dx\r
                        }\r
 \r
-//                     if (x>destpage->width || y>destpage->height)\r
-//                     if (x<destpage->sw || y<destpage->sh)\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
 sprintf(global_temp_status_text, "draw - %Fp", drawofs);\r
 modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text); q+=8;\r
 sprintf(global_temp_status_text, "pdet - %Fp", pagedelta);\r
@@ -144,18 +146,15 @@ sprintf(global_temp_status_text, "srce - %Fp", source);
 modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text); q+=8;\r
 sprintf(global_temp_status_text, "dest - %Fp", dest);\r
 modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text); q=16;\r
+*/\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());\r
-//                     VL_Plot (x, y, 15, &(gvar->video.ofs));\r
 \r
                        __asm {\r
                                mov     di,[drawofs]\r
@@ -169,14 +168,17 @@ modexprint(&(gvar->video.page[0]), PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_te
                }\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
-#else\r
+#endif\r
+#if 0\r
 boolean baka_FizzleFade (page_t *sourcepage, page_t *destpage, unsigned width, unsigned height, unsigned frames, boolean abortable, global_game_variables_t *gvar)\r
 {\r
        word            p,pixperframe;\r
@@ -424,13 +426,53 @@ modexprint(destpage, PIXPOSX, q+PIXPOSY, 1, 0, 47, 0, 1, global_temp_status_text
        return false;\r
 }\r
 #endif\r
-/* clrstdin() clear any leftover chars tha may be in stdin stream */\r
+// clrstdin() clear any leftover chars tha may be in stdin stream //\r
 void clrstdin()\r
 {\r
    int ch = 0;\r
    while( ( ch = getchar() ) != '\n' && ch != EOF );\r
 }\r
 \r
+//===========================================================================\r
+\r
+/*\r
+====================\r
+=\r
+= TL_DosLibStartup\r
+=\r
+====================\r
+*/\r
+\r
+void TL_DosLibStartup(global_game_variables_t *gvar)\r
+{\r
+       if(gvar->DLStarted)\r
+               return;\r
+\r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //        So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //        parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //        the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
+       textInit();\r
+       gvar->DLStarted = true;\r
+}\r
+\r
 //color \82Ä\82·\82Æ\r
 void colortest(page_t *page, bakapee_t *pee)\r
 {\r
@@ -700,13 +742,15 @@ void ding(page_t *page, bakapee_t *pee, word q)
                        colorz(page, pee);\r
                        modexprint(page, page->sw/2, page->sh/2, 1, 0, 47, 0, 1, "bakapi");\r
                break;\r
-               case 9:\r
+/*             case 9:\r
+                       modexClearRegion(&(ggvv->video.page[0]), 0, 0, ggvv->video.page[0].width/2, ggvv->video.page[0].height/2, 15);\r
 #ifdef BAKAFIZZUNSIGNED\r
-                       baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, vga_state.vga_width, vga_state.vga_height, 70, true, ggvv);\r
+//                     baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, vga_state.vga_width, vga_state.vga_height, 70, true, ggvv);\r
+                       baka_FizzleFade (ggvv->video.ofs.bufferofs, ggvv->video.ofs.displayofs, ggvv->video.page[0].width, ggvv->video.page[0].height, 70, true, ggvv);\r
 #else\r
                        baka_FizzleFade (&ggvv->video.page[1], &ggvv->video.page[0], vga_state.vga_width, vga_state.vga_height, 70, true, ggvv);\r
 #endif\r
-               break;\r
+               break;*/\r
                case 10:\r
                        ssd(page, pee, q); /*printf("%d\n", pee->coor);*/\r
                break;\r