#include #include #include #include #include #include "card.h" void allocate_card(struct card **card) { if (!(*card = malloc(sizeof(**card)))) { fprintf(stderr, "%s: %s (%s:%d)\n", program_name, strerror(errno), __FILE__, __LINE__ - 1); exit(errno); } allocate_frame(&((*card)->frame)); } void initialize_card(struct card *card) { initialize_frame(card->frame); card->value = NO_VALUE; card->suit = NO_SUIT; card->face = NO_FACE; } struct card *duplicate_card(struct card *card) { struct card *new_card; allocate_card(&new_card); set_card(new_card, card->value, card->suit, card->face, card->frame->start_y, card->frame->start_x); return(new_card); } void free_card(struct card *card) { if (card) { free_frame(card->frame); } free(card); } void set_card(struct card *card, enum value value, enum suit suit, enum face face, int start_y, int start_x) { set_frame(card->frame, start_y, start_x); card->value = value; card->suit = suit; card->face = face; } void expose_card(struct card *card) { card->face = EXPOSED; } void cover_card(struct card *card) { card->face = COVERED; }