Free Hero Mesh

Check-in [67716681cf]
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 'mm' binding ALT with middle mouse button to write coordinates to the Misc value of MRU.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 67716681cfbf7ebd4a542e8ebc04e9eb6cc3e50e
User & Date: user on 2023-01-31 19:26:31
Other Links: manifest | tags
Context
2023-03-14
20:53
Optimize message blocks that begin with a goto instruction to a label that comes before it. check-in: 7cde381dd5 user: user tags: trunk
2023-01-31
19:26
Add 'mm' binding ALT with middle mouse button to write coordinates to the Misc value of MRU. check-in: 67716681cf user: user tags: trunk
02:29
SHIFT+B in editor to fill only the border of the selection rectangle. check-in: 13bba11fed user: user tags: trunk
Changes

Modified bindings.doc from [c67b674108] to [3ed905f4d9].

209
210
211
212
213
214
215



216
217
218
219
220
221
222
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225







+
+
+







  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.

'mm' <class> <image> <misc1> <misc2> <misc3> <dir>
  Modify a MRU. Any values specified as null means no change.

'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 [93e3b75442] to [8c46116b52].

177
178
179
180
181
182
183

184
185
186
187
188
189
190
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191







+







?.editClick.ctrl.left: select 'em',id from objects where x=$X and y=$Y and up is null;
?.editClick.alt.left: ^u
?.editClick.right: delete from objects where x=$X and y=$Y and up is null;
?.editClick.ctrl.right: select 'am',class,image,misc1,misc2,misc3,dir from objects where x=$X and y=$Y and up is null;
?.editClick.shift.left: ^<
?.editClick.shift.middle: values('^Z',null),('^<',xy($X,$Y));
?.editClick.shift.right: ^>
?.editClick.alt.middle: select 'mm',null,null,null,$X,$Y,null;

! Global key bindings
?.?.kp_minus: select 'go',-(level()-1) where level()>1;
?.?.kp_plus: select 'go',-(level()+1) where level()<max_level();
?.?.shift.kp_minus: select 'go',-1;
?.?.shift.kp_plus: select 'go',-max_level();
?.?.ctrl.G: select 'go',-:Go_To_Level where :Go_To_Level=cast(:Go_To_Level as int) and cast(:Go_To_Level as int)>0;

Modified edit.c from [50c4e83094] to [3ade7c9610].

1944
1945
1946
1947
1948
1949
1950












1951
1952
1953
1954
1955
1956
1957
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969







+
+
+
+
+
+
+
+
+
+
+
+







      if(!level_title) fatal("Allocation failed\n");
      return 0;
    case 'lv': // Set level version
      discard_solution();
      level_version=number;
      level_changed=0;
      return 0;
    case 'mm': // Modify MRU
      if(curmru>=MRUCOUNT) return prev;
      if(argc>1 && sqlite3_column_type(args,1)!=SQLITE_NULL) {
        x=sqlite3_column_int(args,1)&0x3FFF;
        if(x) mru[curmru].class=x;
      }
      if(argc>2 && sqlite3_column_type(args,2)!=SQLITE_NULL) mru[curmru].img=sqlite3_column_int(args,2)&0xFF;
      if(argc>3 && sqlite3_column_type(args,3)!=SQLITE_NULL) mru[curmru].misc1=UVALUE(sqlite3_column_int64(args,3),sqlite3_column_int64(args,3)>>32);
      if(argc>4 && sqlite3_column_type(args,4)!=SQLITE_NULL) mru[curmru].misc2=UVALUE(sqlite3_column_int64(args,4),sqlite3_column_int64(args,4)>>32);
      if(argc>5 && sqlite3_column_type(args,5)!=SQLITE_NULL) mru[curmru].misc3=UVALUE(sqlite3_column_int64(args,5),sqlite3_column_int64(args,5)>>32);
      if(argc>6 && sqlite3_column_type(args,6)!=SQLITE_NULL) mru[curmru].dir=sqlite3_column_int64(args,6)&7;
      return prev;
    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

Modified edit.doc from [9d3bbeaa51] to [bc7c806b35].

247
248
249
250
251
252
253

254
255
256
257
258
247
248
249
250
251
252
253
254
255
256
257
258
259







+






Mouse (in grid):

  LEFT          Add object
  CTRL+LEFT     Edit Misc/Dir of object
  ALT+LEFT      Add object (allow duplicate)
  SHIFT+LEFT    Set top corner of selection rectangle
  ALT+MIDDLE    Set Misc2/Misc3 of MRU to X/Y
  SHIFT+MIDDLE  Make 1x1 selection rectangle
  RIGHT         Delete object
  CTRL+RIGHT    Copy object to MRU
  SHIFT+RIGHT   Set bottom corner of selection rectangle