Free Hero Mesh

Check-in [165d3cd4f7]
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.
Overview
Comment:Add traceAll resource
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 165d3cd4f7b5906632ba04a46e9f5967556e8510
User & Date: user on 2020-12-01 22:09:48
Other Links: manifest | tags
Context
2020-12-02
00:39
Fix send_message so that it correctly skips sending if the message pointer is 0xFFFF, not zero check-in: 166412b059 user: user tags: trunk
2020-12-01
22:09
Add traceAll resource check-in: 165d3cd4f7 user: user tags: trunk
2020-11-30
21:37
Add names for Transform, TRANSFORMING, and TRANSFORMED; not implemented yet check-in: 56fff32581 user: user tags: trunk
Changes

Modified exec.c from [00ba881dd8] to [d1ca262282].

296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
296
297
298
299
300
301
302

303
304
305
306
307
308
309







-







    p=o->prev;
    if(!c || o->class==c) {
      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 {
        if(s<0) arg2=v;
        t++;

Modified main.c from [64955f8adb] to [ee9e1c16af].

794
795
796
797
798
799
800











801
802
803
804
805
806
807
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818







+
+
+
+
+
+
+
+
+
+
+







}
#endif

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;
    const char*s=argv[optind++];
    if(s[1]=='-' && !s[2]) break;
840
841
842
843
844
845
846

847
848
849
850
851
852
853
854
855
856
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868







+










    return 0;
  }
  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");
    do_sql_mode();
    return 0;
  }
  for(;;) { if(main_options['e']) run_editor(); else run_game(); }
}

Modified quarks from [a113357ac4] to [049bdf1ebf].

208
209
210
211
212
213
214

215
208
209
210
211
212
213
214
215
216







+

sqlPowerSafe

! Miscellaneous
level
tracePrefix
stackProtection
maxObjects
traceAll

Modified quarks.h from [6b9c60aaee] to [def9f2d174].

173
174
175
176
177
178
179

180
181
182
183
184
185
186
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187







+







#define Q_sqlSmallAllocations 174
#define Q_sqlCoveringIndexScan 175
#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",
  "popupColors",
  "imageSize",
353
354
355
356
357
358
359

360
361
362
363
364
365
366
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368







+







  "sqlSmallAllocations",
  "sqlCoveringIndexScan",
  "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,
SDLK_CLEAR,
SDLK_RETURN,