Free Hero Mesh

Check-in [7337cfa590]
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:Make for/next loops to skip objects with Destroyed or VisualOnly flag set. (Fixed levels 53, 60, and 97 of FALLING puzzle set. Levels 78, 80, 81, 82, 84, and 86 still fail.)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 7337cfa590cd8b4f5d760bcf596bc0402249f0e0
User & Date: user on 2021-03-07 06:27:19
Other Links: manifest | tags
Context
2021-03-07
21:44
Implement (Help Misc1) for help text to be defined by the level strings check-in: 42d0691852 user: user tags: trunk
06:27
Make for/next loops to skip objects with Destroyed or VisualOnly flag set. (Fixed levels 53, 60, and 97 of FALLING puzzle set. Levels 78, 80, 81, 82, 84, and 86 still fail.) check-in: 7337cfa590 user: user tags: trunk
03:53
Make some changes for the case when both -a and -t are specified check-in: 4f7bcb6296 user: user tags: trunk
Changes

Modified exec.c from [f09a3b0fbd] to [2cfffbd073].

1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
  int k=code[code[ptr]-1];
  Uint32 n;
  Uint32 r=VOIDLINK;
  if(globals[k].t!=TY_FOR) Throw("Uninitialized for/next loop");
  if(globals[k].s==-1) return ptr+1;
  n=playfield[globals[k].u&0xFFFF];
  while(n!=VOIDLINK) {
    if(!(objects[n]->oflags&OF_DONE)) {
      r=n;
      if(globals[k].u&0x10000) break;
    }
    n=objects[n]->up;
  }
  if(r==VOIDLINK) return ptr+1;
  objects[r]->oflags|=OF_DONE;







|







1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
  int k=code[code[ptr]-1];
  Uint32 n;
  Uint32 r=VOIDLINK;
  if(globals[k].t!=TY_FOR) Throw("Uninitialized for/next loop");
  if(globals[k].s==-1) return ptr+1;
  n=playfield[globals[k].u&0xFFFF];
  while(n!=VOIDLINK) {
    if(!(objects[n]->oflags&(OF_DONE|OF_DESTROYED|OF_VISUALONLY))) {
      r=n;
      if(globals[k].u&0x10000) break;
    }
    n=objects[n]->up;
  }
  if(r==VOIDLINK) return ptr+1;
  objects[r]->oflags|=OF_DONE;