From f57b237b2a8f7d029db5a9d5d98de729300b5a32 Mon Sep 17 00:00:00 2001 From: shoofle Date: Fri, 12 Dec 2025 16:00:25 -0500 Subject: [PATCH] tidy up the shuffle screen --- ScreenShuffle.inc | 137 +++++++++++++++----------------- card_art/screendesigns.aseprite | Bin 6247 -> 6183 bytes card_art/tileset.asm | 32 ++++---- source.zip | Bin 874422 -> 874030 bytes 4 files changed, 78 insertions(+), 91 deletions(-) diff --git a/ScreenShuffle.inc b/ScreenShuffle.inc index c930da3..5ae9d50 100644 --- a/ScreenShuffle.inc +++ b/ScreenShuffle.inc @@ -4,7 +4,7 @@ vState: db vShuffleIndex: db vShuffleTime: dw vShuffleCount: db -def cShuffleMax equ 9 ; the number of times you have to shuffle before you've "fully shuffled" +def cShuffleMax equ 8 ; the number of times you have to shuffle before you've "fully shuffled" POPS def S_Center = 0 @@ -74,45 +74,45 @@ ShuffleSetup: call CopyTilesToMap ld hl, Shuffle.BigCard - ld de, _SCRN0 + 32*4 + 7 + ld de, _SCRN0 + 32*6 + 7 ld b, 10 ld c, 6 call CopyTilesToMap ld hl, Shuffle.ShuffledEdges - ld de, _SCRN0 + 32*5 + 7 + ld de, _SCRN0 + 32*7 + 7 ld b, 8 ld c, 1 call CopyTilesToMap ld hl, Shuffle.ShuffledEdges + 8 - ld de, _SCRN0 + 32*5 + 12 + ld de, _SCRN0 + 32*7 + 12 ld b, 8 ld c, 1 call CopyTilesToMap ; draw left arrow ld a, VARIABLE_TILES_START + 18 - ld [_SCRN0 + 32*8 + 3], a + ld [_SCRN0 + 32*10 + 6], a ld a, VARIABLE_TILES_START + 20 - ld [_SCRN0 + 32*9 + 3], a + ld [_SCRN0 + 32*11 + 6], a ; right arrow ld a, VARIABLE_TILES_START + 19 - ld [_SCRN0 + 32*8 + 16], a + ld [_SCRN0 + 32*10 + 13], a ld a, VARIABLE_TILES_START + 21 - ld [_SCRN0 + 32*9 + 16], a + ld [_SCRN0 + 32*11 + 13], a ; up arrow ld a, VARIABLE_TILES_START + 22 - ld [_SCRN0 + 32*2 + 9], a + ld [_SCRN0 + 32*5 + 9], a ld a, VARIABLE_TILES_START + 23 - ld [_SCRN0 + 32*2 + 10], a + ld [_SCRN0 + 32*5 + 10], a ; down arrow ld a, VARIABLE_TILES_START + 24 - ld [_SCRN0 + 32*15 + 9], a + ld [_SCRN0 + 32*16 + 9], a ld a, VARIABLE_TILES_START + 25 - ld [_SCRN0 + 32*15 + 10], a + ld [_SCRN0 + 32*16 + 10], a ld hl, Shuffle.UITileData ld de, _VRAM + $1000 + VARIABLE_TILES_START*16 @@ -120,6 +120,16 @@ ShuffleSetup: call CopyRange + ld hl, Shuffle.ShuffledPopup + ld de, _SCRN0 + 32*1 + 5 + ld b, 3 + ld c, 10 + call CopyTilesToMap + + ld hl, Shuffle.ShuffleText + ld de, _SCRN0 + 32*2 + 6 + call PrintString + ret ShuffleUpdate: @@ -317,8 +327,10 @@ ShuffleAnimate: add hl, bc add hl, bc ; two bytes per entry - ; hl points to xy offsets - ld b, [hl] + ; hl points to yx offsets + ld a, [hl] + add a, 16 ; lower the big animated card by two tiles because i moved things afterwards + ld b, a inc hl ld c, [hl] ld a, 32 @@ -343,9 +355,9 @@ HideSprites: ld hl, MY_OAM .testTile ld a, [hl] - cp a, (2+4)*8 ; y < 5*8 => skip + cp a, (2+6)*8 ; y < 5*8 => skip jp c, .goToNextTile - cp a, (2+5+8)*8 ; y > (5+8)*8 => skip + cp a, (2+7+8)*8 ; y > (5+8)*8 => skip jp nc, .goToNextTile inc hl @@ -407,16 +419,9 @@ ShuffleTeardown: ret DoSomeShuffling: - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap - call OneSwap; 10 shuffles + rept 20 ; every time we shuffle do 20 swaps + call OneSwap + endr ld hl, vShuffleCount inc [hl] @@ -445,7 +450,7 @@ DoSomeShuffling: dec a jr nz, :- ; hl now points to the appropriate starting Shuffle Edge - ld de, _SCRN0 + 32*5 + 7 + ld de, _SCRN0 + 32*7 + 7 ld b, 8 ld c, 1 call CopyTilesToMap @@ -459,7 +464,7 @@ DoSomeShuffling: dec a jr nz, :- ; hl now points to the appropriate starting Shuffle Edge - ld de, _SCRN0 + 32*5 + 12 + ld de, _SCRN0 + 32*7 + 12 ld b, 8 ld c, 1 call CopyTilesToMap @@ -469,15 +474,6 @@ DoSomeShuffling: cp a, [hl] ret nz - ld hl, Shuffle.ShuffledPopup - ld de, _SCRN0 + 32*15 + 5 - ld b, 3 - ld c, 11 - call CopyTilesToMap - - ld hl, Shuffle.ShuffledText - ld de, _SCRN0 + 32*16 + 6 - call PrintString ret OneSwap: ; shuffles once and decrements vshuffleindex @@ -604,7 +600,7 @@ CardBackSprites24Copy: db $b6,$5f,$56,$bf,$b6,$5f,$f6,$ff,$06,$ff,$fe,$ff,$fe,$ff,$00,$ff ; bottom-right CardBackSprites24CopyEnd: Shuffle.UITileData: -db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$ff,$3f,$ff,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0,$40,$c0 db $00,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$ff,$fc,$ff,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03 @@ -631,10 +627,8 @@ db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$ff,$7f,$ff,$40,$c0,$43,$c3,$31,$f1,$8c,$7c,$e3,$1f,$78,$07 db $00,$ff,$fe,$ff,$02,$03,$c2,$c3,$8c,$8f,$31,$3e,$c7,$f8,$1e,$e0 db $40,$c7,$47,$ff,$5f,$ff,$1c,$ff,$5b,$ff,$5b,$fe,$6a,$ff,$6b,$fe - db $02,$ff,$ec,$ff,$ee,$ff,$e6,$ff,$66,$ff,$6c,$ff,$6c,$ff,$6c,$ff db $40,$c0,$40,$c0,$40,$c7,$07,$ff,$7f,$ff,$7c,$ff,$63,$ff,$6f,$fe - db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ac,$7f - db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ec,$7f + db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ec,$7f db $40,$c0,$40,$c0,$40,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3 db $2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$26,$ff,$36,$ff db $6a,$ff,$60,$ff,$6c,$ff,$6e,$ff,$66,$ff,$6c,$ff,$ec,$ff,$ec,$ff @@ -666,21 +660,19 @@ db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $40,$cf,$40,$cf,$44,$cf,$44,$cf,$44,$cf,$45,$cf,$45,$cf,$4d,$df db $c2,$f3,$c2,$f3,$c2,$f3,$c2,$f3,$d2,$fb,$d2,$fb,$b2,$fb,$ba,$ff db $62,$f3,$62,$f3,$62,$f3,$62,$f3,$b2,$fb,$b2,$fb,$b2,$fb,$ba,$ff - db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$45,$cf,$45,$cf,$45,$cf db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf - db $4d,$df,$4d,$df,$4d,$df,$4b,$df,$5b,$ff,$5b,$ff,$5b,$ff,$5b,$ff db $9a,$ff,$9a,$ff,$9a,$ff,$9c,$ff,$ac,$ff,$8c,$ff,$be,$ff,$be,$ff db $da,$ff,$da,$7f,$5a,$ff,$dc,$7f,$ec,$ff,$8c,$ff,$7c,$ff,$fe,$ff - db $41,$cf,$41,$cf,$41,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4b,$df db $43,$cf,$43,$cf,$43,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4d,$df db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$4d,$df,$4d,$df,$4d,$df - db $5b,$ff,$5b,$ff,$33,$ff,$3b,$ff,$1b,$ff,$43,$df,$4b,$df,$40,$df - db $80,$ff,$ac,$ff,$8c,$ff,$bc,$ff,$bc,$ff,$80,$ff,$82,$c3,$02,$c3 - db $80,$ff,$6c,$ff,$8c,$ff,$7c,$ff,$fc,$ff,$80,$ff,$02,$83,$02,$03 - db $4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$40,$df db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$40,$df db $80,$ff,$02,$83,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03 db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4c,$df,$4f,$df,$4f,$df,$40,$df + db $80,$ff,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$02,$c3 + db $4d,$df,$4d,$df,$4b,$df,$4b,$df,$5b,$ff,$5b,$ff,$5b,$ff,$5b,$ff + db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ac,$7f + db $00,$ff,$ee,$ff,$ee,$ff,$e6,$ff,$66,$ff,$6c,$ff,$6c,$ff,$6c,$ff + db $57,$ff,$57,$ff,$33,$ff,$3c,$ff,$1f,$ff,$47,$df,$49,$df,$40,$df Shuffle.UITileDataEnd: Shuffle.BigCard: ; 6 wide by 10 tall @@ -696,29 +688,28 @@ Shuffle.BigCard: ; 6 wide by 10 tall db $29, $2a, $2a, $2a, $2a, $2b Shuffle.ShuffledEdges: ; this is a list of 10 pairs of 1x8 tall sprites, edges for the messy pile of cards - db $34, $3a, $40, $47, $4e, $55, $5a, $60 - db $35, $3b, $41, $48, $4f, $56, $5b, $61 - db $36, $3c, $42, $49, $4e, $55, $5a, $60 - db $35, $3b, $41, $48, $4f, $56, $5b, $61 - db $36, $3c, $42, $49, $4e, $55, $5a, $60 - db $37, $3d, $43, $4a, $50, $57, $5c, $62 - db $36, $3c, $44, $4b, $51, $58, $5d, $63 - db $37, $3d, $43, $4a, $50, $57, $5c, $62 - db $36, $3c, $44, $4b, $51, $58, $5d, $63 - db $38, $3e, $45, $4c, $52, $57, $5c, $62 - db $36, $3c, $44, $4b, $53, $59, $5e, $64 - db $22, $22, $22, $4d, $52, $57, $5c, $62 - db $36, $3c, $44, $4b, $53, $59, $5e, $64 - db $22, $22, $22, $4d, $52, $57, $5c, $65 - db $39, $3f, $46, $46, $54, $59, $5f, $66 - db $22, $22, $22, $4d, $52, $57, $5c, $65 - db $39, $3f, $46, $46, $54, $59, $5f, $66 - db $22, $22, $22, $22, $22, $22, $22, $22 - db $1e, $1e, $1e, $1e, $1e, $1e, $1e, $1e - db $22, $22, $22, $22, $22, $22, $22, $22 + db $34, $38, $3e, $45, $4c, $53, $5f, $62 +db $61, $39, $3f, $46, $4d, $54, $57, $5e +db $35, $3a, $40, $47, $4c, $53, $5f, $62 +db $61, $39, $3f, $46, $4d, $54, $57, $5e +db $35, $3a, $40, $47, $4c, $53, $5f, $62 +db $60, $3b, $41, $48, $4e, $55, $58, $5c +db $35, $3a, $42, $49, $4f, $56, $59, $5b +db $60, $3b, $41, $48, $4e, $55, $58, $5c +db $35, $3a, $42, $49, $51, $56, $59, $5b +db $36, $3c, $43, $4a, $50, $55, $58, $5c +db $35, $3a, $42, $49, $51, $56, $59, $5b +db $22, $22, $22, $4b, $50, $55, $58, $5c +db $37, $3d, $44, $44, $52, $56, $5a, $5d +db $22, $22, $22, $4b, $50, $55, $58, $5c +db $37, $3d, $44, $44, $52, $56, $5a, $5d +db $22, $22, $22, $22, $22, $22, $22, $22 +db $1e, $1e, $1e, $1e, $1e, $1e, $1e, $1e +db $22, $22, $22, $22, $22, $22, $22, $22 + -Shuffle.ShuffledText: - db 9, "Shuffled!" +Shuffle.ShuffleText: + db 8, "Shuffle!" Shuffle.ShuffledPopup1: db 9, 8 @@ -729,6 +720,6 @@ Shuffle.ShuffledPopup2: db 3, 0, 4 db 6, 5, 7 Shuffle.ShuffledPopup: - db 9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8 - db 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 - db 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7 \ No newline at end of file + db 9, 2, 2, 2, 2, 2, 2, 2, 2, 8 + db 3, 0, 0, 0, 0, 0, 0, 0, 0, 4 + db 6, 5, 5, 5, 5, 5, 5, 5, 5, 7 \ No newline at end of file diff --git a/card_art/screendesigns.aseprite b/card_art/screendesigns.aseprite index b5b0034fc92ca4837c94719181d944e14303ce68..b9d629441f1ba387581338a3a2a0fe180ac3feba 100644 GIT binary patch delta 915 zcmV;E18n@~FsCp9Cy@bv4W}0X0Q&I=0b~FG00^;-3k`pT0ssIbAO!#b00sa607(D< z00;mG00961000000000000000000140ssJboTXL^mc$?k({TSg?^Zq{irQ)SbyD2| zA&9n=Zx`&Mc7bI676)shU*k)3@GM>9YrYA8O~9efL&sE68~%fhL;iZjc~t%r0PJBM zKE{3`gWZ1&NAn)17=7NCg%??}jdy#YIbbIciZTME8=yNVKT6+HU9NLSYHS?tC8$f5drUvs zKXtpXcGdP=_L_J5vX$>bR`WF>XiFe98)uA@0t5oY3=8-W}nv zzz~M69!vg5gyat$2Rzsx^o2v&Zbl^0F~xsx@jWi%`+my)e?(Ugo==e+@f5_VyBxuJ8AUiF`mBu660Fv|1pV$4;A3fZ-krlxF673VKNf`WO@pz ze(3f41L}YxG_$b-K zLwjj>h74pKdfzqYKlYv=M8Y=rA`lf~Hug^E1&;8_dJxS~jrZq8HFf^40u-UdS{AKP zjeAv6QMp%xIy6|D&|+;5;8XuE`7v#U!xLg1L delta 939 zcmV;c162H{Fy}A3k`pr0ssIbAO!#b00sa608Ib@ z00;mG009610000000000000000001S0ssJboTXL^mc$?kQ*!@1?^Zq{irP;1&17^7 zgdnt~{C1IDXcs~DZ*i~&zQ&j6#Jjl0*L)NHnt(&yCtagbZTJti4*Ba9_o?!q0FnJz zhmWzJ$i#nchV@&$X8l4wFV``j59@7yr}dWKSjUCHt_*=+R>!!X@mrmtMfmsUmqrJ3 zNA0i3|Lu8+^h@OAD=N3wN zdp|Z$f*a+*UWBLc{`b=s{0;Co*NFvV)q5SIf{%Y`Ep6xdA-}*@>}As5o5um-&x?65 zUdmH>NAn)17=510!V8vcbQyH=d=Bef6;xy5k=THI0)$K(K#FUNq+=ve%oVA(v&jC!JMzz zgNlDP%GWuh`b%0hq^WB=d=HcvuXHBl7!M@$FkfJQgn79~-W#N%aaB*$Q0~*(Xjh4! z>FIU!dj1%{=5={y(G4EzbHuDow7K@Eb=V-44Q}H@;%soE-=&Vr`W)kSgyvILNEy=I z`v#rR^HJU%$zdTwGIaG=@;@R;{-o=G2m616zT{BG&4>^kQ~WKy$7OuqPuc&E=<31y zDZ(Ki)I)zw{pk7xbncI=zqF}^7-rE z7y7H$_@2ad#~R^r)!(c8GMw$->7VEvbafwS#u6{`(AVbv4it6vsP~m&e(JtOU+N;< z?R9S2e9d(|qV((S{Fu<^A9>y4Wjwi0>)!eQ0V;VUXS1;b31lProALQK?>3~{ddXTVlN0GC2Vo;0V2Yqg}n@9 zAxF)N7E}#tQB+rbh7y#i7164yL46T5_i9j5hX%C?EoxiUpms#fy)L{$kJ^U;^-cAi z+M)8^2Mk3=@JaoGvFL=#dsCQ+&S4?CJX7BLhLz|VHlkb69hLWfU@!U$2hk(-5B{mV NcLJ6w9czJ) diff --git a/card_art/tileset.asm b/card_art/tileset.asm index d1e251f..4e63eea 100644 --- a/card_art/tileset.asm +++ b/card_art/tileset.asm @@ -30,10 +30,8 @@ tileset: db $00,$ff,$7f,$ff,$40,$c0,$43,$c3,$31,$f1,$8c,$7c,$e3,$1f,$78,$07 db $00,$ff,$fe,$ff,$02,$03,$c2,$c3,$8c,$8f,$31,$3e,$c7,$f8,$1e,$e0 db $40,$c7,$47,$ff,$5f,$ff,$1c,$ff,$5b,$ff,$5b,$fe,$6a,$ff,$6b,$fe - db $02,$ff,$ec,$ff,$ee,$ff,$e6,$ff,$66,$ff,$6c,$ff,$6c,$ff,$6c,$ff db $40,$c0,$40,$c0,$40,$c7,$07,$ff,$7f,$ff,$7c,$ff,$63,$ff,$6f,$fe - db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ac,$7f - db $02,$ff,$fc,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ec,$7f + db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ec,$7f db $40,$c0,$40,$c0,$40,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3,$41,$c3 db $2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$2d,$ff,$26,$ff,$36,$ff db $6a,$ff,$60,$ff,$6c,$ff,$6e,$ff,$66,$ff,$6c,$ff,$ec,$ff,$ec,$ff @@ -65,30 +63,28 @@ tileset: db $40,$cf,$40,$cf,$44,$cf,$44,$cf,$44,$cf,$45,$cf,$45,$cf,$4d,$df db $c2,$f3,$c2,$f3,$c2,$f3,$c2,$f3,$d2,$fb,$d2,$fb,$b2,$fb,$ba,$ff db $62,$f3,$62,$f3,$62,$f3,$62,$f3,$b2,$fb,$b2,$fb,$b2,$fb,$ba,$ff - db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$45,$cf,$45,$cf,$45,$cf db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf - db $4d,$df,$4d,$df,$4d,$df,$4b,$df,$5b,$ff,$5b,$ff,$5b,$ff,$5b,$ff db $9a,$ff,$9a,$ff,$9a,$ff,$9c,$ff,$ac,$ff,$8c,$ff,$be,$ff,$be,$ff db $da,$ff,$da,$7f,$5a,$ff,$dc,$7f,$ec,$ff,$8c,$ff,$7c,$ff,$fe,$ff - db $41,$cf,$41,$cf,$41,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4b,$df db $43,$cf,$43,$cf,$43,$cf,$43,$cf,$43,$cf,$4b,$df,$4b,$df,$4d,$df db $46,$cf,$46,$cf,$46,$cf,$46,$cf,$46,$cf,$4d,$df,$4d,$df,$4d,$df - db $5b,$ff,$5b,$ff,$33,$ff,$3b,$ff,$1b,$ff,$43,$df,$4b,$df,$40,$df - db $80,$ff,$ac,$ff,$8c,$ff,$bc,$ff,$bc,$ff,$80,$ff,$82,$c3,$02,$c3 - db $80,$ff,$6c,$ff,$8c,$ff,$7c,$ff,$fc,$ff,$80,$ff,$02,$83,$02,$03 - db $4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$4b,$df,$40,$df db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$4d,$df,$40,$df db $80,$ff,$02,$83,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03,$02,$03 db $4d,$df,$4d,$df,$4d,$df,$4d,$df,$4c,$df,$4f,$df,$4f,$df,$40,$df + db $80,$ff,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$82,$c3,$02,$c3 + db $4d,$df,$4d,$df,$4b,$df,$4b,$df,$5b,$ff,$5b,$ff,$5b,$ff,$5b,$ff + db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$ac,$7f,$6c,$bf,$ac,$7f + db $00,$ff,$ee,$ff,$ee,$ff,$e6,$ff,$66,$ff,$6c,$ff,$6c,$ff,$6c,$ff + db $57,$ff,$57,$ff,$33,$ff,$3c,$ff,$1f,$ff,$47,$df,$49,$df,$40,$df ShuffleUI: - db $34, $35, $36, $35, $36, $37, $36, $37, $36, $38, $36, $22, $36, $22, $39, $22, $39, $22, $1e, $22 - db $3a, $3b, $3c, $3b, $3c, $3d, $3c, $3d, $3c, $3e, $3c, $22, $3c, $22, $3f, $22, $3f, $22, $1e, $22 - db $40, $41, $42, $41, $42, $43, $44, $43, $44, $45, $44, $22, $44, $22, $46, $22, $46, $22, $1e, $22 - db $47, $48, $49, $48, $49, $4a, $4b, $4a, $4b, $4c, $4b, $4d, $4b, $4d, $46, $4d, $46, $22, $1e, $22 - db $4e, $4f, $4e, $4f, $4e, $50, $51, $50, $51, $52, $53, $52, $53, $52, $54, $52, $54, $22, $1e, $22 - db $55, $56, $55, $56, $55, $57, $58, $57, $58, $57, $59, $57, $59, $57, $59, $57, $59, $22, $1e, $22 - db $5a, $5b, $5a, $5b, $5a, $5c, $5d, $5c, $5d, $5c, $5e, $5c, $5e, $5c, $5f, $5c, $5f, $22, $1e, $22 - db $60, $61, $60, $61, $60, $62, $63, $62, $63, $62, $64, $62, $64, $65, $66, $65, $66, $22, $1e, $22 + db $34, $61, $35, $61, $35, $60, $35, $60, $35, $36, $35, $22, $37, $22, $37, $22, $1e, $22 + db $38, $39, $3a, $39, $3a, $3b, $3a, $3b, $3a, $3c, $3a, $22, $3d, $22, $3d, $22, $1e, $22 + db $3e, $3f, $40, $3f, $40, $41, $42, $41, $42, $43, $42, $22, $44, $22, $44, $22, $1e, $22 + db $45, $46, $47, $46, $47, $48, $49, $48, $49, $4a, $49, $4b, $44, $4b, $44, $22, $1e, $22 + db $4c, $4d, $4c, $4d, $4c, $4e, $4f, $4e, $51, $50, $51, $50, $52, $50, $52, $22, $1e, $22 + db $53, $54, $53, $54, $53, $55, $56, $55, $56, $55, $56, $55, $56, $55, $56, $22, $1e, $22 + db $5f, $57, $5f, $57, $5f, $58, $59, $58, $59, $58, $59, $58, $5a, $58, $5a, $22, $1e, $22 + db $62, $5e, $62, $5e, $62, $5c, $5b, $5c, $5b, $5c, $5b, $5c, $5d, $5c, $5d, $22, $1e, $22 diff --git a/source.zip b/source.zip index 4e577ae820d8dc3401652fcdf91679ff9824d333..5bc97c525f6b3d1bf3efda7ba41debfb56cf2394 100644 GIT binary patch delta 5054 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 delta 5315 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