aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-04-24 15:37:41 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-04-24 15:37:41 +0300
commitc9967d6d07a4863f2278376b34bb68d86392e902 (patch)
tree58bc3c884d310dd045b170284eaa49bdf05d2a0b /src
parentba88685fab339acd471ade642d24d9ca7e794f04 (diff)
downloadminetest-c9967d6d07a4863f2278376b34bb68d86392e902.tar.gz
minetest-c9967d6d07a4863f2278376b34bb68d86392e902.tar.bz2
minetest-c9967d6d07a4863f2278376b34bb68d86392e902.zip
updated menu a bit, and some other small fixes
Diffstat (limited to 'src')
-rw-r--r--src/clientobject.cpp2
-rw-r--r--src/guiMainMenu.cpp43
-rw-r--r--src/guiMainMenu.h11
-rw-r--r--src/main.cpp7
-rw-r--r--src/map.cpp3
-rw-r--r--src/mapnode.cpp3
-rw-r--r--src/serverobject.cpp2
7 files changed, 68 insertions, 3 deletions
diff --git a/src/clientobject.cpp b/src/clientobject.cpp
index 78258add8..f7e6e051d 100644
--- a/src/clientobject.cpp
+++ b/src/clientobject.cpp
@@ -683,7 +683,7 @@ void Oerkki1CAO::step(float dtime, ClientEnvironment *env)
v2f playerpos_2d(playerpos.X,playerpos.Z);
v2f objectpos_2d(m_position.X,m_position.Z);
- if(fabs(objectpos_2d.Y - playerpos_2d.Y) < 2.0*BS &&
+ if(fabs(m_position.Y - playerpos.Y) < 3.0*BS &&
objectpos_2d.getDistanceFrom(playerpos_2d) < 1.0*BS)
{
if(m_attack_interval.step(dtime, 0.5))
diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index 04341fe22..ac02f79e3 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -65,7 +65,10 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
std::wstring text_port;
bool creative_mode;
bool enable_damage;
-
+ bool fancy_trees;
+ bool smooth_lighting;
+
+ // Client options
{
gui::IGUIElement *e = getElementFromId(258);
if(e != NULL)
@@ -88,6 +91,22 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
text_port = m_data->port;
}
{
+ gui::IGUIElement *e = getElementFromId(263);
+ if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+ fancy_trees = ((gui::IGUICheckBox*)e)->isChecked();
+ else
+ fancy_trees = m_data->fancy_trees;
+ }
+ {
+ gui::IGUIElement *e = getElementFromId(262);
+ if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+ smooth_lighting = ((gui::IGUICheckBox*)e)->isChecked();
+ else
+ smooth_lighting = m_data->smooth_lighting;
+ }
+
+ // Server options
+ {
gui::IGUIElement *e = getElementFromId(259);
if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
creative_mode = ((gui::IGUICheckBox*)e)->isChecked();
@@ -187,6 +206,18 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
const wchar_t *text = L"Leave address blank to start a local server.";
Environment->addStaticText(text, rect, false, true, this, -1);
}
+ {
+ core::rect<s32> rect(0, 0, 250, 30);
+ rect += topleft_client + v2s32(40, 150);
+ Environment->addCheckBox(fancy_trees, rect, this, 263,
+ L"Fancy trees");
+ }
+ {
+ core::rect<s32> rect(0, 0, 250, 30);
+ rect += topleft_client + v2s32(40, 150+30);
+ Environment->addCheckBox(smooth_lighting, rect, this, 262,
+ L"Smooth Lighting");
+ }
// Start game button
{
core::rect<s32> rect(0, 0, 180, 30);
@@ -285,6 +316,16 @@ void GUIMainMenu::acceptInput()
if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
m_data->enable_damage = ((gui::IGUICheckBox*)e)->isChecked();
}
+ {
+ gui::IGUIElement *e = getElementFromId(262);
+ if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+ m_data->smooth_lighting = ((gui::IGUICheckBox*)e)->isChecked();
+ }
+ {
+ gui::IGUIElement *e = getElementFromId(263);
+ if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX)
+ m_data->fancy_trees = ((gui::IGUICheckBox*)e)->isChecked();
+ }
m_accepted = true;
}
diff --git a/src/guiMainMenu.h b/src/guiMainMenu.h
index d003599c4..4999d68ba 100644
--- a/src/guiMainMenu.h
+++ b/src/guiMainMenu.h
@@ -30,14 +30,25 @@ with this program; if not, write to the Free Software Foundation, Inc.,
struct MainMenuData
{
MainMenuData():
+ // Client opts
+ fancy_trees(false),
+ smooth_lighting(false),
+ // Server opts
creative_mode(false),
enable_damage(false),
+ // Actions
delete_map(false)
{}
+
// These are in the native format of the gui elements
+
+ // Client options
std::wstring address;
std::wstring port;
std::wstring name;
+ bool fancy_trees;
+ bool smooth_lighting;
+ // Server options
bool creative_mode;
bool enable_damage;
// If map deletion is requested, this is set to true
diff --git a/src/main.cpp b/src/main.cpp
index 429b769f7..3bc4de777 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1352,6 +1352,8 @@ int main(int argc, char *argv[])
menudata.address = narrow_to_wide(address);
menudata.name = narrow_to_wide(playername);
menudata.port = narrow_to_wide(itos(port));
+ menudata.fancy_trees = g_settings.getBool("new_style_leaves");
+ menudata.smooth_lighting = g_settings.getBool("smooth_lighting");
menudata.creative_mode = g_settings.getBool("creative_mode");
menudata.enable_damage = g_settings.getBool("enable_damage");
@@ -1413,6 +1415,8 @@ int main(int argc, char *argv[])
int newport = stoi(wide_to_narrow(menudata.port));
if(newport != 0)
port = newport;
+ g_settings.set("new_style_leaves", itos(menudata.fancy_trees));
+ g_settings.set("smooth_lighting", itos(menudata.smooth_lighting));
g_settings.set("creative_mode", itos(menudata.creative_mode));
g_settings.set("enable_damage", itos(menudata.enable_damage));
@@ -1439,6 +1443,9 @@ int main(int argc, char *argv[])
if(device->run() == false)
break;
+ // Initialize mapnode again to enable changed graphics settings
+ init_mapnode();
+
/*
Run game
*/
diff --git a/src/map.cpp b/src/map.cpp
index 7e4fc4f47..9610b0b53 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -1794,6 +1794,7 @@ ServerMap::ServerMap(std::string savedir):
Map(dout_server),
m_seed(0)
{
+ dstream<<__FUNCTION_NAME<<std::endl;
//m_chunksize = 64;
//m_chunksize = 16; // Too slow
@@ -1891,6 +1892,8 @@ ServerMap::ServerMap(std::string savedir):
ServerMap::~ServerMap()
{
+ dstream<<__FUNCTION_NAME<<std::endl;
+
try
{
if(m_map_saving_enabled)
diff --git a/src/mapnode.cpp b/src/mapnode.cpp
index 81408205f..2d4d75b37 100644
--- a/src/mapnode.cpp
+++ b/src/mapnode.cpp
@@ -128,6 +128,9 @@ void init_mapnode()
for(u16 i=0; i<256; i++)
{
ContentFeatures *f = &g_content_features[i];
+ // Re-initialize
+ *f = ContentFeatures();
+
for(u16 j=0; j<6; j++)
f->tiles[j].material_type = initial_material_type;
}
diff --git a/src/serverobject.cpp b/src/serverobject.cpp
index 30234f7e9..aa36dad92 100644
--- a/src/serverobject.cpp
+++ b/src/serverobject.cpp
@@ -507,7 +507,7 @@ void Oerkki1SAO::step(float dtime, Queue<ActiveObjectMessage> &messages,
*/
m_age += dtime;
- if(m_age > 60)
+ if(m_age > 120)
{
// Die
m_removed = true;