diff --git a/SQCSim-common/SQCSim-common.vcxproj b/SQCSim-common/SQCSim-common.vcxproj
index a2259e3..9e79f4d 100644
--- a/SQCSim-common/SQCSim-common.vcxproj
+++ b/SQCSim-common/SQCSim-common.vcxproj
@@ -134,6 +134,7 @@
+
@@ -148,6 +149,7 @@
+
diff --git a/SQCSim-common/SQCSim-common.vcxproj.filters b/SQCSim-common/SQCSim-common.vcxproj.filters
index 9f3461d..20127f3 100644
--- a/SQCSim-common/SQCSim-common.vcxproj.filters
+++ b/SQCSim-common/SQCSim-common.vcxproj.filters
@@ -54,6 +54,9 @@
Fichiers d%27en-tête
+
+ Fichiers d%27en-tête
+
Fichiers d%27en-tête
@@ -83,6 +86,9 @@
Fichiers sources
+
+ Fichiers sources
+
Fichiers sources
diff --git a/SQCSim-common/boostinfo.cpp b/SQCSim-common/boostinfo.cpp
new file mode 100644
index 0000000..9b54626
--- /dev/null
+++ b/SQCSim-common/boostinfo.cpp
@@ -0,0 +1,32 @@
+#include "boostinfo.h"
+#include
+
+BoostInfo::BoostInfo(BoostType type, const std::string& name, float u, float v, float s, int dur) : m_type(type), m_name(name), m_u(u), m_v(v), m_s(s), m_durability(dur)
+{
+}
+
+BoostInfo::~BoostInfo()
+{
+}
+
+BoostType BoostInfo::GetType() const
+{
+ return m_type;
+}
+
+void BoostInfo::GetTexture(float& u, float& v, float& s)
+{
+ u = m_u;
+ v = m_v;
+ s = m_s;
+}
+
+void BoostInfo::Show() const
+{
+ std::cout << "Type: " << m_type << std::endl;
+ std::cout << "Nom: " << m_name << std::endl;
+ std::cout << "Durabilite: " << m_durability << std::endl;
+ std::cout << "Coordonnees Texture: " << m_u << ", " << m_v << ", " << m_s << std::endl;
+}
+
+
diff --git a/SQCSim-common/boostinfo.h b/SQCSim-common/boostinfo.h
new file mode 100644
index 0000000..e76d1ed
--- /dev/null
+++ b/SQCSim-common/boostinfo.h
@@ -0,0 +1,29 @@
+#ifndef BOOSTINFO_H__
+#define BOOSTINFO_H__
+
+#include
+#include "define.h"
+
+class BoostInfo
+{
+public:
+ BoostInfo(BoostType type, const std::string& name, float u, float v, float s, int dur);
+ ~BoostInfo();
+
+ BoostType GetType() const;
+
+ void GetTexture(float& u, float& v, float& s);
+
+ void Show() const;
+
+private:
+ BoostType m_type;
+ float m_u;
+ float m_v;
+ float m_s;
+ std::string m_name;
+ int m_durability;
+
+};
+
+#endif // BOOSTINFO_H__
diff --git a/SQCSim-common/bullet.cpp b/SQCSim-common/bullet.cpp
index 09dde11..9b26861 100644
--- a/SQCSim-common/bullet.cpp
+++ b/SQCSim-common/bullet.cpp
@@ -7,7 +7,7 @@ Bullet::Bullet(Vector3f pos, Vector3f dir, uint64_t tid): m_startpos(pos), m_cur
Bullet::~Bullet() {}
-bool Bullet::Update(World* world, float elapsedtime, int perframe, std::map mapPlayer) {
+bool Bullet::Update(World* world, float elapsedtime, int perframe, std::unordered_map mapPlayer) {
int max = 100 / perframe;
float damage = 0.057f;
for (int x = 0; x < max; ++x) {
diff --git a/SQCSim-common/bullet.h b/SQCSim-common/bullet.h
index cc04737..04bbfad 100644
--- a/SQCSim-common/bullet.h
+++ b/SQCSim-common/bullet.h
@@ -1,9 +1,9 @@
#ifndef BULLET_H__
#define BULLET_H__
+#include
#include "define.h"
#include "vector3.h"
-#include
+
@@ -36,6 +37,7 @@
+
@@ -170,7 +172,7 @@
Fast
- Windows
+ Console
false
true
true
@@ -192,7 +194,7 @@
Fast
- Windows
+ Console
false
true
true
diff --git a/SQCSim2021/SQCSim2021.vcxproj.filters b/SQCSim2021/SQCSim2021.vcxproj.filters
index 5c8a864..8246b5c 100644
--- a/SQCSim2021/SQCSim2021.vcxproj.filters
+++ b/SQCSim2021/SQCSim2021.vcxproj.filters
@@ -53,6 +53,9 @@
Fichiers d%27en-tête
+
+ Fichiers d%27en-tête
+
@@ -97,5 +100,8 @@
Fichiers sources
+
+ Fichiers sources
+
\ No newline at end of file
diff --git a/SQCSim2021/booster.cpp b/SQCSim2021/booster.cpp
new file mode 100644
index 0000000..593e16e
--- /dev/null
+++ b/SQCSim2021/booster.cpp
@@ -0,0 +1,46 @@
+#include "booster.h";
+
+void Booster::RenderBillboard(const Vector3f pos, TextureAtlas& textureAtlas, Shader& shader, Transformation tran)
+{
+ //
+ //Vector3f playerToQuad = m_player.GetPosition() - m_position;
+ //playerToQuad.Normalize();
+ //Vector3f targetPosition = m_player.GetPosition() + playerToQuad * 10.0f;
+ //Matrix4f rotationMatrix;
+ //rotationMatrix.SetLookAt(m_position, targetPosition, Vector3f(0, 1, 0));
+ //glMultMatrixf(rotationMatrix.GetInternalValues());
+ float x = pos.x;
+ float y = pos.y;
+ float z = pos.z;
+ float width = 1.0f;
+ float height = 1.0f;
+ //Pt override les collisions.. a ce point la je sais pas quoi faire
+
+ //Matrix4 mat4 = tran.GetMatrix();
+ //mat4 VP = pMatrix * vMatrix;
+ //Vector3f CameraRight = Vector3f(mat4.Get11(), mat4.Get21(), mat4.Get31());
+ //Vector3f CameraUp = Vector3f(mat4.Get12(), mat4.Get22(), mat4.Get32());
+
+ //Vector3f v1 = (m_position + CameraRight * 0.5 * width + CameraUp * -0.5 * width);
+ //Vector3f v2 = (m_position + CameraRight * 0.5 * width + CameraUp * 0.5 * width);
+ //Vector3f v4 = (m_position + CameraRight * -0.5 * width + CameraUp * -0.5 * width);
+ //Vector3f v3 = (m_position + CameraRight * -0.5 * width + CameraUp * 0.5 * width);
+
+ //tran.ApplyTranslation(m_position);
+ float u, v, w, h;
+ //glDisable(GL_DEPTH_TEST);
+ shader.Use();
+ textureAtlas.Bind();
+ textureAtlas.TextureIndexToCoord(8, u, v, w, h);
+ //glLoadIdentity();
+ glLoadMatrixf(tran.GetMatrix().GetInternalValues());
+ glBegin(GL_QUADS);
+ glTexCoord2f(u, v); glVertex3f(x - width / 2., y - height, z); //glVertex3f(v4.x, v4.y, v4.z);//glVertex3f(0, 50, 0);
+ glTexCoord2f(u + w, v); glVertex3f(x + width / 2., y - height, z); //glVertex3f(v3.x, v3.y, v3.z); //glVertex3f(50,50, 0);
+ glTexCoord2f(u + w, v + h); glVertex3f(x + width / 2., y, z); //glVertex3f(v2.x, v2.y, v2.z); //glVertex3f(50, 0, 0);
+ glTexCoord2f(u, v + h); glVertex3f(x - width / 2., y, z); //glVertex3f(v1.x, v1.y, v1.z);// glVertex3f(0, 0, 0);
+ glEnd();
+ shader.Disable();
+ //tran.ApplyTranslation(-m_position);
+ //glEnable(GL_DEPTH_TEST);
+}
\ No newline at end of file
diff --git a/SQCSim2021/booster.h b/SQCSim2021/booster.h
new file mode 100644
index 0000000..e06f2b4
--- /dev/null
+++ b/SQCSim2021/booster.h
@@ -0,0 +1,14 @@
+#ifndef BOOSTER_H__
+#define BOOSTER_H__
+#include "define.h"
+#include "textureatlas.h"
+#include "shader.h"
+#include "../SQCSim-common/vector3.h"
+#include "../SQCSim-common/transformation.h"
+
+
+class Booster {
+public:
+ void RenderBillboard(const Vector3f pos, TextureAtlas& textureAtlas, Shader& shader, Transformation tran);
+};
+#endif
diff --git a/SQCSim2021/connector.cpp b/SQCSim2021/connector.cpp
index 3611a37..867e36e 100644
--- a/SQCSim2021/connector.cpp
+++ b/SQCSim2021/connector.cpp
@@ -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 lsPck;
+ std::vector 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;
diff --git a/SQCSim2021/connector.h b/SQCSim2021/connector.h
index 4fd883e..c5361ac 100644
--- a/SQCSim2021/connector.h
+++ b/SQCSim2021/connector.h
@@ -2,6 +2,7 @@
#define CONNECTOR_H__
#include
+#include
#include "../SQCSim-common/netprotocol.h"
#include "define.h"
@@ -26,13 +27,13 @@ public:
// void updateRemotePlayers(std::map rplayers);
- std::map m_players;
+ std::unordered_map m_players;
private:
#ifdef _WIN32
WSADATA m_wsaData;
#endif
- std::map m_inputmanifest;
- std::map m_teams;
+ std::unordered_map m_inputmanifest;
+ std::unordered_map m_teams;
netprot::LoginInfo m_loginfo;
netprot::GameInfo m_gameinfo;
diff --git a/SQCSim2021/define.h b/SQCSim2021/define.h
index 4515ed8..e268b20 100644
--- a/SQCSim2021/define.h
+++ b/SQCSim2021/define.h
@@ -28,10 +28,13 @@
#define BASE_WIDTH 640
#define BASE_HEIGHT 480
+#define ANIME_PATH_JUMP "./media/textures/AssetOtherPlayer/FinalPNGJumping/"
+#define ANIME_PATH_STILL "./media/textures/AssetOtherPlayer/FinalPNGStanding/"
#define TEXTURE_PATH "./media/textures/"
#define SHADER_PATH "./media/shaders/"
#define AUDIO_PATH "./media/audio/"
#define CHUNK_PATH "./media/chunks/"
#define MENU_ITEM_PATH "./media/menu_items/"
+#define BOOSTER_TEXTURE_PATH "./media/textures/Booster/"
#endif // DEFINE_H__
diff --git a/SQCSim2021/engine.cpp b/SQCSim2021/engine.cpp
index 4397e4a..4490f3f 100644
--- a/SQCSim2021/engine.cpp
+++ b/SQCSim2021/engine.cpp
@@ -1,5 +1,7 @@
#include "engine.h"
-
+#include
+#include
+#include
#include
#include
#include
@@ -11,12 +13,13 @@ struct Notification {
float displayStartTime = 0.0f;
};
+
// Use a queue to manage notifications
//std::queue notificationQueue;
// Use a vector to manage notifications
std::vector notifications;
-Engine::Engine() {}
+Engine::Engine() : m_remotePlayer(&m_pinfo), m_pinfo(){}
Engine::~Engine() {
m_world.CleanUpWorld(m_renderCount, true);
@@ -316,7 +319,6 @@ void Engine::DrawPause()
void Engine::Init() {
-
GLenum glewErr = glewInit();
if (glewErr != GLEW_OK) {
std::cerr << " ERREUR GLEW : " << glewGetErrorString(glewErr) << std::endl;
@@ -324,14 +326,13 @@ void Engine::Init() {
}
uint64_t seed = SEED;
- char ch;
glDisable(GL_FRAMEBUFFER_SRGB);
- glEnable(GL_DEPTH_TEST);
+ glEnable(GL_DEPTH_TEST);
glEnable(GL_STENCIL_TEST);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_BLEND);
- glEnable(GL_CULL_FACE);
+ //glEnable(GL_CULL_FACE);
glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
@@ -344,11 +345,15 @@ void Engine::Init() {
glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_SUBTRACT);
-
+
+ if (m_istarted)
+ return;
+ else m_istarted = true;
+
//
// Objet de skybox avec sa propre texture et son propre shader!
m_skybox.Init(0.2f);
-
+ //m_skybox2.Init(1.f);
// Objet de musique!
//m_audio.ToggleMusicState();
@@ -358,56 +363,61 @@ void Engine::Init() {
m_whoosh[x] = nullptr;
}
- std::cout << "Jouer en ligne? [o/N] ";
- std::cin >> ch;
- std::cout << std::endl;
+ char* ch = new char[2];
- if (ch == 'o' || ch == 'O') {
- char* input = new char[32];
- std::string playname, srvname;
+ std::cout << "Jouer en ligne? [o/N] ";
+ std::cin.getline(ch, 2);
+ std::cout << std::endl;
- while (playname.size() < 1) {
- std::cout << "Veuillez entrer un nom de joueur: ";
- std::cin.ignore();
- std::cin.getline(input, 32);
- std::cout << std::endl;
- playname = input;
- if (playname.size() < 1 || playname.size() > 32)
- std::puts("Nom invalide.");
- }
- while (srvname.size() < 1) {
- std::cout << "Veuillez entrer une adresse de serveur: ";
- std::cin.getline(input, 32);
- std::cout << std::endl;
- srvname = input;
- if (srvname.size() < 1 || srvname.size() > 32)
- std::puts("Adresse serveur invalide.");
- }
- delete[] input;
+ if (*ch == 'o' || *ch == 'O') {
+ char* input = new char[32];
+ std::string playname, srvname;
- if (!m_conn.Init()) {
- if (!m_conn.Connect(srvname.c_str(), playname)) {
- // setup jeu en reseau.
- std::cout << "ID recu du serveur: " << std::to_string(m_conn.getId()) << "!" << std::endl;
- std::cout << "Seed recu du serveur: " << std::to_string(m_conn.getSeed()) << "!" << std::endl;
- m_player = Player(m_conn.getOrigin().position);
-
- for (auto& [key, player] : m_conn.m_players)
- m_players[key] = new RemotePlayer(player);
-
- seed = m_conn.getSeed();
- m_networkgame = true;
- }
- else std::cout << "Erreur de connexion." << std::endl;
- }
- else std::cout << "Erreur de creation de socket." << std::endl;
+ while (playname.size() < 1) {
+ std::cout << "Veuillez entrer un nom de joueur: ";
+ std::cin.getline(input, 32);
+ std::cout << std::endl;
+ playname = input;
+ if (playname.size() < 1 || playname.size() > 32)
+ std::puts("Nom invalide.");
}
+ while (srvname.size() < 1) {
+ std::cout << "Veuillez entrer une adresse de serveur: ";
+ std::cin.getline(input, 32);
+ std::cout << std::endl;
+ srvname = input;
+ if (srvname.size() < 1 || srvname.size() > 32)
+ std::puts("Adresse serveur invalide.");
+ }
+ delete[] input;
+
+ if (!m_conn.Init()) {
+ if (!m_conn.Connect(srvname.c_str(), playname)) {
+ // setup jeu en reseau.
+ std::cout << "ID recu du serveur: " << std::to_string(m_conn.getId()) << "!" << std::endl;
+ std::cout << "Seed recu du serveur: " << std::to_string(m_conn.getSeed()) << "!" << std::endl;
+ m_player = Player(m_conn.getOrigin().position);
+
+ for (auto& [key, player] : m_conn.m_players)
+ m_players[key] = new RemotePlayer(player);
+
+ seed = m_conn.getSeed();
+ m_networkgame = true;
+ }
+ else std::cout << "Erreur de connexion." << std::endl;
+ }
+ else std::cout << "Erreur de creation de socket." << std::endl;
+ }
+ delete[] ch;
m_world.SetSeed(seed);
// Init Chunks
m_world.GetChunks().Reset(nullptr);
+ m_startTime = std::chrono::high_resolution_clock::now();
+
+ m_remotePlayer.SetPosition(Vector3f(.5,CHUNK_SIZE_Y + 10., .5));
// Gestion de souris.
CenterMouse();
HideCursor();
@@ -417,6 +427,7 @@ void Engine::DeInit() {}
void Engine::LoadResource() {
LoadTexture(m_skybox.GetTexture(), TEXTURE_PATH "skybox.png", true);
+ //LoadTexture(m_skybox2.GetTexture(), TEXTURE_PATH "skybox.png", true);
LoadTexture(m_textureCrosshair, TEXTURE_PATH "cross.bmp", true);
LoadTexture(m_textureFont, TEXTURE_PATH "font.bmp", true);
LoadTexture(m_textureGun, TEXTURE_PATH "gun01.png", false);
@@ -439,6 +450,42 @@ void Engine::LoadResource() {
TextureAtlas::TextureIndex texIceIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "metal2.png");
TextureAtlas::TextureIndex texGrassIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "grass.png");
TextureAtlas::TextureIndex texMetalIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "dirt.png");
+ TextureAtlas::TextureIndex texGreenGrassIndex = m_textureAtlas.AddTexture(TEXTURE_PATH "greengrass.png");
+ TextureAtlas::TextureIndex texBoostHeal = m_textureAtlas.AddTexture(BOOSTER_TEXTURE_PATH "BoosterVert.png");
+ TextureAtlas::TextureIndex texBoostDmg = m_textureAtlas.AddTexture(BOOSTER_TEXTURE_PATH "BoosterRouge.png");
+ TextureAtlas::TextureIndex texBoostSpd = m_textureAtlas.AddTexture(BOOSTER_TEXTURE_PATH "BoosterBleu.png");
+ TextureAtlas::TextureIndex texBoostInv = m_textureAtlas.AddTexture(BOOSTER_TEXTURE_PATH "BoosterJaune.png");
+
+
+ //AJOUTER LES TEXTURES DANS L'ORDRE DE L'ÉNUM
+
+ //JUMP
+ //TextureAtlas::TextureIndex JumpBack = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueBackJumpRight.png");
+ //TextureAtlas::TextureIndex JumpFront = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueFrontJumpRight.png");
+ //TextureAtlas::TextureIndex JumpQuarterBackLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueLeftBackJumpLeft.png");
+ //TextureAtlas::TextureIndex JumpQuarterBackRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueRightBackJumpRight.png");
+ //TextureAtlas::TextureIndex JumpProfiltLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueProfilJumpLeft.png");
+ //TextureAtlas::TextureIndex JumpProfiltRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueProfilJumpRight.png");
+ //TextureAtlas::TextureIndex JumpQuarterFrontLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueLeftFrontJumpLeft.png");
+ //TextureAtlas::TextureIndex JumpQuarterFrontRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueRightFrontJumpRight.png");
+
+ //STILL
+ //TextureAtlas::TextureIndex StillBack = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueBackRight.png");
+ TextureAtlas::TextureIndex StillFront = m_animeAtlas.AddTexture(ANIME_PATH_STILL "BlueFrontRight.png");
+ //TextureAtlas::TextureIndex StillQuarterBackLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueLeftBack.png");
+ //TextureAtlas::TextureIndex StillQuarterBackRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueRightBack.png");
+ //TextureAtlas::TextureIndex StillProfiltLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueProfilLeft.png");
+ //TextureAtlas::TextureIndex StillProfiltRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueProfilRight.png");
+ //TextureAtlas::TextureIndex StillQuarterFrontLeft = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueLeft.png");
+ //TextureAtlas::TextureIndex StillQuarterFrontRight = m_animeAtlas.AddTexture(ANIME_PATH_JUMP "BlueRight.png");
+
+ //SHOOTINGSTILL
+ //SHOOTINGJUMP
+
+ if (!m_animeAtlas.Generate(TEXTURE_SIZE, false)) {
+ std::cout << " Unable to generate texture atlas ..." << std::endl;
+ abort();
+ }
if (!m_textureAtlas.Generate(TEXTURE_SIZE, false)) {
std::cout << " Unable to generate texture atlas ..." << std::endl;
@@ -454,6 +501,20 @@ void Engine::LoadResource() {
m_blockinfo[BTYPE_METAL] = new BlockInfo(BTYPE_METAL, "Metal", u, v, s, 1);
m_textureAtlas.TextureIndexToCoord(texIceIndex, u, v, s, s);
m_blockinfo[BTYPE_ICE] = new BlockInfo(BTYPE_ICE, "Ice", u, v, s, 1);
+ m_textureAtlas.TextureIndexToCoord(texGreenGrassIndex, u, v, s, s);
+ m_blockinfo[BTYPE_GREENGRASS] = new BlockInfo(BTYPE_GREENGRASS, "GreenGrass", u, v, s, 1);
+ m_textureAtlas.TextureIndexToCoord(texBoostHeal, u, v, s, s);
+ m_boostinfo[BTYPE_HEAL] = new BoostInfo(BTYPE_HEAL, "Heal", u, v, s, 1);
+ m_textureAtlas.TextureIndexToCoord(texBoostDmg, u, v, s, s);
+ m_boostinfo[BTYPE_DAMAGE] = new BoostInfo(BTYPE_DAMAGE, "Dmg", u, v, s, 1);
+ m_textureAtlas.TextureIndexToCoord(texBoostSpd, u, v, s, s);
+ m_boostinfo[BTYPE_SPEED] = new BoostInfo(BTYPE_SPEED, "Spd", u, v, s, 1);
+ m_textureAtlas.TextureIndexToCoord(texIceIndex, u, v, s, s);
+ m_boostinfo[BTYPE_INVINCIBLE] = new BoostInfo(BTYPE_INVINCIBLE, "Inv", u, v, s, 1);
+
+
+
+ m_animeAtlas.TextureIndexToCoord(0, u, v, s, s);
std::cout << " Loading and compiling shaders ..." << std::endl;
if (!m_shader01.Load(SHADER_PATH "shader01.vert", SHADER_PATH "shader01.frag", true)) {
@@ -482,6 +543,7 @@ void Engine::SystemNotification(std::string systemLog) {
DisplayNotification(message);
}
+
void Engine::KillNotification(Player killer, Player killed) {
std::string message = "";
@@ -764,17 +826,17 @@ void Engine::DisplayInfo(float elapsedTime, BlockType bloc) {
fPosY = fPosYJump;
fPosY -= charSize;
- ss << " Velocity : " << m_player.GetVelocity();
+ ss << " Velocity : " << m_remotePlayer.GetVelocity();
PrintText(fPosX, fPosY, ss.str());
ss.str("");
fPosY -= charSize;
- ss << " Direction : " << m_player.GetDirection();
+ ss << " Player Position : " << m_player.GetPosition();
PrintText(fPosX, fPosY, ss.str());
ss.str("");
fPosY -= charSize;
- ss << " Position : " << m_player.GetPosition();
+ ss << " Remote Position : " << m_remotePlayer.GetPosition();//m_player.GetPosition();
PrintText(fPosX, fPosY, ss.str());
ss.str("");
fPosY -= charSize;
@@ -837,6 +899,7 @@ void Engine::DisplaySingleOrMultiplayerMenu() {
glBindTexture(GL_TEXTURE_2D, 0);
+
// Single Player and Multiplayer button background quads
float buttonWidthProportion = 0.4f;
float buttonHeightProportion = 0.075f;
@@ -926,8 +989,10 @@ void Engine::DrawHud(float elapsedTime, BlockType bloc) {
int timer = GetCountdown(elapsedTime);
for (int i = 1; i < WORLD_SIZE_X; i++)
{
- if (timer <= COUNTDOWN - m_timerReductionChunk * i)
+ if (timer <= COUNTDOWN - m_timerReductionChunk * i) {
m_world.RemoveChunk(m_nbReductionChunk * i);
+ m_renderer.RemoveChunk(m_nbReductionChunk * i);
+ }
}
if (m_keyK) {
SystemNotification(m_messageNotification);
@@ -1026,6 +1091,7 @@ void Engine::Render(float elapsedTime) {
static irrklang::ISound* step; // Pour les sons de pas.
static float pollTime = 0;
static float bulletTime = 0;
+ static float gameTime = 0;
static BlockType bloc = 1;
if (elapsedTime > 0.1f) return;
@@ -1035,6 +1101,8 @@ void Engine::Render(float elapsedTime) {
Transformation all;
Transformation skybox;
+ Transformation remotePlayer;
+
Vector3f vstep;
// Transformations initiales
@@ -1052,11 +1120,11 @@ void Engine::Render(float elapsedTime) {
if (leftright)
vstep = Vector3f(m_player.GetPosition().x + m_player.GetDirection().z, m_player.GetPosition().y - 1.7f, m_player.GetPosition().z + m_player.GetDirection().x);
else vstep = Vector3f(m_player.GetPosition().x - m_player.GetDirection().z, m_player.GetPosition().y - 1.7f, m_player.GetPosition().z - m_player.GetDirection().x);
- m_audio.Create3DAudioObj(step, AUDIO_PATH "step.wav", vstep, m_player.GetVelocity(), false,.8f);
+ m_audio.Create3DAudioObj(step, AUDIO_PATH "step.wav", vstep, m_player.GetVelocity(), false, .8f);
leftright = !leftright;
break;
case Player::Sound::FALL:
- m_audio.Create3DAudioObj(step, AUDIO_PATH "hit.wav", m_player.GetPosition(), m_player.GetVelocity(), false,1.f);
+ m_audio.Create3DAudioObj(step, AUDIO_PATH "hit.wav", m_player.GetPosition(), m_player.GetVelocity(), false, 1.f);
break;
default: break;
}
@@ -1069,12 +1137,17 @@ void Engine::Render(float elapsedTime) {
m_player.ApplyTransformation(skybox, false); // Version d'ApplyTransformation qui ne tient compte que de la rotation
// (donc l'objet ne bouge pas relativement au joueur, ce qui est pratique pour une skybox!).
+
+ m_player.ApplyTransformation(remotePlayer, true, false);
+
+ if (m_key1) bloc++;
+ else if (m_key2) bloc--;
if (m_mouseWU) bloc++;
else if (m_mouseWD) bloc--;
if (bloc == BTYPE_LAST + 1) bloc = BTYPE_AIR + 1;
else if (bloc == BTYPE_AIR) bloc = BTYPE_LAST; // La selection de BTYPE_LAST �quipe l'arme.
- m_mouseWU = m_mouseWD = false;
+ m_mouseWU = m_mouseWD = m_key1 = m_key2 = false;
if (m_mouseL) {
if (bloc != BTYPE_LAST)
@@ -1097,38 +1170,50 @@ void Engine::Render(float elapsedTime) {
glClearColor(0.f, 0.f, 0.f, 1.f);
return;
}
+ }
}
- }
- else if (m_mouseR)
- m_world.ChangeBlockAtCursor(BTYPE_AIR, m_player.GetPosition(), m_player.GetDirection(), m_block);
-
- for (int x = 0; x < MAX_BULLETS; ++x) { // Array de bullets en jeu.
- if (m_bullets[x]) {
- for (int b = 0; b < BULLET_UPDATES_PER_FRAME; ++b) {
- if (m_bullets[x]->Update(&m_world, elapsedTime, BULLET_UPDATES_PER_FRAME, m_players)) {
- m_bullets[x]->~Bullet();
- if (m_whoosh[x])
- m_whoosh[x]->drop();
- m_bullets[x] = nullptr;
- m_whoosh[x] = nullptr;
- break;
- }
- else if (!m_whoosh[x]) {
- m_whoosh[x] = m_audio.Create3DAudioObj(m_whoosh[x], AUDIO_PATH "noise.wav", m_bullets[x]->getPos(), m_bullets[x]->getVel(), true, (m_bullets[x]->getPos() - m_player.GetPosition()).Length());
- }
- else {
- Vector3f pos = m_bullets[x]->getPos(), vel = m_bullets[x]->getVel();
- m_audio.Render3DAudioObj(m_whoosh[x], pos, vel, 5 - (m_bullets[x]->getPos() - m_player.GetPosition()).Length());
+ else if (m_mouseR)
+ m_world.ChangeBlockAtCursor(BTYPE_AIR, m_player.GetPosition(), m_player.GetDirection(), m_block);
+
+ for (int x = 0; x < MAX_BULLETS; ++x) { // Array de bullets en jeu.
+ if (m_bullets[x]) {
+ for (int b = 0; b < BULLET_UPDATES_PER_FRAME; ++b) {
+ if (m_bullets[x]->Update(&m_world, elapsedTime, BULLET_UPDATES_PER_FRAME, m_players)) {
+ m_bullets[x]->~Bullet();
+ if (m_whoosh[x])
+ m_whoosh[x]->drop();
+ m_bullets[x] = nullptr;
+ m_whoosh[x] = nullptr;
+ break;
+ }
+ else if (!m_whoosh[x]) {
+ m_whoosh[x] = m_audio.Create3DAudioObj(m_whoosh[x], AUDIO_PATH "noise.wav", m_bullets[x]->getPos(), m_bullets[x]->getVel(), true, (m_bullets[x]->getPos() - m_player.GetPosition()).Length());
+ }
+ else {
+ Vector3f pos = m_bullets[x]->getPos(), vel = m_bullets[x]->getVel();
+ m_audio.Render3DAudioObj(m_whoosh[x], pos, vel, 5 - (m_bullets[x]->getPos() - m_player.GetPosition()).Length());
+ }
}
}
}
- }
- m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
+ gameTime += elapsedTime * 10;
+
+ Vector3f dance = Vector3f(sin(gameTime), 0, cos(-gameTime));
+ dance.Normalize();
+ m_remotePlayer.ApplyPhysics(dance, &m_world, elapsedTime);
m_world.Update(m_bullets, m_player.GetPosition(), m_blockinfo);
m_renderer.UpdateMesh(&m_world, m_player.GetPosition(), m_blockinfo);
+ m_remotePlayer.Render(m_animeAtlas, m_shader01, all, elapsedTime);
+ m_booster.RenderBillboard({ 195,16,195 }, m_textureAtlas, m_shader01, all);
+
+ if (m_isSkybox) m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
+
+ //glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+ //m_remotePlayer.Render(m_textureAtlas, m_shader01, all, elapsedTime);
+
+ m_renderer.RenderWorld(&m_world, m_renderCount, m_player.GetPosition(), m_player.GetDirection(), all, m_shader01, m_textureAtlas);
-
if (m_isSkybox) m_skybox.Render(skybox);
DrawHud(elapsedTime, bloc);
@@ -1140,7 +1225,7 @@ void Engine::Render(float elapsedTime) {
}
static bool fell = false;
if (m_player.GetPosition().y < 1.7f && !fell) {
- m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), false,1.f);
+ m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), false, 1.f);
fell = true;
}
else if (m_player.GetPosition().y < -20.f) {
@@ -1148,15 +1233,26 @@ void Engine::Render(float elapsedTime) {
fell = false;
}
- if (m_networkgame) {
- static char* buf = new char[BUFFER_LENGTH];
- uint32_t buflen = BUFFER_LENGTH;
- netprot::Input input;
- //sockaddr_in addr = m_conn.m_srvsockaddr;
+ if (m_networkgame) { // Pour se gerer le paquet.
+ using namespace std::chrono;
+ using namespace netprot;
+ Timestamp tstamp = duration_cast(high_resolution_clock::now() - m_startTime).count();
+ Input input;
+ Sync sync;
+ uint64_t id = m_conn.getId();
+ static std::vector lsPck;
+ if (false) { // TODO: Faire un checkup pour chaque ~1000ms.
+ sync.sid = id;
+ sync.timestamp = tstamp;
+ sync.position = m_player.GetPosition();
+ sync.hp = m_player.GetHP();
+ // TODO: Garrocher ca quelque-part.
+ }
+
+ input.sid = id;
input.direction = m_player.GetDirection();
- input.sid = m_conn.getId();
- input.timestamp = 12345;
+ input.timestamp = tstamp;
input.keys.forward = m_keyW;
input.keys.backward = m_keyS;
input.keys.left = m_keyA;
@@ -1165,10 +1261,37 @@ void Engine::Render(float elapsedTime) {
input.keys.block = m_mouseR;
input.keys.shoot = m_mouseL;
- //netprot::Serialize(&input, &buf, &buflen);
- //sendto(m_conn.m_sock_udp, buf, buflen, 0, (sockaddr*)&addr, sizeof(addr));
+ sendPackTo(m_conn.m_sock_udp, &input, &m_bufout, &m_conn.m_srvsockaddr);
- netprot::sendPackTo(m_conn.m_sock_udp, &input, &buf, &buflen, &m_conn.m_srvsockaddr);
+ lsPck = recvPacks(m_conn.m_sock_udp, &m_buf);
+ char* prevptr = nullptr;
+ for (auto& pck : lsPck) { // We could make a few threads out of this.
+ Sync sync;
+ Output out;
+ if (!prevptr)
+ prevptr = m_buf.ptr;
+ uint32_t bsize = m_buf.len - (pck - prevptr);
+ prevptr = pck;
+ switch (getType(pck, 1)) {
+ using enum PACKET_TYPE;
+ case SYNC:
+ if (Deserialize(&sync, pck, &bsize)) {
+ if (sync.sid != m_conn.getId())
+ break;
+ // TODO: Vérifier si les positions concordent au sync local.
+ }
+ break;
+ case OUTPUT:
+ if (Deserialize(&out, pck, &bsize)) {
+ RemotePlayer* r = (RemotePlayer*)m_players[out.id];
+ r->Feed(out);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ lsPck.clear();
}
}
else if (m_gamestate == GameState::MAIN_MENU || m_gamestate == GameState::OPTIONS)
@@ -1259,6 +1382,10 @@ void Engine::KeyPressEvent(unsigned char key) {
break;
case 24: // Y - Ignorer
break;
+ case 27: // 1
+ break;
+ case 28: // 2
+ break;
case 255: // Fn - Ignorer
break;
default:
@@ -1305,7 +1432,7 @@ void Engine::KeyReleaseEvent(unsigned char key) {
case 15:
for (int x = 0; x < MAX_BULLETS; ++x) // Ajouter une balle dans l'array (aussi connu sous le nom de "faire pow pow").
if (!m_bullets[x]) {
- m_bullets[x] = new Bullet(m_player.GetPOV() - Vector3f(1.f, 0.f, 1.f), Vector3f(1.f,0.f,1.f));
+ m_bullets[x] = new Bullet(m_player.GetPOV() - Vector3f(1.f, 0.f, 1.f), Vector3f(1.f, 0.f, 1.f));
break;
}
else if (x == MAX_BULLETS - 1) { // S'il y a pas d'espace dans l'array, prendre la place de la premi�re balle de l'array.
@@ -1333,6 +1460,12 @@ void Engine::KeyReleaseEvent(unsigned char key) {
else
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
break;
+ case 27: // 1
+ m_key1 = true;
+ break;
+ case 28: // 2
+ m_key2 = true;
+ break;
case 57: // Espace - Stop sauter
m_keySpace = false;
break;
@@ -1453,3 +1586,5 @@ bool Engine::LoadTexture(Texture& texture, const std::string& filename, bool use
return true;
}
+
+
diff --git a/SQCSim2021/engine.h b/SQCSim2021/engine.h
index 99dc6c5..9e29562 100644
--- a/SQCSim2021/engine.h
+++ b/SQCSim2021/engine.h
@@ -2,9 +2,12 @@
#define ENGINE_H__
#include
+#include
#include
+#include
#include "../SQCSim-common/array2d.h"
#include "../SQCSim-common/blockinfo.h"
+#include "../SQCSim-common/boostinfo.h"
#include "../SQCSim-common/bullet.h"
#include "../SQCSim-common/chunk.h"
#include "../SQCSim-common/world.h"
@@ -20,6 +23,8 @@
#include "connector.h"
#include "renderer.h"
#include "remoteplayer.h"
+#include "booster.h"
+
class Engine : public OpenglContext {
public:
@@ -59,13 +64,20 @@ 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];
+ BoostInfo* m_boostinfo[BTYPE_BOOST_LAST];
TextureAtlas m_textureAtlas = TextureAtlas(BTYPE_LAST);
+ TextureAtlas m_animeAtlas = TextureAtlas(TYPE_LAST + POS_LAST);
World m_world = World();
Renderer m_renderer = Renderer();
+ Booster m_booster = Booster();
Texture m_textureCrosshair;
Texture m_textureFont;
@@ -77,6 +89,8 @@ private:
Texture m_textureMultiText;
Texture m_textureTitle;
+ TextureAtlas::TextureIndex texBoostHeal;
+
Skybox m_skybox;
Audio m_audio = Audio(AUDIO_PATH "start.wav");
@@ -88,7 +102,9 @@ private:
Bullet* m_bullets[MAX_BULLETS];
- std::map m_players;
+ std::unordered_map 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, PAUSE };
@@ -101,6 +117,8 @@ private:
Texture PauseBGTexture;
Texture SplachScreenTexture;
+
+ float m_scale;
float m_time = 0;
float m_time_SplashScreen = 0;
float m_titleX = 0;
@@ -119,11 +137,14 @@ 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 = false;
bool m_stopcountdown = false;
+ bool m_key1 = false;
+ bool m_key2 = false;
+
bool m_keyK = false;
bool m_keyL = false;
bool m_keyW = false;
@@ -141,7 +162,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 = "";
};
diff --git a/SQCSim2021/media/shaders/shader01.frag b/SQCSim2021/media/shaders/shader01.frag
index 8adf697..99b1d70 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.;
+
gl_FragColor = texel;
}
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpLeft.png
deleted file mode 100644
index 09283ba..0000000
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpLeft.png and /dev/null differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpRight.png
index 73935c1..dcd7109 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueBackJumpRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpLeft.png
deleted file mode 100644
index 08420cf..0000000
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpLeft.png and /dev/null differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpRight.png
index 940581c..74ee547 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueFrontJumpRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftBackJumpLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftBackJumpLeft.png
index ecf6195..4b4d6db 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftBackJumpLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftBackJumpLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftFrontJumpLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftFrontJumpLeft.png
index b0f3100..23e61ec 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftFrontJumpLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueLeftFrontJumpLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightBackJumpRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightBackJumpRight.png
index ffbea70..5c7047b 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightBackJumpRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightBackJumpRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightFrontJumpRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightFrontJumpRight.png
index 3766095..77506b8 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightFrontJumpRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumping/BlueRightFrontJumpRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpLeftShootingLeft.png
index d2d9827..8c25fc0 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpRightShootingRight.png
index 729f5a2..42d6ffd 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackJumpRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackLeftJumpLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackLeftJumpLeftShootingLeft.png
index b12ab88..85657f1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackLeftJumpLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackLeftJumpLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackRightJumpRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackRightJumpRightShootingRight.png
index 8f035fe..5399cee 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackRightJumpRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueBackRightJumpRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpLeftShootingLeft.png
index a2560db..7a188ea 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpRightShootingRight.png
index a5d3b76..46f7ce9 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontJumpRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontLeftJumpLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontLeftJumpLeftShootingLeft.png
index db2a3b7..636c6c4 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontLeftJumpLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontLeftJumpLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontRightJumpRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontRightJumpRightShootingRight.png
index 6bf9ebd..5944785 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontRightJumpRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueFrontRightJumpRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueProfilLeftJumpLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueProfilLeftJumpLeftShootingLeft.png
index 8ff7a91..375894c 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueProfilLeftJumpLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BlueProfilLeftJumpLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BluerProfilRightJumprightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BluerProfilRightJumprightShootingRight.png
index 1e86cbf..ddc2913 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BluerProfilRightJumprightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/BluerProfilRightJumprightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot1.png
index e7b53c8..af6713c 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot2.png
index f6abe72..76034b6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot3.png
index c93e3b9..8c11253 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot1.png
index fa1b9aa..9402e58 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot2.png
index feaa0fa..c4352fb 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot3.png
index a9d8731..b34731a 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackJumpRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot1.png
index eaa2fbe..97b4154 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot2.png
index bf2ff7e..24e2aa7 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot3.png
index d4a390b..5c79715 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackLeftJumpLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot1.png
index d728b29..ebea87f 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot2.png
index cb9a181..872a578 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot3.png
index f8b9cbc..04b952b 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueBackRightJumpRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot1.png
index d9b56e8..5264479 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot2.png
index 17ca3d6..1be545e 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot3.png
index fd7c64e..73c4660 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot1.png
index 05e0658..180df1a 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot2.png
index c7da648..f7b4715 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot3.png
index 0ffaae2..a71cc5d 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontJumpRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot1.png
index 2924904..7c3606e 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot2.png
index 1afde54..c75b037 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot3.png
index abb3ccb..a0440f6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontLeftJumpLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot1.png
index 9e170c9..9320112 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot2.png
index c844481..37a678b 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot3.png
index 90e0c73..a117be2 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueFrontRightJumpRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot1.png
index 3a3a354..54a421f 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot2.png
index b2aa174..09352ab 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot3.png
index 1834bb0..bba70d6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BlueProfilLeftJumpLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot1.png
index c24be96..6ef6a7c 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot2.png
index a94919f..c6f96b8 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot3.png
index 8f932ee..66ab97f 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGJumpingShooting/ShootingJump/BluerProfilRightJumprightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackLeftShootingLeft.png
index 0842f01..885e6c7 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackRightShootingRight.png
index 91b2684..3e76747 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueBackRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontLeftShootingLeft.png
index 56865bf..58f5bd6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontRightShootingRight.png
index 1ead66b..970ca2a 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueFrontRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueLeftShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueLeftShootingLeft.png
index 7d8f578..253d24a 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueLeftShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueLeftShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingLeft.png
index 306e94e..c97f569 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingRight.png
index 43b7817..e1499cd 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueProfilShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueRightShootingRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueRightShootingRight.png
index def4afb..ab5a315 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueRightShootingRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueRightShootingRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackLeft.png
index 3ca0714..0befc0d 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackRight.png
index 7ea7d9e..271da83 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/BlueShootingBackRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot1.png
index 5d552d0..47be7a1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot2.png
index 6fb898c..33a5e19 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot3.png
index 5597961..79598e2 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot1.png
index 74c9f18..94108dc 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot2.png
index 7c033ec..0487033 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot3.png
index fcb900b..f8e267e 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueBackRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot1.png
index 5902c40..4b91cf1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot2.png
index 5f85afe..7119eae 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot3.png
index 61792ed..c830274 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot1.png
index d6b8aed..fdb48a1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot2.png
index 7175d87..7a7fb71 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot3.png
index ba991bd..aa161b1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueFrontRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot1.png
index 517a261..2a1018d 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot2.png
index 60c44b9..9b8082c 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot3.png
index eb3a984..851451b 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueLeftShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot1.png
index d1f51ab..2d24097 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot2.png
index aae48a8..a281dae 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot3.png
index eb72cb8..af357b7 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot1.png
index 5a84914..53f57fb 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot2.png
index baeb4eb..c73b3d6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot3.png
index 8e1f794..c9f30ea 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueProfilShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot1.png
index 0c80ebc..acec7d3 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot2.png
index 4e40664..276722b 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot3.png
index d174798..d446c80 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueRightShootingRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot1.png
index 3a26f64..e5b6580 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot2.png
index 5958dec..e70cd33 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot3.png
index 55b416a..729b637 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackLeftShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot1.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot1.png
index 88af064..14dbf49 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot1.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot1.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot2.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot2.png
index 3005b9f..cbdb64a 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot2.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot2.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot3.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot3.png
index 1ba9e13..bfd0541 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot3.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGShooting/Shooting/BlueShootingBackRightShoot3.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackLeft.png
deleted file mode 100644
index 79fbcdd..0000000
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackLeft.png and /dev/null differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackRight.png
index 10bf254..b99b838 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueBackRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontLeft.png
deleted file mode 100644
index c66ec21..0000000
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontLeft.png and /dev/null differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png
index 6957dc8..9ac44e6 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeft.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeft.png
index decb952..88e12c1 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeft.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeft.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeftBack.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeftBack.png
index e6efc82..fb165d2 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeftBack.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueLeftBack.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRight.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRight.png
index abb089e..610f547 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRight.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRight.png differ
diff --git a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRightBack.png b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRightBack.png
index 16349c8..f7b7664 100644
Binary files a/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRightBack.png and b/SQCSim2021/media/textures/AssetOtherPlayer/FinalPNGStanding/BlueRightBack.png differ
diff --git a/SQCSim2021/media/textures/Booster/BoosterVert.png b/SQCSim2021/media/textures/Booster/BoosterVert.png
new file mode 100644
index 0000000..b731b74
Binary files /dev/null and b/SQCSim2021/media/textures/Booster/BoosterVert.png differ
diff --git a/SQCSim2021/media/textures/greengrass.png b/SQCSim2021/media/textures/greengrass.png
new file mode 100644
index 0000000..71350e6
Binary files /dev/null and b/SQCSim2021/media/textures/greengrass.png differ
diff --git a/SQCSim2021/mesh.cpp b/SQCSim2021/mesh.cpp
index 04294af..c6f6b9b 100644
--- a/SQCSim2021/mesh.cpp
+++ b/SQCSim2021/mesh.cpp
@@ -9,7 +9,7 @@ Mesh::~Mesh() {
void Mesh::FlushMeshToVBO() {
m_vertexBuffer.SetMeshData(m_vd, m_vcount);
m_vcount = 0;
- //delete[] m_vd;
+ delete[] m_vd;
}
void Mesh::FlushVBO() {
diff --git a/SQCSim2021/mesh.h b/SQCSim2021/mesh.h
index 0a070ff..138d0e2 100644
--- a/SQCSim2021/mesh.h
+++ b/SQCSim2021/mesh.h
@@ -15,7 +15,7 @@ private:
Chunk* m_chunk; // NE PAS DÉTRUIRE ICI.
void AddBlockToMesh(VertexBuffer::VertexData* vd, int& count, BlockType bt, int x, int y, int z, float u, float v, float s, World* world);
-
+ void RemoveChunk(int nbReduit);
public:
Mesh(Chunk* chunk);
~Mesh();
diff --git a/SQCSim2021/openglcontext.cpp b/SQCSim2021/openglcontext.cpp
index 7a61b07..6284446 100644
--- a/SQCSim2021/openglcontext.cpp
+++ b/SQCSim2021/openglcontext.cpp
@@ -15,7 +15,7 @@ bool OpenglContext::Start(const std::string& title, int width, int height, bool
m_title = title;
m_fullscreen = fullscreen;
InitWindow(width, height);
-
+
Init();
LoadResource();
diff --git a/SQCSim2021/openglcontext.h b/SQCSim2021/openglcontext.h
index 3825b26..2718540 100644
--- a/SQCSim2021/openglcontext.h
+++ b/SQCSim2021/openglcontext.h
@@ -52,6 +52,8 @@ protected:
void HideCursor();
void ShowCrossCursor() const;
+ bool m_istarted = false;
+
private:
void InitWindow(int width, int height);
MOUSE_BUTTON ConvertMouseButton(sf::Mouse::Button button) const;
diff --git a/SQCSim2021/remoteplayer.cpp b/SQCSim2021/remoteplayer.cpp
index 7769ddc..c2247ba 100644
--- a/SQCSim2021/remoteplayer.cpp
+++ b/SQCSim2021/remoteplayer.cpp
@@ -2,69 +2,141 @@
#include
#include
+#include
+#include
-RemotePlayer::RemotePlayer(netprot::PlayerInfo pinfo) : Player(Vector3f(0, 0, 0), 0, 0), m_pinfo(pinfo), m_aminacc(0.0f), m_animstate(Anim::STILL), m_team_id(0), current(), previous() {
+
+
+
+RemotePlayer::RemotePlayer(netprot::PlayerInfo pinfo) : m_pinfo(pinfo), m_aminacc(0.0f), m_animstate(Anim::STILL), m_team_id(0), current(), previous(), m_texture_front(), Player(Vector3f(0, 0, 0)){
+
+ LoadTexture(m_texture_front, TEXTURE_PATH "AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png", false, false);
}
-void RemotePlayer::Init() {
+RemotePlayer::RemotePlayer(netprot::PlayerInfo pinfo, const Vector3f& pos) : m_pinfo(pinfo), m_aminacc(0.0f), m_animstate(Anim::STILL), m_team_id(0), current(), previous(), m_texture_front(), Player(pos) {
+
+ LoadTexture(m_texture_front, TEXTURE_PATH "AssetOtherPlayer/FinalPNGStanding/BlueFrontRight.png", false, false);
+
+}
+
+
+RemotePlayer::~RemotePlayer()
+{
+
+}
+
+void RemotePlayer::Init()
+{
}
void RemotePlayer::Feed(const netprot::Output out) {
- current.position = out.position;
- current.direction = out.direction;
- current.states = out.states;
- current.id = out.id;
+ //current.position = out.position;
+ //current.direction = out.direction;
+ //current.states = out.states;
+ //current.id = out.id;
- //a revoir pour le jump et le shoot en meme temps lorsque les test seront possible
+ //if (current.position != previous.position)
+ //{
+ // Vector3f positionDelta = current.position - previous.position;
+ // m_position = current.position + positionDelta;
+ // m_direction = current.direction;
- if (current.position != previous.position)
- {
- Vector3f positionDelta = current.position - previous.position;
- m_position = current.position + positionDelta;
- m_direction = current.direction;
+ //}
- }
+ //if(current.direction != previous.direction)
+ //{
+ // m_direction = current.direction;
+ // current.direction = current.direction;
+ //}
- if(current.direction != previous.direction)
- {
- m_direction = current.direction;
- current.direction = current.direction;
- }
+ //if (current.states.shooting) {
+ // m_animstate = Anim::SHOOTING;
+ //}
+ //else if (current.states.jumping) {
+ // m_animstate = Anim::JUMPING;
+ //}
+ //else if (current.states.dead) {
+ // m_animstate = Anim::DEAD;
+ //}
+ //else if(current.states.powerup){
+ // m_animstate = Anim::POWERUP;
+ //}
+ //else if (current.states.still) {
+ // m_animstate = Anim::STILL;
+ //}
+ //else if (current.states.running) {
+ // m_animstate = Anim::RUNNING;
+ //}
- if (current.states.shooting) {
- //true;
- m_animstate = Anim::SHOOTING;
- }
- else if (current.states.jumping) {
- //true;
- m_animstate = Anim::JUMPING;
- }
- else if (current.states.dead) {
- //true;
- m_animstate = Anim::DEAD;
- }
- else if(current.states.powerup){
- //true;
- m_animstate = Anim::POWERUP;
- }
- else if (current.states.still) {
- //true;
- m_animstate = Anim::STILL;
- }
- else if (current.states.running) {
- //true;
- m_animstate = Anim::RUNNING;
- }
+ //previous.direction = current.direction;
+ //previous.position = current.position;
+ //previous.states = current.states;
+ //previous.id = current.id;
+}
+
+void RemotePlayer::Render(TextureAtlas& atlas, Shader& shader, Transformation tran, float elapsedTime)
+{
+
+ float x = GetPosition().x;
+ float y = GetPosition().y;
+ float z = GetPosition().z;
+ float width = 1.f;
+ float height = 1.7f;
- previous.direction = current.direction;
- previous.position = current.position;
- previous.states = current.states;
- previous.id = current.id;
+ //Matrix4 mat4 = tran.GetMatrix();
+ //mat4 VP = pMatrix * vMatrix;
+ //Vector3f CameraRight = Vector3f(mat4.Get11(), mat4.Get21(), mat4.Get31());
+ //Vector3f CameraUp = Vector3f(mat4.Get12(), mat4.Get22(), mat4.Get32());
+
+ //Vector3f v1 = (m_position + CameraRight * 0.5 * width + CameraUp * -0.5 * width);
+ //Vector3f v2 = (m_position + CameraRight * 0.5 * width + CameraUp * 0.5 * width);
+ //Vector3f v4 = (m_position + CameraRight * -0.5 * width + CameraUp * -0.5 * width);
+ //Vector3f v3 = (m_position + CameraRight * -0.5 * width + CameraUp * 0.5 * width);
+
+ //tran.ApplyTranslation(m_position);
+ float u, v, w, h;
+ //glDisable(GL_DEPTH_TEST);
+ shader.Use();
+ atlas.Bind();
+ atlas.TextureIndexToCoord(0, u, v, w, h);
+ //glLoadIdentity();
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glBlendEquation(GL_FUNC_ADD);
+
+ glLoadMatrixf(tran.GetMatrix().GetInternalValues());
+ glBegin(GL_QUADS);
+ glTexCoord2f(u, v); glVertex3f(x - width/2., y - height, z); //glVertex3f(v4.x, v4.y, v4.z);//glVertex3f(0, 50, 0);
+ glTexCoord2f(u + w, v); glVertex3f(x+width/2., y - height, z); //glVertex3f(v3.x, v3.y, v3.z); //glVertex3f(50,50, 0);
+ glTexCoord2f(u + w, v + h); glVertex3f(x+width/2., y, z); //glVertex3f(v2.x, v2.y, v2.z); //glVertex3f(50, 0, 0);
+ glTexCoord2f(u, v + h); glVertex3f(x-width/2., y, z); //glVertex3f(v1.x, v1.y, v1.z);// glVertex3f(0, 0, 0);
+ glEnd();
+ glBlendFunc(GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR);
+ glBlendEquation(GL_FUNC_SUBTRACT);
+ glDisable(GL_BLEND);
-}
\ No newline at end of file
+ shader.Disable();
+ //tran.ApplyTranslation(-m_position);
+ //glEnable(GL_DEPTH_TEST);
+}
+
+bool RemotePlayer::LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps, bool stopOnError)
+{
+ texture.Load(filename, useMipmaps);
+ if (!texture.IsValid()) {
+ std::cerr << "Unable to load texture (" << filename << ")" << std::endl;
+ if (stopOnError)
+ return false;
+
+ return false;
+ }
+
+ return true;
+}
diff --git a/SQCSim2021/remoteplayer.h b/SQCSim2021/remoteplayer.h
index e8fb8a5..e782000 100644
--- a/SQCSim2021/remoteplayer.h
+++ b/SQCSim2021/remoteplayer.h
@@ -5,22 +5,38 @@
#include "define.h"
#include "textureatlas.h"
#include "shader.h"
+#include "texture.h"
+#include "openglcontext.h"
+#include "vertexbuffer.h"
+#include "../SQCSim-common/matrix4.h"
class RemotePlayer : public Player {
public:
- enum Anim { STILL = 1, RUNNING = 2, JUMPING = 4, SHOOTING = 8, POWERUP = 16, DEAD = 32 };
-
+ enum Anim: uint8_t { STILL = 1, RUNNING = 2, JUMPING = 4, SHOOTING = 8, POWERUP = 16, DEAD = 32 }; // A REVOIR VOIR DEFINE.H POUR LES ANIMES
+
RemotePlayer(netprot::PlayerInfo pinfo);
+ RemotePlayer(netprot::PlayerInfo pinfo, const Vector3f& pos);
+ ~RemotePlayer();
+
void Init();
void Feed(const netprot::Output out);
+ void Render(TextureAtlas& atlas, Shader& shader, Transformation tran, float elapsedTime);
+ bool LoadTexture(Texture& texture, const std::string& filename, bool useMipmaps, bool stopOnError);
+
+ void SetPosition(Vector3f pos) { m_position = pos; }
private:
netprot::Output current, previous;
+ std::map m_outbuf;
netprot::PlayerInfo m_pinfo;
float m_aminacc;
Anim m_animstate;
uint64_t m_team_id;
+ Texture m_texture_front;
+
+
+
};
#endif
\ No newline at end of file
diff --git a/SQCSim2021/renderer.cpp b/SQCSim2021/renderer.cpp
index b4c8f91..3e5fc97 100644
--- a/SQCSim2021/renderer.cpp
+++ b/SQCSim2021/renderer.cpp
@@ -1,4 +1,9 @@
#include "renderer.h"
+#include
+#include
+
+#include
+#include
Renderer::Renderer() {
m_meshes.Reset(nullptr);
@@ -7,7 +12,33 @@ Renderer::Renderer() {
Renderer::~Renderer() {
}
-void Renderer::RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation& world, Shader& shader, TextureAtlas& atlas) const {
+void Renderer::RemoveChunk(int nbReduit)
+{
+ for (int x = 0; x < WORLD_SIZE_X; ++x)
+ for (int y = 0; y < WORLD_SIZE_Y; ++y)
+ {
+ Mesh* chk = nullptr;
+ if (x < nbReduit)
+ chk = m_meshes.Remove(x, y);
+ if (y < nbReduit)
+ chk = m_meshes.Remove(x, y);
+ if (y > WORLD_SIZE_Y - nbReduit)
+ chk = m_meshes.Remove(x, y);
+ if (x > WORLD_SIZE_X - nbReduit)
+ chk = m_meshes.Remove(x, y);
+
+ // TODO: MakeDirty() les voisins pour qu'ils se redessinent.
+
+ if (!chk)
+ continue;
+
+ delete chk;
+ }
+
+
+}
+
+void Renderer::RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation world, Shader& shader, TextureAtlas& atlas) const {
rendercount = 0;
Vector3f angle;
Vector3f cursor;
@@ -105,7 +136,8 @@ void Renderer::RenderWorld(World* origin, int& rendercount, const Vector3f& play
}
shader.Disable();
glStencilFunc(GL_GREATER, 1, 0xFF);
-};
+}
+
void Renderer::UpdateMesh(World* origin, const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST]) {
int cx = player.x;
@@ -212,6 +244,30 @@ void Renderer::UpdateMesh(World* origin, const Vector3f& player, BlockInfo* bloc
}
}
+void Renderer::RenderBillboard(const Vector3f pos, TextureAtlas textureAtlas, TextureAtlas::TextureIndex idx, Shader& shader, Transformation tran)
+{
+ //float x = pos.x;
+ //float y = pos.y;
+ //float z = pos.z;
+ //float width = 1.0f;
+ //float height = 1.0f;
+
+ //float u, v, w, h;
+ //shader.Use();
+ //textureAtlas.Bind();
+ //textureAtlas.TextureIndexToCoord(idx, u, v, w, h);
+
+ //glLoadMatrixf(tran.GetMatrix().GetInternalValues());
+ //glBegin(GL_QUADS);
+ //glTexCoord2f(u, v); glVertex3f(x - width / 2., y - height, z); //glVertex3f(v4.x, v4.y, v4.z);//glVertex3f(0, 50, 0);
+ //glTexCoord2f(u + w, v); glVertex3f(x + width / 2., y - height, z); //glVertex3f(v3.x, v3.y, v3.z); //glVertex3f(50,50, 0);
+ //glTexCoord2f(u + w, v + h); glVertex3f(x + width / 2., y, z); //glVertex3f(v2.x, v2.y, v2.z); //glVertex3f(50, 0, 0);
+ //glTexCoord2f(u, v + h); glVertex3f(x - width / 2., y, z); //glVertex3f(v1.x, v1.y, v1.z);// glVertex3f(0, 0, 0);
+ //glEnd();
+ //shader.Disable();
+}
+
+
void Renderer::RenderPlayer(Player* player, Transformation tran) const {
}
diff --git a/SQCSim2021/renderer.h b/SQCSim2021/renderer.h
index 8afdc3b..5a13709 100644
--- a/SQCSim2021/renderer.h
+++ b/SQCSim2021/renderer.h
@@ -9,6 +9,9 @@
#include "textureatlas.h"
#include "shader.h"
#include "remoteplayer.h"
+#include "openglcontext.h"
+#include "vertexbuffer.h"
+#include "../SQCSim-common/matrix4.h"
class Renderer {
private:
@@ -16,14 +19,19 @@ private:
TextureAtlas* m_playertext = nullptr;
Shader* m_playershader = nullptr;
+ bool test = true;
public:
Renderer();
~Renderer();
+ void RemoveChunk(int nbReduit);
+
void UpdateMesh(World* origin, const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST]);
- void RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation& world, Shader& shader, TextureAtlas& atlas) const;
+ void RenderBillboard(const Vector3f pos, TextureAtlas textureAtlas, TextureAtlas::TextureIndex idx, Shader& shader, Transformation tran);
+
+ void RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation world, Shader& shader, TextureAtlas& atlas) const;
void RenderPlayer(Player* player, Transformation tran) const;
void RenderPlayer(RemotePlayer* rplayer, const Vector3f& player_pos, const Vector3f& player_dir) const;
};
diff --git a/SQCSim2021/textureatlas.cpp b/SQCSim2021/textureatlas.cpp
index d293c84..ccefd2c 100644
--- a/SQCSim2021/textureatlas.cpp
+++ b/SQCSim2021/textureatlas.cpp
@@ -40,6 +40,9 @@ TextureAtlas::TextureIndex TextureAtlas::AddTexture(const std::string& fname) {
}
bool TextureAtlas::Generate(int textureSize, bool mipmap) {
+
+
+
// TODO mipmap pas encore 100% parfait...
assert(!mipmap);
@@ -66,6 +69,8 @@ bool TextureAtlas::Generate(int textureSize, bool mipmap) {
ilOriginFunc(IL_ORIGIN_LOWER_LEFT);
ilEnable(IL_ORIGIN_SET);
+ ilEnable(IL_ALPHA);
+ ilEnable(IL_BLIT_BLEND);
if (!ilLoadImage((const ILstring)it->first.c_str()))
return false;
@@ -170,8 +175,10 @@ bool TextureAtlas::Generate(int textureSize, bool mipmap) {
mipmapSize /= 2;
}
+
m_isValid = true;
return true;
+
}