From 71c7ce719823ffb11e5944f98abad55ea5d0c852 Mon Sep 17 00:00:00 2001 From: bgiraudr Date: Sat, 21 Aug 2021 02:54:03 +0200 Subject: [PATCH] beginning of indoor + add transition between sand and water --- CMakeLists.txt | 4 +- assets-cg/fxconv-metadata.txt | 2 +- assets-cg/maps/inside/fxconv-metadata.txt | 3 + assets-cg/maps/inside/interior_1.tmx | 35 ++ assets-cg/maps/inside/tileset.tsx | 399 ++++++++++++++++++++++ assets-cg/maps/testCarte.tmx | 30 +- assets-cg/maps/tileset.tsx | 32 +- assets-cg/tileset.png | Bin 56769 -> 54569 bytes include/engine.h | 2 +- include/map.h | 2 + include/player.h | 1 + src/engine.c | 121 ++----- src/map.c | 10 + src/player.c | 5 + 14 files changed, 528 insertions(+), 118 deletions(-) create mode 100644 assets-cg/maps/inside/fxconv-metadata.txt create mode 100644 assets-cg/maps/inside/interior_1.tmx create mode 100644 assets-cg/maps/inside/tileset.tsx diff --git a/CMakeLists.txt b/CMakeLists.txt index 0575c03..97e31ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,9 @@ add_custom_command( COMMENT "Convert tmx map to json" COMMAND tiled --export-tileset json tileset.tsx tileset.json COMMAND tiled --export-map json testCarte.tmx testCarte.json + COMMAND tiled --export-map json inside/interior_1.tmx inside/interior_1.json WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/assets-cg/maps/ - DEPENDS assets-cg/maps/testCarte.tmx assets-cg/tileset.png assets-cg/maps/tileset.tsx assets-cg/converters.py) + DEPENDS assets-cg/maps/testCarte.tmx assets-cg/tileset.png assets-cg/maps/tileset.tsx assets-cg/converters.py assets-cg/maps/inside/interior_1.tmx) set(SOURCES src/main.c @@ -33,6 +34,7 @@ set(SOURCES set(ASSETS_cg assets-cg/tileset.png assets-cg/maps/testCarte.json + assets-cg/maps/inside/interior_1.json assets-cg/spritesheet.png assets-cg/characters/Tituya.char assets-cg/characters/Lephenixnoir.char diff --git a/assets-cg/fxconv-metadata.txt b/assets-cg/fxconv-metadata.txt index 3144da4..be2bccc 100644 --- a/assets-cg/fxconv-metadata.txt +++ b/assets-cg/fxconv-metadata.txt @@ -1,7 +1,7 @@ tileset.png: type: bopti-image name: img_tileset - profile:p8 + profile:p4 spritesheet.png: type: bopti-image diff --git a/assets-cg/maps/inside/fxconv-metadata.txt b/assets-cg/maps/inside/fxconv-metadata.txt new file mode 100644 index 0000000..00cb15c --- /dev/null +++ b/assets-cg/maps/inside/fxconv-metadata.txt @@ -0,0 +1,3 @@ +interior_1.json: + custom-type: map + name: in_1 diff --git a/assets-cg/maps/inside/interior_1.tmx b/assets-cg/maps/inside/interior_1.tmx new file mode 100644 index 0000000..977b53f --- /dev/null +++ b/assets-cg/maps/inside/interior_1.tmx @@ -0,0 +1,35 @@ + + + + + + + + +285,285,285,285,285,285,285,285,285,286,285,285, +285,286,286,286,286,286,286,286,286,286,285,285, +285,286,285,286,286,286,286,286,286,286,285,285, +285,286,285,286,1,1,285,1,39,1,1,1, +285,286,285,1,36,39,1,1,1,33,1,1, +285,286,285,1,1,35,33,1,1,1,1,1, +285,286,285,286,1,30,1,286,285,286,285,285, +285,286,285,286,285,286,285,286,285,286,285,285, +285,286,285,285,285,286,285,286,285,286,285,285, +285,285,752,285,285,285,285,285,285,286,285,285 + + + + +224,225,225,225,225,225,225,225,225,226,0,29, +20,21,0,0,0,0,0,0,0,0,0,58, +49,50,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,24,25,0,0, +0,0,0,0,0,0,0,0,53,54,0,0 + + + diff --git a/assets-cg/maps/inside/tileset.tsx b/assets-cg/maps/inside/tileset.tsx new file mode 100644 index 0000000..53c4100 --- /dev/null +++ b/assets-cg/maps/inside/tileset.tsx @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets-cg/maps/testCarte.tmx b/assets-cg/maps/testCarte.tmx index 85b58e2..f4343a8 100644 --- a/assets-cg/maps/testCarte.tmx +++ b/assets-cg/maps/testCarte.tmx @@ -29,21 +29,21 @@ 1,1,1,1,1,69,72,99,99,130,130,131,100,0,2,1,1,3,1,36,39,1,2,2,2,175,0,1,1,1,1,1,1,3,6,6,6,1,117,91,120,121,89,89,92,118,119,2,2,3,151,154,182,240,243,301,244,242,180,181,213,182,3,1,3,3,3,3,2,1,1,190,223,191,223,191,191,191,222,194,221,3,6,6,6,6,6,2,2,1,2,219,193,165,162,164,192,3,240,241, 1,1,1,59,61,127,128,128,128,128,128,128,129,2,2,1,3,2,3,3,2,3,3,3,2,204,206,0,0,0,0,0,0,6,6,0,6,6,1,88,121,121,121,92,119,1,1,1,151,152,154,213,182,298,272,301,273,300,180,212,181,182,35,39,2,1,2,3,35,33,32,219,193,191,223,223,194,220,193,192,40,1,2,6,6,6,1,1,1,1,3,1,219,220,220,220,221,240,243,270, 1,1,1,88,63,61,1,1,1,1,38,2,2,2,1,3,0,33,3,3,3,1,1,3,3,3,2,204,205,205,205,178,0,6,6,6,6,6,1,117,91,89,121,90,3,1,2,151,154,212,212,213,155,153,298,299,300,1,180,213,181,182,34,33,2,2,2,6,2,2,1,2,219,220,220,220,221,2,190,192,39,31,3,1,2,1,2,151,153,1,2,1,240,241,241,241,241,243,302,301, -1,0,60,62,121,90,161,162,162,163,1,59,60,61,2,3,1,0,0,3,0,3,1,2,3,2,1,1,1,3,1,175,0,1,6,6,6,6,6,1,117,91,121,63,61,1,1,209,183,213,212,212,213,155,153,3,151,152,154,181,184,211,1,3,2,2,1,6,6,3,2,1,2,1,1,2,3,1,190,192,34,36,2,2,3,151,152,154,182,3,1,240,243,270,273,299,299,272,270,301, -59,62,89,121,92,119,190,191,223,192,59,62,89,63,60,61,2,1,3,0,3,2,2,2,1,59,60,60,61,1,2,204,206,0,0,0,0,0,0,1,1,117,118,118,119,3,3,2,209,183,212,181,213,181,155,152,154,213,212,184,211,3,9,1,2,2,6,6,6,6,2,1,2,39,36,37,37,161,164,165,163,3,1,151,152,154,213,184,211,2,240,243,301,273,300,2,3,298,272,270, -117,118,91,89,90,161,164,223,194,221,117,118,118,91,89,90,3,2,2,3,2,1,59,60,60,62,120,121,90,1,1,1,1,3,2,240,241,242,1,0,0,0,138,138,0,0,0,0,3,209,210,183,212,213,213,181,181,184,210,211,3,2,2,2,2,1,6,6,6,6,1,3,39,32,30,30,109,219,193,194,221,3,2,180,213,212,212,182,2,2,269,301,301,271,3,156,158,1,298,299, -241,242,117,118,119,190,223,194,221,146,147,147,148,88,121,90,146,148,3,3,2,59,62,121,121,121,120,120,63,61,1,1,0,0,3,298,272,244,241,242,204,205,0,0,204,178,176,150,0,0,2,209,210,210,210,210,210,211,6,6,3,3,1,3,2,6,6,6,6,6,1,1,31,109,2,240,241,242,219,221,39,2,2,209,183,212,212,182,1,240,243,301,273,300,156,159,160,158,3,1, -301,244,242,5,2,190,223,192,146,149,0,176,177,88,120,90,175,150,148,3,3,88,121,120,121,92,91,121,121,63,61,0,0,0,0,1,269,301,270,244,242,1,156,158,2,204,205,205,178,150,0,2,1,9,3,3,6,6,6,3,2,1,1,2,6,6,6,6,6,6,1,240,241,241,241,243,270,244,241,241,242,109,1,2,209,210,210,211,2,269,270,301,271,3,185,217,218,160,157,157, -301,270,271,4,1,190,223,192,175,176,207,207,177,88,120,90,204,178,150,148,3,88,120,120,92,119,117,91,121,120,63,60,0,0,1,1,269,270,270,270,271,1,185,187,1,3,2,2,204,178,150,0,0,0,0,2,3,2,146,148,1,3,1,3,6,6,3,1,3,240,241,243,301,270,301,270,270,270,301,301,244,242,3,34,34,2,34,1,240,243,270,270,271,156,159,218,186,186,217,217, -270,301,271,3,161,164,223,192,175,176,176,208,177,88,120,63,61,204,205,206,2,88,89,120,90,1,2,117,118,91,121,121,121,63,61,1,269,301,301,270,271,1,185,187,1,2,1,1,1,204,205,205,178,208,150,147,147,147,149,177,1,1,3,3,1,1,240,241,241,243,270,301,270,270,270,270,270,270,270,301,270,244,241,241,242,2,40,109,269,301,301,270,271,185,218,218,217,218,217,217, -301,270,271,4,190,191,194,221,175,176,176,176,177,88,120,121,90,3,2,2,1,88,120,120,90,3,3,2,2,117,91,121,120,121,90,1,269,301,270,270,271,156,159,187,5,39,1,240,241,242,3,3,204,205,205,205,205,205,205,206,3,1,3,240,241,241,243,301,301,301,270,270,302,270,270,270,270,270,270,270,301,270,270,270,244,241,241,241,243,301,301,301,271,214,215,188,186,186,218,186, -301,273,300,1,190,194,221,146,149,176,176,176,177,88,89,121,63,60,60,60,60,62,89,89,90,2,1,2,3,2,117,91,121,92,119,240,243,270,301,270,271,185,217,187,35,33,240,243,302,244,241,241,242,2,1,3,1,1,2,1,2,240,241,243,270,270,301,301,270,270,270,270,270,270,270,270,273,299,272,270,270,270,273,299,299,272,270,270,301,270,301,301,244,242,36,214,215,188,186,218, -301,271,4,161,164,192,146,149,208,176,176,176,177,117,91,121,120,121,120,89,120,121,120,89,90,3,3,1,1,2,1,88,89,281,282,282,282,282,282,282,282,283,217,187,40,37,269,301,273,299,272,301,271,3,2,2,1,3,1,240,241,243,270,270,301,270,270,270,270,270,270,270,270,270,273,299,300,32,298,299,299,299,300,1,37,298,299,272,301,301,270,301,270,244,242,1,5,214,188,186, -299,300,3,190,191,192,175,208,0,176,176,176,150,148,88,89,120,89,120,120,89,120,120,121,90,2,3,3,2,3,3,117,91,310,311,311,311,311,311,311,311,312,218,160,158,240,243,273,300,1,298,272,244,241,241,241,241,241,241,243,270,270,301,270,270,270,270,270,270,270,270,270,270,270,271,2,40,69,70,70,71,38,3,69,70,71,38,298,299,272,301,270,270,301,244,241,242,3,185,217, -147,148,1,190,222,192,204,178,176,176,176,176,179,206,88,120,121,92,118,118,118,118,118,118,119,1,2,1,1,2,1,1,117,119,298,272,301,301,270,270,271,185,218,189,216,269,270,271,2,2,1,298,272,270,301,270,270,301,301,301,270,270,270,302,270,270,270,270,270,270,270,270,270,270,244,242,109,127,128,101,73,70,70,72,99,73,71,33,35,298,272,270,270,270,301,270,271,3,214,215, -176,177,161,164,222,165,163,204,178,207,176,179,206,59,62,0,92,119,3,2,2,3,1,3,1,3,2,2,2,3,2,2,3,3,2,298,272,270,301,301,271,185,186,187,240,243,270,244,242,2,0,2,298,272,301,301,301,270,301,270,270,270,270,273,299,299,299,272,270,270,270,270,270,270,270,244,241,242,34,127,128,128,101,99,99,99,73,70,71,30,269,270,270,270,270,270,244,242,30,34, -176,177,190,222,222,191,165,163,204,205,205,206,59,62,89,89,90,2,1,3,2,3,2,2,1,2,1,0,1,3,0,1,2,0,156,158,298,299,299,299,300,185,217,187,298,299,272,302,271,2,2,3,3,298,272,301,270,270,270,270,270,270,273,300,35,33,33,269,270,270,270,270,270,270,270,270,270,244,241,241,242,4,127,128,101,130,130,99,100,36,269,270,270,270,302,270,270,244,241,242, -176,177,190,191,223,191,222,165,162,162,162,163,88,89,89,120,63,61,3,1,1,2,3,3,3,2,1,3,2,2,1,1,1,3,185,160,157,157,157,157,157,159,186,160,158,3,298,299,300,1,1,2,1,1,298,272,270,270,270,270,270,270,271,40,2,39,37,269,270,270,270,270,270,270,270,270,270,270,270,270,271,34,38,33,127,128,128,128,129,40,269,270,270,270,270,270,270,270,270,244 +1,0,60,62,121,90,161,162,162,163,1,59,60,61,2,3,1,0,0,3,0,3,1,2,3,2,1,1,1,3,1,175,0,1,6,6,6,6,6,1,117,91,121,63,61,1,1,209,183,213,212,212,213,155,153,3,151,152,154,181,184,211,1,3,2,2,1,6,6,3,2,1,2,1,1,2,3,1,190,192,34,36,2,2,3,151,152,154,182,3,1,240,243,270,266,292,292,265,270,301, +59,62,89,121,92,119,190,191,223,192,59,62,89,63,60,61,2,1,3,0,3,2,2,2,1,59,60,60,61,1,2,204,206,0,0,0,0,0,0,1,1,117,118,118,119,3,3,2,209,183,212,181,213,181,155,152,154,213,212,184,211,3,9,1,2,2,6,6,6,6,2,1,2,39,36,37,37,161,164,165,163,3,1,151,152,154,213,184,211,2,240,243,301,266,293,186,218,291,265,270, +117,118,91,89,90,161,164,223,194,221,117,118,118,91,89,90,3,2,2,3,2,1,59,60,60,62,120,121,90,1,1,1,1,3,2,240,241,242,1,0,0,0,138,138,0,0,0,0,3,209,210,183,212,213,213,181,181,184,210,211,3,2,2,2,2,1,6,6,6,6,1,3,39,32,30,30,109,219,193,194,221,3,2,180,213,212,212,182,2,2,269,301,301,264,186,218,218,218,291,265, +241,242,117,118,119,190,223,194,221,146,147,147,148,88,121,90,146,148,3,3,2,59,62,121,121,121,120,120,63,61,1,1,0,0,3,298,272,244,241,242,204,205,0,0,204,178,176,150,0,0,2,209,210,210,210,210,210,211,6,6,3,3,1,3,2,6,6,6,6,6,1,1,31,109,2,240,241,242,219,221,39,2,2,209,183,212,212,182,1,240,243,301,266,293,217,186,217,218,217,291, +301,244,242,5,2,190,223,192,146,149,0,176,177,88,120,90,175,150,148,3,3,88,121,120,121,92,91,121,121,63,61,0,0,0,0,1,269,301,270,244,242,1,156,158,2,204,205,205,178,150,0,2,1,9,3,3,6,6,6,3,2,1,1,2,6,6,6,6,6,6,1,240,241,241,241,243,270,244,241,241,242,109,1,2,209,210,210,211,2,269,270,301,264,186,217,217,217,218,186,186, +301,270,271,4,1,190,223,192,175,176,207,207,177,88,120,90,204,178,150,148,3,88,120,120,92,119,117,91,121,120,63,60,0,0,1,1,269,270,270,270,271,1,185,187,1,3,2,2,204,178,150,0,0,0,0,2,3,2,146,148,1,3,1,3,6,6,3,1,3,240,241,243,301,270,301,270,270,270,301,301,244,242,3,34,34,2,34,1,240,243,270,270,264,186,186,233,235,186,217,217, +270,301,271,3,161,164,223,192,175,176,176,208,177,88,120,63,61,204,205,206,2,88,89,120,90,1,2,117,118,91,121,121,121,63,61,1,269,301,301,270,271,1,185,187,1,2,1,1,1,204,205,205,178,208,150,147,147,147,149,177,1,1,3,3,1,1,240,241,241,243,270,301,270,270,270,270,270,270,270,301,270,244,241,241,242,2,40,109,269,301,301,270,264,186,218,262,237,235,217,217, +301,270,271,4,190,191,194,221,175,176,176,176,177,88,120,121,90,3,2,2,1,88,120,120,90,3,3,2,2,117,91,121,120,121,90,1,269,301,270,270,271,156,159,187,5,39,1,240,241,242,3,3,204,205,205,205,205,205,205,206,3,1,3,240,241,241,243,266,292,265,270,270,302,270,270,270,270,270,270,270,301,270,270,270,244,241,241,241,243,301,301,301,264,217,218,262,270,264,218,186, +301,273,300,1,190,194,221,146,149,176,176,176,177,88,89,121,63,60,60,60,60,62,89,89,90,2,1,2,3,2,117,91,121,92,119,240,243,270,301,270,271,185,217,187,35,33,240,243,302,244,241,241,242,2,1,3,1,1,2,1,2,240,241,243,270,270,266,293,186,291,265,270,270,270,270,270,273,299,272,270,270,270,273,299,299,272,270,270,301,270,301,301,264,186,233,236,266,293,186,218, +301,271,4,161,164,192,146,149,208,176,176,176,177,117,91,121,120,121,120,89,120,121,120,89,90,3,3,1,1,2,1,88,89,281,282,282,282,282,282,282,282,283,217,187,40,37,269,301,273,299,272,301,271,3,2,2,1,3,1,240,241,243,270,270,301,270,264,217,186,218,262,270,270,270,273,299,300,32,298,299,299,299,300,1,37,298,299,272,301,301,270,301,237,234,236,266,293,186,217,186, +299,300,3,190,191,192,175,208,0,176,176,176,150,148,88,89,120,89,120,120,89,120,120,121,90,2,3,3,2,3,3,117,91,310,311,311,311,311,311,311,311,312,218,160,158,240,243,273,300,1,298,272,244,241,241,241,241,241,241,243,270,270,301,270,270,270,237,235,218,233,236,270,270,270,271,2,40,69,70,70,71,38,3,69,70,71,38,298,299,272,301,270,270,301,263,264,186,218,186,233, +147,148,1,190,222,192,204,178,176,176,176,176,179,206,88,120,121,92,118,118,118,118,118,118,119,1,2,1,1,2,1,1,117,119,298,272,301,301,270,270,271,185,218,189,216,269,270,271,2,2,1,298,272,270,301,270,270,301,301,301,270,270,270,302,270,270,270,237,235,262,270,270,270,270,244,242,109,127,128,101,73,70,70,72,99,73,71,33,35,298,272,270,270,270,301,264,186,217,233,236, +176,177,161,164,222,165,163,204,178,207,176,179,206,59,62,0,92,119,3,2,2,3,1,3,1,3,2,2,2,3,2,2,3,3,2,298,272,270,301,301,271,185,186,187,240,243,270,244,242,2,0,2,298,272,301,301,301,270,301,270,270,270,270,273,299,299,299,272,237,236,270,270,270,270,270,244,241,242,34,127,128,128,101,99,99,99,73,70,71,30,269,270,270,270,270,237,234,234,236,266, +176,177,190,222,222,191,165,163,204,205,205,206,59,62,89,89,90,2,1,3,2,3,2,2,1,2,1,0,1,3,0,1,2,0,156,158,298,299,299,299,300,185,217,187,298,299,272,302,271,2,2,3,3,298,272,301,270,270,270,270,270,270,273,300,35,33,33,269,270,270,270,270,270,270,270,270,270,244,241,241,242,4,127,128,101,130,130,99,100,36,269,270,270,270,302,270,270,263,266,293, +176,177,190,191,223,191,222,165,162,162,162,163,88,89,89,120,63,61,3,1,1,2,3,3,3,2,1,3,2,2,1,1,1,3,185,160,157,157,157,157,157,159,186,160,158,3,298,299,300,1,1,2,1,1,298,272,270,270,270,270,270,270,271,40,2,39,37,269,270,270,270,270,270,270,270,270,270,270,270,270,271,34,38,33,127,128,128,128,129,40,269,270,270,270,270,270,270,270,237,234 diff --git a/assets-cg/maps/tileset.tsx b/assets-cg/maps/tileset.tsx index 6bb32b5..e00d5ac 100644 --- a/assets-cg/maps/tileset.tsx +++ b/assets-cg/maps/tileset.tsx @@ -57,9 +57,12 @@ - - + + + + + @@ -79,8 +82,11 @@ - - + + + + + @@ -100,8 +106,9 @@ - - + + + @@ -360,16 +367,29 @@ + + + + + + + + + + + + + diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png index 59fbd7e7132a6e983588005294432e6b41ffaf2e..e66d5da92cd8402866f635daba3cfc3e29d2b44f 100644 GIT binary patch delta 33736 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 Bb&~)9 diff --git a/include/engine.h b/include/engine.h index aeb56dd..a8eec7b 100644 --- a/include/engine.h +++ b/include/engine.h @@ -20,7 +20,7 @@ void engine_draw(struct Game const *game); /*draw the map around the player*/ void engine_draw_map(struct Game const *game); /*draw the player*/ -void engine_draw_player(struct Player const *player); +void engine_draw_player(struct Game const *game); /*move the player to the direction*/ int engine_move(struct Game *game, int direction); /*update the player animation*/ diff --git a/include/map.h b/include/map.h index 7149aca..0171932 100644 --- a/include/map.h +++ b/include/map.h @@ -25,3 +25,5 @@ enum map_state { int map_walkable(struct Map const *map, int x, int y); /*get the tile under the player*/ int map_get_player_tile(struct Game const *game); + +void generate_interior_map(struct Game *game); \ No newline at end of file diff --git a/include/player.h b/include/player.h index 1f91275..07bdd85 100644 --- a/include/player.h +++ b/include/player.h @@ -21,3 +21,4 @@ struct Player { /*return the info tile value the player is facing to*/ int player_facing(struct Game const *game); +void set_player_xy(struct Player *player, int x, int y); \ No newline at end of file diff --git a/src/engine.c b/src/engine.c index af0b117..f3f3749 100644 --- a/src/engine.c +++ b/src/engine.c @@ -12,82 +12,10 @@ /*draw the current state of the game*/ void engine_draw(struct Game const *game) { dclear(game->background); - //engine_draw_map_around_player(game); engine_draw_map(game); - engine_draw_player(game->player); -} - -/*draw the map around the player*/ -void engine_draw_map_around_player(struct Game const *game) { - const int level_width = game->map->w; - const int taillemap = game->map->w * game->map->h; - const int posx = game->player->show_x; - const int posy = game->player->show_y; - - const int coo_player_map = game->player->x + game->player->y*level_width; //the index of the player on the map - int beginmap = coo_player_map - PLAYER_VIEW_X - level_width*PLAYER_VIEW_Y; //compute the theorical top left corner - int beginline = coo_player_map - PLAYER_VIEW_Y*level_width - coo_player_map%level_width; //index of the tile wich begin the row - - //anti begin oob - if(beginmap < 0) { - beginmap = game->player->x - PLAYER_VIEW_X; - if(beginmap < 0) beginmap = 0; - } - - //anti horizontal oob - if((coo_player_map - PLAYER_VIEW_X)%level_width > coo_player_map%level_width) { - beginmap = beginline > 0 ? beginline : 0; - } - - int next = game->player->x + PLAYER_VIEW_X + beginmap/level_width * level_width; //index of the top right corner - int endline = beginmap+level_width-beginmap%level_width-1; //index of the tile wich end the row - - if(next > endline) next = endline; - if(next < 0) next = game->player->x + PLAYER_VIEW_X; - - int indypro = game->player->y + PLAYER_VIEW_Y; //y value of the bottom row - //anti bottom oob - if(indypro > taillemap/level_width-1) indypro = taillemap/level_width-1; - - int endmap = next%level_width + level_width*indypro; //index of the bottom right corner - int ecart = next - beginmap; //number of column to draw - - //player x, y on the compute map - int xcentre = 0, ycentre = 0; - - //calculate the player position in the generated map - for(int i = beginmap; i < coo_player_map; i++) { - xcentre++; - - if(i == next + ycentre * level_width) { - ycentre++; - xcentre=0; - i = beginmap + ycentre*level_width-1; - } - } - - int j = 0; - int x = posx-xcentre; - for(int i = beginmap; i <= endmap; i++) { - int y = j + (posy-ycentre); - - for(int layer = 0; layer < game->map->nb_layers; layer++) { - int tile = game->map->layers[layer][i]-1; - if(tile != -1) { - int tile_x = tile % TILESET_WIDTH; - int tile_y = tile / TILESET_WIDTH; - dsubimage(x * 16 - game->player->anim.dx * 3, y * 16 - game->player->anim.dy * 3, - game->map->tileset, tile_x * 16, tile_y * 16, 16, 16, DIMAGE_NONE); - } - } - - x++; - if(i==beginmap+ecart+j*level_width) { - j++; - x=posx-xcentre; - i = beginmap + j*level_width-1; - } - } + engine_draw_player(game); + dprint(1,15,C_BLACK,"%d:%d",game->camera->x, game->camera->y); + dprint(1,30,C_BLACK,"%d:%d",game->map->w, game->map->h); } void engine_draw_map(struct Game const *game) { @@ -99,14 +27,13 @@ void engine_draw_map(struct Game const *game) { for (int y = -1 ; y <= DHEIGHT / TILE_SIZE + 1; y++) { for (int x = -1 ; x <= DWIDTH / TILE_SIZE + 1; x++) { unsigned int tile_id = 0; - if(game->map->w > x && game->map->h > y) { - //detect if the map is oob - int indexY = (y + y_offset / TILE_SIZE); - int indexX = (x + x_offset / TILE_SIZE); - if(indexX >= 0 && indexX < game->map->w - && indexY >= 0 && indexY < game->map->h) - tile_id = game->map->layers[layer][indexX + indexY * game->map->w]; - } + //detect if the map is oob + int indexY = (y + y_offset / TILE_SIZE); + int indexX = (x + x_offset / TILE_SIZE); + if(indexX >= 0 && indexX < game->map->w + && indexY >= 0 && indexY < game->map->h) + tile_id = game->map->layers[layer][indexX + indexY * game->map->w]; + //tile_id = game->map->layers[layer][(x + x_offset / TILE_SIZE) + (y + y_offset / TILE_SIZE) * game->map->w]; if (tile_id != 0) { tile_id--; @@ -125,9 +52,17 @@ void engine_draw_map(struct Game const *game) { } /*draw the player*/ -void engine_draw_player(struct Player const *player) { - dframe(player->show_x * 16, player->show_y * 16 - 5, player->anim.img); //draw the player 5 pixel up - dprint(1,1,C_BLACK,"%d:%d",player->x, player->y); +void engine_draw_player(struct Game const *game) { + if(game->map->w > DWIDTH / TILE_SIZE + 1 && + game->map->h > DHEIGHT / TILE_SIZE + 1) { + dframe(game->player->show_x * 16, game->player->show_y * 16 - 5, game->player->anim.img); //draw the player 5 pixel up + } else { + int offset_map_x = (DWIDTH / TILE_SIZE - game->map->w + 1)/2; + int offset_map_y = (DHEIGHT / TILE_SIZE - game->map->h + 1)/2; + dframe((game->player->x + offset_map_x) * 16, + (game->player->y + offset_map_y) * 16 - 5, game->player->anim.img); //draw the player 5 pixel up + } + dprint(1,1,C_BLACK,"%d:%d",game->player->x, game->player->y); } /*move the player to the direction*/ @@ -142,8 +77,11 @@ int engine_move(struct Game *game, int direction) { game->player->x += dx; game->player->y += dy; - game->camera->x += dx*16; - game->camera->y += dy*16; + if(game->map->w > DWIDTH / TILE_SIZE + 1 && + game->map->h > DHEIGHT / TILE_SIZE + 1) { + game->camera->x += dx*16; + game->camera->y += dy*16; + } game->player->idle = !anim_player_walking(&game->player->anim, 1); engine_check_position(game); @@ -160,7 +98,6 @@ int engine_move(struct Game *game, int direction) { /*update the player animation*/ void engine_tick(struct Game *game, int dt) { game->player->anim.duration -= dt; - vec_lerp(game->camera, game->player, 0.05); if(game->player->anim.duration <= 0) { game->player->idle = !game->player->anim.function(&game->player->anim, 0); } @@ -188,12 +125,8 @@ void engine_check_position(struct Game *game) { int player_curr_tile = map_get_player_tile(game); if(player_curr_tile == TILE_DOOR) { engine_set_background(game, C_BLACK); + generate_interior_map(game); } else { engine_set_background(game, C_WHITE); } -} - -void vec_lerp(struct Camera *from, struct Player const *to, float scale) { - from->x = from->x * (1 - scale) + (to->x*TILE_SIZE + to->x_mid) * scale; - from->y = from->y * (1 - scale) + (to->y*TILE_SIZE + to->y_mid) * scale; } \ No newline at end of file diff --git a/src/map.c b/src/map.c index 4a551ca..faa7330 100644 --- a/src/map.c +++ b/src/map.c @@ -1,6 +1,8 @@ #include "map.h" #include "engine.h" #include "player.h" +#include "camera.h" +#include "define.h" /*check if a tile is walkable*/ int map_walkable(struct Map const *map, int x, int y) { @@ -15,3 +17,11 @@ int map_get_player_tile(struct Game const *game) { return game->map->info_map[game->player->x + game->map->w * game->player->y]; return 0; } + +void generate_interior_map(struct Game *game) { + extern struct Map in_1; + game->map = &in_1; + set_player_xy(game->player, 3,3); + game->camera->x = in_1.w/2 * TILE_SIZE + game->player->x_mid; + game->camera->y = in_1.h/2 * TILE_SIZE + game->player->y_mid; +} \ No newline at end of file diff --git a/src/player.c b/src/player.c index 0ad9d49..78871e8 100644 --- a/src/player.c +++ b/src/player.c @@ -21,3 +21,8 @@ int player_facing(struct Game const *game) { } return TILE_SOLID; } + +void set_player_xy(struct Player *player, int x, int y) { + player->x = x; + player->y = y; +} \ No newline at end of file