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 [e91c1e1c82]:

To Artifact [5a38972949]:


1496
1497
1498
1499
1500
1501
1502
1503

1504
1505
1506
1507
1508
1509
1510

1511
1512
1513
1514
1515
1516
1517
1496
1497
1498
1499
1500
1501
1502

1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518







-
+







+







}

static int v_dispatch(const Uint16*code) {
  int i=msgvars.arg1.u;
  if(msgvars.arg1.t!=TY_NUMBER) Throw("Type mismatch");
  if(!i || (msgvars.arg1.u&~0xFF) || !code[i]) {
    StackReq(0,1);
    Push(msgvars.arg2);
    if(!code[256] || !v_bool(msgvars.arg2)) Push(msgvars.arg2);
  }
  if(msgvars.arg1.u&~0xFF) {
    if(current_key && !v_bool(msgvars.arg3)) key_ignored=all_flushed=1;
    return 0;
  }
  if(!i) return 0;
  if(current_key && !v_bool(msgvars.arg3) && !(keymask[i>>3]&(1<<(i&7)))) key_ignored=all_flushed=1;
  if(!code[i] && !v_bool(msgvars.arg2) && !msgvars.arg3.t && !msgvars.arg3.u && !key_ignored) i=256;
  return code[i];
}

static int v_in(void) {
  int p=vstackptr;
  Value v;
  while(vstackptr-- && vstack[vstackptr].t!=TY_MARK);