home *** CD-ROM | disk | FTP | other *** search
- package animationlib;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Polygon;
- import java.awt.image.ImageObserver;
- import java.awt.image.ImageProducer;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
-
- class B_effect extends animator {
- // $FF: renamed from: x int
- private int field_0;
- // $FF: renamed from: y int
- private int field_1;
- private int OriginX;
- private int OriginY;
- private int NowX;
- private int NowY;
- private int nSteps;
- private int nEffectType;
- private int nStepOfEffect;
- private int nWidth;
- private int nHeight;
- private boolean bEnter;
- private int nStep;
- private static final int ENTER = 0;
- private static final int EXIT = 1;
- private Image[] Working;
- private Image Original;
- private Image Target;
- // $FF: renamed from: pg java.awt.image.PixelGrabber
- private PixelGrabber field_2;
- private byte[] OrigPixData;
- private byte[][] WorkingPixData;
- private int stepony;
- private int steponx;
- private int curx;
- private int cury;
- // $FF: renamed from: xs int[]
- private int[] field_3 = new int[7];
- // $FF: renamed from: ys int[]
- private int[] field_4 = new int[7];
- private static final int NONE = 0;
- private static final int SCROLL = 1;
- private static final int ZOOM = 2;
- private static final int ZOOM_RECTANGLE = 3;
- private static final int TLtoBR = 4;
- private static final int TRtoBL = 5;
- private static final int BLtoTR = 6;
- private static final int BRtoTL = 7;
- private static final int CHECKER_BOARD = 8;
- private static final int IRIS = 9;
- private static final int CIRCULAR_WIPE = 10;
- private static final int PIXELIZE = 11;
- // $FF: renamed from: wm animationlib.animator
- private animator field_5;
- private Image origpic;
- // $FF: renamed from: ip java.awt.image.ImageProducer
- private ImageProducer field_6;
- private int finalx;
- private int finaly;
- private int whichprop;
-
- B_effect(int var1, int var2, int var3, int var4, boolean var5, animator var6, int var7, int var8, int var9) {
- var6.CreateICM();
- this.nEffectType = var1;
- this.nSteps = var2;
- this.OriginX = var3;
- this.OriginY = var4;
- this.nStepOfEffect = 0;
- this.bEnter = var5;
- this.Working = new Image[this.nSteps];
- this.field_5 = var6;
- this.finalx = var7;
- this.finaly = var8;
- this.whichprop = var9;
- this.render();
- }
-
- public void render() {
- if (this.nEffectType != 0) {
- this.field_6 = new MemoryImageSource(this.field_5.file_prop_celwidth[this.whichprop], this.field_5.file_prop_celheight[this.whichprop], this.field_5.cm, this.field_5.prop_data[this.whichprop], 0, this.field_5.file_prop_celwidth[this.whichprop]);
- this.origpic = ((Component)this).createImage(this.field_6);
- this.field_0 = this.finalx;
- this.field_1 = this.finaly;
- this.NowX = this.finalx;
- this.NowY = this.finaly;
- this.nWidth = this.origpic.getWidth((ImageObserver)null);
- this.nHeight = this.origpic.getHeight((ImageObserver)null);
- this.stepony = this.nHeight / this.nSteps;
- this.steponx = this.nWidth / this.nSteps;
- this.OrigPixData = new byte[this.nWidth * this.nHeight];
- this.WorkingPixData = new byte[this.nSteps][this.nWidth * this.nHeight];
- this.Working[0] = ((Component)this).createImage(this.field_6);
- System.arraycopy(this.field_5.prop_data[this.whichprop], 0, this.OrigPixData, 0, this.nWidth * this.nHeight);
- switch (this.nEffectType) {
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- case 11:
- this.Working[0] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[0], 0, this.nWidth));
- case 1:
- case 2:
- case 3:
- default:
- for(this.nStepOfEffect = 0; this.nStepOfEffect < this.nSteps; ++this.nStepOfEffect) {
- this.doEffect();
- }
-
- this.nStepOfEffect = 0;
- if (this.bEnter) {
- this.field_5.prop_effect_rendered[this.whichprop][0] = true;
- } else {
- this.field_5.prop_effect_rendered[this.whichprop][1] = true;
- }
- }
- }
- }
-
- boolean renderRest(Graphics var1) {
- if (this.nStepOfEffect >= this.nSteps) {
- return false;
- } else {
- if (!this.bEnter) {
- this.nStep = this.nSteps - this.nStepOfEffect - 1;
- } else {
- this.nStep = this.nStepOfEffect;
- }
-
- switch (this.nEffectType) {
- case 1:
- this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
- this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
- var1.drawImage(this.Working[0], this.NowX, this.NowY, (ImageObserver)null);
- break;
- case 2:
- this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
- this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
- int var2 = this.nWidth / this.nSteps * this.nStep;
- int var3 = this.nHeight / this.nSteps * this.nStep;
- var1.drawImage(this.Working[0], this.NowX, this.NowY, var2, var3, (ImageObserver)null);
- break;
- case 3:
- this.NowX = this.OriginX - (this.OriginX - this.field_0) / this.nSteps * this.nStep;
- this.NowY = this.OriginY - (this.OriginY - this.field_1) / this.nSteps * this.nStep;
- int var4 = this.nWidth / this.nSteps * this.nStep;
- int var5 = this.nHeight / this.nSteps * this.nStep;
- var1.setColor(Color.white);
- var1.setXORMode(Color.black);
- var1.drawRect(this.NowX, this.NowY, var4, var5);
- var1.setPaintMode();
- break;
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 10:
- this.NowX = this.field_0;
- this.NowY = this.field_1;
- var1.drawImage(this.Working[this.nStep], this.NowX, this.NowY, (ImageObserver)null);
- break;
- case 11:
- this.NowX = this.field_0;
- this.NowY = this.field_1;
- var1.drawImage(this.Working[this.nStep], this.NowX, this.NowY, this.nWidth, this.nHeight, (ImageObserver)null);
- }
-
- ++this.nStepOfEffect;
- if (this.nStepOfEffect >= this.nSteps) {
- this.nStepOfEffect = 0;
- this.NowX = this.OriginX;
- this.NowY = this.OriginY;
- return false;
- } else {
- return true;
- }
- }
- }
-
- void doEffect() {
- switch (this.nEffectType) {
- case 1:
- case 2:
- case 3:
- default:
- break;
- case 4:
- this.curx = this.steponx * this.nStepOfEffect * 2;
- this.cury = this.stepony * this.nStepOfEffect * 2;
- this.field_4[0] = -1;
- this.field_4[1] = -1;
- this.field_4[2] = this.cury;
- this.field_3[0] = -1;
- this.field_3[1] = this.curx;
- this.field_3[2] = -1;
- break;
- case 5:
- this.curx = this.steponx * this.nStepOfEffect * -2 + this.nWidth;
- this.cury = this.stepony * this.nStepOfEffect * 2;
- this.field_4[0] = -1;
- this.field_4[1] = this.cury;
- this.field_4[2] = -1;
- this.field_3[0] = this.curx;
- this.field_3[1] = this.nWidth;
- this.field_3[2] = this.nWidth;
- break;
- case 6:
- this.curx = this.steponx * this.nStepOfEffect * 2;
- this.cury = this.stepony * this.nStepOfEffect * -2 + this.nHeight;
- this.field_4[0] = this.nHeight;
- this.field_4[1] = this.cury;
- this.field_4[2] = this.nHeight;
- this.field_3[0] = -1;
- this.field_3[1] = -1;
- this.field_3[2] = this.curx;
- break;
- case 7:
- this.curx = this.steponx * this.nStepOfEffect * -2 + this.nWidth;
- this.cury = this.stepony * this.nStepOfEffect * -2 + this.nHeight;
- this.field_4[0] = this.nHeight;
- this.field_4[1] = this.cury;
- this.field_4[2] = this.nHeight;
- this.field_3[0] = this.nWidth;
- this.field_3[1] = this.nWidth;
- this.field_3[2] = this.curx;
- break;
- case 8:
- int var1 = this.nWidth / 4;
- int var2 = var1 / 2;
- int var3 = var1 / this.nSteps * this.nStepOfEffect;
- int var4 = this.nHeight / 4;
- int var5 = var4 / 2;
- int var6 = var4 / this.nSteps * this.nStepOfEffect;
-
- for(int var30 = 0; var30 < 4; ++var30) {
- for(int var31 = 0; var31 < 4; ++var31) {
- int var7 = var1 * var30 + var2 - var3 / 2 + (var4 * var31 + var5 - var6 / 2) * this.nWidth;
-
- for(int var32 = 0; var32 < var6; ++var32) {
- for(int var33 = 0; var33 < var3; ++var33) {
- this.WorkingPixData[this.nStepOfEffect][var7 + var33] = this.OrigPixData[var7 + var33];
- }
-
- var7 += this.nWidth;
- }
- }
- }
-
- this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
- break;
- case 9:
- int var8 = this.nWidth / 2;
- int var9 = this.nHeight / 2;
- Math.max(var8, var9);
- int var10 = (int)Math.sqrt((double)(var8 * var8 + var9 * var9));
- int var11 = var10 / this.nSteps * this.nStepOfEffect;
-
- for(int var34 = -this.nHeight / 2; var34 < this.nHeight / 2; ++var34) {
- for(int var36 = -this.nWidth / 2; var36 < this.nWidth / 2; ++var36) {
- if (var36 * var36 + var34 * var34 <= var11 * var11) {
- this.WorkingPixData[this.nStepOfEffect][(var34 + var9) * this.nWidth + var36 + var8] = this.OrigPixData[(var34 + var9) * this.nWidth + var36 + var8];
- }
- }
- }
-
- this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
- break;
- case 10:
- byte var12 = 2;
-
- for(int var13 = 2; var13 < 7; ++var13) {
- this.field_4[var13] = this.nHeight / 2;
- this.field_3[var13] = this.nWidth / 2;
- }
-
- this.field_4[0] = this.nHeight / 2;
- this.field_4[1] = this.nHeight / 2;
- this.field_3[0] = this.nWidth / 2;
- this.field_3[1] = this.nWidth;
- int var35 = 360 / this.nSteps * this.nStepOfEffect;
- if (var35 >= 45) {
- var12 = 3;
- this.field_4[2] = this.nHeight;
- this.field_3[2] = this.nWidth;
- }
-
- if (var35 >= 135) {
- var12 = 4;
- this.field_4[3] = this.nHeight;
- this.field_3[3] = -1;
- }
-
- if (var35 >= 225) {
- var12 = 5;
- this.field_4[4] = -1;
- this.field_3[4] = -1;
- }
-
- if (var35 >= 315) {
- var12 = 6;
- this.field_4[5] = -1;
- this.field_3[5] = this.nWidth;
- }
-
- if (var35 < 90) {
- this.field_3[var12] = this.nWidth;
- this.field_4[var12] = (int)((double)(this.nHeight / 2) + (double)(this.nWidth / 2) * Math.tan((double)((float)var35) * Math.PI / (double)180.0F));
- } else if (var35 <= 180 && var35 > 90) {
- this.field_3[var12] = -1;
- this.field_4[var12] = (int)((double)(this.nHeight / 2) + (double)(this.nWidth / 2) * Math.tan((double)((float)(-(var35 - 180))) * Math.PI / (double)180.0F));
- } else if (var35 <= 270 && var35 > 180) {
- this.field_3[var12] = -1;
- this.field_4[var12] = (int)((double)(this.nHeight / 2) - (double)(this.nWidth / 2) * Math.tan((double)((float)(var35 - 180)) * Math.PI / (double)180.0F));
- } else if (var35 <= 360 && var35 > 270) {
- this.field_3[var12] = this.nWidth;
- this.field_4[var12] = (int)((double)(this.nHeight / 2) - (double)(this.nWidth / 2) * Math.tan((double)((float)(-(var35 - 360))) * Math.PI / (double)180.0F));
- }
-
- Polygon var14 = new Polygon(this.field_3, this.field_4, var12 + 1);
-
- for(int var37 = 0; var37 < this.nHeight; ++var37) {
- for(int var16 = 0; var16 < this.nWidth; ++var16) {
- if (var14.inside(var16, var37)) {
- this.WorkingPixData[this.nStepOfEffect][var37 * this.nWidth + var16] = this.OrigPixData[var37 * this.nWidth + var16];
- }
- }
- }
-
- this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
- break;
- case 11:
- double var15 = (double)(this.nSteps - this.nStepOfEffect);
- double var17 = Math.floor((double)this.nHeight / var15);
- double var19 = Math.floor((double)this.nWidth / var15);
- int var21 = 0;
- int var22 = 0;
-
- for(double var23 = var15 / (double)2.0F; var23 < (double)this.nHeight; var23 += var15) {
- for(double var25 = var15 / (double)2.0F; var25 < (double)this.nWidth; var25 += var15) {
- this.WorkingPixData[this.nStepOfEffect][var21] = this.OrigPixData[(int)var23 * this.nWidth + (int)var25];
- ++var21;
- }
-
- ++var22;
- var21 = (int)(var19 * (double)var22);
- }
-
- this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource((int)var19, (int)var17, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, (int)var19));
- }
-
- if (this.nEffectType >= 4 && this.nEffectType <= 7) {
- Polygon var27 = new Polygon(this.field_3, this.field_4, 3);
-
- for(int var28 = 0; var28 < this.nHeight; ++var28) {
- for(int var29 = 0; var29 < this.nWidth; ++var29) {
- if (var27.inside(var29, var28)) {
- this.WorkingPixData[this.nStepOfEffect][var28 * this.nWidth + var29] = this.OrigPixData[var28 * this.nWidth + var29];
- }
- }
- }
-
- this.Working[this.nStepOfEffect] = ((Component)this).createImage(new MemoryImageSource(this.nWidth, this.nHeight, this.field_5.cm, this.WorkingPixData[this.nStepOfEffect], 0, this.nWidth));
- }
-
- }
- }
-