diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 9508888ff381d65d4533aa0985e83576d0bc85c2..0000000000000000000000000000000000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-    "files.associations": {
-        "array": "cpp",
-        "atomic": "cpp",
-        "bit": "cpp",
-        "*.tcc": "cpp",
-        "cctype": "cpp",
-        "charconv": "cpp",
-        "chrono": "cpp",
-        "clocale": "cpp",
-        "cmath": "cpp",
-        "compare": "cpp",
-        "concepts": "cpp",
-        "cstdarg": "cpp",
-        "cstddef": "cpp",
-        "cstdint": "cpp",
-        "cstdio": "cpp",
-        "cstdlib": "cpp",
-        "ctime": "cpp",
-        "cwchar": "cpp",
-        "cwctype": "cpp",
-        "deque": "cpp",
-        "string": "cpp",
-        "unordered_map": "cpp",
-        "vector": "cpp",
-        "exception": "cpp",
-        "algorithm": "cpp",
-        "functional": "cpp",
-        "iterator": "cpp",
-        "memory": "cpp",
-        "memory_resource": "cpp",
-        "numeric": "cpp",
-        "optional": "cpp",
-        "random": "cpp",
-        "ratio": "cpp",
-        "string_view": "cpp",
-        "system_error": "cpp",
-        "tuple": "cpp",
-        "type_traits": "cpp",
-        "utility": "cpp",
-        "format": "cpp",
-        "initializer_list": "cpp",
-        "iomanip": "cpp",
-        "iosfwd": "cpp",
-        "iostream": "cpp",
-        "istream": "cpp",
-        "limits": "cpp",
-        "new": "cpp",
-        "numbers": "cpp",
-        "ostream": "cpp",
-        "span": "cpp",
-        "sstream": "cpp",
-        "stdexcept": "cpp",
-        "streambuf": "cpp",
-        "cinttypes": "cpp",
-        "typeinfo": "cpp",
-        "variant": "cpp",
-        "map": "cpp",
-        "cstring": "cpp",
-        "fstream": "cpp",
-        "any": "cpp",
-        "bitset": "cpp",
-        "codecvt": "cpp",
-        "condition_variable": "cpp",
-        "csignal": "cpp",
-        "list": "cpp",
-        "regex": "cpp",
-        "mutex": "cpp",
-        "semaphore": "cpp",
-        "stop_token": "cpp",
-        "thread": "cpp",
-        "buffer": "cpp",
-        "internet": "cpp",
-        "socket": "cpp"
-    },
-    "C_Cpp.errorSquiggles": "disabled"
-}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05f7b7a83fc88cbed00022eb5b1726676927bd84..f6c8cd1627b73154f24e8c9c83a3c72ee7643e11 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,7 @@ find_package(PkgConfig REQUIRED)
 pkg_check_modules(SDL2 REQUIRED sdl2)
 PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)
 pkg_check_modules(SDL2NET REQUIRED SDL2_net)
+pkg_check_modules(SDL2MIXER REQUIRED SDL2_mixer)
 
 if(SDL2_FOUND)
   message(STATUS "SDL2 FOUND")
@@ -15,9 +16,11 @@ endif()
 if(SDL2NET_FOUND)
   message(STATUS "SDL2_net FOUND")
 endif()
-
+if(SDL2MIXER_FOUND)
+  message(STATUS "SDL2_mixer Found" )
+endif()
 set(CMAKE_CXX_COMPILER g++)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib")
 set(BOX2D_LIB "box2d")
 set(QRCODEGEN_LIB "qrcodegencpp")
 
@@ -35,6 +38,7 @@ include_directories(
   ${SDL2_INCLUDE_DIRS} 
   ${SDL2NET_INCLUDE_DIRS}
   ${SDL2IMAGE_INCLUDE_DIRS}
+  ${SDL2MIXER_INCLUDE_DIRS}
   ${PROJECT_SOURCE_DIR}/include
   ${PROJECT_SOURCE_DIR}/src
 )
