From 855007679e747d33044679d306724f2ebe1604c8 Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 31 Dec 2014 18:43:45 +0100 Subject: [PATCH] Optimize ModalController_draw code once more --- qcsrc/menu/item/modalcontroller.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/qcsrc/menu/item/modalcontroller.c b/qcsrc/menu/item/modalcontroller.c index 5f6799902..1fec7af28 100644 --- a/qcsrc/menu/item/modalcontroller.c +++ b/qcsrc/menu/item/modalcontroller.c @@ -150,11 +150,22 @@ 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 @@ -198,7 +209,6 @@ 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) @@ -224,6 +234,8 @@ 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); else -- 2.39.2