Storm ruins cruise to Mexico, diverts to San Diego