@@ -6,43 +6,44 @@ CSharpResourceImpl::CSharpResourceImpl(alt::ICore* server, CoreClr* coreClr, alt
66 this ->server = server;
77 this ->invokers = new alt::Array<CustomInvoker*>();
88 this ->coreClr = coreClr;
9+ }
910
10- runtimeHost = nullptr ;
11- domainId = 0 ;
12- MainDelegate = nullptr ;
13- OnCheckpointDelegate = nullptr ;
14- OnClientEventDelegate = nullptr ;
15- OnPlayerConnectDelegate = nullptr ;
16- OnPlayerDamageDelegate = nullptr ;
17- OnPlayerDeathDelegate = nullptr ;
18- OnPlayerDisconnectDelegate = nullptr ;
19- OnPlayerRemoveDelegate = nullptr ;
20- OnVehicleRemoveDelegate = nullptr ;
21- OnServerEventDelegate = nullptr ;
22- OnPlayerChangeVehicleSeatDelegate = nullptr ;
23- OnPlayerEnterVehicleDelegate = nullptr ;
24- OnPlayerLeaveVehicleDelegate = nullptr ;
25- OnStopDelegate = nullptr ;
26- OnTickDelegate = nullptr ;
27- OnCreatePlayerDelegate = nullptr ;
28- OnRemovePlayerDelegate = nullptr ;
29- OnCreateVehicleDelegate = nullptr ;
30- OnRemoveVehicleDelegate = nullptr ;
31- OnCreateBlipDelegate = nullptr ;
32- OnRemoveBlipDelegate = nullptr ;
33- OnCreateCheckpointDelegate = nullptr ;
34- OnRemoveCheckpointDelegate = nullptr ;
35- OnCreateVoiceChannelDelegate = nullptr ;
36- OnRemoveVoiceChannelDelegate = nullptr ;
37- OnConsoleCommandDelegate = nullptr ;
38- OnMetaChangeDelegate = nullptr ;
39- OnSyncedMetaChangeDelegate = nullptr ;
40- OnCreateColShapeDelegate = nullptr ;
41- OnRemoveColShapeDelegate = nullptr ;
42- ColShapeDelegate = nullptr ;
11+ void CSharpResourceImpl::ResetDelegates () {
12+ MainDelegate = [](auto var, auto var2, auto var3, auto var4){ };
13+ OnCheckpointDelegate = [](auto var, auto var2, auto var3, auto var4){ };
14+ OnClientEventDelegate = [](auto var, auto var2, auto var3){ };
15+ OnPlayerConnectDelegate = [](auto var, auto var2, auto var3){ };
16+ OnPlayerDamageDelegate = [](auto var, auto var2, auto var3, auto var4, auto var5, auto var6){ };
17+ OnPlayerDeathDelegate = [](auto var, auto var2, auto var3, auto var4){ };
18+ OnPlayerDisconnectDelegate = [](auto var, auto var2){ };
19+ OnPlayerRemoveDelegate = [](auto var){ };
20+ OnVehicleRemoveDelegate = [](auto var){ };
21+ OnServerEventDelegate = [](auto var, auto var2){ };
22+ OnPlayerChangeVehicleSeatDelegate = [](auto var, auto var2, auto var3, auto var4){ };
23+ OnPlayerEnterVehicleDelegate = [](auto var, auto var2, auto var3){ };
24+ OnPlayerLeaveVehicleDelegate = [](auto var, auto var2, auto var3){ };
25+ OnStopDelegate = [](){ };
26+ OnTickDelegate = [](){ };
27+ OnCreatePlayerDelegate = [](auto var, auto var2){ };
28+ OnRemovePlayerDelegate = [](auto var){ };
29+ OnCreateVehicleDelegate = [](auto var, auto var2){ };
30+ OnRemoveVehicleDelegate = [](auto var){ };
31+ OnCreateBlipDelegate = [](auto var){ };
32+ OnRemoveBlipDelegate = [](auto var){ };
33+ OnCreateCheckpointDelegate = [](auto var){ };
34+ OnRemoveCheckpointDelegate = [](auto var){ };
35+ OnCreateVoiceChannelDelegate = [](auto var){ };
36+ OnRemoveVoiceChannelDelegate = [](auto var){ };
37+ OnConsoleCommandDelegate = [](auto var, auto var2){ };
38+ OnMetaChangeDelegate = [](auto var, auto var2, auto var3, auto var4){ };
39+ OnSyncedMetaChangeDelegate = [](auto var, auto var2, auto var3, auto var4){ };
40+ OnCreateColShapeDelegate = [](auto var){ };
41+ OnRemoveColShapeDelegate = [](auto var){ };
42+ ColShapeDelegate = [](auto var, auto var2, auto var3, auto var4){ };
4343}
4444
4545bool CSharpResourceImpl::Start () {
46+ ResetDelegates ();
4647 coreClr->ExecuteManagedResource (this ->resource ->GetPath ().CStr (), this ->resource ->GetName ().CStr (), this ->resource ->GetMain ().CStr (),
4748 this ->resource );
4849 if (MainDelegate == nullptr ) return false ;
@@ -51,36 +52,21 @@ bool CSharpResourceImpl::Start() {
5152}
5253
5354bool CSharpResourceImpl::Stop () {
54- for (alt::Size i = 0 , length = invokers->GetSize (); i < length; i++) {
55- auto invoker = (*invokers)[i];
56- delete invoker;
57- }
58- delete invokers;
5955 if (OnStopDelegate == nullptr ) return false ;
6056 OnStopDelegate ();
6157 coreClr->ExecuteManagedResourceUnload (this ->resource ->GetPath ().CStr (), this ->resource ->GetMain ().CStr ());
58+ ResetDelegates ();
6259 return true ;
6360}
6461
6562CSharpResourceImpl::~CSharpResourceImpl () {
66- /* int i = 0;
67- for (auto resource : *resourcesCache) {
68- if (resource == this) {
69- auto newResourcesCache = new alt::Array<CSharpResourceImpl*>;
70- for (auto cloneResource : *resourcesCache) {
71- if (cloneResource != this) {
72- newResourcesCache->Push(cloneResource);
73- }
74- }
75- free(resourcesCache);
76- resourcesCache = newResourcesCache;
77- break;
78- }
79- i++;
80- }*/
63+ for (alt::Size i = 0 , length = invokers->GetSize (); i < length; i++) {
64+ auto invoker = (*invokers)[i];
65+ delete invoker;
66+ }
67+ delete invokers;
8168}
8269
83- // TODO: needs entity type enum value for undefined
8470bool CSharpResourceImpl::OnEvent (const alt::CEvent* ev) {
8571 if (ev == nullptr ) return true ;
8672 switch (ev->GetType ()) {
0 commit comments