naev 0.10.4
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 /*
23 * Dynamic flags
24 */
25 /* Escort stuff. */
26 PILOT_NOFREE,
27 PILOT_PERSIST,
28 PILOT_NOCLEAR,
29 /* Hyperspace. */
30 PILOT_HYP_PREP,
31 PILOT_HYP_BRAKE,
32 PILOT_HYP_BEGIN,
33 PILOT_HYPERSPACE,
34 PILOT_HYP_END,
35 PILOT_HAILING,
36 /* Boarding. */
37 PILOT_BOARDABLE,
38 PILOT_BOARDED,
39 PILOT_NOBOARD,
40 PILOT_BOARDING,
41 /* Disabling. */
42 PILOT_NODISABLE,
43 PILOT_DISABLED,
44 PILOT_DISABLED_PERM,
45 /* Death. */
46 PILOT_NODEATH,
47 PILOT_DEAD,
48 PILOT_DEATH_SOUND,
49 PILOT_EXPLODED,
50 PILOT_DELETE,
51 /* Invincibility. */
52 PILOT_INVINCIBLE,
53 PILOT_INVINC_PLAYER,
54 /* Player-related stuff. */
55 PILOT_HOSTILE,
56 PILOT_FRIENDLY,
57 PILOT_COMBAT,
58 PILOT_BRIBED,
59 PILOT_DISTRESSED,
60 PILOT_NONTARGETABLE,
61 /* Landing stuff. */
62 PILOT_LANDING,
63 PILOT_TAKEOFF,
64 /* Visibility stuff. */
65 PILOT_STEALTH,
66 PILOT_NORENDER,
67 PILOT_VISPLAYER,
68 PILOT_VISIBLE,
69 PILOT_INVISIBLE,
70 PILOT_HIDE,
71 PILOT_HILIGHT,
72 /* Outfit stuff. */
73 PILOT_AFTERBURNER,
74 /* Refueling. */
75 PILOT_REFUELING,
76 PILOT_REFUELBOARDING,
77 /* Cooldown. */
78 PILOT_COOLDOWN,
79 PILOT_COOLDOWN_BRAKE,
80 /* Manual control and limits. */
81 PILOT_MANUAL_CONTROL,
82 PILOT_NOJUMP,
83 PILOT_NOLAND,
84 PILOT_HASSPEEDLIMIT,
85 PILOT_BRAKING,
86 /* Sentinal. */
87 PILOT_FLAGS_MAX
88};
89typedef char PilotFlags[ PILOT_FLAGS_MAX ];