Merge branch 'SQC-15_animation' into SQC19_Booster

This commit is contained in:
Frederic Leger
2023-11-20 12:15:28 -05:00
122 changed files with 1365 additions and 552 deletions

View File

@@ -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 = "";
};