diff --git a/.gitignore b/.gitignore index f0c1c5a..f15149d 100644 --- a/.gitignore +++ b/.gitignore @@ -373,3 +373,8 @@ FodyWeavers.xsd /x64/Release/SQCSim2023.exe /x64/Debug/SQCSim2023.exe /x64/Debug/SQCSim2021.pdb +/SQCSim-srv/cmake/* +!/SQCSim-srv/cmake/CMakeLists.txt +/SQCSim2021/cmake/* +!/SQCSim2021/cmake/CMakeLists.txt +/SQCSim2021/SQCSim-client diff --git a/SQCSim-common/define.h b/SQCSim-common/define.h index 0f93c44..f65bc2b 100644 --- a/SQCSim-common/define.h +++ b/SQCSim-common/define.h @@ -53,6 +53,7 @@ typedef uint64_t Timestamp; #include #include #include +#include #define SOCKET int #define INVALID_SOCKET -1 diff --git a/SQCSim-common/world.cpp b/SQCSim-common/world.cpp index 4d7c292..1be12e7 100644 --- a/SQCSim-common/world.cpp +++ b/SQCSim-common/world.cpp @@ -130,7 +130,7 @@ void World::GetScope(unsigned int& x, unsigned int& y) { y = m_center[1]; } -void World::Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) { +void World::Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]) { UpdateWorld(player_pos, blockinfo); //TransposeWorld(player_pos, bullets); } @@ -407,4 +407,4 @@ void World::UpdateWorld(const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST] }*/ } -int World::GettbDeleted() const { return m_tbDeleted.size(); } \ No newline at end of file +int World::GettbDeleted() const { return m_tbDeleted.size(); } diff --git a/SQCSim-common/world.h b/SQCSim-common/world.h index d341ee8..0cc628d 100644 --- a/SQCSim-common/world.h +++ b/SQCSim-common/world.h @@ -30,7 +30,7 @@ public: BlockType BlockAt(float x, float y, float z, BlockType defaultBlockType = BTYPE_AIR) const; BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const; - void Update(Bullet* bullets[MAX_BULLETS], Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]); + void Update(Bullet* bullets[MAX_BULLETS], const Vector3f& player_pos, BlockInfo* blockinfo[BTYPE_LAST]); void GetScope(unsigned int& x, unsigned int& y); diff --git a/SQCSim-srv/cmake/CMakeLists.txt b/SQCSim-srv/cmake/CMakeLists.txt new file mode 100644 index 0000000..4a1f624 --- /dev/null +++ b/SQCSim-srv/cmake/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.18.4) + +project(SQCSim-Server VERSION 0.1) + +add_compile_options("-Wno-narrowing") +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_STANDARD_REQUIRED True) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out") + +set(SQCSIM_COMMON_DIR "../../SQCSim-common/") + +add_library(SQCSim-common + "${SQCSIM_COMMON_DIR}blockinfo.cpp" + "${SQCSIM_COMMON_DIR}bullet.cpp" + "${SQCSIM_COMMON_DIR}chunk.cpp" + "${SQCSIM_COMMON_DIR}netprotocol.cpp" + "${SQCSIM_COMMON_DIR}opensimplex.cpp" + "${SQCSIM_COMMON_DIR}player.cpp" + "${SQCSIM_COMMON_DIR}transformation.cpp" + "${SQCSIM_COMMON_DIR}world.cpp" +) + +add_executable(SQCSim-server + "../connection.cpp" + "../server.cpp" + "../main.cpp" + ) + +target_link_libraries(SQCSim-server PUBLIC SQCSim-common) diff --git a/SQCSim-srv/define.h b/SQCSim-srv/define.h index 77ca08e..626a26a 100644 --- a/SQCSim-srv/define.h +++ b/SQCSim-srv/define.h @@ -14,4 +14,4 @@ typedef unsigned char LogDest; enum LOG_DEST { CONSOLE, LOGFILE, LOG_LAST }; -#endif \ No newline at end of file +#endif diff --git a/SQCSim-srv/server.cpp b/SQCSim-srv/server.cpp index 17c5585..cbda844 100644 --- a/SQCSim-srv/server.cpp +++ b/SQCSim-srv/server.cpp @@ -85,7 +85,7 @@ int Server::Ready() { while (!readystart) { sockaddr_in sockad; - int addrlen = sizeof(sockad); + unsigned int addrlen = sizeof(sockad); SOCKET sock = accept(m_sock_tcp, (sockaddr*)&sockad, &addrlen); if (sock < 0) @@ -140,7 +140,7 @@ void Server::Run() { Log("Partie en cours...", false, false); } -inline std::string Server::Timestamp() { +inline std::string Server::LogTimestamp() { time_t rawtime; struct tm timeinfo; char buffer[80]; @@ -162,11 +162,11 @@ inline std::string Server::Timestamp() { void Server::Log(std::string str, bool is_error = false, bool is_fatal = false) { switch (m_log) { case LOG_DEST::LOGFILE: - m_logfile << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; + m_logfile << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; break; case LOG_DEST::CONSOLE: default: - std::cout << Timestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; + std::cout << LogTimestamp() << (is_fatal ? "FATAL " : "") << (is_error ? "ERROR " : "") << str << std::endl; break; } diff --git a/SQCSim-srv/server.h b/SQCSim-srv/server.h index 425a996..6c77038 100644 --- a/SQCSim-srv/server.h +++ b/SQCSim-srv/server.h @@ -35,7 +35,7 @@ private: World* m_world = nullptr; - std::string Timestamp(); + std::string LogTimestamp(); void Log(std::string str, bool is_error, bool is_fatal); void buildIdList(size_t size); diff --git a/SQCSim2021/audio.h b/SQCSim2021/audio.h index b0ff044..d4625cf 100644 --- a/SQCSim2021/audio.h +++ b/SQCSim2021/audio.h @@ -1,8 +1,14 @@ #ifndef AUDIO_H__ #define AUDIO_H__ +#ifdef _WIN32 #include #include +#else +#include "./external/irrKlang-64bit-1.6.0/include/irrKlang.h" +#include "./external/irrKlang-64bit-1.6.0/include/ik_ISoundSource.h" +#endif + #include "../SQCSim-common/vector3.h" #include "define.h" @@ -29,4 +35,4 @@ public: void PauseEngine(); }; -#endif // AUDIO_H__ \ No newline at end of file +#endif // AUDIO_H__ diff --git a/SQCSim2021/cmake/CMakeLists.txt b/SQCSim2021/cmake/CMakeLists.txt new file mode 100644 index 0000000..fbe850f --- /dev/null +++ b/SQCSim2021/cmake/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.18.4) + +project(SQCSim-Client VERSION 0.8) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_STANDARD_REQUIRED True) + +set(CMAKE_BUILD_DIRECTORY "./build") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../") + +set(SQCSIM_COMMON_DIR "../../SQCSim-common/") +set(SQCSIM_EXTERN_DIR "../external/") + +find_package(SFML COMPONENTS system window graphics REQUIRED) +find_package(DevIL REQUIRED) +find_package(OpenGL REQUIRED) +find_package(GLEW REQUIRED) + +find_library(IRRKLANG_LIBRARY + NAMES libIrrKlang.so + PATHS "${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/lib/linux-gcc-64/") + +include_directories( + ${SQCSIM_EXTERN_DIR}/irrKlang-64bit-1.6.0/include/ + ${SFML_INCLUDE_DIRS} + ${IL_INCLUDE_DIR} + ) + + +add_library(SQCSim-common + "${SQCSIM_COMMON_DIR}blockinfo.cpp" + "${SQCSIM_COMMON_DIR}bullet.cpp" + "${SQCSIM_COMMON_DIR}chunk.cpp" + "${SQCSIM_COMMON_DIR}netprotocol.cpp" + "${SQCSIM_COMMON_DIR}opensimplex.cpp" + "${SQCSIM_COMMON_DIR}player.cpp" + "${SQCSIM_COMMON_DIR}transformation.cpp" + "${SQCSIM_COMMON_DIR}world.cpp" +) + +add_executable(SQCSim-client + "../audio.cpp" + "../connector.cpp" + "../engine.cpp" + "../mesh.cpp" + "../openglcontext.cpp" + "../shader.cpp" + "../skybox.cpp" + "../texture.cpp" + "../textureatlas.cpp" + "../tool.cpp" + "../vertexbuffer.cpp" + "../worldrenderer.cpp" + "../main.cpp" + ) + +target_link_libraries(SQCSim-client PUBLIC SQCSim-common + ${IRRKLANG_LIBRARY} + sfml-system + sfml-window + sfml-graphics + GL + GLU + GLEW + ${IL_LIBRARIES} + ${ILU_LIBRARIES} + ) + diff --git a/SQCSim2021/define.h b/SQCSim2021/define.h index 35b261d..0ff1145 100644 --- a/SQCSim2021/define.h +++ b/SQCSim2021/define.h @@ -6,14 +6,18 @@ #include #include #include +#include #include #include #include "../SQCSim-common/define.h" #ifdef _WIN32 -#include #include #include +#else +#include +#include +#include #endif #define NETWORK_TEST false diff --git a/SQCSim2021/docs/analyse_preliminaire.md b/SQCSim2021/docs/analyse_preliminaire.md new file mode 100644 index 0000000..e69de29 diff --git a/SQCSim2021/docs/analyse_serveur.md b/SQCSim2021/docs/analyse_serveur.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SQCSim2021/docs/analyse_serveur.md @@ -0,0 +1 @@ + diff --git a/SQCSim2021/media/shaders/shader01.frag b/SQCSim2021/media/shaders/shader01.frag index 38588d0..8adf697 100644 --- a/SQCSim2021/media/shaders/shader01.frag +++ b/SQCSim2021/media/shaders/shader01.frag @@ -7,7 +7,7 @@ void main() texel = texture2D(tex,gl_TexCoord[0].st); texel *= light; - texel.a = 255; + texel.a = 255.; gl_FragColor = texel; }