]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/main.cpp
Slightly improved version of mystrtok_r
[dragonfireclient.git] / src / main.cpp
index 10c83824a4e4f2a83eb9d66f8846bd12090ddd42..6f4095148569525943577df13c89374603923b4e 100644 (file)
@@ -3,16 +3,16 @@ Minetest-c55
 Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU Lesser General Public License for more details.
 
-You should have received a copy of the GNU General Public License along
+You should have received a copy of the GNU Lesser General Public License along
 with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
@@ -47,7 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <iostream>
 #include <fstream>
 #include <locale.h>
-#include "common_irrlicht.h"
+#include "irrlichttypes_extrabloated.h"
 #include "debug.h"
 #include "test.h"
 #include "server.h"
@@ -68,9 +68,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "profiler.h"
 #include "log.h"
 #include "mods.h"
-#include "utility_string.h"
+#include "util/string.h"
 #include "subgame.h"
 #include "quicktune.h"
+#include "serverlist.h"
 
 /*
        Settings.
@@ -877,7 +878,8 @@ int main(int argc, char *argv[])
        init_gettext((porting::path_share+DIR_DELIM+".."+DIR_DELIM+"locale").c_str());
        
        // Initialize debug streams
-#ifdef RUN_IN_PLACE
+#define DEBUGFILE "debug.txt"
+#if RUN_IN_PLACE
        std::string logfile = DEBUGFILE;
 #else
        std::string logfile = porting::path_user+DIR_DELIM+DEBUGFILE;
@@ -961,7 +963,7 @@ int main(int argc, char *argv[])
                // Legacy configuration file location
                filenames.push_back(porting::path_user +
                                DIR_DELIM + ".." + DIR_DELIM + "minetest.conf");
-#ifdef RUN_IN_PLACE
+#if RUN_IN_PLACE
                // Try also from a lower level (to aid having the same configuration
                // for many RUN_IN_PLACE installs)
                filenames.push_back(porting::path_user +
@@ -1291,9 +1293,6 @@ int main(int argc, char *argv[])
 
        video::IVideoDriver* driver = device->getVideoDriver();
 
-       // Disable mipmaps (because some of them look ugly)
-       driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false);
-
        /*
                This changes the minimum allowed number of vertices in a VBO.
                Default is 500.
@@ -1351,7 +1350,13 @@ int main(int argc, char *argv[])
        skin->setColor(gui::EGDC_3D_SHADOW, video::SColor(255,0,0,0));
        skin->setColor(gui::EGDC_HIGH_LIGHT, video::SColor(255,70,100,50));
        skin->setColor(gui::EGDC_HIGH_LIGHT_TEXT, video::SColor(255,255,255,255));
-       
+
+#if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2
+       // Irrlicht 1.8 input colours
+       skin->setColor(gui::EGDC_EDITABLE, video::SColor(255,128,128,128));
+       skin->setColor(gui::EGDC_FOCUSED_EDITABLE, video::SColor(255,96,134,49));
+#endif
+
        /*
                GUI stuff
        */
@@ -1438,6 +1443,14 @@ int main(int argc, char *argv[])
                                menudata.smooth_lighting = g_settings->getBool("smooth_lighting");
                                menudata.clouds_3d = g_settings->getBool("enable_3d_clouds");
                                menudata.opaque_water = g_settings->getBool("opaque_water");
+                               menudata.mip_map = g_settings->getBool("mip_map");
+                               menudata.anisotropic_filter = g_settings->getBool("anisotropic_filter");
+                               menudata.bilinear_filter = g_settings->getBool("bilinear_filter");
+                               menudata.trilinear_filter = g_settings->getBool("trilinear_filter");
+                               menudata.enable_shaders = g_settings->getS32("enable_shaders");
+                               menudata.preload_item_visuals = g_settings->getBool("preload_item_visuals");
+                               menudata.enable_particles = g_settings->getBool("enable_particles");
+                               driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, menudata.mip_map);
                                menudata.creative_mode = g_settings->getBool("creative_mode");
                                menudata.enable_damage = g_settings->getBool("enable_damage");
                                // Default to selecting nothing
@@ -1551,6 +1564,16 @@ int main(int argc, char *argv[])
                                g_settings->set("smooth_lighting", itos(menudata.smooth_lighting));
                                g_settings->set("enable_3d_clouds", itos(menudata.clouds_3d));
                                g_settings->set("opaque_water", itos(menudata.opaque_water));
+
+                               g_settings->set("mip_map", itos(menudata.mip_map));
+                               g_settings->set("anisotropic_filter", itos(menudata.anisotropic_filter));
+                               g_settings->set("bilinear_filter", itos(menudata.bilinear_filter));
+                               g_settings->set("trilinear_filter", itos(menudata.trilinear_filter));
+
+                               g_settings->setS32("enable_shaders", menudata.enable_shaders);
+                               g_settings->set("preload_item_visuals", itos(menudata.preload_item_visuals));
+                               g_settings->set("enable_particles", itos(menudata.enable_particles));
+
                                g_settings->set("creative_mode", itos(menudata.creative_mode));
                                g_settings->set("enable_damage", itos(menudata.enable_damage));
                                g_settings->set("name", playername);
@@ -1559,7 +1582,7 @@ int main(int argc, char *argv[])
                                if(menudata.selected_world != -1)
                                        g_settings->set("selected_world_path",
                                                        worldspecs[menudata.selected_world].path);
-                               
+
                                // Break out of menu-game loop to shut down cleanly
                                if(device->run() == false || kill == true)
                                        break;
@@ -1576,6 +1599,15 @@ int main(int argc, char *argv[])
                                        current_address = "";
                                        current_port = 30011;
                                }
+                               else if (address != "")
+                               {
+                                       ServerListSpec server;
+                                       server.name = menudata.servername;
+                                       server.address = wide_to_narrow(menudata.address);
+                                       server.port = wide_to_narrow(menudata.port);
+                                       server.description = menudata.serverdescription;
+                                       ServerList::insert(server);
+                               }
                                
                                // Set world path to selected one
                                if(menudata.selected_world != -1){