Moved the glowing data from stk_config.xml to items.xml.
Unfortunately I can't test (since the shaders don't work for me). git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14683 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
375b1a1f06
commit
09dc33d07e
@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<items>
|
<items>
|
||||||
<bonus-box model="gift-box.b3d" lowmodel="gift-box-low.b3d" />
|
<bonus-box model="gift-box.b3d" lowmodel="gift-box-low.b3d" glow="0.12 0.79 0.99"/>
|
||||||
<banana model="banana.b3d" lowmodel="banana-low.b3d" />
|
<banana model="banana.b3d" lowmodel="banana-low.b3d" glow="0.77 0.60 0.15"/>
|
||||||
<nitro-big model="nitrotank-big.b3d" lowmodel="nitrotank-big-low.b3d" />
|
<nitro-big model="nitrotank-big.b3d" lowmodel="nitrotank-big-low.b3d" glow="0.00 0.27 0.62"/>
|
||||||
<nitro-small model="nitrotank-small.b3d" lowmodel="nitrotank-small-low.b3d" />
|
<nitro-small model="nitrotank-small.b3d" lowmodel="nitrotank-small-low.b3d" glow="0.00 0.27 0.62"/>
|
||||||
<!-- While a bubble gum technically
|
<!-- While a bubble gum technically
|
||||||
isn't an item, it is internally
|
isn't an item, it is internally
|
||||||
handled as one, so list it here -->
|
handled as one, so list it here -->
|
||||||
<bubblegum model="bubblegum.b3d" lowmodel="bubblegum-low.b3d" />
|
<bubblegum model="bubblegum.b3d" lowmodel="bubblegum-low.b3d" glow="0.96 0.59 0.82"/>
|
||||||
<bubblegum-nolok model="bubblegum-nolok.b3d" lowmodel="bubblegum-nolok-low.b3d"/>
|
<bubblegum-nolok model="bubblegum-nolok.b3d" lowmodel="bubblegum-nolok-low.b3d"/>
|
||||||
<!-- <easter-egg model="easter_egg.b3d" /> -->
|
<!-- <easter-egg model="easter_egg.b3d" /> -->
|
||||||
<easter-egg model="easter_egg.b3d" />
|
<easter-egg model="easter_egg.b3d" />
|
||||||
|
@ -135,9 +135,6 @@
|
|||||||
<steer disable-while-unskid="false"
|
<steer disable-while-unskid="false"
|
||||||
camera-follow-skid="true" />
|
camera-follow-skid="true" />
|
||||||
|
|
||||||
<!-- Glow colors for the items -->
|
|
||||||
<glow-colors nitro="0 70 158" box="31 202 253" banana="197 152 37" bubblegum="246 150 209"/>
|
|
||||||
|
|
||||||
<!-- Default values for all karts
|
<!-- Default values for all karts
|
||||||
============================ -->
|
============================ -->
|
||||||
<general-kart-defaults>
|
<general-kart-defaults>
|
||||||
|
@ -181,19 +181,6 @@ void STKConfig::init_defaults()
|
|||||||
m_disable_steer_while_unskid = false;
|
m_disable_steer_while_unskid = false;
|
||||||
m_camera_follow_skid = false;
|
m_camera_follow_skid = false;
|
||||||
|
|
||||||
m_nitro_glow_color[0] = 1.0f;
|
|
||||||
m_nitro_glow_color[1] = 1.0f;
|
|
||||||
m_nitro_glow_color[2] = 1.0f;
|
|
||||||
m_box_glow_color[0] = 1.0f;
|
|
||||||
m_box_glow_color[1] = 1.0f;
|
|
||||||
m_box_glow_color[2] = 1.0f;
|
|
||||||
m_banana_glow_color[0] = 1.0f;
|
|
||||||
m_banana_glow_color[1] = 1.0f;
|
|
||||||
m_banana_glow_color[2] = 1.0f;
|
|
||||||
m_bubblegum_glow_color[0] = 1.0f;
|
|
||||||
m_bubblegum_glow_color[1] = 1.0f;
|
|
||||||
m_bubblegum_glow_color[2] = 1.0f;
|
|
||||||
|
|
||||||
m_score_increase.clear();
|
m_score_increase.clear();
|
||||||
m_leader_intervals.clear();
|
m_leader_intervals.clear();
|
||||||
m_switch_items.clear();
|
m_switch_items.clear();
|
||||||
@ -376,38 +363,6 @@ void STKConfig::getAllData(const XMLNode * root)
|
|||||||
replay_node->get("delta-t", &m_replay_dt );
|
replay_node->get("delta-t", &m_replay_dt );
|
||||||
}
|
}
|
||||||
|
|
||||||
if(const XMLNode *colors = root->getNode("glow-colors"))
|
|
||||||
{
|
|
||||||
video::SColor tmpcol;
|
|
||||||
if (colors->get("nitro", &tmpcol))
|
|
||||||
{
|
|
||||||
m_nitro_glow_color[0] = tmpcol.getRed() / 255.0f;
|
|
||||||
m_nitro_glow_color[1] = tmpcol.getGreen() / 255.0f;
|
|
||||||
m_nitro_glow_color[2] = tmpcol.getBlue() / 255.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (colors->get("box", &tmpcol))
|
|
||||||
{
|
|
||||||
m_box_glow_color[0] = tmpcol.getRed() / 255.0f;
|
|
||||||
m_box_glow_color[1] = tmpcol.getGreen() / 255.0f;
|
|
||||||
m_box_glow_color[2] = tmpcol.getBlue() / 255.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (colors->get("banana", &tmpcol))
|
|
||||||
{
|
|
||||||
m_banana_glow_color[0] = tmpcol.getRed() / 255.0f;
|
|
||||||
m_banana_glow_color[1] = tmpcol.getGreen() / 255.0f;
|
|
||||||
m_banana_glow_color[2] = tmpcol.getBlue() / 255.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (colors->get("bubblegum", &tmpcol))
|
|
||||||
{
|
|
||||||
m_bubblegum_glow_color[0] = tmpcol.getRed() / 255.0f;
|
|
||||||
m_bubblegum_glow_color[1] = tmpcol.getGreen() / 255.0f;
|
|
||||||
m_bubblegum_glow_color[2] = tmpcol.getBlue() / 255.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the default KartProperties
|
// Get the default KartProperties
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
const XMLNode *node = root -> getNode("general-kart-defaults");
|
const XMLNode *node = root -> getNode("general-kart-defaults");
|
||||||
|
@ -148,12 +148,6 @@ public:
|
|||||||
* be generated. */
|
* be generated. */
|
||||||
float m_replay_delta_angle;
|
float m_replay_delta_angle;
|
||||||
|
|
||||||
/** Colors for glows */
|
|
||||||
float m_nitro_glow_color[3];
|
|
||||||
float m_box_glow_color[3];
|
|
||||||
float m_banana_glow_color[3];
|
|
||||||
float m_bubblegum_glow_color[3];
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/** True if stk_config has been loaded. This is necessary if the
|
/** True if stk_config has been loaded. This is necessary if the
|
||||||
* --stk-config command line parameter has been specified to avoid
|
* --stk-config command line parameter has been specified to avoid
|
||||||
|
@ -115,34 +115,10 @@ void IrrDriver::renderGLSL(float dt)
|
|||||||
dat.g = 1.0f;
|
dat.g = 1.0f;
|
||||||
dat.b = 1.0f;
|
dat.b = 1.0f;
|
||||||
|
|
||||||
// Item colors
|
const video::SColorf &c = ItemManager::getGlowColor(type);
|
||||||
switch (type)
|
dat.r = c.getRed();
|
||||||
{
|
dat.g = c.getGreen();
|
||||||
case Item::ITEM_NITRO_BIG:
|
dat.b = c.getBlue();
|
||||||
case Item::ITEM_NITRO_SMALL:
|
|
||||||
dat.r = stk_config->m_nitro_glow_color[0];
|
|
||||||
dat.g = stk_config->m_nitro_glow_color[1];
|
|
||||||
dat.b = stk_config->m_nitro_glow_color[2];
|
|
||||||
break;
|
|
||||||
case Item::ITEM_BONUS_BOX:
|
|
||||||
dat.r = stk_config->m_box_glow_color[0];
|
|
||||||
dat.g = stk_config->m_box_glow_color[1];
|
|
||||||
dat.b = stk_config->m_box_glow_color[2];
|
|
||||||
break;
|
|
||||||
case Item::ITEM_BANANA:
|
|
||||||
dat.r = stk_config->m_banana_glow_color[0];
|
|
||||||
dat.g = stk_config->m_banana_glow_color[1];
|
|
||||||
dat.b = stk_config->m_banana_glow_color[2];
|
|
||||||
break;
|
|
||||||
case Item::ITEM_BUBBLEGUM:
|
|
||||||
dat.r = stk_config->m_bubblegum_glow_color[0];
|
|
||||||
dat.g = stk_config->m_bubblegum_glow_color[1];
|
|
||||||
dat.b = stk_config->m_bubblegum_glow_color[2];
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
Log::fatal("render", "Unknown item type got through");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
glows.push_back(dat);
|
glows.push_back(dat);
|
||||||
|
|
||||||
|
@ -279,11 +279,22 @@ int XMLNode::get(const std::string &attribute, video::SColorf *color) const
|
|||||||
if(!get(attribute, &s)) return 0;
|
if(!get(attribute, &s)) return 0;
|
||||||
|
|
||||||
std::vector<std::string> v = StringUtils::split(s,' ');
|
std::vector<std::string> v = StringUtils::split(s,' ');
|
||||||
if(v.size()!=4) return 0;
|
if(v.size()==3)
|
||||||
|
{
|
||||||
|
color->set((float)atof(v[0].c_str()),
|
||||||
|
(float)atof(v[1].c_str()),
|
||||||
|
(float)atof(v[2].c_str()));
|
||||||
|
}
|
||||||
|
else if(v.size()==4)
|
||||||
|
{
|
||||||
color->set((float)atof(v[3].c_str()), // set takes ARGB, but we use RGBA
|
color->set((float)atof(v[3].c_str()), // set takes ARGB, but we use RGBA
|
||||||
(float)atof(v[0].c_str()),
|
(float)atof(v[0].c_str()),
|
||||||
(float)atof(v[1].c_str()),
|
(float)atof(v[1].c_str()),
|
||||||
(float)atof(v[2].c_str()));
|
(float)atof(v[2].c_str()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
} // get(SColor)
|
} // get(SColor)
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -40,8 +40,10 @@
|
|||||||
|
|
||||||
std::vector<scene::IMesh *> ItemManager::m_item_mesh;
|
std::vector<scene::IMesh *> ItemManager::m_item_mesh;
|
||||||
std::vector<scene::IMesh *> ItemManager::m_item_lowres_mesh;
|
std::vector<scene::IMesh *> ItemManager::m_item_lowres_mesh;
|
||||||
|
std::vector<video::SColorf> ItemManager::m_glow_color;
|
||||||
ItemManager * ItemManager::m_item_manager = NULL;
|
ItemManager * ItemManager::m_item_manager = NULL;
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/** Creates one instance of the item manager. */
|
/** Creates one instance of the item manager. */
|
||||||
void ItemManager::create()
|
void ItemManager::create()
|
||||||
@ -65,6 +67,9 @@ void ItemManager::destroy()
|
|||||||
void ItemManager::loadDefaultItemMeshes()
|
void ItemManager::loadDefaultItemMeshes()
|
||||||
{
|
{
|
||||||
m_item_mesh.resize(Item::ITEM_LAST-Item::ITEM_FIRST+1, NULL);
|
m_item_mesh.resize(Item::ITEM_LAST-Item::ITEM_FIRST+1, NULL);
|
||||||
|
m_glow_color.resize(Item::ITEM_LAST-Item::ITEM_FIRST+1,
|
||||||
|
video::SColorf(255.0f, 255.0f, 255.0f) );
|
||||||
|
|
||||||
m_item_lowres_mesh.resize(Item::ITEM_LAST-Item::ITEM_FIRST+1, NULL);
|
m_item_lowres_mesh.resize(Item::ITEM_LAST-Item::ITEM_FIRST+1, NULL);
|
||||||
|
|
||||||
// A temporary mapping of items to names used in the XML file:
|
// A temporary mapping of items to names used in the XML file:
|
||||||
@ -98,6 +103,7 @@ void ItemManager::loadDefaultItemMeshes()
|
|||||||
}
|
}
|
||||||
mesh->grab();
|
mesh->grab();
|
||||||
m_item_mesh[i] = mesh;
|
m_item_mesh[i] = mesh;
|
||||||
|
node->get("glow", &(m_glow_color[i]));
|
||||||
|
|
||||||
std::string lowres_model_filename;
|
std::string lowres_model_filename;
|
||||||
node->get("lowmodel", &lowres_model_filename);
|
node->get("lowmodel", &lowres_model_filename);
|
||||||
|
@ -19,15 +19,16 @@
|
|||||||
#ifndef HEADER_ITEMMANAGER_HPP
|
#ifndef HEADER_ITEMMANAGER_HPP
|
||||||
#define HEADER_ITEMMANAGER_HPP
|
#define HEADER_ITEMMANAGER_HPP
|
||||||
|
|
||||||
|
#include "items/item.hpp"
|
||||||
|
#include "utils/no_copy.hpp"
|
||||||
|
|
||||||
|
#include <SColor.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "items/item.hpp"
|
|
||||||
#include "utils/no_copy.hpp"
|
|
||||||
|
|
||||||
class Kart;
|
class Kart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,6 +41,9 @@ private:
|
|||||||
/** Stores all item models. */
|
/** Stores all item models. */
|
||||||
static std::vector<scene::IMesh *> m_item_mesh;
|
static std::vector<scene::IMesh *> m_item_mesh;
|
||||||
|
|
||||||
|
/** Stores the glow color for all items. */
|
||||||
|
static std::vector<video::SColorf> m_glow_color;
|
||||||
|
|
||||||
/** Stores all low-resolution item models. */
|
/** Stores all low-resolution item models. */
|
||||||
static std::vector<scene::IMesh *> m_item_lowres_mesh;
|
static std::vector<scene::IMesh *> m_item_lowres_mesh;
|
||||||
|
|
||||||
@ -54,7 +58,11 @@ public:
|
|||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
/** Returns the mesh for a certain item. */
|
/** Returns the mesh for a certain item. */
|
||||||
static scene::IMesh* getItemModel(Item::ItemType type)
|
static scene::IMesh* getItemModel(Item::ItemType type)
|
||||||
{return m_item_mesh[type];}
|
{ return m_item_mesh[type]; }
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
/** Returns the glow color for an item. */
|
||||||
|
static video::SColorf& getGlowColor(Item::ItemType type)
|
||||||
|
{ return m_glow_color[type]; }
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
/** Return an instance of the item manager (it does not automatically
|
/** Return an instance of the item manager (it does not automatically
|
||||||
* create one, call create for that). */
|
* create one, call create for that). */
|
||||||
|
Loading…
Reference in New Issue
Block a user