extensions/tf2/criticals.cpp
changeset 3159 608c56ebced9
parent 3056 4e1591dceb8d
child 4001 608bc5be1ef0
     1.1 --- a/extensions/tf2/criticals.cpp	Wed Nov 24 20:46:17 2010 -0500
     1.2 +++ b/extensions/tf2/criticals.cpp	Sun Nov 28 22:41:48 2010 -0500
     1.3 @@ -188,7 +188,7 @@
     1.4  	}
     1.5  }
     1.6  
     1.7 -void InitialiseCritDetours()
     1.8 +bool InitialiseCritDetours()
     1.9  {
    1.10  	calcIsAttackCriticalDetour = DETOUR_CREATE_MEMBER(CalcIsAttackCriticalHelper, "CalcCritical");
    1.11  	calcIsAttackCriticalMeleeDetour = DETOUR_CREATE_MEMBER(CalcIsAttackCriticalHelperMelee, "CalcCriticalMelee");
    1.12 @@ -214,17 +214,33 @@
    1.13  		HookCreated = true;
    1.14  	}
    1.15  
    1.16 -	if (!HookCreated)
    1.17 +	if (HookCreated)
    1.18  	{
    1.19 -		g_pSM->LogError(myself, "No critical hit forwards could be initialized - Disabled critical hit hooks");
    1.20 -		return;
    1.21 +		return true;
    1.22  	}
    1.23  
    1.24 +	g_pSM->LogError(myself, "No critical hit forwards could be initialized - Disabled critical hit hooks");
    1.25 +
    1.26 +	return false;
    1.27  }
    1.28  
    1.29  void RemoveCritDetours()
    1.30  {
    1.31 -	calcIsAttackCriticalDetour->Destroy();
    1.32 -	calcIsAttackCriticalMeleeDetour->Destroy();
    1.33 -	calcIsAttackCriticalBowDetour->Destroy();
    1.34 +	if (calcIsAttackCriticalDetour != NULL)
    1.35 +	{
    1.36 +		calcIsAttackCriticalDetour->Destroy();
    1.37 +		calcIsAttackCriticalDetour = NULL;
    1.38 +	}
    1.39 +
    1.40 +	if (calcIsAttackCriticalMeleeDetour != NULL)
    1.41 +	{
    1.42 +		calcIsAttackCriticalMeleeDetour->Destroy();
    1.43 +		calcIsAttackCriticalMeleeDetour = NULL;
    1.44 +	}
    1.45 +
    1.46 +	if (calcIsAttackCriticalBowDetour != NULL)
    1.47 +	{
    1.48 +		calcIsAttackCriticalBowDetour->Destroy();
    1.49 +		calcIsAttackCriticalBowDetour = NULL;
    1.50 +	}
    1.51  }