diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client.cpp | 6 | ||||
-rw-r--r-- | src/client.h | 2 | ||||
-rw-r--r-- | src/clientserver.h | 2 | ||||
-rw-r--r-- | src/constants.h | 1 | ||||
-rw-r--r-- | src/main.cpp | 107 | ||||
-rw-r--r-- | src/map.cpp | 13 | ||||
-rw-r--r-- | src/map.h | 12 | ||||
-rw-r--r-- | src/mapblock.cpp | 5 | ||||
-rw-r--r-- | src/server.cpp | 2 | ||||
-rw-r--r-- | src/tile.cpp | 8 |
10 files changed, 72 insertions, 86 deletions
diff --git a/src/client.cpp b/src/client.cpp index bfec8b730..ed3a43759 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1401,11 +1401,11 @@ void Client::addNodeFromInventory(v3s16 nodepos, u16 i) } #endif -void Client::clickGround(u8 button, v3s16 nodepos_undersurface, +void Client::pressGround(u8 button, v3s16 nodepos_undersurface, v3s16 nodepos_oversurface, u16 item) { if(connectedAndInitialized() == false){ - dout_client<<DTIME<<"Client::clickGround() " + dout_client<<DTIME<<"Client::pressGround() " "cancelled (not connected)" <<std::endl; return; @@ -1421,7 +1421,7 @@ void Client::clickGround(u8 button, v3s16 nodepos_undersurface, */ u8 datasize = 2 + 1 + 6 + 6 + 2; SharedBuffer<u8> data(datasize); - writeU16(&data[0], TOSERVER_CLICK_GROUND); + writeU16(&data[0], TOSERVER_PRESS_GROUND); writeU8(&data[2], button); writeV3S16(&data[3], nodepos_undersurface); writeV3S16(&data[9], nodepos_oversurface); diff --git a/src/client.h b/src/client.h index 3789f4cbe..95bff0ff5 100644 --- a/src/client.h +++ b/src/client.h @@ -193,7 +193,7 @@ public: /*void removeNode(v3s16 nodepos); void addNodeFromInventory(v3s16 nodepos, u16 i);*/ - void clickGround(u8 button, v3s16 nodepos_undersurface, + void pressGround(u8 button, v3s16 nodepos_undersurface, v3s16 nodepos_oversurface, u16 item); void clickObject(u8 button, v3s16 blockpos, s16 id, u16 item); void release(u8 button); diff --git a/src/clientserver.h b/src/clientserver.h index ce595b6d4..9d3545907 100644 --- a/src/clientserver.h +++ b/src/clientserver.h @@ -159,7 +159,7 @@ enum ToServerCommand [11] u16 item */ - TOSERVER_CLICK_GROUND = 0x28, + TOSERVER_PRESS_GROUND = 0x28, /* length: 17 [0] u16 command diff --git a/src/constants.h b/src/constants.h index bbd9fa823..83a070217 100644 --- a/src/constants.h +++ b/src/constants.h @@ -45,6 +45,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define SERVER_MAP_SAVE_INTERVAL (10)*/ #define FOV_ANGLE (PI/2.5) +//#define FOV_ANGLE (PI/2.25) // The absolute working limit is (2^15 - viewing_range). #define MAP_GENERATION_LIMIT (31000) diff --git a/src/main.cpp b/src/main.cpp index 31901ae70..7814da999 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -280,6 +280,7 @@ JMutex g_range_mutex; // Blocks are viewed in this range from the player
s16 g_viewing_range_nodes = 60;
+//s16 g_viewing_range_nodes = 0;
// This is updated by the client's fetchBlocks routine
//s16 g_actual_viewing_range_nodes = VIEWING_RANGE_NODES_DEFAULT;
@@ -311,7 +312,7 @@ void set_default_settings() g_settings.set("wanted_fps", "30");
g_settings.set("fps_max", "60");
g_settings.set("viewing_range_nodes_max", "300");
- g_settings.set("viewing_range_nodes_min", "50");
+ g_settings.set("viewing_range_nodes_min", "35");
g_settings.set("screenW", "");
g_settings.set("screenH", "");
g_settings.set("host_game", "");
@@ -796,7 +797,8 @@ void updateViewingRange(f32 frametime, Client *client) static bool fraction_is_good = false;
float fraction_good_threshold = 0.1;
- float fraction_bad_threshold = 0.25;
+ //float fraction_bad_threshold = 0.25;
+ float fraction_bad_threshold = 0.1;
float fraction_limit;
// Use high limit if fraction is good AND the fraction would
// lower the range. We want to keep the range fairly high.
@@ -1295,48 +1297,6 @@ int main(int argc, char *argv[]) driver->endScene();
/*
- Initialize material array
- */
-
- /*//video::SMaterial g_materials[MATERIALS_COUNT];
- for(u16 i=0; i<MATERIALS_COUNT; i++)
- {
- g_materials[i].Lighting = false;
- g_materials[i].BackfaceCulling = false;
-
- const char *filename = g_content_filenames[i];
- if(filename != NULL){
- video::ITexture *t = driver->getTexture(filename);
- if(t == NULL){
- std::cout<<DTIME<<"Texture could not be loaded: \""
- <<filename<<"\""<<std::endl;
- return 1;
- }
- g_materials[i].setTexture(0, driver->getTexture(filename));
- }
- //g_materials[i].setFlag(video::EMF_TEXTURE_WRAP, video::ETC_REPEAT);
- g_materials[i].setFlag(video::EMF_BILINEAR_FILTER, false);
- //g_materials[i].setFlag(video::EMF_ANISOTROPIC_FILTER, false);
- //g_materials[i].setFlag(video::EMF_FOG_ENABLE, true);
- }
-
- g_materials[CONTENT_WATER].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
- //g_materials[CONTENT_WATER].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
- g_materials[CONTENT_OCEAN].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
- */
-
- /*g_mesh_materials[0].setTexture(0, driver->getTexture("../data/water.png"));
- g_mesh_materials[1].setTexture(0, driver->getTexture("../data/grass.png"));
- g_mesh_materials[2].setTexture(0, driver->getTexture("../data/stone.png"));
- for(u32 i=0; i<3; i++)
- {
- g_mesh_materials[i].Lighting = false;
- g_mesh_materials[i].BackfaceCulling = false;
- g_mesh_materials[i].setFlag(video::EMF_BILINEAR_FILTER, false);
- g_mesh_materials[i].setFlag(video::EMF_FOG_ENABLE, true);
- }*/
-
- /*
Preload some random textures that are used in threads
*/
@@ -1463,9 +1423,15 @@ int main(int argc, char *argv[]) f32 camera_yaw = 0; // "right/left"
f32 camera_pitch = 0; // "up/down"
+
+ /*
+ Move into game
+ */
gui_loadingtext->remove();
+ pauseMenu.setVisible(true);
+
/*
Add some gui stuff
*/
@@ -1473,12 +1439,12 @@ int main(int argc, char *argv[]) // First line of debug text
gui::IGUIStaticText *guitext = guienv->addStaticText(
L"Minetest-c55",
- core::rect<s32>(5, 5, 5+600, 5+textsize.Y),
+ core::rect<s32>(5, 5, 795, 5+textsize.Y),
false, false);
// Second line of debug text
gui::IGUIStaticText *guitext2 = guienv->addStaticText(
L"",
- core::rect<s32>(5, 5+(textsize.Y+5)*1, 5+600, (5+textsize.Y)*2),
+ core::rect<s32>(5, 5+(textsize.Y+5)*1, 795, (5+textsize.Y)*2),
false, false);
// At the middle of the screen
@@ -1498,6 +1464,7 @@ int main(int argc, char *argv[]) Some statistics are collected in these
*/
u32 drawtime = 0;
+ u32 beginscenetime = 0;
u32 scenetime = 0;
u32 endscenetime = 0;
@@ -2063,14 +2030,14 @@ int main(int argc, char *argv[]) //std::cout<<DTIME<<"Removing node"<<std::endl;
//client.removeNode(nodepos);
std::cout<<DTIME<<"Ground left-clicked"<<std::endl;
- client.clickGround(0, nodepos, neighbourpos, g_selected_item);
+ client.pressGround(0, nodepos, neighbourpos, g_selected_item);
}
if(g_input->getRightClicked())
{
//std::cout<<DTIME<<"Placing node"<<std::endl;
//client.addNodeFromInventory(neighbourpos, g_selected_item);
std::cout<<DTIME<<"Ground right-clicked"<<std::endl;
- client.clickGround(1, nodepos, neighbourpos, g_selected_item);
+ client.pressGround(1, nodepos, neighbourpos, g_selected_item);
}
}
else{
@@ -2089,6 +2056,21 @@ int main(int argc, char *argv[]) camera->setAspectRatio((f32)screensize.X / (f32)screensize.Y);
+ /*f32 range = g_viewing_range_nodes * BS;
+ if(g_viewing_range_all)
+ range = 100000*BS;
+
+ driver->setFog(
+ skycolor,
+ video::EFT_FOG_LINEAR,
+ range*0.6,
+ range,
+ 0.01,
+ false, // pixel fog
+ false // range fog
+ );*/
+
+
/*
Update gui stuff (0ms)
*/
@@ -2096,23 +2078,26 @@ int main(int argc, char *argv[]) //TimeTaker guiupdatetimer("Gui updating", device);
{
- wchar_t temptext[100];
+ wchar_t temptext[150];
static float drawtime_avg = 0;
drawtime_avg = drawtime_avg * 0.98 + (float)drawtime*0.02;
+ static float beginscenetime_avg = 0;
+ beginscenetime_avg = beginscenetime_avg * 0.98 + (float)beginscenetime*0.02;
static float scenetime_avg = 0;
scenetime_avg = scenetime_avg * 0.98 + (float)scenetime*0.02;
static float endscenetime_avg = 0;
endscenetime_avg = endscenetime_avg * 0.98 + (float)endscenetime*0.02;
- swprintf(temptext, 100, L"Minetest-c55 ("
+ swprintf(temptext, 150, L"Minetest-c55 ("
L"F: item=%i"
L", R: range_all=%i"
L")"
- L" drawtime=%.0f, scenetime=%.0f, endscenetime=%.0f",
+ L" drawtime=%.0f, beginscenetime=%.0f, scenetime=%.0f, endscenetime=%.0f",
g_selected_item,
g_viewing_range_all,
drawtime_avg,
+ beginscenetime_avg,
scenetime_avg,
endscenetime_avg
);
@@ -2121,19 +2106,8 @@ int main(int argc, char *argv[]) }
{
- wchar_t temptext[100];
- /*swprintf(temptext, 100,
- L"("
- L"% .3f < btime_jitter < % .3f"
- L", dtime_jitter = % .1f %%"
- //L", ftime_ratio = % .3f"
- L")",
- busytime_jitter1_min_sample,
- busytime_jitter1_max_sample,
- dtime_jitter1_max_fraction * 100.0
- //g_freetime_ratio
- );*/
- swprintf(temptext, 100,
+ wchar_t temptext[150];
+ swprintf(temptext, 150,
L"(% .1f, % .1f, % .1f)"
L" (% .3f < btime_jitter < % .3f"
L", dtime_jitter = % .1f %%)",
@@ -2232,8 +2206,11 @@ int main(int argc, char *argv[]) //video::SColor bgcolor = video::SColor(255,90,140,200);
video::SColor bgcolor = skycolor;
- // 0ms
+ {
+ TimeTaker timer("beginScene", device);
driver->beginScene(true, true, bgcolor);
+ beginscenetime = timer.stop(true);
+ }
//timer3.stop();
diff --git a/src/map.cpp b/src/map.cpp index b1e7da29a..caebb5161 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -2835,6 +2835,17 @@ void ClientMap::deSerializeSector(v2s16 p2d, std::istream &is) sector->deSerialize(is); } +void ClientMap::OnRegisterSceneNode() +{ + if(IsVisible) + { + SceneManager->registerNodeForRendering(this, scene::ESNRP_SOLID); + SceneManager->registerNodeForRendering(this, scene::ESNRP_TRANSPARENT); + } + + ISceneNode::OnRegisterSceneNode(); +} + void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) { //m_dout<<DTIME<<"Rendering map..."<<std::endl; @@ -2971,6 +2982,8 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) { // If block is far away, don't draw it if(d > viewing_range_nodes * BS) + // This is nicer when fog is used + //if((dforward+d)/2 > viewing_range_nodes * BS) continue; } @@ -545,17 +545,7 @@ public: ISceneNode methods */ - virtual void OnRegisterSceneNode() - { - if(IsVisible) - { - //SceneManager->registerNodeForRendering(this, scene::ESNRP_SKY_BOX); - SceneManager->registerNodeForRendering(this, scene::ESNRP_SOLID); - SceneManager->registerNodeForRendering(this, scene::ESNRP_TRANSPARENT); - } - - ISceneNode::OnRegisterSceneNode(); - } + virtual void OnRegisterSceneNode(); virtual void render() { diff --git a/src/mapblock.cpp b/src/mapblock.cpp index e2e36c8e3..86bd9c98c 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -118,9 +118,6 @@ FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p, u8 alpha = 255; - //if(material == CONTENT_WATER || material == CONTENT_OCEAN) - //TODO: Umm? - //if(tile == CONTENT_WATER || tile == CONTENT_OCEAN) if(tile == TILE_WATER) { alpha = 128; @@ -139,7 +136,7 @@ FastFace * MapBlock::makeFastFace(u16 tile, u8 light, v3f p, f->tile = tile; //DEBUG - //f->tile = TILE_GRASS; + //f->tile = TILE_STONE; return f; } diff --git a/src/server.cpp b/src/server.cpp index 487ce2a98..88a8492c1 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1466,7 +1466,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) block->removeObject(id); } } - else if(command == TOSERVER_CLICK_GROUND) + else if(command == TOSERVER_PRESS_GROUND) { if(datasize < 17) return; diff --git a/src/tile.cpp b/src/tile.cpp index 580d2a8a3..32db69672 100644 --- a/src/tile.cpp +++ b/src/tile.cpp @@ -53,9 +53,17 @@ void tile_materials_preload(TextureCache &cache) g_tile_materials[i].Lighting = false; g_tile_materials[i].BackfaceCulling = false; g_tile_materials[i].setFlag(video::EMF_BILINEAR_FILTER, false); + g_tile_materials[i].setFlag(video::EMF_ANTI_ALIASING, video::EAAM_OFF); + //if(i != TILE_WATER) + //g_tile_materials[i].setFlag(video::EMF_FOG_ENABLE, true); + + //g_tile_materials[i].setFlag(video::EMF_TEXTURE_WRAP, video::ETC_REPEAT); + //g_tile_materials[i].setFlag(video::EMF_ANISOTROPIC_FILTER, false); + g_tile_materials[i].setTexture(0, t); } g_tile_materials[TILE_WATER].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA; + //g_tile_materials[TILE_WATER].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR; } |