/****
 *
 * Implementation of planet.h.  See that file for function descriptions.
 *
 */

#include "planet.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Planet* new_planet(char name[NAME_SIZE], double diameter, int moons,
	double orbit_time, double rotation_time) {

    Planet* p = (Planet*) malloc(sizeof(Planet));
    strcpy(p->name, name);
    p->diameter = diameter;
    p->moons = moons;
    p->orbit_time = orbit_time;
    p->rotation_time = rotation_time;

    return p;

}

Planet* read_planet() {
    Planet* p = (Planet*) malloc(sizeof(Planet));

    printf(
"Input planet name, diameter, number of moons, orbit time, and rotation time:\n");
    scanf("%s%lf%d%lf%lf", p->name, &p->diameter, &p->moons, &p->orbit_time,
        &p->rotation_time);

    return p;
}

void print_planet(Planet* p) {
    if (!is_empty(p)) {
        printf(
"Planet name: %s\nDiameter: %.3f\nNumber of moons: %d\n\
Orbit time: %.3f\nRotation time: %.3f\n",
	    p->name, p->diameter, p->moons,
	    p->orbit_time, p->rotation_time);
    }
    else {
	printf("Empty Planet\n");
    }
}

void change_name(Planet* p, char* name) {
    strcpy(p->name, name);
}

void change_diameter(Planet* p, double diameter) {
    p->diameter = diameter;
}

void change_moons(Planet* p, int moons) {
    p->moons = moons;
}

void change_orbit_time(Planet* p, double orbit_time) {
    p->orbit_time = orbit_time;
}

void change_rotation_time(Planet* p, double rotation_time) {
    p->rotation_time = rotation_time;
}

int is_empty(Planet* p) {
    return p == NULL;
}