From 74b808f46ba3fc14d05d2d99e29d327acad7e2f7 Mon Sep 17 00:00:00 2001 From: MarcEricMartel Date: Thu, 7 Dec 2023 12:32:36 -0500 Subject: [PATCH] Jump and Shoot! :notes: --- SQCSim-common/player.cpp | 6 ++---- SQCSim-common/player.h | 1 + SQCSim-srv/connection.cpp | 4 ++-- SQCSim2021/engine.cpp | 5 ++++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/SQCSim-common/player.cpp b/SQCSim-common/player.cpp index 3d4f56d..85df138 100644 --- a/SQCSim-common/player.cpp +++ b/SQCSim-common/player.cpp @@ -276,11 +276,9 @@ void Player::Teleport(int& x, int& z) { m_position.x -= x * CHUNK_SIZE_X; m_position.z -= z * CHUNK_SIZE_Z; } -bool Player::AmIDead() -{ - return m_hp <= 0; -} +bool Player::GetIsAirborne() const { return m_airborne; } +bool Player::AmIDead() { return m_hp <= 0; } void Player::InflictDamage(float hitPoints) { m_hp -= hitPoints; diff --git a/SQCSim-common/player.h b/SQCSim-common/player.h index b3d715e..6117605 100644 --- a/SQCSim-common/player.h +++ b/SQCSim-common/player.h @@ -35,6 +35,7 @@ public: float GetHP() const; void Teleport(int& x, int& z); + bool GetIsAirborne() const; bool AmIDead(); void InflictDamage(float hitPoints); int getScore() const; diff --git a/SQCSim-srv/connection.cpp b/SQCSim-srv/connection.cpp index 13ada7d..c7b1cb1 100644 --- a/SQCSim-srv/connection.cpp +++ b/SQCSim-srv/connection.cpp @@ -144,8 +144,8 @@ Timestamp Connection::Run(World* world) { player->Killer = GetHash(true); } - out.states.jumping = abs(player->GetVelocity().y) > .2f; - out.states.running = player->GetVelocity().Length() > .3f; + out.states.jumping = player->GetIsAirborne(); //abs(player->GetVelocity().y) > .2f; + out.states.running = player->GetVelocity().Length() > .5f; out.states.still = !out.states.running; out.states.hit = player->m_hit; player->m_hit = false; diff --git a/SQCSim2021/engine.cpp b/SQCSim2021/engine.cpp index ff183ea..88472a1 100644 --- a/SQCSim2021/engine.cpp +++ b/SQCSim2021/engine.cpp @@ -1319,7 +1319,7 @@ void Engine::Render(float elapsedTime) { m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), false, 1.f); died = true; } - if (m_player.GetPosition().y < -15.f || died) { + if (m_player.GetPosition().y < -21.f || died) { died = false; std::string user = m_player.m_username.append(" (Dead)"); m_player = Player(Vector3f(.5, CHUNK_SIZE_Y + 1.7f, .5), 0, 0); @@ -1432,6 +1432,9 @@ void Engine::Render(float elapsedTime) { } RemotePlayer* rt = static_cast(m_players[out.id]); rt->Feed(out); + if (rt->AmIDead()) { + m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), false, 1.f); + } } break; case CHUNKMOD: