improved fps
This commit is contained in:
parent
a8afbf9b3f
commit
1bb89e053a
|
@ -26,7 +26,7 @@
|
||||||
#include "map.h"
|
#include "map.h"
|
||||||
#include <framework/platform/platform.h>
|
#include <framework/platform/platform.h>
|
||||||
#include <framework/graphics/graphics.h>
|
#include <framework/graphics/graphics.h>
|
||||||
#include <framework/graphics/fontmanager.h>
|
|
||||||
|
|
||||||
Creature::Creature() : Thing(Otc::Creature)
|
Creature::Creature() : Thing(Otc::Creature)
|
||||||
{
|
{
|
||||||
|
@ -37,6 +37,7 @@ Creature::Creature() : Thing(Otc::Creature)
|
||||||
m_walkOffsetX = 0;
|
m_walkOffsetX = 0;
|
||||||
m_walkOffsetY = 0;
|
m_walkOffsetY = 0;
|
||||||
|
|
||||||
|
m_informationFont = g_fonts.getFont("tibia-12px-rounded");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Creature::draw(int x, int y)
|
void Creature::draw(int x, int y)
|
||||||
|
@ -153,33 +154,8 @@ void Creature::drawInformation(int x, int y, bool useGray)
|
||||||
{
|
{
|
||||||
Color fillColor = Color(96, 96, 96);
|
Color fillColor = Color(96, 96, 96);
|
||||||
|
|
||||||
if(!useGray) {
|
if(!useGray)
|
||||||
// health bar according to yatc
|
fillColor = m_informationColor;
|
||||||
fillColor = Fw::black;
|
|
||||||
if(m_healthPercent > 92) {
|
|
||||||
fillColor.setGreen(188);
|
|
||||||
}
|
|
||||||
else if(m_healthPercent > 60) {
|
|
||||||
fillColor.setRed(80);
|
|
||||||
fillColor.setGreen(161);
|
|
||||||
fillColor.setBlue(80);
|
|
||||||
}
|
|
||||||
else if(m_healthPercent > 30) {
|
|
||||||
fillColor.setRed(161);
|
|
||||||
fillColor.setGreen(161);
|
|
||||||
}
|
|
||||||
else if(m_healthPercent > 8) {
|
|
||||||
fillColor.setRed(160);
|
|
||||||
fillColor.setGreen(39);
|
|
||||||
fillColor.setBlue(39);
|
|
||||||
}
|
|
||||||
else if(m_healthPercent > 3) {
|
|
||||||
fillColor.setRed(160);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fillColor.setRed(79);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rect backgroundRect = Rect(x-(14.5), y, 27, 4);
|
Rect backgroundRect = Rect(x-(14.5), y, 27, 4);
|
||||||
Rect healthRect = backgroundRect.expanded(-1);
|
Rect healthRect = backgroundRect.expanded(-1);
|
||||||
|
@ -192,8 +168,7 @@ void Creature::drawInformation(int x, int y, bool useGray)
|
||||||
g_graphics.drawFilledRect(healthRect);
|
g_graphics.drawFilledRect(healthRect);
|
||||||
|
|
||||||
// name
|
// name
|
||||||
FontPtr font = g_fonts.getFont("tibia-12px-rounded");
|
m_informationFont->renderText(m_name, Rect(x-100, y-15, 200, 15), Fw::AlignTopCenter, fillColor);
|
||||||
font->renderText(m_name, Rect(x-100, y-15, 200, 15), Fw::AlignTopCenter, fillColor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Creature::walk(const Position& position)
|
void Creature::walk(const Position& position)
|
||||||
|
@ -246,7 +221,43 @@ void Creature::walk(const Position& position)
|
||||||
m_lastTicks = g_platform.getTicks();
|
m_lastTicks = g_platform.getTicks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Creature::setHealthPercent(uint8 healthPercent)
|
||||||
|
{
|
||||||
|
int oldHealthPercent = m_healthPercent;
|
||||||
|
m_healthPercent = healthPercent;
|
||||||
|
onHealthPercentChange(oldHealthPercent);
|
||||||
|
}
|
||||||
|
|
||||||
const ThingAttributes& Creature::getAttributes()
|
const ThingAttributes& Creature::getAttributes()
|
||||||
{
|
{
|
||||||
return g_dat.getCreatureAttributes(m_outfit.type);
|
return g_dat.getCreatureAttributes(m_outfit.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Creature::onHealthPercentChange(int)
|
||||||
|
{
|
||||||
|
m_informationColor = Fw::black;
|
||||||
|
|
||||||
|
if(m_healthPercent > 92) {
|
||||||
|
m_informationColor.setGreen(188);
|
||||||
|
}
|
||||||
|
else if(m_healthPercent > 60) {
|
||||||
|
m_informationColor.setRed(80);
|
||||||
|
m_informationColor.setGreen(161);
|
||||||
|
m_informationColor.setBlue(80);
|
||||||
|
}
|
||||||
|
else if(m_healthPercent > 30) {
|
||||||
|
m_informationColor.setRed(161);
|
||||||
|
m_informationColor.setGreen(161);
|
||||||
|
}
|
||||||
|
else if(m_healthPercent > 8) {
|
||||||
|
m_informationColor.setRed(160);
|
||||||
|
m_informationColor.setGreen(39);
|
||||||
|
m_informationColor.setBlue(39);
|
||||||
|
}
|
||||||
|
else if(m_healthPercent > 3) {
|
||||||
|
m_informationColor.setRed(160);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_informationColor.setRed(79);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#define CREATURE_H
|
#define CREATURE_H
|
||||||
|
|
||||||
#include "thing.h"
|
#include "thing.h"
|
||||||
|
#include <framework/graphics/fontmanager.h>
|
||||||
|
|
||||||
struct Outfit {
|
struct Outfit {
|
||||||
uint16 type;
|
uint16 type;
|
||||||
|
@ -44,7 +45,7 @@ public:
|
||||||
void drawInformation(int x, int y, bool useGray);
|
void drawInformation(int x, int y, bool useGray);
|
||||||
|
|
||||||
void setName(const std::string& name) { m_name = name; }
|
void setName(const std::string& name) { m_name = name; }
|
||||||
void setHealthPercent(uint8 healthPercent) { m_healthPercent = healthPercent; }
|
void setHealthPercent(uint8 healthPercent);
|
||||||
void setDirection(Otc::Direction direction) { m_direction = direction; }
|
void setDirection(Otc::Direction direction) { m_direction = direction; }
|
||||||
void setOutfit(const Outfit& outfit) { m_outfit = outfit; }
|
void setOutfit(const Outfit& outfit) { m_outfit = outfit; }
|
||||||
void setLight(const Light& light) { m_light = light; }
|
void setLight(const Light& light) { m_light = light; }
|
||||||
|
@ -64,13 +65,14 @@ public:
|
||||||
uint8 getShield() { return m_shield; }
|
uint8 getShield() { return m_shield; }
|
||||||
uint8 getEmblem() { return m_emblem; }
|
uint8 getEmblem() { return m_emblem; }
|
||||||
bool getImpassable() { return m_impassable; }
|
bool getImpassable() { return m_impassable; }
|
||||||
|
const ThingAttributes& getAttributes();
|
||||||
|
|
||||||
|
void onHealthPercentChange(int);
|
||||||
|
|
||||||
void walk(const Position& position);
|
void walk(const Position& position);
|
||||||
int getWalkOffsetX() { return m_walkOffsetX; }
|
int getWalkOffsetX() { return m_walkOffsetX; }
|
||||||
int getWalkOffsetY() { return m_walkOffsetY; }
|
int getWalkOffsetY() { return m_walkOffsetY; }
|
||||||
|
|
||||||
const ThingAttributes& getAttributes();
|
|
||||||
|
|
||||||
CreaturePtr asCreature() { return std::static_pointer_cast<Creature>(shared_from_this()); }
|
CreaturePtr asCreature() { return std::static_pointer_cast<Creature>(shared_from_this()); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -85,6 +87,9 @@ private:
|
||||||
uint8 m_emblem;
|
uint8 m_emblem;
|
||||||
bool m_impassable;
|
bool m_impassable;
|
||||||
|
|
||||||
|
FontPtr m_informationFont;
|
||||||
|
Color m_informationColor;
|
||||||
|
|
||||||
int m_lastTicks;
|
int m_lastTicks;
|
||||||
bool m_walking;
|
bool m_walking;
|
||||||
float m_walkTimePerPixel;
|
float m_walkTimePerPixel;
|
||||||
|
|
Loading…
Reference in New Issue