X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2Fstates%2FSelectIkari.cpp;h=2ab66a95dc002bec89458e297a0d5e7f7872dc00;hb=0b11a24a8b08c49d6e4301573602fb6d01e7a8c8;hp=8d2006a4269597802aa287a68cd19341d6082c58;hpb=d97b7038c28058a76e7214e0dce0394fd8b67cff;p=l2e.git diff --git a/src/battle/states/SelectIkari.cpp b/src/battle/states/SelectIkari.cpp index 8d2006a..2ab66a9 100644 --- a/src/battle/states/SelectIkari.cpp +++ b/src/battle/states/SelectIkari.cpp @@ -19,7 +19,7 @@ using graphics::Frame; namespace battle { void SelectIkari::OnEnterState(SDL_Surface *screen) { - + OnResize(screen->w, screen->h); } void SelectIkari::OnExitState(SDL_Surface *screen) { @@ -40,7 +40,23 @@ void SelectIkari::OnPauseState(SDL_Surface *screen) { void SelectIkari::OnResize(int width, int height) { + const Vector offset = battle->ScreenOffset(); + + const Resources &res = battle->Res(); + const Frame &frame = *res.selectFrame; + + framePosition = offset + frame.BorderSize(); + frameSize = Vector( + battle->Width() - 2 * frame.BorderWidth(), + res.normalFont->CharHeight() * 13); + + headlinePosition = offset + Vector( + 2 * frame.BorderWidth() + res.normalFont->CharWidth(), + 2 * frame.BorderHeight()); + menuPosition = offset + Vector( + 2 * frame.BorderWidth() + res.normalFont->CharWidth(), + 2 * frame.BorderHeight() + 2 * res.normalFont->CharHeight()); } @@ -93,34 +109,23 @@ void SelectIkari::UpdateWorld(Uint32 deltaT) { void SelectIkari::Render(SDL_Surface *screen) { parent->Render(screen); - Vector offset(battle->CalculateScreenOffset(screen)); - RenderFrame(screen, offset); - RenderHeadline(screen, offset); - RenderMenu(screen, offset); + RenderFrame(screen); + RenderHeadline(screen); + RenderMenu(screen); } -void SelectIkari::RenderFrame(SDL_Surface *screen, const Vector &offset) { - const Frame *frame(battle->Res().selectFrame); - Vector position(frame->BorderSize()); - int width(battle->Width() - 2 * frame->BorderWidth()); - int height(battle->Res().normalFont->CharHeight() * 13); - frame->Draw(screen, position + offset, width, height); +void SelectIkari::RenderFrame(SDL_Surface *screen) { + const Frame &frame = *battle->Res().selectFrame; + frame.Draw(screen, framePosition, frameSize.X(), frameSize.Y()); } -void SelectIkari::RenderHeadline(SDL_Surface *screen, const Vector &offset) { - const Resources &res(battle->Res()); - Vector position( - 2 * res.selectFrame->BorderWidth() + res.normalFont->CharWidth(), - 2 * res.selectFrame->BorderHeight()); - res.normalFont->DrawString(res.ikariMenuHeadline, screen, position + offset); +void SelectIkari::RenderHeadline(SDL_Surface *screen) { + const Resources &res = battle->Res(); + res.normalFont->DrawString(res.ikariMenuHeadline, screen, headlinePosition); } -void SelectIkari::RenderMenu(SDL_Surface *screen, const Vector &offset) { - const Resources &res(battle->Res()); - Vector position( - 2 * res.selectFrame->BorderWidth() + res.normalFont->CharWidth(), - 2 * res.selectFrame->BorderHeight() + 2 * res.normalFont->CharHeight()); - battle->ActiveHero().IkariMenu().Draw(screen, position + offset); +void SelectIkari::RenderMenu(SDL_Surface *screen) { + battle->ActiveHero().IkariMenu().Draw(screen, menuPosition); } }