you can now hold in map editor to paint multiple cells

This commit is contained in:
Zeno Rogue 2017-11-06 23:22:13 +01:00
parent 483e335db8
commit 44ea56baf2
3 changed files with 13 additions and 3 deletions

View File

@ -8,6 +8,8 @@ bool leftclick, rightclick, targetclick, hiliteclick, anyshiftclick, wheelclick,
forcetarget, lshiftclick, lctrlclick;
bool gtouched;
bool holdmouse;
int getcstat, lgetcstat; ld getcshift; bool inslider;
function <void(int sym, int uni)> keyhandler;
@ -638,6 +640,7 @@ void mainloopiter() {
mousepressed = ev.type == SDL_MOUSEBUTTONDOWN;
if(mousepressed) flashMessages();
mousing = true;
holdmouse = false;
bool act = false;
@ -710,6 +713,8 @@ void mainloopiter() {
else
#endif
mouseh = gethyper(mousex, mousey);
if(holdmouse && getcstat == '-') sym = uni = getcstat;
if((rightclick || (SDL_GetMouseState(NULL, NULL) & SDL_BUTTON_MMASK)) && !mouseout2() &&
mouseh[2] < 50 && mouseoh[2] < 50) {

View File

@ -2109,3 +2109,4 @@ template<class T> void generateLandList(T t);
int isLandValid(eLand l);
bool inmirrororwall(eLand l);
extern bool holdmouse;

View File

@ -421,8 +421,10 @@ namespace mapeditor {
}
else if(u < 2) return 0;
#if LOCAL
printf("unhandled: u=%d\n", u);
#endif
}
}
return 0;
@ -1162,9 +1164,11 @@ namespace mapeditor {
handlePanning(sym, uni);
// left-clicks are coded with '-', and right-clicks are coded with sym F1
if(uni == '-') undoLock();
if(uni == '-' && mouseover)
if(uni == '-' && !holdmouse) undoLock();
if(uni == '-' && mouseover) {
allInPattern(mouseover, radius, neighborId(mouseover, mouseover2));
holdmouse = true;
}
if(mouseover) for(int i=0; i<mouseover->type; i++) createMov(mouseover, i);
if(uni == 'u') applyUndo();