#include "pet.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "basics.h"
#include "dog.h"

   void make_noise (pet my_pet) {
      switch (my_pet.kind) {
         case DOG:   printf ("Woof.");
            break;
         case FISH:  printf ("Blub.");
            break;
         case CAT:   printf ("Meow.");
            break;
         default:    fprintf (stderr, "Unrecognized pet type %d!", my_pet.kind);
            exit(0);
         }
      }

   int main () {
      pet rover;
   
      rover.kind = DOG;
      rover.info.mydog.age = 9;
      strcpy (rover.info.mydog.name, "J.D.'s Beach Bum II");
      rover.info.mydog.num_bones = 4;
      rover.info.myfish.salt_water = TRUE; /* still legal, but changes the dog's name! */
   
      switch (rover.kind) {
         case (DOG) : 
               {
               printf ("%s has %d bones.\n", rover.info.mydog.name, rover.info.mydog.num_bones);
               printf ("After collecting two more, %s has %d bones.",
               	rover.info.mydog.name, collect_bones(2, &(rover.info.mydog))); 
               break;
               }
         case (FISH) : 
               {
               printf ("Rover is %s", rover.info.myfish.color);
               break;
               }
         case (CAT) : 
               {
               printf ("Rover is %d years old.", rover.info.mycat.age);
               break;
               }
         }
   /* rover.mycat.num_bones = 5; doesn't compile */
   
      make_noise (rover);
         
      return 0;
      }
