Updated to-do list and added the give_initial_stuff setting for testing
authorPerttu Ahola <celeron55@gmail.com>
Fri, 22 Apr 2011 07:48:40 +0000 (10:48 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Fri, 22 Apr 2011 07:48:40 +0000 (10:48 +0300)
minetest.conf.example
src/defaultsettings.cpp
src/main.cpp
src/server.cpp

index 02cfb7aada1b296fd68f51830f933447653a4c38..770677da11a9c29668cc0372751e654d895bc24e 100644 (file)
@@ -54,6 +54,8 @@
 
 #enable_damage = false
 
+#give_initial_stuff = false
+
 # Player and object positions are sent at intervals specified by this
 #objectdata_inverval = 0.2
 
index b5d86391414b22cc62fb466ec4871b51f73ca516..d1e9d45cdda7acc706774a66b6815373076a7c68 100644 (file)
@@ -51,11 +51,10 @@ void set_default_settings()
        g_settings.setDefault("fast_move", "false");
 
        // Server stuff
-       g_settings.setDefault("fast_move", "false");
-
        g_settings.setDefault("enable_experimental", "false");
        g_settings.setDefault("creative_mode", "false");
        g_settings.setDefault("enable_damage", "false"); //TODO: Set to true
+       g_settings.setDefault("give_initial_stuff", "false");
 
        g_settings.setDefault("objectdata_interval", "0.2");
        g_settings.setDefault("active_object_range", "2");
index 6293809be0d4b69fbb0e1c9da0412bfb59b266d0..2dfef7d1b8db27096cfee1dfc2ce9f611a84d6e8 100644 (file)
@@ -21,27 +21,17 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 =============================== NOTES ==============================\r
 NOTE: Things starting with TODO are sometimes only suggestions.\r
 \r
-NOTE: VBO cannot be turned on for fast-changing stuff because there\r
-      is an apparanet memory leak in irrlicht when using it (not sure)\r
-         - It is not a memory leak but some kind of a buffer.\r
-\r
 NOTE: iostream.imbue(std::locale("C")) is very slow\r
 NOTE: Global locale is now set at initialization\r
 \r
+NOTE: If VBO (EHM_STATIC) is used, remember to explicitly free the\r
+      hardware buffer (it is not freed automatically)\r
+\r
 Random suggeestions (AKA very old suggestions that haven't been done):\r
 ----------------------------------------------------------------------\r
 \r
 SUGG: Fix address to be ipv6 compatible\r
 \r
-NOTE: When a new sector is generated, it may change the ground level\r
-      of it's and it's neighbors border that two blocks that are\r
-         above and below each other and that are generated before and\r
-         after the sector heightmap generation (order doesn't matter),\r
-         can have a small gap between each other at the border.\r
-SUGG: Use same technique for sector heightmaps as what we're\r
-      using for UnlimitedHeightmap? (getting all neighbors\r
-         when generating)\r
-\r
 SUGG: If player is on ground, mainly fetch ground-level blocks\r
 \r
 SUGG: Expose Connection's seqnums and ACKs to server and client.\r
@@ -67,11 +57,6 @@ SUGG: Make a PACKET_COMBINED which contains many subpackets. Utilize
                  sometimes very big by themselves\r
          - This might not give much network performance gain though.\r
 \r
-SUGG: Split MapBlockObject serialization to to-client and to-disk\r
-      - This will allow saving ages of rats on disk but not sending\r
-           them to clients\r
-         - Not applicable. MapBlockObjects will be removed in the future.\r
-\r
 SUGG: Precalculate lighting translation table at runtime (at startup)\r
       - This is not doable because it is currently hand-made and not\r
            based on some mathematical function.\r
@@ -159,7 +144,7 @@ Graphics:
 ---------\r
 \r
 SUGG: Combine MapBlock's face caches to so big pieces that VBO\r
-      gets used\r
+      can be used\r
       - That is >500 vertices\r
          - This is not easy; all the MapBlocks close to the player would\r
            still need to be drawn separately and combining the blocks\r
@@ -171,14 +156,11 @@ SUGG: Make fetching sector's blocks more efficient when rendering
 \r
 TODO: Flowing water animation\r
 \r
-SUGG: Combine meshes to bigger ones in ClientMap and set them EHM_STATIC\r
-\r
 SUGG: Draw cubes in inventory directly with 3D drawing commands, so that\r
       animating them is easier.\r
 \r
 SUGG: Option for enabling proper alpha channel for textures\r
-\r
-TODO: Make all water not backside culled\r
+TODO: A setting for enabling bilinear filtering for textures\r
 \r
 Configuration:\r
 --------------\r
@@ -224,6 +206,7 @@ TODO: Get rid of MapBlockObjects and use ActiveObjects
 SUGG: MovingObject::move and Player::move are basically the same.\r
       combine them.\r
          - NOTE: Player::move is more up-to-date.\r
+         - NOTE: There is a simple move implementation now in collision.{h,cpp}\r
 \r
 Map:\r
 ----\r
@@ -233,6 +216,7 @@ TODO: Mineral and ground material properties
            some formula, as well as tool strengths\r
 \r
 TODO: Flowing water to actually contain flow direction information\r
+      - There is a space for this - it just has to be implemented.\r
 \r
 SUGG: Erosion simulation at map generation time\r
        - Simulate water flows, which would carve out dirt fast and\r
index ee7a035e6bdae42b0bfa1b7028fafddde5c82025..89359cd5ed2612d62f45687148448746beead6b6 100644 (file)
@@ -4082,13 +4082,33 @@ Player *Server::emergePlayer(const char *name, const char *password,
                {
                        setCreativeInventory(player);
                }
-               else
+               else if(g_settings.getBool("give_initial_stuff"))
                {
-                       /*{
-                               InventoryItem *item = new ToolItem("WPick", 32000);
+                       {
+                               InventoryItem *item = new ToolItem("SteelPick", 0);
                                void* r = player->inventory.addItem("main", item);
                                assert(r == NULL);
-                       }*/
+                       }
+                       {
+                               InventoryItem *item = new MaterialItem(CONTENT_TORCH, 99);
+                               void* r = player->inventory.addItem("main", item);
+                               assert(r == NULL);
+                       }
+                       {
+                               InventoryItem *item = new ToolItem("SteelAxe", 0);
+                               void* r = player->inventory.addItem("main", item);
+                               assert(r == NULL);
+                       }
+                       {
+                               InventoryItem *item = new ToolItem("SteelShovel", 0);
+                               void* r = player->inventory.addItem("main", item);
+                               assert(r == NULL);
+                       }
+                       {
+                               InventoryItem *item = new MaterialItem(CONTENT_COBBLE, 99);
+                               void* r = player->inventory.addItem("main", item);
+                               assert(r == NULL);
+                       }
                        /*{
                                InventoryItem *item = new MaterialItem(CONTENT_MESE, 6);
                                void* r = player->inventory.addItem("main", item);
@@ -4119,13 +4139,7 @@ Player *Server::emergePlayer(const char *name, const char *password,
                                void* r = player->inventory.addItem("main", item);
                                assert(r == NULL);
                        }*/
-                       /*// Give some lights
-                       {
-                               InventoryItem *item = new MaterialItem(CONTENT_TORCH, 999);
-                               bool r = player->inventory.addItem("main", item);
-                               assert(r == true);
-                       }
-                       // and some signs
+                       /*// and some signs
                        for(u16 i=0; i<4; i++)
                        {
                                InventoryItem *item = new MapBlockObjectItem("Sign Example text");