From ea2799fa289c1ce0c390b5d7bfff238641847978 Mon Sep 17 00:00:00 2001 From: Maikel de Vries Date: Tue, 7 Apr 2015 19:04:21 +0200 Subject: [PATCH] fix attachment of basement to tall structures --- .../Constructor.ocd/ConstructionPreviewer.ocd/Script.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/Script.c b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/Script.c index 1ab52bbc6..4bf9ef548 100644 --- a/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/Script.c +++ b/planet/Objects.ocd/Libraries.ocd/Constructor.ocd/ConstructionPreviewer.ocd/Script.c @@ -98,15 +98,18 @@ func Reposition(int x, int y) var found = false; if (structure->~ConstructionCombineWith()) { + var stick_dir = structure->~ConstructionCombineDirection(); + var find_rect = Find_InRect(AbsX(clonk->GetX() + x - dimension_x/2 - 10), AbsY(clonk->GetY() + y - dimension_y/2 - 10), dimension_x + 20, dimension_y + 20); + if ((stick_dir & CONSTRUCTION_STICK_Bottom)) + find_rect = Find_AtPoint(AbsX(clonk->GetX() + x), AbsY(clonk->GetY() + y)); var other = FindObject(Find_Func(structure->ConstructionCombineWith(), this), - Find_InRect(AbsX(clonk->GetX() + x - dimension_x/2 - 10), AbsY(clonk->GetY() + y - dimension_y/2 - 10), dimension_x + 20, dimension_y + 20), + find_rect, Find_OCF(OCF_Fullcon), Find_Layer(clonk->GetObjectLayer()), Find_Allied(clonk->GetOwner()), Find_NoContainer()); if (other) { - var stick_dir = structure->~ConstructionCombineDirection(); x = other->GetX(); y = other->GetY(); // Combine to different directions.