public void render ( Graphics gr, int cx, int cy ) {
		int offx = -cx + LD22Game.WIDTH / 2;
		int offy = -cy + LD22Game.HEIGHT / 2;
		
		for ( int i = 0; i < numUsed; i++ ) {
			int p = ( (firstUsed+i) % MAX_PARTS ) * NUM_FIELDS;
			if ( particles[ p + FIELD_L ] > 0 && particles[ p + FIELD_A ] > 0 ) {
				Image img = types.get( particles[ p + FIELD_T ] );
				int x = particles[ p + FIELD_X ] >> 8;
				int y = particles[ p + FIELD_Y ] >> 8;
				
				// HARDCODED PARTICLE MODE! don't do this at home
				Color col;
				int a = particles[ p + FIELD_A ] * 255 / 1024;
				
				if ( img == Sprites.BLUE ) {
					gr.setDrawMode(  Graphics.MODE_ADD );
					col = new Color( a, a, a, 255 );
				} else {
					gr.setDrawMode(  Graphics.MODE_NORMAL );
					col = new Color( 255, 255, 255, a );
				}
				gr.drawImage( img, x + offx, y + offy, col );
			}
		}
		
		gr.setDrawMode( Graphics.MODE_NORMAL );
	}