Merge branch 'SQC-15_animation' into SQC19_Booster
@@ -170,7 +170,7 @@
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
@@ -192,7 +192,7 @@
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
|
@@ -69,44 +69,51 @@ int Connector::Connect(const char* srv_addr, std::string name) {
|
||||
|
||||
netprot::sendPack(m_sock_tcp, &log, &bf);
|
||||
|
||||
//using namespace std::chrono_literals;
|
||||
//std::this_thread::sleep_for(100ms);
|
||||
|
||||
memset(bf.ptr, '\0', BUFFER_LENGTH);
|
||||
|
||||
bool ready = false;
|
||||
int errors = 0;
|
||||
std::vector<netprot::Packet> lsPck;
|
||||
std::vector<char*> lsPck;
|
||||
while (!ready) {
|
||||
lsPck = netprot::recvPacks(m_sock_tcp, &bf);
|
||||
|
||||
for (auto& pck : lsPck) {
|
||||
bool bypass_delete = false;
|
||||
uint32_t bsize = bf.len - (pck - bf.ptr);
|
||||
netprot::PlayerInfo* pl = nullptr;
|
||||
switch (pck.type) {
|
||||
switch (netprot::getType(pck, 1)) {
|
||||
using enum netprot::PACKET_TYPE;
|
||||
case LOGINF:
|
||||
m_loginfo = netprot::LoginInfo((netprot::LoginInfo*)pck.ptr);
|
||||
if (!netprot::Deserialize(&m_loginfo, pck, &bsize))
|
||||
++errors;
|
||||
break;
|
||||
case GAMEINFO:
|
||||
m_gameinfo = netprot::GameInfo((netprot::GameInfo*)pck.ptr);
|
||||
if (!netprot::Deserialize(&m_gameinfo, pck, &bsize))
|
||||
++errors;
|
||||
break;
|
||||
case PLAYINF:
|
||||
pl = (netprot::PlayerInfo*)pck.ptr;
|
||||
m_players[pl->id] = pl;
|
||||
bypass_delete = true;
|
||||
pl = new netprot::PlayerInfo();
|
||||
if (!netprot::Deserialize(pl, pck, &bsize))
|
||||
++errors;
|
||||
else m_players[pl->id] = pl;
|
||||
break;
|
||||
case TEAMINF:
|
||||
// TODO: Faire dequoi avec TeamInfo si on fini par avoir des teams.
|
||||
break;
|
||||
case SYNC:
|
||||
m_origin = netprot::Sync((netprot::Sync*)pck.ptr);
|
||||
if (!netprot::Deserialize(&m_origin, pck, &bsize))
|
||||
++errors;
|
||||
ready = true;
|
||||
break;
|
||||
default:
|
||||
errors++;
|
||||
break;
|
||||
}
|
||||
if (!bypass_delete)
|
||||
netprot::emptyPack(pck);
|
||||
}
|
||||
lsPck.clear();
|
||||
if (errors > 100)
|
||||
if (errors > 1000)
|
||||
return 4;
|
||||
}
|
||||
return 0;
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#define CONNECTOR_H__
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unordered_map>
|
||||
#include "../SQCSim-common/netprotocol.h"
|
||||
#include "define.h"
|
||||
|
||||
@@ -26,13 +27,13 @@ public:
|
||||
|
||||
// void updateRemotePlayers(std::map<RemotePlayers> rplayers);
|
||||
|
||||
std::map<uint64_t, netprot::PlayerInfo> m_players;
|
||||
std::unordered_map<uint64_t, netprot::PlayerInfo> m_players;
|
||||
private:
|
||||
#ifdef _WIN32
|
||||
WSADATA m_wsaData;
|
||||
#endif
|
||||
std::map<Timestamp, netprot::Input> m_inputmanifest;
|
||||
std::map<uint64_t, netprot::TeamInfo> m_teams;
|
||||
std::unordered_map<Timestamp, netprot::Input> m_inputmanifest;
|
||||
std::unordered_map<uint64_t, netprot::TeamInfo> m_teams;
|
||||
|
||||
netprot::LoginInfo m_loginfo;
|
||||
netprot::GameInfo m_gameinfo;
|
||||
|
@@ -2,7 +2,9 @@
|
||||
#define ENGINE_H__
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include <unordered_map>
|
||||
#include "../SQCSim-common/array2d.h"
|
||||
#include "../SQCSim-common/blockinfo.h"
|
||||
#include "../SQCSim-common/boostinfo.h"
|
||||
@@ -22,11 +24,13 @@
|
||||
#include "renderer.h"
|
||||
#include "remoteplayer.h"
|
||||
|
||||
|
||||
class Engine : public OpenglContext {
|
||||
public:
|
||||
Engine();
|
||||
virtual ~Engine();
|
||||
virtual void DrawMenu();
|
||||
virtual void DrawPause();
|
||||
virtual void DrawSplachScreen();
|
||||
virtual void Init();
|
||||
virtual void DeInit();
|
||||
@@ -40,13 +44,12 @@ public:
|
||||
virtual void MouseReleaseEvent(const MOUSE_BUTTON &button, int x, int y);
|
||||
|
||||
private:
|
||||
std::pair<float, float> GetScale() const;
|
||||
|
||||
int GetFps(float elapsedTime) const;
|
||||
int GetCountdown(float elapsedTime);
|
||||
|
||||
bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps = true, bool stopOnError = true);
|
||||
|
||||
void InstantDamage();
|
||||
void SystemNotification(std::string systemLog);
|
||||
void KillNotification(Player killer, Player killed);
|
||||
void DisplayNotification(std::string message);
|
||||
@@ -60,6 +63,9 @@ private:
|
||||
void DrawHud(float elapsedTime, BlockType bloc);
|
||||
void PrintText(float x, float y, const std::string& t, float charSizeMultiplier = 1.0f);
|
||||
|
||||
|
||||
|
||||
|
||||
Connector m_conn;
|
||||
Shader m_shader01;
|
||||
BlockInfo* m_blockinfo[BTYPE_LAST];
|
||||
@@ -75,6 +81,8 @@ private:
|
||||
Texture m_texturePovGun;
|
||||
Texture m_textureSkybox;
|
||||
Texture m_textureSoloMultiMenu;
|
||||
Texture m_textureSoloText;
|
||||
Texture m_textureMultiText;
|
||||
Texture m_textureTitle;
|
||||
|
||||
Skybox m_skybox;
|
||||
@@ -88,26 +96,36 @@ private:
|
||||
|
||||
Bullet* m_bullets[MAX_BULLETS];
|
||||
|
||||
std::map<uint64_t, RemotePlayer*> m_players;
|
||||
std::unordered_map<uint64_t, Player*> m_players;
|
||||
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 };
|
||||
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;
|
||||
|
||||
|
||||
float m_scale;
|
||||
float m_time = 0;
|
||||
float m_time_SplashScreen = 0;
|
||||
float m_titleX = 0;
|
||||
float m_titleY = 0;
|
||||
float m_Width = 0;
|
||||
float m_Height = 0;
|
||||
|
||||
int m_renderCount = 0;
|
||||
int m_countdown = COUNTDOWN;
|
||||
int m_nbReductionChunk = 4;
|
||||
int m_timerReductionChunk = 30;
|
||||
|
||||
bool m_damage = false;
|
||||
|
||||
bool m_wireframe = false;
|
||||
bool m_isSkybox = true;
|
||||
@@ -115,11 +133,11 @@ private:
|
||||
bool m_flash = true;
|
||||
bool m_displayCrosshair = true;
|
||||
bool m_displayHud = true;
|
||||
bool m_displayInfo = false;
|
||||
bool m_displayInfo = true;
|
||||
bool m_resetcountdown = false;
|
||||
bool m_soloMultiChoiceMade = true;
|
||||
bool m_soloMultiChoiceMade = false;
|
||||
bool m_stopcountdown = false;
|
||||
|
||||
|
||||
bool m_keyK = false;
|
||||
bool m_keyL = false;
|
||||
bool m_keyW = false;
|
||||
@@ -137,7 +155,8 @@ private:
|
||||
float m_mousemy = 0;
|
||||
|
||||
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 = "";
|
||||
};
|
||||
|
||||
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 261 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 363 KiB After Width: | Height: | Size: 367 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 255 KiB |
Before Width: | Height: | Size: 308 KiB After Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 255 KiB |
Before Width: | Height: | Size: 308 KiB After Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 277 KiB |
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 276 KiB |
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 320 KiB |
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 320 KiB |
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 363 KiB |
Before Width: | Height: | Size: 360 KiB After Width: | Height: | Size: 363 KiB |
Before Width: | Height: | Size: 367 KiB After Width: | Height: | Size: 365 KiB |
Before Width: | Height: | Size: 368 KiB After Width: | Height: | Size: 365 KiB |
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 337 KiB |
Before Width: | Height: | Size: 348 KiB After Width: | Height: | Size: 360 KiB |
Before Width: | Height: | Size: 382 KiB After Width: | Height: | Size: 394 KiB |
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 338 KiB |
Before Width: | Height: | Size: 329 KiB After Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 374 KiB |
Before Width: | Height: | Size: 641 KiB After Width: | Height: | Size: 643 KiB |
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 656 KiB |
Before Width: | Height: | Size: 651 KiB After Width: | Height: | Size: 653 KiB |
Before Width: | Height: | Size: 640 KiB After Width: | Height: | Size: 642 KiB |
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 656 KiB |
Before Width: | Height: | Size: 650 KiB After Width: | Height: | Size: 652 KiB |
Before Width: | Height: | Size: 474 KiB After Width: | Height: | Size: 485 KiB |
Before Width: | Height: | Size: 501 KiB After Width: | Height: | Size: 512 KiB |
Before Width: | Height: | Size: 563 KiB After Width: | Height: | Size: 575 KiB |
Before Width: | Height: | Size: 473 KiB After Width: | Height: | Size: 484 KiB |
Before Width: | Height: | Size: 500 KiB After Width: | Height: | Size: 512 KiB |
Before Width: | Height: | Size: 563 KiB After Width: | Height: | Size: 575 KiB |
Before Width: | Height: | Size: 698 KiB After Width: | Height: | Size: 694 KiB |
Before Width: | Height: | Size: 719 KiB After Width: | Height: | Size: 716 KiB |
Before Width: | Height: | Size: 735 KiB After Width: | Height: | Size: 732 KiB |
Before Width: | Height: | Size: 698 KiB After Width: | Height: | Size: 694 KiB |
Before Width: | Height: | Size: 719 KiB After Width: | Height: | Size: 715 KiB |
Before Width: | Height: | Size: 735 KiB After Width: | Height: | Size: 731 KiB |
Before Width: | Height: | Size: 760 KiB After Width: | Height: | Size: 598 KiB |
Before Width: | Height: | Size: 783 KiB After Width: | Height: | Size: 629 KiB |
Before Width: | Height: | Size: 804 KiB After Width: | Height: | Size: 649 KiB |
Before Width: | Height: | Size: 760 KiB After Width: | Height: | Size: 584 KiB |
Before Width: | Height: | Size: 783 KiB After Width: | Height: | Size: 644 KiB |
Before Width: | Height: | Size: 804 KiB After Width: | Height: | Size: 646 KiB |
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 283 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 326 KiB |
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 392 KiB |
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 391 KiB |
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 268 KiB |
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 268 KiB |
Before Width: | Height: | Size: 655 KiB After Width: | Height: | Size: 657 KiB |
Before Width: | Height: | Size: 658 KiB After Width: | Height: | Size: 660 KiB |
Before Width: | Height: | Size: 679 KiB After Width: | Height: | Size: 680 KiB |
Before Width: | Height: | Size: 654 KiB After Width: | Height: | Size: 656 KiB |
Before Width: | Height: | Size: 657 KiB After Width: | Height: | Size: 659 KiB |
Before Width: | Height: | Size: 678 KiB After Width: | Height: | Size: 680 KiB |
Before Width: | Height: | Size: 473 KiB After Width: | Height: | Size: 486 KiB |
Before Width: | Height: | Size: 481 KiB After Width: | Height: | Size: 494 KiB |
Before Width: | Height: | Size: 504 KiB After Width: | Height: | Size: 517 KiB |
Before Width: | Height: | Size: 474 KiB After Width: | Height: | Size: 486 KiB |
Before Width: | Height: | Size: 481 KiB After Width: | Height: | Size: 493 KiB |
Before Width: | Height: | Size: 505 KiB After Width: | Height: | Size: 517 KiB |
Before Width: | Height: | Size: 688 KiB After Width: | Height: | Size: 680 KiB |
Before Width: | Height: | Size: 701 KiB After Width: | Height: | Size: 695 KiB |
Before Width: | Height: | Size: 715 KiB After Width: | Height: | Size: 710 KiB |
Before Width: | Height: | Size: 843 KiB After Width: | Height: | Size: 678 KiB |
Before Width: | Height: | Size: 874 KiB After Width: | Height: | Size: 701 KiB |
Before Width: | Height: | Size: 891 KiB After Width: | Height: | Size: 728 KiB |
Before Width: | Height: | Size: 842 KiB After Width: | Height: | Size: 672 KiB |
Before Width: | Height: | Size: 874 KiB After Width: | Height: | Size: 696 KiB |
Before Width: | Height: | Size: 891 KiB After Width: | Height: | Size: 732 KiB |
Before Width: | Height: | Size: 688 KiB After Width: | Height: | Size: 679 KiB |
Before Width: | Height: | Size: 701 KiB After Width: | Height: | Size: 694 KiB |
Before Width: | Height: | Size: 715 KiB After Width: | Height: | Size: 710 KiB |
Before Width: | Height: | Size: 397 KiB After Width: | Height: | Size: 410 KiB |
Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 402 KiB |
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 413 KiB |
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 410 KiB |
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 402 KiB |
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 413 KiB |
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 254 KiB |
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 254 KiB |
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 345 KiB After Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 224 KiB |
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 323 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 224 KiB |