Index: exec.c ================================================================== --- exec.c +++ exec.c @@ -298,11 +298,10 @@ v=send_message(from,n,msg,arg1,arg2,arg3); if(s>0) { switch(v.t) { case TY_NUMBER: t+=v.u; break; case TY_CLASS: t++; break; - case TY_MESSAGE: break; default: if(v.t<=TY_MAXTYPE) Throw("Invalid return type for BroadcastSum"); t++; } } else { Index: main.c ================================================================== --- main.c +++ main.c @@ -796,10 +796,21 @@ const char*log_if_error(const char*t) { if(t && main_options['v']) fprintf(stderr,"!! %s\n",t); return t; } + +static void set_tracing(void) { + const char*v; + int i; + optionquery[1]=Q_traceAll; + v=xrm_get_resource(resourcedb,optionquery,optionquery,2)?:""; + if(boolxrm(v,0)) { + memset(message_trace,255,sizeof(message_trace)); + for(i=0;i<0x4000;i++) if(classes[i]) classes[i]->cflags|=CF_TRACEIN|CF_TRACEOUT; + } +} int main(int argc,char**argv) { int optind=1; while(argc>optind && argv[optind][0]=='-') { int i; @@ -842,10 +853,11 @@ init_usercache(); load_classes(); load_level_index(); optionquery[1]=Q_maxObjects; max_objects=strtoll(xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"",0,0)?:0xFFFF0000L; + set_tracing(); annihilate(); optionquery[1]=Q_level; if(level_ord=strtol(xrm_get_resource(resourcedb,optionquery,optionquery,2)?:"",0,10)) log_if_error(load_level(-level_ord)); if(main_options['x']) { fprintf(stderr,"Ready for executing SQL statements.\n"); Index: quarks ================================================================== --- quarks +++ quarks @@ -210,6 +210,7 @@ ! Miscellaneous level tracePrefix stackProtection maxObjects +traceAll Index: quarks.h ================================================================== --- quarks.h +++ quarks.h @@ -175,10 +175,11 @@ #define Q_sqlPowerSafe 176 #define Q_level 177 #define Q_tracePrefix 178 #define Q_stackProtection 179 #define Q_maxObjects 180 +#define Q_traceAll 181 static const char*const global_quarks[]={ "screenWidth", "screenHeight", "margin", "palette", @@ -355,10 +356,11 @@ "sqlPowerSafe", "level", "tracePrefix", "stackProtection", "maxObjects", + "traceAll", 0}; #ifdef HEROMESH_BINDINGS static const SDLKey quark_to_key[Q_undo+1-Q_backspace]={ SDLK_BACKSPACE, SDLK_TAB,