X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2Fstates%2FSelectItem.cpp;h=0aaf7a36a79776ee9023a7162115aa7e49704a42;hb=0b11a24a8b08c49d6e4301573602fb6d01e7a8c8;hp=2a90b0336a32417233ce769cd9f33b164ddde05c;hpb=d97b7038c28058a76e7214e0dce0394fd8b67cff;p=l2e.git diff --git a/src/battle/states/SelectItem.cpp b/src/battle/states/SelectItem.cpp index 2a90b03..0aaf7a3 100644 --- a/src/battle/states/SelectItem.cpp +++ b/src/battle/states/SelectItem.cpp @@ -18,7 +18,7 @@ using graphics::Frame; namespace battle { void SelectItem::OnEnterState(SDL_Surface *screen) { - + OnResize(screen->w, screen->h); } void SelectItem::OnExitState(SDL_Surface *screen) { @@ -39,7 +39,23 @@ void SelectItem::OnPauseState(SDL_Surface *screen) { void SelectItem::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()); } @@ -92,34 +108,23 @@ void SelectItem::UpdateWorld(Uint32 deltaT) { void SelectItem::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 SelectItem::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 SelectItem::RenderFrame(SDL_Surface *screen) { + const Frame &frame = *battle->Res().selectFrame; + frame.Draw(screen, framePosition, frameSize.X(), frameSize.Y()); } -void SelectItem::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.itemMenuHeadline, screen, position + offset); +void SelectItem::RenderHeadline(SDL_Surface *screen) { + const Resources &res = battle->Res(); + res.normalFont->DrawString(res.itemMenuHeadline, screen, headlinePosition); } -void SelectItem::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->ItemMenu().Draw(screen, position + offset); +void SelectItem::RenderMenu(SDL_Surface *screen) { + battle->ItemMenu().Draw(screen, menuPosition); } }