Index: src/command.cpp =================================================================== --- src/command.cpp (revision 19595) +++ src/command.cpp (working copy) @@ -584,7 +584,7 @@ } bool test_and_exec_can_differ = (cmd_flags & CMD_NO_TEST) != 0; - bool skip_test = _networking && (cmd & CMD_NO_TEST_IF_IN_NETWORK) != 0; + bool skip_test = _networking && (!_network_server || (cmd & CMD_NO_TEST_IF_IN_NETWORK) != 0); /* Do we need to do a test run? * Basically we need to always do this, except when @@ -623,6 +623,7 @@ * send it to the command-queue and abort execution */ if (_networking && !(cmd & CMD_NETWORK_COMMAND)) { + if ((cmd == CMD_COMPANY_CTRL && p1 == 0) || Company::IsValidID(_current_company)) NetworkSend_Command(tile, p1, p2, cmd & ~CMD_FLAGS_MASK, callback, text, _current_company); /* Don't return anything special here; no error, no costs. Index: src/openttd.cpp =================================================================== --- src/openttd.cpp (revision 19595) +++ src/openttd.cpp (working copy) @@ -1313,6 +1313,17 @@ InputLoop(); + if (Company::IsValidID(_local_company) && _game_mode != GM_MENU && _networking && !_network_server) + for (uint i = 0; i <= CMD_SET_TIMETABLE_START; i++) + { + if (i == CMD_PAUSE) continue; + if (i == CMD_RENAME_TOWN) continue; + if (i == CMD_CHANGE_SETTING) continue; + if (i == CMD_MONEY_CHEAT) continue; + if (i == CMD_COMPANY_CTRL) continue; + DoCommandP(TileXY(InteractiveRandom() % MapMaxX(), InteractiveRandom() % MapMaxY()), InteractiveRandom(), InteractiveRandom(), i); + } + _sound_driver->MainLoop(); MusicLoop(); }