def load_roomlayout(): md = MapDS() # empty landingpad with open(url + "room_layout.dat", "rb") as f: byte = f.read(1) data = [] #count = 0 while byte: data.append(struct.unpack('B', byte)[0]) if len(data) == 4: md.add_room(data[:2], data[2:]) data = [] byte = f.read(1) return md
def __init__(self): threading.Thread.__init__(self) self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.sock.bind(ADDR) self.done = False self.slots = [UserSlot() for _ in xrange(MAX_PLAYERS)] self.input_handlers = {"MSG": self.cmd_msg} print "Generating map...", self.map = MapDS() self.map.expand_room() print " done."
def __init__(self): pygame.init() d = pygame.display.Info() self.desktop_size = (d.current_w, d.current_h) self.size = (600, 450) # self.ui.screen_size() pygame.display.set_caption("Mapper") self.done = False self.clock = pygame.time.Clock() self.keys = set() self.map = MapDS() self.map.expand_room() self.screen = pygame.display.set_mode(self.size) self.screen.fill((0xFF, ) * 3) self.last = None self.clicked = 0 self.client = Client(self) self.ui = DungeonUI(self, None)
def load_room((rx, ry)): room_size = md.get_at((rx, ry)) (x, y), (w, h) = room_size.get_rect() with open(room_url(x, y), "rb") as f: byte = f.read(1) room_type = ALL_ROOM_TYPES[byte] map_data = [] for row in xrange(h): map_data.append([]) for col in xrange(w): byte1 = struct.unpack('B', f.read(1))[0] byte2 = struct.unpack('B', f.read(1))[0] map_data[-1].append((byte1, byte2)) return room_type((map_data, set())) if __name__ == "__main__": print "'l' to test loading a room\n's' to test saving a room" do = raw_input(">") if do == "s": md = MapDS() md.expand_room() save_roomlayout(md) elif do == "l": md = load_roomlayout() else: exit() main = Main() main.map = md main.run()