From e16f1b77f9d7f09d232cfe34e4fc8b4be06f571d Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Wed, 8 Aug 2012 20:53:33 +0200 Subject: [PATCH] write hero's name on tag --- src/battle/HeroTag.cpp | 4 ++++ src/battle/Resources.h | 4 ++++ src/main.cpp | 9 +++++++++ test-data/normal-font.png | Bin 0 -> 1249 bytes 4 files changed, 17 insertions(+) create mode 100644 test-data/normal-font.png diff --git a/src/battle/HeroTag.cpp b/src/battle/HeroTag.cpp index 01cee44..531031f 100644 --- a/src/battle/HeroTag.cpp +++ b/src/battle/HeroTag.cpp @@ -26,6 +26,7 @@ void HeroTag::Render(SDL_Surface *screen, int width, int height, Point posi // frame const Frame *frame(active ? res->activeHeroTagFrame : res->heroTagFrame); Vector frameOffset(frame->BorderWidth(), frame->BorderHeight()); + Vector alignOffset(align == LEFT ? 4 * res->heroTagFont->CharWidth() : 0, 0); frame->Draw(screen, position, width, height); int yOffset((height - hero->Sprite()->Height()) / 2); @@ -74,6 +75,9 @@ void HeroTag::Render(SDL_Surface *screen, int width, int height, Point posi Vector manaNumberOffset(labelX + res->heroTagLabels->Width(), manaLabelOffset.Y()); res->heroTagFont->DrawNumber(hero->Mana(), screen, position + manaNumberOffset, 3); + // name + res->normalFont->DrawString(hero->Name(), screen, position + frameOffset + alignOffset, 5); + // hero Vector heroOffset( (align == LEFT) ? yOffset : width - hero->Sprite()->Width() - yOffset, diff --git a/src/battle/Resources.h b/src/battle/Resources.h index 7c37bca..8d1144f 100644 --- a/src/battle/Resources.h +++ b/src/battle/Resources.h @@ -34,6 +34,8 @@ struct Resources { graphics::Frame *selectFrame; + graphics::Font *normalFont; + Resources() : moveIcons(0) @@ -50,6 +52,8 @@ struct Resources { , ikariGauge(0) , selectFrame(0) + + , normalFont(0) { } }; diff --git a/src/main.cpp b/src/main.cpp index 29c08a5..d9a2f57 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -154,6 +154,15 @@ int main(int argc, char **argv) { Frame selectFrame(selectFrameImg, 16, 16); battleRes.selectFrame = &selectFrame; + SDL_Surface *normalFontImg(IMG_Load("test-data/normal-font.png")); + Sprite normalFontSprite(normalFontImg, 16, 16); + Font normalFont(&normalFontSprite); + normalFont.MapRange('A', 'M', 0, 1); + normalFont.MapRange('N', 'Z', 0, 2); + normalFont.MapRange('a', 'm', 0, 3); + normalFont.MapRange('n', 'z', 0, 4); + battleRes.normalFont = &normalFont; + BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &battleRes)); battleState->AddMonster(monster); battleState->AddMonster(monster); diff --git a/test-data/normal-font.png b/test-data/normal-font.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b1a40927bbccd470302247b7220bf403c81000 GIT binary patch literal 1249 zcmV<71Rnc|P)+v71>$)Be z-p}z~uPR?v|IzbC_gm$v+EHEpZtp*ex8I`m|MLKVFwdxBSl7*3LRI;y`j4*jwkvC4 zqspCCh~3`5N_nE+?Wle4KT#k6r2?s#wb&}lt+Hs<7IL-nbhqmiX5R}61hAt5RgY=2 zvnkdXSmnd0eUzxB^tQ`8au_`)I`Zfm0jXw#nS}$mvjSx;M^24 zWfk@m9|;8lxRU~9Ei1EFd)K$SKGn0jC=fvA2NoTps$;mKW8MO?M6 zrs{WmAOHXWfcyGDvt#Hk-(__F_rGt~eP4gSq|xKqm3LJ;-uI2#_lb3VwGT6ja?h^Y zbT~@ZE z<-aX7G@r9{quIFAm1i~H5f=&s zP~ihr`zE_aHSdy>!Ry0CeIvC}sroaT!|wCn**V07IrpfuB-o0AOHXWfaAElW8BeL zb9O9x_j7fkK8$KV(yD0qyWEct1kgzMe4wl{MKfAj&skM|c0W&buI}xJLZY3i+45)m z9R&hVDv)}IsOtH`AwEid%K!pOWQle^Qsmdxet1P=lg{v*Ns=ri9r2bw|Ab?5*8vUZXXF;+Sr`nRT z&!~2!(4~a4&qsj(GKM?)%d3ioQ?CnEjqyjyJYd%{lq;K z2tcVomM?Vr8Ju2L?dwtd4tMK^-S%CfKmZwoH>)t8E46$%7!@uGDkRr{mmXJ_BC(d5x}q}ly6R{NvtSgQ7;KmZLqqn2#+|Em2oQ46Hn zPZMo_Hu`#(6ZF*eR-H80bwZx^yF-BhDir9qpE6*z-%`#~BMH``)Zr&Dm&f zt9%p)phAIG6Sd&G?59!XK2Y8FX@PeqtAL|fRQ0JCC=kF-3gpcQX<35mjF?plrCP^Q z`2f-WiI$%|e