Moving responsibility off from main file.
This commit is contained in:
parent
8bd7147a8e
commit
196a11d1fe
@ -217,6 +217,7 @@ void initialize_game() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void end_game(struct deck *deck) {
|
void end_game(struct deck *deck) {
|
||||||
|
print_deck(deck); // debugging purposes
|
||||||
delete_deck(deck);
|
delete_deck(deck);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -111,3 +111,33 @@ int key_event() {
|
|||||||
|
|
||||||
return(pressed_key);
|
return(pressed_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handle_keyboard_event(int key) {
|
||||||
|
switch (key) {
|
||||||
|
case 'h':
|
||||||
|
case KEY_LEFT:
|
||||||
|
move_cursor(cursor, LEFT);
|
||||||
|
break;
|
||||||
|
case 'j':
|
||||||
|
case KEY_DOWN:
|
||||||
|
move_cursor(cursor, DOWN);
|
||||||
|
break;
|
||||||
|
case 'k':
|
||||||
|
case KEY_UP:
|
||||||
|
move_cursor(cursor, UP);
|
||||||
|
break;
|
||||||
|
case 'l':
|
||||||
|
case KEY_RIGHT:
|
||||||
|
move_cursor(cursor, RIGHT);
|
||||||
|
break;
|
||||||
|
case KEY_SPACEBAR:
|
||||||
|
if (cursor_on_stock(cursor)) {
|
||||||
|
handle_stock_event();
|
||||||
|
} else {
|
||||||
|
handle_card_movement(cursor);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#define KEY_SPACEBAR ' '
|
#define KEY_SPACEBAR ' '
|
||||||
|
|
||||||
extern struct deck *deck;
|
extern struct deck *deck;
|
||||||
|
extern struct cursor *cursor;
|
||||||
|
|
||||||
void mark_origin(struct cursor *);
|
void mark_origin(struct cursor *);
|
||||||
struct stack *cursor_stack(struct cursor *);
|
struct stack *cursor_stack(struct cursor *);
|
||||||
@ -15,5 +16,6 @@ bool cursor_on_invalid_spot(struct cursor *);
|
|||||||
void handle_stock_event();
|
void handle_stock_event();
|
||||||
void handle_card_movement(struct cursor *);
|
void handle_card_movement(struct cursor *);
|
||||||
int key_event();
|
int key_event();
|
||||||
|
void handle_keyboard_event();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,17 +4,14 @@
|
|||||||
#include "../lib/cursor.h"
|
#include "../lib/cursor.h"
|
||||||
#include "../lib/keyboard.h"
|
#include "../lib/keyboard.h"
|
||||||
|
|
||||||
extern struct deck *deck;
|
|
||||||
extern struct cursor *cursor;
|
|
||||||
|
|
||||||
int main(int argc, const char *argv[]) {
|
int main(int argc, const char *argv[]) {
|
||||||
int option;
|
int key;
|
||||||
|
|
||||||
initialize_curses();
|
initialize_curses();
|
||||||
greet_player();
|
greet_player();
|
||||||
|
|
||||||
while (option != KEY_SPACEBAR) {
|
while (key != KEY_SPACEBAR) {
|
||||||
switch (option = getch()) {
|
switch (key = getch()) {
|
||||||
case KEY_SPACEBAR:
|
case KEY_SPACEBAR:
|
||||||
initialize_game();
|
initialize_game();
|
||||||
break;
|
break;
|
||||||
@ -27,35 +24,12 @@ int main(int argc, const char *argv[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
switch (option = getch()) {
|
if ((key = getch()) == 'q' || key == 'Q') {
|
||||||
case 'h':
|
end_game();
|
||||||
case KEY_LEFT:
|
end_curses();
|
||||||
move_cursor(cursor, LEFT);
|
exit(0);
|
||||||
break;
|
} else {
|
||||||
case 'j':
|
handle_keyboard_event(key);
|
||||||
case KEY_DOWN:
|
|
||||||
move_cursor(cursor, DOWN);
|
|
||||||
break;
|
|
||||||
case 'k':
|
|
||||||
case KEY_UP:
|
|
||||||
move_cursor(cursor, UP);
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
case KEY_RIGHT:
|
|
||||||
move_cursor(cursor, RIGHT);
|
|
||||||
break;
|
|
||||||
case KEY_SPACEBAR:
|
|
||||||
if (cursor_on_stock(cursor)) {
|
|
||||||
handle_stock_event();
|
|
||||||
} else {
|
|
||||||
handle_card_movement(cursor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
case 'Q':
|
|
||||||
end_curses();
|
|
||||||
print_deck(deck);
|
|
||||||
exit(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user