1 /* SCCS Id: @(#)dprintf.c 3.1 94/01/29 */ 2 /* Copyright (c) Jon W{tte, 1993. */ 3 /* NetHack may be freely redistributed. See license for details. */ 4 5 #include "hack.h" 6 #include "macwin.h" 7 8 static Boolean KeyDown(unsigned short code)9KeyDown (unsigned short code) { 10 unsigned char keys [16]; 11 12 GetKeys ((void *) keys); 13 return ((keys [code >> 3] >> (code & 7)) & 1) != 0; 14 } 15 16 17 void dprintf(char * format,...)18dprintf (char *format, ...) 19 { 20 char buffer [500]; 21 va_list list; 22 int doit; 23 #define DO_DEBUGSTR 1 24 #define DO_PLINE 2 25 26 if (flags.debug) { 27 doit = 0; 28 if (macFlags.hasDebugger && KeyDown (0x39)) { /* Caps Lock */ 29 doit = DO_DEBUGSTR; 30 } else if (KeyDown (0x3B) && iflags.window_inited && /* Control */ 31 (WIN_MESSAGE != -1) && theWindows [WIN_MESSAGE].its_window) { 32 doit = DO_PLINE; 33 } 34 35 if (doit) { 36 va_start (list, format); 37 vsprintf (&buffer [1], format, list); 38 va_end (list) ; 39 40 if (doit == DO_DEBUGSTR) { 41 buffer [0] = strlen (&buffer [1]); 42 DebugStr ((uchar *) buffer); 43 } else if (doit == DO_PLINE) 44 pline ("%s", &buffer [1]); 45 } 46 } 47 } 48