Free Hero Mesh

Diff
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.

Differences From Artifact [24b1ea6d74]:

To Artifact [ecf182b369]:


393
394
395
396
397
398
399
400

401

402
403
404
405






406
407
408
409
410
411
412
        exit(0);
        break;
    }
  }
}

static void add_object_at(int x,int y,MRU*m,int d) {
  Uint32 n;

  if(x<1 || x>pfwidth || y<1 || y>pfheight || !m || !m->class) return;

  if(d) {
    n=playfield[y*64+x-65];
    while(n!=VOIDLINK) {
      if(objects[n]->class==m->class) return;






      n=objects[n]->up;
    }
  }
  n=objalloc(m->class);
  if(n==VOIDLINK) return;
  objects[n]->x=x;
  objects[n]->y=y;







|
>

>
|
|
|
|
>
>
>
>
>
>







393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
        exit(0);
        break;
    }
  }
}

static void add_object_at(int x,int y,MRU*m,int d) {
  Uint32 n,u;
  Class*c;
  if(x<1 || x>pfwidth || y<1 || y>pfheight || !m || !m->class) return;
  c=classes[m->class];
  if(!c) return;
  n=playfield[y*64+x-65];
  while(n!=VOIDLINK) {
    if(d && objects[n]->class==m->class) return;
    if(c->collisionLayers&classes[objects[n]->class]->collisionLayers) {
      u=objects[n]->up;
      pfunlink(n);
      free(objects[n]);
      n=u;
    } else {
      n=objects[n]->up;
    }
  }
  n=objalloc(m->class);
  if(n==VOIDLINK) return;
  objects[n]->x=x;
  objects[n]->y=y;