naev 0.11.5
pilot_flags.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#define pilot_clearFlagsRaw(a) memset((a), 0, PILOT_FLAGS_MAX)
7#define pilot_copyFlagsRaw(d,s) memcpy((d), (s), PILOT_FLAGS_MAX)
8#define pilot_isFlagRaw(a,f) ((a)[f])
9#define pilot_setFlagRaw(a,f) ((a)[f] = 1)
10#define pilot_isFlag(p,f) ((p)->flags[f])
11#define pilot_setFlag(p,f) ((p)->flags[f] = 1)
12#define pilot_rmFlag(p,f) ((p)->flags[f] = 0)
13enum {
14 /*
15 * Creation-time flags
16 */
17 PILOT_PLAYER,
18 PILOT_PLAYER_FLEET,
19 PILOT_CARRIED,
20 PILOT_CREATED_AI,
21 PILOT_NO_OUTFITS,
22 PILOT_NO_EQUIP,
23 /*
24 * Dynamic flags
25 */
26 /* Escort stuff. */
27 PILOT_NOFREE,
28 PILOT_PERSIST,
29 PILOT_NOCLEAR,
30 /* Hyperspace. */
31 PILOT_HYP_PREP,
32 PILOT_HYP_BRAKE,
33 PILOT_HYP_BEGIN,
34 PILOT_HYPERSPACE,
35 PILOT_HYP_END,
36 PILOT_HAILING,
37 /* Boarding. */
38 PILOT_BOARDABLE,
39 PILOT_BOARDED,
40 PILOT_NOBOARD,
41 PILOT_BOARDING,
42 /* Disabling. */
43 PILOT_NODISABLE,
44 PILOT_DISABLED,
45 PILOT_DISABLED_PERM,
46 /* Death. */
47 PILOT_NODEATH,
48 PILOT_DEAD,
49 PILOT_DEATH_SOUND,
50 PILOT_EXPLODED,
51 PILOT_DELETE,
52 /* Invincibility. */
53 PILOT_INVINCIBLE,
54 PILOT_INVINC_PLAYER,
55 /* Player-related stuff. */
56 PILOT_HOSTILE,
57 PILOT_FRIENDLY,
58 PILOT_SCANNING,
59 PILOT_COMBAT,
60 PILOT_BRIBED,
61 PILOT_DISTRESSED,
62 PILOT_NONTARGETABLE,
63 /* Landing stuff. */
64 PILOT_LANDING,
65 PILOT_TAKEOFF,
66 /* Visibility stuff. */
67 PILOT_STEALTH,
68 PILOT_NORENDER,
69 PILOT_VISPLAYER,
70 PILOT_VISIBLE,
71 PILOT_INVISIBLE,
72 PILOT_HIDE,
73 PILOT_HILIGHT,
74 /* Outfit stuff. */
75 PILOT_AFTERBURNER,
76 /* Refueling. */
77 PILOT_REFUELING,
78 PILOT_REFUELBOARDING,
79 /* Cooldown. */
80 PILOT_COOLDOWN,
81 PILOT_COOLDOWN_BRAKE,
82 /* Manual control and limits. */
83 PILOT_MANUAL_CONTROL,
84 PILOT_NOJUMP,
85 PILOT_NOLAND,
86 PILOT_HASSPEEDLIMIT,
87 PILOT_BRAKING,
88 /* Sentinal. */
89 PILOT_FLAGS_MAX
90};
91typedef char PilotFlags[ PILOT_FLAGS_MAX ];