From be851871cd43316d12fd9a5f2cc6dec98a1c9ce0 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 30 Jan 2011 01:44:54 +0200 Subject: map generation framework under development... not quite operational at this point. --- src/server.cpp | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index 823a48b90..80aa47671 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -156,20 +156,18 @@ void * EmergeThread::Thread() only_from_disk = true; // First check if the block already exists - if(only_from_disk) - { - block = map.getBlockNoCreate(p); - } + //block = map.getBlockNoCreate(p); if(block == NULL) { + //dstream<<"Calling emergeBlock"<m_env.getMap().getBlockNoCreate(p); - } - catch(InvalidPositionException &e) - { - } + MapBlock *block = server->m_env.getMap().getBlockNoCreateNoEx(p); bool surely_not_found_on_disk = false; + bool block_is_invalid = false; if(block != NULL) { /*if(block->isIncomplete()) @@ -603,6 +601,11 @@ void RemoteClient::GetNextBlocks(Server *server, float dtime, { surely_not_found_on_disk = true; } + + if(block->isValid() == false) + { + block_is_invalid = true; + } } /* @@ -627,8 +630,10 @@ void RemoteClient::GetNextBlocks(Server *server, float dtime, /* Add inexistent block to emerge queue. */ - if(block == NULL || surely_not_found_on_disk) + if(block == NULL || surely_not_found_on_disk || block_is_invalid) { + //dstream<<"asd"< lock (m_num_blocks_in_emerge_queue.getLock());*/ @@ -636,6 +641,8 @@ void RemoteClient::GetNextBlocks(Server *server, float dtime, // Allow only one block in emerge queue if(server->m_emerge_queue.peerItemCount(peer_id) < 1) { + //dstream<<"Adding block to emerge queue"<