From: Daniel Karbach Date: Tue, 7 Aug 2012 14:01:28 +0000 (+0200) Subject: added some test sprites X-Git-Url: https://git.localhorst.tv/?a=commitdiff_plain;h=bfcf2f4de43077249b82af03a0e1b8281b8490e3;p=l2e.git added some test sprites --- diff --git a/src/battle/BattleState.cpp b/src/battle/BattleState.cpp index 2c5fe81..30a33b6 100644 --- a/src/battle/BattleState.cpp +++ b/src/battle/BattleState.cpp @@ -48,8 +48,9 @@ void BattleState::Resize(int w, int h) { void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) { monstersLayout->CalculatePositions(background->w, background->h, monsterPositions); heroesLayout->CalculatePositions(background->w, background->h, heroesPositions); + attackChoices.resize(heroes.size()); for (vector::size_type i(0), end(heroes.size()); i < end; ++i) { - heroTags.push_back(HeroTag(&heroes[i], HeroTag::Alignment((i + 1) % 2))); + heroTags.push_back(HeroTag(&heroes[i], &attackChoices[i], HeroTag::Alignment((i + 1) % 2))); } } diff --git a/src/battle/HeroTag.cpp b/src/battle/HeroTag.cpp index d67368f..713fb8f 100644 --- a/src/battle/HeroTag.cpp +++ b/src/battle/HeroTag.cpp @@ -39,7 +39,7 @@ void HeroTag::Render(SDL_Surface *screen, int width, int height, Point posi Vector heroOffset( (align == LEFT) ? 3 : width - hero->Sprite()->Width() - 3, height - hero->Sprite()->Height() - 3); - hero->Sprite()->Draw(screen, position + heroOffset); + hero->Sprite()->Draw(screen, position + heroOffset, 0, hero->Health() > 0 ? 0 : 2); } } diff --git a/src/battle/HeroTag.h b/src/battle/HeroTag.h index c606348..3e42edd 100644 --- a/src/battle/HeroTag.h +++ b/src/battle/HeroTag.h @@ -14,6 +14,7 @@ namespace battle { +class AttackChoice; class Hero; class HeroTag { @@ -25,7 +26,7 @@ public: }; public: - HeroTag(const Hero *hero, Alignment align) : hero(hero), align(align) { } + HeroTag(const Hero *hero, const AttackChoice *choice, Alignment align) : hero(hero), choice(choice), align(align) { } ~HeroTag() { } public: @@ -33,6 +34,7 @@ public: private: const Hero *hero; + const AttackChoice *choice; Alignment align; }; diff --git a/src/main.cpp b/src/main.cpp index bd8ff4a..8077843 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -49,33 +49,29 @@ int main(int argc, char **argv) { InitScreen screen(width, height); // temporary test data - SDL_Surface *bg(SDL_CreateRGBSurface(0, width, height, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF)); - SDL_FillRect(bg, 0, SDL_MapRGB(bg->format, 0xFF, 0xFF, 0xFF)); - SDL_Rect r; - r.x = 1; - r.y = 1; - r.w = width - 2; - r.h = height - 2; - SDL_FillRect(bg, &r, SDL_MapRGB(bg->format, 0, 0, 0)); + SDL_Surface *bg(IMG_Load("test-data/battle-bg.png")); PartyLayout monstersLayout; monstersLayout.AddPosition(Point(50, 100)); - monstersLayout.AddPosition(Point(100, 100)); + monstersLayout.AddPosition(Point(100, 108)); monstersLayout.AddPosition(Point(150, 100)); - monstersLayout.AddPosition(Point(200, 100)); + monstersLayout.AddPosition(Point(200, 108)); PartyLayout heroesLayout; heroesLayout.AddPosition(Point(27, 219)); heroesLayout.AddPosition(Point(104, 227)); heroesLayout.AddPosition(Point(66, 238)); heroesLayout.AddPosition(Point(143, 246)); - SDL_Surface *white96(SDL_CreateRGBSurface(0, 96, 96, 32, 0xFF000000, 0xFF0000, 0xFF00, 0xFF)); - SDL_FillRect(white96, 0, SDL_MapRGB(bg->format, 0xFF, 0xFF, 0xFF)); - Sprite dummySprite(white96, 96, 96); + + SDL_Surface *monsterImg(IMG_Load("test-data/monster.png")); + Sprite dummySprite(monsterImg, 96, 96); Monster monster; monster.SetSprite(&dummySprite); + + SDL_Surface *heroImg(IMG_Load("test-data/hero.png")); + Sprite heroSprite(heroImg, 96, 96); Hero hero; hero.SetName("Name"); hero.SetLevel(34); - hero.SetSprite(&dummySprite); + hero.SetSprite(&heroSprite); hero.SetMaxHealth(100); hero.SetHealth(50); hero.SetMaxMana(100); diff --git a/test-data/battle-bg.png b/test-data/battle-bg.png new file mode 100644 index 0000000..7913872 Binary files /dev/null and b/test-data/battle-bg.png differ diff --git a/test-data/hero.png b/test-data/hero.png new file mode 100644 index 0000000..c61b217 Binary files /dev/null and b/test-data/hero.png differ diff --git a/test-data/monster.png b/test-data/monster.png new file mode 100644 index 0000000..2a76e9a Binary files /dev/null and b/test-data/monster.png differ