diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index 37273e8b12..d898e13a94 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -103,6 +103,8 @@ IgnoreDefaultLibraryNames="" GenerateDebugInformation="true" SubSystem="2" + StackReserveSize="1048576" + StackCommitSize="1048576" OptimizeReferences="2" OptimizeForWindows98="1" TargetMachine="1" @@ -201,6 +203,8 @@ IgnoreDefaultLibraryNames="LIBCMT.lib" GenerateDebugInformation="true" SubSystem="2" + StackReserveSize="1048576" + StackCommitSize="1048576" TargetMachine="1" /> @@ -410,6 +416,8 @@ IgnoreDefaultLibraryNames="LIBCMT.lib" GenerateDebugInformation="true" SubSystem="2" + StackReserveSize="1048576" + StackCommitSize="1048576" TargetMachine="17" /> @@ -410,6 +416,8 @@ IgnoreDefaultLibraryNames="LIBCMT.lib" GenerateDebugInformation="true" SubSystem="2" + StackReserveSize="1048576" + StackCommitSize="1048576" TargetMachine="17" /> tar_filename, "rb"); - assert(f != NULL); + if (f == NULL) return f; fseek(f, entry->position, SEEK_SET); if (filesize != NULL) *filesize = entry->size; diff --git a/src/network/network.cpp b/src/network/network.cpp index 6b6ae205f6..4f4ef122e2 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -772,7 +772,6 @@ static void NetworkInitGameInfo() /* The server is a client too */ _network_game_info.clients_on = _network_dedicated ? 0 : 1; - _network_game_info.start_date = ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1); NetworkClientInfo *ci = new NetworkClientInfo(CLIENT_ID_SERVER); ci->client_playas = _network_dedicated ? COMPANY_SPECTATOR : _local_company; diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 87de31085c..5796c53443 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -124,28 +124,26 @@ void NetworkInitChatMessage() /** Hide the chatbox */ void NetworkUndrawChatMessage() { + /* Sometimes we also need to hide the cursor + * This is because both textmessage and the cursor take a shot of the + * screen before drawing. + * Now the textmessage takes his shot and paints his data before the cursor + * does, so in the shot of the cursor is the screen-data of the textmessage + * included when the cursor hangs somewhere over the textmessage. To + * avoid wrong repaints, we undraw the cursor in that case, and everything + * looks nicely ;) + * (and now hope this story above makes sense to you ;)) + */ + if (_cursor.visible && + _cursor.draw_pos.x + _cursor.draw_size.x >= _chatmsg_box.x && + _cursor.draw_pos.x <= _chatmsg_box.x + _chatmsg_box.width && + _cursor.draw_pos.y + _cursor.draw_size.y >= _screen.height - _chatmsg_box.y - _chatmsg_box.height && + _cursor.draw_pos.y <= _screen.height - _chatmsg_box.y) { + UndrawMouseCursor(); + } + if (_chatmessage_visible) { Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter(); - /* Sometimes we also need to hide the cursor - * This is because both textmessage and the cursor take a shot of the - * screen before drawing. - * Now the textmessage takes his shot and paints his data before the cursor - * does, so in the shot of the cursor is the screen-data of the textmessage - * included when the cursor hangs somewhere over the textmessage. To - * avoid wrong repaints, we undraw the cursor in that case, and everything - * looks nicely ;) - * (and now hope this story above makes sense to you ;)) - */ - - if (_cursor.visible) { - if (_cursor.draw_pos.x + _cursor.draw_size.x >= _chatmsg_box.x && - _cursor.draw_pos.x <= _chatmsg_box.x + _chatmsg_box.width && - _cursor.draw_pos.y + _cursor.draw_size.y >= _screen.height - _chatmsg_box.y - _chatmsg_box.height && - _cursor.draw_pos.y <= _screen.height - _chatmsg_box.y) { - UndrawMouseCursor(); - } - } - int x = _chatmsg_box.x; int y = _screen.height - _chatmsg_box.y - _chatmsg_box.height; int width = _chatmsg_box.width; diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index cbaf5926bf..5e2e0647da 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -78,7 +78,7 @@ DEF_UDP_RECEIVE_COMMAND(Server, PACKET_UDP_CLIENT_FIND_SERVER) /* Update some game_info */ ngi.clients_on = _network_game_info.clients_on; - ngi.start_date = _network_game_info.start_date; + ngi.start_date = ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1); ngi.server_lang = _settings_client.network.server_lang; ngi.use_password = !StrEmpty(_settings_client.network.server_password); diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3790d0ad83..ebdc417231 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6254,8 +6254,11 @@ void LoadNewGRF(uint load_index, uint file_index) if (c->status == GCS_DISABLED || c->status == GCS_NOT_FOUND) continue; if (stage > GLS_INIT && HasBit(c->flags, GCF_INIT_ONLY)) continue; - /* @todo usererror() */ - if (!FioCheckFileExists(c->filename)) usererror("NewGRF file is missing '%s'", c->filename); + if (!FioCheckFileExists(c->filename)) { + DEBUG(grf, 0, "NewGRF file is missing '%s'; disabling", c->filename); + c->status = GCS_NOT_FOUND; + continue; + } if (stage == GLS_LABELSCAN) InitNewGRFFile(c, _cur_spriteid); LoadNewGRFFile(c, slot++, stage);