Free Hero Mesh

Check-in [5439829a5f]
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 'lc' and 'lv' to set level code and level version.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5439829a5fda881ad8f3fc5c343254ec4578e1fa
User & Date: user on 2021-02-18 05:06:41
Other Links: manifest | tags
Context
2021-02-21
00:43
Add saving levels. (Now it is probably ready for public testing.) check-in: d89808c09a user: user tags: trunk
2021-02-18
05:06
Add 'lc' and 'lv' to set level code and level version. check-in: 5439829a5f user: user tags: trunk
2021-02-17
06:00
Add the internal "level_changed" variable; this is set in the level editor if changes are made which would potentially invalidate the solution, requiring the level version number to be incremented. (Some changes do not set this, such as changing the level title, or its order number. In this case, the level version number remains unchanged when the level is saved.) check-in: 42049107bf user: user tags: trunk
Changes

Modified bindings.doc from [7578e8d589] to [11b6d55d1e].

110
111
112
113
114
115
116















117
118
119
120
121
122
123
  and the Misc values (1 to 3), not the class and image; to edit the class
  and image, use the class selection menu.)

'^u' <location>
  Add an object with the current MRU values to that location, even if
  there is already another object of the same class at that location.
















'mR' <number>
  Select a relative MRU. Negative numbers move up the list, and positive
  numbers move down the list.

'mr' <number>
  Select a MRU, given the MRU number (0 to 31; the top is zero).








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  and the Misc values (1 to 3), not the class and image; to edit the class
  and image, use the class selection menu.)

'^u' <location>
  Add an object with the current MRU values to that location, even if
  there is already another object of the same class at that location.

'lc' <number>
  Set the level code number. This is a 16-bit number which can be used in
  the class codes of your puzzle set for whatever purpose you wish; the
  game engine does not use this value itself.

'lv' <number>
  Set the level version number. This number is used to detect the validity
  of stored solutions. Normally, you do not need to set this; it will do
  so automatically once the level is saved, if any changes have been made
  which might invalidate the solution (although it doesn't know for sure,
  so there are false positives). However, you can set this deliberately by
  yourself, in case you know that the solution remains valid; if you do
  set it by yourself just before saving, it will use your value rather
  than setting it automatically.

'mR' <number>
  Select a relative MRU. Negative numbers move up the list, and positive
  numbers move down the list.

'mr' <number>
  Select a MRU, given the MRU number (0 to 31; the top is zero).

Modified default.heromeshrc from [57b9ba9aa2] to [b489fce8f4].

133
134
135
136
137
138
139

140
141
142
143
144
145
146
?.editKey.5: select 'mr',4;
?.editKey.6: select 'mr',5;
?.editKey.7: select 'mr',6;
?.editKey.8: select 'mr',7;
?.editKey.9: select 'mr',8;
?.editKey.up: select 'mR',-1;
?.editKey.down: select 'mR',+1;

?.editKey.shift.F: with n(n) as (select 65 union all select n+1 h from n where h<=64*pfheight()+65) select '^a',n from n;
?.editKey.ctrl.X: select 're',pfwidth(),pfheight();
?.editKey.ctrl.P: ^P
?.editKey.ctrl.Q: ^Q
?.editKey.ctrl.R: select 're',substr(:resize,1,instr(:resize,'x')-1),substr(:resize,instr(:resize,'x')+1) where length(:resize);
?.editKey.space: ^c
?.editKey.return: ^e







>







133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
?.editKey.5: select 'mr',4;
?.editKey.6: select 'mr',5;
?.editKey.7: select 'mr',6;
?.editKey.8: select 'mr',7;
?.editKey.9: select 'mr',8;
?.editKey.up: select 'mR',-1;
?.editKey.down: select 'mR',+1;
?.editKey.C: select 'lc',:level_code where :level_code=cast(:level_code as int);
?.editKey.shift.F: with n(n) as (select 65 union all select n+1 h from n where h<=64*pfheight()+65) select '^a',n from n;
?.editKey.ctrl.X: select 're',pfwidth(),pfheight();
?.editKey.ctrl.P: ^P
?.editKey.ctrl.Q: ^Q
?.editKey.ctrl.R: select 're',substr(:resize,1,instr(:resize,'x')-1),substr(:resize,instr(:resize,'x')+1) where length(:resize);
?.editKey.space: ^c
?.editKey.return: ^e

Modified edit.c from [7284a1e678] to [5ea8991e9d].

562
563
564
565
566
567
568








569
570
571
572
573
574
575
    case '^P': // Play
      return -2;
    case '^Q': // Quit
      return -1;
    case 'go': // Select level
      load_level(number);
      return 1;








    case 'mR': // Select MRU relative
      number+=curmru;
      // fall through
    case 'mr': // Select MRU absolute
      if(number>=0 && number<MRUCOUNT) curmru=number;
      return 0;
    case 're': // Resize and clear







>
>
>
>
>
>
>
>







562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
    case '^P': // Play
      return -2;
    case '^Q': // Quit
      return -1;
    case 'go': // Select level
      load_level(number);
      return 1;
    case 'lc': // Set level code
      level_code=number;
      level_changed=1;
      return 0;
    case 'lv': // Set level version
      level_version=number;
      level_changed=0;
      return 0;
    case 'mR': // Select MRU relative
      number+=curmru;
      // fall through
    case 'mr': // Select MRU absolute
      if(number>=0 && number<MRUCOUNT) curmru=number;
      return 0;
    case 're': // Resize and clear