예제 #1
0
파일: FuelHacks.c 프로젝트: 623y/MerpMod
void POLFHack()
{		

#if POLF_MAIN_HOOK
EcuHacksMain();
#endif

#if POLF_HACKS
	float OutputValue;

	#if POLF_RAM_TUNING
		if(pRamVariables->POLFRamFlag = 0x01)
		{
			OutputValue = Pull3DHooked(&FuelRamTable, *pEngineLoad, *pEngineSpeed);
		}
		else
		{
	#endif
	
		OutputValue	= BlendAndSwitch(FuelTableGroup, *pEngineLoad, *pEngineSpeed);
		
	#if POLF_RAM_TUNING
		}
	#endif
		pRamVariables->LCFuelEnrich = Pull3DHooked(&LCFuelEnrichTable, *pVehicleSpeed, *pEngineSpeed) * pRamVariables->LCFuelEnrichMultiplier;
	
		if(pRamVariables->LCFuelMode == LCFuelModeCompensated)
		{
			OutputValue += pRamVariables->LCFuelEnrich;
		}
		//Now run existing code!
	
		pRamVariables->PolfTarget = OutputValue;
	
		if(pRamVariables->PolfHackEnabled == 0)
			pRamVariables->PolfOutput = pRamVariables->PolfTarget;
		else
			pRamVariables->PolfOutput = Pull3DHooked((void*)PrimaryOEMPolfTable, *pEngineLoad, *pEngineSpeed);	
#endif
		
	PolfHooked();
}
예제 #2
0
파일: BoostHacks.c 프로젝트: Merp/MerpMod
void WGDCHack()
{

#if WGDC_MAIN_HOOK
EcuHacksMain();
#endif

#if BOOST_HACKS	

	//Calculated gear is a BYTE!
	float cgear = (char)*pCurrentGear;
	float PGWGInitial;
	float PGWGMax;
	float WGDCInitialComp;
	float WGDCMaxComp;

	#if PGWG_RAMTUNING
		if(pRamVariables->PGWGRamFlag = 0x01)
		{
			PGWGInitial = Pull3DHooked(&PGWGRamTable, cgear, *pEngineSpeed);
			PGWGMax = PGWGInitial;
		}
		else
		{
	#endif
	
	#if SWITCH_HACKS
		PGWGInitial = BlendAndSwitch(PGWGTableGroup, cgear, *pEngineSpeed);
		PGWGMax = PGWGInitial;
	#else
		PGWGInitial = Pull3DHooked(PGWGTable1i, cgear, *pEngineSpeed);
		PGWGMax = PGWGInitial;
	#endif

	#if PGWG_RAMTUNING
		}
	#endif


	#if WGDC_RAMTUNING
		if(pRamVariables->WGDCInitialRamFlag = 0x01)
		{
			WGDCInitialComp = Pull3DHooked(&WGDCInitialRamTable, *pReqTorque, *pEngineSpeed);
			WGDCMaxComp = Pull3DHooked(&WGDCMaxRamTable, *pReqTorque, *pEngineSpeed);
		}
		else
		{
	#endif
	
	#if SWITCH_HACKS
		WGDCInitialComp = BlendAndSwitch(WGDCInitialTableGroup, *pReqTorque, *pEngineSpeed);
		WGDCMaxComp = BlendAndSwitch(WGDCMaxTableGroup, *pReqTorque, *pEngineSpeed);
	#else
		WGDCInitialComp = Pull3DHooked(WGDCInitialTable1i, *pReqTorque, *pEngineSpeed);
		WGDCMaxComp = Pull3DHooked(WGDCMaxTable1i, *pReqTorque, *pEngineSpeed);
	#endif
	
	#if WGDC_RAMTUNING
		}
	#endif
	
	pRamVariables->PGWGMaxComp = WGDCMaxComp;
	pRamVariables->PGWGInitialComp = WGDCInitialComp;
	PGWGInitial *= WGDCInitialComp;
	PGWGMax *= WGDCMaxComp;
	pRamVariables->WGDCInitialTarget = PGWGInitial;
	pRamVariables->WGDCMaxTarget = PGWGMax;
	
	if(pRamVariables->BoostHackEnabled == HackEnabled)
	{
		#if PROG_MODE
		if(pRamVariables->ValetMode == ValetModeEnabled)
		{
			pRamVariables->WGDCInitialOutput = WGDCInitialComp * Pull3DHooked(&PGWGTableValetMode, *pReqTorque, *pEngineSpeed);
			pRamVariables->WGDCMaxOutput = WGDCMaxComp * Pull3DHooked(&PGWGTableValetMode, *pReqTorque, *pEngineSpeed);
		}
		#endif
		#if WGDC_LOCK
		#if PROG_MODE
		else
		#else
		else if
		#endif
		//Apply locks
		(*pEngineSpeed < RPMLockWGDC && *pThrottlePlate > ThrottleLockWGDC)
		{
			pRamVariables->WGDCInitialOutput = 100.0;
			pRamVariables->WGDCMaxOutput = 100.0;
		}
		#endif
		#if WGDC_LOCK || PROG_MODE
		else
		#endif
		{
			pRamVariables->WGDCInitialOutput = PGWGInitial;
			pRamVariables->WGDCMaxOutput = PGWGMax;	
		}
	}
	else
	{
예제 #3
0
void WGDCHack()
{

EcuHacksMain();

#if BOOST_HACKS	

	//Calculated gear is a BYTE!
	float cgear = (char)*pCurrentGear;
	float PGWGComp;
	float WGDCInitial;
	float WGDCMax;

	#if PGWG_RAMTUNING
		if(pRamVariables->PGWGRamFlag = 0x01)
		{
			PGWGComp = Pull3DHooked(&PGWGRamTable, cgear, *pEngineSpeed);
		}
		else
		{
	#endif
	
	#if SWITCH_HACKS
		PGWGComp = BlendAndSwitch(PGWGTableGroup, cgear, *pEngineSpeed);
	#else
		PGWGComp = Pull3DHooked(PGWGTable1i, cgear, *pEngineSpeed);
	#endif

	#if PGWG_RAMTUNING
		}
	#endif


	#if WGDC_RAMTUNING
		if(pRamVariables->WGDCInitialRamFlag = 0x01)
		{
			WGDCInitial = Pull3DHooked(&WGDCInitialRamTable, *pReqTorque, *pEngineSpeed);
			WGDCMax = Pull3DHooked(&WGDCMaxRamTable, *pReqTorque, *pEngineSpeed);
		}
		else
		{
	#endif
	
	#if SWITCH_HACKS
		WGDCInitial = BlendAndSwitch(WGDCInitialTableGroup, *pReqTorque, *pEngineSpeed);
		WGDCMax = BlendAndSwitch(WGDCMaxTableGroup, *pReqTorque, *pEngineSpeed);
	#else
		WGDCInitial = Pull3DHooked(WGDCInitialTable1i, *pReqTorque, *pEngineSpeed);
		WGDCMax = Pull3DHooked(WGDCMaxTable1i, *pReqTorque, *pEngineSpeed);
	#endif
	
	#if WGDC_RAMTUNING
		}
	#endif
	
	pRamVariables->PGWGComp = PGWGComp;
	
	#if WGDC_LOCK
	//Apply locks
	if(*pEngineSpeed < RPMLockWGDC && *pThrottlePlate > ThrottleLockWGDC)
	{
		pRamVariables->WGDCInitial = 100.0;
		pRamVariables->WGDCMax = 100.0;
	}
	else{
	#endif
	
	pRamVariables->WGDCInitial = WGDCInitial * PGWGComp;
	pRamVariables->WGDCMax = WGDCMax * PGWGComp;
	
	#if WGDC_LOCK
	}
	#endif
	
#endif

	//Finish Pulling WGDC
	WGDCHooked();
	
#if BOOST_HACKS
	TargetBoostHack();
#endif
}