summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being.cpp37
-rw-r--r--src/being.h2
-rw-r--r--src/gui/gui.cpp5
-rw-r--r--src/gui/listbox.cpp2
-rw-r--r--src/gui/shoplistbox.cpp2
-rw-r--r--src/gui/speechbubble.cpp5
-rw-r--r--src/gui/speechbubble.h4
-rw-r--r--src/gui/table.cpp2
-rw-r--r--src/gui/textbox.cpp5
-rw-r--r--src/gui/textbox.h15
-rw-r--r--src/gui/widgets/dropdown.cpp16
-rw-r--r--src/gui/widgets/textpreview.cpp2
-rw-r--r--src/localplayer.cpp19
-rw-r--r--src/monster.cpp7
-rw-r--r--src/npc.cpp6
-rw-r--r--src/particle.cpp17
-rw-r--r--src/particle.h14
-rw-r--r--src/player.cpp13
-rw-r--r--src/text.cpp6
-rw-r--r--src/text.h6
-rw-r--r--src/textparticle.cpp11
-rw-r--r--src/textparticle.h7
22 files changed, 102 insertions, 101 deletions
diff --git a/src/being.cpp b/src/being.cpp
index 60fb8d13..66273710 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -45,6 +45,7 @@
#include "resources/resourcemanager.h"
#include "gui/gui.h"
+#include "gui/palette.h"
#include "gui/speechbubble.h"
#include "utils/dtor.h"
@@ -101,7 +102,7 @@ Being::Being(int id, int job, Map *map):
mSpeechBubble = new SpeechBubble;
mSpeech = "";
- mNameColor = 0x202020;
+ mNameColor = &guiPalette->getColor(Palette::CHAT);
mText = 0;
}
@@ -202,17 +203,14 @@ void Being::takeDamage(Being *attacker, int amount, AttackType type)
gcn::Font *font;
std::string damage = amount ? toString(amount) : type == FLEE ?
"dodge" : "miss";
-
- int red, green, blue;
+ const gcn::Color* color;
font = gui->getInfoParticleFont();
// Selecting the right color
if (type == CRITICAL || type == FLEE)
{
- red = 255;
- green = 128;
- blue = 0;
+ color = &guiPalette->getColor(Palette::HIT_CRITICAL);
}
else if (!amount)
{
@@ -220,33 +218,25 @@ void Being::takeDamage(Being *attacker, int amount, AttackType type)
{
// This is intended to be the wrong direction to visually
// differentiate between hits and misses
- red = 0;
- green = 100;
- blue = 255;
+ color = &guiPalette->getColor(Palette::HIT_MONSTER_PLAYER);
}
else
{
- red = 255;
- green = 255;
- blue = 0;
- }
- }
+ color = &guiPalette->getColor(Palette::MISS);
+ }
+ }
else if (getType() == MONSTER)
{
- red = 0;
- green = 100;
- blue = 255;
+ color = &guiPalette->getColor(Palette::HIT_PLAYER_MONSTER);
}
else
{
- red = 255;
- green = 50;
- blue = 50;
+ color = &guiPalette->getColor(Palette::HIT_MONSTER_PLAYER);
}
// Show damage number
- particleEngine->addTextSplashEffect(damage, red, green, blue, font,
- mPx + 16, mPy + 16, true);
+ particleEngine->addTextSplashEffect(damage, mPx + 16, mPy + 16,
+ color, font, true);
if (amount > 0)
{
@@ -531,7 +521,8 @@ void Being::drawSpeech(int offsetX, int offsetY)
delete mText;
mText = new Text(mSpeech, mPx + X_SPEECH_OFFSET, mPy - Y_SPEECH_OFFSET,
- gcn::Graphics::CENTER, gcn::Color(255, 255, 255));
+ gcn::Graphics::CENTER,
+ &guiPalette->getColor(Palette::PARTICLE));
}
else if (speech == NO_SPEECH)
{
diff --git a/src/being.h b/src/being.h
index b9b57a0d..ec6f1c44 100644
--- a/src/being.h
+++ b/src/being.h
@@ -510,7 +510,7 @@ class Being : public Sprite
Uint16 mStunMode; /**< Stun mode; zero if not stunned */
std::set<int> mStatusEffects; /**< set of active status effects */
- gcn::Color mNameColor;
+ const gcn::Color* mNameColor;
std::vector<AnimatedSprite*> mSprites;
std::vector<int> mSpriteIDs;
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index e14642dd..4081eeac 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -46,11 +46,6 @@
Gui *gui = 0;
Viewport *viewport = 0; /**< Viewport on the map. */
SDLInput *guiInput = 0;
-/*
-// Fonts used in showing hits
-gcn::Font *hitRedFont = 0;
-gcn::Font *hitBlueFont = 0;
-gcn::Font *hitYellowFont = 0;*/
// Bolded font
gcn::Font *boldFont = 0;
diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp
index 23d43066..7ba84ee7 100644
--- a/src/gui/listbox.cpp
+++ b/src/gui/listbox.cpp
@@ -56,7 +56,7 @@ void ListBox::draw(gcn::Graphics *graphics)
getWidth(), fontHeight));
// Draw the list elements
- graphics->setColor(gcn::Color(0, 0, 0, 255));
+ graphics->setColor(guiPalette->getColor(Palette::TEXT));
for (int i = 0, y = 0; i < mListModel->getNumberOfElements();
++i, y += fontHeight)
{
diff --git a/src/gui/shoplistbox.cpp b/src/gui/shoplistbox.cpp
index 19c8a7b4..aa42c294 100644
--- a/src/gui/shoplistbox.cpp
+++ b/src/gui/shoplistbox.cpp
@@ -78,7 +78,7 @@ void ShopListBox::draw(gcn::Graphics *gcnGraphics)
{
gcn::Color temp;
const gcn::Color* backgroundColor =
- &guiPalette->getColor(Palette::BACKGROUND, alpha);
+ &guiPalette->getColor(Palette::BACKGROUND, alpha);
if (mShopItems &&
mPlayerMoney < mShopItems->at(i)->getPrice() && mPriceCheck)
diff --git a/src/gui/speechbubble.cpp b/src/gui/speechbubble.cpp
index 9ee91166..5f05971d 100644
--- a/src/gui/speechbubble.cpp
+++ b/src/gui/speechbubble.cpp
@@ -45,6 +45,7 @@ SpeechBubble::SpeechBubble():
mSpeechBox = new TextBox;
mSpeechBox->setEditable(false);
mSpeechBox->setOpaque(false);
+ mSpeechBox->setTextColor(&guiPalette->getColor(Palette::CHAT));
mSpeechArea = new ScrollArea(mSpeechBox);
@@ -60,11 +61,11 @@ SpeechBubble::SpeechBubble():
setLocationRelativeTo(getParent());
}
-void SpeechBubble::setCaption(const std::string &name, const gcn::Color &color)
+void SpeechBubble::setCaption(const std::string &name, const gcn::Color *color)
{
mCaption->setCaption(name);
mCaption->adjustSize();
- mCaption->setForegroundColor(color);
+ mCaption->setForegroundColor(*color);
}
void SpeechBubble::setText(std::string text, bool showName)
diff --git a/src/gui/speechbubble.h b/src/gui/speechbubble.h
index 573e61f0..34e00722 100644
--- a/src/gui/speechbubble.h
+++ b/src/gui/speechbubble.h
@@ -22,6 +22,7 @@
#ifndef SPEECHBUBBLE_H
#define SPEECHBUBBLE_H
+#include "palette.h"
#include "window.h"
class ScrollArea;
@@ -33,7 +34,8 @@ class SpeechBubble : public Window
SpeechBubble();
void setCaption(const std::string &name,
- const gcn::Color &color = 0x000000);
+ const gcn::Color *color =
+ &guiPalette->getColor(Palette::TEXT));
void setText(std::string text, bool showName = true);
void setLocation(int x, int y);
unsigned int getNumRows();
diff --git a/src/gui/table.cpp b/src/gui/table.cpp
index ece470b1..5fc96dbd 100644
--- a/src/gui/table.cpp
+++ b/src/gui/table.cpp
@@ -338,6 +338,8 @@ void GuiTable::draw(gcn::Graphics* graphics)
{
graphics->setColor(guiPalette->getColor(Palette::HIGHLIGHT,
(int)(mAlpha * 127.0f)));
+ graphics->fillRectangle(gcn::Rectangle(0, y_offset,
+ x_offset, height));
}
y_offset += height;
diff --git a/src/gui/textbox.cpp b/src/gui/textbox.cpp
index a4024de3..10f727e3 100644
--- a/src/gui/textbox.cpp
+++ b/src/gui/textbox.cpp
@@ -23,10 +23,11 @@
#include <guichan/font.hpp>
+#include "palette.h"
#include "textbox.h"
-TextBox::TextBox():
- gcn::TextBox()
+TextBox::TextBox() :
+ gcn::TextBox(), mTextColor(&guiPalette->getColor(Palette::TEXT))
{
setOpaque(false);
setFrameSize(0);
diff --git a/src/gui/textbox.h b/src/gui/textbox.h
index 10a81fc0..5884e11c 100644
--- a/src/gui/textbox.h
+++ b/src/gui/textbox.h
@@ -39,6 +39,11 @@ class TextBox : public gcn::TextBox
*/
TextBox();
+ inline void setTextColor(const gcn::Color* color)
+ {
+ mTextColor = color;
+ }
+
/**
* Sets the text after wrapping it to the current width of the widget.
*/
@@ -49,8 +54,18 @@ class TextBox : public gcn::TextBox
*/
int getMinWidth() { return mMinWidth; }
+ /**
+ * Draws the text.
+ */
+ inline void draw(gcn::Graphics *graphics)
+ {
+ setForegroundColor(*mTextColor);
+ gcn::TextBox::draw(graphics);
+ }
+
private:
int mMinWidth;
+ const gcn::Color* mTextColor;
};
#endif
diff --git a/src/gui/widgets/dropdown.cpp b/src/gui/widgets/dropdown.cpp
index 022da0f0..b736591c 100644
--- a/src/gui/widgets/dropdown.cpp
+++ b/src/gui/widgets/dropdown.cpp
@@ -139,24 +139,20 @@ void DropDown::draw(gcn::Graphics* graphics)
}
}
-// bool valid;
const int alpha = (int)(mAlpha * 255.0f);
gcn::Color faceColor = getBaseColor();
faceColor.a = alpha;
- gcn::Color highlightColor = guiPalette->getColor(Palette::HIGHLIGHT, alpha);
+ const gcn::Color* highlightColor = &guiPalette->getColor(Palette::HIGHLIGHT,
+ alpha);
gcn::Color shadowColor = faceColor - 0x303030;
shadowColor.a = alpha;
if (mOpaque)
{
- gcn::Color col = getBackgroundColor();
- col.a = alpha;
- graphics->setColor(col);
+ graphics->setColor(guiPalette->getColor(Palette::BACKGROUND, alpha));
graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), h));
- col = getForegroundColor();
- col.a = alpha;
- graphics->setColor(col);
+ graphics->setColor(guiPalette->getColor(Palette::TEXT, alpha));
}
graphics->setFont(getFont());
@@ -168,7 +164,7 @@ void DropDown::draw(gcn::Graphics* graphics)
if (isFocused())
{
- graphics->setColor(highlightColor);
+ graphics->setColor(*highlightColor);
graphics->drawRectangle(gcn::Rectangle(0, 0, getWidth() - h, h));
}
@@ -180,7 +176,7 @@ void DropDown::draw(gcn::Graphics* graphics)
// Draw two lines separating the ListBox with selected
// element view.
- graphics->setColor(highlightColor);
+ graphics->setColor(*highlightColor);
graphics->drawLine(0, h, getWidth(), h);
graphics->setColor(shadowColor);
graphics->drawLine(0, h + 1, getWidth(), h + 1);
diff --git a/src/gui/widgets/textpreview.cpp b/src/gui/widgets/textpreview.cpp
index 28d7fd35..4fcaa4a7 100644
--- a/src/gui/widgets/textpreview.cpp
+++ b/src/gui/widgets/textpreview.cpp
@@ -19,6 +19,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <typeinfo>
+
#include "textpreview.h"
#include "../gui.h"
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 296bc28c..30ff9c35 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -38,6 +38,7 @@
#include "gui/gui.h"
#include "gui/ministatus.h"
+#include "gui/palette.h"
#include "gui/storagewindow.h"
#include "net/messageout.h"
@@ -212,7 +213,9 @@ void LocalPlayer::logic()
void LocalPlayer::setGM()
{
mIsGM = !mIsGM;
- mNameColor = mIsGM ? 0x009000: 0x202020;
+ mNameColor = mIsGM ?
+ &guiPalette->getColor(Palette::GM) :
+ &guiPalette->getColor(Palette::PLAYER);
setName(getName());
config.setValue(getName() + "GMassert", mIsGM);
}
@@ -614,10 +617,9 @@ void LocalPlayer::setXp(int xp)
const std::string text = toString(xp - mXp) + " xp";
// Show XP number
- particleEngine->addTextRiseFadeOutEffect(text,
- gui->getInfoParticleFont(),
- mPx + 16, mPy - 16,
- 255, 255, 0, true);
+ particleEngine->addTextRiseFadeOutEffect(text, mPx + 16, mPy - 16,
+ &guiPalette->getColor(Palette::EXP_INFO),
+ gui->getInfoParticleFont(), true);
}
mXp = xp;
}
@@ -627,10 +629,9 @@ void LocalPlayer::pickedUp(std::string item)
if (mMap)
{
// Show pickup notification
- particleEngine->addTextRiseFadeOutEffect(item,
- gui->getInfoParticleFont (),
- mPx + 16, mPy - 16,
- 40, 220, 40, true);
+ particleEngine->addTextRiseFadeOutEffect(item, mPx + 16, mPy - 16,
+ &guiPalette->getColor(Palette::PICKUP_INFO),
+ gui->getInfoParticleFont (), true);
}
}
diff --git a/src/monster.cpp b/src/monster.cpp
index 89d0953d..7dc08238 100644
--- a/src/monster.cpp
+++ b/src/monster.cpp
@@ -27,6 +27,8 @@
#include "sound.h"
#include "text.h"
+#include "gui/palette.h"
+
#include "resources/monsterdb.h"
#include "resources/monsterinfo.h"
@@ -71,7 +73,7 @@ Monster::Monster(int id, Uint16 job, Map *map):
}
}
- mNameColor = 0xff2020;
+ mNameColor = &guiPalette->getColor(Palette::MONSTER);
}
Monster::~Monster()
@@ -195,7 +197,8 @@ void Monster::showName(bool show)
{
mText = new Text(getInfo().getName(), mPx + NAME_X_OFFSET,
mPy + NAME_Y_OFFSET - getHeight(),
- gcn::Graphics::CENTER, gcn::Color(255, 64, 64));
+ gcn::Graphics::CENTER,
+ &guiPalette->getColor(Palette::MONSTER));
}
else
{
diff --git a/src/npc.cpp b/src/npc.cpp
index 5a4f9507..630316e0 100644
--- a/src/npc.cpp
+++ b/src/npc.cpp
@@ -26,6 +26,7 @@
#include "text.h"
#include "gui/npc_text.h"
+#include "gui/palette.h"
#include "net/messageout.h"
#include "net/protocol.h"
@@ -71,7 +72,7 @@ NPC::NPC(int id, Uint16 job, Map *map, Network *network):
}
mName = 0;
- mNameColor = 0x21bbbb;
+ mNameColor = &guiPalette->getColor(Palette::NPC);
}
NPC::~NPC()
@@ -85,7 +86,8 @@ void NPC::setName(const std::string &name)
delete mName;
mName = new Text(displayName, mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET,
- gcn::Graphics::CENTER, gcn::Color(200, 200, 255));
+ gcn::Graphics::CENTER,
+ &guiPalette->getColor(Palette::NPC));
Being::setName(displayName + " (NPC)");
}
diff --git a/src/particle.cpp b/src/particle.cpp
index 6dc45a08..82c163c6 100644
--- a/src/particle.cpp
+++ b/src/particle.cpp
@@ -324,12 +324,10 @@ Particle *Particle::addEffect(const std::string &particleEffectFile,
return newParticle;
}
-Particle *Particle::addTextSplashEffect(const std::string &text,
- int colorR, int colorG, int colorB,
- gcn::Font *font, int x, int y, bool outline)
+Particle *Particle::addTextSplashEffect(const std::string &text, int x, int y,
+ const gcn::Color *color, gcn::Font *font, bool outline)
{
- Particle *newParticle = new TextParticle(mMap, text, colorR, colorG, colorB,
- font, outline);
+ Particle *newParticle = new TextParticle(mMap, text, color, font, outline);
newParticle->moveTo(x, y);
newParticle->setVelocity(((rand() % 100) - 50) / 200.0f, // X
((rand() % 100) - 50) / 200.0f, // Y
@@ -345,13 +343,8 @@ Particle *Particle::addTextSplashEffect(const std::string &text,
}
Particle *Particle::addTextRiseFadeOutEffect(const std::string &text,
- gcn::Font *font,
- int x, int y,
- int colorR, int colorG,
- int colorB, bool outline)
-{
- Particle *newParticle = new TextParticle(mMap, text, colorR, colorG, colorB,
- font, outline);
+ int x, int y, const gcn::Color *color, gcn::Font *font, bool outline){
+ Particle *newParticle = new TextParticle(mMap, text, color, font, outline);
newParticle->moveTo(x, y);
newParticle->setVelocity(0.0f, 0.0f, 0.5f);
newParticle->setGravity(0.0015f);
diff --git a/src/particle.h b/src/particle.h
index b4c80194..3584c4fc 100644
--- a/src/particle.h
+++ b/src/particle.h
@@ -105,19 +105,17 @@ class Particle : public Sprite
/**
* Creates a standalone text particle.
*/
- Particle *addTextSplashEffect(const std::string &text,
- int colorR, int colorG, int colorB,
- gcn::Font *font, int x, int y,
- bool outline = false);
+ Particle *addTextSplashEffect(const std::string &text, int x, int y,
+ const gcn::Color *color, gcn::Font *font,
+ bool outline = false);
/**
* Creates a standalone text particle.
*/
Particle *addTextRiseFadeOutEffect(const std::string &text,
- gcn::Font *font,
- int x, int y, int colorR = 255,
- int colorG = 255, int colorB = 255,
- bool outline = false);
+ int x, int y, const gcn::Color *color, gcn::Font *font,
+ bool outline = false);
+
/**
* Adds an emitter to the particle.
*/
diff --git a/src/player.cpp b/src/player.cpp
index e1928280..8668ac58 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -21,10 +21,13 @@
#include "animatedsprite.h"
#include "game.h"
+#include "localplayer.h"
#include "particle.h"
#include "player.h"
#include "text.h"
+#include "gui/palette.h"
+
#include "resources/colordb.h"
#include "resources/itemdb.h"
@@ -50,17 +53,19 @@ void Player::setName(const std::string &name)
{
if (mIsGM)
{
- mNameColor = 0x009000;
+ mNameColor = &guiPalette->getColor(Palette::GM);
mName = new FlashText("(GM) " + name, mPx + NAME_X_OFFSET, mPy +
NAME_Y_OFFSET, gcn::Graphics::CENTER,
- gcn::Color(0, 255, 0));
+ &guiPalette->getColor(Palette::GM));
}
else
{
- mNameColor = 0x202020;
+ mNameColor = &guiPalette->getColor(Palette::PLAYER);
mName = new FlashText(name, mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET,
gcn::Graphics::CENTER,
- gcn::Color(255, 255, 255));
+ (this == player_node) ?
+ &guiPalette->getColor(Palette::SELF) :
+ &guiPalette->getColor(Palette::PC));
}
Being::setName(name);
}
diff --git a/src/text.cpp b/src/text.cpp
index 5a912d17..b0be25bf 100644
--- a/src/text.cpp
+++ b/src/text.cpp
@@ -39,7 +39,7 @@ Image *Text::mBubbleArrow;
Text::Text(const std::string &text, int x, int y,
gcn::Graphics::Alignment alignment,
- gcn::Color color, bool isSpeech) :
+ const gcn::Color* color, bool isSpeech) :
mText(text),
mColor(color),
mIsSpeech(isSpeech)
@@ -133,12 +133,12 @@ void Text::draw(gcn::Graphics *graphics, int xOff, int yOff)
TextRenderer::renderText(graphics, mText,
mX - xOff, mY - yOff, gcn::Graphics::LEFT,
- &mColor, boldFont, !mIsSpeech, true);
+ mColor, boldFont, !mIsSpeech, true);
}
FlashText::FlashText(const std::string &text, int x, int y,
gcn::Graphics::Alignment alignment,
- gcn::Color color) :
+ const gcn::Color *color) :
Text(text, x, y, alignment, color),
mTime(0)
{
diff --git a/src/text.h b/src/text.h
index 6e121da7..a96096cc 100644
--- a/src/text.h
+++ b/src/text.h
@@ -40,7 +40,7 @@ class Text
*/
Text(const std::string &text, int x, int y,
gcn::Graphics::Alignment alignment,
- gcn::Color color, bool isSpeech = false);
+ const gcn::Color *color, bool isSpeech = false);
/**
* Destructor. The text is removed from the screen.
@@ -65,7 +65,7 @@ class Text
int mXOffset; /**< The offset of mX from the desired x. */
static int mInstances; /**< Instances of text. */
std::string mText; /**< The text to display. */
- gcn::Color mColor; /**< The color of the text. */
+ const gcn::Color *mColor; /**< The color of the text. */
bool mIsSpeech; /**< Is this text a speech bubble? */
protected:
@@ -78,7 +78,7 @@ class FlashText : public Text
public:
FlashText(const std::string &text, int x, int y,
gcn::Graphics::Alignment alignment,
- gcn::Color color);
+ const gcn::Color* color);
/**
* Remove the text from the screen
diff --git a/src/textparticle.cpp b/src/textparticle.cpp
index ed8609e9..792b6bea 100644
--- a/src/textparticle.cpp
+++ b/src/textparticle.cpp
@@ -21,21 +21,17 @@
#include <guichan/color.hpp>
-#include <SDL/SDL_ttf.h>
-
#include "textparticle.h"
#include "gui/textrenderer.h"
TextParticle::TextParticle(Map *map, const std::string &text,
- int colorR, int colorG, int colorB,
+ const gcn::Color* color,
gcn::Font *font, bool outline):
Particle(map),
mText(text),
mTextFont(font),
- mColorR(colorR),
- mColorG(colorG),
- mColorB(colorB),
+ mColor(color),
mOutline(outline)
{
}
@@ -64,6 +60,5 @@ void TextParticle::draw(Graphics *graphics, int offsetX, int offsetY) const
TextRenderer::renderText(graphics, mText,
screenX, screenY, gcn::Graphics::CENTER,
- &gcn::Color(mColorR, mColorG, mColorB), mTextFont, mOutline, false,
- (int)alpha);
+ mColor, mTextFont, mOutline, false, (int)alpha);
}
diff --git a/src/textparticle.h b/src/textparticle.h
index d72df138..8b7d3e01 100644
--- a/src/textparticle.h
+++ b/src/textparticle.h
@@ -32,7 +32,7 @@ class TextParticle : public Particle
* Constructor.
*/
TextParticle(Map *map, const std::string &text,
- int colorR, int colorG, int colorB,
+ const gcn::Color* color,
gcn::Font *font, bool outline = false);
/**
@@ -47,9 +47,8 @@ class TextParticle : public Particle
private:
std::string mText; /**< Text of the particle. */
gcn::Font *mTextFont; /**< Font used for drawing the text. */
- int mColorR, mColorG, mColorB; /**< Color used for drawing the text. */
- bool mOutline; /**< Make the text readable - draw it the way
- a Text is usually drawn: with outline */
+ const gcn::Color* mColor; /**< Color used for drawing the text. */
+ bool mOutline; /**< Make the text better readable */
};
#endif