All pastes #110973 Raw Edit

Xore

public cpp v1 · immutable
·published 2006-08-02 01:50 UTC
rendered paste body
void *pReal_PawnConstructor = NULL;void *pReal_PawnDeconstructor = NULL;	void WINAPI Hooked_PawnConstructor(void){	static APawn* Target = NULL;	__asm mov [Target], ecx;	__asm call pReal_PawnConstructor;	try	{		if(Target)		{			bool bValid = true;			for(UINT i = 0; i < Targets.size(); i++) bValid = Targets[i] == Target ? false : bValid;			if(bValid)			{				Targets.push_back(Target);				fileSave ( L"Pawn Created:   %i %s", Targets.size(), Target->GetName());			}		}	}	catch ( ... ) { }	__asm mov ecx, Target;}void WINAPI Hooked_PawnDeconstructor(void){	static APawn* Target = NULL;	__asm mov [Target], ecx;	__asm call pReal_PawnDeconstructor;	try	{		if(Target)		{			int iPawn = -1;			std::vector<APawn*> gTemp;			for(UINT z = 0; z < Targets.size(); z++)			{				if(Targets[z] == Target)				{					iPawn = z;					continue;				}				gTemp.push_back(Targets[z]);			}			if (iPawn != - 1) fileSave ( L"Pawn Destroyed: %i %s", iPawn, Target->GetName());			if(Targets.size()) Targets.clear();			for( UINT y = 0; y < gTemp.size(); y++) Targets.push_back(gTemp[y]);			if(gTemp.size()) gTemp.clear();		}	}	catch ( ... ) { }	__asm mov ecx, Target;}