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."
예제 #3
0
    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()