@@ -206,40 +206,50 @@ void CAddonManager::ClientSettingsChanged( edict_t *pEdict )
206206// ---------------------------------------------------------------------------------
207207// Calls client connect listeners.
208208// ---------------------------------------------------------------------------------
209- void CAddonManager::ClientConnect ( bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen )
209+ void CAddonManager::ClientConnect ( bool *bAllowConnect, edict_t *pEntity,
210+ const char *pszName, const char *pszAddress, char *reject, int maxrejectlen )
210211{
211212 // Wrap the parameters
212213 CListenerManager::Param p1, p2, p3, p4, p5, p6;
213214
214- p1.name =" is_allowed_to_connect " ;
215- p1.type =CListenerManager::BOOL ;
216- p1.bool_value =bAllowConnect ;
215+ p1.name =" edict " ;
216+ p1.type =CListenerManager::EDICT_T_PTR ;
217+ p1.edict_t_ptr =pEntity ;
217218
218- p2.name =" edict " ;
219- p2.type =CListenerManager::EDICT_T_PTR ;
220- p2.edict_t_ptr =pEntity ;
219+ p2.name =" playername " ;
220+ p2.type =CListenerManager::CONST_CHAR_PTR ;
221+ p2.const_char_ptr =pszName ;
221222
222- p3.name =" playername " ;
223+ p3.name =" network_address " ;
223224 p3.type =CListenerManager::CONST_CHAR_PTR;
224- p3.const_char_ptr =pszName ;
225+ p3.const_char_ptr =pszAddress ;
225226
226- p4.name =" network_address " ;
227- p4.type =CListenerManager::CONST_CHAR_PTR ;
228- p4.const_char_ptr =pszAddress ;
227+ p4.name =" max_reject_len " ;
228+ p4.type =CListenerManager::INT ;
229+ p4.int_value =maxrejectlen ;
229230
230- // Is this an int? Maybe just convert and remove unnused CHAR_PTR
231+ // Must be casted in order to avoid crash
232+ // TODO: Maybe in the future this can done properly, so people can reject the
233+ // connection from python, but for now it's read-only
234+ const char * reject_copy = reject;
231235 p5.name =" reject" ;
232- p5.type =CListenerManager::CHAR_PTR ;
233- p5.char_ptr =reject ;
236+ p5.type =CListenerManager::CONST_CHAR_PTR ;
237+ p5.const_char_ptr =reject_copy ;
234238
235- p6.name =" max_recject_len" ;
236- p6.type =CListenerManager::INT;
237- p6.int_value =maxrejectlen;
239+ p6.name =" is_allowed_to_connect" ;
240+ p6.type =CListenerManager::BOOL;
241+ p6.bool_value =&bAllowConnect;
242+
238243 // Dispatch all LevelInit listeners
239244 get_client_connect_listener_manager ()->call_listeners (6 , p1, p2, p3, p4, p5, p6);
240245}
241246
242- void CAddonManager::OnQueryCvarValueFinished ( QueryCvarCookie_t iCookie, edict_t *pPlayerEntity, EQueryCvarValueStatus eStatus, const char *pCvarName, const char *pCvarValue )
247+ // ---------------------------------------------------------------------------------
248+ // Calls on query cvar value finished listeners.
249+ // ---------------------------------------------------------------------------------
250+ void CAddonManager::OnQueryCvarValueFinished ( QueryCvarCookie_t iCookie,
251+ edict_t *pPlayerEntity, EQueryCvarValueStatus eStatus, const char *pCvarName,
252+ const char *pCvarValue )
243253{
244254 // Wrap the parameters
245255 CListenerManager::Param p1, p2, p3, p4, p5;
@@ -253,9 +263,9 @@ void CAddonManager::OnQueryCvarValueFinished( QueryCvarCookie_t iCookie, edict_t
253263 p2.type =CListenerManager::EDICT_T_PTR;
254264 p2.edict_t_ptr =pPlayerEntity;
255265
256- p3.name =" edict " ;
257- p3.type =CListenerManager::EDICT_T_PTR ;
258- p3.edict_t_ptr =pPlayerEntity ;
266+ p3.name =" cookie_status " ;
267+ p3.type =CListenerManager::INT ;
268+ p3.int_value = static_cast < int >(eStatus) ;
259269
260270 p4.name =" cvar_name" ;
261271 p4.type =CListenerManager::CONST_CHAR_PTR;
@@ -298,16 +308,16 @@ void CAddonManager::OnEdictAllocated( edict_t *edict )
298308void CAddonManager::OnEdictFreed ( const edict_t *edict )
299309{
300310 // Wrap the parameters
301- /* CListenerManager::Param p1;
302-
303- TODO: Const edict
311+ CListenerManager::Param p1;
304312
305313 p1.name =" edict" ;
306314 p1.type =CListenerManager::EDICT_T_PTR;
307- p1.edict_t_ptr=edict;
315+ // This might not be a good idea, who knows :P
316+ p1.edict_t_ptr =const_cast <edict_t *>(edict);
317+
308318 // Dispatch all LevelInit listeners
309- get_on_edict_freed_listener_manager()->call_listeners(1, p1);*/
319+ get_on_edict_freed_listener_manager ()->call_listeners (1 , p1);
310320
311- get_on_edict_freed_listener_manager ()->call_listeners (0 );
321+ // get_on_edict_freed_listener_manager()->call_listeners(0);
312322}
313323#endif
0 commit comments