Reenable skidmark, although their color is wrong
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include "karts/abstract_kart.hpp"
|
||||
#include "karts/skidding.hpp"
|
||||
#include "physics/btKart.hpp"
|
||||
#include "graphics/stkmeshscenenode.hpp"
|
||||
|
||||
#include <IMeshSceneNode.h>
|
||||
#include <SMesh.h>
|
||||
@@ -188,6 +189,8 @@ void SkidMarks::update(float dt, bool force_skid_marks,
|
||||
m_material, m_avoid_z_fighting, custom_color);
|
||||
new_mesh->addMeshBuffer(smq_right);
|
||||
scene::IMeshSceneNode *new_node = irr_driver->addMesh(new_mesh);
|
||||
if (STKMeshSceneNode* stkm = dynamic_cast<STKMeshSceneNode*>(new_node))
|
||||
stkm->setReloadEachFrame();
|
||||
#ifdef DEBUG
|
||||
std::string debug_name = m_kart.getIdent()+" (skid-mark)";
|
||||
new_node->setName(debug_name.c_str());
|
||||
|
||||
@@ -32,9 +32,15 @@ STKMeshSceneNode::STKMeshSceneNode(irr::scene::IMesh* mesh, ISceneNode* parent,
|
||||
const irr::core::vector3df& scale) :
|
||||
CMeshSceneNode(mesh, parent, mgr, id, position, rotation, scale)
|
||||
{
|
||||
reload_each_frame = false;
|
||||
createGLMeshes();
|
||||
}
|
||||
|
||||
void STKMeshSceneNode::setReloadEachFrame()
|
||||
{
|
||||
reload_each_frame = true;
|
||||
}
|
||||
|
||||
void STKMeshSceneNode::createGLMeshes()
|
||||
{
|
||||
for (u32 i = 0; i<Mesh->getMeshBufferCount(); ++i)
|
||||
@@ -277,6 +283,9 @@ void STKMeshSceneNode::render()
|
||||
if (!Mesh || !driver)
|
||||
return;
|
||||
|
||||
if (reload_each_frame)
|
||||
setMesh(Mesh);
|
||||
|
||||
bool isTransparentPass =
|
||||
SceneManager->getSceneNodeRenderPass() == scene::ESNRP_TRANSPARENT;
|
||||
|
||||
|
||||
@@ -24,14 +24,15 @@ protected:
|
||||
void cleanGLMeshes();
|
||||
void setFirstTimeMaterial();
|
||||
bool isMaterialInitialized;
|
||||
bool reload_each_frame;
|
||||
public:
|
||||
void setReloadEachFrame();
|
||||
STKMeshSceneNode(irr::scene::IMesh* mesh, ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),
|
||||
const irr::core::vector3df& scale = irr::core::vector3df(1.0f, 1.0f, 1.0f));
|
||||
virtual void render();
|
||||
virtual void setMesh(irr::scene::IMesh* mesh);
|
||||
void MovingTexture(unsigned, unsigned);
|
||||
~STKMeshSceneNode();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user