diff --git a/apps/main.cpp b/apps/main.cpp
index d4e67d424f8b15692cd12e8711d5e951005dfb57..804a86dd8363fabecef02569cd9b818cde0e53d7 100644
--- a/apps/main.cpp
+++ b/apps/main.cpp
@@ -7,7 +7,7 @@ using namespace std;
 
 int main() 
 {
-    std::srand(0);
+    std::srand(time(NULL));
     /*FILE* mapFile = fopen("../assets/maps/map.txt", "w");
 
     // Generate and write the map data to the file
diff --git a/assets/sound/Skeleton Footstep - QuickSounds.com.mp3 b/assets/sound/Skeleton Footstep - QuickSounds.com.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..ab9703b6cc0002c1eacfefe2dbd060371fa237d1
Binary files /dev/null and b/assets/sound/Skeleton Footstep - QuickSounds.com.mp3 differ
diff --git a/assets/sound/Skeleton-Footstep-QuickSounds.com_1.wav b/assets/sound/Skeleton-Footstep-QuickSounds.com_1.wav
new file mode 100644
index 0000000000000000000000000000000000000000..5c61e5e5a7c647bf2b5c467492c71bf9ba08abcd
Binary files /dev/null and b/assets/sound/Skeleton-Footstep-QuickSounds.com_1.wav differ
diff --git a/assets/sound/arrowHit.mp3 b/assets/sound/arrowHit.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..3ab5ad833cdb21f94841acaa03cdd9d67e53c9a8
Binary files /dev/null and b/assets/sound/arrowHit.mp3 differ
diff --git a/assets/sound/arrowHit.wav b/assets/sound/arrowHit.wav
new file mode 100644
index 0000000000000000000000000000000000000000..c5617015f256047ab2eb1df46089013fa5c8cc35
Binary files /dev/null and b/assets/sound/arrowHit.wav differ
diff --git a/assets/sound/backgroundMusic.mp3 b/assets/sound/backgroundMusic.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..cecde0a62d783768811b1a0277b6a2f010ff737f
Binary files /dev/null and b/assets/sound/backgroundMusic.mp3 differ
diff --git a/assets/sound/backgroundMusic.wav b/assets/sound/backgroundMusic.wav
new file mode 100644
index 0000000000000000000000000000000000000000..c370db9ecba56cc6ac2fd9da0648a91cbc0b5a85
Binary files /dev/null and b/assets/sound/backgroundMusic.wav differ
diff --git a/assets/sound/bow_shoot.mp3 b/assets/sound/bow_shoot.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..7794ec7849b339d4588fb4de15599bd7d7f1d569
Binary files /dev/null and b/assets/sound/bow_shoot.mp3 differ
diff --git a/assets/sound/bow_shoot.wav b/assets/sound/bow_shoot.wav
new file mode 100644
index 0000000000000000000000000000000000000000..9d361e89f5010cf8f8a963e09d5b67e5930e6029
Binary files /dev/null and b/assets/sound/bow_shoot.wav differ
diff --git a/assets/sound/monster-zombie-scream-105972.wav b/assets/sound/monster-zombie-scream-105972.wav
new file mode 100644
index 0000000000000000000000000000000000000000..69299c78d6a396979d55e3e8261516f6a62601d7
Binary files /dev/null and b/assets/sound/monster-zombie-scream-105972.wav differ
diff --git a/assets/sound/pixel-fight-8-bit-arcade-music-background-music-for-video-208775.mp3 b/assets/sound/pixel-fight-8-bit-arcade-music-background-music-for-video-208775.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4b0b6048a3b2baa8e19a4d59f41df880c5b5c5ac
Binary files /dev/null and b/assets/sound/pixel-fight-8-bit-arcade-music-background-music-for-video-208775.mp3 differ
diff --git a/assets/sound/walkingGrass.wav b/assets/sound/walkingGrass.wav
new file mode 100644
index 0000000000000000000000000000000000000000..bb807cdac453bff483fae4f048b883bfbda400e9
Binary files /dev/null and b/assets/sound/walkingGrass.wav differ
diff --git a/assets/sound/walkingSkeleton.mp3 b/assets/sound/walkingSkeleton.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..c95315c31e047cd1fe20317c7dc9669af5b096cf
Binary files /dev/null and b/assets/sound/walkingSkeleton.mp3 differ
diff --git a/assets/sound/walkingSkeleton_1.wav b/assets/sound/walkingSkeleton_1.wav
new file mode 100644
index 0000000000000000000000000000000000000000..f46d49ee41d5e079290791172314726b4ceedd6c
Binary files /dev/null and b/assets/sound/walkingSkeleton_1.wav differ
diff --git a/build/.cmake/api/v1/reply/cache-v2-3d527f912011dc1ea26d.json b/build/.cmake/api/v1/reply/cache-v2-345ef04e5b38fdd4fb0c.json
similarity index 85%
rename from build/.cmake/api/v1/reply/cache-v2-3d527f912011dc1ea26d.json
rename to build/.cmake/api/v1/reply/cache-v2-345ef04e5b38fdd4fb0c.json
index f677e0dbbea37f0fff6bd034a7c64a1889ff537f..75d235f333e3bef62d825030425c60b3dfed96df 100644
--- a/build/.cmake/api/v1/reply/cache-v2-3d527f912011dc1ea26d.json
+++ b/build/.cmake/api/v1/reply/cache-v2-345ef04e5b38fdd4fb0c.json
@@ -1661,6 +1661,426 @@
 			"type" : "INTERNAL",
 			"value" : "2.0.5"
 		},
+		{
+			"name" : "SDL2MIXER_CFLAGS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-D_REENTRANT;-I/usr/include/SDL2"
+		},
+		{
+			"name" : "SDL2MIXER_CFLAGS_I",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_CFLAGS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-D_REENTRANT"
+		},
+		{
+			"name" : "SDL2MIXER_FOUND",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "1"
+		},
+		{
+			"name" : "SDL2MIXER_INCLUDEDIR",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/include"
+		},
+		{
+			"name" : "SDL2MIXER_INCLUDE_DIRS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/include/SDL2"
+		},
+		{
+			"name" : "SDL2MIXER_LDFLAGS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-L/usr/lib/x86_64-linux-gnu;-lSDL2_mixer;-lSDL2"
+		},
+		{
+			"name" : "SDL2MIXER_LDFLAGS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_LIBDIR",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/lib/x86_64-linux-gnu"
+		},
+		{
+			"name" : "SDL2MIXER_LIBRARIES",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "SDL2_mixer;SDL2"
+		},
+		{
+			"name" : "SDL2MIXER_LIBRARY_DIRS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/lib/x86_64-linux-gnu"
+		},
+		{
+			"name" : "SDL2MIXER_LIBS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_LIBS_L",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_LIBS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_LIBS_PATHS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_MODULE_NAME",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "SDL2_mixer"
+		},
+		{
+			"name" : "SDL2MIXER_PREFIX",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr"
+		},
+		{
+			"name" : "SDL2MIXER_SDL2_mixer_INCLUDEDIR",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_SDL2_mixer_LIBDIR",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_SDL2_mixer_PREFIX",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_SDL2_mixer_VERSION",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_CFLAGS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-D_REENTRANT;-I/usr/include/SDL2"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_CFLAGS_I",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_CFLAGS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-D_REENTRANT"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_INCLUDE_DIRS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/include/SDL2"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LDFLAGS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-L/usr/lib/x86_64-linux-gnu;-lSDL2_mixer;-lSDL2;-lm;-lasound;-lm;-ldl;-lpthread;-lpulse-simple;-pthread;-lpulse;-pthread;-lX11;-lXext;-lXcursor;-lXinerama;-lXi;-lXfixes;-lXrandr;-lXss;-lXxf86vm;-ldrm;-lgbm;-lwayland-egl;-lwayland-client;-lwayland-cursor;-lxkbcommon;-ldecor-0;-lpthread;-lrt"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LDFLAGS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "-pthread"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBDIR",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBRARIES",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "SDL2_mixer;SDL2;m;asound;m;dl;pthread;pulse-simple;pulse;X11;Xext;Xcursor;Xinerama;Xi;Xfixes;Xrandr;Xss;Xxf86vm;drm;gbm;wayland-egl;wayland-client;wayland-cursor;xkbcommon;decor-0;pthread;rt"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBRARY_DIRS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "/usr/lib/x86_64-linux-gnu"
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBS_L",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBS_OTHER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_STATIC_LIBS_PATHS",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : ""
+		},
+		{
+			"name" : "SDL2MIXER_VERSION",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "2.0.4"
+		},
 		{
 			"name" : "SDL2NET_CFLAGS",
 			"properties" : 
@@ -2525,6 +2945,18 @@
 			"type" : "INTERNAL",
 			"value" : "REQUIRED;sdl2"
 		},
+		{
+			"name" : "__pkg_config_arguments_SDL2MIXER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "REQUIRED;SDL2_mixer"
+		},
 		{
 			"name" : "__pkg_config_arguments_SDL2NET",
 			"properties" : 
@@ -2561,6 +2993,18 @@
 			"type" : "INTERNAL",
 			"value" : "1"
 		},
+		{
+			"name" : "__pkg_config_checked_SDL2MIXER",
+			"properties" : 
+			[
+				{
+					"name" : "HELPSTRING",
+					"value" : ""
+				}
+			],
+			"type" : "INTERNAL",
+			"value" : "1"
+		},
 		{
 			"name" : "__pkg_config_checked_SDL2NET",
 			"properties" : 
@@ -2605,6 +3049,38 @@
 			"type" : "FILEPATH",
 			"value" : "/usr/lib/x86_64-linux-gnu/libSDL2_image.so"
 		},
+		{
+			"name" : "pkgcfg_lib_SDL2MIXER_SDL2",
+			"properties" : 
+			[
+				{
+					"name" : "ADVANCED",
+					"value" : "1"
+				},
+				{
+					"name" : "HELPSTRING",
+					"value" : "Path to a library."
+				}
+			],
+			"type" : "FILEPATH",
+			"value" : "/usr/lib/x86_64-linux-gnu/libSDL2.so"
+		},
+		{
+			"name" : "pkgcfg_lib_SDL2MIXER_SDL2_mixer",
+			"properties" : 
+			[
+				{
+					"name" : "ADVANCED",
+					"value" : "1"
+				},
+				{
+					"name" : "HELPSTRING",
+					"value" : "Path to a library."
+				}
+			],
+			"type" : "FILEPATH",
+			"value" : "/usr/lib/x86_64-linux-gnu/libSDL2_mixer.so"
+		},
 		{
 			"name" : "pkgcfg_lib_SDL2NET_SDL2",
 			"properties" : 
diff --git a/build/.cmake/api/v1/reply/codemodel-v2-6c58c33558a0a3ff8e8d.json b/build/.cmake/api/v1/reply/codemodel-v2-29e8a0f78995803efcdc.json
similarity index 93%
rename from build/.cmake/api/v1/reply/codemodel-v2-6c58c33558a0a3ff8e8d.json
rename to build/.cmake/api/v1/reply/codemodel-v2-29e8a0f78995803efcdc.json
index 16c7bc7e845b9cc577c427bcea0a388018d0507e..77e3c93deb689cf0f38fe9caa4fb5e8aaeefecc0 100644
--- a/build/.cmake/api/v1/reply/codemodel-v2-6c58c33558a0a3ff8e8d.json
+++ b/build/.cmake/api/v1/reply/codemodel-v2-29e8a0f78995803efcdc.json
@@ -39,7 +39,7 @@
 				{
 					"directoryIndex" : 0,
 					"id" : "MCC::@6890427a1f51a3e7e1df",
-					"jsonFile" : "target-MCC-42e529f65332209d2aba.json",
+					"jsonFile" : "target-MCC-54f62d6558b3fc65ba49.json",
 					"name" : "MCC",
 					"projectIndex" : 0
 				}
diff --git a/build/.cmake/api/v1/reply/index-2024-06-12T08-09-07-0690.json b/build/.cmake/api/v1/reply/index-2024-06-17T17-03-08-0037.json
similarity index 89%
rename from build/.cmake/api/v1/reply/index-2024-06-12T08-09-07-0690.json
rename to build/.cmake/api/v1/reply/index-2024-06-17T17-03-08-0037.json
index 0284e0ec225d740c290573f03a4d7ae5d17f0dfd..55420be78911ebf8ec45df8174c25136082229e4 100644
--- a/build/.cmake/api/v1/reply/index-2024-06-12T08-09-07-0690.json
+++ b/build/.cmake/api/v1/reply/index-2024-06-17T17-03-08-0037.json
@@ -26,7 +26,7 @@
 	"objects" : 
 	[
 		{
-			"jsonFile" : "codemodel-v2-6c58c33558a0a3ff8e8d.json",
+			"jsonFile" : "codemodel-v2-29e8a0f78995803efcdc.json",
 			"kind" : "codemodel",
 			"version" : 
 			{
@@ -35,7 +35,7 @@
 			}
 		},
 		{
-			"jsonFile" : "cache-v2-3d527f912011dc1ea26d.json",
+			"jsonFile" : "cache-v2-345ef04e5b38fdd4fb0c.json",
 			"kind" : "cache",
 			"version" : 
 			{
@@ -90,7 +90,7 @@
 				"responses" : 
 				[
 					{
-						"jsonFile" : "cache-v2-3d527f912011dc1ea26d.json",
+						"jsonFile" : "cache-v2-345ef04e5b38fdd4fb0c.json",
 						"kind" : "cache",
 						"version" : 
 						{
@@ -99,7 +99,7 @@
 						}
 					},
 					{
-						"jsonFile" : "codemodel-v2-6c58c33558a0a3ff8e8d.json",
+						"jsonFile" : "codemodel-v2-29e8a0f78995803efcdc.json",
 						"kind" : "codemodel",
 						"version" : 
 						{
diff --git a/build/.cmake/api/v1/reply/target-MCC-42e529f65332209d2aba.json b/build/.cmake/api/v1/reply/target-MCC-54f62d6558b3fc65ba49.json
similarity index 85%
rename from build/.cmake/api/v1/reply/target-MCC-42e529f65332209d2aba.json
rename to build/.cmake/api/v1/reply/target-MCC-54f62d6558b3fc65ba49.json
index 2981a19623ec7bd37836fea4a1ba34c13720bf62..d54e8ae511eaf8d387111908e3c10048b4e8b547 100644
--- a/build/.cmake/api/v1/reply/target-MCC-42e529f65332209d2aba.json
+++ b/build/.cmake/api/v1/reply/target-MCC-54f62d6558b3fc65ba49.json
@@ -26,19 +26,19 @@
 			{
 				"command" : 0,
 				"file" : 0,
-				"line" : 28,
+				"line" : 31,
 				"parent" : 0
 			},
 			{
 				"command" : 1,
 				"file" : 0,
-				"line" : 42,
+				"line" : 46,
 				"parent" : 0
 			},
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 34,
+				"line" : 37,
 				"parent" : 0
 			}
 		]
@@ -49,7 +49,7 @@
 			"compileCommandFragments" : 
 			[
 				{
-					"fragment" : " -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib"
+					"fragment" : " -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib"
 				}
 			],
 			"includes" : 
@@ -81,7 +81,8 @@
 				8,
 				9,
 				10,
-				11
+				11,
+				12
 			]
 		}
 	],
@@ -91,7 +92,7 @@
 		"commandFragments" : 
 		[
 			{
-				"fragment" : "-Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib",
+				"fragment" : "-lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib",
 				"role" : "flags"
 			},
 			{
@@ -128,6 +129,16 @@
 				"fragment" : "-lSDL2_ttf",
 				"role" : "libraries"
 			},
+			{
+				"backtrace" : 2,
+				"fragment" : "-lSDL2_mixer",
+				"role" : "libraries"
+			},
+			{
+				"backtrace" : 2,
+				"fragment" : "-lSDL2",
+				"role" : "libraries"
+			},
 			{
 				"backtrace" : 2,
 				"fragment" : "-lbox2d",
@@ -153,6 +164,11 @@
 				"fragment" : "-lSDL2_ttf",
 				"role" : "libraries"
 			},
+			{
+				"backtrace" : 2,
+				"fragment" : "-lSDL2_mixer",
+				"role" : "libraries"
+			},
 			{
 				"backtrace" : 2,
 				"fragment" : "-lbox2d",
@@ -190,7 +206,8 @@
 				8,
 				9,
 				10,
-				11
+				11,
+				12
 			]
 		}
 	],
@@ -262,6 +279,12 @@
 			"path" : "src/manager/RenderManager.cpp",
 			"sourceGroupIndex" : 0
 		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "src/manager/SoundManager.cpp",
+			"sourceGroupIndex" : 0
+		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt
index 7d2eb2494d97f5abc905cd961dd814d9b18c21b6..2ab4b40564b6383b2e6316dc40e2a4a49d67c4c1 100644
--- a/build/CMakeCache.txt
+++ b/build/CMakeCache.txt
@@ -236,6 +236,12 @@ pkgcfg_lib_SDL2IMAGE_SDL2:FILEPATH=/usr/lib/x86_64-linux-gnu/libSDL2.so
 //Path to a library.
 pkgcfg_lib_SDL2IMAGE_SDL2_image:FILEPATH=/usr/lib/x86_64-linux-gnu/libSDL2_image.so
 
+//Path to a library.
+pkgcfg_lib_SDL2MIXER_SDL2:FILEPATH=/usr/lib/x86_64-linux-gnu/libSDL2.so
+
+//Path to a library.
+pkgcfg_lib_SDL2MIXER_SDL2_mixer:FILEPATH=/usr/lib/x86_64-linux-gnu/libSDL2_mixer.so
+
 //Path to a library.
 pkgcfg_lib_SDL2NET_SDL2:FILEPATH=/usr/lib/x86_64-linux-gnu/libSDL2.so
 
@@ -438,6 +444,41 @@ SDL2IMAGE_STATIC_LIBS_L:INTERNAL=
 SDL2IMAGE_STATIC_LIBS_OTHER:INTERNAL=
 SDL2IMAGE_STATIC_LIBS_PATHS:INTERNAL=
 SDL2IMAGE_VERSION:INTERNAL=2.0.5
+SDL2MIXER_CFLAGS:INTERNAL=-D_REENTRANT;-I/usr/include/SDL2
+SDL2MIXER_CFLAGS_I:INTERNAL=
+SDL2MIXER_CFLAGS_OTHER:INTERNAL=-D_REENTRANT
+SDL2MIXER_FOUND:INTERNAL=1
+SDL2MIXER_INCLUDEDIR:INTERNAL=/usr/include
+SDL2MIXER_INCLUDE_DIRS:INTERNAL=/usr/include/SDL2
+SDL2MIXER_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lSDL2_mixer;-lSDL2
+SDL2MIXER_LDFLAGS_OTHER:INTERNAL=
+SDL2MIXER_LIBDIR:INTERNAL=/usr/lib/x86_64-linux-gnu
+SDL2MIXER_LIBRARIES:INTERNAL=SDL2_mixer;SDL2
+SDL2MIXER_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu
+SDL2MIXER_LIBS:INTERNAL=
+SDL2MIXER_LIBS_L:INTERNAL=
+SDL2MIXER_LIBS_OTHER:INTERNAL=
+SDL2MIXER_LIBS_PATHS:INTERNAL=
+SDL2MIXER_MODULE_NAME:INTERNAL=SDL2_mixer
+SDL2MIXER_PREFIX:INTERNAL=/usr
+SDL2MIXER_SDL2_mixer_INCLUDEDIR:INTERNAL=
+SDL2MIXER_SDL2_mixer_LIBDIR:INTERNAL=
+SDL2MIXER_SDL2_mixer_PREFIX:INTERNAL=
+SDL2MIXER_SDL2_mixer_VERSION:INTERNAL=
+SDL2MIXER_STATIC_CFLAGS:INTERNAL=-D_REENTRANT;-I/usr/include/SDL2
+SDL2MIXER_STATIC_CFLAGS_I:INTERNAL=
+SDL2MIXER_STATIC_CFLAGS_OTHER:INTERNAL=-D_REENTRANT
+SDL2MIXER_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include/SDL2
+SDL2MIXER_STATIC_LDFLAGS:INTERNAL=-L/usr/lib/x86_64-linux-gnu;-lSDL2_mixer;-lSDL2;-lm;-lasound;-lm;-ldl;-lpthread;-lpulse-simple;-pthread;-lpulse;-pthread;-lX11;-lXext;-lXcursor;-lXinerama;-lXi;-lXfixes;-lXrandr;-lXss;-lXxf86vm;-ldrm;-lgbm;-lwayland-egl;-lwayland-client;-lwayland-cursor;-lxkbcommon;-ldecor-0;-lpthread;-lrt
+SDL2MIXER_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread
+SDL2MIXER_STATIC_LIBDIR:INTERNAL=
+SDL2MIXER_STATIC_LIBRARIES:INTERNAL=SDL2_mixer;SDL2;m;asound;m;dl;pthread;pulse-simple;pulse;X11;Xext;Xcursor;Xinerama;Xi;Xfixes;Xrandr;Xss;Xxf86vm;drm;gbm;wayland-egl;wayland-client;wayland-cursor;xkbcommon;decor-0;pthread;rt
+SDL2MIXER_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib/x86_64-linux-gnu
+SDL2MIXER_STATIC_LIBS:INTERNAL=
+SDL2MIXER_STATIC_LIBS_L:INTERNAL=
+SDL2MIXER_STATIC_LIBS_OTHER:INTERNAL=
+SDL2MIXER_STATIC_LIBS_PATHS:INTERNAL=
+SDL2MIXER_VERSION:INTERNAL=2.0.4
 SDL2NET_CFLAGS:INTERNAL=-D_REENTRANT;-I/usr/include/SDL2
 SDL2NET_CFLAGS_I:INTERNAL=
 SDL2NET_CFLAGS_OTHER:INTERNAL=-D_REENTRANT
@@ -511,14 +552,20 @@ SDL2_sdl2_VERSION:INTERNAL=
 //linker supports push/pop state
 _CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
 __pkg_config_arguments_SDL2:INTERNAL=REQUIRED;sdl2
+__pkg_config_arguments_SDL2MIXER:INTERNAL=REQUIRED;SDL2_mixer
 __pkg_config_arguments_SDL2NET:INTERNAL=REQUIRED;SDL2_net
 __pkg_config_checked_SDL2:INTERNAL=1
 __pkg_config_checked_SDL2IMAGE:INTERNAL=1
+__pkg_config_checked_SDL2MIXER:INTERNAL=1
 __pkg_config_checked_SDL2NET:INTERNAL=1
 //ADVANCED property for variable: pkgcfg_lib_SDL2IMAGE_SDL2
 pkgcfg_lib_SDL2IMAGE_SDL2-ADVANCED:INTERNAL=1
 //ADVANCED property for variable: pkgcfg_lib_SDL2IMAGE_SDL2_image
 pkgcfg_lib_SDL2IMAGE_SDL2_image-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: pkgcfg_lib_SDL2MIXER_SDL2
+pkgcfg_lib_SDL2MIXER_SDL2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: pkgcfg_lib_SDL2MIXER_SDL2_mixer
+pkgcfg_lib_SDL2MIXER_SDL2_mixer-ADVANCED:INTERNAL=1
 //ADVANCED property for variable: pkgcfg_lib_SDL2NET_SDL2
 pkgcfg_lib_SDL2NET_SDL2-ADVANCED:INTERNAL=1
 //ADVANCED property for variable: pkgcfg_lib_SDL2NET_SDL2_net
diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml
index da79118aa4c1cdc111a615f57333bbb8d91c00fa..66a0088ca834f295ab447ba31b7526c19e72b931 100644
--- a/build/CMakeFiles/CMakeConfigureLog.yaml
+++ b/build/CMakeFiles/CMakeConfigureLog.yaml
@@ -61,8 +61,8 @@ events:
     checks:
       - "Detecting C compiler ABI info"
     directories:
-      source: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu"
-      binary: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu"
+      source: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb"
+      binary: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb"
     cmakeVariables:
       CMAKE_C_FLAGS: ""
       CMAKE_C_FLAGS_DEBUG: "-g"
@@ -71,13 +71,13 @@ events:
       variable: "CMAKE_C_ABI_COMPILED"
       cached: true
       stdout: |
-        Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu'
+        Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb'
         
-        Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_6b9d1/fast
-        /usr/bin/gmake  -f CMakeFiles/cmTC_6b9d1.dir/build.make CMakeFiles/cmTC_6b9d1.dir/build
-        gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu'
-        Building C object CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o
-        /usr/bin/cc   -v -o CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c
+        Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f150f/fast
+        /usr/bin/gmake  -f CMakeFiles/cmTC_f150f.dir/build.make CMakeFiles/cmTC_f150f.dir/build
+        gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb'
+        Building C object CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o
+        /usr/bin/cc   -v -o CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c
         Using built-in specs.
         COLLECT_GCC=/usr/bin/cc
         OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
@@ -87,8 +87,8 @@ events:
         Thread model: posix
         Supported LTO compression algorithms: zlib zstd
         gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/'
-         /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_6b9d1.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpumU4P.s
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/'
+         /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_f150f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccJVH0mX.s
         GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
         	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
         
@@ -108,15 +108,15 @@ events:
         
         GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
         Compiler executable checksum: 50eaa2331df977b8016186198deb2d18
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/'
-         as -v --64 -o CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o /tmp/ccpumU4P.s
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/'
+         as -v --64 -o CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o /tmp/ccJVH0mX.s
         GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
         COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
         LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.'
-        Linking C executable cmTC_6b9d1
-        /snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6b9d1.dir/link.txt --verbose=1
-        /usr/bin/cc  -v -Wl,-v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -o cmTC_6b9d1
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.'
+        Linking C executable cmTC_f150f
+        /snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f150f.dir/link.txt --verbose=1
+        /usr/bin/cc  -v -Wl,-v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -o cmTC_f150f
         Using built-in specs.
         COLLECT_GCC=/usr/bin/cc
         COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
@@ -129,13 +129,13 @@ events:
         gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
         COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
         LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6b9d1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6b9d1.'
-         /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfDsiGD.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6b9d1 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f150f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f150f.'
+         /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccizG1jO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f150f /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
         collect2 version 11.4.0
-        /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfDsiGD.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6b9d1 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+        /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccizG1jO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f150f /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
         GNU ld (GNU Binutils for Ubuntu) 2.38
-        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6b9d1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6b9d1.'
-        gmake[1]: Leaving directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu'
+        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f150f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f150f.'
+        gmake[1]: Leaving directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb'
         
       exitCode: 0
   -
@@ -170,13 +170,13 @@ events:
       Parsed C implicit link information:
         link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
         linker tool regex: [^[ 	]*(->|")?[ 	]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
-        ignore line: [Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu']
+        ignore line: [Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb']
         ignore line: []
-        ignore line: [Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_6b9d1/fast]
-        ignore line: [/usr/bin/gmake  -f CMakeFiles/cmTC_6b9d1.dir/build.make CMakeFiles/cmTC_6b9d1.dir/build]
-        ignore line: [gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-vyRpsu']
-        ignore line: [Building C object CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o]
-        ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c]
+        ignore line: [Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f150f/fast]
+        ignore line: [/usr/bin/gmake  -f CMakeFiles/cmTC_f150f.dir/build.make CMakeFiles/cmTC_f150f.dir/build]
+        ignore line: [gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-DyNgFb']
+        ignore line: [Building C object CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o]
+        ignore line: [/usr/bin/cc   -v -o CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c]
         ignore line: [Using built-in specs.]
         ignore line: [COLLECT_GCC=/usr/bin/cc]
         ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
@@ -186,8 +186,8 @@ events:
         ignore line: [Thread model: posix]
         ignore line: [Supported LTO compression algorithms: zlib zstd]
         ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/']
-        ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_6b9d1.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpumU4P.s]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/']
+        ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_f150f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccJVH0mX.s]
         ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
         ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
         ignore line: []
@@ -207,15 +207,15 @@ events:
         ignore line: []
         ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
         ignore line: [Compiler executable checksum: 50eaa2331df977b8016186198deb2d18]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/']
-        ignore line: [ as -v --64 -o CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o /tmp/ccpumU4P.s]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/']
+        ignore line: [ as -v --64 -o CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o /tmp/ccJVH0mX.s]
         ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
         ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
         ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.']
-        ignore line: [Linking C executable cmTC_6b9d1]
-        ignore line: [/snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6b9d1.dir/link.txt --verbose=1]
-        ignore line: [/usr/bin/cc  -v -Wl -v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -o cmTC_6b9d1]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.']
+        ignore line: [Linking C executable cmTC_f150f]
+        ignore line: [/snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f150f.dir/link.txt --verbose=1]
+        ignore line: [/usr/bin/cc  -v -Wl -v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -o cmTC_f150f]
         ignore line: [Using built-in specs.]
         ignore line: [COLLECT_GCC=/usr/bin/cc]
         ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
@@ -228,13 +228,13 @@ events:
         ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
         ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
         ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6b9d1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6b9d1.']
-        link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfDsiGD.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6b9d1 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f150f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f150f.']
+        link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccizG1jO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f150f /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
           arg [-plugin] ==> ignore
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
           arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
-          arg [-plugin-opt=-fresolution=/tmp/ccfDsiGD.res] ==> ignore
+          arg [-plugin-opt=-fresolution=/tmp/ccizG1jO.res] ==> ignore
           arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
           arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
           arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -252,7 +252,7 @@ events:
           arg [-znow] ==> ignore
           arg [-zrelro] ==> ignore
           arg [-o] ==> ignore
-          arg [cmTC_6b9d1] ==> ignore
+          arg [cmTC_f150f] ==> ignore
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
@@ -265,7 +265,7 @@ events:
           arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
           arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
           arg [-v] ==> ignore
-          arg [CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o] ==> ignore
+          arg [CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o] ==> ignore
           arg [-lgcc] ==> lib [gcc]
           arg [--push-state] ==> ignore
           arg [--as-needed] ==> ignore
@@ -280,7 +280,7 @@ events:
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
         ignore line: [collect2 version 11.4.0]
-        ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfDsiGD.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_6b9d1 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_6b9d1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+        ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccizG1jO.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f150f /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_f150f.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
         linker tool for 'C': /usr/bin/ld
         collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
         collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
@@ -318,8 +318,8 @@ events:
     checks:
       - "Detecting CXX compiler ABI info"
     directories:
-      source: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv"
-      binary: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv"
+      source: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c"
+      binary: "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c"
     cmakeVariables:
       CMAKE_CXX_FLAGS: ""
       CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -329,13 +329,13 @@ events:
       variable: "CMAKE_CXX_ABI_COMPILED"
       cached: true
       stdout: |
-        Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv'
+        Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c'
         
-        Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_752a0/fast
-        /usr/bin/gmake  -f CMakeFiles/cmTC_752a0.dir/build.make CMakeFiles/cmTC_752a0.dir/build
-        gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv'
-        Building CXX object CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o
-        /usr/bin/c++   -v -o CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp
+        Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_fb35c/fast
+        /usr/bin/gmake  -f CMakeFiles/cmTC_fb35c.dir/build.make CMakeFiles/cmTC_fb35c.dir/build
+        gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c'
+        Building CXX object CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o
+        /usr/bin/c++   -v -o CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp
         Using built-in specs.
         COLLECT_GCC=/usr/bin/c++
         OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
@@ -345,8 +345,8 @@ events:
         Thread model: posix
         Supported LTO compression algorithms: zlib zstd
         gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/'
-         /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_752a0.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccdY4lXH.s
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/'
+         /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_fb35c.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1B4WNX.s
         GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)
         	compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP
         
@@ -370,15 +370,15 @@ events:
         
         GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
         Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/'
-         as -v --64 -o CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccdY4lXH.s
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/'
+         as -v --64 -o CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc1B4WNX.s
         GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38
         COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
         LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.'
-        Linking CXX executable cmTC_752a0
-        /snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_752a0.dir/link.txt --verbose=1
-        /usr/bin/c++  -v -Wl,-v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_752a0
+        COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.'
+        Linking CXX executable cmTC_fb35c
+        /snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fb35c.dir/link.txt --verbose=1
+        /usr/bin/c++  -v -Wl,-v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_fb35c
         Using built-in specs.
         COLLECT_GCC=/usr/bin/c++
         COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
@@ -391,13 +391,13 @@ events:
         gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 
         COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/
         LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/
-        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_752a0' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_752a0.'
-         /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cckp2b3O.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_752a0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fb35c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_fb35c.'
+         /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHxGTPZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_fb35c /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
         collect2 version 11.4.0
-        /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cckp2b3O.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_752a0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
+        /usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHxGTPZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_fb35c /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o
         GNU ld (GNU Binutils for Ubuntu) 2.38
-        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_752a0' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_752a0.'
-        gmake[1]: Leaving directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv'
+        COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fb35c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_fb35c.'
+        gmake[1]: Leaving directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c'
         
       exitCode: 0
   -
@@ -438,13 +438,13 @@ events:
       Parsed CXX implicit link information:
         link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
         linker tool regex: [^[ 	]*(->|")?[ 	]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
-        ignore line: [Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv']
+        ignore line: [Change Dir: '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c']
         ignore line: []
-        ignore line: [Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_752a0/fast]
-        ignore line: [/usr/bin/gmake  -f CMakeFiles/cmTC_752a0.dir/build.make CMakeFiles/cmTC_752a0.dir/build]
-        ignore line: [gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-fqiYRv']
-        ignore line: [Building CXX object CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o]
-        ignore line: [/usr/bin/c++   -v -o CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp]
+        ignore line: [Run Build Command(s): /snap/cmake/1391/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_fb35c/fast]
+        ignore line: [/usr/bin/gmake  -f CMakeFiles/cmTC_fb35c.dir/build.make CMakeFiles/cmTC_fb35c.dir/build]
+        ignore line: [gmake[1]: Entering directory '/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles/CMakeScratch/TryCompile-TcJc6c']
+        ignore line: [Building CXX object CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o]
+        ignore line: [/usr/bin/c++   -v -o CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -c /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp]
         ignore line: [Using built-in specs.]
         ignore line: [COLLECT_GCC=/usr/bin/c++]
         ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa]
@@ -454,8 +454,8 @@ events:
         ignore line: [Thread model: posix]
         ignore line: [Supported LTO compression algorithms: zlib zstd]
         ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/']
-        ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_752a0.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccdY4lXH.s]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/']
+        ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /snap/cmake/1391/share/cmake-3.29/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_fb35c.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1B4WNX.s]
         ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)]
         ignore line: [	compiled by GNU C version 11.4.0  GMP version 6.2.1  MPFR version 4.1.0  MPC version 1.2.1  isl version isl-0.24-GMP]
         ignore line: []
@@ -479,15 +479,15 @@ events:
         ignore line: []
         ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
         ignore line: [Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/']
-        ignore line: [ as -v --64 -o CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccdY4lXH.s]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/']
+        ignore line: [ as -v --64 -o CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc1B4WNX.s]
         ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38]
         ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
         ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.']
-        ignore line: [Linking CXX executable cmTC_752a0]
-        ignore line: [/snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_752a0.dir/link.txt --verbose=1]
-        ignore line: [/usr/bin/c++  -v -Wl -v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_752a0]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.']
+        ignore line: [Linking CXX executable cmTC_fb35c]
+        ignore line: [/snap/cmake/1391/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fb35c.dir/link.txt --verbose=1]
+        ignore line: [/usr/bin/c++  -v -Wl -v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_fb35c]
         ignore line: [Using built-in specs.]
         ignore line: [COLLECT_GCC=/usr/bin/c++]
         ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper]
@@ -500,13 +500,13 @@ events:
         ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ]
         ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/]
         ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/]
-        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_752a0' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_752a0.']
-        link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cckp2b3O.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_752a0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+        ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fb35c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_fb35c.']
+        link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHxGTPZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_fb35c /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore
           arg [-plugin] ==> ignore
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore
           arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore
-          arg [-plugin-opt=-fresolution=/tmp/cckp2b3O.res] ==> ignore
+          arg [-plugin-opt=-fresolution=/tmp/ccHxGTPZ.res] ==> ignore
           arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
           arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
           arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -524,7 +524,7 @@ events:
           arg [-znow] ==> ignore
           arg [-zrelro] ==> ignore
           arg [-o] ==> ignore
-          arg [cmTC_752a0] ==> ignore
+          arg [cmTC_fb35c] ==> ignore
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o]
@@ -537,7 +537,7 @@ events:
           arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
           arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..]
           arg [-v] ==> ignore
-          arg [CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+          arg [CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
           arg [-lstdc++] ==> lib [stdc++]
           arg [-lm] ==> lib [m]
           arg [-lgcc_s] ==> lib [gcc_s]
@@ -548,7 +548,7 @@ events:
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o]
           arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
         ignore line: [collect2 version 11.4.0]
-        ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cckp2b3O.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_752a0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_752a0.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
+        ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccHxGTPZ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_fb35c /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -v CMakeFiles/cmTC_fb35c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o]
         linker tool for 'CXX': /usr/bin/ld
         collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o]
         collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o]
diff --git a/build/CMakeFiles/MCC.dir/DependInfo.cmake b/build/CMakeFiles/MCC.dir/DependInfo.cmake
index e0339fd6bb77361b84c3b57b0b7fd006187fb183..1e5324e6b0c69de7ba4c6e0fcc767d697bfcc154 100644
--- a/build/CMakeFiles/MCC.dir/DependInfo.cmake
+++ b/build/CMakeFiles/MCC.dir/DependInfo.cmake
@@ -19,6 +19,7 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES
   "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/MenuManager.cpp" "CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o" "gcc" "CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o.d"
   "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/NetworkManager.cpp" "CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o" "gcc" "CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d"
   "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/RenderManager.cpp" "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o" "gcc" "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o.d"
+  "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp" "CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o" "gcc" "CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d"
   "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp" "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o" "gcc" "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d"
   )
 
diff --git a/build/CMakeFiles/MCC.dir/apps/main.cpp.o b/build/CMakeFiles/MCC.dir/apps/main.cpp.o
index 70313176bba5f9903b12ec15d88e2eadbb926c3b..9f5856adb8d5a691f25d850fde290a652cc61f75 100644
Binary files a/build/CMakeFiles/MCC.dir/apps/main.cpp.o and b/build/CMakeFiles/MCC.dir/apps/main.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/apps/main.cpp.o.d b/build/CMakeFiles/MCC.dir/apps/main.cpp.o.d
index 8a65cb8c3569f204c99e6bb54683e0e0a792bdcb..a5d78f6c78c68ae4ecb594df355914c7fa514528 100644
--- a/build/CMakeFiles/MCC.dir/apps/main.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/apps/main.cpp.o.d
@@ -392,6 +392,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: \
  /usr/include/c++/11/bits/unordered_map.h \
  /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/iterator \
  /usr/include/c++/11/bits/stream_iterator.h /usr/include/SDL2/SDL_net.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/./../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/./../../libs/qrcodegen/include/qrcodegen.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/./../../libs/RapidJson/include/rapidjson/document.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/./../../libs/RapidJson/include/rapidjson/reader.h \
@@ -457,8 +458,9 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/BodyFactory.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/../game/Entity.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/../game/Animation.hpp \
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/../game/../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/NetworkManager.hpp \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/../include/game/../manager/../game/Map.hpp \
  /usr/include/c++/11/fstream \
  /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \
diff --git a/build/CMakeFiles/MCC.dir/build.make b/build/CMakeFiles/MCC.dir/build.make
index 9896774c188793b7920ce30ed365ce05fe0b050e..8806a5b56984f3b2b03f212eac024cbecb81d830 100644
--- a/build/CMakeFiles/MCC.dir/build.make
+++ b/build/CMakeFiles/MCC.dir/build.make
@@ -223,10 +223,24 @@ CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.s: cmake_force
 	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.s"
 	g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/RenderManager.cpp -o CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.s
 
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o: CMakeFiles/MCC.dir/flags.make
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o: /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o: CMakeFiles/MCC.dir/compiler_depend.ts
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o"
+	g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o -MF CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d -o CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp
+
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.i"
+	g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp > CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.i
+
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.s"
+	g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp -o CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.s
+
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: CMakeFiles/MCC.dir/flags.make
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: CMakeFiles/MCC.dir/compiler_depend.ts
-	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o"
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building CXX object CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o"
 	g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o -MF CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d -o CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp
 
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.i: cmake_force
@@ -250,6 +264,7 @@ MCC_OBJECTS = \
 "CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o" \
 "CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o" \
 "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o" \
+"CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o" \
 "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o"
 
 # External object files for target MCC
@@ -266,10 +281,11 @@ MCC: CMakeFiles/MCC.dir/src/manager/Entity.cpp.o
 MCC: CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o
 MCC: CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o
 MCC: CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o
+MCC: CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o
 MCC: CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o
 MCC: CMakeFiles/MCC.dir/build.make
 MCC: CMakeFiles/MCC.dir/link.txt
-	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Linking CXX executable MCC"
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Linking CXX executable MCC"
 	$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/MCC.dir/link.txt --verbose=$(VERBOSE)
 
 # Rule to build all files generated by this target.
diff --git a/build/CMakeFiles/MCC.dir/cmake_clean.cmake b/build/CMakeFiles/MCC.dir/cmake_clean.cmake
index e845a976204af87f2a42924cc5eabe0320c8d713..bab5d27f1b7784289e06b0e4834feaa8a28078b7 100644
--- a/build/CMakeFiles/MCC.dir/cmake_clean.cmake
+++ b/build/CMakeFiles/MCC.dir/cmake_clean.cmake
@@ -21,6 +21,8 @@ file(REMOVE_RECURSE
   "CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d"
   "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o"
   "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o.d"
+  "CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o"
+  "CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d"
   "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o"
   "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d"
   "MCC"
diff --git a/build/CMakeFiles/MCC.dir/compiler_depend.internal b/build/CMakeFiles/MCC.dir/compiler_depend.internal
index ee3638020ecc15aaabb109443ab25d1d9f94bca7..6ba91dc49a42a16445ce7bf36b08f720adfd3db4 100644
--- a/build/CMakeFiles/MCC.dir/compiler_depend.internal
+++ b/build/CMakeFiles/MCC.dir/compiler_depend.internal
@@ -46,7 +46,6 @@ CMakeFiles/MCC.dir/apps/main.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp
@@ -83,6 +82,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp
@@ -90,6 +90,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp
  /usr/include/SDL2/SDL.h
@@ -120,6 +121,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
@@ -609,7 +611,6 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp
@@ -646,6 +647,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp
@@ -653,6 +655,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp
  /usr/include/SDL2/SDL.h
@@ -683,6 +686,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
@@ -1219,6 +1223,7 @@ CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/IActor.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp
  /usr/include/SDL2/SDL.h
@@ -1249,6 +1254,7 @@ CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
@@ -1738,7 +1744,6 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp
@@ -1775,6 +1780,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp
@@ -1782,6 +1788,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp
  /usr/include/SDL2/SDL.h
@@ -1812,6 +1819,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
@@ -3705,6 +3713,7 @@ CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/constante.h
@@ -3741,6 +3750,7 @@ CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
@@ -4254,6 +4264,7 @@ CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/constante.h
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
@@ -5121,6 +5132,143 @@ CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o
  /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h
  /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h
 
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
+ /usr/include/SDL2/SDL_atomic.h
+ /usr/include/SDL2/SDL_audio.h
+ /usr/include/SDL2/SDL_config.h
+ /usr/include/SDL2/SDL_endian.h
+ /usr/include/SDL2/SDL_error.h
+ /usr/include/SDL2/SDL_mixer.h
+ /usr/include/SDL2/SDL_mutex.h
+ /usr/include/SDL2/SDL_platform.h
+ /usr/include/SDL2/SDL_rwops.h
+ /usr/include/SDL2/SDL_stdinc.h
+ /usr/include/SDL2/SDL_thread.h
+ /usr/include/SDL2/SDL_version.h
+ /usr/include/SDL2/begin_code.h
+ /usr/include/SDL2/close_code.h
+ /usr/include/alloca.h
+ /usr/include/c++/11/bits/concept_check.h
+ /usr/include/c++/11/bits/cpp_type_traits.h
+ /usr/include/c++/11/bits/exception_defines.h
+ /usr/include/c++/11/bits/functexcept.h
+ /usr/include/c++/11/bits/move.h
+ /usr/include/c++/11/bits/predefined_ops.h
+ /usr/include/c++/11/bits/ptr_traits.h
+ /usr/include/c++/11/bits/specfun.h
+ /usr/include/c++/11/bits/std_abs.h
+ /usr/include/c++/11/bits/stl_algobase.h
+ /usr/include/c++/11/bits/stl_iterator.h
+ /usr/include/c++/11/bits/stl_iterator_base_funcs.h
+ /usr/include/c++/11/bits/stl_iterator_base_types.h
+ /usr/include/c++/11/bits/stl_pair.h
+ /usr/include/c++/11/cmath
+ /usr/include/c++/11/cstdlib
+ /usr/include/c++/11/debug/assertions.h
+ /usr/include/c++/11/debug/debug.h
+ /usr/include/c++/11/ext/numeric_traits.h
+ /usr/include/c++/11/ext/type_traits.h
+ /usr/include/c++/11/limits
+ /usr/include/c++/11/math.h
+ /usr/include/c++/11/pstl/pstl_config.h
+ /usr/include/c++/11/stdlib.h
+ /usr/include/c++/11/tr1/bessel_function.tcc
+ /usr/include/c++/11/tr1/beta_function.tcc
+ /usr/include/c++/11/tr1/ell_integral.tcc
+ /usr/include/c++/11/tr1/exp_integral.tcc
+ /usr/include/c++/11/tr1/gamma.tcc
+ /usr/include/c++/11/tr1/hypergeometric.tcc
+ /usr/include/c++/11/tr1/legendre_function.tcc
+ /usr/include/c++/11/tr1/modified_bessel_func.tcc
+ /usr/include/c++/11/tr1/poly_hermite.tcc
+ /usr/include/c++/11/tr1/poly_laguerre.tcc
+ /usr/include/c++/11/tr1/riemann_zeta.tcc
+ /usr/include/c++/11/tr1/special_function_util.h
+ /usr/include/c++/11/type_traits
+ /usr/include/ctype.h
+ /usr/include/endian.h
+ /usr/include/features-time64.h
+ /usr/include/features.h
+ /usr/include/inttypes.h
+ /usr/include/math.h
+ /usr/include/stdc-predef.h
+ /usr/include/stdint.h
+ /usr/include/stdio.h
+ /usr/include/stdlib.h
+ /usr/include/string.h
+ /usr/include/strings.h
+ /usr/include/wchar.h
+ /usr/include/x86_64-linux-gnu/SDL2/_real_SDL_config.h
+ /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h
+ /usr/include/x86_64-linux-gnu/bits/endian.h
+ /usr/include/x86_64-linux-gnu/bits/endianness.h
+ /usr/include/x86_64-linux-gnu/bits/floatn-common.h
+ /usr/include/x86_64-linux-gnu/bits/floatn.h
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
+ /usr/include/x86_64-linux-gnu/bits/long-double.h
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
+ /usr/include/x86_64-linux-gnu/bits/select.h
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h
+ /usr/include/x86_64-linux-gnu/bits/struct_mutex.h
+ /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
+ /usr/include/x86_64-linux-gnu/bits/time64.h
+ /usr/include/x86_64-linux-gnu/bits/timesize.h
+ /usr/include/x86_64-linux-gnu/bits/types.h
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h
+ /usr/include/x86_64-linux-gnu/bits/wchar.h
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h
+ /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h
+ /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h
+ /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h
+ /usr/include/x86_64-linux-gnu/sys/select.h
+ /usr/include/x86_64-linux-gnu/sys/types.h
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h
+
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/Box2d/include/box2d/b2_api.h
@@ -5211,6 +5359,7 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/IActor.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp
  /usr/include/SDL2/SDL.h
  /usr/include/SDL2/SDL_assert.h
@@ -5240,6 +5389,7 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o
  /usr/include/SDL2/SDL_messagebox.h
  /usr/include/SDL2/SDL_metal.h
  /usr/include/SDL2/SDL_misc.h
+ /usr/include/SDL2/SDL_mixer.h
  /usr/include/SDL2/SDL_mouse.h
  /usr/include/SDL2/SDL_mutex.h
  /usr/include/SDL2/SDL_net.h
diff --git a/build/CMakeFiles/MCC.dir/compiler_depend.make b/build/CMakeFiles/MCC.dir/compiler_depend.make
index d71099e7ce34842f154834421b4a8d41b2d1cd38..4ec49c1a707230b6c4b1e96cda28c03dae5b1b8a 100644
--- a/build/CMakeFiles/MCC.dir/compiler_depend.make
+++ b/build/CMakeFiles/MCC.dir/compiler_depend.make
@@ -45,7 +45,6 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: /home/alexis/Documents/Stage/Mythical_Conque
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
-  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp \
@@ -82,6 +81,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: /home/alexis/Documents/Stage/Mythical_Conque
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp \
@@ -89,6 +89,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: /home/alexis/Documents/Stage/Mythical_Conque
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp \
   /usr/include/SDL2/SDL.h \
@@ -119,6 +120,7 @@ CMakeFiles/MCC.dir/apps/main.cpp.o: /home/alexis/Documents/Stage/Mythical_Conque
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -607,7 +609,6 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: /home/alexis/Documents/Stage/Mythical_Co
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
-  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp \
@@ -644,6 +645,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: /home/alexis/Documents/Stage/Mythical_Co
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp \
@@ -651,6 +653,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: /home/alexis/Documents/Stage/Mythical_Co
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp \
   /usr/include/SDL2/SDL.h \
@@ -681,6 +684,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: /home/alexis/Documents/Stage/Mythical_Co
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -1216,6 +1220,7 @@ CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o: /home/alexis/Documents/Stage/Myt
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/IActor.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp \
   /usr/include/SDL2/SDL.h \
@@ -1246,6 +1251,7 @@ CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o: /home/alexis/Documents/Stage/Myt
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -1734,7 +1740,6 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: /home/alexis/Documents/Stage/Mythical_Con
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/document.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
-  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Animation.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Entity.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/GameEntities.hpp \
@@ -1771,6 +1776,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: /home/alexis/Documents/Stage/Mythical_Con
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp \
@@ -1778,6 +1784,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: /home/alexis/Documents/Stage/Mythical_Con
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/MenuManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp \
   /usr/include/SDL2/SDL.h \
@@ -1808,6 +1815,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: /home/alexis/Documents/Stage/Mythical_Con
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -3696,6 +3704,7 @@ CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o: /home/alexis/Documents/Stage/M
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/BodyFactory.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/ContactListener.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Game.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/constante.h \
@@ -3732,6 +3741,7 @@ CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o: /home/alexis/Documents/Stage/M
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -4244,6 +4254,7 @@ CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o: /home/alexis/Documents/Stag
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/stringbuffer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/writer.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/qrcodegen/include/qrcodegen.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/Timer.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/utils/include/constante.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
@@ -5110,6 +5121,142 @@ CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o: /home/alexis/Documents/Stage
   /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \
   /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h
 
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o: /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
+  /usr/include/SDL2/SDL_atomic.h \
+  /usr/include/SDL2/SDL_audio.h \
+  /usr/include/SDL2/SDL_config.h \
+  /usr/include/SDL2/SDL_endian.h \
+  /usr/include/SDL2/SDL_error.h \
+  /usr/include/SDL2/SDL_mixer.h \
+  /usr/include/SDL2/SDL_mutex.h \
+  /usr/include/SDL2/SDL_platform.h \
+  /usr/include/SDL2/SDL_rwops.h \
+  /usr/include/SDL2/SDL_stdinc.h \
+  /usr/include/SDL2/SDL_thread.h \
+  /usr/include/SDL2/SDL_version.h \
+  /usr/include/SDL2/begin_code.h \
+  /usr/include/SDL2/close_code.h \
+  /usr/include/alloca.h \
+  /usr/include/c++/11/bits/concept_check.h \
+  /usr/include/c++/11/bits/cpp_type_traits.h \
+  /usr/include/c++/11/bits/exception_defines.h \
+  /usr/include/c++/11/bits/functexcept.h \
+  /usr/include/c++/11/bits/move.h \
+  /usr/include/c++/11/bits/predefined_ops.h \
+  /usr/include/c++/11/bits/ptr_traits.h \
+  /usr/include/c++/11/bits/specfun.h \
+  /usr/include/c++/11/bits/std_abs.h \
+  /usr/include/c++/11/bits/stl_algobase.h \
+  /usr/include/c++/11/bits/stl_iterator.h \
+  /usr/include/c++/11/bits/stl_iterator_base_funcs.h \
+  /usr/include/c++/11/bits/stl_iterator_base_types.h \
+  /usr/include/c++/11/bits/stl_pair.h \
+  /usr/include/c++/11/cmath \
+  /usr/include/c++/11/cstdlib \
+  /usr/include/c++/11/debug/assertions.h \
+  /usr/include/c++/11/debug/debug.h \
+  /usr/include/c++/11/ext/numeric_traits.h \
+  /usr/include/c++/11/ext/type_traits.h \
+  /usr/include/c++/11/limits \
+  /usr/include/c++/11/math.h \
+  /usr/include/c++/11/pstl/pstl_config.h \
+  /usr/include/c++/11/stdlib.h \
+  /usr/include/c++/11/tr1/bessel_function.tcc \
+  /usr/include/c++/11/tr1/beta_function.tcc \
+  /usr/include/c++/11/tr1/ell_integral.tcc \
+  /usr/include/c++/11/tr1/exp_integral.tcc \
+  /usr/include/c++/11/tr1/gamma.tcc \
+  /usr/include/c++/11/tr1/hypergeometric.tcc \
+  /usr/include/c++/11/tr1/legendre_function.tcc \
+  /usr/include/c++/11/tr1/modified_bessel_func.tcc \
+  /usr/include/c++/11/tr1/poly_hermite.tcc \
+  /usr/include/c++/11/tr1/poly_laguerre.tcc \
+  /usr/include/c++/11/tr1/riemann_zeta.tcc \
+  /usr/include/c++/11/tr1/special_function_util.h \
+  /usr/include/c++/11/type_traits \
+  /usr/include/ctype.h \
+  /usr/include/endian.h \
+  /usr/include/features-time64.h \
+  /usr/include/features.h \
+  /usr/include/inttypes.h \
+  /usr/include/math.h \
+  /usr/include/stdc-predef.h \
+  /usr/include/stdint.h \
+  /usr/include/stdio.h \
+  /usr/include/stdlib.h \
+  /usr/include/string.h \
+  /usr/include/strings.h \
+  /usr/include/wchar.h \
+  /usr/include/x86_64-linux-gnu/SDL2/_real_SDL_config.h \
+  /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
+  /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+  /usr/include/x86_64-linux-gnu/bits/endian.h \
+  /usr/include/x86_64-linux-gnu/bits/endianness.h \
+  /usr/include/x86_64-linux-gnu/bits/floatn-common.h \
+  /usr/include/x86_64-linux-gnu/bits/floatn.h \
+  /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+  /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+  /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+  /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+  /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+  /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+  /usr/include/x86_64-linux-gnu/bits/long-double.h \
+  /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+  /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+  /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
+  /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+  /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+  /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+  /usr/include/x86_64-linux-gnu/bits/select.h \
+  /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \
+  /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \
+  /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+  /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+  /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
+  /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \
+  /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+  /usr/include/x86_64-linux-gnu/bits/time64.h \
+  /usr/include/x86_64-linux-gnu/bits/timesize.h \
+  /usr/include/x86_64-linux-gnu/bits/types.h \
+  /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
+  /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+  /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+  /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+  /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+  /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+  /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+  /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+  /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+  /usr/include/x86_64-linux-gnu/bits/wchar.h \
+  /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+  /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \
+  /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \
+  /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \
+  /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+  /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+  /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+  /usr/include/x86_64-linux-gnu/sys/select.h \
+  /usr/include/x86_64-linux-gnu/sys/types.h \
+  /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \
+  /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
+  /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
+  /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h
+
 CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/Box2d/include/box2d/b2_api.h \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/Box2d/include/box2d/b2_block_allocator.h \
@@ -5199,6 +5346,7 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/IActor.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/NetworkManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/RenderManager.hpp \
+  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp \
   /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/WorldManager.hpp \
   /usr/include/SDL2/SDL.h \
   /usr/include/SDL2/SDL_assert.h \
@@ -5228,6 +5376,7 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
   /usr/include/SDL2/SDL_messagebox.h \
   /usr/include/SDL2/SDL_metal.h \
   /usr/include/SDL2/SDL_misc.h \
+  /usr/include/SDL2/SDL_mixer.h \
   /usr/include/SDL2/SDL_mouse.h \
   /usr/include/SDL2/SDL_mutex.h \
   /usr/include/SDL2/SDL_net.h \
@@ -5805,6 +5954,8 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h:
 
+/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp:
+
 /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h:
 
 /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h:
@@ -5961,6 +6112,12 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/sched.h:
 
+/usr/include/pthread.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+/usr/include/netinet/in.h:
+
 /usr/include/c++/11/bits/cpp_type_traits.h:
 
 /usr/include/SDL2/SDL_platform.h:
@@ -5983,8 +6140,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/game/Tile.hpp:
 
-/usr/include/c++/11/bits/random.tcc:
-
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Game.cpp:
 
 /usr/include/SDL2/SDL_loadso.h:
@@ -6047,6 +6202,16 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/SDL2/SDL_mouse.h:
 
+/usr/include/c++/11/bits/random.tcc:
+
+/usr/include/SDL2/SDL_mixer.h:
+
+/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include/manager/SoundManager.hpp:
+
+/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/MenuManager.cpp:
+
+/usr/include/c++/11/type_traits:
+
 /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h:
 
 /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h:
@@ -6195,8 +6360,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/c++/11/new:
 
-/usr/include/pthread.h:
-
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/internal/biginteger.h:
 
 /usr/include/c++/11/bits/charconv.h:
@@ -6263,10 +6426,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/Box2d/include/box2d/b2_edge_shape.h:
 
-/usr/include/SDL2/SDL_events.h:
-
-/usr/include/c++/11/bits/cxxabi_init_exception.h:
-
 /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h:
 
 /usr/include/SDL2/SDL_image.h:
@@ -6439,8 +6598,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/encodedstream.h:
 
-/usr/include/c++/11/bits/enable_special_members.h:
-
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/internal/diyfp.h:
 
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/RapidJson/include/rapidjson/reader.h:
@@ -6467,6 +6624,12 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/c++/11/bits/stringfwd.h:
 
+/usr/include/SDL2/SDL_events.h:
+
+/usr/include/c++/11/bits/cxxabi_init_exception.h:
+
+/usr/include/c++/11/bits/enable_special_members.h:
+
 /usr/include/c++/11/bits/fs_dir.h:
 
 /usr/include/c++/11/bits/fs_path.h:
@@ -6597,10 +6760,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/c++/11/bits/stl_heap.h:
 
-/usr/include/x86_64-linux-gnu/bits/locale.h:
-
-/usr/include/netinet/in.h:
-
 /usr/include/c++/11/tr1/ell_integral.tcc:
 
 /usr/include/c++/11/bits/stl_relops.h:
@@ -6779,10 +6938,6 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: /home/alexis/Documents/Stage/
 
 /usr/include/c++/11/tuple:
 
-/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/MenuManager.cpp:
-
-/usr/include/c++/11/type_traits:
-
 /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/libs/Box2d/include/box2d/b2_friction_joint.h:
 
 /usr/include/SDL2/SDL_log.h:
diff --git a/build/CMakeFiles/MCC.dir/flags.make b/build/CMakeFiles/MCC.dir/flags.make
index 3be0511fd6a995074494cae116d5e9154f373e0e..aaab70b990ef1ad06dad5d3c82ad9140644a3a4f 100644
--- a/build/CMakeFiles/MCC.dir/flags.make
+++ b/build/CMakeFiles/MCC.dir/flags.make
@@ -6,5 +6,5 @@ CXX_DEFINES =
 
 CXX_INCLUDES = -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src
 
-CXX_FLAGS =  -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib
+CXX_FLAGS =  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib
 
diff --git a/build/CMakeFiles/MCC.dir/link.txt b/build/CMakeFiles/MCC.dir/link.txt
index 3e17f7f681a8734158582a31d133032fa24d05a7..d86022a912a3c043b8e063d976175e309d48a53c 100644
--- a/build/CMakeFiles/MCC.dir/link.txt
+++ b/build/CMakeFiles/MCC.dir/link.txt
@@ -1 +1 @@
-g++  -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib CMakeFiles/MCC.dir/apps/main.cpp.o CMakeFiles/MCC.dir/src/game/Game.cpp.o CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o CMakeFiles/MCC.dir/src/game/Map.cpp.o CMakeFiles/MCC.dir/src/game/Tile.cpp.o CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o CMakeFiles/MCC.dir/src/manager/ContactListener.cpp.o CMakeFiles/MCC.dir/src/manager/Entity.cpp.o CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o -o MCC  -lSDL2 -lSDL2_net -lSDL2 -lSDL2_image -lSDL2 -lSDL2_ttf -lbox2d -lqrcodegencpp -lSDL2_net -lSDL2_image -lSDL2_ttf -lbox2d -lqrcodegencpp
+g++  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib CMakeFiles/MCC.dir/apps/main.cpp.o CMakeFiles/MCC.dir/src/game/Game.cpp.o CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o CMakeFiles/MCC.dir/src/game/Map.cpp.o CMakeFiles/MCC.dir/src/game/Tile.cpp.o CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o CMakeFiles/MCC.dir/src/manager/ContactListener.cpp.o CMakeFiles/MCC.dir/src/manager/Entity.cpp.o CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o -o MCC  -lSDL2 -lSDL2_net -lSDL2 -lSDL2_image -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2 -lbox2d -lqrcodegencpp -lSDL2_net -lSDL2_image -lSDL2_ttf -lSDL2_mixer -lbox2d -lqrcodegencpp
diff --git a/build/CMakeFiles/MCC.dir/progress.make b/build/CMakeFiles/MCC.dir/progress.make
index 7a1b005c7b64d7c2c7523fc5f27c897a536ff65a..4f6e68a5259a80fb8fcddacc4eb634159ea1ad8c 100644
--- a/build/CMakeFiles/MCC.dir/progress.make
+++ b/build/CMakeFiles/MCC.dir/progress.make
@@ -11,4 +11,5 @@ CMAKE_PROGRESS_10 = 10
 CMAKE_PROGRESS_11 = 11
 CMAKE_PROGRESS_12 = 12
 CMAKE_PROGRESS_13 = 13
+CMAKE_PROGRESS_14 = 14
 
diff --git a/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o b/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o
index 895dabfa76d3f01d2e9863417e609df06a70bcb1..ed01932c8e6e0012b62f0ad1e822ad29143d8a95 100644
Binary files a/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o and b/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o.d b/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o.d
index 6d27244cab241cf29ad0b2bda021a308d545d018..4ad53a60831eca832a1c2d2b9d5197029daa8250 100644
--- a/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/game/Game.cpp.o.d
@@ -392,6 +392,7 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: \
  /usr/include/c++/11/bits/unordered_map.h \
  /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/iterator \
  /usr/include/c++/11/bits/stream_iterator.h /usr/include/SDL2/SDL_net.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/qrcodegen/include/qrcodegen.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/RapidJson/include/rapidjson/document.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/RapidJson/include/rapidjson/reader.h \
@@ -457,8 +458,9 @@ CMakeFiles/MCC.dir/src/game/Game.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/BodyFactory.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Entity.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Animation.hpp \
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/NetworkManager.hpp \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Map.hpp \
  /usr/include/c++/11/fstream \
  /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \
diff --git a/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o b/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o
index 438833b6344f0aabf0c768b3c6ee4432b9382026..70352e6ee4bb6310f0b0a631256b24159fcd403f 100644
Binary files a/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o and b/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o.d b/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o.d
index 876589aee291087aae0b9c30e1d6bebadcc74e28..744bc9b65b84221347f6c3d63a14c6c70bbb78dc 100644
--- a/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o.d
@@ -443,6 +443,8 @@ CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../../libs/RapidJson/include/rapidjson/internal/itoa.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Game.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/../manager/MenuManager.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/../manager/./NetworkManager.hpp \
diff --git a/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o b/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o
index e3115cad87e5d4c225466bee9aa594295350619a..2e8507237ee5822cd99714c519dde25df13aea03 100644
Binary files a/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o and b/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o.d b/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o.d
index 94f0563396869c6b0ea233b66e5e6bde2f221a35..345cdaf14e2e63dcff2589066502a2796583cba7 100644
--- a/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/game/Map.cpp.o.d
@@ -392,6 +392,7 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: \
  /usr/include/c++/11/bits/unordered_map.h \
  /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/iterator \
  /usr/include/c++/11/bits/stream_iterator.h /usr/include/SDL2/SDL_net.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/qrcodegen/include/qrcodegen.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/RapidJson/include/rapidjson/document.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/./../../libs/RapidJson/include/rapidjson/reader.h \
@@ -457,8 +458,9 @@ CMakeFiles/MCC.dir/src/game/Map.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/BodyFactory.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Entity.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Animation.hpp \
- /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/NetworkManager.hpp \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/../../include/game/../manager/../game/Map.hpp \
  /usr/include/c++/11/fstream \
  /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \
diff --git a/build/CMakeFiles/MCC.dir/src/game/Tile.cpp.o b/build/CMakeFiles/MCC.dir/src/game/Tile.cpp.o
index 5dca8ffe8cb81e9c44410cfede2f78f48f99360e..d574be0cdd52563cc18435a60a7b44fbb61856b5 100644
Binary files a/build/CMakeFiles/MCC.dir/src/game/Tile.cpp.o and b/build/CMakeFiles/MCC.dir/src/game/Tile.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o
index cd88af7739f233861eec77f4d86d92aecdf23b63..9142d5d64ad24d0e760cd61e1c59c1599451f8e5 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/Entity.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/Entity.cpp.o
index d3757ca7ec8550a981872862203c93a88ad57548..b7652741ab498cdf88d38d51f03c2fd677b1164c 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/Entity.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/Entity.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o
index 89898fcf961b78513988a376499a90c2c69f6b96..9f29bdbe46bec9180b8d457150f0ce0f7de2a943 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o.d b/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o.d
index 29b5b6dfa3643a419a82adecfdbaa3ab4906a62d..570db83942b78de48e875d7cd4c2d840d6640904 100644
--- a/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o.d
@@ -445,6 +445,8 @@ CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/../../libs/RapidJson/include/rapidjson/internal/itoa.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/../game/Map.hpp \
  /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \
  /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \
diff --git a/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o
index 8e6d37eb851a1f042d862c2b386d5a580cac6252..bbef29e205da9150324bc0cc0a464ef7b3bbdabd 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d b/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d
index 66893eae8a4a721aeadf9d3c3b5387e7fb3c00ce..bb2e0d730f7f27c4eb2c8ba6cf37e457a1348fe7 100644
--- a/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o.d
@@ -389,6 +389,7 @@ CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/Box2d/include/box2d/b2_revolute_joint.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/Box2d/include/box2d/b2_weld_joint.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/Box2d/include/box2d/b2_wheel_joint.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../utils/include/Timer.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/qrcodegen/include/qrcodegen.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/RapidJson/include/rapidjson/document.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/RapidJson/include/rapidjson/reader.h \
diff --git a/build/CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o
index 763bb1c11b4fdc1615728889f29b1b62dde62685..e0646eaa84f6a65d095cc97603de23d8dd5353f1 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o
new file mode 100644
index 0000000000000000000000000000000000000000..8f716572079252486b56381d40e8f06a5b0d54fe
Binary files /dev/null and b/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d b/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d
new file mode 100644
index 0000000000000000000000000000000000000000..7387c95e36ff9dbaa6c51016247ca6ff4de34a89
--- /dev/null
+++ b/build/CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o.d
@@ -0,0 +1,115 @@
+CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o: \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp \
+ /usr/include/stdc-predef.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h /usr/include/SDL2/SDL_stdinc.h \
+ /usr/include/SDL2/SDL_config.h \
+ /usr/include/x86_64-linux-gnu/SDL2/_real_SDL_config.h \
+ /usr/include/SDL2/SDL_platform.h /usr/include/SDL2/begin_code.h \
+ /usr/include/SDL2/close_code.h /usr/include/x86_64-linux-gnu/sys/types.h \
+ /usr/include/features.h /usr/include/features-time64.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/bits/timesize.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/long-double.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/time64.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/time_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endianness.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
+ /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \
+ /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \
+ /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \
+ /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \
+ /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn.h \
+ /usr/include/x86_64-linux-gnu/bits/floatn-common.h \
+ /usr/include/c++/11/stdlib.h /usr/include/c++/11/cstdlib \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \
+ /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \
+ /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \
+ /usr/include/alloca.h /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/c++/11/bits/std_abs.h /usr/include/string.h \
+ /usr/include/strings.h /usr/include/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \
+ /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \
+ /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/ctype.h \
+ /usr/include/c++/11/math.h /usr/include/c++/11/cmath \
+ /usr/include/c++/11/bits/cpp_type_traits.h \
+ /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-logb.h \
+ /usr/include/x86_64-linux-gnu/bits/fp-fast.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \
+ /usr/include/x86_64-linux-gnu/bits/iscanonical.h \
+ /usr/include/c++/11/bits/specfun.h \
+ /usr/include/c++/11/bits/stl_algobase.h \
+ /usr/include/c++/11/bits/functexcept.h \
+ /usr/include/c++/11/bits/exception_defines.h \
+ /usr/include/c++/11/ext/numeric_traits.h \
+ /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \
+ /usr/include/c++/11/type_traits \
+ /usr/include/c++/11/bits/stl_iterator_base_types.h \
+ /usr/include/c++/11/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/11/bits/concept_check.h \
+ /usr/include/c++/11/debug/assertions.h \
+ /usr/include/c++/11/bits/stl_iterator.h \
+ /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \
+ /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \
+ /usr/include/c++/11/tr1/gamma.tcc \
+ /usr/include/c++/11/tr1/special_function_util.h \
+ /usr/include/c++/11/tr1/bessel_function.tcc \
+ /usr/include/c++/11/tr1/beta_function.tcc \
+ /usr/include/c++/11/tr1/ell_integral.tcc \
+ /usr/include/c++/11/tr1/exp_integral.tcc \
+ /usr/include/c++/11/tr1/hypergeometric.tcc \
+ /usr/include/c++/11/tr1/legendre_function.tcc \
+ /usr/include/c++/11/tr1/modified_bessel_func.tcc \
+ /usr/include/c++/11/tr1/poly_hermite.tcc \
+ /usr/include/c++/11/tr1/poly_laguerre.tcc \
+ /usr/include/c++/11/tr1/riemann_zeta.tcc \
+ /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \
+ /usr/include/SDL2/SDL_rwops.h /usr/include/SDL2/SDL_error.h \
+ /usr/include/SDL2/SDL_audio.h /usr/include/SDL2/SDL_endian.h \
+ /usr/include/SDL2/SDL_mutex.h /usr/include/SDL2/SDL_thread.h \
+ /usr/include/SDL2/SDL_atomic.h /usr/include/SDL2/SDL_platform.h \
+ /usr/include/SDL2/SDL_version.h
diff --git a/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o b/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o
index 66ae21559504ed941a599a388dff919c8463218d..236cf82f4e6bec8527543d80e4348d6fa92d7fe5 100644
Binary files a/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o and b/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o differ
diff --git a/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d b/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d
index fdb1eab1767b5f1c5fcc96bd1e7bf821a34dcc06..beb3809ddbbd76e0edb673b0bf61e82f30eaa34b 100644
--- a/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d
+++ b/build/CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o.d
@@ -442,6 +442,8 @@ CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o: \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/RapidJson/include/rapidjson/internal/itoa.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../../libs/RapidJson/include/rapidjson/stringbuffer.h \
+ /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/SoundManager.hpp \
+ /usr/include/SDL2/SDL_mixer.h \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/Game.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/MenuManager.hpp \
  /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/../../include/manager/../game/../manager/./NetworkManager.hpp \
diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2
index 562e215e8fe0f270de29746882fe450d73e6b1cf..b69a16c11f650d560f787390fccc5eae45e03043 100644
--- a/build/CMakeFiles/Makefile2
+++ b/build/CMakeFiles/Makefile2
@@ -81,12 +81,12 @@ clean: CMakeFiles/MCC.dir/clean
 CMakeFiles/MCC.dir/all:
 	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/depend
 	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13 "Built target MCC"
+	@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14 "Built target MCC"
 .PHONY : CMakeFiles/MCC.dir/all
 
 # Build rule for subdir invocation for target.
 CMakeFiles/MCC.dir/rule: cmake_check_build_system
-	$(CMAKE_COMMAND) -E cmake_progress_start /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles 13
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles 14
 	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/MCC.dir/all
 	$(CMAKE_COMMAND) -E cmake_progress_start /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build/CMakeFiles 0
 .PHONY : CMakeFiles/MCC.dir/rule
diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks
index b1bd38b62a0800a4f6a80c34e21c5acffae52c7e..8351c19397f4fcd5238d10034fa7fa384f14d580 100644
--- a/build/CMakeFiles/progress.marks
+++ b/build/CMakeFiles/progress.marks
@@ -1 +1 @@
-13
+14
diff --git a/build/MCC b/build/MCC
index f60d8b9f0a1873befcccde7a2afc902b91ae30b9..d3a0b39bd976b5e94ed9df27d5b78b88b2c13df7 100755
Binary files a/build/MCC and b/build/MCC differ
diff --git a/build/Makefile b/build/Makefile
index 90f00d624c8d38889ca0686a181a0011338fc9b6..16665fcd219547e184ca00af3a192c241fb34bc0 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -393,6 +393,30 @@ src/manager/RenderManager.cpp.s:
 	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.s
 .PHONY : src/manager/RenderManager.cpp.s
 
+src/manager/SoundManager.o: src/manager/SoundManager.cpp.o
+.PHONY : src/manager/SoundManager.o
+
+# target to build an object file
+src/manager/SoundManager.cpp.o:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o
+.PHONY : src/manager/SoundManager.cpp.o
+
+src/manager/SoundManager.i: src/manager/SoundManager.cpp.i
+.PHONY : src/manager/SoundManager.i
+
+# target to preprocess a source file
+src/manager/SoundManager.cpp.i:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.i
+.PHONY : src/manager/SoundManager.cpp.i
+
+src/manager/SoundManager.s: src/manager/SoundManager.cpp.s
+.PHONY : src/manager/SoundManager.s
+
+# target to generate assembly for a file
+src/manager/SoundManager.cpp.s:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/MCC.dir/build.make CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.s
+.PHONY : src/manager/SoundManager.cpp.s
+
 src/manager/WorldManager.o: src/manager/WorldManager.cpp.o
 .PHONY : src/manager/WorldManager.o
 
@@ -459,6 +483,9 @@ help:
 	@echo "... src/manager/RenderManager.o"
 	@echo "... src/manager/RenderManager.i"
 	@echo "... src/manager/RenderManager.s"
+	@echo "... src/manager/SoundManager.o"
+	@echo "... src/manager/SoundManager.i"
+	@echo "... src/manager/SoundManager.s"
 	@echo "... src/manager/WorldManager.o"
 	@echo "... src/manager/WorldManager.i"
 	@echo "... src/manager/WorldManager.s"
diff --git a/build/compile_commands.json b/build/compile_commands.json
new file mode 100644
index 0000000000000000000000000000000000000000..6472b10c153a443c29da08cc297ae71037ea1a53
--- /dev/null
+++ b/build/compile_commands.json
@@ -0,0 +1,80 @@
+[
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/apps/main.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/main.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/apps/main.cpp",
+  "output": "CMakeFiles/MCC.dir/apps/main.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/game/Game.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Game.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Game.cpp",
+  "output": "CMakeFiles/MCC.dir/src/game/Game.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/GameEntities.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/GameEntities.cpp",
+  "output": "CMakeFiles/MCC.dir/src/game/GameEntities.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/game/Map.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Map.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Map.cpp",
+  "output": "CMakeFiles/MCC.dir/src/game/Map.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/game/Tile.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Tile.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/game/Tile.cpp",
+  "output": "CMakeFiles/MCC.dir/src/game/Tile.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/BodyFactory.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/BodyFactory.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/BodyFactory.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/ContactListener.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/ContactListener.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/ContactListener.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/ContactListener.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/Entity.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/Entity.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/Entity.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/Entity.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/MenuManager.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/MenuManager.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/MenuManager.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/NetworkManager.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/NetworkManager.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/NetworkManager.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/RenderManager.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/RenderManager.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/RenderManager.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/SoundManager.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/SoundManager.cpp.o"
+},
+{
+  "directory": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/build",
+  "command": "g++  -I/usr/include/SDL2 -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/include -I/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src  -lSDL2_mixer -Wl,--allow-multiple-definition -g -L../libs/Box2d/lib -L../libs/qrcodegen/lib -g -o CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o -c /home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp",
+  "file": "/home/alexis/Documents/Stage/Mythical_Conquests_Chronicles/src/manager/WorldManager.cpp",
+  "output": "CMakeFiles/MCC.dir/src/manager/WorldManager.cpp.o"
+}
+]
\ No newline at end of file
diff --git a/include/game/Game.hpp b/include/game/Game.hpp
index 3956094d466625ca0a531eab72aff266c21ccb1c..3f8b2b98eb892e8c2ba46d817493ffa24de14fc4 100644
--- a/include/game/Game.hpp
+++ b/include/game/Game.hpp
@@ -5,8 +5,10 @@
 #include "../manager/RenderManager.hpp"
 #include "../manager/MenuManager.hpp"
 #include "../manager/WorldManager.hpp"
+  
 #include <chrono>
 #include <iostream>
+#include <time.h>
 
 using namespace std::chrono;
 using namespace std;
@@ -56,7 +58,7 @@ class Game
         }
         float* getDeltaT();
         void buildWorld();
-     
+        bool isInGame();
     private:
         void input();        
         void update();
diff --git a/include/game/GameEntities.hpp b/include/game/GameEntities.hpp
index 022db62cc2e5e9305c2731bc9823d21a04c731cb..72f7b7b5d923ba43a72f84e6c068057f51958837 100644
--- a/include/game/GameEntities.hpp
+++ b/include/game/GameEntities.hpp
@@ -9,7 +9,6 @@
 
 // Game
 #include "Entity.hpp"
-
 #include "../utils/include/enum.hpp"
 #include "utils/include/Timer.hpp"
 
@@ -26,7 +25,9 @@ using namespace rapidjson;
 class Skill;
 class WorldManager;
 class LastingEffect;
-
+class Player; 
+class Item;
+class Boots;
 class ObstacleRayCastCallBack : public b2RayCastCallback {
     public:
          ObstacleRayCastCallBack()    
@@ -43,9 +44,10 @@ class ObstacleRayCastCallBack : public b2RayCastCallback {
             
             STypeInstance* entity =  (STypeInstance*)(fixture->GetUserData().pointer);
             if(fixture->GetFilterData().categoryBits == BORDERCATEGORY){
+                this->hit = true;
                 return 0;
             }
-            if(entity->instance == TILEDYNAMIQUE){
+            if(entity->instance == TILEWATER || entity->instance == TILEWALL){
                 this->hit = true;
                 return 0;
             }
@@ -84,7 +86,7 @@ class Being : public Entity
         void setSimpleLook(ELook look){this->simpleLook= look;}
         void setAcceleration(float acceleration){this->acceleration = acceleration;}
         void setState(EntityState state){this->state = state;}
-        void setHp(int hp){this->currHp = currHp;}
+        void setHp(int hp){this->currHp = hp;}
         void setMaxHp(int hp){this->maxHp = maxHp;}
         void update(float deltaT) override { getAnimation(state).getTimer()->update(deltaT); }
         void takeDamage(int damage);
@@ -122,12 +124,115 @@ class Being : public Entity
         // [Stats] --------------------------------------------------
         int armor;
         // Points de vie actuels.
-        int currHp;
+        int currHp=100;
         // Points de vie maximum.
-        int maxHp;
+        int maxHp=100;
         // Can take damage.
         bool CTD;
 };
+/*--------------------------------------------Item----------------------------------------------------*/
+
+class Object
+{
+private:
+    
+public:
+    Object();
+    virtual void use(Player* player)=0;
+    ~Object();
+    bool Serialize(rapidjson::Writer<rapidjson::StringBuffer>* writer);
+    bool Deserialize(const rapidjson::Document& obj);
+};
+
+class Item: public Object
+{
+protected:
+    bool used =false;
+    int amount = 1;
+    Timer cooldown;
+public:
+    Item();
+    ~Item();
+    void setUsed(bool used){
+        this->used = used;
+    }
+    bool getUsed(bool used){{
+        return used;
+    }}
+    virtual bool isLifePotion()=0;
+    void increaseAmount();
+};
+
+class Chest: public Object
+{  
+private:
+    int armor;
+    int luck; 
+public:
+    Chest(int lvl);
+    ~Chest();
+    void use(Player* player);
+};
+
+
+class Glove:public Object
+{
+private:
+    int dexterity;
+    int armor;  
+public:
+    Glove(int lvl);
+    ~Glove();
+    void use(Player* player);
+};
+
+class Boots:public Object
+{
+private:
+    int armor;
+    int dexterity;
+public:
+    Boots(int lvl);
+    ~Boots();
+    void use(Player* player); 
+};
+class Helmet:public Object
+{
+private:
+    int armor;
+    int hp;
+public:
+    Helmet(int lvl);
+    ~Helmet();
+    void use(Player* player);
+};
+class Sword:public Object
+{
+    public:
+        Sword(int lvl);
+        ~Sword();
+        void use(Player* player);
+    private:
+        int strength;
+        int dexterity;
+        int luck;
+};
+
+class LifePotion:public Item 
+{
+private:
+    int healedHP = 10;
+    
+public:
+    LifePotion();
+    ~LifePotion();
+    void use(Player* player);
+    void increaseAmount();
+    bool isLifePotion(){
+        return true;
+    }
+};
+
 
 /** ---------------------------------------------------- [PLAYER] -------------------------------------------
  * Ici on gère le header du joueur.
@@ -136,18 +241,18 @@ class Being : public Entity
 class Player : public Being
 {
     public:
-        Player(float x, float y,b2Shape* shape, WorldManager* parent);
+        Player(float x, float y,b2Shape* shape, WorldManager* parent,int lvl);
 
         /**
          * @brief Basiquement la logique de l'ennemi.
          * 
          * @param deltaT 
          */
-        void update(float deltaT) override;
         void onTouch(b2Contact* contact,float deltaT) override;
-        void setAngle(float angle);
         void BeginContact(b2Contact* contact,float deltaT) override;
+        void update(float deltaT) override;
         void EndContact(b2Contact* contact,float deltaT) override;
+        void setAngle(float angle);
         void getHit(STypeInstance* instance);
         void setState(EntityState state){this->state = state;}
         void setId(short int id){this->id = id;}
@@ -163,6 +268,14 @@ class Player : public Being
         Texture getArrow(){return directionArrow;}
         bool Deserialize(const rapidjson::Document& obj);
         bool Serialize(rapidjson::Writer<rapidjson::StringBuffer>* writer);
+        void addItemToInventory(shared_ptr<Object> obj){
+            if(this->inventory.size()<20){
+                    this->inventory.push_back(obj);
+            }
+        }
+        Timer getHslashTimer(){
+            return timerHslash;
+        }
         string getName(){
             return this->name;
         }
@@ -178,17 +291,23 @@ class Player : public Being
         map<PSkill,std::shared_ptr<Skill>> skills;
         Timer timer;
         Timer timerKnockback;
-
         Texture directionArrow;
         int widthArrow;
         int heightArrow;
         // Par défaut à 0. 0 Est aussi l'identifiant du joueur hôte.
         short int id = 0;
+        Timer timerHslash;
 
         Vec2 vectCollide;
         float angle = 0;
         bool invicible = false;
-
+        vector<shared_ptr<Object>> inventory;
+        map<string,shared_ptr<Item>> items;
+        shared_ptr<Item> equippedItem = NULL;
+        Boots* boots = NULL;
+        Helmet* helmet = NULL;
+        Chest* chest = NULL;
+        Glove* glove = NULL;
         //Stats spécifiques au joueur.
         string name;
         int niveau=1;
@@ -198,7 +317,7 @@ class Player : public Being
         int statPoint=0;
         int magic=10;
         int dexterity=10;
-        int luck=10;    
+        int luck=10;
 };
 
 class Projectile : public Entity,public enable_shared_from_this<Projectile> {
@@ -249,17 +368,26 @@ class Projectile : public Entity,public enable_shared_from_this<Projectile> {
 class Enemy : public Being
 {
     public:
-        Enemy(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent);
+        Enemy(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent);
         
         void update(float deltaT) override;
         void onTouch(b2Contact* contact,float deltaT) override;
         void changeDirection(float deltaT);
+        void setKilledBy(Player player){
+            this->killedBy;
+        }
         void EndContact(b2Contact* contact) {}
         void BeginContact(b2Contact* contact, float deltaT) override;
         void acceptSkill(Skill* skill);
+        int getArmor(){
+            return armor;
+        }
         bool getActive(){
             return active;
         }
+        int getGiftXp(){
+            return this->expGift;
+        }
         void EndContact(b2Contact* contact,float deltaT) {
             b2Fixture* fixtureA = contact->GetFixtureA();
             b2Fixture* fixtureB = contact->GetFixtureB();
@@ -327,11 +455,13 @@ class Enemy : public Being
         bool collide=false;
         bool active = true;
         int expGift;
+        int lvl;
+        Player* killedBy; 
 };
 
 class Skeleton : public Enemy {
     public: 
-        Skeleton(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent);
+        Skeleton(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent);
 
         void update(float deltaT) override;
 
@@ -341,7 +471,7 @@ class Skeleton : public Enemy {
 
 class SkeletonArcher : public Enemy {
     public: 
-        SkeletonArcher(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent);
+        SkeletonArcher(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent);
 
         void update(float deltaT) override;
     
@@ -351,7 +481,7 @@ class SkeletonArcher : public Enemy {
 
 class SkeletonSpearman : public Enemy {
     public: 
-        SkeletonSpearman(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent);
+        SkeletonSpearman(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent);
         void update(float deltaT) override;
 
     private:
@@ -454,7 +584,7 @@ class HSlashRayCast : public b2RayCastCallback {
             enemy->acceptSkill(parent);*/
 
             STypeInstance* typeInstance = reinterpret_cast<STypeInstance*>(udata);         
-
+            cout << "j'ai touché" << endl;
             switch(typeInstance->instance){
                 case ENEMYTYPE:
                     Enemy* enemy = reinterpret_cast<Enemy*>(typeInstance->ptr);
@@ -487,11 +617,10 @@ class EntityFactory {
         static EntityFactory& getInstance(WorldManager* parent);
         static EntityFactory& getInstance();
 
-        void makePlayer(float x,float y);
+        void makePlayer(float x,float y,int lvl);
         void makeSkeleton(float x,float y,float w,float h,int playerLvl);
         void makeArcherSkeleton(float x,float y,float w,float h,int playerLvl);
         void makeProjectile(float x,float y,float vX,float vY,float angle);
-        
     protected:
         EntityFactory(WorldManager* parent);
 
@@ -502,4 +631,5 @@ class EntityFactory {
         
 };
 
+
 #endif
\ No newline at end of file
diff --git a/include/game/Tile.hpp b/include/game/Tile.hpp
index c32ea6bf8ae877f4b5b2208de194e68654d21f61..a2bf9cc50a28fdb7de23ecd278adedb2e0e6e9b6 100644
--- a/include/game/Tile.hpp
+++ b/include/game/Tile.hpp
@@ -33,7 +33,10 @@ enum TileType {
 class TileDynamique : public Entity
 {
     public:
-        TileDynamique(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type) : Entity(x,y,w,h,d,f,0.0f,shape,type,this,TILECATEGORY,TILEDYNAMIQUE, TILEINDEX), x(x), y(y) {}
+        TileDynamique(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type,ETypeInstance typeinstance) : Entity(x,y,w,h,d,f,0.0f,shape,type,this,TILECATEGORY,typeinstance, TILEINDEX), x(x), y(y) 
+        {
+            
+        }
 
         void setX(int x){this->x = x;}
         void setY(int y){this->y = y;}
@@ -99,13 +102,12 @@ class Tile {
         int x;
         int y;
         Texture texture;
-        TileType type;
 };
 
 class TileWall : public TileDynamique
 {
     public:
-        TileWall(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type) : TileDynamique(x, y, w, h, d, f, shape, type){};
+        TileWall(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type) : TileDynamique(x, y, w, h, d, f, shape, type,TILEWALL){};
         void update(float deltaT) override;
         void onTouch(b2Contact* contact,float deltaT) override;
         void BeginContact(b2Contact* contact,float deltaT)override;
@@ -116,7 +118,7 @@ class TileWall : public TileDynamique
 class TileWater : public TileDynamique
 {
     public:
-        TileWater(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type) : TileDynamique(x, y, w, h, d, f, shape, type){};
+        TileWater(int x, int y,int w, int h, int d, int f, b2Shape* shape, BodyType type) : TileDynamique(x, y, w, h, d, f, shape, type,TILEWATER){};
         void update(float deltaT) override;
         void onTouch(b2Contact* contact,float deltaT) override;
         void BeginContact(b2Contact* contact,float deltaT)override;
diff --git a/include/manager/ContactListener.hpp b/include/manager/ContactListener.hpp
index 9318f5be03666f980138ab926a7014cba9b2d948..45eca2e2434dc1b4753258acf0461f4e1b9047a8 100644
--- a/include/manager/ContactListener.hpp
+++ b/include/manager/ContactListener.hpp
@@ -31,10 +31,19 @@ class ContactListener : public b2ContactListener
             // Entity entityB = *((Entity*)(fixtureB->GetUserData().pointer));
             STypeInstance* instanceA = (STypeInstance*)(fixtureA->GetUserData().pointer);
             STypeInstance* instanceB = (STypeInstance*)(fixtureB->GetUserData().pointer);
-             
-            
-            ((Entity*)(instanceA->ptr))->BeginContact(contact,*deltaT);
-            ((Entity*)(instanceB->ptr))->BeginContact(contact,*deltaT);
+            /*if(instanceA->instance == TILESTATIQUE){
+                cout << "hello" << endl;
+                //((Tile*)(instanceA->ptr))->BeginContact(contact,*deltaT);
+                if(instanceA->ptr){
+                    cout << "c'est nul" << endl;
+                }
+            }*/
+            if(fixtureA->GetFilterData().categoryBits!=BORDERCATEGORY && instanceA->instance!=TILESTATIQUE){
+                ((Entity*)(instanceA->ptr))->BeginContact(contact,*deltaT);
+            }
+            if(fixtureB->GetFilterData().categoryBits!=BORDERCATEGORY && instanceB->instance!=TILESTATIQUE){
+                ((Entity*)(instanceB->ptr))->BeginContact(contact,*deltaT);
+            }
             //((Entity*)(fixtureB->GetUserData().pointer))->onTouch(contact,*deltaT);
             
         }
@@ -55,9 +64,12 @@ class ContactListener : public b2ContactListener
             STypeInstance* instanceA = (STypeInstance*)(fixtureA->GetUserData().pointer);
             STypeInstance* instanceB = (STypeInstance*)(fixtureB->GetUserData().pointer);
             
-            
-            ((Entity*)(instanceA->ptr))->EndContact(contact,*deltaT);
-            ((Entity*)(instanceB->ptr))->EndContact(contact,*deltaT);
+            if(fixtureB->GetFilterData().categoryBits!=BORDERCATEGORY && instanceA->instance!=TILESTATIQUE){
+                ((Entity*)(instanceA->ptr))->EndContact(contact,*deltaT);
+            }
+            if(fixtureB->GetFilterData().categoryBits!=BORDERCATEGORY && instanceB->instance!=TILESTATIQUE){
+                ((Entity*)(instanceB->ptr))->EndContact(contact,*deltaT);
+            }
             //((Entity*)(fixtureB->GetUserData().pointer))->onTouch(contact,*deltaT);
          }
         
diff --git a/include/manager/NetworkManager.hpp b/include/manager/NetworkManager.hpp
index 9ffef00b44f23bd78241703322b74ccb5d568444..73601d76d2b1f6177f3408a77742e65a7d322ae2 100644
--- a/include/manager/NetworkManager.hpp
+++ b/include/manager/NetworkManager.hpp
@@ -21,7 +21,7 @@
 #include <SDL2/SDL_net.h>
 
 #include "RenderManager.hpp"
-
+#include "../utils/include/Timer.hpp"
 #include "../../libs/qrcodegen/include/qrcodegen.hpp"
 #include "../../libs/RapidJson/include/rapidjson/document.h"
 #include "../../libs/RapidJson/include/rapidjson/writer.h"
@@ -82,7 +82,7 @@ class NetworkManager
         
     private:
         void removePlayers();
-
+        string getData(TCPsocket);
         static NetworkManager* instance;
         TCPsocket applicationServer = NULL;
         TCPsocket applicationClient = NULL;
@@ -101,7 +101,8 @@ class NetworkManager
 
         std::vector<Splayer> joueurs;
         SDLNet_SocketSet setJoueurs;
-
+        bool active = true;
+        Timer timerActive;
         // Quantité maximale de données que l'on peut recevoir.
         int maxlen = 512;
 };
diff --git a/include/manager/SoundManager.hpp b/include/manager/SoundManager.hpp
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..70464e2d896f5ddb3cb7b626e40b9519b77461da 100644
--- a/include/manager/SoundManager.hpp
+++ b/include/manager/SoundManager.hpp
@@ -0,0 +1,46 @@
+#pragma once
+#ifndef SOUND_MANAGER_H
+#define SOUND_MANAGER_H
+
+
+#include <SDL2/SDL_mixer.h>
+
+class SoundManager{
+    public:
+        static SoundManager& getInstance();
+
+        SoundManager(){
+            printf("j'initialise l'audio");
+            if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT,8, 1024) == -1) //Initialisation de l'API Mixer
+            {
+                printf("%s", Mix_GetError());
+            }
+            backgroundMusic=Mix_LoadWAV("../assets/sound/backgroundMusic.wav");
+            WalkingSkeleton = Mix_LoadWAV("../assets/sound/walkingSkeleton.wav");
+            shootingBow = Mix_LoadWAV("../assets/sound/bow_shoot.wav");
+            hitBow = Mix_LoadWAV("../assets/sound/arrowHit.wav");
+            walkingGrass = Mix_LoadWAV("../assets/sound/walkingGrass.wav");
+            monsterSlash = Mix_LoadWAV("../assets/sound/walkingGrass.wav");
+            Mix_Volume(-1,128);
+            
+        }
+        void PlayMusicBackground();
+        void pauseMusicBackground();
+        void resumeMusicBackground();
+        void PlayWalkingSkeleton(float distance);
+        void playShootingBow(float distance);
+        void playHitBow();
+        void playWalkingGrass();
+        void playMonsterSlash();
+        void freeMusic();
+    private:
+        static SoundManager* instance;
+        
+        Mix_Chunk *backgroundMusic;
+        Mix_Chunk *WalkingSkeleton;
+        Mix_Chunk *shootingBow;
+        Mix_Chunk *hitBow;
+        Mix_Chunk *walkingGrass;
+        Mix_Chunk *monsterSlash;
+};
+#endif
\ No newline at end of file
diff --git a/include/manager/WorldManager.hpp b/include/manager/WorldManager.hpp
index c4269d5f9b4c625141c0a91f49ad0d14d431310a..e57b5847e1d99fcfd037686beff5026648984cd8 100644
--- a/include/manager/WorldManager.hpp
+++ b/include/manager/WorldManager.hpp
@@ -9,6 +9,7 @@
 #include "IActor.hpp"
 #include "BodyFactory.hpp"
 #include "NetworkManager.hpp"
+#include "SoundManager.hpp"
 
 // Game
 #include "../game/Entity.hpp"
@@ -51,6 +52,7 @@ class WorldManager : public IActor
         void renderProjectiles();
         void makeProjectile(float x, float y,float vX,float vY,float angle);
         void buildWorld();
+        bool getInGame();
 
         Player* getClosestPlayer(Entity* entity);
         Enemy* getClosestEnemy(Entity* entity);
@@ -102,6 +104,7 @@ class WorldManager : public IActor
         string popUpMessage;
         bool showPopUP = false; 
         bool debugMode = false;
+        bool inGame = false;
         struct nk_context* ctx;
         int yMouse;
         int xMouse;
diff --git a/include/utils/include/constante.h b/include/utils/include/constante.h
index 69609a2aa367366e1aec32498dc7c63eae0fac04..4737c98c266fbd6343afdd73d9c4847d5eb1543a 100644
--- a/include/utils/include/constante.h
+++ b/include/utils/include/constante.h
@@ -20,13 +20,14 @@
 #define PLAYERCATEGORY 0x0008
 #define ENNEMYCATEGORY 0x004
 #define TILECATEGORY 0x0010
-#define BORDERCATEGORY 0x0020
+#define BORDERCATEGORY 0x0016
 #define PROJECTILECATEGORY 0x0040
 
 enum groupIndex {
-    PLAYERINDEX = 1,
+    PLAYERINDEX = 2,
     ENEMYINDEX = -3,
     PROJECTILEINDEX = -3,
-    TILEINDEX = 4
+    TILEINDEX = 4,
+    BORDERINDEX = 5
 };
 #endif
\ No newline at end of file
diff --git a/include/utils/include/enum.hpp b/include/utils/include/enum.hpp
index 5b2509f39b7ad1f6c99b117521ca508d04056dc0..3f5ce18460c916686862a0a8dff96ff6acafb0c2 100644
--- a/include/utils/include/enum.hpp
+++ b/include/utils/include/enum.hpp
@@ -39,6 +39,8 @@ enum ETypeInstance {
     PLAYERTYPE,
     ENEMYTYPE,
     TILEDYNAMIQUE,
+    TILEWALL,
+    TILEWATER,
     TILESTATIQUE,
     TARGETTYPE,
     KNOCKBACKTYPE,
diff --git a/save/save1.json b/save/save1.json
index 82b450dbc3eca7406fe2ddc6a151ddd7859c9e3a..8250b35246f5c09ab93e7c7f9323bfdcb28f2168 100644
--- a/save/save1.json
+++ b/save/save1.json
@@ -1 +1 @@
-{"character":{"name":"player","lvl":1,"experience":0,"statsPoints":0}}
\ No newline at end of file
+{"character":{"name":"","lvl":1,"experience":0,"statsPoints":0,"strength":10,"magic":10,"dexterity":10,"luck":2,"armor":10}}
\ No newline at end of file
diff --git a/save/save2.json b/save/save2.json
deleted file mode 100644
index 82b450dbc3eca7406fe2ddc6a151ddd7859c9e3a..0000000000000000000000000000000000000000
--- a/save/save2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"character":{"name":"player","lvl":1,"experience":0,"statsPoints":0}}
\ No newline at end of file
diff --git a/src/game/Game.cpp b/src/game/Game.cpp
index f9bee07aa40a7b1bcff847d5f7387f06a1180766..ea0f7604970b84819fd78e71df955c06090e7287 100644
--- a/src/game/Game.cpp
+++ b/src/game/Game.cpp
@@ -6,7 +6,7 @@ Game::Game(char gameTitle[], int width, int height, bool fullscreen)
         cerr << "Error initializing SDL: " << SDL_GetError() << endl;
         exit(1);
     }
-
+    //SDL_AudioInit("waveout");
     RenderManager& rm = RenderManager::getInstance("My Window", 800, 600,fullscreen);
     renderManager = &rm;
     
@@ -20,7 +20,9 @@ Game::Game(char gameTitle[], int width, int height, bool fullscreen)
 
     branches = IMG_LoadTexture(renderManager->getRenderer(), "../assets/background/branches.png");
 }
-
+bool Game::isInGame(){
+            return worldManager->getInGame();
+}
 Game::~Game(){
     delete renderManager;
     delete worldManager;
@@ -46,6 +48,7 @@ void Game::gameLoop()
 
         render();
     }
+    SoundManager::getInstance().freeMusic();
 }
 
 void Game::saveGame(string namefile){
diff --git a/src/game/GameEntities.cpp b/src/game/GameEntities.cpp
index a55660913397dbe96e5eaad564e500d65dbae0d5..351d0b4680273e7b119d893725b83a8a2cef3763 100644
--- a/src/game/GameEntities.cpp
+++ b/src/game/GameEntities.cpp
@@ -13,7 +13,7 @@ Being::Being(float x,float y, float w, float h,float d, float f,float r,b2Shape*
  * Ici on gère les fonctions du joueur.
  */
 
-Player::Player(float x, float y,b2Shape* shape, WorldManager* parent) : Being(x, y, PLAYERSIZE_W / PPM, PLAYERSIZE_H / PPM, 10.0f, 1.0f,0.0f, shape, Dynamic,this,PLAYERCATEGORY,PLAYERTYPE,PLAYERINDEX,parent)
+Player::Player(float x, float y,b2Shape* shape, WorldManager* parent,int lvl) : Being(x, y, PLAYERSIZE_W / PPM, PLAYERSIZE_H / PPM, 10.0f, 1.0f,0.0f, shape, Dynamic,this,PLAYERCATEGORY,PLAYERTYPE,PLAYERINDEX,parent)
 {
     skills[HSlashSkill] = std::make_unique<HSlash>(this,world);
     this->parent = parent;
@@ -21,7 +21,15 @@ Player::Player(float x, float y,b2Shape* shape, WorldManager* parent) : Being(x,
     this->currHp = 100;
     this->maxHp = 100;
     this->acceleration = 1.7f;
-   
+    this->niveau = lvl;
+    this->strength = 10;
+    this->magic = 10;
+    this->dexterity = 15;
+    this->luck = 2;
+    this->armor = 10;
+    //this->timerHslash.setEnded(true);
+    this->timerHslash.setEnd(2.0f);    
+    this->items["lifePotion"]=make_unique<LifePotion>();
     
 
     /* [Ajout de textures pour le joueur] --------------------------------------------------------------------- 
@@ -47,7 +55,7 @@ Player::Player(float x, float y,b2Shape* shape, WorldManager* parent) : Being(x,
 
     // Slashing
     const string slashing = "../assets/player/FighterSlashAttack.png";
-    parent->addAnimationToEntity(this, slashing, 4, PLAYERSIZE_H, PLAYERSIZE_H * 2, HSlashState, 0.1f);
+    parent->addAnimationToEntity(this, slashing, 4, PLAYERSIZE_H, PLAYERSIZE_H * 2, HSlashState, 0.2f);
     this->getAnimation(HSlashState).setLoop(false);
 
     RenderManager& renderManager = RenderManager::getInstance();
@@ -58,6 +66,7 @@ Player::Player(float x, float y,b2Shape* shape, WorldManager* parent) : Being(x,
 void Player::update(float deltaT)
 {
     Being::update(deltaT);
+    timerHslash.update(deltaT);
     if(invicible){
         timer.update(deltaT);
         if(timer.getEnded()){
@@ -77,9 +86,10 @@ void Player::update(float deltaT)
                 vectCollide.SetZero();
             }
         }
-        
     }
-
+    if(this->state==WalkingState || this->state == RunningState){
+        SoundManager::getInstance().playWalkingGrass();
+    }
 
 }
 void Player::gainXp(int exp){
@@ -95,6 +105,15 @@ void Player::onTouch(b2Contact* contact,float deltaT)
     //cout << "J'ai touché " << endl;
 }
 bool Player::Deserialize(const rapidjson::Document& obj){
+    this->name = obj["character"]["name"].GetString();
+    this->niveau = obj["character"]["lvl"].GetInt();
+    this->exp = obj["character"]["experience"].GetInt();
+    this->statPoint = obj["character"]["statsPoints"].GetInt();
+    this->strength = obj["character"]["statsPoints"].GetInt();
+    this->magic = obj["character"]["magic"].GetInt();
+    this->luck = obj["character"]["luck"].GetInt();
+    this->dexterity = obj["character"]["luck"].GetInt();
+    this->armor = obj["character"]["armor"].GetInt();
     return true;
 }
 bool Player::Serialize(rapidjson::Writer<rapidjson::StringBuffer>* writer){
@@ -110,6 +129,16 @@ bool Player::Serialize(rapidjson::Writer<rapidjson::StringBuffer>* writer){
         writer->Int(this->exp);
         writer->Key("statsPoints");
         writer->Int(this->statPoint);
+        writer->Key("strength");
+        writer->Int(this->getStrength());
+        writer->Key("magic");
+        writer->Int(this->magic);
+        writer->Key("dexterity");
+        writer->Int(this->dexterity);
+        writer->Key("luck");
+        writer->Int(this->luck);
+        writer->Key("armor");
+        writer->Int(this->armor);
         writer->EndObject();
     writer->EndObject();
     
@@ -192,7 +221,7 @@ void Player::EndContact(b2Contact* contact,float deltaT) {
  * Ici on gère les fonctions de l'ennemi.
  */
 
-Enemy::Enemy(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent) : Being(x, y, w / PPM, h / PPM, 1.0f, 1.0f,0.0f, shape, Dynamic,this,ENNEMYCATEGORY,ENEMYTYPE,ENEMYINDEX,parent){
+Enemy::Enemy(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent) : Being(x, y, w / PPM, h / PPM, 1.0f, 1.0f,0.0f, shape, Dynamic,this,ENNEMYCATEGORY,ENEMYTYPE,ENEMYINDEX,parent){
     this->parent = parent;
     this->world = parent->getWorld();
 
@@ -205,13 +234,15 @@ Enemy::Enemy(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldMa
         Vec2(PLAYERSIZE_W/(2.0f*PPM),PLAYERSIZE/(PPM*2.0f)),
         0.0f
     );
-
+    armor = 10;
     b2CircleShape sensorPlayer;
     sensorPlayer.m_p.Set(getBody()->GetLocalCenter().x,getBody()->GetLocalCenter().y);
     sensorPlayer.m_radius = 6.0f;
     this->expGift = expGift;
     BodyFactory::getInstance().addSensor(this->getBody(),0.0f,1.0f,&sensorPlayer,PLAYERCATEGORY,this,TARGETTYPE,ENEMYINDEX);
     BodyFactory::getInstance().addSensor(this->getBody(),0.0f,1.0f,shape,PLAYERCATEGORY,this,KNOCKBACKTYPE,ENEMYINDEX);
+    BodyFactory::getInstance().addSensor(this->getBody(),0.0f,1.0f,shape,BORDERCATEGORY,this,KNOCKBACKTYPE,ENEMYINDEX);
+    
 }
 
 void Enemy::changeDirection(float deltaT){
@@ -220,6 +251,7 @@ void Enemy::changeDirection(float deltaT){
 
 void Enemy::BeginContact(b2Contact* contact,float deltaT) {
     
+   
     b2Fixture* fixtureA = contact->GetFixtureA();
     b2Fixture* fixtureB = contact->GetFixtureB();
     STypeInstance* instanceA = (STypeInstance*)(fixtureA->GetUserData().pointer);
@@ -234,11 +266,25 @@ void Enemy::BeginContact(b2Contact* contact,float deltaT) {
             break;
         }
         case KNOCKBACKTYPE:
-        {
-                Player* player = ((Player*)instanceA->ptr);
-                player->setHp(player->getHp()-10);
-                printf("player hp : %d",player->getHp());
-                break;
+        {       
+           
+           
+                switch(instanceB->instance){
+                    case PLAYERTYPE:
+                    {
+                       
+                            Player* player = ((Player*)instanceB->ptr);
+                             if(!player->getInvicible()){
+
+                            player->setHp(player->getHp()-10);
+                            printf("player hp : %d",player->getHp());
+                            }
+                            break;
+                                      
+                    }
+                    
+                }
+            
         }
         default:
             break;
@@ -246,17 +292,26 @@ void Enemy::BeginContact(b2Contact* contact,float deltaT) {
         switch (instanceB->instance)
         {
         case TARGETTYPE:
-            cout << instanceA->instance << endl;
+            
             this->potentialTarget.push_back(((Player*)instanceA->ptr));
             break;
         case KNOCKBACKTYPE:
             {
-                Player* player = ((Player*)instanceA->ptr);
-                player->setHp(player->getHp()-10);
-                printf("player hp : %d",player->getHp());
-                break;
-
-            }
+                switch(instanceA->instance){
+                    case PLAYERTYPE:
+                    {
+                            
+                            Player* player = ((Player*)instanceB->ptr);
+                            if(!player->getInvicible()){
+
+                            player->setHp(player->getHp()-10);
+                            printf("player hp : %d",player->getHp());
+                            }
+                            break;
+                                      
+                    }       
+                }
+           }
         default:
             break;
     }
@@ -264,10 +319,15 @@ void Enemy::BeginContact(b2Contact* contact,float deltaT) {
 
 void Enemy::update(float deltaT){
     Being::update(deltaT);
+    if(this->currHp<=0){
+        this->active = false;
+        return;
+    }
     if(cible){
         Vec2 direction = Vec2(cible->getBody()->GetPosition().x,cible->getBody()->GetPosition().y);
         direction.operator -= (this->getBody()->GetPosition());
         if(direction.Length() >= maxAggro){
+            this->state= IdleState;
             cible = nullptr;
             return;
         }
@@ -281,7 +341,7 @@ void Enemy::update(float deltaT){
 void Enemy::lookForTarget(){
     if(!this->cible){
         if(potentialTarget.size()!=0){ 
-            cout << potentialTarget.size() << endl;
+           
             cible = (potentialTarget.back());
             float distance_min = fabs(b2Distance(this->getBody()->GetPosition(),cible->getBody()->GetPosition()));
             float distance;
@@ -295,7 +355,7 @@ void Enemy::lookForTarget(){
         }
     }
 }
-void Enemy::acceptSkill(Skill* skill){cout << "je suis touché" << endl; }
+void Enemy::acceptSkill(Skill* skill){skill->applySkillEnemy(this); }
 void Enemy::followTarget(float deltaT){
         Vec2 direction = Vec2(cible->getBody()->GetPosition().x,cible->getBody()->GetPosition().y);
         direction.operator -= (this->getBody()->GetPosition());
@@ -321,14 +381,16 @@ void Enemy::followTarget(float deltaT){
 
         for(int i = 0; i < 8; i++){
             Vec2 normTest(direction);
-            normTest.operator*=(0.5f);
+            normTest.operator*=(0.8f);
             Vec2 target(point[i]);
             target.x += normTest.x;
             target.y += normTest.y;
             world->RayCast(&(this->rayCastCallback),point[i],target);
+
         }
 
         if(rayCastCallback.getHit()){
+           
             // On ajuste la direction.
             float angle = (90 * M_PI) / 180.0;
             double newX = direction.x * cos(angle) - direction.y * sin(angle);
@@ -352,7 +414,7 @@ void Enemy::onTouch(b2Contact* contact,float deltaT){
 
 // NB : Comme il y aura plusieurs classes d'ennemis, faire un vector de pointeurs intelligents.
 
-Skeleton::Skeleton(float x, float y, int w, int h,int xpGift, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,xpGift,shape, parent){
+Skeleton::Skeleton(float x, float y, int w, int h,int xpGift,int lvl, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,xpGift,lvl,shape, parent){
     currHp = 100;
     maxHp = 100;
     armor = 0;
@@ -400,6 +462,7 @@ void Skeleton::update(float deltaT){
     if(state == IdleState){
         // Regarde d'abord si le chrono de l'état passif est terminé. 
         if(timerEtatPassif.getEnded()){
+            
             const int randomValue = (rand() % 3) + 1;
 
             // Si = 1 génère une destination aléatoire.
@@ -407,12 +470,12 @@ void Skeleton::update(float deltaT){
                 this->state = WalkingState;
 
                 double randomDoubleX = static_cast<double>(rand()) / RAND_MAX;
-                double x = 0.0 + randomDoubleX * 4.0;
+                double x = randomDoubleX * 100.0;
                 double randomDoubleY = static_cast<double>(rand()) / RAND_MAX;
-                double y = 0.0 + randomDoubleY * 4.0;
+                double y =  randomDoubleY * 100.0;
 
                 destination = Vec2(x, y);
-            }
+             }
         }
     }
     
@@ -420,9 +483,30 @@ void Skeleton::update(float deltaT){
     if(state == WalkingState){
         Vec2 currentPosition = body->GetPosition();
         Vec2 distanceToTarget = destination - currentPosition;
-
+        Vec2 position = this->getBody()->GetPosition();
+        Vec2 point[8];
+        
+        this->rayCastCallback.setHit(false);
+        point[0] = Vec2(position.x,position.y);
+        point[1] = Vec2(position.x+this->getWidth(),position.y);
+        point[2] = Vec2(position.x,position.y+this->getHeight());
+        point[3] = Vec2(position.x+this->getWidth(),position.y+this->getHeight());
+        point[4] = Vec2(position.x,position.y+this->getHeight()/2.0f);
+        point[5] = Vec2(position.x+this->getWidth(),position.y+this->getHeight()/2.0f);
+        point[6] = Vec2(position.x+this->getWidth()/2.0f,position.y);
+        point[7] = Vec2(position.x+this->getWidth()/2.0f,position.y+this->getHeight());
+        Vec2 direction = distanceToTarget;
+        direction.Normalize();
+        for(int i = 0; i < 8; i++){
+            Vec2 normTest(direction);
+            normTest.operator*=(0.8f);
+            Vec2 target(point[i]);
+            target.x += normTest.x;
+            target.y += normTest.y;
+            world->RayCast(&(this->rayCastCallback),point[i],target);
+        }
         // Arrête le mouvement lorsque l'objet est proche de la cible.
-        if (distanceToTarget.Length() < tolerance) {
+        if (distanceToTarget.Length() < tolerance || this->rayCastCallback.getHit()) {
             velocity.x = 0; velocity.y = 0;
             state = IdleState;
             timerEtatPassif.reset();
@@ -431,8 +515,8 @@ void Skeleton::update(float deltaT){
 
         // Continue de se diriger vers la cible.
         else {
-            Vec2 direction = distanceToTarget;
-            direction.Normalize();
+            
+            
             velocity = walkspeed * deltaT * direction;
         }
     }
@@ -473,6 +557,7 @@ void Skeleton::update(float deltaT){
                    instance.instance=ENEMYTYPE;
                    instance.ptr = this;
                    this->cible->getHit(&instance);
+                   SoundManager::getInstance().playMonsterSlash();
                 }
             }
         }
@@ -485,7 +570,7 @@ void Skeleton::update(float deltaT){
 
 // [SkeletonArcher] ----------------------------------------------------------------------------------------------
 
-SkeletonArcher::SkeletonArcher(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,expGift, shape, parent) {
+SkeletonArcher::SkeletonArcher(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,expGift,lvl,shape, parent) {
    currHp = 100;
     maxHp = 100;
     armor = 0;
@@ -524,7 +609,7 @@ void SkeletonArcher::update(float deltaT){
                 if(this->cible != nullptr){
                      if(b2Distance(this->getBody()->GetPosition(),cible->getBody()->GetPosition())<this->attackRange && this->state != SHOTSTATE){
                         const int randomValue = (rand() % 100) + 1;
-                        if(randomValue == 1){
+                        if(randomValue ==1 || randomValue == 2){
                             this->state = SHOTSTATE;
                         }
                         else{
@@ -555,6 +640,7 @@ void SkeletonArcher::update(float deltaT){
                     float yArrive = positionEnemy.y + (sin(angle));
                     parent->makeProjectile(xArrive,yArrive,xVelocity,yVelocity,angle);
                     this->state = IdleState;
+                    SoundManager::getInstance().playShootingBow(b2Distance(this->body->GetPosition(),this->cible->getBody()->GetPosition()));
                 }
                 break;
             }
@@ -583,7 +669,7 @@ void SkeletonArcher::update(float deltaT){
 
 // [SkeletonSpearman] ----------------------------------------------------------------------------------------------
 
-SkeletonSpearman::SkeletonSpearman(float x, float y, int w, int h,int expGift, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,expGift, shape, parent) {
+SkeletonSpearman::SkeletonSpearman(float x, float y, int w, int h,int expGift,int lvl, b2Shape* shape, WorldManager* parent) : Enemy(x, y, w, h,expGift,lvl, shape, parent) {
 
 }
 
@@ -597,35 +683,93 @@ void SkeletonSpearman::update(float deltaT){
  */
 
 bool HSlash::use(){
-    HSlashRayCast callback = HSlashRayCast(this, 5);
-    Vec2 pPos = parent->getPosition();
-    Vec2 pSize = parent->getSize();
-
-    const int& step = 2 * pSize.x;
-    int dir = 1;
-
-    if(parent->getSimpleLook() == Left){
-        dir = -1;
-    }
-    Vec2 point1(
-        pPos.x + (pSize.x / 2.0f), 
-        pPos.y + (pSize.y / 2.0f)
-    );
-    Vec2 point2(
-        point1.x + step * dir, 
-        point1.y
-    );
-
-    //cout << point1.x << " : " << point1.y << endl;
-    //cout << "position joueur : " << pPos.x << " : " << pPos.y << endl;
-    //cout << "position raycast p2 : " << point2.x << " : " << point2.y << endl;
-
-    world->RayCast(&callback, point1, point2);
-
-    return true;                                                             
+    if(this->parent->getHslashTimer().getEnded()){
+        printf("j'utilise le skill");
+        this->parent->getHslashTimer().reset();
+        HSlashRayCast callback = HSlashRayCast(this, 5);
+        Vec2 pPos = parent->getPosition();
+        Vec2 pSize = parent->getSize();
+
+        const int& step = 2 * pSize.x;
+        int dir = 1;
+
+        if(parent->getSimpleLook() == Left){
+            dir = -1;
+        }
+        Vec2 point1(
+            pPos.x + (pSize.x / 2.0f), 
+            pPos.y + (pSize.y / 2.0f)
+        );
+        Vec2 point2(
+            point1.x + step * dir, 
+            point1.y
+        );
+
+        //cout << point1.x << " : " << point1.y << endl;
+        //cout << "position joueur : " << pPos.x << " : " << pPos.y << endl;
+        //cout << "position raycast p2 : " << point2.x << " : " << point2.y << endl;
+
+        world->RayCast(&callback, point1, point2);
+
+        return true;
+    }  
+    printf("j'utilise pas le skill");     
+    return false;                                                      
 }
 void HSlash::applySkillEnemy(Enemy* enemy){
-    enemy->setHp(enemy->getHp()-this->parent->getStrength());
+    int degats;
+    if(this->parent->getStrength()*2<=enemy->getArmor()){
+        degats=1;
+    }
+    else{
+        degats = this->parent->getStrength()-enemy->getArmor();
+    }
+    enemy->setHp(enemy->getHp()-this->parent->getStrength()*(parent->getStrength()/parent->getStrength()+enemy->getArmor()));
+    if(enemy->getHp()<=0){
+        this->parent->gainXp(enemy->getGiftXp());
+        int dropchance = (rand() % 100)+1;
+        if(dropchance >=1 && dropchance<=20){
+            int drop = (rand() % 5) +1;
+            switch (drop)
+            {
+            case 1:
+                {
+                Helmet helmet(this->level);
+                shared_ptr<Object> obj(&helmet);
+                this->parent->addItemToInventory(obj);
+                }
+                break;
+            case 2:
+            {
+                Chest chest(this->level);
+                shared_ptr<Object> obj(&chest);
+                this->parent->addItemToInventory(obj);
+                break;
+            }
+            case 3:
+            {
+                Glove glove(this->level);
+                shared_ptr<Object> obj(&glove);
+                this->parent->addItemToInventory(obj);
+                break;
+            }
+            case 4:
+            {
+                Boots boots(this->level);
+                shared_ptr<Object> obj(&boots);
+                this->parent->addItemToInventory(obj);
+                break;
+            }
+            case 5:
+            {
+                LifePotion potion;
+                shared_ptr<Item> obj(&potion);
+                break;
+            }
+            }
+            
+        }
+    }
 }
 Projectile::Projectile(float x,float y,b2Shape* shape,WorldManager* parent): Entity(x,y,48/(2*PPM),1/(2*PPM),1.0f,1.0f,1.0f,shape,Dynamic,this,PROJECTILECATEGORY,PROJECTILETYPE,PROJECTILEINDEX){
 
@@ -665,6 +809,7 @@ void Projectile::BeginContact(b2Contact* contact,float deltaT){
     {
         printf("je touche un joueur");
         Player* player = ((Player*)(instanceA->ptr));
+        SoundManager::getInstance().playHitBow();
         if(player->getInvicible()){
             player->setHp(player->getHp()-1);
         }
@@ -689,6 +834,7 @@ void Projectile::BeginContact(b2Contact* contact,float deltaT){
     case PLAYERTYPE:
     {
         printf("je touche un joueur");
+        SoundManager::getInstance().playHitBow();
         Player* player = ((Player*)(instanceB->ptr));
         if(player->getInvicible()){
             player->setHp(player->getHp()-1);
@@ -743,8 +889,8 @@ EntityFactory& EntityFactory::getInstance()
 
 void EntityFactory::makeSkeleton(float x,float y,float w,float h,int playerLvl){
     b2PolygonShape eshape;
-    const float enemySize_w = PLAYERSIZE_W / PPM;
-    const float enemySize_h = PLAYERSIZE_H / PPM;
+    const float enemySize_w = w / PPM;
+    const float enemySize_h = h / PPM;
     eshape.SetAsBox(
         enemySize_w/2.0f,
         enemySize_h/2.0f,
@@ -758,6 +904,7 @@ void EntityFactory::makeSkeleton(float x,float y,float w,float h,int playerLvl){
         w,
         h,
         xpGift,
+        playerLvl,
         &eshape,
         parent
     );
@@ -765,28 +912,29 @@ void EntityFactory::makeSkeleton(float x,float y,float w,float h,int playerLvl){
 }
 void EntityFactory::makeArcherSkeleton(float x,float y,float w,float h,int playerLvl){
     b2PolygonShape eshape;
-    const float enemySize_w = PLAYERSIZE_W / PPM;
-    const float enemySize_h = PLAYERSIZE_H / PPM;
+    const float enemySize_w = w / PPM;
+    const float enemySize_h = h / PPM;
     eshape.SetAsBox(
-        enemySize_w/2.0f,
+       enemySize_w/2.0f,
         enemySize_h/2.0f,
-        Vec2(enemySize_w/2.0f,enemySize_h/2.0f),
+        Vec2(enemySize_w/2.0f,(enemySize_h/2.0f)+32/PPM),
         0.0f
     );
     int xpGift = 100 * playerLvl;
     std::shared_ptr<Enemy> skeleton = std::make_unique<SkeletonArcher>(
         x,
         y,
-        enemySize_w,
-        enemySize_h,
+        w,
+        h,
         xpGift,
+        playerLvl,
         &eshape,
         parent
     );
     parent->getEnemies()->push_back(skeleton);
 }
 
-void EntityFactory::makePlayer(float x,float y){
+void EntityFactory::makePlayer(float x,float y,int lvl){
     const float playerWidth = PLAYERSIZE_W / PPM;
     const float playerHeigth = PLAYERSIZE_H / PPM;
     b2PolygonShape shape;
@@ -797,7 +945,7 @@ void EntityFactory::makePlayer(float x,float y){
         0.0f
     );
     
-    parent->getPlayers()->emplace_back(x,y,&shape,parent);      
+    parent->getPlayers()->emplace_back(x,y,&shape,parent,lvl);      
 }
 
 void EntityFactory::makeProjectile(float x,float y,float vX,float vY,float angle){
@@ -810,4 +958,82 @@ void EntityFactory::makeProjectile(float x,float y,float vX,float vY,float angle
      projectile->setAngle(angle);
      vX >= 0 ? projectile->setSimpleLook(Left):projectile->setSimpleLook(Right);
     this->parent->getProjectiles()->push_back(projectile);
-}
\ No newline at end of file
+}
+Object::Object()
+{
+}
+
+Object::~Object()
+{
+}
+
+Item::Item()
+{
+}
+
+Item::~Item()
+{
+}
+
+Chest::Chest(int lvl)
+{
+}
+void Chest::use(Player* player){
+
+}
+Chest::~Chest()
+{
+}
+
+Glove::Glove(int lvl)
+{
+
+}
+void Glove::use(Player* player){
+
+}
+Glove::~Glove()
+{
+}
+Helmet::Helmet(int lvl)
+{
+}
+void Helmet::use(Player* player){
+    
+}
+Helmet::~Helmet()
+{
+}
+Boots::Boots(int lvl){
+
+}
+Boots::~Boots(){
+
+}
+void Boots::use(Player* player){
+
+}
+LifePotion::LifePotion():Item()
+{
+}
+
+LifePotion::~LifePotion()
+{
+}
+void LifePotion::use(Player* player){
+    if(amount>0){
+        player->setHp(player->getHp()+this->healedHP);
+    }
+}
+void LifePotion::increaseAmount(){
+    amount++;
+}
+Sword::Sword(int lvl){
+
+}
+Sword::~Sword(){
+
+}
+void Sword::use(Player* player){
+
+}
diff --git a/src/manager/BodyFactory.cpp b/src/manager/BodyFactory.cpp
index 66a67093a76f61775be11835c6db3c1f1245bdfa..8ffddb2965538a7a2fa1bef32b9ff37700fa6187 100644
--- a/src/manager/BodyFactory.cpp
+++ b/src/manager/BodyFactory.cpp
@@ -81,7 +81,7 @@ b2Body* BodyFactory::createDynamicBody(float x,float y, float w, float h,float d
     userData->instance = type;
     fixtureDef.userData.pointer = reinterpret_cast<uintptr_t>(userData);
     fixtureDef.filter.categoryBits = category;
-    //fixtureDef.filter.groupIndex = index;
+    fixtureDef.filter.groupIndex = index;
     body->SetFixedRotation(true);
     body->CreateFixture(&fixtureDef);
     body->SetLinearDamping(2.0f);
@@ -121,7 +121,7 @@ void BodyFactory::setupBorder(int widthMap,int heightMap){
   fixtureDef.density = 1.0f;
   fixtureDef.friction = 1.0f;
   fixtureDef.filter.categoryBits = BORDERCATEGORY;
-  
+  fixtureDef.filter.groupIndex = BORDERINDEX;
   
   body->CreateFixture(&fixtureDef);
 
@@ -132,7 +132,8 @@ void BodyFactory::setupBorder(int widthMap,int heightMap){
   fixtureDef2.density = 1.0f;
   fixtureDef2.friction =1.0f;
   fixtureDef2.filter.categoryBits = BORDERCATEGORY;
-  
+  fixtureDef2.filter.groupIndex = BORDERINDEX;
+
   
   body->CreateFixture(&fixtureDef2);
   
@@ -143,8 +144,8 @@ void BodyFactory::setupBorder(int widthMap,int heightMap){
   fixtureDef3.density = 1.0f;
   fixtureDef3.friction =1.0f;
   fixtureDef3.filter.categoryBits = BORDERCATEGORY;
+   fixtureDef3.filter.groupIndex = BORDERINDEX;
   
-  fixtureDef3.filter.maskBits=0x000;
   body->CreateFixture(&fixtureDef3);
   
   b2FixtureDef fixtureDef4;
@@ -154,6 +155,7 @@ void BodyFactory::setupBorder(int widthMap,int heightMap){
   fixtureDef4.density = 1.0f;
   fixtureDef4.friction =1.0f;
   fixtureDef4.filter.categoryBits = BORDERCATEGORY;
+   fixtureDef4.filter.groupIndex = BORDERINDEX;
   body->CreateFixture(&fixtureDef4);
 }
 
diff --git a/src/manager/MenuManager.cpp b/src/manager/MenuManager.cpp
index 90f58a989a5207c49ab19c21a0e80e312a9c278a..e95140fc313945321a39effc36386a190ddad36d 100644
--- a/src/manager/MenuManager.cpp
+++ b/src/manager/MenuManager.cpp
@@ -56,7 +56,7 @@ void MenuManager::menu(){
         NK_WINDOW_BORDER |
         NK_WINDOW_NO_SCROLLBAR))
     {
-        string startGame = (game->getLoadedSave()=="" ? "Nouvelle partie" : "Reprendre la partie");
+        string startGame = (game->getLoadedSave()=="" && !game->isInGame() ? "Nouvelle partie" : "Reprendre la partie");
         float ratio[] = {0.1f, 0.80f,0.1f};
         int h = menu_height / 15;
         nk_layout_row(ctx, NK_DYNAMIC, h, 3, ratio);
@@ -66,7 +66,14 @@ void MenuManager::menu(){
         nk_spacer(ctx);
         if (nk_button_label(ctx, startGame.c_str())) {
             game->setState(InGame);
-            //game->buildWorld();
+            
+            if(!game->isInGame()){
+                game->buildWorld();
+                SoundManager::getInstance().PlayMusicBackground();
+            }
+            else{
+                SoundManager::getInstance().resumeMusicBackground();
+            }
         }
         nk_spacer(ctx);
         
@@ -169,6 +176,9 @@ string MenuManager::getTitleFromFile(std::filesystem::path filePath){
     cout << content << endl;
     Document save;
     save.Parse<0>(content.c_str());
+    if(save.HasParseError()){
+        return "";
+    }
     string name(save["character"]["name"].GetString());
 
     int niveau = save["character"]["lvl"].GetInt(); 
@@ -179,7 +189,6 @@ string MenuManager::getTitleFromFile(std::filesystem::path filePath){
     saveName.append(std::to_string(niveau));
     file.close();
     return saveName;
-    return "" ;
    /* vector<string> tokens = getSplitString(content,'\n');
     
     vector<string> infoPlayer; 
diff --git a/src/manager/NetworkManager.cpp b/src/manager/NetworkManager.cpp
index 7061bd2ad6d159bedc3df389644c08eb32bed21f..c87cbea450238653abd077688e39d365e4a68ffd 100644
--- a/src/manager/NetworkManager.cpp
+++ b/src/manager/NetworkManager.cpp
@@ -273,21 +273,37 @@ string NetworkManager::getApplicationAddress(){
             
             return "";
         }
-
+string NetworkManager::getData(TCPsocket socket){
+            char length[50];
+            int recvLength = SDLNet_TCP_Recv(socket,length,50);
+            while (recvLength <50)
+            {
+                recvLength += SDLNet_TCP_Recv(socket,length,50-recvLength);
+            }
+            int messageLength = stoi(length);
+            char data[messageLength];
+            recvLength = SDLNet_TCP_Recv(socket,data,messageLength);
+            while(recvLength < messageLength){
+                recvLength+= SDLNet_TCP_Recv(socket,data,messageLength-recvLength);
+            }
+            string message(data);
+            return message;
+}
 void NetworkManager::acceptApplicationClient(){
 
     if(applicationServer){
      
         //cout << "je vérifie que quelqu'un veut entrer" << endl;
        if(!applicationClient){
-           
             this->applicationClient = SDLNet_TCP_Accept(applicationServer);
             if(applicationClient){
+                timerActive.reset();
+                active =true;
                 rapidjson::StringBuffer buffer;
                 rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
                 writer.StartObject();
                 writer.Key("type");
-                writer.String("welcome");
+                writer.String("TTL");
                 writer.Key("data");
                 writer.String("bienvenue");
                 writer.EndObject();
@@ -300,27 +316,37 @@ void NetworkManager::acceptApplicationClient(){
                 }
                 char datarec[maxlen];
                 SDLNet_CheckSockets(clientSet, 1000);
-                if(SDLNet_SocketReady(applicationClient)){
-                    SDLNet_TCP_Recv(applicationClient,datarec,sizeof(datarec));
-                    cout << datarec << endl;
-                }
+                
+                
             }
         }
         else{
-            
-            this->applicationTmp = SDLNet_TCP_Accept(applicationServer);
-            if(applicationTmp){
-                rapidjson::StringBuffer buffer;
-                rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
-                writer.StartObject();
+            rapidjson::StringBuffer buffer;
+            rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
+            writer.StartObject();
                 writer.Key("type");
-                writer.String("close");
+                writer.String("ttl");
                 writer.Key("data");
-                writer.String("il existe déjà un client");
-                writer.EndObject();
-                 SDLNet_TCP_Send(applicationTmp,buffer.GetString(),buffer.GetLength());
-                 SDLNet_TCP_Close(applicationTmp);
+                writer.String("");
+            writer.EndObject();
+            SDLNet_TCP_Send(this->applicationClient,buffer.GetString(),buffer.GetLength());
+            SDLNet_CheckSockets(clientSet, 1000);
+            this->active = SDLNet_SocketReady(applicationClient);
+            this->applicationTmp = SDLNet_TCP_Accept(applicationServer);
+            if(this->applicationTmp){
+                rapidjson::StringBuffer bufferTMP;
+                rapidjson::Writer<rapidjson::StringBuffer> writerTMP(bufferTMP);
+                writerTMP.StartObject();
+                    writerTMP.Key("type");
+                    writerTMP.String("notification");
+                    writerTMP.Key("data");
+                    writerTMP.String("");
+
+                writerTMP.EndObject();
+                SDLNet_TCP_Send(this->applicationTmp,bufferTMP.GetString(),bufferTMP.GetLength());
+                SDLNet_TCP_Close(applicationTmp);
             }
+            
         }
     }
 
diff --git a/src/manager/RenderManager.cpp b/src/manager/RenderManager.cpp
index e8a1cb2777cd51672b813706db9d6593fb59f64c..ad08e1f80df17001d659f05c1f193611d923a1fe 100644
--- a/src/manager/RenderManager.cpp
+++ b/src/manager/RenderManager.cpp
@@ -337,7 +337,7 @@ Texture RenderManager::copyTexture(Texture textureSource) {
  * @return Vec2
  */
 Vec2 RenderManager::convertPoint(Camera* camera, const Vec2& point){
-    cout << "x:" << point.x << "y:" << point.y << endl;
+    //cout << "x:" << point.x << "y:" << point.y << endl;
     return Vec2((point.x - camera->x) * PPM, (point.y - camera->y) * PPM);
 }
 
diff --git a/src/manager/SoundManager.cpp b/src/manager/SoundManager.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..74ffda9c92ce121fd1d790e54edfa5c502940fa3
--- /dev/null
+++ b/src/manager/SoundManager.cpp
@@ -0,0 +1,51 @@
+#include "../../include/manager/SoundManager.hpp"
+
+SoundManager* SoundManager::instance = nullptr;
+
+SoundManager& SoundManager::getInstance(){
+            if(!instance){
+                printf("je construit");
+                instance = new SoundManager();
+            }
+            return *instance;
+        }
+
+void SoundManager::PlayMusicBackground(){
+            printf("wesh");
+            Mix_Volume(0,25);
+            int channel = Mix_PlayChannel(0,this->backgroundMusic,-1);
+            
+        }
+void SoundManager::freeMusic(){
+    Mix_FreeChunk(this->backgroundMusic);
+    Mix_FreeChunk(this->shootingBow);
+    Mix_FreeChunk(this->WalkingSkeleton);
+    Mix_FreeChunk(this->hitBow);
+    Mix_FreeChunk(this->walkingGrass);
+
+}
+void SoundManager::resumeMusicBackground(){
+    Mix_Resume(0);
+    
+}
+void SoundManager::pauseMusicBackground(){  
+    Mix_Pause(0);
+}
+void SoundManager::PlayWalkingSkeleton(float distance){
+          
+         Mix_PlayChannel(-1,WalkingSkeleton,0);
+        }
+void SoundManager::playShootingBow(float distance){
+        if(distance<0.2f){
+            Mix_PlayChannel(-1,shootingBow,0);
+        }
+        }
+void SoundManager::playHitBow(){
+            Mix_PlayChannel(-1,this->hitBow,0);
+        }
+void SoundManager::playWalkingGrass(){
+            Mix_PlayChannel(-1,this->walkingGrass,0);
+}
+void SoundManager::playMonsterSlash(){
+    Mix_PlayChannel(-1,this->monsterSlash,0);
+}
\ No newline at end of file
diff --git a/src/manager/WorldManager.cpp b/src/manager/WorldManager.cpp
index 59b5b9525eff9b2ba7d5563d1420883546dac273..ee6a59aff74da2ab0a81c2077b26c1a830823581 100644
--- a/src/manager/WorldManager.cpp
+++ b/src/manager/WorldManager.cpp
@@ -16,14 +16,16 @@
  */
 WorldManager::WorldManager(Game* game) : game(game) { 
     initializeDefaultDatas();
-    buildWorld();
 }
-
+bool WorldManager::getInGame(){
+    return inGame;
+}
 WorldManager::~WorldManager(){
     world->~b2World();
     factory->~BodyFactory();
 }
 void WorldManager::buildWorld(){
+    
     initializePhysicalWorld();
     initializeCamera();
     mapWorld = new Map(camera);
@@ -32,6 +34,7 @@ void WorldManager::buildWorld(){
     // NB : Orienter en fonction de la souris.
     debounce[SDLK_g] = false;
     debounce[SDLK_1] = false;
+    this->inGame = true;
 }
 void WorldManager::initializeCamera(){
     camera = renderManager->getCamera();
@@ -100,7 +103,7 @@ void WorldManager::parseSave(){
     Document save;
     save.Parse<0>(content.c_str());
     int niveau = save["lvl"].GetInt(); 
-    entityFactory->makePlayer(mapW/(2.0f*PPM),mapH/(2.0f*PPM)); 
+    entityFactory->makePlayer(mapW/(2.0f*PPM),mapH/(2.0f*PPM),niveau); 
     players.back().Deserialize(save);
     this->lvlGame = niveau;
 }
@@ -111,7 +114,7 @@ void WorldManager::initializePlayer(){
     
     if(game->getLoadedSave() == ""){
         //cout << "j'initialise le joueur au niveau 1" << endl;
-        entityFactory->makePlayer(mapW/(2.0f*PPM),mapH/(2.0f*PPM));
+        entityFactory->makePlayer(mapW/(2.0f*PPM),mapH/(2.0f*PPM),1);
         this->lvlGame = 1;
         playerZero = &players.back();
         velocity = playerZero->getVelocity();
@@ -268,6 +271,7 @@ void WorldManager::updateInputStates(float deltaT){
                      */
                     case SDLK_ESCAPE:
                         game->setState(InMenu);
+                        SoundManager::getInstance().pauseMusicBackground();
                         break;
                     case SDLK_1:
                         addCommandInput(key);
@@ -355,16 +359,26 @@ void WorldManager::updateInputStates(float deltaT){
     for (SDL_Keycode key : moveInputs){
         switch(key){
         case SDLK_z:
-                velocity->y -= walkspeed * deltaT;
+                if(canMove){
+                    velocity->y -= walkspeed * deltaT;
+                }
                 break;
             case SDLK_s:
-                velocity->y += walkspeed * deltaT;
+                if(canMove){
+                    velocity->y += walkspeed * deltaT;
+                }
                 break;
             case SDLK_d:
+            if(canMove){
+
                 velocity->x += walkspeed * deltaT;
+            }
                 break;
             case SDLK_q:
-                velocity->x -= walkspeed * deltaT;
+                if(canMove){
+                    velocity->x -= walkspeed * deltaT;
+
+                }
                 break;
         }
 
@@ -386,9 +400,10 @@ void WorldManager::updateInputStates(float deltaT){
             case SDLK_1:
                 if (!debounce[key]) {
                     debounce[key] = true;
+                    cout<<"j'utilise" << endl;
                     if(playerZero->applySkill(HSlashSkill)){
-                        changePlayerState(HSlashState);
                         canMove = false;
+                        changePlayerState(HSlashState);
                     }
                 }
                 break;
@@ -903,11 +918,11 @@ void WorldManager::loadTest()
 
     //mise en place des bordure de map
     factory->setupBorder(mapW,mapH);
-    const float playerWidth = PLAYERSIZE_W / PPM;
-    const float playerHeigth = PLAYERSIZE_H / PPM;
+    const float playerWidth = PLAYERSIZE_W;
+    const float playerHeigth = PLAYERSIZE_H;
     /* Instanciation des instances statiques du monde (comme le joueur) */
     entityFactory->makeArcherSkeleton(3.0f,3.0f,playerWidth,playerHeigth,this->lvlGame);
-    entityFactory->makeSkeleton(10.0f,10.0f,PLAYERSIZE/PPM,PLAYERSIZE/PPM,this->lvlGame);
+    entityFactory->makeSkeleton(10.0f,10.0f,playerWidth,playerHeigth,this->lvlGame);
 
    /* playerZero = &players.back();
     entityFactory->makePlayer(mapW/(2.0f*PPM),mapH/(2.0f*PPM),1);
@@ -985,11 +1000,12 @@ Player* WorldManager::getClosestPlayer(Entity* entity){
 Vec2 WorldManager::centerTextureOnHitBox(Entity* entity, const Vec2& coordonnees, Animation& animation){
     int w0 = entity->getWidth() * PPM;
     int w1 = animation.getTextureWidth();
-    
+ 
     float dw = (w1 - w0) * 0.5;
+    
     int h0 = entity->getHeight() * PPM;
     int h1 = animation.getTextureHeight();
-   
     float dh = (h1 - h0) * 0.5;
+    
     return Vec2(coordonnees.x - dw, coordonnees.y - dh);
 }
\ No newline at end of file