editor_action* mouse_action_paint::click_perform_right( editor_display& /*disp*/, const std::set<map_location>& hexes) { if (has_ctrl_modifier()) return nullptr; return new editor_action_chain(new editor_action_paint_area( hexes, terrain_palette_.selected_bg_item(), has_shift_modifier())); }
std::set<map_location> mouse_action_select::affected_hexes( editor_display& disp, const map_location& hex) { if (has_shift_modifier()) { return disp.map().get_contiguous_terrain_tiles(hex); } else { return brush_drag_mouse_action::affected_hexes(disp, hex); } }
editor_action* mouse_action_fill::click_left(editor_display& disp, int x, int y) { map_location hex = disp.hex_clicked_on(x, y); if (has_ctrl_modifier()) { terrain_left_ = disp.map().get_terrain(hex); return NULL; } else { //TODO only take the base terrain into account when searching for contigious terrain when painting base only //or use a different key modifier for that editor_action_fill* a = new editor_action_fill(hex, terrain_left_, has_shift_modifier()); return a; } }
editor_action* mouse_action_fill::click_right(editor_display& disp, int x, int y) { map_location hex = disp.hex_clicked_on(x, y); if (has_ctrl_modifier()) { terrain_palette_.select_bg_item(disp.map().get_terrain(hex)); return nullptr; } else { /** @todo only take the base terrain into account when searching for contiguous terrain when painting base only */ //or use a different key modifier for that editor_action_fill* a = new editor_action_fill(hex, terrain_palette_.selected_bg_item(), has_shift_modifier()); return a; } }
void mouse_action_select::set_mouse_overlay(editor_display& disp) { surface image; if (has_shift_modifier()) { image = image::get_image("editor/tool-overlay-select-wand.png"); } else { image = image::get_image("editor/tool-overlay-select-brush.png"); } Uint8 alpha = 196; int size = image->w; int zoom = static_cast<int>(size * disp.get_zoom_factor()); // Add the alpha factor and scale the image image = scale_surface(adjust_surface_alpha(image, alpha), zoom, zoom); disp.set_mouseover_hex_overlay(image); }
editor_action* mouse_action_paint::click_perform_right( editor_display& /*disp*/, const std::set<map_location>& hexes) { if (has_ctrl_modifier()) return NULL; return new editor_action_chain(new editor_action_paint_area(hexes, terrain_right_, has_shift_modifier())); }