almoos dere

This commit is contained in:
MarcEricMartel
2023-12-18 13:29:38 -05:00
parent 68d03c1eac
commit f1bb7447f9
14 changed files with 125 additions and 68 deletions

View File

@@ -619,8 +619,8 @@ bool Engine::StartMultiplayerGame() {
for (auto& [key, player] : m_conn.m_players)
m_players[key] = new RemotePlayer(&player);
//m_world.SetSeed(m_conn.getSeed());
m_world.SetSeed(9370707);
m_world.SetSeed(m_conn.getSeed());
//m_world.SetSeed(9370707);
m_networkgame = true;
m_player.m_username = m_username;
}
@@ -684,11 +684,6 @@ void Engine::DisplayInfo(float elapsedTime, BlockType bloc) {
ss.str("");
fPosY -= charSize;
//ss << " Block : ";
//if (bloc == BTYPE_LAST)
// ss << "Weapon";
//else
// ss << (int)bloc;
PrintText(fPosX, fPosYJump, ss.str());
}
@@ -1307,8 +1302,6 @@ void Engine::Render(float elapsedTime) {
}
if (m_gamestate == GameState::PAUSE) {
booster_table[0] = Booster({ 215, 15, 195 }, BTYPE_SPEED);
booster_table[1] = Booster({ 213, 15, 195 }, BTYPE_HEAL);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
@@ -1350,7 +1343,7 @@ void Engine::Render(float elapsedTime) {
static bool leftright = false;
if (pollTime >= .005f) {
Player::Sound snd = m_player.ApplyPhysics(m_player.GetInput(m_keyW, m_keyS, m_keyA, m_keyD, m_keySpace, (bloc == BTYPE_LAST && bulletTime <= 0.f && m_mouseL), elapsedTime), &m_world, elapsedTime, booster_table);
Player::Sound snd = m_player.ApplyPhysics(m_player.GetInput(m_keyW, m_keyS, m_keyA, m_keyD, m_keySpace, (bloc == BTYPE_LAST && bulletTime <= 0.f && m_mouseL), elapsedTime), &m_world, elapsedTime, m_boosters);
switch (snd) {
case Player::Sound::STEP:
if (leftright)
@@ -1413,35 +1406,16 @@ void Engine::Render(float elapsedTime) {
m_chunkmod = nullptr;
}
m_bullets[x] = nullptr;
/*if (m_whoosh[x]){
m_whoosh[x]->drop();
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, m_sfxvolume);
}*/
}
}
}
m_world.Update(m_bullets, m_player.GetPosition(), m_blockinfo);
m_renderer.UpdateMesh(&m_world, m_player.GetPosition(), m_blockinfo);
glDisable(GL_CULL_FACE);
for (Booster booster : booster_table) {
m_renderer.RenderBooster(m_textureAtlas, m_shader01, all, m_player, booster);
}
glEnable(GL_CULL_FACE);
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);
glEnable(GL_BLEND);
@@ -1460,10 +1434,6 @@ void Engine::Render(float elapsedTime) {
m_player.m_username = user;
m_player.InflictDamage(-m_player.GetHP());
}
/*if (m_player.GetPosition().y < -21.f || died) {
died = false;
}*/
m_time += elapsedTime;
@@ -1539,8 +1509,28 @@ void Engine::Render(float elapsedTime) {
using enum PACKET_TYPE;
case PICKUPMOD:
if (Deserialize(&pmod, pck, &bsize)) {
// TODO pikoppe
if (m_boosters.count(pmod.id)) {
Booster* boost = m_boosters.at(pmod.id);
boost->SetAvailability(pmod.available);
}
else {
BOOST_TYPE btype;
if (pmod.boost.damage)
btype = BOOST_TYPE::BTYPE_DAMAGE;
else if (pmod.boost.hp)
btype = BOOST_TYPE::BTYPE_HEAL;
else if (pmod.boost.invincible)
btype = BOOST_TYPE::BTYPE_INVINCIBLE;
Booster* boost = new Booster(pmod.pos, btype, pmod.id);
boost->SetAvailability(pmod.available);
m_boosters[pmod.id] = boost;
}
}
break;
case SYNC:
if (Deserialize(&sync, pck, &bsize)) {
if (sync.sid != m_conn.getId()) {
@@ -1639,6 +1629,10 @@ void Engine::Render(float elapsedTime) {
glClear(GL_STENCIL_BUFFER_BIT);
rt->Render(m_animeAtlas, m_shader01, all, elapsedTime, m_player);
}
for (auto& [key, booster] : m_boosters) {
if (booster->GetAvailability())
m_renderer.RenderBooster(m_textureAtlas, m_shader01, all, m_player, *booster);
}
glEnable(GL_CULL_FACE);
}
else {

View File

@@ -107,7 +107,6 @@ private:
Renderer m_renderer = Renderer();
Booster booster_table[NB_BOOST];
BlockInfo* m_blockinfo[BTYPE_LAST];
BoostInfo* m_boostinfo[BTYPE_BOOST_LAST];
GameState m_gamestate = GameState::SPLASH;
@@ -259,7 +258,7 @@ private:
std::set<uint64_t> m_deadplayers;
netprot::Buffer m_buf, m_bufout;
netprot::ChunkMod* m_chunkmod = nullptr;
std::map<uint64_t, Booster*> m_boosters;
std::unordered_map<uint64_t, Booster*> m_boosters;
std::unordered_map<uint64_t, netprot::Sync> m_syncs;
std::string m_messageNotification = "";