raise SystemExit("No library " + libpath +
", run ./compile-server.sh first?")
libpr = ctypes.cdll.LoadLibrary(libpath)
- libpr.seed_rrand.argtypes = [ctypes.c_uint8, ctypes.c_uint32]
libpr.seed_rrand.restype = ctypes.c_uint32
- libpr.rrand.argtypes = []
- libpr.rrand.restype = ctypes.c_uint16
- libpr.set_maplength.argtypes = [ctypes.c_uint16]
- libpr.mv_yx_in_dir_legal_wrap.argtypes = [ctypes.c_char, ctypes.c_uint8,
- ctypes.c_uint8]
- libpr.mv_yx_in_dir_legal_wrap.restype = ctypes.c_uint8
- libpr.result_y.restype = ctypes.c_uint8
- libpr.result_x.restype = ctypes.c_uint8
- libpr.set_maplength(world_db["MAP_LENGTH"])
- libpr.build_fov_map.argtypes = [ctypes.c_uint8, ctypes.c_uint8,
- ctypes.c_char_p, ctypes.c_char_p]
- libpr.build_fov_map.restype = ctypes.c_uint8
- libpr.init_score_map.restype = ctypes.c_uint8
- libpr.set_map_score.argtypes = [ctypes.c_uint16, ctypes.c_uint16]
- libpr.set_map_score.restype = ctypes.c_uint8
- libpr.get_map_score.argtypes = [ctypes.c_uint16]
- libpr.get_map_score.restype = ctypes.c_int32
- libpr.get_neighbor_score.argtypes = [ctypes.c_uint8]
- libpr.get_neighbor_score.restype = ctypes.c_uint16
- libpr.ready_neighbor_scores.argtpes = [ctypes.c_uint16]
- libpr.ready_neighbor_scores.restype = ctypes.c_uint8
- libpr.dijkstra_map.restype = ctypes.c_uint8
return libpr
test = libpr.init_score_map()
if test:
raise RuntimeError("Malloc error in init_score_map().")
+ ord_dot = ord(".")
+ ord_v = ord("v")
+ ord_blank = ord(" ")
for i in [i for i in range(world_db["MAP_LENGTH"] ** 2)
- if '.' == chr(t["T_MEMMAP"][i])]:
+ if ord_dot == t["T_MEMMAP"][i]]:
set_map_score(i, 65535 - 1)
if "a" == filter:
for id in world_db["Things"]:
+ Thing["T_POSX"]
if t != Thing and Thing["T_LIFEPOINTS"] and \
t["T_TYPE"] != Thing["T_TYPE"] and \
- 'v' == chr(t["fovmap"][pos]) and \
+ ord_v == t["fovmap"][pos] and \
t["T_LIFEPOINTS"] > \
world_db["ThingTypes"][Thing["T_TYPE"]]["TT_LIFEPOINTS"]:
set_map_score(pos, 0)
pos = Thing["T_POSY"] * world_db["MAP_LENGTH"] \
+ Thing["T_POSX"]
if t["T_TYPE"] != Thing["T_TYPE"] and \
- 'v' == chr(t["fovmap"][pos]) and \
+ ord_v == t["fovmap"][pos] and \
t["T_LIFEPOINTS"] <= \
world_db["ThingTypes"][Thing["T_TYPE"]]["TT_LIFEPOINTS"]:
set_map_score(pos, 0)
elif "c" == filter:
for mt in [mt for mt in t["T_MEMTHING"]
- if ' ' != chr(t["T_MEMMAP"][mt[1]
- * world_db["MAP_LENGTH"]
- + mt[2]])
+ if ord_blank != t["T_MEMMAP"][mt[1]
+ * world_db["MAP_LENGTH"]
+ + mt[2]]
if world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]]:
set_map_score(mt[1] * world_db["MAP_LENGTH"] + mt[2], 0)
elif "s" == filter: