@@ -77,8 +77,237 @@ void CAddonManager::NetworkIDValidated( const char *pszUserName, const char *psz
7777{
7878 // Wrap the parameters
7979 CListenerManager::Param p1, p2;
80- p1.name =" pszUserName" ; p1.type =CListenerManager::CHAR; p1.char_ptr = pszUserName;
81- p2.name =" pszNetworkID" ; p2.type =CListenerManager::CHAR; p2.char_ptr = pszNetworkID;
80+
81+ p1.name =" playername" ;
82+ p1.type =CListenerManager::CONST_CHAR_PTR;
83+ p1.const_char_ptr = pszUserName;
84+
85+ p2.name =" networkid" ;
86+ p2.type =CListenerManager::CONST_CHAR_PTR;
87+ p2.const_char_ptr = pszNetworkID;
8288 // Dispatch all NetwordIDValidatedListeners
8389 get_networkid_validated_listener_manager ()->call_listeners (2 , p1, p2);
84- }
90+ }
91+
92+
93+ // ---------------------------------------------------------------------------------
94+ // Calls level init listeners.
95+ // ---------------------------------------------------------------------------------
96+ void CAddonManager::LevelInit ( char const *pMapName )
97+ {
98+ // Wrap the parameters
99+ CListenerManager::Param p1;
100+
101+ p1.name =" mapname" ;
102+ p1.type =CListenerManager::CONST_CHAR_PTR;
103+ p1.const_char_ptr = pMapName;
104+ // Dispatch all LevelInit listeners
105+ get_level_init_listener_manager ()->call_listeners (1 , p1);
106+ }
107+
108+ // ---------------------------------------------------------------------------------
109+ // Calls server activate listeners.
110+ // ---------------------------------------------------------------------------------
111+ // TODO: will not work if this is really a list
112+ void CAddonManager::ServerActivate ( edict_t *pEdictList, int edictCount, int clientMax )
113+ {
114+ // Wrap the parameters
115+ CListenerManager::Param p1, p2, p3;
116+
117+ p1.name =" edictlist" ;
118+ p1.type =CListenerManager::EDICT_T_PTR;
119+ p1.edict_t_ptr = pEdictList;
120+
121+ p2.name =" edict_count" ;
122+ p2.type =CListenerManager::INT;
123+ p2.int_value =edictCount;
124+
125+ p3.name =" max_clients" ;
126+ p3.type =CListenerManager::INT;
127+ p3.int_value =clientMax;
128+ // Dispatch all LevelInit listeners
129+ get_server_activate_listener_manager ()->call_listeners (3 , p1, p2, p3);
130+ }
131+
132+ // ---------------------------------------------------------------------------------
133+ // Calls level shutdown listeners.
134+ // ---------------------------------------------------------------------------------
135+ void CAddonManager::LevelShutdown ( void )
136+ {
137+ // Dispatch all tick listeners
138+ get_level_shutdown_listener_manager ()->call_listeners (0 );
139+ }
140+
141+
142+ // ---------------------------------------------------------------------------------
143+ // Calls client active listeners.
144+ // ---------------------------------------------------------------------------------
145+ void CAddonManager::ClientActive ( edict_t *pEntity )
146+ {
147+ // Wrap the parameters
148+ CListenerManager::Param p1;
149+
150+ p1.name =" edict" ;
151+ p1.type =CListenerManager::EDICT_T_PTR;
152+ p1.edict_t_ptr = pEntity;
153+ // Dispatch all LevelInit listeners
154+ get_client_active_listener_manager ()->call_listeners (1 , p1);
155+ }
156+
157+ // ---------------------------------------------------------------------------------
158+ // Calls client disconnect listeners.
159+ // ---------------------------------------------------------------------------------
160+ void CAddonManager::ClientDisconnect ( edict_t *pEntity )
161+ {
162+ // Wrap the parameters
163+ CListenerManager::Param p1;
164+
165+ p1.name =" edict" ;
166+ p1.type =CListenerManager::EDICT_T_PTR;
167+ p1.edict_t_ptr = pEntity;
168+ // Dispatch all LevelInit listeners
169+ get_client_disconnect_listener_manager ()->call_listeners (1 , p1);
170+ }
171+
172+ // ---------------------------------------------------------------------------------
173+ // Calls client put in server listeners.
174+ // ---------------------------------------------------------------------------------
175+ void CAddonManager::ClientPutInServer ( edict_t *pEntity, char const *playername )
176+ {
177+ // Wrap the parameters
178+ CListenerManager::Param p1, p2;
179+
180+ p1.name =" edict" ;
181+ p1.type =CListenerManager::EDICT_T_PTR;
182+ p1.edict_t_ptr = pEntity;
183+
184+ p2.name =" playername" ;
185+ p2.type =CListenerManager::CONST_CHAR_PTR;
186+ p2.const_char_ptr = playername;
187+ // Dispatch all LevelInit listeners
188+ get_client_put_in_server_listener_manager ()->call_listeners (2 , p1, p2);
189+ }
190+
191+ // ---------------------------------------------------------------------------------
192+ // Calls client settings changed listeners.
193+ // ---------------------------------------------------------------------------------
194+ void CAddonManager::ClientSettingsChanged ( edict_t *pEdict )
195+ {
196+ // Wrap the parameters
197+ CListenerManager::Param p1;
198+
199+ p1.name =" edict" ;
200+ p1.type =CListenerManager::EDICT_T_PTR;
201+ p1.edict_t_ptr = pEdict;
202+ // Dispatch all LevelInit listeners
203+ get_client_settings_changed_listener_manager ()->call_listeners (1 , p1);
204+ }
205+
206+ // ---------------------------------------------------------------------------------
207+ // Calls client connect listeners.
208+ // ---------------------------------------------------------------------------------
209+ void CAddonManager::ClientConnect ( bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen )
210+ {
211+ // Wrap the parameters
212+ CListenerManager::Param p1, p2, p3, p4, p5, p6;
213+
214+ p1.name =" is_allowed_to_connect" ;
215+ p1.type =CListenerManager::BOOL;
216+ p1.bool_value =bAllowConnect;
217+
218+ p2.name =" edict" ;
219+ p2.type =CListenerManager::EDICT_T_PTR;
220+ p2.edict_t_ptr =pEntity;
221+
222+ p3.name =" playername" ;
223+ p3.type =CListenerManager::CONST_CHAR_PTR;
224+ p3.const_char_ptr =pszName;
225+
226+ p4.name =" network_address" ;
227+ p4.type =CListenerManager::CONST_CHAR_PTR;
228+ p4.const_char_ptr =pszAddress;
229+
230+ // Is this an int? Maybe just convert and remove unnused CHAR_PTR
231+ p5.name =" reject" ;
232+ p5.type =CListenerManager::CHAR_PTR;
233+ p5.char_ptr =reject;
234+
235+ p6.name =" max_recject_len" ;
236+ p6.type =CListenerManager::INT;
237+ p6.int_value =maxrejectlen;
238+ // Dispatch all LevelInit listeners
239+ get_client_connect_listener_manager ()->call_listeners (6 , p1, p2, p3, p4, p5, p6);
240+ }
241+
242+ void CAddonManager::OnQueryCvarValueFinished ( QueryCvarCookie_t iCookie, edict_t *pPlayerEntity, EQueryCvarValueStatus eStatus, const char *pCvarName, const char *pCvarValue )
243+ {
244+ // Wrap the parameters
245+ CListenerManager::Param p1, p2, p3, p4, p5;
246+
247+ p1.name =" cookie_id" ;
248+ p1.type =CListenerManager::INT;
249+ // iCookie is just an int
250+ p1.int_value =(int )iCookie;
251+
252+ p2.name =" edict" ;
253+ p2.type =CListenerManager::EDICT_T_PTR;
254+ p2.edict_t_ptr =pPlayerEntity;
255+
256+ p3.name =" edict" ;
257+ p3.type =CListenerManager::EDICT_T_PTR;
258+ p3.edict_t_ptr =pPlayerEntity;
259+
260+ p4.name =" cvar_name" ;
261+ p4.type =CListenerManager::CONST_CHAR_PTR;
262+ p4.const_char_ptr =pCvarName;
263+
264+ p5.name =" cvar_value" ;
265+ p5.type =CListenerManager::CONST_CHAR_PTR;
266+ p5.const_char_ptr =pCvarValue;
267+ // Dispatch all LevelInit listeners
268+ get_client_fully_connect_listener_manager ()->call_listeners (5 , p1, p2, p3, p4, p5);
269+ }
270+ //
271+ //
272+ //
273+ #if (SOURCE_ENGINE >= 3)
274+ void CAddonManager::ClientFullyConnect ( edict_t *pEntity )
275+ {
276+ // Wrap the parameters
277+ CListenerManager::Param p1;
278+
279+ p1.name =" edict" ;
280+ p1.type =CListenerManager::EDICT_T_PTR;
281+ p1.edict_t_ptr =pEntity;
282+ // Dispatch all LevelInit listeners
283+ get_client_fully_connect_listener_manager ()->call_listeners (1 , p1);
284+ }
285+
286+ void CAddonManager::OnEdictAllocated ( edict_t *edict )
287+ {
288+ // Wrap the parameters
289+ CListenerManager::Param p1;
290+
291+ p1.name =" edict" ;
292+ p1.type =CListenerManager::EDICT_T_PTR;
293+ p1.edict_t_ptr =edict;
294+ // Dispatch all LevelInit listeners
295+ get_on_edict_allocated_listener_manager ()->call_listeners (1 , p1);
296+ }
297+
298+ void CAddonManager::OnEdictFreed ( const edict_t *edict )
299+ {
300+ // Wrap the parameters
301+ /* CListenerManager::Param p1;
302+
303+ TODO: Const edict
304+
305+ p1.name="edict";
306+ p1.type=CListenerManager::EDICT_T_PTR;
307+ p1.edict_t_ptr=edict;
308+ // Dispatch all LevelInit listeners
309+ get_on_edict_freed_listener_manager()->call_listeners(1, p1);*/
310+
311+ get_on_edict_freed_listener_manager ()->call_listeners (0 );
312+ }
313+ #endif
0 commit comments