Added sound when time is less than 5 s in time based challenges (#4523)

This commit is contained in:
Kuba 2021-04-30 19:27:18 +02:00 committed by GitHub
parent 0d84350ab7
commit 6e83c825ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 2 deletions

View File

@ -942,6 +942,34 @@ void World::moveKartTo(AbstractKart* kart, const btTransform &transform)
} // moveKartTo
// ----------------------------------------------------------------------------
void World::updateTimeTargetSound()
{
if (RaceManager::get()->hasTimeTarget() && !RewindManager::get()->isRewinding())
{
float time_elapsed = getTime();
float time_target = RaceManager::get()->getTimeTarget();
if (RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_SOCCER ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
{
if (time_elapsed <= 5 && getTimeTicks() % stk_config->time2Ticks(1.0f) == 0 &&
!World::getWorld()->isRaceOver())
{
SFXManager::get()->quickSound("pre_start_race");
}
}
else
{
if (time_target - time_elapsed <= 5 && stk_config->time2Ticks(1.0f) == 0 &&
time_target - time_elapsed > 0)
{
SFXManager::get()->quickSound("pre_start_race");
}
}
}
} // updateTimeTargetSound
// ----------------------------------------------------------------------------
void World::schedulePause(Phase phase)
{
@ -1202,6 +1230,7 @@ void World::update(int ticks)
PROFILER_POP_CPU_MARKER();
PROFILER_POP_CPU_MARKER();
updateTimeTargetSound();
#ifdef DEBUG
assert(m_magic_number == 0xB01D6543);

View File

@ -326,6 +326,7 @@ public:
AbstractKart* getLocalPlayerKart(unsigned int n) const;
virtual const btTransform &getStartTransform(int index);
void moveKartTo(AbstractKart* kart, const btTransform &t);
void updateTimeTargetSound();
// ------------------------------------------------------------------------
/** Returns a pointer to the race gui. */
RaceGUIBase *getRaceGUI() const { return m_race_gui;}

View File

@ -428,7 +428,7 @@ void RaceGUI::drawGlobalTimer()
float elapsed_time = World::getWorld()->getTime();
if (!RaceManager::get()->hasTimeTarget() ||
RaceManager::get()->getMinorMode() ==RaceManager::MINOR_MODE_SOCCER ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_SOCCER ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG)
{
@ -440,6 +440,8 @@ void RaceGUI::drawGlobalTimer()
float time_target = RaceManager::get()->getTimeTarget();
if (elapsed_time < time_target)
{
if(time_target-elapsed_time <= 5)
time_color = video::SColor(255,255,255,0);
sw = core::stringw (
StringUtils::timeToString(time_target - elapsed_time).c_str());
}
@ -452,8 +454,14 @@ void RaceGUI::drawGlobalTimer()
time_color = video::SColor(255,255,0,0);
use_digit_font = false;
}
}
if(elapsed_time <= 5 && RaceManager::get()->hasTimeTarget() && (RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_SOCCER ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_FREE_FOR_ALL ||
RaceManager::get()->getMinorMode() == RaceManager::MINOR_MODE_CAPTURE_THE_FLAG))
{
time_color = video::SColor(255,255,255,0);
}
core::rect<s32> pos(irr_driver->getActualScreenSize().Width - dist_from_right,
irr_driver->getActualScreenSize().Height*2/100,
irr_driver->getActualScreenSize().Width,