Use win / lose animation in grand prix result screen
This commit is contained in:
parent
511c8e316b
commit
d24796aa6f
@ -23,6 +23,7 @@
|
|||||||
#include "challenges/unlock_manager.hpp"
|
#include "challenges/unlock_manager.hpp"
|
||||||
#include "config/player_manager.hpp"
|
#include "config/player_manager.hpp"
|
||||||
#include "graphics/irr_driver.hpp"
|
#include "graphics/irr_driver.hpp"
|
||||||
|
#include "graphics/lod_node.hpp"
|
||||||
#include "graphics/render_info.hpp"
|
#include "graphics/render_info.hpp"
|
||||||
#include "guiengine/engine.hpp"
|
#include "guiengine/engine.hpp"
|
||||||
#include "guiengine/scalable_font.hpp"
|
#include "guiengine/scalable_font.hpp"
|
||||||
@ -185,7 +186,26 @@ void GrandPrixLose::setKarts(std::vector<std::string> ident_arg)
|
|||||||
{
|
{
|
||||||
KartModel* kart_model = kart->getKartModelCopy(KRT_DEFAULT);
|
KartModel* kart_model = kart->getKartModelCopy(KRT_DEFAULT);
|
||||||
m_all_kart_models.push_back(kart_model);
|
m_all_kart_models.push_back(kart_model);
|
||||||
scene::ISceneNode* kart_main_node = kart_model->attachModel(false, false);
|
scene::ISceneNode* kart_main_node = kart_model->attachModel(true, false);
|
||||||
|
LODNode* lnode = dynamic_cast<LODNode*>(kart_main_node);
|
||||||
|
if (lnode)
|
||||||
|
{
|
||||||
|
// Lod node has to be animated
|
||||||
|
auto* a_node = static_cast<scene::IAnimatedMeshSceneNode*>
|
||||||
|
(lnode->getAllNodes()[0]);
|
||||||
|
const unsigned start_frame =
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_LOOP_START) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_LOOP_START) :
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_START) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_START) :
|
||||||
|
kart_model->getFrame(KartModel::AF_STRAIGHT);
|
||||||
|
const unsigned end_frame =
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_END) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_LOSE_END) :
|
||||||
|
kart_model->getFrame(KartModel::AF_STRAIGHT);
|
||||||
|
a_node->setLoopMode(true);
|
||||||
|
a_node->setFrameLoop(start_frame, end_frame);
|
||||||
|
}
|
||||||
|
|
||||||
core::vector3df kart_pos(m_kart_x + n*DISTANCE_BETWEEN_KARTS,
|
core::vector3df kart_pos(m_kart_x + n*DISTANCE_BETWEEN_KARTS,
|
||||||
m_kart_y,
|
m_kart_y,
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "challenges/unlock_manager.hpp"
|
#include "challenges/unlock_manager.hpp"
|
||||||
#include "config/player_manager.hpp"
|
#include "config/player_manager.hpp"
|
||||||
#include "graphics/irr_driver.hpp"
|
#include "graphics/irr_driver.hpp"
|
||||||
|
#include "graphics/lod_node.hpp"
|
||||||
#include "graphics/render_info.hpp"
|
#include "graphics/render_info.hpp"
|
||||||
#include "guiengine/engine.hpp"
|
#include "guiengine/engine.hpp"
|
||||||
#include "guiengine/scalable_font.hpp"
|
#include "guiengine/scalable_font.hpp"
|
||||||
@ -346,7 +347,26 @@ void GrandPrixWin::setKarts(const std::string idents_arg[3])
|
|||||||
|
|
||||||
KartModel* kart_model = kp->getKartModelCopy(KRT_DEFAULT);
|
KartModel* kart_model = kp->getKartModelCopy(KRT_DEFAULT);
|
||||||
m_all_kart_models.push_back(kart_model);
|
m_all_kart_models.push_back(kart_model);
|
||||||
scene::ISceneNode* kart_main_node = kart_model->attachModel(false, false);
|
scene::ISceneNode* kart_main_node = kart_model->attachModel(true, false);
|
||||||
|
LODNode* lnode = dynamic_cast<LODNode*>(kart_main_node);
|
||||||
|
if (lnode)
|
||||||
|
{
|
||||||
|
// Lod node has to be animated
|
||||||
|
auto* a_node = static_cast<scene::IAnimatedMeshSceneNode*>
|
||||||
|
(lnode->getAllNodes()[0]);
|
||||||
|
const unsigned start_frame =
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_LOOP_START) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_LOOP_START) :
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_START) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_START) :
|
||||||
|
kart_model->getFrame(KartModel::AF_STRAIGHT);
|
||||||
|
const unsigned end_frame =
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_END) > -1 ?
|
||||||
|
kart_model->getFrame(KartModel::AF_WIN_END) :
|
||||||
|
kart_model->getFrame(KartModel::AF_STRAIGHT);
|
||||||
|
a_node->setLoopMode(true);
|
||||||
|
a_node->setFrameLoop(start_frame, end_frame);
|
||||||
|
}
|
||||||
|
|
||||||
m_kart_x[i] = KARTS_INITIAL_X[i];
|
m_kart_x[i] = KARTS_INITIAL_X[i];
|
||||||
m_kart_y[i] = KARTS_INITIAL_Y[i];
|
m_kart_y[i] = KARTS_INITIAL_Y[i];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user