home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
-
- public class HawkRay extends Applet implements Runnable {
- // $FF: renamed from: w int
- protected int field_0;
- // $FF: renamed from: h int
- protected int field_1;
- protected int dispx = 0;
- protected int dispz = 0;
- protected int m_sw;
- protected int m_sh;
- protected int[] texel;
- protected int m_cos1;
- protected int m_sin1;
- protected int xres;
- protected int yres;
- protected int m_alti = 120;
- // $FF: renamed from: d int
- protected int field_2 = 1;
- protected int viewA = 180;
- protected int dViewA = 3;
- protected int[] screenPixel;
- protected MemoryImageSource screenMem;
- protected Image screenImage;
- private int garbageCnt = 0;
- private Thread theThread;
- private boolean m_tAnimate = true;
-
- // $FF: synthetic method
- static boolean access$0(HawkRay var0) {
- return var0.m_tAnimate;
- }
-
- // $FF: synthetic method
- static void access$1(HawkRay var0, boolean var1) {
- var0.m_tAnimate = var1;
- }
-
- public void init() {
- ((Component)this).addMouseListener(new HawkRay$1(this));
- MediaTracker var1 = new MediaTracker(this);
- Image var2 = ((Applet)this).getImage(((Applet)this).getDocumentBase(), ((Applet)this).getParameter("image"));
- this.m_sh = ((Component)this).getSize().height << 2;
- this.m_sw = ((Component)this).getSize().width;
- this.screenPixel = new int[this.m_sw * this.m_sh >> 2];
- this.screenMem = new MemoryImageSource(this.m_sw, this.m_sh >> 2, this.screenPixel, 0, this.m_sw);
- var1.addImage(var2, 0);
-
- try {
- var1.waitForID(0);
- } catch (Exception var5) {
- }
-
- this.field_0 = var2.getWidth(this);
- this.field_1 = var2.getHeight(this);
- this.texel = new int[this.field_0 * this.field_1];
- PixelGrabber var3 = new PixelGrabber(var2.getSource(), 0, 0, this.field_0, this.field_1, this.texel, 0, this.field_0);
-
- try {
- var3.grabPixels();
- } catch (Exception var4) {
- return;
- }
-
- Object var6 = null;
- }
-
- public void paint(Graphics var1) {
- if (this.screenImage != null) {
- var1.drawImage(this.screenImage, 0, 0, this);
- }
-
- }
-
- protected void renderImage() {
- int var7 = 0;
- int var10 = this.field_0;
- int var11 = this.field_1;
- int var12 = this.m_sw - 1;
- int var13 = this.m_sw;
- int var14 = this.dispx;
- int var15 = this.dispz;
- int var16 = (3 * this.m_sh >> 2) + 1;
- int var17 = this.m_sh;
- double var18 = (double)this.m_sh;
- int var20 = this.field_0 << 10;
- int var21 = this.field_1 << 10;
- int var22 = (int)((double)240.0F - (double)120.0F * Math.sin((double)this.viewA * 0.0174432925));
- int var23 = (int)((double)1024.0F * Math.sin((double)this.viewA * 0.0174432925));
- int var24 = (int)((double)1024.0F * Math.cos((double)this.viewA * 0.0174432925));
- this.dispz += var24 << 3;
- this.dispx += var23 << 3;
-
- for(int var25 = var16; var25 <= var17; ++var25) {
- double var28 = (double)(var25 << 1) / var18 - (double)1.0F;
- double var30 = ((double)var22 - var28) / var28;
- double var32 = -(var30 + (double)1.0F) / (double)2.0F;
- int var1 = (int)((double)var24 * var32 + (double)var23 * var30) + var14;
- int var2 = (int)((double)(-var23) * var32 + (double)var24 * var30) + var15;
- int var3 = (int)((double)(-var24) * var32 + (double)var23 * var30) + var14;
- int var4 = (int)((double)var23 * var32 + (double)var24 * var30) + var15;
- int var8 = (var3 - var1) / var12;
- int var9 = (var4 - var2) / var12;
- var8 = (var8 % var20 + var20) % var20;
- var9 = (var9 % var21 + var21) % var21;
-
- for(int var34 = 0; var34 < var13; ++var34) {
- int var5 = (var10 - var1 >> 10) % var10;
- if (var5 < 0) {
- var5 += var10;
- }
-
- int var6 = (var2 >> 10) % var11;
- if (var6 < 0) {
- var6 += var11;
- }
-
- this.screenPixel[var7++] = this.texel[var6 * var10 + var5];
- var1 += var8;
- var2 += var9;
- }
- }
-
- this.screenImage = ((Component)this).createImage(this.screenMem);
- }
-
- public void run() {
- Graphics var1 = ((Component)this).getGraphics();
- Timer.sampleStart();
-
- for(; this.theThread != null && this.m_tAnimate; Timer.stop()) {
- Timer.start();
- if (this.viewA > 720) {
- this.dViewA = -1;
- } else if (this.viewA < 360) {
- this.dViewA = 1;
- }
-
- this.viewA += this.dViewA;
- this.renderImage();
- Thread.yield();
- this.paint(var1);
- if (this.garbageCnt++ > 120) {
- System.gc();
- this.garbageCnt = 0;
- }
- }
-
- Timer.sampleEnd();
- Timer.report();
- }
-
- public void start() {
- (this.theThread = new Thread(this)).start();
- }
-
- public void stop() {
- if (this.theThread != null) {
- this.theThread = null;
- }
-
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
- }
-