diff --git a/industry_cmd.c b/industry_cmd.c index 6934292119..895ca0442a 100644 --- a/industry_cmd.c +++ b/industry_cmd.c @@ -1110,9 +1110,15 @@ static bool CheckNewIndustry_Forest(uint tile, int type) return true; } +extern bool _ignore_restrictions; + static bool CheckNewIndustry_Oilwell(uint tile, int type) { int x,y; + + if(_ignore_restrictions && _game_mode == GM_EDITOR) + return true; + if (type != IT_OIL_RIG && _game_mode == GM_EDITOR) return true; diff --git a/main_gui.c b/main_gui.c index 46ec07d80b..7340432d78 100644 --- a/main_gui.c +++ b/main_gui.c @@ -1437,6 +1437,8 @@ static bool TryBuildIndustry(TileIndex tile, int type) { int n; + if (CreateNewIndustry(tile, type)) return true; + n = 100; do { if (CreateNewIndustry(AdjustTileCoordRandomly(tile, 1), type)) return true; @@ -1463,6 +1465,8 @@ static const byte _industry_type_list[4][16] = { {26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36}, }; +bool _ignore_restrictions; + static void ScenEditIndustryWndProc(Window *w, WindowEvent *e) { int button; @@ -1504,10 +1508,12 @@ static void ScenEditIndustryWndProc(Window *w, WindowEvent *e) _current_player = OWNER_NONE; _generating_world = true; + _ignore_restrictions = true; if (!TryBuildIndustry(e->place.tile,type)) { SET_DPARAM16(0, type + STR_4802_COAL_MINE); ShowErrorMessage(_error_message, STR_0285_CAN_T_BUILD_HERE,e->place.pt.x, e->place.pt.y); } + _ignore_restrictions = false; _generating_world = false; break; }