annotate libmlk-rpg/mlk/rpg/battle-bar-default.h @ 629:fee7bd30725c

rpg: cleanup tileset-loader-file
author David Demelier <markand@malikania.fr>
date Sat, 26 Aug 2023 16:09:35 +0200
parents 6e8f6640e05b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * battle-bar-default.h -- default battle status bar and menu implementation
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
445
773a082f0b91 misc: update copyright years
David Demelier <markand@malikania.fr>
parents: 434
diff changeset
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr>
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MLK_RPG_BATTLE_BAR_DEFAULT_H
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MLK_RPG_BATTLE_BAR_DEFAULT_H
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
431
8f59201dc76b core: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents: 398
diff changeset
22 #include <mlk/core/core.h>
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
433
862b15c3a3ae ui: cleanup hierarchy
David Demelier <markand@malikania.fr>
parents: 431
diff changeset
24 #include <mlk/ui/gridmenu.h>
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 struct battle;
398
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
27 struct battle_bar;
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 struct character;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 struct selection;
495
2af25db99273 ui: theme -> mlk_theme
David Demelier <markand@malikania.fr>
parents: 492
diff changeset
30 struct mlk_theme;
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
450
b26dd49f69ff core: event -> mlk_event (and friends)
David Demelier <markand@malikania.fr>
parents: 445
diff changeset
32 union mlk_event;
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 enum battle_bar_default_menu {
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 BATTLE_BAR_DEFAULT_MENU_ATTACK,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 BATTLE_BAR_DEFAULT_MENU_MAGIC,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 BATTLE_BAR_DEFAULT_MENU_ITEM,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 BATTLE_BAR_DEFAULT_MENU_SPECIAL
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 };
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 enum battle_bar_default_state {
398
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
42 BATTLE_BAR_DEFAULT_STATE_NONE,
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 BATTLE_BAR_DEFAULT_STATE_MENU,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 BATTLE_BAR_DEFAULT_STATE_GRID
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 };
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
46
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 struct battle_bar_default {
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 int x;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 int y;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 unsigned int w;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 unsigned int h;
495
2af25db99273 ui: theme -> mlk_theme
David Demelier <markand@malikania.fr>
parents: 492
diff changeset
52 struct mlk_theme *theme;
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 enum battle_bar_default_state state;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 enum battle_bar_default_menu menu;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
398
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
56 /* Private fields. */
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
57 const char **items;
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
58 size_t itemsz;
492
c7b18475f640 ui: gridmenu -> mlk_gridmenu
David Demelier <markand@malikania.fr>
parents: 462
diff changeset
59 struct mlk_gridmenu grid;
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 };
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
61
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 void
398
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
63 battle_bar_default_init(struct battle_bar_default *);
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 battle_bar_default_open_magic(struct battle_bar_default *, const struct battle *, struct character *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 battle_bar_default_open_item(struct battle_bar_default *, const struct battle *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 battle_bar_default_start(struct battle_bar_default *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 battle_bar_default_select(struct battle_bar_default *, struct battle *, const struct selection *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 void
450
b26dd49f69ff core: event -> mlk_event (and friends)
David Demelier <markand@malikania.fr>
parents: 445
diff changeset
78 battle_bar_default_handle(struct battle_bar_default *, struct battle *, const union mlk_event *);
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 battle_bar_default_draw(const struct battle_bar_default *, const struct battle *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 battle_bar_default_finish(struct battle_bar_default *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 void
398
14ce7c4871e3 rpg: overhaul of battle bar
David Demelier <markand@malikania.fr>
parents: 395
diff changeset
87 battle_bar_default(struct battle_bar_default *, struct battle_bar *);
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
462
5729efd23286 core: core -> mlk_core
David Demelier <markand@malikania.fr>
parents: 450
diff changeset
89 MLK_CORE_END_DECLS
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 #endif /* !MLK_RPG_BATTLE_BAR_DEFAULT_H */