]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/modalcontroller.qc
Merge branch 'master' into Mario/vaporizer_damage
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / modalcontroller.qc
index bff21707906c9919927ce8557a5934aacbaa4bff..8232125f750b69d7d3689e54eada9f7c830d7fdc 100644 (file)
@@ -1,16 +1,18 @@
-#ifdef INTERFACE
-CLASS(ModalController) EXTENDS(Container)
-       METHOD(ModalController, resizeNotify, void(entity, vector, vector, vector, vector))
-       METHOD(ModalController, draw, void(entity))
-       METHOD(ModalController, showChild, void(entity, entity, vector, vector, float))
-       METHOD(ModalController, hideChild, void(entity, entity, float))
-       METHOD(ModalController, hideAll, void(entity, float))
-       METHOD(ModalController, addItem, void(entity, entity, vector, vector, float))
-       METHOD(ModalController, addTab, void(entity, entity, entity))
+#ifndef ITEM_MODALCONTROLLER_H
+#define ITEM_MODALCONTROLLER_H
+#include "container.qc"
+CLASS(ModalController, Container)
+       METHOD(ModalController, resizeNotify, void(entity, vector, vector, vector, vector));
+       METHOD(ModalController, draw, void(entity));
+       METHOD(ModalController, showChild, void(entity, entity, vector, vector, float));
+       METHOD(ModalController, hideChild, void(entity, entity, float));
+       METHOD(ModalController, hideAll, void(entity, float));
+       METHOD(ModalController, addItem, void(entity, entity, vector, vector, float));
+       METHOD(ModalController, addTab, void(entity, entity, entity));
 
-       METHOD(ModalController, initializeDialog, void(entity, entity))
+       METHOD(ModalController, initializeDialog, void(entity, entity));
 
-       METHOD(ModalController, switchState, void(entity, entity, float, float))
+       METHOD(ModalController, switchState, void(entity, entity, float, float));
        ATTRIB(ModalController, origin, vector, '0 0 0')
        ATTRIB(ModalController, size, vector, '0 0 0')
        ATTRIB(ModalController, previousButton, entity, NULL)
@@ -150,22 +152,11 @@ void ModalController_draw(entity me)
                if(e.ModalController_state)
                {
                        if(front)
-                       {
                                me.switchState(me, front, 2, 0);
-                               if(front.ModalController_factor < 1)
-                                       animating = 1;
-                       }
                        front = e;
                }
        if(front)
-       {
                me.switchState(me, front, 1, 0);
-               if(front.ModalController_factor < 1)
-                       animating = 1;
-       }
-
-       if(front && front.Container_alpha == front.ModalController_initialAlpha)
-               goto update_done; // update isn't needed, everything stay as is
 
        df = frametime * 3; // animation speed
 
@@ -209,6 +200,7 @@ void ModalController_draw(entity me)
                                me.setAlphaOf(me, e, e.Container_alpha  * prevFactor);
                        else
                        {
+                               animating = 1;
                                targetFactor = df / (1 - f + df);
 
                                if(e.ModalController_state == 1)
@@ -234,7 +226,6 @@ void ModalController_draw(entity me)
                        e.Container_fontscale_y = fs.y * e.ModalController_initialFontScale.y;
                }
        }
-       :update_done
 
        if(animating || !me.focused)
                me.setFocus(me, NULL);