X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FMenu.h;h=91cc3a7cbbe6431a7021a4611c82dd59c54eb255;hb=a3ba4dc677ad7c92eeb78b20b642241563605c9d;hp=d83b2a5e9b540801b88128b77f4d41002bc36521;hpb=60e0fe29ce6cd033edc78b181d9d07fa72c11172;p=l2e.git diff --git a/src/graphics/Menu.h b/src/graphics/Menu.h index d83b2a5..91cc3a7 100644 --- a/src/graphics/Menu.h +++ b/src/graphics/Menu.h @@ -4,7 +4,7 @@ #include "Font.h" #include "fwd.h" #include "Sprite.h" -#include "../geometry/Vector.h" +#include "../math/Vector.h" #include #include @@ -105,7 +105,7 @@ public: void Clear() { entries.clear(); } void ClearEntry(int at) { entries[at] = Entry(0, T(), false); } - void Draw(SDL_Surface *dest, const geometry::Vector &position) const; + void Draw(SDL_Surface *dest, const math::Vector &position) const; private: int GetRow(int index) const { return index / cols; } @@ -231,51 +231,51 @@ void Menu::SelectIndex(int index) { template -void Menu::Draw(SDL_Surface *dest, const geometry::Vector &position) const { +void Menu::Draw(SDL_Surface *dest, const math::Vector &position) const { int start(topRow * cols); int slots(rows * cols); int items(entries.size() - start); int end(start + (items < slots ? items : slots)); for (int i(0), count(end - start); i < count; ++i) { if (!entries[start + i].title) continue; - geometry::Vector iconOffset( + math::Vector iconOffset( (i % cols) * (ColWidth() + colGap), (i / cols) * RowHeight()); // This fixes the position of the third column of the inventory and capsule menus. if (thirdColumnHack && i % cols == 2) { - iconOffset += geometry::Vector(font->CharWidth() * thirdColumnHack, 0); + iconOffset += math::Vector(font->CharWidth() * thirdColumnHack, 0); } if (entries[start + i].icon) { entries[start + i].icon->Draw(dest, position + iconOffset); } - geometry::Vector textOffset(iconOffset.X() + iconSpace, iconOffset.Y()); + math::Vector textOffset(iconOffset.X() + iconSpace, iconOffset.Y()); const Font *usedFont(entries[start + i].enabled ? font : disabledFont); usedFont->DrawString(entries[start + i].title, dest, position + textOffset, charsPerEntry); - textOffset += geometry::Vector(charsPerEntry * usedFont->CharWidth(), 0); + textOffset += math::Vector(charsPerEntry * usedFont->CharWidth(), 0); if (charsPerAdditionalText) { - textOffset += geometry::Vector(additionalTextGap, 0); + textOffset += math::Vector(additionalTextGap, 0); if (entries[start + i].additionalText) { usedFont->DrawString(entries[start + i].additionalText, dest, position + textOffset, charsPerAdditionalText); } - textOffset += geometry::Vector(charsPerAdditionalText * usedFont->CharWidth(), 0); + textOffset += math::Vector(charsPerAdditionalText * usedFont->CharWidth(), 0); } if (charsPerNumber) { usedFont->DrawChar(delimiter, dest, position + textOffset); - textOffset += geometry::Vector(usedFont->CharWidth(), 0); + textOffset += math::Vector(usedFont->CharWidth(), 0); usedFont->DrawNumber(entries[start + i].number, dest, position + textOffset, charsPerNumber); } } - geometry::Vector cursorOffset( + math::Vector cursorOffset( (selected % cols) * (ColWidth() + colGap) - cursor->Width(), ((selected - start) / cols) * RowHeight()); // This fixes the position of the third column of the inventory and capsule menus. if (thirdColumnHack && selected % cols == 2) { - cursorOffset += geometry::Vector(font->CharWidth() * thirdColumnHack, 0); + cursorOffset += math::Vector(font->CharWidth() * thirdColumnHack, 0); } switch (state) { case STATE_INACTIVE: @@ -288,9 +288,9 @@ void Menu::Draw(SDL_Surface *dest, const geometry::Vector &position) con break; case STATE_DUAL: cursor->Draw(dest, position + cursorOffset - - geometry::Vector(selectedCursor->Width(), 0)); + - math::Vector(selectedCursor->Width(), 0)); if (secondarySelection >= start && secondarySelection <= end) { - geometry::Vector secondaryOffset( + math::Vector secondaryOffset( (secondarySelection % cols) * (ColWidth() + colGap) - cursor->Width(), ((secondarySelection - start) / cols) * RowHeight()); selectedCursor->Draw(dest, position + secondaryOffset);