Fix server sending stuff before textures have been sent

This commit is contained in:
Perttu Ahola 2012-01-02 17:44:00 +02:00
parent e82a76e438
commit cd0019acd2
2 changed files with 13 additions and 4 deletions

@ -1011,6 +1011,7 @@ void the_game(
bool invert_mouse = g_settings->getBool("invert_mouse"); bool invert_mouse = g_settings->getBool("invert_mouse");
bool respawn_menu_active = false; bool respawn_menu_active = false;
bool update_wielded_item_trigger = false;
bool show_profiler = false; bool show_profiler = false;
bool force_fog_off = false; bool force_fog_off = false;
@ -1663,6 +1664,8 @@ void the_game(
else if(event.type == CE_TEXTURES_UPDATED) else if(event.type == CE_TEXTURES_UPDATED)
{ {
update_skybox(driver, tsrc, smgr, skybox, brightness); update_skybox(driver, tsrc, smgr, skybox, brightness);
update_wielded_item_trigger = true;
} }
} }
} }
@ -2275,6 +2278,11 @@ void the_game(
//infostream<<"Updating local inventory"<<std::endl; //infostream<<"Updating local inventory"<<std::endl;
client.getLocalInventory(local_inventory); client.getLocalInventory(local_inventory);
update_wielded_item_trigger = true;
}
if(update_wielded_item_trigger)
{
update_wielded_item_trigger = false;
// Update wielded tool // Update wielded tool
InventoryList *mlist = local_inventory.getList("main"); InventoryList *mlist = local_inventory.getList("main");
InventoryItem *item = NULL; InventoryItem *item = NULL;

@ -2140,9 +2140,6 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
m_con.Send(peer_id, 0, data, true); m_con.Send(peer_id, 0, data, true);
} }
// Now the client should know about everything
getClient(peer_id)->definitions_sent = true;
// Send information about server to player in chat // Send information about server to player in chat
SendChatMessage(peer_id, getStatusString()); SendChatMessage(peer_id, getStatusString());
@ -2849,6 +2846,10 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
} }
SendTexturesRequested(peer_id, tosend); SendTexturesRequested(peer_id, tosend);
// Now the client should know about everything
// (definitions and textures)
getClient(peer_id)->definitions_sent = true;
} }
else if(command == TOSERVER_INTERACT) else if(command == TOSERVER_INTERACT)
{ {