Free Hero Mesh

Check-in [59e67bf4c2]
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:Do not automatically check for Arg2 in the (Others) block
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 59e67bf4c29776bbbff976607936e139cde2b837
User & Date: user on 2021-04-28 21:20:45
Other Links: manifest | tags
Context
2021-04-29
21:11
Allow middle mouse button for paste in the screen_prompt function check-in: 24e7e79d38 user: user tags: trunk
2021-04-28
21:20
Do not automatically check for Arg2 in the (Others) block check-in: 59e67bf4c2 user: user tags: trunk
17:10
Implement the (Others) block check-in: 1750e878e8 user: user tags: trunk
Changes

Modified class.doc from [a77f62ce08] to [e8db760b6e].

388
389
390
391
392
393
394
395
396


397
398
399
400
401
402
403
388
389
390
391
392
393
394


395
396
397
398
399
400
401
402
403







-
-
+
+







(Misc7 <numbers...>)
  Define the Misc7 variable for this class; see Misc4 above for details.

(Others <code...>)
  This block must be preceded by another key dispatch block (although not
  necessarily directly preceded), and it is only allowed in classes with
  the Input flag. If no key dispatch block matches and it is not a key
  which is implicitly ignored, and Arg2 and Arg3 are both zero, then it
  will execute this block instead.
  which is implicitly ignored, and Arg3 is both zero, then it will execute
  this block instead.

Player
  Set the Player flag for this class.

Quiz
  If specified, the internal variables of objects of this class cannot
  normally be examined by the player. However, the player can override

Modified exec.c from [5a38972949] to [00b10bc2bd].

1496
1497
1498
1499
1500
1501
1502
1503

1504
1505
1506
1507
1508
1509
1510
1511

1512
1513
1514
1515
1516
1517
1518
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);
    if(!code[256] || !v_bool(msgvars.arg2)) Push(msgvars.arg2);
    if(!code[256]) 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;
  if(!code[i] && !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);