From 9c3e3c184a6bbbed592c3b1c8ad3ba8c16cc8fae Mon Sep 17 00:00:00 2001 From: bgiraudr Date: Tue, 22 Mar 2022 23:16:37 +0100 Subject: [PATCH] Draw dialog fix (lephe) --- assets-cg/converters.py | 37 ++++++++++---------- assets-cg/maps/1.tmx | 46 ++++++++++++------------- assets-cg/maps/testCarte.tmx | 16 ++++----- assets-cg/maps/tileset.tsx | 12 ++++++- assets-cg/tileset.png | Bin 54195 -> 55989 bytes include/map.h | 1 + include/talkable.h | 3 +- src/engine.c | 15 +++++++++ src/talkable.c | 63 +++++++++++++++++------------------ 9 files changed, 108 insertions(+), 85 deletions(-) diff --git a/assets-cg/converters.py b/assets-cg/converters.py index 981e941..61a394d 100644 --- a/assets-cg/converters.py +++ b/assets-cg/converters.py @@ -24,6 +24,7 @@ def convert_map(input, output, params, target): TILE_TALKABLE = 4 TILE_TELEPORTER = 5 TILE_GRASS = 6 + TILE_ICE = 7 DIALOG_LAYOUT = "dialog" TELEPORTER_LAYOUT = "teleporter" @@ -46,30 +47,23 @@ def convert_map(input, output, params, target): tileset.close() tile_value = {} + tile_type = { + "air":TILE_AIR, + "solid":TILE_SOLID, + "door_in":TILE_DOOR_IN, + "door_out":TILE_DOOR_OUT, + "talkable":TILE_TALKABLE, + "bridge":TILE_BRIDGE, + "teleporter":TILE_TELEPORTER, + "grass":TILE_GRASS, + "ice":TILE_ICE + } #create a dictionnary {tile id:type} for i in data_tileset["tiles"]: id = i["id"]+1 type = i["type"] - if type == "air": - value = TILE_AIR - elif type == "solid": - value = TILE_SOLID - elif type == "door_in": - value = TILE_DOOR_IN - elif type == "door_out": - value = TILE_DOOR_OUT - elif type == "talkable": - value = TILE_TALKABLE - elif type == "bridge": - value = TILE_BRIDGE - elif type == "teleporter": - value = TILE_TELEPORTER - elif type == "grass": - value = TILE_GRASS - else: - value = TILE_AIR - + value = tile_type.get(type) if type in tile_type else TILE_AIR tile_value[id] = value #Extract from the json the width, height @@ -98,7 +92,7 @@ def convert_map(input, output, params, target): nbZone = len(layer["objects"]) zone = parseZone(layer) else: - print("UNKNOWN LAYOUT FOUND : " + layer.get("name")) + print("UNKNOWN LAYER FOUND : " + layer.get("name")) structMap += fxconv.u32(w) + fxconv.u32(h) + fxconv.u32(nbTilelayer) + fxconv.u32(nbDialog) + fxconv.u32(nbTelep) + fxconv.u32(nbZone) structMap += fxconv.ref(f"img_{nameTilesetFree}") @@ -116,6 +110,9 @@ def convert_map(input, output, params, target): for x in range(w*h): for i in range(nbTilelayer): value = tile_value.get(data["layers"][i]["data"][x]) + if value == TILE_SOLID: + maxValue = TILE_SOLID + break if value == None: value = TILE_AIR if value > maxValue: maxValue = value if value == TILE_BRIDGE: diff --git a/assets-cg/maps/1.tmx b/assets-cg/maps/1.tmx index 28531e2..cfe258f 100644 --- a/assets-cg/maps/1.tmx +++ b/assets-cg/maps/1.tmx @@ -1,5 +1,5 @@ - + @@ -63,17 +63,17 @@ 263,301,273,300,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,263,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 263,301,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,270,244,241,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 270,273,300,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,270,270,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,271,35,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,110,1,298,272,270,270,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,271,35,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,82,83,1,139,1,1,269,301,263,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -270,244,242,33,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,299,299,272,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,270,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,59,60,60,60,61,1,59,61,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -270,270,301,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,117,91,89,120,63,60,62,90,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,301,273,300,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,109,109,91,120,89,121,90,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,263,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,117,118,118,118,119,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,263,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,240,243,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -263,301,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,263,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -301,301,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,269,263,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -270,263,244,242,40,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,269,270,301,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,271,35,1,1,1,1,1,259,260,260,260,260,260,260,260,260,260,261,1,1,1,1,1,110,1,298,272,270,270,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,271,35,1,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,82,83,1,139,1,1,269,301,263,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +270,244,242,33,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,1,1,1,1,298,299,299,272,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,270,244,242,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,59,60,60,60,61,1,59,61,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +270,270,301,271,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,117,91,89,120,63,60,62,90,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,301,273,300,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,109,109,91,120,89,121,90,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,263,271,1,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,1,1,117,118,118,118,119,269,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,263,271,1,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,1,1,1,1,1,1,240,243,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +263,301,271,1,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,1,1,1,1,1,1,298,272,263,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +301,301,271,1,1,1,1,1,288,289,289,289,289,289,289,289,289,289,290,1,1,1,1,1,1,1,1,1,1,1,269,263,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +270,263,244,242,40,1,1,1,317,318,318,318,318,318,318,318,318,318,319,1,1,1,1,1,1,1,1,1,1,1,269,270,301,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 301,301,270,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,263,270,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 301,301,270,263,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,298,272,270,244,242,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 301,270,266,292,300,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,269,270,301,271,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -167,17 +167,17 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,252,253,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,80,80,80,81,0,0,0,281,282,283,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,339,340,341,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,80,80,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,248,249,249,249,249,249,249,249,249,249,251,0,0,0,0,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,0,0,230,0,0,0,0,0,0,280,0,0,0,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,0,0,0,0,0,0,230,0,0,280,0,0,111,0,232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,230,0,0,0,0,0,0,0,230,280,0,0,111,0,0,0,0,0,0,0,252,253,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,0,0,0,0,0,0,0,0,0,0,0,0,140,80,80,80,81,0,0,0,281,282,283,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,111,0,0,0,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,277,0,230,0,0,0,0,0,0,230,277,0,0,0,0,0,0,111,0,0,0,339,340,341,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,108,0,0,277,0,0,230,0,0,0,0,0,0,277,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,108,0,0,277,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,108,0,0,277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,108,0,0,306,249,249,249,249,249,249,249,249,278,0,0,0,0,0,0,0,140,80,80,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,137,138,138,138,138,138,138,138,138,138,138,138,138,138,138,84,0,0,0,0,0,0,0,140,80,80,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/assets-cg/maps/testCarte.tmx b/assets-cg/maps/testCarte.tmx index 501b052..41c61e9 100644 --- a/assets-cg/maps/testCarte.tmx +++ b/assets-cg/maps/testCarte.tmx @@ -1,5 +1,5 @@ - + @@ -73,12 +73,12 @@ 320,321,322,0,0,0,0,0,0,0,0,0,0,306,249,249,108,0,140,80,81,0,0,0,0,0,0,0,0,0,0,0,108,0,378,379,380,0,0,0,0,0,0,0,49,50,0,0,0,0,22,23,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,303,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,137,138,84,0,110,249,249,249,249,249,249,249,250,249,251,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,52,0,0,0,0,0,0,0,0,320,321,322,0,82,139,0,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 378,379,380,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,138,139,0,0,0,0,0,0,0,0,0,280,0,137,138,138,138,138,138,84,0,0,0,174,174,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,349,350,351,0,111,0,0,0,0,0,0,0,352,353,354,0,0,0,0,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,280,334,335,336,337,0,0,0,137,83,138,138,203,203,138,138,138,84,0,0,0,0,0,0,0,0,0,0,0,0,378,379,380,82,139,0,0,0,0,0,0,0,381,382,383,0,0,255,256,257,258,0,0,0,352,353,354,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,280,363,364,365,366,0,0,0,0,0,0,0,232,232,0,0,0,137,138,84,0,0,0,0,0,0,0,0,0,0,0,0,82,139,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,381,382,383,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,392,393,394,395,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,84,0,0,0,0,0,0,0,0,0,82,138,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,378,379,380,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,0,0,0,421,422,423,424,0,0,12,13,0,0,0,0,0,294,0,0,0,0,0,137,138,138,138,84,0,0,0,82,138,139,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19, -0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,294,0,0,0,0,294,0,0,0,0,0,450,451,452,453,0,0,41,42,0,0,0,0,0,294,294,0,0,0,0,29,0,0,0,137,138,138,138,139,0,0,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,48, -0,0,0,0,0,0,0,0,0,294,294,56,0,0,0,0,0,0,294,294,294,0,0,0,0,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,0,0,280,334,335,336,337,0,0,0,137,83,138,138,203,203,138,138,138,84,0,0,0,0,0,0,0,0,0,0,0,0,378,379,380,82,139,0,0,0,0,0,0,0,381,382,383,0,0,255,256,257,258,0,0,0,352,353,354,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,0,0,280,363,364,365,366,0,0,0,0,0,0,0,232,232,0,0,0,137,138,84,0,0,0,0,0,0,0,0,0,0,0,0,82,139,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,381,382,383,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,306,392,393,394,395,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,84,0,0,0,0,0,0,0,0,0,82,138,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,378,379,380,0,0,0,0,0,0,0,0,294,0,0,289,0,0,0,0,0,0,0,421,422,423,424,0,0,12,13,0,0,0,0,0,294,0,0,0,0,0,137,138,138,138,84,0,0,0,82,138,139,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19, +0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,294,0,0,289,0,294,0,0,0,0,0,450,451,452,453,0,0,41,42,0,0,0,0,0,294,294,0,0,0,0,29,0,0,0,137,138,138,138,139,0,0,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,48, +0,0,0,0,0,0,0,0,0,294,294,56,0,0,0,0,0,0,294,294,294,0,0,289,0,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,252,253,253,0,28,0,253,253,254,0,0,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,284,285,286,287,0,0,0,0,0,0,0,0,0,12,13,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,320,321,322,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,0,239,0,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,314,315,316,0,0,0,326,327,328,329,0,0,41,42,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,349,350,351,56,294,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,342,343,344,345,0,0,0,355,356,357,358,0,0,0,0,0,0,0,0,0,0,0,0, @@ -92,7 +92,7 @@ - + diff --git a/assets-cg/maps/tileset.tsx b/assets-cg/maps/tileset.tsx index 87fcc1e..04c1192 100644 --- a/assets-cg/maps/tileset.tsx +++ b/assets-cg/maps/tileset.tsx @@ -1,5 +1,5 @@ - + @@ -57,6 +57,7 @@ + @@ -84,6 +85,9 @@ + + + @@ -114,6 +118,9 @@ + + + @@ -135,6 +142,9 @@ + + + diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png index 5bbf628ad29ac335738b6112e4f0a706189519d0..e17d4884e904eefdb916fd276aa7eff28c052d5f 100644 GIT binary patch delta 35168 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%0Agr1A4WPp z335MzRm2~r!3^1qov;^*G0tP8U(h?9_cJ4HQ!|{Mi1zTk{8<7v%?sE3F3YSTg4QHd zRgKs`upM~?>08!qH+?T$Qw^+FT)dX%{^`(97${Ta(zUdVy0w4jV`kW&hjQcj-~N(T^iNM?`Ut~ zhuKoO7a>uiH@Hb*E(H6qVuFCyhdd3KM1m-`n(VPW!(=0sou{uR-2j@&1&@0Cmw}f3 za}wBw$fv*1oHR!+8Q3SkI(ZA(d`f*4TRHe~(2zvosi?OhC`zk`3Xs9pmSOD}VOX=D zUL+^&Iv$9DfjL$S9`QmpH{uhaz?^|m(Aj~mZDr`K5Pf>5T|>>2A=yZX{;37uLOt&1 z9L8rU{_hm*ZuM#rz%Uz!+a(NNaHI!y;NK@%FjkRa_MBhK95D0HaTAllRvD#V4Q>or zEX}|64qw!ocpxYU(=+sM1wS3Cc@Qx(5a?LWY2`PU#fT{04Sq(eV~)r8=Ts709Cqgx>55mGkA>$LTCBF5o$a@a;uRFLjNK zBy*jh5ipQNeYd=QB;u{(Vg#EMM=Kn@6K2gO-fUhpnkg}6W_C~Wlt0ZTF;qWk^Mg&; z2rpA7>6psi#oUm|wgmq=vje$Pc2j@iU%griP9S6F@K9fwBPBG0V@gIgMO$PE8CakzThz zT=_kvGKu7>w4H2$&RfA;Zv&Kn>DS`Xe4iiE=)6rMkEQFYe8v0(Y&DT?>>Kexuwkoy z)Zs}XEZ`!ggUXi)lS-OZF4t%08+BDaiZ7ce=-@j74(jnNmJwel4ZcL+_=(9_$~tDPFKdYE?^VXocHDbD^zx znV;}+==DM#s?`)S6WPeS*w6oDBX%Ae`f=KKl~}Pr9KT0-gs}Qs=%3(y9aakgBxQZ#+>Z~T9EC<-$haBcoja2_Z{y*ADZvFD#fznUu&OEK2C}dfy(E=#*U}K z<2R~0c$*YW{aQ1WKd=d|ngcN5#0Z)N6d`jlSGx(588XkwASb>&UPmh%^I%YA%c+h| zkNs8$Y|MEsv&wGE`GoK6PgumC?6JsfL*+&syZ2uy8b?B7)%F%G)yo#%hRa#n=a;tC zJJ2}~WhpkS5ccPxbUOQE6iXW>S|7SpQDxPztUu$qnqP#FCU19(eFUP;p9(ztv5O-x zNp3~zh?TekwniqZF}yLKaLQ2j^&RaP+^46pOs2zWl|BYRxj*gX!VcM5Jb$peGYkBu z0`lXfv$<{dI$*=5(PGCEnWBx+jeGS(6W&7x81CgJixBbmO=ne0p^6SDxRmjfU~p{8%ZKP=1gq)~ULLuT~2?y3B?#KLtUDSSLro}bUvY;4SN zt3zh^7??KM?!a0lNeoQCWThZgbHph6eG%cdboxJsATEaQNC^;TlX<*0=d~H%nTcE3 z+xp2$w)O7Ck~9ykk&^WUgH3W}I*z1iqp88f(C2>51~iRoVYLZ6BvUD`$`Gvg2v7JW z$*v@%;sZ-dOwyq+lR7VleZSC=Tl

