From 5abdd03c22494c86018e32a43b37fab5f7e1661a Mon Sep 17 00:00:00 2001 From: 4am Date: Sun, 1 Apr 2018 21:56:22 -0400 Subject: [PATCH] don't repaint info and description boxes twice --- src/ui.main.a | 59 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/src/ui.main.a b/src/ui.main.a index d259d79..11fca24 100644 --- a/src/ui.main.a +++ b/src/ui.main.a @@ -90,22 +90,9 @@ RepaintMainIfDirty !word kViewVersions !word kHasVersions - ldx #WGCreateView ; create borderless frame for game title and info - +LDADDR kViewInfo - +STAY PARAM0 - jsr WeeGUI - - ldx #WGCreateView ; create scrollable frame for game description text - +LDADDR kViewDescription - +STAY PARAM0 - jsr WeeGUI - ldx #WGViewSetAction ; set view action (called automatically after scrolling) - +LDADDR PaintDescriptionView - +STAY PARAM0 - jsr WeeGUI - pla ; clear screen before repainting? beq .nohome ; no -> repaint over existing screen, YOLO + ldx #WGClearScreen ; clear screen jsr WeeGUI jsr PaintTitleBar ; paint top bar @@ -124,10 +111,32 @@ RepaintMainIfDirty ldx #WGSyncGlobalCursor jsr WeeGUI -.nohome ldx #WGViewPaintAll - jsr WeeGUI ; tell everything that can paint itself, to paint itself +.nohome + lda #ID_INFO + jsr WGResetView + + lda #ID_DESCRIPTION + jsr WGResetView + + ldx #WGViewPaintAll ; repaint all WeeGUI-controlled UI elements + jsr WeeGUI + + ldx #WGCreateView ; create borderless frame for game title and info + +LDADDR kViewInfo + +STAY PARAM0 + jsr WeeGUI + jsr PaintInfoView ; paint info box manually + ldx #WGCreateView ; create scrollable frame for game description text + +LDADDR kViewDescription + +STAY PARAM0 + jsr WeeGUI + ldx #WGViewSetAction ; set view action (called automatically after scrolling) + +LDADDR PaintDescriptionView + +STAY PARAM0 + jsr WeeGUI + ldx #WGSelectView ; reset scrolling of description box lda #ID_DESCRIPTION jsr WeeGUI @@ -137,10 +146,22 @@ RepaintMainIfDirty ldx #WGScrollY lda #0 jsr WeeGUI - + ldx #WGPaintView + jsr WeeGUI jmp PaintDescriptionView ; paint description box manually } +WGResetView +WG_VIEWRECORDS=$59B5 + asl + asl + asl + asl + tay + lda #0 + sta WG_VIEWRECORDS+2,y + rts + ;------------------------------------------------------------------------------ ; CreateOrDestroyButton ; create or destroy a WeeGUI Button view, based on per-game options @@ -201,8 +222,10 @@ CreateOrDestroyButton txa ; A = WeeGUI view ID ldx #WGSelectView jsr WeeGUI - ldx #WGDeleteView + ldx #WGEraseView jsr WeeGUI + lda .viewID + jsr WGResetView .done rts }