Skip to content

Commit 15ab3bf

Browse files
committed
Merge branch 'dev' of https://github.com/OmegaK2/Source.Python into OmegaK2-dev
2 parents e9149b8 + c393226 commit 15ab3bf

File tree

18 files changed

+675
-236
lines changed

18 files changed

+675
-236
lines changed

addons/source-python/packages/source-python/tick/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# >> IMPORTS
55
# =============================================================================
66
# Source.Python Imports
7-
from tick_c import get_tick_listener_manager
7+
from listener_c import get_tick_listener_manager
88
from core import AutoUnload
99
from loggers import _SPLogger
1010
from public import public

addons/source-python/packages/source-python/tick/delays.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import time
99

1010
# Source.Python Imports
11-
from tick_c import get_tick_listener_manager
11+
from listener_c import get_tick_listener_manager
1212
from excepthooks import ExceptHooks
1313
from public import public
1414
# Tick

src/CMakeLists.txt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -246,15 +246,17 @@ Set(SOURCEPYTHON_PLAYERS_MODULE_SOURCES
246246
)
247247

248248
# ------------------------------------------------------------------
249-
# Tick Listener module
249+
# Listener module
250250
# ------------------------------------------------------------------
251-
Set(SOURCEPYTHON_TICKLISTENER_MODULE_HEADERS
252-
core/modules/ticklisteners/ticklisteners_wrap.h
251+
Set(SOURCEPYTHON_LISTENERS_MODULE_HEADERS
252+
core/modules/listeners/listeners.h
253+
core/modules/listeners/listenermanager.h
253254
)
254255

255-
Set(SOURCEPYTHON_TICKLISTENER_MODULE_SOURCES
256-
core/modules/ticklisteners/ticklisteners_wrap.cpp
257-
core/modules/ticklisteners/ticklisteners_wrap_python.cpp
256+
Set(SOURCEPYTHON_LISTENERS_MODULE_SOURCES
257+
core/modules/listeners/listeners.cpp
258+
core/modules/listeners/listenermanager.cpp
259+
core/modules/listeners/listeners_wrap_python.cpp
258260
)
259261

260262
# ------------------------------------------------------------------
@@ -322,8 +324,8 @@ Set(SOURCEPYTHON_MODULE_FILES
322324
${SOURCEPYTHON_PLAYERS_MODULE_HEADERS}
323325
${SOURCEPYTHON_PLAYERS_MODULE_SOURCES}
324326

325-
${SOURCEPYTHON_TICKLISTENER_MODULE_HEADERS}
326-
${SOURCEPYTHON_TICKLISTENER_MODULE_SOURCES}
327+
${SOURCEPYTHON_LISTENERS_MODULE_HEADERS}
328+
${SOURCEPYTHON_LISTENERS_MODULE_SOURCES}
327329

328330
${SOURCEPYTHON_GLOBALS_MODULE_HEADERS}
329331
${SOURCEPYTHON_GLOBALS_MODULE_SOURCES}
@@ -354,7 +356,7 @@ Source_Group("Header Files\\Module\\Event" FILES ${SOURCEPYTHON_
354356
Source_Group("Header Files\\Module\\Entities" FILES ${SOURCEPYTHON_ENTITY_MODULE_HEADERS})
355357
Source_Group("Header Files\\Module\\KeyValues" FILES ${SOURCEPYTHON_KEYVALUES_MODULE_HEADERS})
356358
Source_Group("Header Files\\Module\\Players" FILES ${SOURCEPYTHON_PLAYERS_MODULE_HEADERS})
357-
Source_Group("Header Files\\Module\\TickListeners" FILES ${SOURCEPYTHON_TICKLISTENER_MODULE_HEADERS})
359+
Source_Group("Header Files\\Module\\Listeners" FILES ${SOURCEPYTHON_LISTENERS_MODULE_HEADERS})
358360
Source_Group("Header Files\\Module\\Globals" FILES ${SOURCEPYTHON_GLOBALS_MODULE_HEADERS})
359361
Source_Group("Header Files\\Module\\Memory" FILES ${SOURCEPYTHON_MEMORY_MODULE_HEADERS})
360362
Source_Group("Header Files\\Module\\Vecmath" FILES ${SOURCEPYTHON_VECMATH_MODULE_HEADERS})
@@ -373,7 +375,7 @@ Source_Group("Source Files\\Module\\Event" FILES ${SOURCEPYTHON_
373375
Source_Group("Source Files\\Module\\Entities" FILES ${SOURCEPYTHON_ENTITY_MODULE_SOURCES})
374376
Source_Group("Source Files\\Module\\KeyValues" FILES ${SOURCEPYTHON_KEYVALUES_MODULE_SOURCES})
375377
Source_Group("Source Files\\Module\\Players" FILES ${SOURCEPYTHON_PLAYERS_MODULE_SOURCES})
376-
Source_Group("Source Files\\Module\\TickListeners" FILES ${SOURCEPYTHON_TICKLISTENER_MODULE_SOURCES})
378+
Source_Group("Source Files\\Module\\Listeners" FILES ${SOURCEPYTHON_LISTENERS_MODULE_SOURCES})
377379
Source_Group("Source Files\\Module\\Globals" FILES ${SOURCEPYTHON_GLOBALS_MODULE_SOURCES})
378380
Source_Group("Source Files\\Module\\Memory" FILES ${SOURCEPYTHON_MEMORY_MODULE_SOURCES})
379381
Source_Group("Source Files\\Module\\Vecmath" FILES ${SOURCEPYTHON_VECMATH_MODULE_SOURCES})
@@ -445,4 +447,4 @@ Else()
445447
# Do it the correct way.
446448
Target_Link_Libraries(core ${SOURCEPYTHON_LINK_LIBRARIES_DEBUG})
447449
Target_Link_Libraries(core ${SOURCEPYTHON_LINK_LIBRARIES_RELEASE})
448-
EndIf()
450+
EndIf()

src/configure-csgo-debug.sh

100644100755
File mode changed.

src/configure-csgo-release.sh

100644100755
File mode changed.

src/configure-ob-debug.sh

100644100755
File mode changed.

src/configure-ob-release.sh

100644100755
File mode changed.

src/core/addons/sp_addon.cpp

Lines changed: 121 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
#include "filesystem.h"
3434
#include "core/sp_gamedir.h"
3535
#include "utility/wrap_macros.h"
36-
#include "modules/ticklisteners/ticklisteners_wrap.h"
36+
#include "modules/listeners/listeners.h"
3737

3838
//---------------------------------------------------------------------------------
3939
// External variables
@@ -67,5 +67,124 @@ CAddonManager::~CAddonManager( void )
6767
void CAddonManager::GameFrame()
6868
{
6969
// Dispatch all tick listeners
70-
get_tick_listener_manager()->call_tick_listeners();
70+
get_tick_listener_manager()->call_listeners();
7171
}
72+
73+
//---------------------------------------------------------------------------------
74+
// Calls network id validated listeners.
75+
//---------------------------------------------------------------------------------
76+
void CAddonManager::NetworkIDValidated( const char *pszUserName, const char *pszNetworkID )
77+
{
78+
// Dispatch all NetwordIDValidatedListeners
79+
get_networkid_validated_listener_manager()->call_listeners(pszUserName, pszNetworkID);
80+
}
81+
82+
83+
//---------------------------------------------------------------------------------
84+
// Calls level init listeners.
85+
//---------------------------------------------------------------------------------
86+
void CAddonManager::LevelInit( char const *pMapName )
87+
{
88+
// Dispatch all LevelInit listeners
89+
get_level_init_listener_manager()->call_listeners(pMapName);
90+
}
91+
92+
//---------------------------------------------------------------------------------
93+
// Calls server activate listeners.
94+
//---------------------------------------------------------------------------------
95+
// TODO: will not work if this is really a list
96+
void CAddonManager::ServerActivate( edict_t *pEdictList, int edictCount, int clientMax )
97+
{
98+
// Dispatch all LevelInit listeners
99+
get_server_activate_listener_manager()->call_listeners(pEdictList, edictCount, clientMax);
100+
}
101+
102+
//---------------------------------------------------------------------------------
103+
// Calls level shutdown listeners.
104+
//---------------------------------------------------------------------------------
105+
void CAddonManager::LevelShutdown( void )
106+
{
107+
// Dispatch all tick listeners
108+
get_level_shutdown_listener_manager()->call_listeners();
109+
}
110+
111+
112+
//---------------------------------------------------------------------------------
113+
// Calls client active listeners.
114+
//---------------------------------------------------------------------------------
115+
void CAddonManager::ClientActive( edict_t *pEntity )
116+
{
117+
// Dispatch all LevelInit listeners
118+
get_client_active_listener_manager()->call_listeners(pEntity);
119+
}
120+
121+
//---------------------------------------------------------------------------------
122+
// Calls client disconnect listeners.
123+
//---------------------------------------------------------------------------------
124+
void CAddonManager::ClientDisconnect( edict_t *pEntity )
125+
{
126+
// Dispatch all LevelInit listeners
127+
get_client_disconnect_listener_manager()->call_listeners(pEntity);
128+
}
129+
130+
//---------------------------------------------------------------------------------
131+
// Calls client put in server listeners.
132+
//---------------------------------------------------------------------------------
133+
void CAddonManager::ClientPutInServer( edict_t *pEntity, char const *playername )
134+
{
135+
// Dispatch all LevelInit listeners
136+
get_client_put_in_server_listener_manager()->call_listeners(pEntity, playername);
137+
}
138+
139+
//---------------------------------------------------------------------------------
140+
// Calls client settings changed listeners.
141+
//---------------------------------------------------------------------------------
142+
void CAddonManager::ClientSettingsChanged( edict_t *pEdict )
143+
{
144+
// Dispatch all LevelInit listeners
145+
get_client_settings_changed_listener_manager()->call_listeners(pEdict);
146+
}
147+
148+
//---------------------------------------------------------------------------------
149+
// Calls client connect listeners.
150+
//---------------------------------------------------------------------------------
151+
void CAddonManager::ClientConnect( bool *bAllowConnect, edict_t *pEntity,
152+
const char *pszName, const char *pszAddress, char *reject, int maxrejectlen )
153+
{
154+
// Dispatch all LevelInit listeners
155+
get_client_connect_listener_manager()->call_listeners(bAllowConnect, pEntity, pszName, pszAddress, reject, maxrejectlen);
156+
}
157+
158+
//---------------------------------------------------------------------------------
159+
// Calls on query cvar value finished listeners.
160+
//---------------------------------------------------------------------------------
161+
void CAddonManager::OnQueryCvarValueFinished( QueryCvarCookie_t iCookie,
162+
edict_t *pPlayerEntity, EQueryCvarValueStatus eStatus, const char *pCvarName,
163+
const char *pCvarValue )
164+
{
165+
166+
// Dispatch all LevelInit listeners
167+
get_client_fully_connect_listener_manager()->call_listeners(iCookie, pPlayerEntity, eStatus, pCvarName, pCvarValue);
168+
}
169+
//
170+
//
171+
//
172+
#if(SOURCE_ENGINE >= 3)
173+
void CAddonManager::ClientFullyConnect( edict_t *pEntity )
174+
{
175+
// Dispatch all LevelInit listeners
176+
get_client_fully_connect_listener_manager()->call_listeners(pEntity);
177+
}
178+
179+
void CAddonManager::OnEdictAllocated( edict_t *edict )
180+
{
181+
// Dispatch all LevelInit listeners
182+
get_on_edict_allocated_listener_manager()->call_listeners(edict);
183+
}
184+
185+
void CAddonManager::OnEdictFreed( const edict_t *edict )
186+
{
187+
// Dispatch all LevelInit listeners
188+
get_on_edict_freed_listener_manager()->call_listeners(const_cast<edict_t*>(edict));
189+
}
190+
#endif

src/core/addons/sp_addon.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "core/sp_python.h"
3333
#include "utllinkedlist.h"
3434
#include "igameevents.h"
35+
#include "engine/iserverplugin.h"
3536

3637
//---------------------------------------------------------------------------------
3738
// Addon manager.
@@ -43,6 +44,23 @@ class CAddonManager
4344
~CAddonManager( void );
4445

4546
void GameFrame();
47+
void NetworkIDValidated( const char *pszUserName, const char *pszNetworkID );
48+
void LevelInit( char const *pMapName );
49+
void ServerActivate( edict_t *pEdictList, int edictCount, int clientMax );
50+
void LevelShutdown( void );
51+
void ClientActive( edict_t *pEntity );
52+
void ClientDisconnect( edict_t *pEntity );
53+
void ClientPutInServer( edict_t *pEntity, char const *playername );
54+
void ClientSettingsChanged( edict_t *pEdict );
55+
void ClientConnect( bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen );
56+
57+
void OnQueryCvarValueFinished( QueryCvarCookie_t iCookie, edict_t *pPlayerEntity, EQueryCvarValueStatus eStatus, const char *pCvarName, const char *pCvarValue );
58+
59+
#if(SOURCE_ENGINE >= 3)
60+
void ClientFullyConnect( edict_t *pEntity );
61+
void OnEdictAllocated( edict_t *edict );
62+
void OnEdictFreed( const edict_t *edict );
63+
#endif
4664
};
4765

4866
//---------------------------------------------------------------------------------

src/core/core/sp_main.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ const char *CSourcePython::GetPluginDescription( void )
275275
//---------------------------------------------------------------------------------
276276
void CSourcePython::LevelInit( char const *pMapName )
277277
{
278-
278+
g_AddonManager.LevelInit(pMapName);
279279
}
280280

281281
//---------------------------------------------------------------------------------
@@ -284,6 +284,7 @@ void CSourcePython::LevelInit( char const *pMapName )
284284
//---------------------------------------------------------------------------------
285285
void CSourcePython::ServerActivate( edict_t *pEdictList, int edictCount, int clientMax )
286286
{
287+
g_AddonManager.ServerActivate(pEdictList, edictCount, clientMax);
287288
}
288289

289290
//---------------------------------------------------------------------------------
@@ -299,27 +300,31 @@ void CSourcePython::GameFrame( bool simulating )
299300
//---------------------------------------------------------------------------------
300301
void CSourcePython::LevelShutdown( void ) // !!!!this can get called multiple times per map change
301302
{
303+
g_AddonManager.LevelShutdown();
302304
}
303305

304306
//---------------------------------------------------------------------------------
305307
// Purpose: called when a client spawns into a server (i.e as they begin to play)
306308
//---------------------------------------------------------------------------------
307309
void CSourcePython::ClientActive( edict_t *pEntity )
308310
{
311+
g_AddonManager.ClientActive(pEntity);
309312
}
310313

311314
//---------------------------------------------------------------------------------
312315
// Purpose: called when a client leaves a server (or is timed out)
313316
//---------------------------------------------------------------------------------
314317
void CSourcePython::ClientDisconnect( edict_t *pEntity )
315318
{
319+
g_AddonManager.ClientDisconnect(pEntity);
316320
}
317321

318322
//---------------------------------------------------------------------------------
319323
// Purpose: called on
320324
//---------------------------------------------------------------------------------
321325
void CSourcePython::ClientPutInServer( edict_t *pEntity, char const *playername )
322326
{
327+
g_AddonManager.ClientPutInServer(pEntity, playername);
323328
}
324329

325330
//---------------------------------------------------------------------------------
@@ -346,14 +351,15 @@ void ClientPrint( edict_t *pEdict, char *format, ... )
346351
//---------------------------------------------------------------------------------
347352
void CSourcePython::ClientSettingsChanged( edict_t *pEdict )
348353
{
349-
354+
g_AddonManager.ClientSettingsChanged(pEdict);
350355
}
351356

352357
//---------------------------------------------------------------------------------
353358
// Purpose: called when a client joins a server
354359
//---------------------------------------------------------------------------------
355360
PLUGIN_RESULT CSourcePython::ClientConnect( bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen )
356361
{
362+
g_AddonManager.ClientConnect(bAllowConnect, pEntity, pszName, pszAddress, reject, maxrejectlen);
357363
return PLUGIN_CONTINUE;
358364
}
359365

@@ -362,6 +368,7 @@ PLUGIN_RESULT CSourcePython::ClientConnect( bool *bAllowConnect, edict_t *pEntit
362368
//---------------------------------------------------------------------------------
363369
PLUGIN_RESULT CSourcePython::NetworkIDValidated( const char *pszUserName, const char *pszNetworkID )
364370
{
371+
g_AddonManager.NetworkIDValidated(pszUserName, pszNetworkID);
365372
return PLUGIN_CONTINUE;
366373
}
367374

@@ -371,6 +378,7 @@ PLUGIN_RESULT CSourcePython::NetworkIDValidated( const char *pszUserName, const
371378
void CSourcePython::OnQueryCvarValueFinished( QueryCvarCookie_t iCookie, edict_t *pPlayerEntity,
372379
EQueryCvarValueStatus eStatus, const char *pCvarName, const char *pCvarValue )
373380
{
381+
g_AddonManager.OnQueryCvarValueFinished(iCookie, pPlayerEntity, eStatus, pCvarName, pCvarValue);
374382
DevMsg(0, "Cvar query (cookie: %d, status: %d) - name: %s, value: %s\n", iCookie, eStatus, pCvarName, pCvarValue );
375383
}
376384

@@ -407,16 +415,16 @@ PLUGIN_RESULT CSourcePython::ClientCommand( edict_t* pEntity )
407415
#if(SOURCE_ENGINE >= 3)
408416
void CSourcePython::ClientFullyConnect( edict_t *pEntity )
409417
{
410-
418+
g_AddonManager.ClientFullyConnect(pEntity);
411419
}
412420

413421
void CSourcePython::OnEdictAllocated( edict_t *edict )
414422
{
415-
423+
g_AddonManager.OnEdictAllocated(edict);
416424
}
417425

418426
void CSourcePython::OnEdictFreed( const edict_t *edict )
419427
{
420-
428+
g_AddonManager.OnEdictFreed(edict);
421429
}
422430
#endif

0 commit comments

Comments
 (0)