home · contact · privacy
Server: Optimize thing position calculation.
[plomrogue] / server / actions.py
index f7edb76767d60602a705ac02e57980587d90495d..4dc470b69d068ad5173946ae9ec2d62eb114dc53 100644 (file)
@@ -20,7 +20,7 @@ def actor_move(t):
     plus type id of attacked Thing. On move, return mv_yx_in_dir_legal result.
     """
     from server.build_fov_map import build_fov_map
-    from server.config.misc import decrement_lifepoints_func
+    from server.config.misc import decrement_lifepoints
     from server.utils import mv_yx_in_dir_legal
     from server.config.world_data import directions_db, symbols_passable
     passable = False
@@ -42,7 +42,7 @@ def actor_move(t):
             elif 0 == hit_id:
                 hitter_name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"]
                 log(hitter_name +" WOUNDS you.")
-            decr_test = decrement_lifepoints_func(world_db["Things"][hit_id])
+            decr_test = decrement_lifepoints(world_db["Things"][hit_id])
             if decr_test > 0 and t == world_db["Things"][0]:
                 log(hitted_name + " dies.")
             return decr_test, hitted_tid
@@ -55,9 +55,11 @@ def actor_move(t):
     if passable:
         t["T_POSY"] = move_result[1]
         t["T_POSX"] = move_result[2]
+        t["pos"] = move_result[1] * world_db["MAP_LENGTH"] + move_result[2]
         for id in t["T_CARRIES"]:
             world_db["Things"][id]["T_POSY"] = move_result[1]
             world_db["Things"][id]["T_POSX"] = move_result[2]
+            world_db["Things"][id]["pos"] = t["pos"]
         build_fov_map(t)
         if t == world_db["Things"][0]:
             log("You MOVE " + dir + ".")
@@ -71,8 +73,7 @@ def actor_pickup(t):
     """
     ids = [id for id in world_db["Things"] if world_db["Things"][id] != t
            if not world_db["Things"][id]["carried"]
-           if world_db["Things"][id]["T_POSY"] == t["T_POSY"]
-           if world_db["Things"][id]["T_POSX"] == t["T_POSX"]]
+           if world_db["Things"][id]["pos"] == t["pos"]]
     if len(ids):
         lowest_tid = -1
         for iid in ids: