1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| #include "font.h"
t_data* t_data::pInstance = NULL;
std::vector<ALFONT_FONT*> t_data::tabFont;
BITMAP*** t_data::tabFacesets = NULL;
BITMAP** t_data::objets = NULL;
BITMAP** t_data::objetsDonjon = NULL;
BITMAP** t_data::objetsMunitions = NULL;
BITMAP*** t_data::chiffres = NULL;
BITMAP*** t_data::projectiles = NULL;
t_data::t_data()
{
string path = PATH_MESSAGE;
string pathObjet = PATH_OBJET;
string pathFont = PATH_FONT;
string tmp;
tabFont.push_back(alfont_load_font("./font/lucon.ttf"));
tabFont.push_back(alfont_load_font("./font/lcallig.ttf"));
tabFont.push_back(alfont_load_font("./font/times.ttf"));
for (unsigned i=0; i<tabFont.size(); i++)
{
if (!tabFont[i]) err("Couldn't load font!");
alfont_set_font_size(tabFont[i], TAILLE_TEXTE);
}
// chargement des sprites d'objets
tmp = pathObjet+"objets_overworld.bmp";
objets = chargerAnimationSimpleHorizontale(20, TX, TY, tmp, false, false);
tmp = pathObjet+"objets_munitions.bmp";
objetsMunitions = chargerAnimationSimpleHorizontale(20, TX, TY, tmp, false, false);
tmp = pathObjet+"objets_donjons.bmp";
objetsDonjon = chargerAnimationSimpleHorizontale(20, TX, TY, tmp, false, false);
tmp = "./font/chiffres.bmp";
chiffres = chargerAnimation(4, 5, 16, 16, tmp, true, true);
tmp = pathObjet+"projectiles16.bmp";
projectiles = chargerAnimation(5,4,32,32,tmp, true);
tmp = path+"2.bmp";
tabFacesets = chargerAnimation(4,4,48*2,48*2,tmp,true);
}
t_data::~t_data()
{
libererMemoireMatriceBitmap(tabFacesets, 4,4);
libererMemoireMatriceBitmap(projectiles, 5, 4);
libererMemoireMatriceBitmap(chiffres, 4, 5);
libererMemoireBitmap(objetsDonjon , 20);
libererMemoireBitmap(objetsMunitions, 20);
libererMemoireBitmap(objets, 20);
for (unsigned i=0; i<tabFont.size(); i++)
{
alfont_destroy_font(tabFont[i]);
}
}
t_data* t_data::init()
{
if (!pInstance)
{
pInstance = new t_data();
}
return pInstance;
}
void t_data::deleteInstance()
{
delete pInstance;
pInstance = NULL; // important, ne pas oublier !
}
std::vector<ALFONT_FONT*> t_data::getTabFont() { return tabFont; }
BITMAP*** t_data::getFacesets() { return tabFacesets; }
BITMAP** t_data::getObjets() { return objets;}
BITMAP** t_data::getObjetsMunitions() { return objetsMunitions;}
BITMAP** t_data::getObjetsDonjon() { return objetsDonjon;}
BITMAP*** t_data::getProjectiles() { return projectiles; }
BITMAP* t_data::getChiffres(int nbRubis, bool vert)
{
// convertir int en string
string str = convertirIntToString(nbRubis);
BITMAP* buffer = creerBitmapNormale(48, 16, makecol(255,249,189)); // couleur de fond du menu
// construction de l'image
int extra = 0;
if (vert) extra = 2; // chiffre seront en vert
unsigned int l = str.length();
for (unsigned int i=0; i<l; i++)
{
int chiffre = atoi(str.substr(i, 1).c_str());
dessiner(buffer, chiffres[chiffre/5+extra][chiffre%5], i*16, 0);
}
return buffer;
} |
Partager