3 bool autocvar_sv_minigames;
4 bool autocvar_sv_minigames_observer;
6 /// Create a new minigame session
7 /// \return minigame session entity
8 entity start_minigame(entity player, string minigame );
10 /// Join an existing minigame session
11 /// \return minigame session entity
12 entity join_minigame(entity player, string game_id );
14 /// Invite a player to join in a minigame
15 /// \return Error string
16 string invite_minigame(entity inviter, entity player);
18 // Part minigame session
19 void part_minigame(entity player);
21 // Ends a minigame session
22 void end_minigame(entity minigame_session);
24 // Ends all minigame sessions
27 // Only sends entities to players who joined the minigame
28 // Use on customizeentityforclient for gameplay entities
29 bool minigame_CheckSend(entity this, entity client);
31 // Check for minigame impulses
32 bool MinigameImpulse(entity this, int imp);
34 // Parse a client command ( cmd minigame ... )
35 void ClientCommand_minigame(entity caller, int request, int argc, string command);
37 // Find the minigame_player entity for the given client entity
38 entity minigame_find_player(entity client);
40 /// For players: Minigame being played
41 .entity active_minigame;
43 /// For minigame sessions: list of players
44 /// For minigame_player: client entity
45 .entity minigame_players;
47 entity minigame_sessions;
49 bool minigame_SendEntity(entity this, entity to, int sf);
51 REGISTRY(Minigames, BITS(4))
52 REGISTER_REGISTRY(Minigames)
53 REGISTRY_CHECK(Minigames)
55 REGISTRY_DEFINE_GET(Minigames, NULL)
56 #define REGISTER_MINIGAME(name,nicename) \
57 REGISTER(Minigames, MINIGAME_##name, m_id, new_pure(minigame_descriptor)); \
58 int name##_server_event(entity, string, ...); \
59 REGISTER_INIT(MINIGAME_##name) { \
60 this.netname = strzone(strtolower(#name)); \
61 this.message = nicename; \
62 this.minigame_event = name##_server_event; \
64 REGISTER_INIT(MINIGAME_##name)