Compare commits
	
		
			104 Commits
		
	
	
		
			SQC19_Boos
			...
			InputField
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 09979f1e72 | ||
|  | c88143c2bc | ||
|  | ff10207257 | ||
|  | 06cd890506 | ||
|  | 850f5a59d8 | ||
|  | 9562dc00b8 | ||
|  | d6b1870b5b | ||
|  | 721fef57e2 | ||
|  | c66e49ab0c | ||
|  | 63d8a62429 | ||
|  | bc5c28a373 | ||
|  | 754130ec39 | ||
|  | 8569e17c93 | ||
|  | c5700ae9fd | ||
|  | 78b3ed85cb | ||
|  | 4b6c641c97 | ||
|  | 9ed8ef3273 | ||
|  | 8b448f5072 | ||
|  | a67499049b | ||
|  | 0af76b3f2e | ||
|  | b2c73c930e | ||
|  | 4aa0aedd61 | ||
|  | e52dbd3705 | ||
|  | 5a491c5446 | ||
|  | 20eb410b08 | ||
|  | c44d1453ae | ||
|  | 37ea09aaf3 | ||
|  | 62b7719eb4 | ||
|  | 3842ca3485 | ||
|  | 98390c878f | ||
|  | def1ab284e | ||
|  | 90e736a14c | ||
|  | ac3628ec0b | ||
|  | 3e3a7650e8 | ||
|  | 28082a018d | ||
|  | 681ac61a74 | ||
|  | 38cfa95297 | ||
|  | 34ad4724f2 | ||
|  | 12ef911e79 | ||
|  | 5c346c48e6 | ||
|  | e89b5914fb | ||
|  | 15882dc506 | ||
|  | 6db90a3a16 | ||
|  | b23b2c6838 | ||
|  | a26929fe66 | ||
|  | 10b8d77734 | ||
|  | e8ca08ecab | ||
|  | 4a9ad70d48 | ||
|  | e330f5dd67 | ||
|  | 2f5579875e | ||
|  | 114c1631a8 | ||
|  | cfc7f7e01d | ||
|  | 0b5c30b693 | ||
|  | f9c3571ab2 | ||
|  | 2a7fe7e806 | ||
|  | 8ea5af6ef9 | ||
|  | 841b0176f6 | ||
|  | 702a65c5b0 | ||
|  | b6d5975648 | ||
|  | 6e556b4f84 | ||
|  | e6b3f2fb1c | ||
|  | 5e57a13820 | ||
|  | 9a7d25c1d9 | ||
|  | c24123362a | ||
|  | 6c0d65ea22 | ||
|  | 9bb8b1c9e5 | ||
|  | 35a5ddd9bd | ||
|  | 85ab712032 | ||
|  | 0f1a864282 | ||
|  | 0200f77be8 | ||
|  | 935216e9c3 | ||
|  | 1ab83a85a7 | ||
|  | 2ab201e93c | ||
|  | ea3d2ffc34 | ||
|  | 775c8cf26f | ||
|  | 0c1714dd14 | ||
|  | 981d66c730 | ||
|  | bd3f677118 | ||
|  | 35c55f2e26 | ||
|  | 9bf5188e0f | ||
|  | e8d456cc09 | ||
|  | 3043b1ff6b | ||
|  | 7ccecdfd4a | ||
|  | 6f13e8fb70 | ||
|  | d1c3d17055 | ||
|  | 573316682b | ||
|  | bd14cd3962 | ||
|  | 480521ebaf | ||
|  | 312542857a | ||
|  | c1aa321f2b | ||
|  | d7bd36d134 | ||
|  | ce2d03c354 | ||
|  | 2e30995f1b | ||
|  | 9572a7d6fd | ||
|  | f22c405915 | ||
|  | bc7127ef7d | ||
|  | 06a5bb67d3 | ||
|  | 83e438583f | ||
|  | 75a32270b5 | ||
|  | 8e041a314d | ||
|  | 6bb3ee9667 | ||
|  | f654c5effa | ||
|  | 3ca941f0ce | ||
|  | 4c695fbe47 | 
| @@ -9,6 +9,10 @@ Chunk::Chunk(unsigned int x, unsigned int y, int64_t seed) : m_posX(x), m_posY(y | |||||||
| 	//if (input.fail()) { | 	//if (input.fail()) { | ||||||
| 	OpenSimplexNoise::Noise simplex = OpenSimplexNoise::Noise(seed); | 	OpenSimplexNoise::Noise simplex = OpenSimplexNoise::Noise(seed); | ||||||
| 	m_blocks.Reset(BTYPE_AIR); | 	m_blocks.Reset(BTYPE_AIR); | ||||||
|  | 	int ratio = 0; | ||||||
|  |  | ||||||
|  | 	ratio = x * y % 7; | ||||||
|  |  | ||||||
|  |  | ||||||
| 	for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // Montagnes | 	for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // Montagnes | ||||||
| 		for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | 		for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | ||||||
| @@ -47,8 +51,8 @@ Chunk::Chunk(unsigned int x, unsigned int y, int64_t seed) : m_posX(x), m_posY(y | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 	int rnd = rand() % 15; | 	//int rnd = rand() % 15; | ||||||
| 	if (rnd == 4) | 	if (ratio == 1) | ||||||
| 		for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // structure | 		for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // structure | ||||||
| 			for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | 			for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | ||||||
| 				for (int iy = 0; iy < 14; ++iy) { | 				for (int iy = 0; iy < 14; ++iy) { | ||||||
| @@ -57,16 +61,16 @@ Chunk::Chunk(unsigned int x, unsigned int y, int64_t seed) : m_posX(x), m_posY(y | |||||||
| 							Structure(ix, iy, iz, 2); | 							Structure(ix, iy, iz, 2); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 	if (rnd == 3) | 	if (ratio == 3) | ||||||
| 		for (int ix = 0; ix < CHUNK_SIZE_Z; ++ix) // structure | 		for (int ix = 0; ix < CHUNK_SIZE_Z; ++ix) // structure | ||||||
| 			for (int iz = 0; iz < CHUNK_SIZE_X; ++iz) { | 			for (int iz = 0; iz < CHUNK_SIZE_X; ++iz) { | ||||||
| 				for (int iy = 0; iy < 14; ++iy) { | 				for (int iy = 0; iy < 14; ++iy) { | ||||||
| 					if (iz == 4) | 					if (iz == 4) | ||||||
| 						if (GetBlock(ix, iy, iz) == BTYPE_AIR) | 						if (GetBlock(ix, iy, iz) == BTYPE_AIR) | ||||||
| 							Structure(ix, iy, iz, 2); | 							Structure(ix, iy, iz, 1); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 	if (rnd == 6) | 	if (ratio == 5) | ||||||
| 		for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // structure | 		for (int ix = 0; ix < CHUNK_SIZE_X; ++ix) // structure | ||||||
| 			for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | 			for (int iz = 0; iz < CHUNK_SIZE_Z; ++iz) { | ||||||
| 				for (int iy = 0; iy < 14; ++iy) { | 				for (int iy = 0; iy < 14; ++iy) { | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ typedef uint64_t Timestamp; | |||||||
|  |  | ||||||
| #pragma comment(lib,"wsock32.lib") // Pour pouvoir faire fonctionner le linker sans le vcxproject | #pragma comment(lib,"wsock32.lib") // Pour pouvoir faire fonctionner le linker sans le vcxproject | ||||||
| #pragma comment(lib,"ws2_32.lib") | #pragma comment(lib,"ws2_32.lib") | ||||||
|  |  | ||||||
| #include <ws2tcpip.h> | #include <ws2tcpip.h> | ||||||
| #include <Windows.h> | #include <Windows.h> | ||||||
| #include <cstdio> | #include <cstdio> | ||||||
|   | |||||||
| @@ -27,6 +27,7 @@ | |||||||
|     <ClInclude Include="mesh.h" /> |     <ClInclude Include="mesh.h" /> | ||||||
|     <ClInclude Include="openglcontext.h" /> |     <ClInclude Include="openglcontext.h" /> | ||||||
|     <ClInclude Include="remoteplayer.h" /> |     <ClInclude Include="remoteplayer.h" /> | ||||||
|  |     <ClInclude Include="settings.h" /> | ||||||
|     <ClInclude Include="shader.h" /> |     <ClInclude Include="shader.h" /> | ||||||
|     <ClInclude Include="skybox.h" /> |     <ClInclude Include="skybox.h" /> | ||||||
|     <ClInclude Include="texture.h" /> |     <ClInclude Include="texture.h" /> | ||||||
| @@ -44,6 +45,7 @@ | |||||||
|     <ClCompile Include="mesh.cpp" /> |     <ClCompile Include="mesh.cpp" /> | ||||||
|     <ClCompile Include="openglcontext.cpp" /> |     <ClCompile Include="openglcontext.cpp" /> | ||||||
|     <ClCompile Include="remoteplayer.cpp" /> |     <ClCompile Include="remoteplayer.cpp" /> | ||||||
|  |     <ClCompile Include="settings.cpp" /> | ||||||
|     <ClCompile Include="shader.cpp" /> |     <ClCompile Include="shader.cpp" /> | ||||||
|     <ClCompile Include="skybox.cpp" /> |     <ClCompile Include="skybox.cpp" /> | ||||||
|     <ClCompile Include="texture.cpp" /> |     <ClCompile Include="texture.cpp" /> | ||||||
|   | |||||||
| @@ -56,6 +56,9 @@ | |||||||
|     <ClInclude Include="booster.h"> |     <ClInclude Include="booster.h"> | ||||||
|       <Filter>Fichiers d%27en-tête</Filter> |       <Filter>Fichiers d%27en-tête</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="settings.h"> | ||||||
|  |       <Filter>Fichiers d%27en-tête</Filter> | ||||||
|  |     </ClInclude> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="engine.cpp"> |     <ClCompile Include="engine.cpp"> | ||||||
| @@ -103,5 +106,8 @@ | |||||||
|     <ClCompile Include="booster.cpp"> |     <ClCompile Include="booster.cpp"> | ||||||
|       <Filter>Fichiers sources</Filter> |       <Filter>Fichiers sources</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|  |     <ClCompile Include="settings.cpp"> | ||||||
|  |       <Filter>Fichiers sources</Filter> | ||||||
|  |     </ClCompile> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
| @@ -48,3 +48,7 @@ void Audio::Render3DAudioObj(irrklang::ISound* sound, Vector3f& pos, Vector3f& v | |||||||
| void Audio::ToggleMusicState() { m_music->setIsPaused(!m_music->getIsPaused()); } | void Audio::ToggleMusicState() { m_music->setIsPaused(!m_music->getIsPaused()); } | ||||||
|  |  | ||||||
| void Audio::PauseEngine() { m_engine->setAllSoundsPaused(); } | void Audio::PauseEngine() { m_engine->setAllSoundsPaused(); } | ||||||
|  |  | ||||||
|  | float Audio::GetMusicVolume() const { | ||||||
|  | 	return m_music->getVolume(); | ||||||
|  | } | ||||||
|   | |||||||
| @@ -33,6 +33,8 @@ public: | |||||||
| 	void ToggleMusicState(); | 	void ToggleMusicState(); | ||||||
|  |  | ||||||
| 	void PauseEngine(); | 	void PauseEngine(); | ||||||
|  |  | ||||||
|  | 	float GetMusicVolume() const; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #endif // AUDIO_H__ | #endif // AUDIO_H__ | ||||||
|   | |||||||
| @@ -34,7 +34,23 @@ | |||||||
| #define SHADER_PATH		    "./media/shaders/" | #define SHADER_PATH		    "./media/shaders/" | ||||||
| #define AUDIO_PATH			"./media/audio/" | #define AUDIO_PATH			"./media/audio/" | ||||||
| #define CHUNK_PATH			"./media/chunks/" | #define CHUNK_PATH			"./media/chunks/" | ||||||
| #define MENU_ITEM_PATH		"./media/menu_items/" |  | ||||||
| #define BOOSTER_TEXTURE_PATH "./media/textures/Booster/" | #define BOOSTER_TEXTURE_PATH "./media/textures/Booster/" | ||||||
|  |  | ||||||
|  | enum GameState {  | ||||||
|  | 	MAIN_MENU,  | ||||||
|  | 	SPLASH, | ||||||
|  | 	LOBBY, | ||||||
|  | 	OPTIONS, | ||||||
|  | 	QUIT, | ||||||
|  | 	PLAY,  | ||||||
|  | 	PAUSE | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | enum Resolution { | ||||||
|  | 	HD = 0,		// 1280x720	 (High Definition) | ||||||
|  | 	FHD,		// 1920x1080 (Full HD) | ||||||
|  | 	QHD,		// 2560x1440 (Quad HD) | ||||||
|  | 	UHD			// 3840x2160 (Ultra HD) | ||||||
|  | }; | ||||||
|  |  | ||||||
| #endif // DEFINE_H__ | #endif // DEFINE_H__ | ||||||
|   | |||||||
| @@ -24,15 +24,12 @@ | |||||||
| #include "renderer.h" | #include "renderer.h" | ||||||
| #include "remoteplayer.h" | #include "remoteplayer.h" | ||||||
| #include "booster.h" | #include "booster.h" | ||||||
|  | #include "settings.h" | ||||||
|  |  | ||||||
| class Engine : public OpenglContext { | class Engine : public OpenglContext { | ||||||
| public: | public: | ||||||
|     Engine(); |     Engine(); | ||||||
|     virtual ~Engine(); |     virtual ~Engine(); | ||||||
|     virtual void DrawMenu(); |  | ||||||
|     virtual void DrawPause(); |  | ||||||
|     virtual void DrawSplachScreen(); |  | ||||||
|     virtual void Init(); |     virtual void Init(); | ||||||
|     virtual void DeInit(); |     virtual void DeInit(); | ||||||
|     virtual void LoadResource(); |     virtual void LoadResource(); | ||||||
| @@ -47,90 +44,151 @@ public: | |||||||
| private: | private: | ||||||
|     int GetFps(float elapsedTime) const; |     int GetFps(float elapsedTime) const; | ||||||
|     int GetCountdown(float elapsedTime); |     int GetCountdown(float elapsedTime); | ||||||
|  |     int GetOptionsChoice(); | ||||||
|  |     void StartMultiplayerGame(); | ||||||
|  |  | ||||||
|     bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true); |     bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true); | ||||||
|  |  | ||||||
|     void InstantDamage(); |     void InstantDamage(); | ||||||
|     void SystemNotification(std::string systemLog); |     void SystemNotification(std::string systemLog); | ||||||
|     void KillNotification(Player killer, Player killed); |     void KillNotification(Player killer, Player killed); | ||||||
|  |  | ||||||
|     void DisplayNotification(std::string message); |     void DisplayNotification(std::string message); | ||||||
|     void ProcessNotificationQueue(); |  | ||||||
|     void DisplayCrosshair(); |     void DisplayCrosshair(); | ||||||
|     void DisplayPovGun(); |     void DisplayPovGun(); | ||||||
|     void DisplayCurrentItem(); |     void DisplayCurrentItem(); | ||||||
|     void DisplayHud(int timer); |     void DisplayHud(int timer); | ||||||
|     void DisplayInfo(float elapsedTime, BlockType bloc); |  | ||||||
|     void DisplaySingleOrMultiplayerMenu(); |  | ||||||
|     void DrawHud(float elapsedTime, BlockType bloc); |     void DrawHud(float elapsedTime, BlockType bloc); | ||||||
|  |     void DisplayInfo(float elapsedTime, BlockType bloc); | ||||||
|  |  | ||||||
|  |     void DisplaySplashScreen(); | ||||||
|  |  | ||||||
|  |     void DisplayMainMenu(); | ||||||
|  |     void DrawButtonBackgrounds(float centerX, float centerY, int iterations); | ||||||
|  |     void DrawMainMenuButtons(float centerX, float centerY); | ||||||
|  |     void DrawSingleMultiButtons(float centerX, float centerY); | ||||||
|  |  | ||||||
|  |     void DisplayLobbyMenu(float elapsedTime); | ||||||
|  |     void SetPlayerUsername(float elapsedTime); | ||||||
|  |     void SetServerAddress(float elapsedTime); | ||||||
|  |  | ||||||
|  |     void DisplayOptionsMenu(); | ||||||
|  |     void DisplayAudioMenu(float centerX, float centerY); | ||||||
|  |     void DisplayGraphicsMenu(float centerX, float centerY); | ||||||
|  |     void DisplayGameplayMenu(float centerX, float centerY); | ||||||
|  |     void DrawSliderBackground(float centerX, float centerY, float minVal, float maxVal, float bottomSideValue, float topSideValue); | ||||||
|  |     void DisplayBarPercentValue(float centerX, float centerY, float posX, float posY, float minVal, float maxVal, float value); | ||||||
|  |     void DrawSlider(float centerX, float centerY, float value, float minVal, float maxVal, float bottomSideValue, float topSideValue); | ||||||
|  |  | ||||||
|     void PrintText(float x, float y, const std::string& t, float charSizeMultiplier = 1.0f); |     void PrintText(float x, float y, const std::string& t, float charSizeMultiplier = 1.0f); | ||||||
|  |     void ProcessNotificationQueue(); | ||||||
|  |     char SimulateKeyboard(unsigned char key); | ||||||
|      |     void HandlePlayerInput(float elapsedTime); | ||||||
|  |  | ||||||
|  |  | ||||||
|     Connector m_conn; |     Connector m_conn; | ||||||
|     Shader m_shader01; |  | ||||||
|  |     Audio m_audio = Audio(AUDIO_PATH "start.wav"); | ||||||
|  |     irrklang::ISound* m_powpow, * m_scream; | ||||||
|  |     irrklang::ISound* m_whoosh[MAX_BULLETS]; | ||||||
|  |  | ||||||
|  |     Bullet* m_bullets[MAX_BULLETS]; | ||||||
|  |  | ||||||
|  |     std::chrono::high_resolution_clock::time_point m_startTime; | ||||||
|  |     std::unordered_map<uint64_t, Player*> m_players; | ||||||
|  |     netprot::Buffer m_buf, m_bufout; | ||||||
|  |  | ||||||
|  |     netprot::PlayerInfo m_pinfo; | ||||||
|  |     RemotePlayer m_remotePlayer = RemotePlayer(netprot::PlayerInfo(), Vector3f(5.5f, CHUNK_SIZE_Y + 1.8f, 5.5f)); | ||||||
|  |     std::string m_messageNotification = ""; | ||||||
|  |  | ||||||
|  |     World m_world = World(); | ||||||
|  |     Player m_player = Player(Vector3f(.5f, CHUNK_SIZE_Y + 1.8f, .5f)); | ||||||
|  |  | ||||||
|  |     Renderer m_renderer = Renderer(); | ||||||
|  |  | ||||||
|  |     Booster m_booster = Booster(); | ||||||
|     BlockInfo* m_blockinfo[BTYPE_LAST]; |     BlockInfo* m_blockinfo[BTYPE_LAST]; | ||||||
|     BoostInfo* m_boostinfo[BTYPE_BOOST_LAST]; |     BoostInfo* m_boostinfo[BTYPE_BOOST_LAST]; | ||||||
|  |  | ||||||
|  |     GameState m_gamestate = GameState::SPLASH; | ||||||
|  |  | ||||||
|  |     Shader m_shader01; | ||||||
|  |  | ||||||
|  |     Skybox m_skybox; | ||||||
|  |  | ||||||
|     TextureAtlas m_textureAtlas = TextureAtlas(BTYPE_LAST); |     TextureAtlas m_textureAtlas = TextureAtlas(BTYPE_LAST); | ||||||
|     TextureAtlas m_animeAtlas = TextureAtlas(TYPE_LAST + POS_LAST); |     TextureAtlas m_animeAtlas = TextureAtlas(TYPE_LAST + POS_LAST); | ||||||
|  |  | ||||||
|     World m_world = World(); |     TextureAtlas::TextureIndex texBoostHeal; | ||||||
|     Renderer m_renderer = Renderer(); |  | ||||||
|     Booster m_booster = Booster(); |  | ||||||
|  |  | ||||||
|     Texture m_textureCrosshair; |     Texture m_textureCrosshair; | ||||||
|     Texture m_textureFont; |     Texture m_textureFont; | ||||||
|     Texture m_textureGun; |     Texture m_textureGun; | ||||||
|     Texture m_texturePovGun; |     Texture m_texturePovGun; | ||||||
|     Texture m_textureSkybox; |     Texture m_textureSkybox; | ||||||
|     Texture m_textureSoloMultiMenu; |  | ||||||
|     Texture m_textureSoloText; |  | ||||||
|     Texture m_textureMultiText; |  | ||||||
|     Texture m_textureTitle; |  | ||||||
|  |  | ||||||
|     TextureAtlas::TextureIndex texBoostHeal; |     Texture m_textureLobbyMenu; | ||||||
|  |     Texture m_textureMainMenu; | ||||||
|  |     Texture m_textureOptionsMenu; | ||||||
|  |     Texture m_texturePauseMenu; | ||||||
|  |     Texture m_textureSplashScreen; | ||||||
|  |  | ||||||
|     Skybox m_skybox; |     Texture m_textureHd; | ||||||
|     Audio m_audio = Audio(AUDIO_PATH "start.wav"); |     Texture m_textureFhd; | ||||||
|  |     Texture m_textureQhd; | ||||||
|  |     Texture m_textureUhd; | ||||||
|  |  | ||||||
|     irrklang::ISound* m_powpow, |     Texture m_textureLobbyServer; | ||||||
|         * m_scream; |     Texture m_textureLobbyIdentify; | ||||||
|     irrklang::ISound *m_whoosh[MAX_BULLETS]; |     Texture m_textureCheck; | ||||||
|  |     Texture m_textureChecked; | ||||||
|  |  | ||||||
|     Player m_player = Player(Vector3f(.5f, CHUNK_SIZE_Y + 1.8f, .5f)); |     Texture m_textureOptAudio; | ||||||
|  |     Texture m_textureOptBack; | ||||||
|  |     Texture m_textureOptGameplay; | ||||||
|  |     Texture m_textureOptGraphics; | ||||||
|  |     Texture m_textureOptMain; | ||||||
|  |     Texture m_textureOptMusic; | ||||||
|  |     Texture m_textureOptOptions; | ||||||
|  |     Texture m_textureOptResolution; | ||||||
|  |     Texture m_textureOptSensitivity; | ||||||
|  |     Texture m_textureOptSfx; | ||||||
|  |  | ||||||
|     Bullet* m_bullets[MAX_BULLETS]; |     Texture m_textureMenuBack; | ||||||
|  |     Texture m_textureMenuMulti; | ||||||
|  |     Texture m_textureMenuOptions; | ||||||
|  |     Texture m_textureMenuPlay; | ||||||
|  |     Texture m_textureMenuQuit; | ||||||
|  |     Texture m_textureMenuSingle; | ||||||
|  |     Texture m_textureMenuTitle; | ||||||
|  |  | ||||||
|     std::unordered_map<uint64_t, Player*> m_players; |     Settings m_options = Settings(m_audio); | ||||||
|     netprot::Buffer m_buf, m_bufout; |  | ||||||
|     std::chrono::high_resolution_clock::time_point m_startTime; |  | ||||||
|  |  | ||||||
|     //Menu |  | ||||||
|     enum class GameState: uint8_t { MAIN_MENU, OPTIONS, QUIT, NEWG, PLAY, PAUSE }; |  | ||||||
|     GameState m_gamestate = GameState::MAIN_MENU; |  | ||||||
|     Texture MenuTitleTexture; |  | ||||||
|     Texture MenuBGTexture; |  | ||||||
|     Texture MenuStartTexture; |  | ||||||
|     Texture MenuQuitTexture; |  | ||||||
|     Texture MenuOptionsTexture; |  | ||||||
|     Texture PauseBGTexture; |  | ||||||
|     Texture SplachScreenTexture; |  | ||||||
|  |  | ||||||
|  |     Resolution m_resolution = HD; | ||||||
|  |  | ||||||
|  |     float m_splashTime = 2.0f; | ||||||
|     float m_scale; |     float m_scale; | ||||||
|     float m_time = 0; |     float m_time = 0; | ||||||
|     float m_time_SplashScreen = 0; |  | ||||||
|     float m_titleX = 0; |     float m_titleX = 0; | ||||||
|     float m_titleY = 0; |     float m_titleY = 0; | ||||||
|     float m_Width = 0; |  | ||||||
|     float m_Height = 0; |  | ||||||
|  |  | ||||||
|     int m_renderCount = 0; |     int m_renderCount = 0; | ||||||
|     int m_countdown = COUNTDOWN; |     int m_countdown = COUNTDOWN; | ||||||
|     int m_nbReductionChunk = 4; |     int m_nbReductionChunk = 4; | ||||||
|     int m_timerReductionChunk = 30; |     int m_timerReductionChunk = 30; | ||||||
|  |  | ||||||
|  |     float m_volPrincipal = 0.0f; | ||||||
|  |     float m_volMusique = 0.0f; | ||||||
|  |     float m_volEffets = 0.0f; | ||||||
|  |     float m_volSensible = 0.0f; | ||||||
|  |  | ||||||
|  |     int m_selectedOption = 0; | ||||||
|  |  | ||||||
|  |     bool m_selectedOptAudioMainBar = false; | ||||||
|  |     bool m_selectedOptAudioMusicBar = false; | ||||||
|  | 	bool m_selectedOptAudioSfxBar = false; | ||||||
|  |     bool m_selectedGameplaySensitivityBar = false; | ||||||
|  |  | ||||||
|     bool m_damage = false; |     bool m_damage = false; | ||||||
|  |  | ||||||
|     bool m_wireframe = false; |     bool m_wireframe = false; | ||||||
| @@ -144,29 +202,43 @@ private: | |||||||
|     bool m_soloMultiChoiceMade = false; |     bool m_soloMultiChoiceMade = false; | ||||||
|     bool m_stopcountdown = false; |     bool m_stopcountdown = false; | ||||||
|  |  | ||||||
|  |     bool m_selectedPlayOptions = false; | ||||||
|  |     bool m_selectedOptions = false; | ||||||
|  |     bool m_selectedQuit = false; | ||||||
|  |  | ||||||
|  |     std::string m_currentInputString; | ||||||
|  |     std::string m_username; | ||||||
|  |     std::string m_serverAddr; | ||||||
|  |     char m_inputChar = 0; | ||||||
|  |     bool m_invalidChar = false; | ||||||
|  |     bool m_charChanged = false; | ||||||
|  |     bool m_settingUsername = false; | ||||||
|  |     bool m_settingServer = false; | ||||||
|  |     bool m_multiReady = false; | ||||||
|  |      | ||||||
|     bool m_key1 = false; |     bool m_key1 = false; | ||||||
|     bool m_key2 = false; |     bool m_key2 = false; | ||||||
|  |  | ||||||
|     bool m_keyK = false; |     bool m_keyK = false; | ||||||
|     bool m_keyL = false; |     bool m_keyL = false; | ||||||
|     bool m_keyW = false; |     bool m_keyW = false; | ||||||
|     bool m_keyA = false; |     bool m_keyA = false; | ||||||
|     bool m_keyS = false; |     bool m_keyS = false; | ||||||
|     bool m_keyD = false; |     bool m_keyD = false; | ||||||
|  |     bool m_keyEnter = false; | ||||||
|     bool m_keySpace = false; |     bool m_keySpace = false; | ||||||
|  |     bool m_keyShift = false; | ||||||
|  |     bool m_keyBackspace = false; | ||||||
|  |  | ||||||
|     bool m_mouseL = false; |     bool m_mouseL = false; | ||||||
|     bool m_mouseR = false; |     bool m_mouseR = false; | ||||||
|     bool m_mouseC = false; |     bool m_mouseC = false; | ||||||
|     bool m_mouseWU = false; |     bool m_mouseWU = false; | ||||||
|     bool m_mouseWD = false; |     bool m_mouseWD = false; | ||||||
|     //Pour trouver ou est la souris |  | ||||||
|     float m_mousemx = 0; |     float m_mousemx = 0; | ||||||
|     float m_mousemy = 0; |     float m_mousemy = 0; | ||||||
|  |  | ||||||
|     bool m_networkgame = false; |     bool m_networkgame = false; | ||||||
|     netprot::PlayerInfo m_pinfo; |  | ||||||
|     RemotePlayer m_remotePlayer = RemotePlayer(netprot::PlayerInfo(),Vector3f(5.5f, CHUNK_SIZE_Y + 1.8f, 5.5f)); |  | ||||||
|     std::string m_messageNotification = ""; |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #endif // ENGINE_H__ | #endif // ENGINE_H__ | ||||||
|   | |||||||
| Before Width: | Height: | Size: 7.8 KiB | 
| Before Width: | Height: | Size: 8.6 KiB | 
| Before Width: | Height: | Size: 6.5 MiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/backgrounds/bgLobby.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 505 KiB | 
| Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/backgrounds/bgOptions.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 674 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/backgrounds/bgPause.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 562 KiB | 
| Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainBack.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainMulti.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainOptions.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.5 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainPlay.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainQuit.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/main/mainSingle.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optAudio.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optBack.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optGameplay.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optGraphics.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 9.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optMain.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.5 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optMusic.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optOptions.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.0 KiB | 
| After Width: | Height: | Size: 6.8 KiB | 
| After Width: | Height: | Size: 12 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/buttons/options/optSfx.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelFhd.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 10 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelHd.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 13 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelIdentify.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 17 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelQhd.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 12 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelServer.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 11 KiB | 
| Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/labels/labelUhd.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 12 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/others/check.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/menus/others/checked.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 9.8 KiB | 
| Before Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 2.1 KiB | 
							
								
								
									
										146
									
								
								SQCSim2021/settings.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,146 @@ | |||||||
|  | #include "settings.h" | ||||||
|  |  | ||||||
|  | Settings::Settings(Audio& audio) | ||||||
|  |     : m_audio(audio), | ||||||
|  |     m_mainVolume(0.5f), | ||||||
|  |     m_musicVolume(0.5f), | ||||||
|  |     m_sfxVolume(0.5f), | ||||||
|  |     m_resolution(FHD), | ||||||
|  |     m_fullscreen(false), | ||||||
|  |     m_brightness(0.5f), | ||||||
|  |     m_contrast(0.5f), | ||||||
|  |     m_mouseSensitivity(0.5f) { | ||||||
|  |     ApplyResolution(m_resolution); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SaveFile(const std::string& filename) { | ||||||
|  |     std::ofstream file(filename); | ||||||
|  |     if (!file.is_open()) { | ||||||
|  |         std::cerr << "Failed to open file for saving parameters" << std::endl; | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     file << m_mainVolume << '\n'; | ||||||
|  |     file << m_musicVolume << '\n'; | ||||||
|  |     file << m_sfxVolume << '\n'; | ||||||
|  |  | ||||||
|  |     file << static_cast<int>(m_resolution) << '\n'; | ||||||
|  |     file << m_fullscreen << '\n'; | ||||||
|  |     file << m_brightness << '\n'; | ||||||
|  |     file << m_contrast << '\n'; | ||||||
|  |  | ||||||
|  |     file << m_mouseSensitivity << '\n'; | ||||||
|  |  | ||||||
|  |     file.close(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::LoadFile(const std::string& filename) { | ||||||
|  |     std::ifstream file(filename); | ||||||
|  |     if (!file.is_open()) { | ||||||
|  |         std::cerr << "Failed to open file for loading parameters" << std::endl; | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     file >> m_mainVolume; | ||||||
|  |     file >> m_musicVolume; | ||||||
|  |     file >> m_sfxVolume; | ||||||
|  |  | ||||||
|  |     int resolutionValue; | ||||||
|  |     file >> resolutionValue; | ||||||
|  |     m_resolution = static_cast<Resolution>(resolutionValue); | ||||||
|  |  | ||||||
|  |     file >> m_fullscreen; | ||||||
|  |     file >> m_brightness; | ||||||
|  |     file >> m_contrast; | ||||||
|  |  | ||||||
|  |     file >> m_mouseSensitivity; | ||||||
|  |  | ||||||
|  |     file.close(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | float Settings::GetMainVolume() const { | ||||||
|  |     return m_mainVolume; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetMainVolume(float volume) { | ||||||
|  |     m_mainVolume = volume; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::GetMusicVolume() { | ||||||
|  |     m_musicVolume = m_audio.GetMusicVolume(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetMusicVolume(float volume) { | ||||||
|  |     m_musicVolume = volume; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | float Settings::GetSfxVolume() const { | ||||||
|  |     return m_sfxVolume; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetSfxVolume(float volume) { | ||||||
|  |     m_sfxVolume = volume; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | float Settings::GetBrightness() const { | ||||||
|  |     return m_brightness; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetBrightness(float brightness) { | ||||||
|  |     m_brightness = brightness; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | float Settings::GetContrast() const { | ||||||
|  |     return m_contrast; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetContrast(float contrast) { | ||||||
|  |     m_contrast = contrast; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool Settings::GetFullscreen() const { | ||||||
|  |     return m_fullscreen; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetFullscreen(bool fullscreen) { | ||||||
|  |     m_fullscreen = fullscreen; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const Resolution& Settings::GetResolution() const { | ||||||
|  |     return m_resolution; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetResolution(const Resolution& resolution) { | ||||||
|  |     m_resolution = resolution; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | float Settings::GetMouseSensitivity() const { | ||||||
|  |     return m_mouseSensitivity; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::SetMouseSensitivity(float sensitivity) { | ||||||
|  |     m_mouseSensitivity = sensitivity; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void Settings::ApplyResolution(Resolution resolution) { | ||||||
|  |     switch (resolution) { | ||||||
|  |     case HD: | ||||||
|  |         m_rezWidth = 1280; | ||||||
|  |         m_rezHeight = 720; | ||||||
|  |         break; | ||||||
|  |     case FHD: | ||||||
|  |         m_rezWidth = 1920; | ||||||
|  |         m_rezHeight = 1080; | ||||||
|  |         break; | ||||||
|  |     case QHD: | ||||||
|  |         m_rezWidth = 2560; | ||||||
|  |         m_rezHeight = 1440; | ||||||
|  |         break; | ||||||
|  |     case UHD: | ||||||
|  |         m_rezWidth = 3840; | ||||||
|  |         m_rezHeight = 2160; | ||||||
|  |         break; | ||||||
|  |     default: | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										70
									
								
								SQCSim2021/settings.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,70 @@ | |||||||
|  | #ifndef SETTINGS_H__ | ||||||
|  | #define SETTINGS_H__ | ||||||
|  |  | ||||||
|  | #include <iostream> | ||||||
|  | #include <fstream> | ||||||
|  | #include <sstream> | ||||||
|  | #include <string> | ||||||
|  | #include <map> | ||||||
|  |  | ||||||
|  | #include "define.h" | ||||||
|  | #include "audio.h" | ||||||
|  |  | ||||||
|  | class Settings { | ||||||
|  | public: | ||||||
|  | 	Settings(Audio& audio); | ||||||
|  |  | ||||||
|  | 	void SaveFile(const std::string& filename); | ||||||
|  | 	void LoadFile(const std::string& filename); | ||||||
|  |  | ||||||
|  | 	// Audio | ||||||
|  | 	float GetMainVolume() const; | ||||||
|  | 	void SetMainVolume(float volume); | ||||||
|  |  | ||||||
|  | 	void GetMusicVolume(); | ||||||
|  | 	void SetMusicVolume(float volume); | ||||||
|  |  | ||||||
|  | 	float GetSfxVolume() const; | ||||||
|  | 	void SetSfxVolume(float volume); | ||||||
|  |  | ||||||
|  | 	// Graphic | ||||||
|  | 	float GetBrightness() const; | ||||||
|  | 	void SetBrightness(float brightness); | ||||||
|  |  | ||||||
|  | 	float GetContrast() const; | ||||||
|  | 	void SetContrast(float contrast); | ||||||
|  |  | ||||||
|  | 	bool GetFullscreen() const; | ||||||
|  | 	void SetFullscreen(bool fullscreen); | ||||||
|  |  | ||||||
|  | 	const Resolution& GetResolution() const; | ||||||
|  | 	void SetResolution(const Resolution& resolution); | ||||||
|  |  | ||||||
|  | 	// Gameplay | ||||||
|  | 	float GetMouseSensitivity() const; | ||||||
|  | 	void SetMouseSensitivity(float sensitivity); | ||||||
|  |  | ||||||
|  | 	void ApplyResolution(Resolution resolution); | ||||||
|  |  | ||||||
|  | private: | ||||||
|  |  | ||||||
|  | 	Audio& m_audio; | ||||||
|  | 	// Audio | ||||||
|  | 	float m_mainVolume; | ||||||
|  | 	float m_musicVolume; | ||||||
|  | 	float m_sfxVolume; | ||||||
|  |  | ||||||
|  | 	// Graphic | ||||||
|  | 	Resolution m_resolution; | ||||||
|  | 	bool m_fullscreen; | ||||||
|  | 	int m_rezWidth; | ||||||
|  | 	int m_rezHeight; | ||||||
|  | 	float m_brightness; | ||||||
|  | 	float m_contrast; | ||||||
|  |  | ||||||
|  | 	// Gameplay | ||||||
|  | 	float m_mouseSensitivity; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif // PARAMETERS_H | ||||||