Interiors now use their own tileset

This commit is contained in:
bgiraudr 2022-01-22 17:12:24 +01:00
parent 1b5cd7a80f
commit 9ef1c5daf8
16 changed files with 465 additions and 299 deletions

View File

@ -15,19 +15,19 @@ add_custom_command(
OUTPUT "${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/testCarte.json"
"${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/inside/1.json"
"${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/inside/2.json"
"${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/inside/3.json"
COMMENT "Convert tmx map to json"
COMMAND tiled --export-tileset json tileset.tsx tileset.json
COMMAND tiled --export-tileset json inside/tileset_in.tsx inside/tileset_in.json
COMMAND find | grep .*.tmx | sed 's/.tmx//g' | xargs -l bash -c 'tiled --export-map json $$0.tmx $$0.json'
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/
DEPENDS assets-cg/maps/testCarte.tmx
assets-cg/maps/1.tmx
assets-cg/tileset.png
assets-cg/maps/tileset.tsx
assets-cg/maps/inside/tileset_in.tsx
assets-cg/converters.py
assets-cg/maps/inside/1.tmx
assets-cg/maps/inside/2.tmx
assets-cg/maps/inside/3.tmx)
assets-cg/maps/inside/2.tmx)
set(SOURCES
src/main.c
@ -44,11 +44,11 @@ set(SOURCES
set(ASSETS_cg
assets-cg/tileset.png
assets-cg/maps/inside/tileset_in.png
assets-cg/maps/testCarte.json
assets-cg/maps/1.json
assets-cg/maps/inside/1.json
assets-cg/maps/inside/2.json
assets-cg/maps/inside/3.json
assets-cg/spritesheet.png
assets-cg/uf8x9
)

View File

@ -33,6 +33,7 @@ def convert_map(input, output, params, target):
tileset = open(tilesetPath, "r")
data_tileset = json.load(tileset)
tileset_size = data_tileset.get("columns")
tileset.close()
tile_value = {}
@ -85,6 +86,7 @@ def convert_map(input, output, params, target):
structMap += fxconv.u32(w) + fxconv.u32(h) + fxconv.u32(nbTilelayer) + fxconv.u32(nbDialog) + fxconv.u32(nbTelep)
structMap += fxconv.ref(f"img_{nameTilesetFree}")
structMap += fxconv.u32(tileset_size)
structMap += fxconv.ptr(dialogs)
structMap += fxconv.ptr(teleporter)

View File

@ -1,48 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="12" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="12" nextobjectid="36">
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="12" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="13" nextobjectid="38">
<editorsettings>
<export target="interior_1.json" format="json"/>
</editorsettings>
<tileset firstgid="1" source="../tileset.tsx"/>
<tileset firstgid="1" source="tileset_in.tsx"/>
<layer id="5" name="1" width="12" height="10">
<data encoding="csv">
682,683,683,683,683,683,683,683,683,683,683,684,
711,712,712,712,712,712,712,712,712,712,712,713,
740,741,741,741,741,741,741,741,741,741,741,742,
617,617,617,617,617,617,617,617,617,617,617,617,
617,617,617,617,617,617,617,617,617,617,617,617,
617,617,617,617,617,617,617,617,617,617,617,617,
617,617,617,617,617,617,617,617,617,736,736,736,
617,617,617,617,617,617,617,617,736,736,736,736,
617,617,617,617,617,617,617,617,736,736,736,736,
617,617,0,617,617,617,617,617,617,736,736,736
83,84,84,84,84,84,84,84,84,84,84,85,
100,101,101,101,101,101,101,101,101,101,101,102,
117,118,118,118,118,118,118,118,118,118,118,119,
42,42,42,42,42,113,113,42,42,42,42,42,
42,42,42,42,42,113,113,42,42,42,42,42,
113,42,42,42,42,42,42,42,42,42,42,42,
113,42,42,42,42,42,42,42,42,113,113,113,
42,42,42,42,42,42,42,42,113,113,113,113,
42,0,0,0,0,42,42,42,113,113,113,113,
0,0,0,0,0,0,42,42,42,113,113,113
</data>
</layer>
<layer id="1" name="2" width="12" height="10">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,710,710,0,0,0,0,0,
678,0,701,701,0,739,739,0,0,0,646,647,
707,0,730,730,0,736,736,0,0,0,675,676,
0,0,0,0,0,736,736,0,0,0,0,0,
736,0,702,703,0,0,0,0,248,250,249,250,
736,0,731,732,0,0,0,0,277,704,705,736,
0,0,0,0,0,0,0,0,277,733,734,0,
614,615,615,615,615,616,0,0,0,735,735,678,
643,644,728,729,644,645,0,0,0,0,0,707
0,0,0,0,0,99,99,0,0,0,0,0,
79,0,90,90,0,116,116,0,0,0,59,60,
96,0,107,107,0,0,0,0,0,0,76,77,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,91,92,0,0,0,0,0,0,0,0,
0,0,108,109,0,0,0,28,0,93,94,0,
0,0,0,0,0,0,0,45,0,110,111,0,
39,40,40,40,40,41,0,62,0,112,112,79,
56,57,105,106,57,58,0,0,0,0,0,96
</data>
</layer>
<objectgroup id="10" name="dialog">
<object id="32" gid="267" x="144" y="128" width="16" height="16">
<objectgroup id="12" name="dialog">
<object id="36" gid="43" x="144" y="128" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="La télé diffuse une ancienne chaine à la mode; Odyssée"/>
<property name="text" value="Bonjour"/>
</properties>
</object>
<object id="33" gid="267" x="160" y="128" width="16" height="16">
<object id="37" gid="43" x="160" y="128" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="Le personnage semble bien mal au point..."/>
<property name="text" value="Salut"/>
</properties>
</object>
</objectgroup>

View File

@ -1,63 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="15" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="15" nextobjectid="35">
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="15" height="10" tilewidth="16" tileheight="16" infinite="0" nextlayerid="15" nextobjectid="37">
<editorsettings>
<export target="interior_1.json" format="json"/>
</editorsettings>
<tileset firstgid="1" source="../tileset.tsx"/>
<tileset firstgid="1" source="tileset_in.tsx"/>
<layer id="11" name="1" width="15" height="10">
<data encoding="csv">
682,683,683,683,683,683,683,683,683,683,683,683,683,683,684,
711,712,712,712,712,712,712,712,712,712,712,712,712,712,713,
740,741,741,741,741,741,741,741,741,741,741,741,741,741,742,
617,617,617,617,617,617,617,617,617,617,617,617,617,617,617,
736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,
736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,
736,736,736,736,617,655,736,736,736,736,736,736,736,736,736,
617,617,736,736,617,655,736,736,736,736,736,736,736,736,736,
617,617,736,736,617,655,736,736,736,736,736,736,736,736,736,
736,736,736,736,617,655,736,736,736,736,736,736,736,736,736
83,84,84,84,84,84,84,84,84,84,84,84,84,84,85,
100,101,101,101,101,101,101,101,101,101,101,101,101,101,102,
117,118,118,118,118,118,118,118,118,118,118,118,118,118,119,
42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,
113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
113,113,113,113,113,113,113,113,113,113,113,40,40,113,113,
113,113,113,113,42,0,113,113,113,113,56,57,57,58,113,
42,42,113,113,42,0,113,113,113,113,113,74,74,113,113,
42,42,113,113,42,0,113,40,40,113,113,113,113,113,113,
113,113,113,113,42,0,113,105,106,113,113,113,113,113,113
</data>
</layer>
<layer id="12" name="2" width="15" height="10">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,710,710,0,0,679,680,681,0,0,710,710,0,0,
678,0,739,739,0,0,0,0,0,0,0,739,739,646,647,
707,0,0,0,0,0,0,0,0,0,0,0,0,675,676,
0,706,706,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,614,615,615,616,0,
708,709,0,0,0,654,0,0,0,0,643,644,644,645,0,
737,738,0,0,0,654,0,0,0,0,672,673,673,674,0,
0,0,0,0,0,654,614,615,615,616,0,0,0,0,0,
0,0,0,0,0,654,643,728,729,645,0,0,0,0,0
0,0,99,99,0,0,81,82,0,0,0,0,0,0,0,
79,0,116,116,0,0,0,0,0,90,90,0,0,59,60,
96,0,0,0,0,0,0,0,0,107,107,0,0,76,77,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,39,91,92,41,0,
97,98,0,0,0,67,0,0,0,0,0,108,109,0,0,
114,115,0,0,0,67,0,0,0,0,73,0,0,75,0,
0,0,0,0,0,67,39,0,0,41,0,0,0,0,0,
0,0,0,0,0,67,56,0,0,58,0,0,0,0,0
</data>
</layer>
<layer id="13" name="3" width="15" height="10">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,704,705,0,0,0,0,0,0,701,701,0,0,0,677,
0,733,734,0,0,0,0,0,0,730,730,0,0,0,0,
0,93,94,0,0,0,0,0,0,0,0,0,0,0,78,
0,110,111,0,0,0,0,0,0,0,0,0,0,0,0,
0,112,112,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,702,703,0,0,
0,0,0,0,0,0,0,0,0,0,0,731,732,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,678,0,0,678,0,0,0,0,0,
0,0,0,0,0,0,707,0,0,707,0,0,0,0,0
0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,68,79,0,0,79,0,0,0,0,0,
0,0,0,0,0,68,96,0,0,96,0,0,0,0,0
</data>
</layer>
<objectgroup id="14" name="dialog">
<object id="32" gid="267" x="16" y="64" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="La télévision est éteinte"/>
</properties>
</object>
<object id="34" gid="267" x="32" y="64" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="Des traces de doigts sont;présentes sur l'écran"/>
</properties>
</object>
<object id="35" gid="43" x="16" y="64" width="16" height="16"/>
<object id="36" gid="43" x="32" y="64" width="16" height="16"/>
</objectgroup>
</map>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="20" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="13">
<editorsettings>
<export target="3.json" format="json"/>
</editorsettings>
<tileset firstgid="1" source="../tileset.tsx"/>
<layer id="1" name="1" width="20" height="15">
<data encoding="csv">
682,683,683,683,683,683,683,683,683,625,626,683,683,683,683,683,683,683,683,684,
711,0,0,712,712,712,712,712,712,654,655,712,0,0,712,712,0,0,712,713,
740,741,741,741,741,741,741,741,741,654,655,741,741,741,741,741,741,741,741,742,
617,617,617,617,617,617,617,617,617,0,0,617,617,617,617,617,617,617,617,617,
736,736,736,736,736,736,736,736,736,0,0,736,736,736,736,736,736,736,736,736,
736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,
736,736,736,643,644,644,645,736,736,736,736,736,736,736,736,736,736,736,736,736,
736,736,736,643,644,644,645,736,736,736,736,736,736,736,736,736,736,736,736,736,
0,0,0,0,0,0,0,736,736,736,736,736,736,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,736,736,736,736,736,736,0,0,0,0,0,0,0,
617,0,617,617,617,0,617,736,736,736,736,736,736,104,104,104,104,104,104,104,
736,736,736,736,736,736,736,736,736,736,736,736,736,191,191,191,191,191,191,191,
736,736,0,0,736,736,736,736,736,736,736,736,736,191,191,191,0,0,191,191,
736,736,736,736,736,736,736,736,736,736,736,736,736,191,191,191,191,191,191,191,
736,736,736,736,736,736,736,736,736,728,729,736,736,191,191,191,191,191,191,191
</data>
</layer>
<layer id="2" name="2" width="20" height="15">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,710,710,0,0,0,0,679,0,0,0,0,710,710,0,0,710,710,0,0,
0,739,739,0,704,705,0,0,0,0,0,0,739,739,0,0,739,739,0,0,
0,0,0,0,733,734,0,0,0,654,655,0,0,0,0,0,0,0,0,0,
0,0,0,0,706,706,0,0,0,654,655,591,0,0,0,0,0,0,0,0,
0,0,591,614,615,615,616,0,0,711,713,620,0,0,0,0,0,0,0,0,
0,0,620,0,0,0,0,0,0,740,742,649,0,0,0,0,0,0,0,0,
682,683,649,683,683,683,684,0,0,0,0,0,0,682,683,683,683,683,683,684,
711,712,0,712,712,712,713,0,0,0,0,0,0,711,712,712,712,712,712,713,
740,701,0,741,741,701,742,0,0,239,0,0,0,740,741,741,741,741,741,742,
0,730,0,0,0,730,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,239,0,0,0,0,702,703,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,731,732,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</data>
</layer>
<layer id="3" name="3" width="20" height="15">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,708,709,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,737,738,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,708,709,708,709,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,737,738,737,738,
0,0,683,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,712,0,679,0,0,0,0,0,0,0,0,0,0,0,680,681,0,0,
0,0,741,0,678,0,0,0,0,0,0,0,0,0,678,0,646,647,0,678,
0,0,0,0,707,0,0,0,0,0,0,0,0,0,707,0,675,676,0,707,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,735,702,703,706,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,706,731,732,735,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</data>
</layer>
<objectgroup id="4" name="dialog">
<object id="1" gid="267" x="64" y="64" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="&quot;Bonjour à tous !&quot;"/>
</properties>
</object>
<object id="2" gid="267" x="80" y="64" width="16" height="16">
<properties>
<property name="name" value="Télévision"/>
<property name="text" value="&quot;Et à bientôt sur Planète Casio !&quot;"/>
</properties>
</object>
</objectgroup>
<objectgroup id="5" name="teleporter">
<object id="11" gid="238" x="144" y="160" width="16" height="16">
<properties>
<property name="x" type="int" value="19"/>
<property name="y" type="int" value="3"/>
</properties>
</object>
<object id="12" gid="238" x="176" y="208" width="16" height="16">
<properties>
<property name="x" type="int" value="0"/>
<property name="y" type="int" value="14"/>
</properties>
</object>
</objectgroup>
</map>

View File

@ -1,3 +1,8 @@
*.json:
custom-type: map
name_regex: (.*)\.json in_\1
tileset_in.png:
type: bopti-image
name: img_tileset_in
profile: p4

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.2" name="tileset_in" tilewidth="16" tileheight="16" tilecount="119" columns="17">
<image source="tileset_in.png" width="272" height="112"/>
<tile id="27" type="solid"/>
<tile id="42" type="text"/>
<tile id="44" type="solid"/>
<tile id="49" type="solid"/>
<tile id="50" type="solid"/>
<tile id="58" type="solid"/>
<tile id="59" type="solid"/>
<tile id="61" type="solid"/>
<tile id="66" type="solid"/>
<tile id="67" type="solid"/>
<tile id="75" type="solid"/>
<tile id="76" type="solid"/>
<tile id="77" type="solid"/>
<tile id="78" type="solid"/>
<tile id="82" type="solid"/>
<tile id="83" type="solid"/>
<tile id="84" type="solid"/>
<tile id="89" type="solid"/>
<tile id="90" type="solid"/>
<tile id="91" type="solid"/>
<tile id="92" type="solid"/>
<tile id="93" type="solid"/>
<tile id="95" type="solid"/>
<tile id="96" type="solid"/>
<tile id="97" type="solid"/>
<tile id="98" type="solid"/>
<tile id="99" type="solid"/>
<tile id="100" type="solid"/>
<tile id="101" type="solid"/>
<tile id="104" type="door_out"/>
<tile id="105" type="door_out"/>
<tile id="106" type="solid"/>
<tile id="107" type="solid"/>
<tile id="108" type="solid"/>
<tile id="109" type="talkable"/>
<tile id="110" type="talkable"/>
<tile id="113" type="solid"/>
<tile id="114" type="solid"/>
<tile id="115" type="solid"/>
<tile id="116" type="solid"/>
<tile id="117" type="solid"/>
<tile id="118" type="solid"/>
</tileset>

View File

@ -50,40 +50,40 @@
<data encoding="csv">
295,295,294,294,0,0,0,0,0,0,294,294,295,295,294,0,0,108,0,0,0,0,0,0,0,0,137,138,138,138,138,84,0,0,82,138,138,138,138,138,138,138,138,138,138,138,84,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,0,110,0,0,0,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,295,294,0,0,320,321,322,0,0,0,294,295,294,0,0,0,137,138,138,138,138,84,0,0,0,0,0,0,0,0,108,0,0,110,0,0,0,0,0,0,0,0,0,0,0,113,0,349,350,351,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,50,0,110,0,0,0,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,0,0,0,0,349,350,351,0,0,0,0,294,0,660,661,662,663,0,0,0,0,137,84,0,0,0,0,0,0,0,137,138,138,139,0,0,0,0,0,0,0,0,0,0,0,137,84,378,379,380,0,57,0,0,0,0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,82,139,0,0,0,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,0,0,0,0,378,379,380,22,23,0,0,0,0,689,690,691,692,0,0,0,0,0,137,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,0,0,0,0,113,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,349,350,351,0,0,82,139,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,28,0,323,324,325,0,0,0,0,0,0,0,0,
0,656,657,658,659,0,0,0,51,52,0,0,0,0,718,719,720,721,0,323,324,325,0,0,137,84,0,0,320,321,322,0,0,0,0,0,0,0,0,82,83,83,203,84,0,0,0,113,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,378,379,380,0,174,111,261,0,0,0,0,0,352,353,354,0,0,0,635,636,637,638,57,0,352,353,354,0,0,0,0,0,0,0,0,
0,685,686,687,688,0,0,0,0,0,0,0,0,0,747,748,749,750,0,352,353,354,0,0,0,137,84,0,349,350,351,0,0,0,0,0,0,0,0,111,0,0,232,113,0,0,0,137,84,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,0,203,139,0,0,0,0,0,0,381,382,383,0,245,0,664,665,666,667,0,0,381,382,383,0,0,0,0,0,0,0,0,
0,714,715,716,717,245,24,25,0,246,0,24,25,245,0,0,0,0,0,381,382,383,0,0,0,0,108,0,378,379,380,0,0,0,0,82,83,83,83,139,0,0,0,113,0,0,0,0,137,84,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,82,232,0,0,0,0,0,0,0,0,0,0,0,274,0,693,694,695,696,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,743,744,745,746,274,53,54,0,275,0,53,54,274,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,0,656,657,658,659,108,0,0,0,378,379,380,0,0,0,0,0,0,0,0,0,0,82,138,139,0,0,0,0,0,0,0,0,0,0,0,0,303,0,722,723,724,725,0,0,0,0,0,635,636,637,638,0,245,0,0,
0,0,29,0,0,303,0,0,0,304,0,0,0,303,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,0,685,686,687,688,137,84,174,0,0,0,0,0,0,0,0,0,0,0,0,0,82,139,111,0,0,18,19,0,0,0,0,0,0,0,0,0,0,0,751,752,753,754,0,0,0,0,0,664,665,666,667,0,274,0,0,
0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,635,636,637,638,0,79,142,0,0,0,0,0,0,0,0,111,0,0,0,0,0,29,0,113,0,714,715,716,717,0,137,203,138,138,84,0,0,0,0,0,0,0,82,138,138,139,0,140,81,0,47,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,25,0,0,693,694,695,696,0,303,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,665,666,667,0,108,0,0,0,0,0,0,0,0,0,111,0,239,0,0,0,58,0,113,0,743,744,745,746,0,0,232,0,0,137,138,138,138,138,138,138,138,139,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,53,54,0,0,722,723,724,725,0,0,0,0,
0,0,0,0,0,0,245,0,0,245,0,0,0,0,0,0,0,0,0,0,693,694,695,696,0,108,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,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,0,0,635,636,637,638,0,0,0,245,0,0,0,0,245,0,751,752,753,754,0,0,0,0,
0,0,320,321,322,0,274,0,0,274,0,0,0,0,0,0,0,0,0,0,722,723,724,725,0,108,0,0,0,0,0,0,0,0,0,140,141,141,141,141,141,141,141,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,111,0,0,323,324,325,0,0,0,0,664,665,666,667,0,0,0,274,0,323,324,325,274,0,0,0,0,0,0,0,0,0,
0,0,349,350,351,0,303,0,0,303,0,0,0,0,0,0,0,0,0,0,751,752,753,754,0,137,84,0,0,0,0,0,0,0,0,0,0,0,0,0,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,111,0,0,352,353,354,0,0,0,0,693,694,695,696,0,0,0,303,0,352,353,354,303,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,0,0,0,0,0,0,113,320,321,322,0,0,0,0,0,0,0,0,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,111,0,0,381,382,383,0,0,0,0,722,723,724,725,0,0,0,0,0,381,382,383,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,108,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,751,752,753,754,0,0,0,0,0,22,23,0,29,0,0,0,0,0,352,353,354,0,
294,0,0,0,0,349,350,351,0,0,0,0,294,0,330,331,332,333,0,0,0,0,137,84,0,0,0,0,0,0,0,137,138,138,139,0,0,0,0,0,0,0,0,0,0,0,137,84,378,379,380,0,57,0,0,0,0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,82,139,0,0,0,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,0,0,0,0,378,379,380,22,23,0,0,0,0,359,360,361,362,0,0,0,0,0,137,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,0,0,0,0,113,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,349,350,351,0,0,82,139,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,28,0,323,324,325,0,0,0,0,0,0,0,0,
0,326,327,328,329,0,0,0,51,52,0,0,0,0,388,389,390,391,0,323,324,325,0,0,137,84,0,0,320,321,322,0,0,0,0,0,0,0,0,82,83,83,203,84,0,0,0,113,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,378,379,380,0,174,111,261,0,0,0,0,0,352,353,354,0,0,0,334,335,336,337,57,0,352,353,354,0,0,0,0,0,0,0,0,
0,355,356,357,358,0,0,0,0,0,0,0,0,0,413,414,415,416,0,352,353,354,0,0,0,137,84,0,349,350,351,0,0,0,0,0,0,0,0,111,0,0,232,113,0,0,0,137,84,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,0,203,139,0,0,0,0,0,0,381,382,383,0,245,0,363,364,365,366,0,0,381,382,383,0,0,0,0,0,0,0,0,
0,384,385,386,387,245,24,25,0,246,0,24,25,245,0,0,0,0,0,381,382,383,0,0,0,0,108,0,378,379,380,0,0,0,0,82,83,83,83,139,0,0,0,113,0,0,0,0,137,84,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,82,232,0,0,0,0,0,0,0,0,0,0,0,274,0,392,393,394,395,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,413,414,415,416,274,53,54,0,275,0,53,54,274,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,0,326,327,328,329,108,0,0,0,378,379,380,0,0,0,0,0,0,0,0,0,0,82,138,139,0,0,0,0,0,0,0,0,0,0,0,0,303,0,421,422,423,424,0,0,0,0,0,334,335,336,337,0,245,0,0,
0,0,29,0,0,303,0,0,0,304,0,0,0,303,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,0,355,356,357,358,137,84,174,0,0,0,0,0,0,0,0,0,0,0,0,0,82,139,111,0,0,18,19,0,0,0,0,0,0,0,0,0,0,0,450,451,452,453,0,0,0,0,0,363,364,365,366,0,274,0,0,
0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,334,335,336,337,0,79,142,0,0,0,0,0,0,0,0,111,0,0,0,0,0,29,0,113,0,384,385,386,387,0,137,203,138,138,84,0,0,0,0,0,0,0,82,138,138,139,0,140,81,0,47,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,25,0,0,392,393,394,395,0,303,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,363,364,365,366,0,108,0,0,0,0,0,0,0,0,0,111,0,239,0,0,0,58,0,113,0,413,414,415,416,0,0,232,0,0,137,138,138,138,138,138,138,138,139,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,53,54,0,0,421,422,423,424,0,0,0,0,
0,0,0,0,0,0,245,0,0,245,0,0,0,0,0,0,0,0,0,0,392,393,394,395,0,108,0,0,0,0,0,0,0,0,0,111,0,0,0,0,0,0,0,113,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,0,0,334,335,336,337,0,0,0,245,0,0,0,0,245,0,450,451,452,453,0,0,0,0,
0,0,320,321,322,0,274,0,0,274,0,0,0,0,0,0,0,0,0,0,421,422,423,424,0,108,0,0,0,0,0,0,0,0,0,140,141,141,141,141,141,141,141,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,111,0,0,323,324,325,0,0,0,0,363,364,365,366,0,0,0,274,0,323,324,325,274,0,0,0,0,0,0,0,0,0,
0,0,349,350,351,0,303,0,0,303,0,0,0,0,0,0,0,0,0,0,450,451,452,453,0,137,84,0,0,0,0,0,0,0,0,0,0,0,0,0,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,111,0,0,352,353,354,0,0,0,0,392,393,394,395,0,0,0,303,0,352,353,354,303,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,0,0,0,0,0,0,113,320,321,322,0,0,0,0,0,0,0,0,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,111,0,0,381,382,383,0,0,0,0,421,422,423,424,0,0,0,0,0,381,382,383,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,108,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,450,451,452,453,0,0,0,0,0,22,23,0,29,0,0,0,0,0,352,353,354,0,
0,0,0,0,0,294,0,0,0,0,0,0,0,0,0,0,0,294,294,294,294,294,294,294,294,0,108,378,379,380,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,320,321,322,0,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,24,25,0,0,0,51,52,0,58,0,0,0,0,0,381,382,383,0,
0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,0,0,0,294,294,294,294,294,294,294,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,660,661,662,663,0,28,0,0,0,0,0,53,54,0,0,0,0,0,0,0,0,0,656,657,658,659,0,0,0,
0,0,0,0,294,294,245,0,0,245,0,0,0,0,0,0,0,0,0,0,0,294,294,294,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,0,0,378,379,380,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,689,690,691,692,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,685,686,687,688,0,0,0,
0,0,0,294,294,294,274,0,0,274,20,21,320,321,322,0,0,0,0,0,0,0,294,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,139,0,0,0,718,719,720,721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,714,715,716,717,0,0,0,
0,0,0,0,0,0,303,0,0,303,49,50,349,350,351,0,0,0,0,0,0,0,0,0,0,0,108,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,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,747,748,749,750,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,24,25,0,743,744,745,746,0,0,0,
0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,0,0,0,294,294,294,294,294,294,294,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,349,350,351,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,330,331,332,333,0,28,0,0,0,0,0,53,54,0,0,0,0,0,0,0,0,0,326,327,328,329,0,0,0,
0,0,0,0,294,294,245,0,0,245,0,0,0,0,0,0,0,0,0,0,0,294,294,294,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,0,0,378,379,380,0,0,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,359,360,361,362,0,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,355,356,357,358,0,0,0,
0,0,0,294,294,294,274,0,0,274,20,21,320,321,322,0,0,0,0,0,0,0,294,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,139,0,0,0,388,389,390,391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,384,385,386,387,0,0,0,
0,0,0,0,0,0,303,0,0,303,49,50,349,350,351,0,0,0,0,0,0,0,0,0,0,0,108,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,0,0,0,0,0,0,0,0,0,0,0,111,0,0,0,0,413,414,415,416,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,24,25,0,413,414,415,416,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,378,379,380,0,79,80,81,0,0,0,0,0,0,0,137,138,138,138,138,138,84,0,349,350,351,0,0,0,0,0,0,0,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,139,0,0,0,0,0,0,0,0,0,0,274,0,0,0,0,0,0,0,0,0,0,0,0,53,54,0,0,0,0,0,0,0,0,
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,635,636,637,638,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,664,665,666,667,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,693,694,695,696,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,722,723,724,725,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,751,752,753,754,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,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,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,656,657,658,659,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,685,686,687,688,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,378,379,380,294,294,0,0,320,321,322,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,339,340,340,340,340,340,340,340,341,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,714,715,716,717,0,0,0,0,0,0,0,0,0,0,0,0,
294,0,0,0,0,0,0,0,0,0,0,0,0,0,349,350,351,0,0,294,294,294,294,294,294,294,323,324,325,323,324,325,323,324,325,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,0,0,12,13,0,0,0,0,0,0,0,0,28,0,743,744,745,746,0,0,0,0,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,
0,0,0,0,0,0,0,378,379,380,294,294,0,0,320,321,322,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,339,340,340,340,340,340,340,340,341,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,384,385,386,387,0,0,0,0,0,0,0,0,0,0,0,0,
294,0,0,0,0,0,0,0,0,0,0,0,0,0,349,350,351,0,0,294,294,294,294,294,294,294,323,324,325,323,324,325,323,324,325,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,0,0,12,13,0,0,0,0,0,0,0,0,28,0,413,414,415,416,0,0,0,0,0,0,0,0,0,0,0,0,
294,0,0,0,0,0,0,0,0,0,0,0,0,0,378,379,380,0,0,0,294,294,294,294,0,0,352,353,354,352,353,354,352,353,354,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,0,0,0,0,0,41,42,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,
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,381,382,383,381,382,383,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
</data>

View File

@ -1,9 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.5" tiledversion="1.7.2" name="tileset" tilewidth="16" tileheight="16" tilecount="754" columns="29">
<tileset version="1.5" tiledversion="1.7.2" name="tileset" tilewidth="16" tileheight="16" tilecount="464" columns="29">
<editorsettings>
<export target="tileset.json" format="json"/>
</editorsettings>
<image source="../tileset.png" width="464" height="416"/>
<image source="../tileset.png" width="464" height="256"/>
<tile id="0"/>
<tile id="1"/>
<tile id="2"/>
<tile id="3"/>
<tile id="4"/>
<tile id="5"/>
<tile id="6"/>
<tile id="7"/>
<tile id="8"/>
<tile id="9"/>
<tile id="10"/>
<tile id="11"/>
<tile id="12"/>
<tile id="13"/>
<tile id="14"/>
<tile id="15" type="solid"/>
<tile id="16" type="solid"/>
<tile id="17" type="solid"/>
@ -15,48 +30,211 @@
<tile id="23" type="solid"/>
<tile id="24" type="solid"/>
<tile id="25" type="solid"/>
<tile id="26"/>
<tile id="27"/>
<tile id="28"/>
<tile id="29"/>
<tile id="30"/>
<tile id="31"/>
<tile id="32"/>
<tile id="33"/>
<tile id="34"/>
<tile id="35"/>
<tile id="36"/>
<tile id="37"/>
<tile id="38"/>
<tile id="39"/>
<tile id="40"/>
<tile id="41"/>
<tile id="42"/>
<tile id="43"/>
<tile id="44" type="solid"/>
<tile id="45" type="solid"/>
<tile id="46" type="solid"/>
<tile id="47" type="solid"/>
<tile id="48" type="talkable"/>
<tile id="49" type="talkable"/>
<tile id="50"/>
<tile id="51"/>
<tile id="52" type="solid"/>
<tile id="53" type="solid"/>
<tile id="54" type="solid"/>
<tile id="55"/>
<tile id="56" type="talkable"/>
<tile id="57" type="talkable"/>
<tile id="58"/>
<tile id="59"/>
<tile id="60"/>
<tile id="61"/>
<tile id="62"/>
<tile id="63"/>
<tile id="64"/>
<tile id="65"/>
<tile id="66"/>
<tile id="67"/>
<tile id="68"/>
<tile id="69"/>
<tile id="70"/>
<tile id="71"/>
<tile id="72"/>
<tile id="73"/>
<tile id="74"/>
<tile id="75"/>
<tile id="76"/>
<tile id="77"/>
<tile id="78" type="solid"/>
<tile id="79" type="solid"/>
<tile id="80" type="solid"/>
<tile id="81" type="solid"/>
<tile id="82" type="solid"/>
<tile id="83" type="solid"/>
<tile id="84"/>
<tile id="85"/>
<tile id="86"/>
<tile id="87"/>
<tile id="88"/>
<tile id="89"/>
<tile id="90"/>
<tile id="91"/>
<tile id="92"/>
<tile id="93"/>
<tile id="94"/>
<tile id="95"/>
<tile id="96"/>
<tile id="97"/>
<tile id="98"/>
<tile id="99"/>
<tile id="100"/>
<tile id="101"/>
<tile id="102"/>
<tile id="103"/>
<tile id="104"/>
<tile id="105"/>
<tile id="106"/>
<tile id="107" type="solid"/>
<tile id="108"/>
<tile id="109" type="solid"/>
<tile id="110" type="solid"/>
<tile id="111"/>
<tile id="112" type="solid"/>
<tile id="113"/>
<tile id="114"/>
<tile id="115"/>
<tile id="116"/>
<tile id="117"/>
<tile id="118"/>
<tile id="119"/>
<tile id="120"/>
<tile id="121"/>
<tile id="122"/>
<tile id="123"/>
<tile id="124"/>
<tile id="125"/>
<tile id="126"/>
<tile id="127"/>
<tile id="128"/>
<tile id="129"/>
<tile id="130"/>
<tile id="131"/>
<tile id="132"/>
<tile id="133"/>
<tile id="134"/>
<tile id="135"/>
<tile id="136" type="solid"/>
<tile id="137" type="solid"/>
<tile id="138" type="solid"/>
<tile id="139" type="solid"/>
<tile id="140" type="solid"/>
<tile id="141" type="solid"/>
<tile id="142"/>
<tile id="143"/>
<tile id="144"/>
<tile id="145"/>
<tile id="146"/>
<tile id="147"/>
<tile id="148"/>
<tile id="149"/>
<tile id="150"/>
<tile id="151"/>
<tile id="152"/>
<tile id="153"/>
<tile id="154"/>
<tile id="155"/>
<tile id="156"/>
<tile id="157"/>
<tile id="158"/>
<tile id="159"/>
<tile id="160"/>
<tile id="161"/>
<tile id="162"/>
<tile id="163"/>
<tile id="164"/>
<tile id="165" type="solid"/>
<tile id="166"/>
<tile id="167" type="solid"/>
<tile id="168" type="solid"/>
<tile id="169" type="solid"/>
<tile id="170" type="solid"/>
<tile id="171"/>
<tile id="172"/>
<tile id="173"/>
<tile id="174"/>
<tile id="175"/>
<tile id="176"/>
<tile id="177"/>
<tile id="178"/>
<tile id="179"/>
<tile id="180"/>
<tile id="181"/>
<tile id="182"/>
<tile id="183"/>
<tile id="184"/>
<tile id="185"/>
<tile id="186"/>
<tile id="187"/>
<tile id="188"/>
<tile id="189"/>
<tile id="190"/>
<tile id="191"/>
<tile id="192"/>
<tile id="193"/>
<tile id="194" type="solid"/>
<tile id="195"/>
<tile id="196" type="solid"/>
<tile id="197" type="solid"/>
<tile id="198"/>
<tile id="199" type="solid"/>
<tile id="200" type="bridge"/>
<tile id="201" type="bridge"/>
<tile id="202" type="bridge"/>
<tile id="203"/>
<tile id="204"/>
<tile id="205"/>
<tile id="206"/>
<tile id="207"/>
<tile id="208"/>
<tile id="209"/>
<tile id="210"/>
<tile id="211"/>
<tile id="212"/>
<tile id="213"/>
<tile id="214"/>
<tile id="215"/>
<tile id="216"/>
<tile id="217"/>
<tile id="218"/>
<tile id="219"/>
<tile id="220"/>
<tile id="221"/>
<tile id="222"/>
<tile id="223" type="solid"/>
<tile id="224" type="solid"/>
<tile id="225" type="solid"/>
<tile id="226"/>
<tile id="227"/>
<tile id="228"/>
<tile id="229"/>
<tile id="230"/>
<tile id="231" type="bridge"/>
<tile id="232" type="solid"/>
<tile id="233" type="solid"/>
@ -84,6 +262,9 @@
<tile id="255" type="bridge"/>
<tile id="256" type="bridge"/>
<tile id="257" type="solid"/>
<tile id="258"/>
<tile id="259"/>
<tile id="260"/>
<tile id="261" type="solid"/>
<tile id="262" type="solid"/>
<tile id="263" type="solid"/>
@ -95,6 +276,7 @@
<property name="text" value=""/>
</properties>
</tile>
<tile id="267"/>
<tile id="268" type="solid"/>
<tile id="269" type="solid"/>
<tile id="270" type="solid"/>
@ -114,17 +296,27 @@
<tile id="284" type="bridge"/>
<tile id="285" type="bridge"/>
<tile id="286" type="solid"/>
<tile id="287"/>
<tile id="288"/>
<tile id="289"/>
<tile id="290" type="solid"/>
<tile id="291" type="solid"/>
<tile id="292" type="solid"/>
<tile id="293"/>
<tile id="294"/>
<tile id="295"/>
<tile id="296"/>
<tile id="297" type="solid"/>
<tile id="298" type="solid"/>
<tile id="299" type="solid"/>
<tile id="300"/>
<tile id="301" type="solid"/>
<tile id="302" type="solid"/>
<tile id="303" type="solid"/>
<tile id="304" type="solid"/>
<tile id="305" type="solid"/>
<tile id="306"/>
<tile id="307"/>
<tile id="308" type="solid"/>
<tile id="309" type="bridge"/>
<tile id="310" type="bridge"/>
@ -133,12 +325,28 @@
<tile id="313" type="bridge"/>
<tile id="314" type="bridge"/>
<tile id="315" type="solid"/>
<tile id="316"/>
<tile id="317"/>
<tile id="318"/>
<tile id="319" type="solid"/>
<tile id="320" type="solid"/>
<tile id="321" type="solid"/>
<tile id="322" type="solid"/>
<tile id="323" type="solid"/>
<tile id="324" type="solid"/>
<tile id="325" type="solid"/>
<tile id="326" type="solid"/>
<tile id="327" type="solid"/>
<tile id="328" type="solid"/>
<tile id="329" type="solid"/>
<tile id="330" type="solid"/>
<tile id="331" type="solid"/>
<tile id="332" type="solid"/>
<tile id="333" type="solid"/>
<tile id="334" type="solid"/>
<tile id="335" type="solid"/>
<tile id="336" type="solid"/>
<tile id="337"/>
<tile id="338" type="solid"/>
<tile id="339" type="solid"/>
<tile id="340" type="solid"/>
@ -146,115 +354,125 @@
<tile id="342" type="bridge"/>
<tile id="343" type="bridge"/>
<tile id="344" type="solid"/>
<tile id="345"/>
<tile id="346"/>
<tile id="347"/>
<tile id="348" type="solid"/>
<tile id="349" type="solid"/>
<tile id="350" type="solid"/>
<tile id="351" type="solid"/>
<tile id="352" type="solid"/>
<tile id="353" type="solid"/>
<tile id="354" type="solid"/>
<tile id="355" type="solid"/>
<tile id="356" type="solid"/>
<tile id="357" type="solid"/>
<tile id="358" type="solid"/>
<tile id="359" type="solid"/>
<tile id="360" type="solid"/>
<tile id="361" type="solid"/>
<tile id="362" type="solid"/>
<tile id="363" type="solid"/>
<tile id="364" type="solid"/>
<tile id="365" type="solid"/>
<tile id="366"/>
<tile id="367"/>
<tile id="368"/>
<tile id="369"/>
<tile id="370"/>
<tile id="371"/>
<tile id="372"/>
<tile id="373"/>
<tile id="374"/>
<tile id="375"/>
<tile id="376"/>
<tile id="377" type="solid"/>
<tile id="378" type="solid"/>
<tile id="379" type="solid"/>
<tile id="380" type="solid"/>
<tile id="381" type="solid"/>
<tile id="382" type="solid"/>
<tile id="559" type="air"/>
<tile id="560" type="air"/>
<tile id="561" type="solid"/>
<tile id="588" type="air"/>
<tile id="589" type="air"/>
<tile id="590" type="solid"/>
<tile id="617" type="air"/>
<tile id="618" type="air"/>
<tile id="619" type="solid"/>
<tile id="624" type="solid"/>
<tile id="625" type="solid"/>
<tile id="634" type="solid"/>
<tile id="635" type="solid"/>
<tile id="636" type="solid"/>
<tile id="637" type="solid"/>
<tile id="645" type="solid"/>
<tile id="646" type="solid"/>
<tile id="653" type="solid"/>
<tile id="654" type="solid"/>
<tile id="655" type="solid"/>
<tile id="656" type="solid"/>
<tile id="657" type="solid"/>
<tile id="658" type="solid"/>
<tile id="659" type="solid"/>
<tile id="660" type="solid"/>
<tile id="661" type="solid"/>
<tile id="662" type="solid"/>
<tile id="663" type="solid"/>
<tile id="664" type="solid"/>
<tile id="665" type="solid"/>
<tile id="666" type="solid"/>
<tile id="674" type="solid"/>
<tile id="675" type="solid"/>
<tile id="676" type="air"/>
<tile id="677" type="solid"/>
<tile id="681" type="solid"/>
<tile id="682" type="solid"/>
<tile id="683" type="solid"/>
<tile id="684" type="solid"/>
<tile id="685" type="solid"/>
<tile id="686" type="solid"/>
<tile id="687" type="solid"/>
<tile id="688" type="solid"/>
<tile id="689" type="solid"/>
<tile id="690" type="solid"/>
<tile id="691" type="solid"/>
<tile id="692" type="solid"/>
<tile id="693" type="solid"/>
<tile id="694" type="solid"/>
<tile id="695" type="solid"/>
<tile id="700" type="solid"/>
<tile id="701" type="solid"/>
<tile id="702" type="solid"/>
<tile id="703" type="solid"/>
<tile id="704" type="solid"/>
<tile id="706" type="solid"/>
<tile id="707" type="solid"/>
<tile id="708" type="solid"/>
<tile id="710" type="solid"/>
<tile id="711" type="solid"/>
<tile id="712" type="solid"/>
<tile id="713" type="solid"/>
<tile id="714" type="solid"/>
<tile id="715" type="solid"/>
<tile id="716" type="solid"/>
<tile id="717" type="solid"/>
<tile id="718" type="solid"/>
<tile id="719" type="solid"/>
<tile id="720" type="solid"/>
<tile id="721" type="solid"/>
<tile id="722" type="solid"/>
<tile id="723" type="solid"/>
<tile id="724" type="solid"/>
<tile id="727" type="door_out"/>
<tile id="728" type="door_out"/>
<tile id="729" type="solid"/>
<tile id="730" type="solid"/>
<tile id="731" type="solid"/>
<tile id="732" type="talkable"/>
<tile id="733" type="talkable"/>
<tile id="736" type="solid"/>
<tile id="737" type="solid"/>
<tile id="739" type="solid"/>
<tile id="740" type="solid"/>
<tile id="741" type="solid"/>
<tile id="742" type="solid"/>
<tile id="743" type="door_in"/>
<tile id="744" type="solid"/>
<tile id="745" type="solid"/>
<tile id="746" type="solid"/>
<tile id="747" type="door_in"/>
<tile id="748" type="solid"/>
<tile id="749" type="solid"/>
<tile id="750" type="solid"/>
<tile id="751" type="door_in"/>
<tile id="752" type="solid"/>
<tile id="753" type="solid"/>
<tile id="383" type="solid"/>
<tile id="384" type="solid"/>
<tile id="385" type="solid"/>
<tile id="386" type="solid"/>
<tile id="387" type="solid"/>
<tile id="388" type="solid"/>
<tile id="389" type="solid"/>
<tile id="390" type="solid"/>
<tile id="391" type="solid"/>
<tile id="392" type="solid"/>
<tile id="393" type="solid"/>
<tile id="394" type="solid"/>
<tile id="395"/>
<tile id="396"/>
<tile id="397"/>
<tile id="398"/>
<tile id="399"/>
<tile id="400"/>
<tile id="401"/>
<tile id="402"/>
<tile id="403"/>
<tile id="404"/>
<tile id="405"/>
<tile id="406"/>
<tile id="407"/>
<tile id="408"/>
<tile id="409"/>
<tile id="410"/>
<tile id="411"/>
<tile id="412" type="solid"/>
<tile id="413" type="door_in"/>
<tile id="414" type="solid"/>
<tile id="415" type="solid"/>
<tile id="416"/>
<tile id="417"/>
<tile id="418"/>
<tile id="419"/>
<tile id="420" type="solid"/>
<tile id="421" type="solid"/>
<tile id="422" type="solid"/>
<tile id="423" type="solid"/>
<tile id="424"/>
<tile id="425"/>
<tile id="426"/>
<tile id="427"/>
<tile id="428"/>
<tile id="429"/>
<tile id="430"/>
<tile id="431"/>
<tile id="432"/>
<tile id="433"/>
<tile id="434"/>
<tile id="435"/>
<tile id="436"/>
<tile id="437"/>
<tile id="438"/>
<tile id="439"/>
<tile id="440"/>
<tile id="441"/>
<tile id="442"/>
<tile id="443"/>
<tile id="444"/>
<tile id="445"/>
<tile id="446"/>
<tile id="447"/>
<tile id="448"/>
<tile id="449" type="solid"/>
<tile id="450" type="door_in"/>
<tile id="451" type="solid"/>
<tile id="452" type="solid"/>
<tile id="453"/>
<tile id="454"/>
<tile id="455"/>
<tile id="456"/>
<tile id="457"/>
<tile id="458"/>
<tile id="459"/>
<tile id="460"/>
<tile id="461"/>
<tile id="462"/>
<tile id="463"/>
<wangsets>
<wangset name="Herbe" type="corner" tile="-1">
<wangcolor name="Herbe" color="#ff0000" tile="0" probability="1"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -1,5 +1,5 @@
#pragma once
/*the width of the tileset*/
#define TILESET_WIDTH 29
/*the size of one tile*/
#define TILE_SIZE 16
#define TILE_SIZE 16
#define NB_INTERIORS 2

View File

@ -13,6 +13,7 @@ struct Map {
int w, h, nb_layers, dialog_count, teleporter_count;
/*the tileset to use*/
bopti_image_t *tileset;
int tileset_size;
/*list of all the dialog*/
struct Talkable *dialogs;
struct Teleporter *teleporters;

View File

@ -28,6 +28,7 @@ void engine_draw(struct Game const *game) {
void engine_draw_map(struct Game const *game) {
const int x_offset = (game->camera.offset.x - DWIDTH/2);
const int y_offset = (game->camera.offset.y - DHEIGHT/2);
const int tileset_size = game->map->tileset_size;
for (int y = 1 ; y <= DHEIGHT / TILE_SIZE-1; y++) {
for (int x = 1 ; x <= DWIDTH / TILE_SIZE; x++) {
@ -42,8 +43,8 @@ void engine_draw_map(struct Game const *game) {
if (tile_id != 0) {
tile_id--;
unsigned int tile_x = TILE_SIZE * (tile_id % TILESET_WIDTH);
unsigned int tile_y = TILE_SIZE * (tile_id / TILESET_WIDTH);
unsigned int tile_x = TILE_SIZE * (tile_id % tileset_size);
unsigned int tile_y = TILE_SIZE * (tile_id / tileset_size);
dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE,
y * TILE_SIZE - y_offset%TILE_SIZE, game->map->tileset,

View File

@ -27,16 +27,12 @@ int map_get_player_tile(struct Game const *game) {
/*generate the interior*/
void generate_interior_map(struct Game *game) {
const int NB_INTERIORS = 3;
extern struct Map in_1;
extern struct Map in_2;
extern struct Map in_3;
struct Map *interiors[] = {
&in_1,
&in_2,
&in_3
};
srand(game->player->pos.x * game->player->pos.y);
@ -45,7 +41,6 @@ void generate_interior_map(struct Game *game) {
game->player->pos = locate_tile(game->map, TILE_DOOR_OUT);
}
/*may be useful later*/
void set_map(struct Game *game, int id) {
game->map = maps[id];
}

View File

@ -26,7 +26,7 @@ void draw_dialog(struct Talkable *talkable) {
dprint(25,20, 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 oobserver des petites erreurs
//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];