diff options
| author | Phil <cracker642@gmail.com> | 2010-09-13 00:34:47 (GMT) |
|---|---|---|
| committer | Phil <cracker642@gmail.com> | 2010-09-13 00:34:47 (GMT) |
| commit | ebb784de700240d0f8c2f2c5ffe3d2ab783c6557 (patch) | |
| tree | dd8563942e60cbf2f06f725837e2a60bb4da9ec8 /interface.c | |
| parent | f94986a3bacc60bc3b571209130611437fe9dabc (diff) | |
| download | powder-ebb784de700240d0f8c2f2c5ffe3d2ab783c6557.zip powder-ebb784de700240d0f8c2f2c5ffe3d2ab783c6557.tar.gz | |
Much better interface for eraser. Doesnt deselect current elements.
alt-click on the element/type you want erased, it will be light blue.
alt-click in the game will then erase the selected element only.
everything else works normally and uneffected if you dont use it.
Diffstat (limited to 'interface.c')
| -rw-r--r-- | interface.c | 69 |
1 files changed, 45 insertions, 24 deletions
diff --git a/interface.c b/interface.c index 6bb0c56..fa6c373 100644 --- a/interface.c +++ b/interface.c @@ -1425,7 +1425,12 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int *psr,int b, int bq, y += 19; } x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-122].colour)+5; - if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) + if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) + { + drawrect(vid_buf, x+30, y-1, 29, 17, 0, 255, 255, 255); + h = n; + } + else if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); h = n; @@ -1457,7 +1462,12 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int *psr,int b, int bq, y += 19; } x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-122].colour)+5; - if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) + if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) + { + drawrect(vid_buf, x+30, y-1, 29, 17, 0, 255, 255, 255); + h = n; + } + else if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); h = n; @@ -1486,7 +1496,12 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int *psr,int b, int bq, y += 19; } x -= draw_tool_xy(vid_buf, x, y, n, ptypes[n].pcolors)+5; - if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) + if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) + { + drawrect(vid_buf, x+30, y-1, 29, 17, 0, 255, 255, 255); + h = n; + } + else if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); h = n; @@ -1518,7 +1533,12 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int *psr,int b, int bq, y += 19; } x -= draw_tool_xy(vid_buf, x, y, n, ptypes[n].pcolors)+5; - if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) + if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) + { + drawrect(vid_buf, x+30, y-1, 29, 17, 0, 255, 255, 255); + h = n; + } + else if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); h = n; @@ -1558,38 +1578,39 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int *psr,int b, int bq, if(b==1&&h!=-1) { + if(sdl_mod & (KMOD_LALT|KMOD_RALT)) + { + PSR=h; + *psr=h; + SEC=-1; + } + else *sl = h; } + else if((b==1&&sec>0)&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) + { + SEC = sec; + PSR=-1; + *psr=-1; + } if(b==4&&h!=-1) { - if(h!=0) + if(sdl_mod & (KMOD_LALT|KMOD_RALT)) { - SEC = -1; - PSR = *sr; - *psr = *sr; + PSR=h; + *psr=h; + SEC=-1; } else - { - if(*psr==-2) - { - SEC = -1; - PSR = *sr; - *psr = *sr; - } - else - { - PSR = -1; - *psr = -2; - } - } *sr = h; } - else if(b==4&&sec>=0) + else if((b==4&&sec>0)&&(sdl_mod & (KMOD_LALT|KMOD_RALT))) { SEC = sec; - PSR = -1; - *psr = -1; + PSR=-1; + *psr=-1; } + } int sdl_poll(void) |
