Index: bindings.doc ================================================================== --- bindings.doc +++ bindings.doc @@ -119,10 +119,14 @@ numbers move down the list. 'mr' Select a MRU, given the MRU number (0 to 31; the top is zero). +'re' + Remove all objects from the level and resize the level. The minimum size + is 1x1 and the maximum size is 64x64. + === Commands available in game and editor === '^E' Switch to the editor. Index: default.heromeshrc ================================================================== --- default.heromeshrc +++ default.heromeshrc @@ -135,12 +135,15 @@ ?.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 ?.editClick.left: ^a ?.editClick.alt.left: ^u ?.editClick.right: delete from objects where x=$X and y=$Y and up is null; Index: edit.c ================================================================== --- edit.c +++ edit.c @@ -539,10 +539,11 @@ objects[n]->misc3=m->misc3; pflink(n); } static int editor_command(int prev,int cmd,int number,int argc,sqlite3_stmt*args,void*aux) { + int x,y; switch(cmd) { case '^a': // Add object (no duplicates) if(prev) return prev; add_object_at(number&63?:64,number/64?:64,mru+curmru,1); return 0; @@ -566,10 +567,19 @@ case 'mR': // Select MRU relative number+=curmru; // fall through case 'mr': // Select MRU absolute if(number>=0 && number64 || y>64) return 0; + annihilate(); + pfwidth=x; + pfheight=y; return 0; default: return prev; } } Index: sql.doc ================================================================== --- sql.doc +++ sql.doc @@ -83,10 +83,11 @@ Enables tracing when called. XY(x,y) Many bindings require a position as their first argument; use this function to combine X/Y coordinates into a single value for this. + Coordinates are one-based. This is the same as (x+y*64). ZERO_EXTEND(number) Zero extends a 32-bit number to 64-bits. Same as NVALUE.