home · contact · privacy
Server: Performance optimization in init_score_map().
authorChristian Heller <c.heller@plomlompom.de>
Tue, 1 Mar 2016 01:46:36 +0000 (02:46 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 1 Mar 2016 01:46:36 +0000 (02:46 +0100)
server/ai.py

index 0d1effce2262a6f0473d270e4a37ad3128cc19de..070ecad2258b1e1b3646367e933a38b256af6ebc 100644 (file)
@@ -161,9 +161,16 @@ def get_dir_to_target(t, filter):
              if get_map_score(world_db["Things"][id]["T_POSY"] * maplength
                               + world_db["Things"][id]["T_POSX"])]
         elif "a" != filter:
-            [set_map_score_at_thingpos(id, 65535)
-             for id in world_db["Things"]
-             if animate_in_fov(world_db["Things"][id], maplength)]
+            #[set_map_score_at_thingpos(tid, 65535)
+            # for tid in world_db["Things"]
+            # if animate_in_fov(world_db["Things"][tid], maplength)]
+            # ABOVE INLINED FOR PERFORMANCE REASONS BY BLOCK BELOW
+            for Thing in world_db["Things"].values():
+                if Thing["T_LIFEPOINTS"] and not Thing["carried"] and not \
+                        Thing == t:
+                    pos = Thing["T_POSY"] * maplength + Thing["T_POSX"]
+                    if 118 == t["fovmap"][pos]:
+                        set_map_score(pos, 65535)
 
     def rand_target_dir(neighbors, cmp, dirs):
         candidates = []