From 9d23c9134d99e36bade781905fbb003e94d048c2 Mon Sep 17 00:00:00 2001 From: "BADIM-PC\\Vadim" Date: Thu, 1 Feb 2018 18:32:31 +0300 Subject: [PATCH] fixed mouse input --- build/windows/tic/tic.vcxproj | 1 + build/windows/tic/tic.vcxproj.filters | 3 ++ src/code.c | 12 +++--- src/dialog.c | 8 ++-- src/map.c | 26 ++++++------ src/menu.c | 16 +++---- src/music.c | 30 +++++++------- src/sfx.c | 28 ++++++------- src/sprite.c | 60 +++++++++++++-------------- src/studio.c | 20 ++++----- src/tic.h | 7 ++++ src/world.c | 4 +- 12 files changed, 113 insertions(+), 102 deletions(-) diff --git a/build/windows/tic/tic.vcxproj b/build/windows/tic/tic.vcxproj index 38b4606..72fd65b 100644 --- a/build/windows/tic/tic.vcxproj +++ b/build/windows/tic/tic.vcxproj @@ -68,6 +68,7 @@ + diff --git a/build/windows/tic/tic.vcxproj.filters b/build/windows/tic/tic.vcxproj.filters index cf46206..b598260 100644 --- a/build/windows/tic/tic.vcxproj.filters +++ b/build/windows/tic/tic.vcxproj.filters @@ -90,6 +90,9 @@ src\ext\net + + src + diff --git a/src/code.c b/src/code.c index e388de2..a2d45e7 100644 --- a/src/code.c +++ b/src/code.c @@ -997,7 +997,7 @@ static void processMouse(Code* code) if(code->scroll.active) { - if(checkMouseDown(&code->rect, SDL_BUTTON_RIGHT)) + if(checkMouseDown(&code->rect, tic_mouse_right)) { code->scroll.x = (code->scroll.start.x - getMouseX()) / STUDIO_TEXT_WIDTH; code->scroll.y = (code->scroll.start.y - getMouseY()) / STUDIO_TEXT_HEIGHT; @@ -1008,7 +1008,7 @@ static void processMouse(Code* code) } else { - if(checkMouseDown(&code->rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&code->rect, tic_mouse_left)) { s32 mx = getMouseX(); s32 my = getMouseY(); @@ -1038,7 +1038,7 @@ static void processMouse(Code* code) code->cursor.mouseDownPosition = NULL; } - if(checkMouseDown(&code->rect, SDL_BUTTON_RIGHT)) + if(checkMouseDown(&code->rect, tic_mouse_right)) { code->scroll.active = true; @@ -1287,14 +1287,14 @@ static void drawOutlineBar(Code* code, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { code->outline.index = mx; updateOutlineCode(code); } - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) setCodeMode(code, TEXT_EDIT_MODE); } } @@ -1440,7 +1440,7 @@ static void drawCodeToolbar(Code* code) over = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { if (i == TEXT_RUN_CODE) { diff --git a/src/dialog.c b/src/dialog.c index 11469f4..9aa55f3 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -37,13 +37,13 @@ static void drawButton(Dialog* dlg, const char* label, s32 x, s32 y, u8 color, u setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { down = true; dlg->focus = id; } - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) callback(dlg); } @@ -132,7 +132,7 @@ static void drawDialog(Dialog* dlg) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&header, SDL_BUTTON_LEFT)) + if(checkMouseDown(&header, tic_mouse_left)) { if(!dlg->drag.active) { @@ -152,7 +152,7 @@ static void drawDialog(Dialog* dlg) dlg->pos.y = dlg->drag.start.y - getMouseY(); SDL_Rect rect = {0, 0, TIC80_WIDTH, TIC80_HEIGHT}; - if(!checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(!checkMouseDown(&rect, tic_mouse_left)) dlg->drag.active = false; } diff --git a/src/map.c b/src/map.c index 0c8a0e7..50230a3 100644 --- a/src/map.c +++ b/src/map.c @@ -95,7 +95,7 @@ static s32 drawWorldButton(Map* map, s32 x, s32 y) showTooltip("WORLD MAP [tab]"); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) setStudioMode(TIC_WORLD_MODE); } @@ -133,7 +133,7 @@ static s32 drawGridButton(Map* map, s32 x, s32 y) showTooltip("SHOW/HIDE GRID [`]"); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) map->canvas.grid = !map->canvas.grid; } @@ -180,7 +180,7 @@ static s32 drawSheetButton(Map* map, s32 x, s32 y) over = true; showTooltip("SHOW TILES [shift]"); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { map->sheet.show = !map->sheet.show; } @@ -206,7 +206,7 @@ static s32 drawToolButton(Map* map, s32 x, s32 y, const u8* Icon, s32 width, con showTooltip(tip); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { map->mode = mode; } @@ -361,7 +361,7 @@ static void drawSheetOvr(Map* map, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() - rect.x; s32 my = getMouseY() - rect.y; @@ -484,7 +484,7 @@ static void processMouseDrawMode(Map* map) drawTileCursor(map); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 tx = 0, ty = 0; getMouseMap(map, &tx, &ty); @@ -551,8 +551,8 @@ static void processMouseDragMode(Map* map) { SDL_Rect rect = {MAP_X, MAP_Y, MAP_WIDTH, MAP_HEIGHT}; - processScrolling(map, checkMouseDown(&rect, SDL_BUTTON_LEFT) || - checkMouseDown(&rect, SDL_BUTTON_RIGHT)); + processScrolling(map, checkMouseDown(&rect, tic_mouse_left) || + checkMouseDown(&rect, tic_mouse_right)); } static void resetSelection(Map* map) @@ -584,7 +584,7 @@ static void drawPasteData(Map* map) SDL_Rect rect = {MAP_X, MAP_Y, MAP_WIDTH, MAP_HEIGHT}; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { normalizeMap(&mx, &my); @@ -634,7 +634,7 @@ static void processMouseSelectMode(Map* map) drawPasteData(map); else { - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() + map->scroll.x; s32 my = getMouseY() + map->scroll.y; @@ -796,7 +796,7 @@ static void processMouseFillMode(Map* map) drawTileCursor(map); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { s32 tx = 0, ty = 0; getMouseMap(map, &tx, &ty); @@ -884,7 +884,7 @@ static void drawMapOvr(Map* map) if(tic->api.key(tic, tic_key_space)) // if(getKeyboard()[SDL_SCANCODE_SPACE]) { - processScrolling(map, checkMouseDown(&rect, SDL_BUTTON_LEFT) || checkMouseDown(&rect, SDL_BUTTON_RIGHT)); + processScrolling(map, checkMouseDown(&rect, tic_mouse_left) || checkMouseDown(&rect, tic_mouse_right)); } else { @@ -893,7 +893,7 @@ static void drawMapOvr(Map* map) Handlers[map->mode](map); if(map->mode != MAP_DRAG_MODE) - processScrolling(map, checkMouseDown(&rect, SDL_BUTTON_RIGHT)); + processScrolling(map, checkMouseDown(&rect, tic_mouse_right)); } } diff --git a/src/menu.c b/src/menu.c index d542137..972607f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -84,7 +84,7 @@ static void drawDialog(Menu* menu) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&header, SDL_BUTTON_LEFT)) + if(checkMouseDown(&header, tic_mouse_left)) { if(!menu->drag.active) { @@ -104,7 +104,7 @@ static void drawDialog(Menu* menu) menu->pos.y = menu->drag.start.y - getMouseY(); SDL_Rect rect = {0, 0, TIC80_WIDTH, TIC80_HEIGHT}; - if(!checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(!checkMouseDown(&rect, tic_mouse_left)) menu->drag.active = false; } @@ -141,7 +141,7 @@ static void drawTabDisabled(Menu* menu, s32 x, s32 y, s32 id) setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { menu->gamepad.tab = id; menu->gamepad.selected = -1; @@ -200,7 +200,7 @@ static void drawPlayerButtons(Menu* menu, s32 x, s32 y) over = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { menu->gamepad.selected = menu->gamepad.selected != index ? index : -1; } @@ -261,12 +261,12 @@ static void drawGamepadMenu(Menu* menu) over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { down = true; } - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { menu->gamepad.selected = -1; menu->mode = MAIN_MENU_MODE; @@ -328,13 +328,13 @@ static void drawMainMenu(Menu* menu) over = true; - if(checkMouseDown(&label, SDL_BUTTON_LEFT)) + if(checkMouseDown(&label, tic_mouse_left)) { down = true; menu->main.focus = i; } - if(checkMouseClick(&label, SDL_BUTTON_LEFT)) + if(checkMouseClick(&label, tic_mouse_left)) { MenuHandlers[i](menu); return; diff --git a/src/music.c b/src/music.c index e456d18..307a6ea 100644 --- a/src/music.c +++ b/src/music.c @@ -100,10 +100,10 @@ static void drawEditbox(Music* music, s32 x, s32 y, s32 value, void(*set)(Music* setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if (checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if (checkMouseDown(&rect, tic_mouse_left)) down = true; - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) set(music, -1, channel); } @@ -119,7 +119,7 @@ static void drawEditbox(Music* music, s32 x, s32 y, s32 value, void(*set)(Music* { setCursor(SDL_SYSTEM_CURSOR_HAND); - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) { music->tracker.row = -1; music->tracker.col = channel * CHANNEL_COLS; @@ -154,10 +154,10 @@ static void drawEditbox(Music* music, s32 x, s32 y, s32 value, void(*set)(Music* setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if (checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if (checkMouseDown(&rect, tic_mouse_left)) down = true; - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) set(music, +1, channel); } @@ -207,10 +207,10 @@ static void drawSwitch(Music* music, s32 x, s32 y, const char* label, s32 value, over = true; - if (checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if (checkMouseDown(&rect, tic_mouse_left)) down = true; - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) set(music, -1, data); } @@ -237,10 +237,10 @@ static void drawSwitch(Music* music, s32 x, s32 y, const char* label, s32 value, over = true; - if (checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if (checkMouseDown(&rect, tic_mouse_left)) down = true; - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) set(music, +1, data); } @@ -1140,7 +1140,7 @@ static void drawTrackerFrames(Music* music, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if (checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if (checkMouseDown(&rect, tic_mouse_left)) { s32 my = getMouseY() - rect.y - Border; music->tracker.frame = my / TIC_FONT_HEIGHT; @@ -1222,7 +1222,7 @@ static void drawTrackerChannel(Music* music, s32 x, s32 y, s32 channel) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() - rect.x - Border; s32 my = getMouseY() - rect.y - Border; @@ -1247,7 +1247,7 @@ static void drawTrackerChannel(Music* music, s32 x, s32 y, s32 channel) if(music->tracker.select.drag) { SDL_Rect rect = {0, 0, TIC80_WIDTH, TIC80_HEIGHT}; - if(!checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(!checkMouseDown(&rect, tic_mouse_left)) { music->tracker.select.drag = false; } @@ -1354,7 +1354,7 @@ static void drawTumbler(Music* music, s32 x, s32 y, s32 index) showTooltip("on/off channel"); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { if (SDL_GetModState() & KMOD_CTRL) { @@ -1452,7 +1452,7 @@ static void drawPlayButtons(Music* music) static void(*const Handlers[])(Music*) = { enableFollowMode, playFrame, playTrack, stopTrack }; - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) Handlers[i](music); } @@ -1505,7 +1505,7 @@ static void drawModeTabs(Music* music) static const char* Tooltips[] = { "PIANO MODE", "TRACKER MODE" }; showTooltip(Tooltips[i]); - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) music->tab = Tabs[i]; } diff --git a/src/sfx.c b/src/sfx.c index f0ec2a3..0b45f2d 100644 --- a/src/sfx.c +++ b/src/sfx.c @@ -74,7 +74,7 @@ static void drawSwitch(Sfx* sfx, s32 x, s32 y, const char* label, s32 value, voi { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) set(sfx, -1); } @@ -96,7 +96,7 @@ static void drawSwitch(Sfx* sfx, s32 x, s32 y, const char* label, s32 value, voi { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) set(sfx, +1); } @@ -216,7 +216,7 @@ static void drawWaveButtons(Sfx* sfx, s32 x, s32 y) setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { sfx->waveform.index = i; sfx->tab = SFX_WAVEFORM_TAB; @@ -246,7 +246,7 @@ static void drawWaveButtons(Sfx* sfx, s32 x, s32 y) setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if(checkMouseClick(&iconRect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&iconRect, tic_mouse_left)) { tic_sample* effect = getEffect(sfx); for(s32 c = 0; c < SFX_TICKS; c++) @@ -301,7 +301,7 @@ static void drawCanvasTabs(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { sfx->canvasTab = i; } @@ -324,7 +324,7 @@ static void drawCanvasTabs(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) effect->pitch16x++; } @@ -341,7 +341,7 @@ static void drawCanvasTabs(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) effect->reverse++; } @@ -384,7 +384,7 @@ static void drawCanvas(Sfx* sfx, s32 x, s32 y) mx -= mx % CANVAS_SIZE; my -= my % CANVAS_SIZE; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { mx /= CANVAS_SIZE; my /= CANVAS_SIZE; @@ -480,7 +480,7 @@ static void drawPiano(Sfx* sfx, s32 x, s32 y) } } - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { for(s32 i = COUNT_OF(buttons) - 1; i >= 0; i--) { @@ -531,7 +531,7 @@ static void drawOctavePanel(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { effect->octave = i; } @@ -775,7 +775,7 @@ static void drawModeTabs(Sfx* sfx) static const char* Tooltips[] = { "WAVEFORMS [tab]", "ENVELOPES [tab]" }; showTooltip(Tooltips[i]); - if (checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if (checkMouseClick(&rect, tic_mouse_left)) sfx->tab = Tabs[i]; } @@ -804,7 +804,7 @@ static void drawSfxToolbar(Sfx* sfx) showTooltip("PLAY SFX [space]"); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { sfx->play.active = true; } @@ -877,7 +877,7 @@ static void drawWaveformBar(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) sfx->waveform.index = i; } @@ -925,7 +925,7 @@ static void drawWaveformCanvas(Sfx* sfx, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() - x; s32 my = getMouseY() - y; diff --git a/src/sprite.c b/src/sprite.c index 0b9cf7f..3f2ed6e 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -101,10 +101,10 @@ static void processPickerCanvasMouse(Sprite* sprite, s32 x, s32 y, s32 sx, s32 s drawCursorBorder(sprite, x + mx, y + my, Size, Size); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) sprite->color = getSheetPixel(sprite, sx + mx / Size, sy + my / Size); - if(checkMouseDown(&rect, SDL_BUTTON_RIGHT)) + if(checkMouseDown(&rect, tic_mouse_right)) sprite->color2 = getSheetPixel(sprite, sx + mx / Size, sy + my / Size); } } @@ -137,8 +137,8 @@ static void processDrawCanvasMouse(Sprite* sprite, s32 x, s32 y, s32 sx, s32 sy) drawCursorBorder(sprite, x + mx, y + my, brushSize, brushSize); - bool left = checkMouseDown(&rect, SDL_BUTTON_LEFT); - bool right = checkMouseDown(&rect, SDL_BUTTON_RIGHT); + bool left = checkMouseDown(&rect, tic_mouse_left); + bool right = checkMouseDown(&rect, tic_mouse_right); if(left || right) { @@ -222,7 +222,7 @@ static void processSelectCanvasMouse(Sprite* sprite, s32 x, s32 y) drawCursorBorder(sprite, x + mx, y + my, Size, Size); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { if(sprite->select.drag) { @@ -289,8 +289,8 @@ static void processFillCanvasMouse(Sprite* sprite, s32 x, s32 y, s32 l, s32 t) drawCursorBorder(sprite, x + mx, y + my, Size, Size); - bool left = checkMouseClick(&rect, SDL_BUTTON_LEFT); - bool right = checkMouseClick(&rect, SDL_BUTTON_RIGHT); + bool left = checkMouseClick(&rect, tic_mouse_left); + bool right = checkMouseClick(&rect, tic_mouse_right); if(left || right) { @@ -333,7 +333,7 @@ static void drawBrushSlider(Sprite* sprite, s32 x, s32 y) showTooltip("BRUSH SIZE"); over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 my = getMouseY() - y; @@ -638,9 +638,9 @@ static void drawMoveButtons(Sprite* sprite) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&Rects[i], SDL_BUTTON_LEFT)) down = true; + if(checkMouseDown(&Rects[i], tic_mouse_left)) down = true; - if(checkMouseClick(&Rects[i], SDL_BUTTON_LEFT)) + if(checkMouseClick(&Rects[i], tic_mouse_left)) Func[i](sprite); } @@ -674,7 +674,7 @@ static void drawRGBSlider(Sprite* sprite, s32 x, s32 y, u8* value) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() - x; *value = mx * Max / (Size-1); @@ -717,10 +717,10 @@ static void drawRGBSlider(Sprite* sprite, s32 x, s32 y, u8* value) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) down = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) (*value)--; } @@ -755,10 +755,10 @@ static void drawRGBSlider(Sprite* sprite, s32 x, s32 y, u8* value) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) down = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) (*value)++; } @@ -808,10 +808,10 @@ static void drawRGBTools(Sprite* sprite, s32 x, s32 y) showTooltip("COPY PALETTE"); over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) down = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) toClipboard(sprite->tic->cart.palette.data, sizeof(tic_palette), false); } @@ -851,10 +851,10 @@ static void drawRGBTools(Sprite* sprite, s32 x, s32 y) showTooltip("PASTE PALETTE"); over = true; - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) down = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { pasteColor(sprite); } @@ -904,8 +904,8 @@ static void drawPalette(Sprite* sprite, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - bool left = checkMouseDown(&rect, SDL_BUTTON_LEFT); - bool right = checkMouseDown(&rect, SDL_BUTTON_RIGHT); + bool left = checkMouseDown(&rect, tic_mouse_left); + bool right = checkMouseDown(&rect, tic_mouse_right); if(left || right) { @@ -957,10 +957,10 @@ static void drawPalette(Sprite* sprite, s32 x, s32 y) showTooltip("EDIT PALETTE"); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) down = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) sprite->editPalette = !sprite->editPalette; } @@ -1049,7 +1049,7 @@ static void drawSheet(Sprite* sprite, s32 x, s32 y) { setCursor(SDL_SYSTEM_CURSOR_HAND); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 offset = (sprite->size - TIC_SPRITESIZE) / 2; selectSprite(sprite, getMouseX() - x - offset, getMouseY() - y - offset); @@ -1210,9 +1210,9 @@ static void drawSpriteTools(Sprite* sprite, s32 x, s32 y) showTooltip(Tooltips[i]); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) pushed = true; + if(checkMouseDown(&rect, tic_mouse_left)) pushed = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { if(hasCanvasSelection(sprite)) { @@ -1295,7 +1295,7 @@ static void drawTools(Sprite* sprite, s32 x, s32 y) showTooltip(Tooltips[i]); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { sprite->mode = i; @@ -1518,7 +1518,7 @@ static void drawSpriteToolbar(Sprite* sprite) showTooltip("CANVAS ZOOM"); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { s32 mx = getMouseX() - rect.x; mx /= 6; @@ -1557,7 +1557,7 @@ static void drawSpriteToolbar(Sprite* sprite) showTooltip("TILES [tab]"); - if(!bg && checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(!bg && checkMouseClick(&rect, tic_mouse_left)) { sprite->index -= TIC_BANK_SPRITES; clearCanvasSelection(sprite); @@ -1577,7 +1577,7 @@ static void drawSpriteToolbar(Sprite* sprite) showTooltip("SPRITES [tab]"); - if(bg && checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(bg && checkMouseClick(&rect, tic_mouse_left)) { sprite->index += TIC_BANK_SPRITES; clearCanvasSelection(sprite); diff --git a/src/studio.c b/src/studio.c index f91ee17..f3839db 100644 --- a/src/studio.c +++ b/src/studio.c @@ -586,12 +586,12 @@ static void drawExtrabar(tic_mem* tic) color = Colors[i]; showTooltip(Tips[i]); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { bgcolor = color; color = (tic_color_white); } - else if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + else if(checkMouseClick(&rect, tic_mouse_left)) { setStudioEvent(Events[i]); } @@ -645,7 +645,7 @@ static void drawBankIcon(s32 x, s32 y) showTooltip("SWITCH BANK"); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) studioImpl.bank.show = !studioImpl.bank.show; } @@ -665,7 +665,7 @@ static void drawBankIcon(s32 x, s32 y) setCursor(SDL_SYSTEM_CURSOR_HAND); over = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { if(studioImpl.bank.chained) SDL_memset(studioImpl.bank.indexes, i, sizeof studioImpl.bank.indexes); @@ -703,7 +703,7 @@ static void drawBankIcon(s32 x, s32 y) over = true; - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) { studioImpl.bank.chained = !studioImpl.bank.chained; @@ -808,7 +808,7 @@ void drawToolbar(tic_mem* tic, u8 color, bool bg) showTooltip(Tips[i]); - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) setStudioMode(Modes[i]); } @@ -1119,7 +1119,7 @@ bool checkMousePos(const SDL_Rect* rect) bool checkMouseClick(const SDL_Rect* rect, s32 button) { - MouseState* state = &studioImpl.mouse.state[button - 1]; + MouseState* state = &studioImpl.mouse.state[button]; bool value = state->click && SDL_PointInRect(&state->start, rect) @@ -1132,7 +1132,7 @@ bool checkMouseClick(const SDL_Rect* rect, s32 button) bool checkMouseDown(const SDL_Rect* rect, s32 button) { - MouseState* state = &studioImpl.mouse.state[button - 1]; + MouseState* state = &studioImpl.mouse.state[button]; return state->down && SDL_PointInRect(&state->start, rect); } @@ -2898,14 +2898,14 @@ static void processMouseStates() { MouseState* state = &studioImpl.mouse.state[i]; - if(!state->down && tic->ram.input.mouse.btns & (1 << i)) + if(!state->down && (tic->ram.input.mouse.btns & (1 << i))) { state->down = true; state->start.x = tic->ram.input.mouse.x; state->start.y = tic->ram.input.mouse.y; } - else if(state->down && tic->ram.input.mouse.btns & (1 << i)) + else if(state->down && !(tic->ram.input.mouse.btns & (1 << i))) { state->end.x = tic->ram.input.mouse.x; state->end.y = tic->ram.input.mouse.y; diff --git a/src/tic.h b/src/tic.h index aaf60ff..3e70245 100644 --- a/src/tic.h +++ b/src/tic.h @@ -512,3 +512,10 @@ enum tic_keys_count }; + +enum +{ + tic_mouse_left, + tic_mouse_middle, + tic_mouse_right, +}; diff --git a/src/world.c b/src/world.c index f170d7f..4a928c4 100644 --- a/src/world.c +++ b/src/world.c @@ -47,13 +47,13 @@ static void drawGrid(World* world) s32 mx = getMouseX(); s32 my = getMouseY(); - if(checkMouseDown(&rect, SDL_BUTTON_LEFT)) + if(checkMouseDown(&rect, tic_mouse_left)) { map->scroll.x = (mx - TIC_MAP_SCREEN_WIDTH/2) * TIC_SPRITESIZE; map->scroll.y = (my - TIC_MAP_SCREEN_HEIGHT/2) * TIC_SPRITESIZE; } - if(checkMouseClick(&rect, SDL_BUTTON_LEFT)) + if(checkMouseClick(&rect, tic_mouse_left)) setStudioMode(TIC_MAP_MODE); }