random code cleaning, shouldn't affect anything

master
Perttu Ahola 2011-02-18 22:25:25 +02:00
parent 74f4a0ece8
commit 4c2b9ed516
4 changed files with 56 additions and 91 deletions

View File

@ -19,7 +19,28 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "light.h" #include "light.h"
// This is reasonable with classic lighting with a light source
/*u8 light_decode_table[LIGHT_MAX+1] =
{
2,
3,
4,
6,
9,
13,
18,
25,
32,
35,
45,
57,
69,
79,
255
};*/
// This is good
// a_n+1 = a_n * 0.786 // a_n+1 = a_n * 0.786
// Length of LIGHT_MAX+1 means LIGHT_MAX is the last value. // Length of LIGHT_MAX+1 means LIGHT_MAX is the last value.
// LIGHT_SUN is read as LIGHT_MAX from here. // LIGHT_SUN is read as LIGHT_MAX from here.

View File

@ -277,15 +277,13 @@ Doing now (most important at the top):
placement and transfer placement and transfer
* only_from_disk might not work anymore - check and fix it. * only_from_disk might not work anymore - check and fix it.
* Check the fixmes in the list above * Check the fixmes in the list above
* When sending blocks to the client, the server takes way too much
CPU time (20-30% for single player), find out what it is doing.
- Make a simple profiler
=== Making it more portable === Making it more portable
* Some MSVC: std::sto* are defined without a namespace and collide * Some MSVC: std::sto* are defined without a namespace and collide
with the ones in utility.h with the ones in utility.h
=== Features === Features
* Add mud underground
* Make an "environment metafile" to store at least time of day * Make an "environment metafile" to store at least time of day
* Move digging property stuff from material.{h,cpp} to mapnode.cpp... * Move digging property stuff from material.{h,cpp} to mapnode.cpp...
- Or maybe move content_features to material.{h,cpp}? - Or maybe move content_features to material.{h,cpp}?
@ -2114,6 +2112,23 @@ int main(int argc, char *argv[])
// Just so big a value that everything rendered is visible // Just so big a value that everything rendered is visible
camera->setFarValue(100000*BS); camera->setFarValue(100000*BS);
/*
Lighting test code. Doesn't quite work this way.
The CPU-computed lighting is good.
*/
/*
smgr->addLightSceneNode(NULL,
v3f(0, BS*1000000, 0),
video::SColorf(0.3,0.3,0.3),
BS*10000000);
smgr->setAmbientLight(video::SColorf(0.0, 0.0, 0.0));
scene::ILightSceneNode *light = smgr->addLightSceneNode(camera,
v3f(0, 0, 0), video::SColorf(0.5,0.5,0.5), BS*4);
*/
f32 camera_yaw = 0; // "right/left" f32 camera_yaw = 0; // "right/left"
f32 camera_pitch = 0; // "up/down" f32 camera_pitch = 0; // "up/down"

View File

