]> git.localhorst.tv Git - l2e.git/commitdiff
made third column hack of menus configurable
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Tue, 4 Dec 2012 21:44:35 +0000 (22:44 +0100)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Tue, 4 Dec 2012 21:47:04 +0000 (22:47 +0100)
src/graphics/Menu.cpp
src/graphics/Menu.h
test-data/test.l2s

index 6527e3e2c7325a8ed8baa087a270b87af1bcee4a..1b81f85a2d731ec7e88c4ed4a1be4926f8f8a0d9 100644 (file)
@@ -32,6 +32,7 @@ void MenuProperties::CreateTypeDescription() {
        td.AddField("additionalTextGap", FieldDescription(((char *)&p.additionalTextGap) - ((char *)&p), Interpreter::NUMBER_ID).SetDescription("space between normal and additional text in pixels"));
        td.AddField("wrapX", FieldDescription(((char *)&p.wrapX) - ((char *)&p), Interpreter::BOOLEAN_ID).SetDescription("horizontally wrap cursor movement"));
        td.AddField("wrapY", FieldDescription(((char *)&p.wrapY) - ((char *)&p), Interpreter::BOOLEAN_ID).SetDescription("vertically wrap cursor movement"));
+       td.AddField("thirdColumnHack", FieldDescription(((char *)&p.thirdColumnHack) - ((char *)&p), Interpreter::NUMBER_ID).SetDescription("offset the third column by this many characters"));
 }
 
 void MenuProperties::Construct(void *data) {
index 886e2fd07af5a7bacb4d0c04566bc9824719231f..d83b2a5e9b540801b88128b77f4d41002bc36521 100644 (file)
@@ -28,6 +28,7 @@ struct MenuProperties {
        int charsPerNumber;
        int charsPerAdditionalText;
        int additionalTextGap;
+       int thirdColumnHack;
        char delimiter;
        bool wrapX;
        bool wrapY;
@@ -37,7 +38,7 @@ struct MenuProperties {
        , charsPerEntry(0), rows(1), rowGap(0)
        , iconSpace(0), cols(1), colGap(0)
        , charsPerNumber(0), charsPerAdditionalText(0)
-       , additionalTextGap(0), delimiter(':')
+       , additionalTextGap(0), thirdColumnHack(0), delimiter(':')
        , wrapX(false), wrapY(false) { }
 
        static void CreateTypeDescription();
@@ -241,10 +242,9 @@ void Menu<T>::Draw(SDL_Surface *dest, const geometry::Vector<int> &position) con
                                (i % cols) * (ColWidth() + colGap),
                                (i / cols) * RowHeight());
 
-               // Third column hack!
-               // This fixes the position of the "DROP" item in the inventory menu.
-               if (i % cols == 2) {
-                       iconOffset += geometry::Vector<int>(font->CharWidth(), 0);
+               // This fixes the position of the third column of the inventory and capsule menus.
+               if (thirdColumnHack && i % cols == 2) {
+                       iconOffset += geometry::Vector<int>(font->CharWidth() * thirdColumnHack, 0);
                }
 
                if (entries[start + i].icon) {
@@ -273,10 +273,9 @@ void Menu<T>::Draw(SDL_Surface *dest, const geometry::Vector<int> &position) con
        geometry::Vector<int> cursorOffset(
                        (selected % cols) * (ColWidth() + colGap) - cursor->Width(),
                        ((selected - start) / cols) * RowHeight());
-       // Third column hack!
-       // This fixes the position of the "DROP" item in the inventory menu.
-       if (selected % cols == 2) {
-               cursorOffset += geometry::Vector<int>(font->CharWidth(), 0);
+       // This fixes the position of the third column of the inventory and capsule menus.
+       if (thirdColumnHack && selected % cols == 2) {
+               cursorOffset += geometry::Vector<int>(font->CharWidth() * thirdColumnHack, 0);
        }
        switch (state) {
                case STATE_INACTIVE:
index 98553dff786bb759b0110353ed08f50ee677ef91..0d76b42a7f20159d0d27b67f5d8393fdb5735284 100644 (file)
@@ -769,7 +769,8 @@ export MenuResources menuResources {
                disabledFont: menuInactiveFont,
                iconSpace: 16,
                charsPerNumber: 2,
-               delimiter: ":"
+               delimiter: ":",
+               thirdColumnHack: 1
        },
        spellMenu: MenuProperties {
                cols: 2,