private void init(){
		running = true;
		
		mapheight= 6000;
		mapwidth = 6000;
		debugInfo = false;
		
		double toRadian = Math.PI/(180*trigScale);
		
		sin = new float[(90*trigScale) + 1];
		for(int i=0;i<sin.length;i++){
			sin[i] = ((float)Math.sin(((double)i) * toRadian));
		}
		
		//cosine
		cos = new float[(90*trigScale) + 1];
		for(int i=0;i<cos.length;i++){
			cos[i] = ((float)Math.cos(((double)i) * toRadian));
		}
		
		//tangent
		tan = new float[(90*trigScale) + 1];
		for(int i=0;i<tan.length;i++){
			tan[i] = sin[i]/cos[i];
		}
		
		playerNumber = 1;
		
		try{
			robot = new Robot();
		}catch(Exception e){
			System.err.println("robot init");
			System.err.println(e);
		}
		
		finalPos = new Point();
		mouse = new Point();
		mouseWorld = new Point();
		screenloc = new Point();
		center = new Point();
		
		Window w = sm.getFullScreenWindow();
		w.setBackground(Color.BLACK);
		w.setForeground(Color.WHITE);
		
		screenHeight = w.getHeight();
		screenWidth = w.getWidth();
		
		screenXFactor = screenWidth/(double) (mapwidth);
		screenYFactor = screenHeight/(double) (mapheight);
		
		System.out.println(screenXFactor + ", " + screenYFactor);
		
		/* initializing font styles */
		int fontSize = (int)Math.round(/*Font Size:*/12.0/**/*screenWidth*.001);
		font1 = new Font("Arial", Font.BOLD, fontSize);
		
		fontSize = (int)Math.round(/*Font Size:*/6.0/**/*screenWidth*.001);
		font2 = new Font("Arial", Font.BOLD, fontSize);
		
		fontSize = (int)Math.round(/*Font Size:*/8.0/**/*screenWidth*.001);
		font3 = new Font("Arial", Font.BOLD, fontSize);

		center.x = sm.getWidth() / 2;
		center.y = sm.getHeight() / 2;
		
		mouse.x = center.x;
		mouse.y = center.y;
		
		w.addMouseMotionListener(this);
		w.addMouseListener(this);
		w.addMouseWheelListener(this);
		w.addKeyListener(this);
		
		generator = new Random();
		
		indexToText = new IndexToTextTranslator();
		
	}