public static boolean warpNextMap(final MapleCharacter c, final boolean fromResting) {
	final int currentmap = c.getMapId();

	final ChannelServer ch = c.getClient().getChannelServer();
	if (!fromResting) {
	    clearMap(ch.getMapFactory().getMap(currentmap), true);
            c.gainItem(Items.currencyType.Sight, 1);
	    c.setDojoPoints(c.getDojoPoints() + 10);
	    c.getClient().getSession().write(MulungDojoPackets.Mulung_Pts(10, c.getDojoPoints()));
	}
	if (currentmap >= 925023800 && currentmap <= 925023814) {
	    final MapleMap map = ch.getMapFactory().getMap(925020003);
	    c.gainItem(Items.currencyType.Sight, 20);
	    c.changeMap(map, map.getPortal(1));
	    return true;
	}
	final int temp = (currentmap - 925000000) / 100;
	final int thisStage = (int) (temp - (Math.floor(temp / 100) * 100));
	final int nextmapid = 925020000 + ((thisStage + 1) * 100);

	for (int i = nextmapid; i < nextmapid + 15; i++) {
	    final MapleMap map = ch.getMapFactory().getMap(i);
	    if (map.getCharactersSize() == 0) {
		clearMap(map, false);
		c.changeMap(map, map.getPortal(0));
		spawnMonster(map, thisStage + 1);
		return true;
	    }
	}
	return false;
    }