// Path: src/com/redomar/game/gfx/Screen.java
// public class Screen {
// 
// 	private static final int MAP_WIDTH = 64;
// 	private static final int MAP_WIDTH_MASK = MAP_WIDTH - 1;
// 
// 	private static final byte BIT_MIRROR_X = 0x01;
// 	private static final byte BIT_MIRROR_Y = 0x02;
// 
// 	private int[] pixels;
// 
// 	private int xOffset = 0;
// 	private int yOffset = 0;
// 
// 	private int width;
// 	private int height;
// 
// 	private SpriteSheet sheet;
// 
// 	/**
// 	 * Constructs the draw area
// 	 * @param width width of the screen
// 	 * @param height height of the screen
// 	 * @param sheet  Sprite-sheet selector. Constructed Spritesheet needs to be here,
// 	 *               Sprite-sheet cp requires path only.
// 	 */
// 	public Screen(int width, int height, SpriteSheet sheet) {
// 
// 		this.setWidth(width);
// 		this.setHeight(height);
// 		this.sheet = sheet;
// 
// 		setPixels(new int[width * height]);
// 	}
// 
// 	public static int getMapWidthMask() {
// 		return MAP_WIDTH_MASK;
// 	}
// 
// 
// 	/**
// 	 * Rendering sprites from Spritesheet onto the game world.
// 	 * Render contstucter requires
// 	 * @param xPos X Postion of subject
// 	 * @param yPos Y Postion of subject
// 	 * @param tile tile location. e.g 7 * 32 + 1 is the oblong bullet on the 7th row 2nd colomn
// 	 * @param colour Using established colouring nomanclature. i.e. use com.redomar.game.gfx.Colours
// 	 * @param mirrorDir flip Direction: 0x01 flip verticle, 0x02 flip horizontal.
// 	 * @param scale Scale
// 	 */
// 	public void render(int xPos, int yPos, int tile, int colour, int mirrorDir,
// 					   int scale) {
// 		xPos -= xOffset;
// 		yPos -= yOffset;
// 
// 		boolean mirrorX = (mirrorDir & BIT_MIRROR_X) > 0;
// 		boolean mirrorY = (mirrorDir & BIT_MIRROR_Y) > 0;
// 
// 		int scaleMap = scale - 1;
// 		int xTile = tile % 32;
// 		int yTile = tile / 32;
// 		int tileOffset = (xTile << 3) + (yTile << 3) * sheet.getWidth();
// 
// 		for (int y = 0; y < 8; y++) {
// 			int ySheet = y;
// 
// 			if (mirrorY) {
// 				ySheet = 7 - y;
// 			}
// 
// 			int yPixel = y + yPos + (y * scaleMap) - ((scaleMap << 3) / 2);
// 
// 			for (int x = 0; x < 8; x++) {
// 				int xSheet = x;
// 
// 				if (mirrorX) {
// 					xSheet = 7 - x;
// 				}
// 
// 				int xPixel = x + xPos + (x * scaleMap) - ((scaleMap << 3) / 2);
// 
// 				int col = (colour >> (sheet.pixels[xSheet + ySheet
// 						* sheet.getWidth() + tileOffset] * 8)) & 255;
// 				if (col < 255) {
// 
// 					for (int yScale = 0; yScale < scale; yScale++) {
// 
// 						if (yPixel + yScale < 0
// 								| yPixel + yScale >= getHeight()) {
// 							continue;
// 						}
// 
// 						for (int xScale = 0; xScale < scale; xScale++) {
// 
// 							if (xPixel + xScale < 0
// 									| xPixel + xScale >= getWidth()) {
// 								continue;
// 							}
// 
// 							getPixels()[(xPixel + xScale) + (yPixel + yScale)
// 									* getWidth()] = col;
// 						}
// 					}
// 
// 				}
// 			}
// 		}
// 
// 	}
// 
// 	public void setOffset(int xOffset, int yOffset) {
// 		this.xOffset = xOffset;
// 		this.yOffset = yOffset;
// 	}
// 
// 	public int getWidth() {
// 		return width;
// 	}
// 
// 	public void setWidth(int width) {
// 		this.width = width;
// 	}
// 
// 	public int[] getPixels() {
// 		return pixels;
// 	}
// 
// 	public void setPixels(int[] pixels) {
// 		this.pixels = pixels;
// 	}
// 
// 	public int getHeight() {
// 		return height;
// 	}
// 
// 	public void setHeight(int height) {
// 		this.height = height;
// 	}
// }


import com.redomar.game.gfx.Screen;
package com.redomar.game.lib;


public class Font {

	private static java.awt.Font arial;
	private static java.awt.Font segoe;
	private static String chars = "" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ      "
			+ "0123456789.,:;'\"!?$%()-=+/      ";

