annotate src/libmlk-rpg/rpg/battle-bar-default.h @ 395:ef2fc4442ed5

ui: don't use fixed size arrays
author David Demelier <markand@malikania.fr>
date Fri, 18 Feb 2022 16:02:01 +0100
parents 3f13dc6c0e37
children 14ce7c4871e3
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 *
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr>
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
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <core/core.h>
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <ui/frame.h>
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <ui/gridmenu.h>
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 struct battle;
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;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 union event;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 enum battle_bar_default_menu {
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 BATTLE_BAR_DEFAULT_MENU_ATTACK,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 BATTLE_BAR_DEFAULT_MENU_MAGIC,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 BATTLE_BAR_DEFAULT_MENU_ITEM,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 BATTLE_BAR_DEFAULT_MENU_SPECIAL
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 };
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 enum battle_bar_default_state {
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 BATTLE_BAR_DEFAULT_STATE_MENU,
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 BATTLE_BAR_DEFAULT_STATE_GRID
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 };
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 struct battle_bar_default {
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 int x;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 int y;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 unsigned int w;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 unsigned int h;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 enum battle_bar_default_state state;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 /* Right status frame. */
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 struct frame status_frame;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 /* Main menu selection. */
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 struct frame menu_frame;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 enum battle_bar_default_menu menu;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 /* Sub menu selection (spells/objects). */
395
ef2fc4442ed5 ui: don't use fixed size arrays
David Demelier <markand@malikania.fr>
parents: 385
diff changeset
60 char sub_items[16][128];
385
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 struct gridmenu sub_grid;
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 };
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 CORE_BEGIN_DECLS
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 battle_bar_default_positionate(struct battle_bar_default *, const struct battle *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 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
71
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 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
74
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 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
77
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 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
80
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 battle_bar_default_handle(struct battle_bar_default *bar, struct battle *bt, const union event *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 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
86
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 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
89
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 void
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 battle_bar_default(struct battle *);
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 CORE_END_DECLS
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
3f13dc6c0e37 rpg: separate battle and the bar, closes #2522
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 #endif /* !MLK_RPG_BATTLE_BAR_DEFAULT_H */