From 66f29821343409eb6a39ba4c695f0f12c992950d Mon Sep 17 00:00:00 2001 From: rexim Date: Sun, 9 Feb 2020 01:53:15 +0700 Subject: [PATCH] (#1253) Let subtract tool cut out a window inside of a platform --- src/game/level/level_editor/rect_layer.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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; }