home · contact · privacy
Server/py: Undummify command_worldactive() (90%), command_maplength().
[plomrogue] / plomrogue-server.py
index cd54c86965c46d9cdd87530f2948d15c8df61e16..b96794611a06dac718763e61b983400a199bcb97 100755 (executable)
@@ -164,7 +164,7 @@ def save_world():
 
     string = ""
     for key in world_db:
-        if dict != type(world_db[key]):
+        if dict != type(world_db[key]) and key != "MAP":
             string = string + key + " " + str(world_db[key]) + "\n"
     string = string + helper("ThingActions", "TA_ID")
     string = string + helper("ThingTypes", "TT_ID", {"TT_CORPSE_ID": False})
@@ -482,19 +482,24 @@ def command_makeworld(seed_string):
         }
     # generate fov map?
     # TODO: Generate things (player first, with updated memory)
-    atomic_write(io_db["path_out"], "NEW_WORLD\n", do_append=True)
+    strong_write(io_db["file_out"], "NEW_WORLD\n")
 
 
 def command_maplength(maplength_string):
-    # DUMMY.
+    """Redefine map length. Invalidate map, therefore lose all things on it."""
     set_world_inactive()
-    # TODO: remove map (is this necessary? no memory management trouble …)
     world_db["Things"] = {}
     setter(None, "MAP_LENGTH", 1, 256)(maplength_string)
 
 
 def command_worldactive(worldactive_string):
-    # DUMMY.
+    """Toggle world_db["WORLD_ACTIVE"] if possible.
+
+    An active world can always be set inactive. An inactive world can only be
+    set active with a "wait" ThingAction, and a player Thing (of ID 0). On
+    activation, rebuild all Things' FOVs and map memories.
+    """
+    # In original version, map existence was also tested (unnecessarily?).
     val = integer_test(worldactive_string, 0, 1)
     if val:
         if 0 != world_db["WORLD_ACTIVE"]:
@@ -513,8 +518,7 @@ def command_worldactive(worldactive_string):
                 if 0 == Thing:
                     player_exists = True
                     break
-            map_exists = "MAP" in world_db
-            if wait_exists and player_exists and map_exists:
+            if wait_exists and player_exists:
                 # TODO: rebuild all things' FOVs, map memories
                 world_db["WORLD_ACTIVE"] = 1
 
@@ -800,7 +804,7 @@ commands_db = {
 
 """World state database. With sane default values."""
 world_db = {
-    "TURN": 1,
+    "TURN": 0,
     "SEED_MAP": 0,
     "SEED_RANDOMNESS": 0,
     "PLAYER_TYPE": 0,