public static boolean warpNextMap_Agent(final MapleCharacter c, final boolean fromResting) {
	final int currentmap = c.getMapId();
	final int thisStage = (currentmap - baseAgentMapId) / 100;

	MapleMap map = c.getMap();
	if (map.getSpawnedMonstersOnMap() > 0) {
	    return false;
	}
	if (!fromResting) {
	    clearMap(map, true);
	    c.modifyCSPoints(1, 40);
	}
	final ChannelServer ch = c.getClient().getChannelServer();
	if (currentmap >= 970032700 && currentmap <= 970032800) {
	    map = ch.getMapFactory().getMap(baseAgentMapId);
	    c.changeMap(map, map.getPortal(0));
	    return true;
	}
	final int nextmapid = baseAgentMapId + ((thisStage + 1) * 100);
	for (int i = nextmapid; i < nextmapid + 7; i++) {
	    map = ch.getMapFactory().getMap(i);
	    if (map.getCharactersSize() == 0) {
		clearMap(map, false);
		c.changeMap(map, map.getPortal(0));
		map.respawn(true);
		return true;
	    }
	}
	return false;
    }