	public Font() {
		Font.setArial(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
		Font.setSegoe(new java.awt.Font("Segoe UI", java.awt.Font.BOLD, 14));
	}

// Path: src/com/redomar/game/gfx/Screen.java
// public class Screen {
// 
// 	private static final int MAP_WIDTH = 64;
// 	private static final int MAP_WIDTH_MASK = MAP_WIDTH - 1;
// 
// 	private static final byte BIT_MIRROR_X = 0x01;
// 	private static final byte BIT_MIRROR_Y = 0x02;
// 
// 	private int[] pixels;
// 
// 	private int xOffset = 0;
// 	private int yOffset = 0;
// 
// 	private int width;
// 	private int height;
// 
// 	private SpriteSheet sheet;
// 
// 	/**
// 	 * Constructs the draw area
// 	 * @param width width of the screen
// 	 * @param height height of the screen
// 	 * @param sheet  Sprite-sheet selector. Constructed Spritesheet needs to be here,
// 	 *               Sprite-sheet cp requires path only.
// 	 */
// 	public Screen(int width, int height, SpriteSheet sheet) {
// 
// 		this.setWidth(width);
// 		this.setHeight(height);
// 		this.sheet = sheet;
// 
// 		setPixels(new int[width * height]);
// 	}
// 
// 	public static int getMapWidthMask() {
// 		return MAP_WIDTH_MASK;
// 	}
// 
// 
// 	/**
// 	 * Rendering sprites from Spritesheet onto the game world.
// 	 * Render contstucter requires
// 	 * @param xPos X Postion of subject
// 	 * @param yPos Y Postion of subject
// 	 * @param tile tile location. e.g 7 * 32 + 1 is the oblong bullet on the 7th row 2nd colomn
// 	 * @param colour Using established colouring nomanclature. i.e. use com.redomar.game.gfx.Colours
// 	 * @param mirrorDir flip Direction: 0x01 flip verticle, 0x02 flip horizontal.
// 	 * @param scale Scale
// 	 */
// 	public void render(int xPos, int yPos, int tile, int colour, int mirrorDir,
// 					   int scale) {
// 		xPos -= xOffset;
// 		yPos -= yOffset;
// 
// 		boolean mirrorX = (mirrorDir & BIT_MIRROR_X) > 0;
// 		boolean mirrorY = (mirrorDir & BIT_MIRROR_Y) > 0;
// 
// 		int scaleMap = scale - 1;
// 		int xTile = tile % 32;
// 		int yTile = tile / 32;
// 		int tileOffset = (xTile << 3) + (yTile << 3) * sheet.getWidth();
// 
// 		for (int y = 0; y < 8; y++) {
// 			int ySheet = y;
// 
// 			if (mirrorY) {
// 				ySheet = 7 - y;
// 			}
// 
// 			int yPixel = y + yPos + (y * scaleMap) - ((scaleMap << 3) / 2);
// 
// 			for (int x = 0; x < 8; x++) {
// 				int xSheet = x;
// 
// 				if (mirrorX) {
// 					xSheet = 7 - x;
// 				}
// 
// 				int xPixel = x + xPos + (x * scaleMap) - ((scaleMap << 3) / 2);
// 
// 				int col = (colour >> (sheet.pixels[xSheet + ySheet
// 						* sheet.getWidth() + tileOffset] * 8)) & 255;
// 				if (col < 255) {
// 
// 					for (int yScale = 0; yScale < scale; yScale++) {
// 
// 						if (yPixel + yScale < 0
// 								| yPixel + yScale >= getHeight()) {
// 							continue;
// 						}
// 
// 						for (int xScale = 0; xScale < scale; xScale++) {
// 
// 							if (xPixel + xScale < 0
// 									| xPixel + xScale >= getWidth()) {
// 								continue;
// 							}
// 
// 							getPixels()[(xPixel + xScale) + (yPixel + yScale)
// 									* getWidth()] = col;
// 						}
// 					}
// 
// 				}
// 			}
// 		}
// 
// 	}
// 
// 	public void setOffset(int xOffset, int yOffset) {
// 		this.xOffset = xOffset;
// 		this.yOffset = yOffset;
// 	}
// 
// 	public int getWidth() {
// 		return width;
// 	}
// 
// 	public void setWidth(int width) {
// 		this.width = width;
// 	}
// 
// 	public int[] getPixels() {
// 		return pixels;
// 	}
// 
// 	public void setPixels(int[] pixels) {
// 		this.pixels = pixels;
// 	}
// 
// 	public int getHeight() {
// 		return height;
// 	}
// 
// 	public void setHeight(int height) {
// 		this.height = height;
// 	}
// }


// Path: src/com/redomar/game/lib/Font.java
import com.redomar.game.gfx.Screen;

package com.redomar.game.lib;


public class Font {

	private static java.awt.Font arial;
	private static java.awt.Font segoe;
	private static String chars = "" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ      "
			+ "0123456789.,:;'\"!?$%()-=+/      ";

	public Font() {
		Font.setArial(new java.awt.Font("Arial", java.awt.Font.BOLD, 14));
		Font.setSegoe(new java.awt.Font("Segoe UI", java.awt.Font.BOLD, 14));
	}

	public static void render(String msg, Screen screen, int x, int y,