# load the npc's and place them in the default positions npcs = [ p for p in props if p[1].get('group', None) == 'npc' ] for (gid, prop) in npcs: pos = data.getTileLocation(gid) if len(pos) > 1: msg = "control gid: {} is used in more than one locaton" raise Exception, msg.format(gid) x, y, z = toWorld(data, pos.pop()) thing = area._parent.getChildByGUID(int(prop['guid'])) debug("adding thing {} at {}".format(thing, (x, y, z))) area.add(thing, (x, y, z)) area.setOrientation(thing, "south") # load the items and place them where they should go # items can have duplicate entries items = [ p for p in props if p[1].get('group', None) == 'item' ] done = [] for (gid, prop) in items: if gid in done: continue done.append(gid) locations = data.getTileLocation(gid) body = area._parent.getChildByGUID(int(prop['guid'])) copy = False