annotate src/core/sys.h @ 59:52792b863ff7

misc: separate core from game
author David Demelier <markand@malikania.fr>
date Tue, 21 Jan 2020 12:42:33 +0100
parents src/sys.h@91bc2329ab0c
children 6203e1ac9b18
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * sys.h -- system routines
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MOLKO_SYS_H
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MOLKO_SYS_H
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 /**
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * \file sys.h
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * \brief System routines.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
27 #include <stdarg.h>
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #include <stdbool.h>
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 /**
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * Initialize the system, should be called in the beginning of the main.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 bool
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 sys_init(void);
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 /**
31
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
37 * Get the base system directory path.
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
38 *
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
39 * \return the path where the executable lives
31
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
40 */
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
41 const char *
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
42 sys_datadir(void);
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
43
80f008ce2079 core: add base dir
David Demelier <markand@malikania.fr>
parents: 23
diff changeset
44 /**
32
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
45 * Construct path to assets directory using printf-like format.
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
46 *
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
47 * \param fmt the format string
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
48 * \return the path to the file
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
49 * \note This function returns pointer to static string.
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
50 */
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
51 const char *
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
52 sys_datapath(const char *fmt, ...);
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
53
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
54 /**
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
55 * Similar to \a sys_datapath.
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
56 *
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
57 * \param fmt the format string
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
58 * \param ap the variadic arguments pointer
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
59 * \return the path to the file
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
60 * \note This function returns pointer to static string.
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
61 */
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
62 const char *
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
63 sys_datapathv(const char *fmt, va_list ap);
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
64
91bc2329ab0c core: implement data directory access, closes #2454 @1h
David Demelier <markand@malikania.fr>
parents: 31
diff changeset
65 /**
23
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 * Close the system.
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 */
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 void
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 sys_close(void);
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
bc9637a2601b core: add basic system routines
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 #endif /* !MOLKO_SYS_H */