j = win["start"][int(k == 0)] - sep_size
if (j >= 0 and j < screen_size[int(k == 0)]):
start = win["start"][k]
- # start = start if start >= 0 else 0
end = win["start"][k] + win["size"][k]
end = end if end < screen_size[k] else screen_size[k]
if k:
if (right >= 0 and right < screen_size[1]):
healthy_addch(down, right, '+')
+ def draw_window_titles():
+ for win in windows:
+ title = " " + win["title"] + " "
+ if len(title) <= win["size"][1]:
+ y = win["start"][0] - 1
+ start_x = win["start"][1] + int((win["size"][1] \
+ - len(title))/2)
+ for x in range(len(title)):
+ healthy_addch(y, start_x + x, title[x])
+
def draw_window_contents():
def draw_winmap():
"""Draw winmap in area delimited by offset, winmap_size.
stdscr.erase()
draw_window_border_lines()
draw_window_border_corners()
+ draw_window_titles()
draw_window_contents()
stdscr.refresh()
curses.noecho()
curses.curs_set(False)
- # stdscr.keypad(True)
signal.signal(signal.SIGWINCH,
lambda ignore_1, ignore_2: set_window_geometries())
set_window_geometries()
padding_size = winmap_size[1] - len(line)
winmap += line + (" " * padding_size)
winmap_size[0] = winmap_size[0] + 1
- offset = [0, 0]
+ offset = [world_data["look_scroll"], 0]
return offset, winmap_size, winmap
return command_look
+def command_look_scroller(string):
+ def command_look_scroll():
+ win_size = next(win["size"] for win in windows
+ if win["func"] == win_look)
+ if string == "up" and world_data["look_scroll"] > 0:
+ world_data["look_scroll"] -= 1
+ elif string == "down" and world_data["look_scroll"] \
+ < len(world_data["look"]) - win_size[0]:
+ world_data["look_scroll"] += 1
+ return command_look_scroll
+
+
def command_inventory_selector(string):
def command_inventory_select():
- logfile = open("logfile", "a")
- logfile.write(string + "\n")
- logfile.close()
if string == "up" and world_data["inventory_selection"] > 0:
world_data["inventory_selection"] -= 1
elif string == "down" and world_data["inventory_selection"] \
windows = [
- {"config": [1, 33], "func": win_info},
- {"config": [-7, 33], "func": win_log},
- {"config": [4, 16], "func": win_inventory},
- {"config": [4, 16], "func": win_look},
- {"config": [0, -34], "func": win_map}
+ {"config": [1, 33], "func": win_info, "title": "Info"},
+ {"config": [-7, 33], "func": win_log, "title": "Log"},
+ {"config": [4, 16], "func": win_inventory, "title": "Inventory"},
+ {"config": [4, 16], "func": win_look, "title": "Things here"},
+ {"config": [0, -34], "func": win_map, "title": "Map"}
]
io = {
"path_out": "server/in",
"path_worldstate": "server/worldstate"
}
commands = {
+ "A": (command_sender("ai"),),
"D": (command_sender("drop", "inventory_selection"),),
+ "J": (command_look_scroller("down"),),
+ "K": (command_look_scroller("up"),),
"P": (command_sender("pick_up"),),
"Q": (command_quit,),
+ "U": (command_sender("use", "inventory_selection"),),
"W": (command_sender("wait"),),
"c": (command_sender("move south-east"), command_looker("south-east")),
"d": (command_sender("move east"), command_looker("east")),
"lifepoints": -1,
"look": [],
"look_mode": False,
+ "look_scroll": 0,
"log": [],
"map_center": [-1, -1],
"map_size": 0,