@ -255,32 +255,18 @@ void MapBlock::makeFastFace(TileSpec tile, u8 light, v3f p,
video::SColor c = video::SColor(alpha,li,li,li); video::SColor c = video::SColor(alpha,li,li,li);
face.vertices[0] = video::S3DVertex(vertex_pos[0], zerovector, c,
core::vector2d<f32>(abs_scale,1));
face.vertices[1] = video::S3DVertex(vertex_pos[1], zerovector, c,
core::vector2d<f32>(0,1));
face.vertices[2] = video::S3DVertex(vertex_pos[2], zerovector, c,
core::vector2d<f32>(0,0));
face.vertices[3] = video::S3DVertex(vertex_pos[3], zerovector, c,
core::vector2d<f32>(abs_scale,0));
/*float x0 = (float)tile.tx/256.0;
float y0 = (float)tile.ty/256.0;
float w = ((float)tile.tw + 1.0)/256.0;
float h = ((float)tile.th + 1.0)/256.0;*/
float x0 = tile.texture.pos.X; float x0 = tile.texture.pos.X;
float y0 = tile.texture.pos.Y; float y0 = tile.texture.pos.Y;
float w = tile.texture.size.X; float w = tile.texture.size.X;
float h = tile.texture.size.Y; float h = tile.texture.size.Y;
face.vertices[0] = video::S3DVertex(vertex_pos[0], zerovector, c, face.vertices[0] = video::S3DVertex(vertex_pos[0], v3f(0,1,0), c,
core::vector2d<f32>(x0+w*abs_scale, y0+h)); core::vector2d<f32>(x0+w*abs_scale, y0+h));
face.vertices[1] = video::S3DVertex(vertex_pos[1], zerovector, c, face.vertices[1] = video::S3DVertex(vertex_pos[1], v3f(0,1,0), c,
core::vector2d<f32>(x0, y0+h)); core::vector2d<f32>(x0, y0+h));
face.vertices[2] = video::S3DVertex(vertex_pos[2], zerovector, c, face.vertices[2] = video::S3DVertex(vertex_pos[2], v3f(0,1,0), c,
core::vector2d<f32>(x0, y0)); core::vector2d<f32>(x0, y0));
face.vertices[3] = video::S3DVertex(vertex_pos[3], zerovector, c, face.vertices[3] = video::S3DVertex(vertex_pos[3], v3f(0,1,0), c,
core::vector2d<f32>(x0+w*abs_scale, y0)); core::vector2d<f32>(x0+w*abs_scale, y0));
face.tile = tile; face.tile = tile;
@ -736,12 +722,11 @@ void MapBlock::updateMesh(u32 daynight_ratio)
//TimeTaker timer2("updateMesh() mesh building"); //TimeTaker timer2("updateMesh() mesh building");
video::SMaterial material; video::SMaterial material;
material.Lighting = false; material.setFlag(video::EMF_LIGHTING, false);
//material.BackfaceCulling = false;
material.setFlag(video::EMF_BILINEAR_FILTER, false); material.setFlag(video::EMF_BILINEAR_FILTER, false);
material.setFlag(video::EMF_FOG_ENABLE, true);
//material.setFlag(video::EMF_ANTI_ALIASING, video::EAAM_OFF); //material.setFlag(video::EMF_ANTI_ALIASING, video::EAAM_OFF);
//material.setFlag(video::EMF_ANTI_ALIASING, video::EAAM_SIMPLE); //material.setFlag(video::EMF_ANTI_ALIASING, video::EAAM_SIMPLE);
material.setFlag(video::EMF_FOG_ENABLE, true);
for(u32 i=0; i<fastfaces_new.size(); i++) for(u32 i=0; i<fastfaces_new.size(); i++)
{ {

View File

@ -2097,7 +2097,6 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
if(content_features(n.d).wall_mounted) if(content_features(n.d).wall_mounted)
n.dir = packDir(p_under - p_over); n.dir = packDir(p_under - p_over);
#if 1
// Create packet // Create packet
u32 replysize = 8 + MapNode::serializedLength(peer_ser_ver); u32 replysize = 8 + MapNode::serializedLength(peer_ser_ver);
SharedBuffer<u8> reply(replysize); SharedBuffer<u8> reply(replysize);
@ -2131,76 +2130,21 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
*/ */
core::map<v3s16, MapBlock*> modified_blocks; core::map<v3s16, MapBlock*> modified_blocks;
m_env.getMap().addNodeAndUpdate(p_over, n, modified_blocks); m_env.getMap().addNodeAndUpdate(p_over, n, modified_blocks);
#endif
#if 0
/* /*
Handle inventory Calculate special events
*/ */
InventoryList *ilist = player->inventory.getList("main");
if(g_settings.getBool("creative_mode") == false && ilist) /*if(n.d == CONTENT_MESE)
{ {
// Remove from inventory and send inventory u32 count = 0;
if(mitem->getCount() == 1) for(s16 z=-1; z<=1; z++)
ilist->deleteItem(item_i); for(s16 y=-1; y<=1; y++)
else for(s16 x=-1; x<=1; x++)
mitem->remove(1);
// Send inventory
SendInventory(peer_id);
}
/*
Add node.
This takes some time so it is done after the quick stuff
*/
core::map<v3s16, MapBlock*> modified_blocks;
m_env.getMap().addNodeAndUpdate(p_over, n, modified_blocks);
/*
Set the modified blocks unsent for all the clients
*/
//JMutexAutoLock lock2(m_con_mutex);
for(core::map<u16, RemoteClient*>::Iterator
i = m_clients.getIterator();
i.atEnd() == false; i++)
{
RemoteClient *client = i.getNode()->getValue();
if(modified_blocks.size() > 0)
{ {
// Remove block from sent history
client->SetBlocksNotSent(modified_blocks);
} }
} }*/
#endif
#if 0
/*
Update water
*/
// Update water pressure around modification
// This also adds it to m_flow_active_nodes if appropriate
MapVoxelManipulator v(&m_env.getMap());
v.m_disable_water_climb =
g_settings.getBool("disable_water_climb");
VoxelArea area(p_over-v3s16(1,1,1), p_over+v3s16(1,1,1));
try
{
v.updateAreaWaterPressure(area, m_flow_active_nodes);
}
catch(ProcessingLimitException &e)
{
dstream<<"Processing limit reached (1)"<<std::endl;
}
v.blitBack(modified_blocks);
#endif
} }
/* /*
Handle other items Handle other items