From: rexim Date: Sat, 8 Feb 2020 18:53:15 +0000 (+0700) Subject: (#1253) Let subtract tool cut out a window inside of a platform X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=66f29821343409eb6a39ba4c695f0f12c992950d;p=nothing.git (#1253) Let subtract tool cut out a window inside of a platform --- diff --git a/src/game/level/level_editor/rect_layer.c b/src/game/level/level_editor/rect_layer.c index 20f21ee8..5cee90ef 100644 --- a/src/game/level/level_editor/rect_layer.c +++ b/src/game/level/level_editor/rect_layer.c @@ -354,11 +354,15 @@ static int rect_layer_event_idle(RectLayer *layer, Color *colors = (Color*)layer->colors.data; - if (layer->selection >= 0 && - layer->selection == rect_at_position && - (layer->resize_mask = calc_resize_mask( - vec((float) event->button.x, (float)event->button.y), - camera_rect(camera, rects[layer->selection])))) { + if (layer->subtract_enabled) { + layer->state = RECT_LAYER_SUBTRACT; + layer->create_begin = position; + layer->create_end = position; + } else if (layer->selection >= 0 && + layer->selection == rect_at_position && + (layer->resize_mask = calc_resize_mask( + vec((float) event->button.x, (float)event->button.y), + camera_rect(camera, rects[layer->selection])))) { layer->state = RECT_LAYER_RESIZE; dynarray_copy_to(&layer->rects, &layer->inter_rect, (size_t) layer->selection); } else if (rect_at_position >= 0) { @@ -376,9 +380,7 @@ static int rect_layer_event_idle(RectLayer *layer, layer->selection = rect_at_position; if (layer->selection < 0) { - layer->state = layer->subtract_enabled - ? RECT_LAYER_SUBTRACT - : RECT_LAYER_CREATE; + layer->state = RECT_LAYER_CREATE; layer->create_begin = position; layer->create_end = position; }