]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_dbg.c
16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / 16_dbg.c
index 321388c91b4270e8ef3113ec61186abb63d44a94..28cc6d0116070161981de6009228f2aa9762eb5b 100755 (executable)
@@ -235,3 +235,159 @@ static    char    buf[10];
        //SD_StopDigitized();\r
 }\r
 #pragma warn +pia\r
+\r
+#ifdef __WATCOMC__\r
+#ifdef __DEBUG_VL__\r
+\r
+//===========================================================================\r
+\r
+/*\r
+================\r
+=\r
+= ShowPalVarSync\r
+=\r
+================\r
+*/\r
+\r
+//#define SHOWPALVARIMODQUAD   ((spv.i)%QUADWH)\r
+#define SHOWPALVARIMOD                 ((spv.i)%TILEWH)\r
+#define SHOWPALVARIDIV                 ((spv.i)/TILEWH)\r
+#define SHOWPALVARIMODCOND             (!SHOWPALVARIMOD)\r
+#define SHOWPALVARIDIVCOND             (!SHOWPALVARIDIV)\r
+#define SHOWPALVARIMODIFCOND   if(SHOWPALVARIMODCOND && spv.i)\r
+#define SHOWPALVARIDIVIFCOND           if(SHOWPALVARIDIVCOND && spv.i)\r
+//<PAL_SIZE/3 && spv.i)\r
+#define SHOWPALVARPALSIZELIMIT 255\r
+\r
+spv_t ShowPalVarSync (spv_t *spv)\r
+{\r
+       spv_t           result;\r
+       result = *spv;\r
+\r
+//     if(result.paly<result.palq+TILEWH*8) result.paly+=result.mult;\r
+//     if(result.palx<result.palq+TILEWH*12) result.palx+=result.mult;\r
+//     modexClearRegion(&gvar->video.page[0], result.palx+TILEWH, result.paly+TILEWH, result.mult, result.mult, result.i);\r
+       return result;\r
+}\r
+\r
+/*\r
+================\r
+=\r
+= ShowPalVal\r
+=\r
+================\r
+*/\r
+\r
+void ShowPalVal (global_game_variables_t *gvar)\r
+{\r
+       boolean                 done                            ,err;\r
+       ScanCode                scan;\r
+       spv_t                   spv;\r
+       word ccolor = 3, xpos = gvar->video.page[0].dx, ypos = gvar->video.page[0].dy;\r
+\r
+       spv.mult=(QUADWH);\r
+       spv.palq=(spv.mult)*TILEWH;\r
+       spv.i = 0;\r
+\r
+//     IN_UserInput(1, gvar);\r
+       modexpdump(&gvar->video.page[0]);\r
+\r
+       for (spv.oi = 1,done = false;!done;)\r
+       {\r
+               SHOWPALVARIMODIFCOND\r
+               {\r
+                       if(err) printf("SHOWPALVARIMODIFCOND\n");\r
+                       if(spv.i==SHOWPALVARPALSIZELIMIT) spv.paly=(TILEWH*8)+spv.mult*SHOWPALVARIDIV;\r
+                       spv.palx=(TILEWH*12);\r
+               }else   spv.palx=(TILEWH*12)+spv.mult*SHOWPALVARIMOD;\r
+               if(spv.i<SHOWPALVARPALSIZELIMIT) SHOWPALVARIDIVIFCOND\r
+               {\r
+                       if(err) printf("SHOWPALVARIDIVIFCOND\n");\r
+                       spv.paly=(TILEWH*8);\r
+               }else   spv.paly=(TILEWH*8)+spv.mult*SHOWPALVARIDIV;\r
+\r
+               if((spv.palx<TILEWH*12 || spv.paly<TILEWH*8) && spv.i) err=true;\r
+               else err = false;\r
+               if(err){ printf("ERR    "); printf("%ux%u       %u\n", spv.palx, spv.paly, spv.i); }\r
+\r
+               if(spv.oi!=spv.i)\r
+               {\r
+                       modexpdump(&gvar->video.page[0]);\r
+                       modexClearRegion(&gvar->video.page[0], spv.palx+TILEWH, spv.paly+TILEWH, spv.mult, spv.mult, 5);\r
+                       modexClearRegion(&gvar->video.page[0], spv.palx+TILEWH+1, spv.paly+TILEWH+1, spv.mult-2, spv.mult-2, spv.i);\r
+                       spv.oi = spv.i;\r
+               }\r
+\r
+#define SHOWPALVARPRINT modexprint(&(gvar->video.page[0]), xpos, ypos, 1, 0, ccolor, 8, gvar->video.VL_Started, global_temp_status_text); ypos+=8;\r
+               sprintf(global_temp_status_text, "%03u", spv.i); SHOWPALVARPRINT\r
+               sprintf(global_temp_status_text, "r %03u", gvar->video.palette[(spv.i*3)+0]/*>>2*/); SHOWPALVARPRINT\r
+               sprintf(global_temp_status_text, "g %03u", gvar->video.palette[(spv.i*3)+1]/*>>2*/); SHOWPALVARPRINT\r
+               sprintf(global_temp_status_text, "b %03u", gvar->video.palette[(spv.i*3)+2]/*>>2*/); SHOWPALVARPRINT\r
+               xpos = gvar->video.page[0].dx; ypos = gvar->video.page[0].dy;\r
+\r
+               while (!(scan = gvar->in.inst->LastScan))\r
+               {}\r
+\r
+               IN_ClearKey(scan);\r
+               switch (scan)\r
+               {\r
+               case sc_LeftArrow:\r
+                       if (spv.i > 0)\r
+                       {\r
+                               spv.i--;\r
+                       }\r
+                       else\r
+                       {\r
+                               spv.palx=gvar->video.page[0].sw-spv.mult;\r
+                               spv.paly=gvar->video.page[0].sh-spv.mult;\r
+                               spv.i = SHOWPALVARPALSIZELIMIT;\r
+                       }\r
+               break;\r
+               case sc_RightArrow:\r
+                       if (spv.i < SHOWPALVARPALSIZELIMIT)\r
+                       {\r
+                               spv.i++;\r
+                       }\r
+                               else\r
+                       {\r
+                               spv.palx=TILEWH*12;\r
+                               spv.paly=TILEWH*8;\r
+                               spv.i = 0;\r
+                       }\r
+               break;\r
+               case sc_UpArrow:\r
+                       if (spv.i > 0)\r
+                       {\r
+                               spv.i-=16;\r
+                       }\r
+                       else\r
+                       {\r
+                               spv.palx=gvar->video.page[0].sw-spv.mult;\r
+                               spv.paly=gvar->video.page[0].sh-spv.mult;\r
+                               spv.i = SHOWPALVARPALSIZELIMIT;\r
+                       }\r
+               break;\r
+               case sc_DownArrow:\r
+                       if (spv.i < SHOWPALVARPALSIZELIMIT)\r
+                       {\r
+                               spv.i+=16;\r
+                       }\r
+                               else\r
+                       {\r
+                               spv.palx=TILEWH*12;\r
+                               spv.paly=TILEWH*8;\r
+                               spv.i = 0;\r
+                       }\r
+               break;\r
+               case sc_W:      // Walls\r
+                       spv.i = 0;\r
+                       break;\r
+               case sc_Escape:\r
+                       done = true;\r
+                       break;\r
+               }\r
+       }\r
+       IN_UserInput(1, gvar);\r
+}\r
+#endif //debug vl\r
+#endif //watcomc\r