@@ -400,8 +400,6 @@ public FMHook_Spawn(pEntity) {
400
400
401
401
@Entity_SetPData (pEntity, g_itPData);
402
402
g_itPData = Invalid_Trie;
403
-
404
- ExecuteHookFunction (CEFunction_Init, iId, pEntity);
405
403
}
406
404
}
407
405
@@ -480,10 +478,22 @@ bool:@Entity_IsCustom(this) {
480
478
return this;
481
479
}
482
480
481
+ @Entity_Init (this) {
482
+ new Trie: itPData = @Entity_GetPData (this);
483
+ new iId = GetPDataMember (itPData, CE_MEMBER_ID);
484
+ ExecuteHookFunction (CEFunction_Init, iId, pEntity);
485
+ SetPDataMember (itPData, CE_MEMBER_INITIALIZED, true );
486
+ }
487
+
483
488
@Entity_Spawn (this) {
484
489
new Float: flGameTime = get_gametime ();
485
490
486
491
new Trie: itPData = @Entity_GetPData (this);
492
+
493
+ if (! GetPDataMember (itPData, CE_MEMBER_INITIALIZED)) {
494
+ @Entity_Init (this);
495
+ }
496
+
487
497
new iId = GetPDataMember (itPData, CE_MEMBER_ID);
488
498
new bool: bIsWorld = GetPDataMember (itPData, CE_MEMBER_WORLD);
489
499
@@ -891,6 +901,7 @@ Trie:AllocPData(iId, pEntity) {
891
901
SetPDataMember (itPData, CE_MEMBER_ID, iId);
892
902
SetPDataMember (itPData, CE_MEMBER_WORLD, false );
893
903
SetPDataMember (itPData, CE_MEMBER_POINTER, pEntity);
904
+ SetPDataMember (itPData, CE_MEMBER_INITIALIZED, false );
894
905
return itPData;
895
906
}
896
907
0 commit comments