From: Christian Heller Date: Wed, 11 Mar 2015 14:11:29 +0000 (+0100) Subject: Save world map in savefile, generate only on MAKE_WORLD, drop SEED_MAP. X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdb.prefix%7D%7D/static/blog?a=commitdiff_plain;h=ca05ae11dd05d99843e9e229f5454af47d974397;p=plomrogue Save world map in savefile, generate only on MAKE_WORLD, drop SEED_MAP. --- diff --git a/roguelike-server b/roguelike-server index c64c912..a32a13b 100755 --- a/roguelike-server +++ b/roguelike-server @@ -176,10 +176,11 @@ def save_world(): return '"' + string.replace('"', '\u005C"') + '"' def mapsetter(key): - def helper(id): + def helper(id=None): string = "" - if world_db["Things"][id][key]: - map = world_db["Things"][id][key] + if key == "MAP" or world_db["Things"][id][key]: + map = world_db["MAP"] if key == "MAP" \ + else world_db["Things"][id][key] length = world_db["MAP_LENGTH"] for i in range(length): line = map[i * length:(i * length) + length].decode() @@ -210,10 +211,10 @@ def save_world(): string = "" for key in world_db: - if dict != type(world_db[key]) and key != "MAP" and \ - key != "WORLD_ACTIVE" and key != "SEED_MAP": + if dict != type(world_db[key]) \ + and key != "MAP" and key != "WORLD_ACTIVE": string = string + key + " " + str(world_db[key]) + "\n" - string = string + "SEED_MAP " + str(world_db["SEED_MAP"]) + "\n" + string = string + mapsetter("MAP")() string = string + helper("ThingActions", "TA_ID") string = string + helper("ThingTypes", "TT_ID", {"TT_CORPSE_ID": False}) for id in world_db["ThingTypes"]: @@ -426,6 +427,7 @@ def remake_map(): to land. The cycle ends when a land cell is due to be created at the map's border. Then put some trees on the map (TODO: more precise algorithm desc). """ + def is_neighbor(coordinates, type): y = coordinates[0] x = coordinates[1] @@ -448,8 +450,7 @@ def remake_map(): and type == chr(world_db["MAP"][pos + length - (not ind)])): return True return False - store_seed = rand.seed - rand.seed = world_db["SEED_MAP"] + world_db["MAP"] = bytearray(b'~' * (world_db["MAP_LENGTH"] ** 2)) length = world_db["MAP_LENGTH"] add_half_width = (not (length % 2)) * int(length / 2) @@ -473,7 +474,6 @@ def remake_map(): and ((not single_allowed) or is_neighbor((y, x), "X")): world_db["MAP"][pos] = ord("X") i_trees += 1 - rand.seed = store_seed # This all-too-precise replica of the original C code misses iter_limit(). @@ -1256,19 +1256,13 @@ def command_seedrandomness(seed_string): rand.seed = val -def command_seedmap(seed_string): - """Set world_db["SEED_MAP"] to int(seed_string), then (re-)make map.""" - setter(None, "SEED_MAP", 0, 4294967295)(seed_string) - remake_map() - - def command_makeworld(seed_string): """(Re-)build game world, i.e. map, things, to a new turn 1 from seed. - Seed rand with seed, fill it into world_db["SEED_MAP"]. Do more only with a - "wait" ThingAction and world["PLAYER_TYPE"] matching ThingType of - TT_START_NUMBER > 0. Then, world_db["Things"] emptied, call remake_map() - and set world_db["WORLD_ACTIVE"], world_db["TURN"] to 1. Build new Things + Seed rand with seed. Do more only with a "wait" ThingAction and + world["PLAYER_TYPE"] matching ThingType of TT_START_NUMBER > 0. Then, + world_db["Things"] emptied, call remake_map() and set + world_db["WORLD_ACTIVE"], world_db["TURN"] to 1. Build new Things according to ThingTypes' TT_START_NUMBERS, with Thing of ID 0 to ThingType of ID = world["PLAYER_TYPE"]. Place Things randomly, and actors not on each other. Init player's memory map. Write "NEW_WORLD" line to out file. @@ -1299,7 +1293,6 @@ def command_makeworld(seed_string): if None == val: return rand.seed = val - world_db["SEED_MAP"] = val player_will_be_generated = False playertype = world_db["PLAYER_TYPE"] for ThingType in world_db["ThingTypes"]: @@ -1308,16 +1301,14 @@ def command_makeworld(seed_string): player_will_be_generated = True break if not player_will_be_generated: - print("Ignoring beyond SEED_MAP: " + - "No player type with start number >0 defined.") + print("Ignoring: No player type with start number >0 defined.") return wait_action = False for ThingAction in world_db["ThingActions"]: if "wait" == world_db["ThingActions"][ThingAction]["TA_NAME"]: wait_action = True if not wait_action: - print("Ignoring beyond SEED_MAP: " + - "No thing action with name 'wait' defined.") + print("Ignoring: No thing action with name 'wait' defined.") return world_db["Things"] = {} remake_map() @@ -1474,12 +1465,12 @@ def command_tmemthing(str_t, str_y, str_x): def setter_map(maptype): - """Set selected Thing's map of maptype's int(str_int)-th line to mapline. + """Set (world or Thing's) map of maptype's int(str_int)-th line to mapline. - If Thing has no map of maptype yet, initialize it with ' ' bytes first. + If no map of maptype exists yet, initialize it with ' ' bytes first. """ - @test_Thing_id - def helper(str_int, mapline): + + def valid_map_line(str_int, mapline): val = integer_test(str_int, 0, 255) if None != val: if val >= world_db["MAP_LENGTH"]: @@ -1487,15 +1478,35 @@ def setter_map(maptype): elif len(mapline) != world_db["MAP_LENGTH"]: print("Map line length is unequal map width.") else: - length = world_db["MAP_LENGTH"] - map = None - if not world_db["Things"][command_tid.id][maptype]: - map = bytearray(b' ' * (length ** 2)) - else: - map = world_db["Things"][command_tid.id][maptype] - map[val * length:(val * length) + length] = mapline.encode() + return val + return None + + def nonThingMap_helper(str_int, mapline): + val = valid_map_line(str_int, mapline) + if None != val: + length = world_db["MAP_LENGTH"] + if not "MAP" in world_db: + map = bytearray(b' ' * (length ** 2)) + else: + map = world_db["MAP"] + map[val * length:(val * length) + length] = mapline.encode() + if not "MAP" in world_db: + world_db["MAP"] = map + + @test_Thing_id + def ThingMap_helper(str_int, mapline): + val = valid_map_line(str_int, mapline) + if None != val: + length = world_db["MAP_LENGTH"] + if not world_db["Things"][command_tid.id][maptype]: + map = bytearray(b' ' * (length ** 2)) + else: + map = world_db["Things"][command_tid.id][maptype] + map[val * length:(val * length) + length] = mapline.encode() + if not world_db["Things"][command_tid.id][maptype]: world_db["Things"][command_tid.id][maptype] = map - return helper + + return nonThingMap_helper if maptype == "MAP" else ThingMap_helper def setter_tpos(axis): @@ -1624,7 +1635,6 @@ commands_db = { "PING": (0, True, command_ping), "THINGS_HERE": (2, True, command_thingshere), "MAKE_WORLD": (1, False, command_makeworld), - "SEED_MAP": (1, False, command_seedmap), "SEED_RANDOMNESS": (1, False, command_seedrandomness), "TURN": (1, False, setter(None, "TURN", 0, 65535)), "GOD_MOOD": (1, False, setter(None, "GOD_MOOD", -32768, 32767)), # # @@ -1632,6 +1642,7 @@ commands_db = { "PLAYER_TYPE": (1, False, setter(None, "PLAYER_TYPE", 0)), "MAP_LENGTH": (1, False, command_maplength), "WORLD_ACTIVE": (1, False, command_worldactive), + "MAP": (2, False, setter_map("MAP")), "TA_ID": (1, False, command_taid), "TA_EFFORT": (1, False, setter("ThingAction", "TA_EFFORT", 0, 255)), "TA_NAME": (1, False, command_taname), @@ -1674,7 +1685,6 @@ commands_db = { world_db = { "TURN": 0, "MAP_LENGTH": 64, - "SEED_MAP": 0, "PLAYER_TYPE": 0, "WORLD_ACTIVE": 0, "GOD_MOOD": 0, # # diff --git a/testing/ref_end b/testing/ref_end index 16b8184..a3880f7 100644 --- a/testing/ref_end +++ b/testing/ref_end @@ -1,9 +1,72 @@ -MAP_LENGTH 64 +TURN 881 PLAYER_TYPE 0 GOD_FAVOR -1 +MAP_LENGTH 64 GOD_MOOD -192 -TURN 881 -SEED_MAP 1426075416 +MAP 0 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 1 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 2 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 3 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 4 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 5 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~.~~~~~~.~~~~~~~~~~~~~~~~~~~~~" +MAP 6 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~.....~~.~~...~~~~~~~~~~~~~~~~~~" +MAP 7 "~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~.~~..XX.~..~.~.~~~~~~~~~~~~~~~~~~" +MAP 8 "~~~~~~~~~~~~~~~~~~~~~~~~~~...~.~....XXX...X....~.~~~~~~~~~~~~~~~" +MAP 9 "~~~~~~~~~~~~~~~~~~~~........~~.....~.~..........~~~~~~~~~~~~~~~~" +MAP 10 "~~~~~~~~~~~~~~~~~.........~..~..............~...~~.~~~~~~~~~~~~~" +MAP 11 "~~~~~~~~~~~~~~~~~....X~.....~...~........~.....~~.~~~~~~~~~~~~~~" +MAP 12 "~~~~~~~~~~~~~.~.~~..~XXXXX............~............~~~~~~~~~~~~~" +MAP 13 "~~~~~~~~~~~~~..~...~..XXXX................XXX.....~~~~~~~~~~~~~~" +MAP 14 "~~~~~~~~~~~..~~...~~..X.XXX......................~~~~~~~~~~~~~~~" +MAP 15 "~~~~~~~~~....~................................~~.~~~~~~~~~~~~~~~" +MAP 16 "~~~~~~~~~~.~............~......................~.X~~~~~~~~~~~~~~" +MAP 17 "~~~~~~~~~.............~.....~.........~........~X..~~~~~~~~~~~~~" +MAP 18 "~~~~~~~~~....~~...........................~~.....X.~~~~~~~~~~~~~" +MAP 19 "~~~~~~~.~~.~...................XX..............~..~~~~~~~~~~~~~~" +MAP 20 "~~~~~~~~.......~X...............XX...XX.XX........~~~~~~~~~~~~~~" +MAP 21 "~~~~~~~....X~..XXX..............XXX..X.X...........~~~~~~~~~~~~~" +MAP 22 "~~~~~~~....X..~X...X............XXXX.XXX.........~~~~~~~~~~~~~~~" +MAP 23 "~~~~~~~..~X.X..X...X...........X.X.XX.X.........X.X~~~~~~~~~~~~~" +MAP 24 "~~~~~~~..~.XX..X..XXXX...........XXXXXXXX.......XXXX~~~~~~~~~~~~" +MAP 25 "~~~~~~~~~~X..X.X.XXXX................X.X......~XX.X~~.~~~~~~~~~~" +MAP 26 "~~~~~~~~~..XXXXX...XXX....................~.......XX...~~~~~~~~~" +MAP 27 "~~~~~~~~~~XXXXX...XXX.................XX...........X~.~~~~~~~~~~" +MAP 28 "~~~~~~~~~~~XX.~....X...................XXXX....~.~..~.~~~~~~~~~~" +MAP 29 "~~~~~~~~~~~.~...........X.X...........XX...........~~~~~~~~~~~~~" +MAP 30 "~~~~~~~~~~...............XXX..X..........XX........X~~~~~~~~~~~~" +MAP 31 "~~~~~~~~~.~.............X.....XX...................XX~~~~~~~~~~~" +MAP 32 "~~~~~~~~~~..........XX.........XX.......X............X~~~~~~~~~~" +MAP 33 "~~~~~~~..~~.......XX..........XXXX...XXXX............~.~~~~~~~~~" +MAP 34 "~~~~~~~.~...~..~..X............XXX....XXX..............~~~~~~~~~" +MAP 35 "~~~~~~~~........XX..........XXXX.......X...............~~~~~~~~~" +MAP 36 "~~~~~~~~~........X...........X.XX....................~~~~~~~~~~~" +MAP 37 "~~~~~~.~......................XX.........X.....~...~..~~~~~~~~~~" +MAP 38 "~~~~~~~.~~XX~.......~..................X.X........~...~~~~~~~~~~" +MAP 39 "~~~~~~....X...~.................XXX....XX.X....~...~~.~~~~~~~~~~" +MAP 40 "~~~~~~~.....~..............X......XX......XX.......~~~~~~~~~~~~~" +MAP 41 "~~~~~~~...~..............XX............XX.X....~..~~~~~~~~~~~~~~" +MAP 42 "~~~~~~~..~.X..............XX.............X.X...~.~~~~~~~~~~~~~~~" +MAP 43 "~~~~~.....X................XX..............X.~..~~~~~~~~~~~~~~~~" +MAP 44 "~~~~~..~...................X.XX..............~~~.~~~~~~~~~~~~~~~" +MAP 45 "~~~~~~~..................X.................~~~~~~~~~~~~~~~~~~~~~" +MAP 46 "~~~~~~~.~.................X.X..............~.~~~~~~~~~~~~~~~~~~~" +MAP 47 "~~~~~~~~........~..~X.XX.XXX......XX....X.X..~~~~~~~~~~~~~~~~~~~" +MAP 48 "~~~~~~~~.....~~......XX.~X....X.......~..XX~...~~~~~~~~~~~~~~~~~" +MAP 49 "~~~~~~~~~X~~~~..........~....XX.....X.~XX....~X.~~~~~~~~~~~~~~~~" +MAP 50 "~~~~~~~~~X.~~~.~..~...~.....~X~......X~~XX..~~~~.~~~~~~~~~~~~~~~" +MAP 51 "~~~~~~~~.~~~~~~.~.~~~........XX..~..~XX~X~..~~~~~~~~~~~~~~~~~~~~" +MAP 52 "~~~~~~~~~~~~~~~.~~~~~.........X....XXXX~~.~~.~~~~~~~~~~~~~~~~~~~" +MAP 53 "~~~~~~~~~~~~~~~~~~~~...~.~.~........XX.~~....~~~~~~~~~~~~~~~~~~~" +MAP 54 "~~~~~~~~~~~~~~~~~~~~~~..~..~~~.~~.....X~~~.~~~~~~~~~~~~~~~~~~~~~" +MAP 55 "~~~~~~~~~~~~~~~~~~~~~...........~....~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 56 "~~~~~~~~~~~~~~~~~~~~~~~.......~.~XX....~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 57 "~~~~~~~~~~~~~~~~~~~~~~.....~..........~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 58 "~~~~~~~~~~~~~~~~~~~~~~.~...~...~~~..~.~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 59 "~~~~~~~~~~~~~~~~~~~~~~.~X.....~~~....~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 60 "~~~~~~~~~~~~~~~~~~~~~~~~~~..~~~~~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 61 "~~~~~~~~~~~~~~~~~~~~~~~~~.~~~~~~~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 62 "~~~~~~~~~~~~~~~~~~~~~~~~~..~~~~~~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 63 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" TA_ID 1 TA_EFFORT 1 TA_NAME "wait" diff --git a/testing/start b/testing/start index b7cd66c..16766dc 100644 --- a/testing/start +++ b/testing/start @@ -3,7 +3,70 @@ PLAYER_TYPE 0 GOD_FAVOR -1 GOD_MOOD -220 TURN 491 -SEED_MAP 1426075416 +MAP 0 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 1 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 2 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 3 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 4 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 5 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~.~~~~~~.~~~~~~~~~~~~~~~~~~~~~" +MAP 6 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~.....~~.~~...~~~~~~~~~~~~~~~~~~" +MAP 7 "~~~~~~~~~~~~~~~~~~~~~~~~~~~..~~.~~..XX.~..~.~.~~~~~~~~~~~~~~~~~~" +MAP 8 "~~~~~~~~~~~~~~~~~~~~~~~~~~...~.~....XXX...X....~.~~~~~~~~~~~~~~~" +MAP 9 "~~~~~~~~~~~~~~~~~~~~........~~.....~.~..........~~~~~~~~~~~~~~~~" +MAP 10 "~~~~~~~~~~~~~~~~~.........~..~..............~...~~.~~~~~~~~~~~~~" +MAP 11 "~~~~~~~~~~~~~~~~~....X~.....~...~........~.....~~.~~~~~~~~~~~~~~" +MAP 12 "~~~~~~~~~~~~~.~.~~..~XXXXX............~............~~~~~~~~~~~~~" +MAP 13 "~~~~~~~~~~~~~..~...~..XXXX................XXX.....~~~~~~~~~~~~~~" +MAP 14 "~~~~~~~~~~~..~~...~~..X.XXX......................~~~~~~~~~~~~~~~" +MAP 15 "~~~~~~~~~....~................................~~.~~~~~~~~~~~~~~~" +MAP 16 "~~~~~~~~~~.~............~......................~.X~~~~~~~~~~~~~~" +MAP 17 "~~~~~~~~~.............~.....~.........~........~X..~~~~~~~~~~~~~" +MAP 18 "~~~~~~~~~....~~...........................~~.....X.~~~~~~~~~~~~~" +MAP 19 "~~~~~~~.~~.~...................XX..............~..~~~~~~~~~~~~~~" +MAP 20 "~~~~~~~~.......~X...............XX...XX.XX........~~~~~~~~~~~~~~" +MAP 21 "~~~~~~~....X~..XXX..............XXX..X.X...........~~~~~~~~~~~~~" +MAP 22 "~~~~~~~....X..~X...X............XXXX.XXX.........~~~~~~~~~~~~~~~" +MAP 23 "~~~~~~~..~X.X..X...X...........X.X.XX.X.........X.X~~~~~~~~~~~~~" +MAP 24 "~~~~~~~..~.XX..X..XXXX...........XXXXXXXX.......XXXX~~~~~~~~~~~~" +MAP 25 "~~~~~~~~~~X..X.X.XXXX................X.X......~XX.X~~.~~~~~~~~~~" +MAP 26 "~~~~~~~~~..XXXXX...XXX....................~.......XX...~~~~~~~~~" +MAP 27 "~~~~~~~~~~XXXXX...XXX.................XX...........X~.~~~~~~~~~~" +MAP 28 "~~~~~~~~~~~XX.~....X...................XXXX....~.~..~.~~~~~~~~~~" +MAP 29 "~~~~~~~~~~~.~...........X.X...........XX...........~~~~~~~~~~~~~" +MAP 30 "~~~~~~~~~~...............XXX..X..........XX........X~~~~~~~~~~~~" +MAP 31 "~~~~~~~~~.~.............X.....XX...................XX~~~~~~~~~~~" +MAP 32 "~~~~~~~~~~..........XX.........XX.......X............X~~~~~~~~~~" +MAP 33 "~~~~~~~..~~.......XX..........XXXX...XXXX............~.~~~~~~~~~" +MAP 34 "~~~~~~~.~...~..~..X............XXX....XXX..............~~~~~~~~~" +MAP 35 "~~~~~~~~........XX..........XXXX.......X...............~~~~~~~~~" +MAP 36 "~~~~~~~~~........X...........X.XX....................~~~~~~~~~~~" +MAP 37 "~~~~~~.~......................XX.........X.....~...~..~~~~~~~~~~" +MAP 38 "~~~~~~~.~~XX~.......~..................X.X........~...~~~~~~~~~~" +MAP 39 "~~~~~~....X...~.................XXX....XX.X....~...~~.~~~~~~~~~~" +MAP 40 "~~~~~~~.....~..............X......XX......XX.......~~~~~~~~~~~~~" +MAP 41 "~~~~~~~...~..............XX............XX.X....~..~~~~~~~~~~~~~~" +MAP 42 "~~~~~~~..~.X..............XX.............X.X...~.~~~~~~~~~~~~~~~" +MAP 43 "~~~~~.....X................XX..............X.~..~~~~~~~~~~~~~~~~" +MAP 44 "~~~~~..~...................X.XX..............~~~.~~~~~~~~~~~~~~~" +MAP 45 "~~~~~~~..................X.................~~~~~~~~~~~~~~~~~~~~~" +MAP 46 "~~~~~~~.~.................X.X..............~.~~~~~~~~~~~~~~~~~~~" +MAP 47 "~~~~~~~~........~..~X.XX.XXX......XX....X.X..~~~~~~~~~~~~~~~~~~~" +MAP 48 "~~~~~~~~.....~~......XX.~X....X.......~..XX~...~~~~~~~~~~~~~~~~~" +MAP 49 "~~~~~~~~~X~~~~..........~....XX.....X.~XX....~X.~~~~~~~~~~~~~~~~" +MAP 50 "~~~~~~~~~X.~~~.~..~...~.....~X~......X~~XX..~~~~.~~~~~~~~~~~~~~~" +MAP 51 "~~~~~~~~.~~~~~~.~.~~~........XX..~..~XX~X~..~~~~~~~~~~~~~~~~~~~~" +MAP 52 "~~~~~~~~~~~~~~~.~~~~~.........X....XXXX~~.~~.~~~~~~~~~~~~~~~~~~~" +MAP 53 "~~~~~~~~~~~~~~~~~~~~...~.~.~........XX.~~....~~~~~~~~~~~~~~~~~~~" +MAP 54 "~~~~~~~~~~~~~~~~~~~~~~..~..~~~.~~.....X~~~.~~~~~~~~~~~~~~~~~~~~~" +MAP 55 "~~~~~~~~~~~~~~~~~~~~~...........~....~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 56 "~~~~~~~~~~~~~~~~~~~~~~~.......~.~XX....~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 57 "~~~~~~~~~~~~~~~~~~~~~~.....~..........~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 58 "~~~~~~~~~~~~~~~~~~~~~~.~...~...~~~..~.~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 59 "~~~~~~~~~~~~~~~~~~~~~~.~X.....~~~....~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 60 "~~~~~~~~~~~~~~~~~~~~~~~~~~..~~~~~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 61 "~~~~~~~~~~~~~~~~~~~~~~~~~.~~~~~~~~..~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 62 "~~~~~~~~~~~~~~~~~~~~~~~~~..~~~~~~~~.~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +MAP 63 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" TA_ID 1 TA_EFFORT 1 TA_NAME "wait" @@ -6898,4 +6961,4 @@ T_POSX 24 T_PROGRESS 0 T_SATIATION 0 SEED_RANDOMNESS 1367185317 -WORLD_ACTIVE 1 \ No newline at end of file +WORLD_ACTIVE 1