X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=server%2Fio.py;h=5e02ed4287d1c22e4724a982f2f72718ef3af839;hb=refs%2Fheads%2F7drl2016;hp=01d04365770ace851b97568ea7f0c22cd19dc451;hpb=0a790da8aa952ed96d46c913aadebf9fc361fc43;p=plomrogue
diff --git a/server/io.py b/server/io.py
index 01d0436..5e02ed4 100644
--- a/server/io.py
+++ b/server/io.py
@@ -170,12 +170,10 @@ def save_world():
for _id in sorted(world_db[category].keys()):
string = string + id_string + " " + str(_id) + "\n"
for key in sorted(world_db[category][_id].keys()):
- if not key in special_keys:
+ if key.isupper() and not key in special_keys:
x = world_db[category][_id][key]
argument = quote_escape(x) if str == type(x) else str(x)
string = string + key + " " + argument + "\n"
- elif special_keys[key]:
- string = string + special_keys[key](_id)
return string
def helper_things():
@@ -187,32 +185,13 @@ def save_world():
t = world_db["Things"][tid]
for key in sorted(t.keys()):
if key not in {"T_CARRIES", "carried", "fovmap", "T_MEMMAP",
- "T_MEMTHING", "T_MEMDEPTHMAP"}:
+ "T_MEMTHING", "T_MEMDEPTHMAP", "pos"}:
argument = t[key]
string += key + " " + (quote_escape(argument) if \
str == type(argument) else str(argument)) + "\n"
string += memthing(tid) + memmap(tid) + memdepthmap(tid)
return string
- # ALTERNATIVE TO helper_things, but not more efficient despite listcomp
- # def helper4():
- # def foo(t, key):
- # argument = t[key]
- # return key + " " + (quote_escape(argument) if \
- # str == type(argument) else str(argument)) + "\n"
- # string = ""
- # memmap = mapsetter("T_MEMMAP")
- # memdepthmap = mapsetter("T_MEMDEPTHMAP")
- # for tid in sorted(world_db["Things"].keys()):
- # string += "T_ID " + str(tid) + "\n"
- # t = world_db["Things"][tid]
- # lines = [foo(t, key) for key in sorted(t.keys())
- # if key not in {"T_CARRIES", "carried", "fovmap",
- # "T_MEMMAP", "T_MEMTHING", "T_MEMDEPTHMAP"}]
- # string += "".join(lines)
- # string += memthing(tid) + memmap(tid) + memdepthmap(tid)
- # return string
-
string = ""
for plugin in world_db["PLUGIN"]:
string = string + "PLUGIN " + plugin + "\n"
@@ -233,6 +212,7 @@ def save_world():
string = string + "T_ID " + str(tid) + "\n"
for carried in sorted(world_db["Things"][tid]["T_CARRIES"]):
string = string + "T_CARRIES " + str(carried) + "\n"
+ string = string + io_db["hook_save"]()
string = string + "SEED_RANDOMNESS " + str(rand.seed) + "\n" + \
"WORLD_ACTIVE " + str(world_db["WORLD_ACTIVE"])
atomic_write(io_db["path_save"], string)
@@ -288,7 +268,7 @@ def obey(command, prefix, replay=False, do_record=False):
if world_db["WORLD_ACTIVE"]:
save_world()
io_db["record_chunk"] = ""
- io_db["save_wait"] = time.time()
+ io_db["save_wait_start"] = time.time()
io_db["worldstate_updateable"] = world_db["WORLD_ACTIVE"]
elif 0 != len(tokens):
print("Invalid command/argument, or bad number of tokens: " + command)
@@ -307,7 +287,7 @@ def obey_lines_in_file(path, name, do_record=False):
def try_worldstate_update():
"""Write worldstate file if io_db["worldstate_updateable"] is set."""
- if io_db["worldstate_updateable"]:
+ if world_db["WORLD_ACTIVE"] and io_db["worldstate_updateable"]:
string = ""
for entry in io_db["worldstate_write_order"]:
if entry[1] == "world_int":