diff --git a/src/map.c b/src/map.c index 0b0260dd0..df382d93b 100644 --- a/src/map.c +++ b/src/map.c @@ -1627,8 +1627,10 @@ bool fireOnLocation(unsigned int x, unsigned int y) return psTile != NULL && TileIsBurning(psTile); } -static void dangerFloodFill(int player) +// This function runs in a separate thread! +static int dangerFloodFill(WZ_DECL_UNUSED void *data) { + int player = lastDangerPlayer; int i; Vector2i pos = getPlayerStartPosition(player); Vector2i npos; @@ -1690,6 +1692,7 @@ static void dangerFloodFill(int player) pos.y = floodbucket[bucketcounter].y; } } while (bucketcounter); + return 0; } // This function runs in a separate thread! diff --git a/src/structure.c b/src/structure.c index 5bdf44fac..f6448decf 100644 --- a/src/structure.c +++ b/src/structure.c @@ -1716,6 +1716,11 @@ STRUCTURE* buildStructureDir(STRUCTURE_STATS *pStructureType, UDWORD x, UDWORD y } } + if (pStructureType->type != REF_REARM_PAD && pStructureType->type != REF_GATE) + { + auxStructureBlocking(psBuilding); + } + for (width = 0; width < sWidth; width++) { for (breadth = 0; breadth < sBreadth; breadth++)