summaryrefslogtreecommitdiffstats
path: root/src/main.c
blob: db194a5c36a6597c230d25792b175c3ea2eb40f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/******************************************************************************
 *	Copyright (C) 2015	Alejandro Colomar Andrés		      *
 ******************************************************************************/


/******************************************************************************
 ******* headers **************************************************************
 ******************************************************************************/
#include <stdio.h>

#include "libalx/extra/ncurses/common.h"

#include "mine-sweeper/about/about.h"
#include "mine-sweeper/ctrl/start.h"
#include "mine-sweeper/game/core.h"
#include "mine-sweeper/menu/iface.h"
#include "mine-sweeper/menu/parser.h"
#include "mine-sweeper/player/iface.h"
#include "mine-sweeper/save/save.h"
#include "mine-sweeper/save/score.h"


/******************************************************************************
 ******* static functions *****************************************************
 ******************************************************************************/
static	void	init_all	(int *argc, char *(*argv[]));
static	void	cleanup		(void);


/******************************************************************************
 ******* main *****************************************************************
 ******************************************************************************/
int	main	(int argc, char *argv[])
{
	init_all(&argc, &argv);

	print_share_file(SHARE_COPYRIGHT);

	start_switch();

	menu_iface();

	cleanup();

	return	0;
}


/******************************************************************************
 ******* static functions *****************************************************
 ******************************************************************************/
static	void	init_all	(int *argc, char *(*argv[]))
{

	alx_ncurses_init();
	alx_ncurses_pause();

	/* Init modules */
	menu_iface_init();
	game_init();
	save_init();

	/* Modes */
	start_mode		= START_FOO;
	flag_exit		= false;
	menu_iface_mode		= MENU_IFACE_TUI;
	player_iface_mode	= PLAYER_IFACE_TUI;

	/* Parse command line options */
	parser(*argc, *argv);
}

static	void	cleanup		(void)
{

	alx_ncurses_resume();
	alx_ncurses_deinit();
}


/******************************************************************************
 ******* end of file **********************************************************
 ******************************************************************************/