start working out the Graphics/* code, this is a long way from compiling, let alone working
#include "PlayerInfo.hh"
#include <sstream>
namespace graphics
{
void PlayerInfo::draw (Display *display) {
CL_GraphicContext *gc = display->get_gc();
// draw status info at bottom of display
gc->fill_rect(
CL_Rect(area.left, area.top, area.right, area.bottom),
CL_Gradient(
CL_Color(0, 0, 0),
CL_Color(50, 50, 50),
CL_Color(50, 50, 50, 150),
CL_Color(100, 100, 100, 200)
)
);
// Health
gc->draw_rect(
CL_Rect(
area.left + 9,
area.top + 9,
area.left + 11 + 100 * bar_length,
area.top + 31
),
CL_Color(150, 150, 150)
);
gc->fill_rect(
CL_Rect(
area.left + 10,
area.top + 10,
area.left + 10 + (int) (p->getHealthPercent() * bar_length),
area.top + 30
),
CL_Gradient(
CL_Color(200, 0, 0),
CL_Color(200 - (int)(p->getHealthPercent() * 2), (int)(p->getHealthPercent() * 2), 0),
CL_Color(200, 0, 0),
CL_Color(200 - (int)(p->getHealthPercent() * 2), (int)(p->getHealthPercent() * 2), 0)
)
);
// stats - kills
std::stringstream sskills;
sskills << "Kills: " << p->getKills();
getSimpleFont().draw(
area.left + 20 + 100 * bar_length,
area.top + 10,
sskills.str(),
get_gc()
);
// stats - deaths
std::stringstream ssdeaths;
ssdeaths << "Deaths: " << p->getDeaths();
getSimpleFont().draw(
area.left + 20 + 100 * bar_length,
area.top + 30,
ssdeaths.str(),
get_gc()
);
// stats - ratio
std::stringstream ssratio;
ssratio << "Ratio: " << (p->getKills()+1) / (p->getDeaths()+1);
getSimpleFont().draw(
area.left + 20 + 100 * bar_length,
area.top + 50,
ssratio.str(),
get_gc()
);
// Weapon clip / reloading
gc->draw_rect(
CL_Rect(
area.left + 9,
area.top + 69,
area.left + 11 + 100 * bar_length,
area.top + 91
),
CL_Color(150, 150, 150)
);
gc->fill_rect(
CL_Rect(
area.left + 10,
area.top + 70,
area.left + 10 + (100 - (int) (p->getCurrentWeapon()->getReloadTimer() * 100 / p->getCurrentWeapon()->getReloadTime())) * bar_length,
area.top + 90
),
CL_Gradient(
CL_Color(100, 100, 0),
CL_Color(100, 100, 0),
CL_Color(100, 100, 0),
CL_Color(100, 100, 100)
)
);
// current weapon name
getSimpleFont().draw(
area.left + 20 + 100 * bar_length,
area.top + 70,
p->getCurrentWeapon()->getName(),
get_gc()
);
}
}