Index: bindings.doc ================================================================== --- bindings.doc +++ bindings.doc @@ -112,10 +112,25 @@ '^u' 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' + 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' + 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' Select a relative MRU. Negative numbers move up the list, and positive numbers move down the list. 'mr' Index: default.heromeshrc ================================================================== --- default.heromeshrc +++ default.heromeshrc @@ -135,10 +135,11 @@ ?.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); Index: edit.c ================================================================== --- edit.c +++ edit.c @@ -564,10 +564,18 @@ 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