+/* Project 16 Source Code~\r
+ * Copyright (C) 2012-2017 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
#include "src/lib/16_dbg.h"\r
\r
#ifdef __DEBUG__\r
boolean dbg_debugca=0;\r
#endif\r
#ifdef __DEBUG_InputMgr__\r
-boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0,dbg_nointest=0;\r
+boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0,dbg_nointest=0,dbg_joymousedelta=0;\r
#endif\r
#ifdef __DEBUG_MAP__\r
boolean dbg_maptext=0;\r
//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 SHOWPALVARIMODIFCOND if((!SHOWPALVARIMOD) && spv.i)\r
+#define SHOWPALVARIDIVIFCOND if((!SHOWPALVARIDIV) && 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(0, gvar);\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(0, gvar);\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, 1, 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