v@*by%{cCsx^d!q!-MLddIV)wXX!$po-8>0 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 P_~(a+jBvS-p5Oli(qH(J diff --git a/include/map.h b/include/map.h index ba8b361..361c541 100644 --- a/include/map.h +++ b/include/map.h @@ -40,6 +40,7 @@ enum map_state { TILE_TALKABLE, TILE_TELEPORTER, TILE_GRASS, + TILE_ICE, }; /*check if a tile is walkable*/ diff --git a/include/talkable.h b/include/talkable.h index d5b8af9..88ccd6a 100644 --- a/include/talkable.h +++ b/include/talkable.h @@ -14,4 +14,5 @@ struct Talkable { void draw_dialog(struct Talkable *character); /*find the talkable tile using the player's position*/ struct Talkable* get_dialog_xy(struct Map *map, int x, int y); -void clean(char *var); \ No newline at end of file +char *word_boundary_before(char *str, char *limit); +char *skip_spaces(char *str); \ No newline at end of file diff --git a/src/engine.c b/src/engine.c index 9bb9e62..22ab16c 100644 --- a/src/engine.c +++ b/src/engine.c @@ -26,6 +26,7 @@ void engine_draw(struct Game const *game) { dprint(1,1,C_WHITE,"%d:%d",game->player->pos.x, game->player->pos.y); dprint(1,20,C_WHITE,"%d",game->player->sprint); + dprint(1,40,C_WHITE,"%d",map_get_player_tile(game)); } void engine_draw_map(struct Game const *game) { @@ -168,6 +169,20 @@ void engine_check_position(struct Game *game) { if(player_curr_tile == TILE_GRASS) { create_battle(game); } + if(player_curr_tile == TILE_ICE) { + int direction = game->player->direction; + int dx = (direction == DIR_RIGHT) - (direction == DIR_LEFT); + int dy = (direction == DIR_DOWN) - (direction == DIR_UP); + + if(player_facing(game) == TILE_ICE || map_walkable(game->map, game->player->pos.x+dx, game->player->pos.y+dy)) { + game->player->pos.x += dx; + game->player->pos.y += dy; + engine_draw(game); + engine_tick(game, ENGINE_TICK); + dupdate(); + engine_check_position(game); + } + } } void engine_center_camera(struct Game *game) { diff --git a/src/talkable.c b/src/talkable.c index 8366955..abbe102 100644 --- a/src/talkable.c +++ b/src/talkable.c @@ -1,6 +1,8 @@ #include #include +#include #include +#include #include "talkable.h" #include "util.h" @@ -14,6 +16,26 @@ struct Talkable default_value = { .text = "default dialog" }; +/* Find the last word boundary between [str] and [limit]. If there is no word + boundary (ie. [limit] is in the first word of [str]), returns [limit]. + This function always return a position *after* [str] so that we always make + progress and don't loop. */ +char *word_boundary_before(char *str, char *limit) +{ + char *s = limit; + while(s > str) { + if(isspace(*s) || !*s) return s; + s--; + } + return limit; +} + +/* Skip spaces at the start of [str] */ +char *skip_spaces(char *str) +{ + return str + strspn(str, " \t\n"); +} + /*draw the dialog of a specified talkable tile*/ void draw_dialog(struct Talkable *talkable) { extern bopti_image_t img_dialogue; @@ -26,31 +48,16 @@ void draw_dialog(struct Talkable *talkable) { dimage(43,31,&img_dialogue); dprint(50,40, C_BLACK, "%s", talkable->name); - //TODO Il y a moyen de faire mieux avec seulement curr_line. - //Cela semble globalement fonctionner, mais j'ai pu observer des petites erreurs - if(strlen(curr_line) > LIMIT) { - char remain[strlen(curr_line)+1]; - char split[LIMIT+1]; - char first_part[LIMIT+1]; + int const DIALOG_WIDTH = 295, LINE_HEIGHT = 13; + int y = 45 + LINE_HEIGHT; - strcpy(remain, curr_line); - int indexLine = 0; - - while(strlen(remain) > LIMIT) { - clean(split); - strncpy(first_part,&remain[0],LIMIT); - - char* find = strrchr(first_part,' '); - int indexSpace = find != NULL ? (int)(find-first_part) : LIMIT-1; - strncpy(split,&remain[0],indexSpace); - strncpy(remain,&remain[indexSpace]+1,strlen(remain)); - - dprint(50,60+indexLine*15, C_BLACK, "%s", split); - indexLine++; - } - dprint(50,60+indexLine*15, C_BLACK, "%s", remain); - } else { - dprint(50,60, C_BLACK, "%s", curr_line); + while(*curr_line) { + char *end = (char *)drsize(curr_line, NULL, DIALOG_WIDTH, NULL); + char *last_word = word_boundary_before(curr_line, end); + dtext_opt(50, y, C_BLACK, C_NONE, DTEXT_LEFT, DTEXT_TOP, + curr_line, last_word - curr_line); + curr_line = skip_spaces(last_word); + y += LINE_HEIGHT; } dupdate(); @@ -59,14 +66,6 @@ void draw_dialog(struct Talkable *talkable) { } } -void clean(char *var) { - int i = 0; - while(var[i] != '\0') { - var[i] = '\0'; - i++; - } -} - /*find the talkable tile using the player's position*/ struct Talkable* get_dialog_xy(struct Map *map, int x, int y) { int i = 0;