content: // Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
  // Jad home page: http://www.kpdus.com/jad.html
  // Decompiler options: packimports(3) 
  
  public class DrawingArea extends NodeSub {
  
  	public static void initDrawingArea(int i, int j, int ai[]) {
  		pixels = ai;
  		width = j;
  		height = i;
  		setDrawingArea(i, 0, j, 0);
  	}
  
  	public static void defaultDrawingAreaSize() {
  		topX = 0;
  		topY = 0;
  		bottomX = width;
  		bottomY = height;
  		if (ClientSettings.FULL_512PX_VIEWPORT) {
  			centerX = bottomX;
  		} else {
  			centerX = bottomX - 1;
  		}
  		centerY = bottomX / 2;
  	}
  
  	public static void setDrawingArea(int i, int j, int k, int l) {
  		if (j < 0) {
  			j = 0;
  		}
  		if (l < 0) {
  			l = 0;
  		}
  		if (k > width) {
  			k = width;
  		}
  		if (i > height) {
  			i = height;
  		}
  		topX = j;
  		topY = l;
  		bottomX = k;
  		bottomY = i;
  		if (ClientSettings.FULL_512PX_VIEWPORT) {
  			centerX = bottomX;
  		} else {
  			centerX = bottomX - 1;
  		}
  		centerY = bottomX / 2;
  		anInt1387 = bottomY / 2;
  	}
  
  	public static void setAllPixelsToZero() {
  		int i = width * height;
  		for (int j = 0; j < i; j++) {
  			pixels[j] = 0;
  		}
  
  	}
  
  	public static void fillArea(int _color, int _y, int _width, int _height, int _opacity, int _x) {
  		if (_x < topX) {
  			_width -= topX - _x;
  			_x = topX;
  		}
  		if (_y < topY) {
  			_height -= topY - _y;
  			_y = topY;
  		}
  		if (_x + _width > bottomX) {
  			_width = bottomX - _x;
  		}
  		if (_y + _height > bottomY) {
  			_height = bottomY - _y;
  		}
  		int l1 = 256 - _opacity;
  		int i2 = (_color >> 16 & 0xff) * _opacity;
  		int j2 = (_color >> 8 & 0xff) * _opacity;
  		int k2 = (_color & 0xff) * _opacity;
  		int k3 = width - _width;
  		int l3 = _x + _y * width;
  		for (int i4 = 0; i4 < _height; i4++) {
  			for (int j4 = -_width; j4 < 0; j4++) {
  				int l2 = (pixels[l3] >> 16 & 0xff) * l1;
  				int i3 = (pixels[l3] >> 8 & 0xff) * l1;
  				int j3 = (pixels[l3] & 0xff) * l1;
  				int k4 = (i2 + l2 >> 8 << 16) + (j2 + i3 >> 8 << 8) + (k2 + j3 >> 8);
  				pixels[l3++] = k4;
  			}
  
  			l3 += k3;
  		}
  	}
  
  	public static void fillArea(int _height, int _y, int _color, int _width, int _x) {
  		if (_x < topX) {
  			_width -= topX - _x;
  			_x = topX;
  		}
  		if (_y < topY) {
  			_height -= topY - _y;
  			_y = topY;
  		}
  		if (_x + _width > bottomX) {
  			_width = bottomX - _x;
  		}
  		if (_y + _height > bottomY) {
  			_height = bottomY - _y;
  		}
  		int k1 = width - _width;
  		int l1 = _x + _y * width;
  		for (int i2 = -_height; i2 < 0; i2++) {
  			for (int j2 = -_width; j2 < 0; j2++) {
  				pixels[l1++] = _color;
  			}
  
  			l1 += k1;
  		}
  
  	}
  
  	public static void fillPixels(int _y, int _height, int _color, int _x, int _width) {
  		drawHorizontalLine(_y, _color, _width, _x);
  		drawHorizontalLine(_y + _height - 1, _color, _width, _x);
  		drawVerticalLine(_y, _color, _height, _x);
  		drawVerticalLine(_y, _color, _height, _x + _width - 1);
  	}
  
  	public static void drawFrameRounded(int _y, int _height, int _opacity, int _color, int _width, int _x) {
  		drawHorizontalLine(_color, _width, _y, _opacity, _x);
  		drawHorizontalLine(_color, _width, _y + _height - 1, _opacity, _x);
  		if (_height >= 3) {
  			drawVerticalLine(_color, _x, _opacity, _y + 1, _height - 2);
  			drawVerticalLine(_color, _x + _width - 1, _opacity, _y + 1, _height - 2);
  		}
  	}
  
  	public static void drawHorizontalLine(int i, int j, int k, int l) {
  		if (i < topY || i >= bottomY) {
  			return;
  		}
  		if (l < topX) {
  			k -= topX - l;
  			l = topX;
  		}
  		if (l + k > bottomX) {
  			k = bottomX - l;
  		}
  		int i1 = l + i * width;
  		for (int j1 = 0; j1 < k; j1++) {
  			pixels[i1 + j1] = j;
  		}
  
  	}
  
  	private static void drawHorizontalLine(int _color, int _width, int _y, int _opacity, int _x) {
  		if (_y < topY || _y >= bottomY) {
  			return;
  		}
  		if (_x < topX) {
  			_width -= topX - _x;
  			_x = topX;
  		}
  		if (_x + _width > bottomX) {
  			_width = bottomX - _x;
  		}
  		int j1 = 256 - _opacity;
  		int k1 = (_color >> 16 & 0xff) * _opacity;
  		int l1 = (_color >> 8 & 0xff) * _opacity;
  		int i2 = (_color & 0xff) * _opacity;
  		int i3 = _x + _y * width;
  		for (int j3 = 0; j3 < _width; j3++) {
  			int j2 = (pixels[i3] >> 16 & 0xff) * j1;
  			int k2 = (pixels[i3] >> 8 & 0xff) * j1;
  			int l2 = (pixels[i3] & 0xff) * j1;
  			int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
  			pixels[i3++] = k3;
  		}
  
  	}
  
  	public static void drawVerticalLine(int _y, int _color, int _height, int _x) {
  		if (_x < topX || _x >= bottomX) {
  			return;
  		}
  		if (_y < topY) {
  			_height -= topY - _y;
  			_y = topY;
  		}
  		if (_y + _height > bottomY) {
  			_height = bottomY - _y;
  		}
  		int j1 = _x + _y * width;
  		for (int k1 = 0; k1 < _height; k1++) {
  			pixels[j1 + k1 * width] = _color;
  		}
  
  	}
  
  	private static void drawVerticalLine(int i, int j, int k, int l, int i1) {
  		if (j < topX || j >= bottomX) {
  			return;
  		}
  		if (l < topY) {
  			i1 -= topY - l;
  			l = topY;
  		}
  		if (l + i1 > bottomY) {
  			i1 = bottomY - l;
  		}
  		int j1 = 256 - k;
  		int k1 = (i >> 16 & 0xff) * k;
  		int l1 = (i >> 8 & 0xff) * k;
  		int i2 = (i & 0xff) * k;
  		int i3 = j + l * width;
  		for (int j3 = 0; j3 < i1; j3++) {
  			int j2 = (pixels[i3] >> 16 & 0xff) * j1;
  			int k2 = (pixels[i3] >> 8 & 0xff) * j1;
  			int l2 = (pixels[i3] & 0xff) * j1;
  			int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
  			pixels[i3] = k3;
  			i3 += width;
  		}
  
  	}
  
  	DrawingArea() {
  	}
  
  	public static int pixels[];
  	public static int width;
  	public static int height;
  	public static int topY;
  	public static int bottomY;
  	public static int topX;
  	public static int bottomX;
  	public static int centerX;
  	public static int centerY;
  	public static int anInt1387;
  
  }
  