From b2dda88107d8026f0751d4525eee477590b47460 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Tue, 28 Jun 2022 19:23:23 +0000 Subject: [PATCH] Setup framework for screen door transparency Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 --- bin/RabiClone.jar | Bin 297332 -> 297191 bytes src/sig/DrawLoop.java | 82 ++++++++++++-------------------------- src/sig/engine/Alpha.java | 35 +++++++++++----- 3 files changed, 51 insertions(+), 66 deletions(-) diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index ce50e549f433da0b33500e2850d3c53c3369d4a0..855716efca04951f65668c8fb32b92faf2e7fda7 100644 GIT binary patch delta 13934 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 delta 14354 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 diff --git a/src/sig/DrawLoop.java b/src/sig/DrawLoop.java index 4c9534e..5a24668 100644 --- a/src/sig/DrawLoop.java +++ b/src/sig/DrawLoop.java @@ -164,68 +164,36 @@ public class DrawLoop { boolean horizontal = transform==Transform.HORIZONTAL||transform==Transform.HORIZ_VERTIC; boolean vertical = transform==Transform.VERTICAL||transform==Transform.HORIZ_VERTIC; byte[] p = panel.pixel; - if (transform==Transform.NONE&&col==PaletteColor.NORMAL) { - for(int X=(int)xOffset;X<(int)(w+xOffset);X++){ - for(int Y=(int)yOffset;Y<(int)(h+yOffset);Y++){ - if (X+x-xOffset<0||Y+y-yOffset<0||X-xOffset+x>=RabiClone.BASE_WIDTH||Y-yOffset+y>=RabiClone.BASE_HEIGHT) { + int transparentTotalCount=alpha.getB(); + int transparentRunCount=0; + for(int X=(int)xOffset;X<(int)(w+xOffset);X++){ + for(int Y=(int)yOffset;Y<(int)(h+yOffset);Y++){ + if (alpha!=Alpha.ALPHA0) { + if (transparentRunCount++==transparentTotalCount) { + transparentRunCount=0; continue; - } else { - int index = ((int)y)*RabiClone.BASE_WIDTH+(int)x; - if (sprite.getBi_array()[Y*sprite.getCanvasWidth()+X]==32||index<0||index>=p.length) { - continue; - } else { - Draw(p,index,sprite.getBi_array()[Y*sprite.getCanvasWidth()+X],alpha); - } - } - } - } - } else - if (col==PaletteColor.NORMAL) { - for(int X=(int)xOffset;X<(int)(w+xOffset);X++){ - for(int Y=(int)yOffset;Y<(int)(h+yOffset);Y++){ - if (X+x-xOffset<0||Y+y-yOffset<0||X-xOffset+x>=RabiClone.BASE_WIDTH||Y-yOffset+y>=RabiClone.BASE_HEIGHT) { - continue; - } else { - int index = - ((vertical? - sprite.getHeight()-(Y-(int)yOffset): - (Y-(int)yOffset)) - +(int)y)*RabiClone.BASE_WIDTH+ - (horizontal? - sprite.getWidth()-(X-(int)xOffset): - (X-(int)xOffset)) - +(int)x; - if (sprite.getBi_array()[Y*sprite.getCanvasWidth()+X]==32||index<0||index>=p.length) { - continue; - } else { - Draw(p,index,sprite.getBi_array()[Y*sprite.getCanvasWidth()+X],alpha); - } } - } - } - } else { - for(int X=(int)xOffset;X<(int)(w+xOffset);X++){ - for(int Y=(int)yOffset;Y<(int)(h+yOffset);Y++){ - if (X+x-xOffset<0||Y+y-yOffset<0||X-xOffset+x>=RabiClone.BASE_WIDTH||Y-yOffset+y>=RabiClone.BASE_HEIGHT) { + } + if (X+x-xOffset<0||Y+y-yOffset<0||X-xOffset+x>=RabiClone.BASE_WIDTH||Y-yOffset+y>=RabiClone.BASE_HEIGHT) { + continue; + } else { + int index = + ((vertical? + sprite.getHeight()-(Y-(int)yOffset): + (Y-(int)yOffset)) + +(int)y)*RabiClone.BASE_WIDTH+ + (horizontal? + sprite.getWidth()-(X-(int)xOffset): + (X-(int)xOffset)) + +(int)x; + + if (sprite.getBi_array()[Y*sprite.getCanvasWidth()+X]==32||index<0||index>=p.length) { continue; } else { - int index = - ((vertical? - sprite.getHeight()-(Y-(int)yOffset): - (Y-(int)yOffset)) - +(int)y)*RabiClone.BASE_WIDTH+ - (horizontal? - sprite.getWidth()-(X-(int)xOffset): - (X-(int)xOffset)) - +(int)x; - if (sprite.getBi_array()[Y*sprite.getCanvasWidth()+X]==32||index<0||index>=p.length) { - continue; - } else { - Draw(p,index,(byte)col.ordinal(),alpha); - } + Draw(p,index,(col==PaletteColor.NORMAL)?sprite.getBi_array()[Y*sprite.getCanvasWidth()+X]:(byte)col.ordinal(),alpha); } - } - } + } + } } } diff --git a/src/sig/engine/Alpha.java b/src/sig/engine/Alpha.java index dfd61f5..1d081a0 100644 --- a/src/sig/engine/Alpha.java +++ b/src/sig/engine/Alpha.java @@ -1,13 +1,30 @@ package sig.engine; public enum Alpha { - ALPHA0, - ALPHA32, - ALPHA64, - ALPHA96, - ALPHA128, - ALPHA160, - ALPHA192, - ALPHA224, - ALPHA256; + ALPHA0(1,1), + ALPHA32(7,8), //7/8 + ALPHA64(3,4), //3/4 + ALPHA96(5,8), //5/8 + ALPHA128(1,2), //1/2 + ALPHA160(3,8), //3/8 + ALPHA192(1,4), //1/4 + ALPHA224(1,8), //1/8 + ALPHA256(0,8); //0/8 + + int A,B; + + /** For every B pixels, A are visible.*/ + Alpha(int A,int B) { + this.A=A; + this.B=B; + } + + public int getA() { + return A; + } + + public int getB() { + return B; + } + }