Restore traceresult() functionality by writing to g_tr in trace functions
This commit is contained in:
		@@ -284,14 +284,13 @@ static cell AMX_NATIVE_CALL trace_normal(AMX *amx, cell *params)
 | 
			
		||||
	Vector vStart = Vector(fStartX, fStartY, fStartZ);
 | 
			
		||||
	Vector vEnd = Vector(fEndX, fEndY, fEndZ);
 | 
			
		||||
 | 
			
		||||
	TraceResult tr;
 | 
			
		||||
	TRACE_LINE(vStart, vEnd, dont_ignore_monsters, INDEXENT2(iEnt), &tr);
 | 
			
		||||
	TRACE_LINE(vStart, vEnd, dont_ignore_monsters, INDEXENT2(iEnt), &g_tr);
 | 
			
		||||
 | 
			
		||||
	vRet[0] = amx_ftoc(tr.vecPlaneNormal.x);
 | 
			
		||||
	vRet[1] = amx_ftoc(tr.vecPlaneNormal.y);
 | 
			
		||||
	vRet[2] = amx_ftoc(tr.vecPlaneNormal.z);
 | 
			
		||||
	vRet[0] = amx_ftoc(g_tr.vecPlaneNormal.x);
 | 
			
		||||
	vRet[1] = amx_ftoc(g_tr.vecPlaneNormal.y);
 | 
			
		||||
	vRet[2] = amx_ftoc(g_tr.vecPlaneNormal.z);
 | 
			
		||||
 | 
			
		||||
	if (tr.flFraction >= 1.0)
 | 
			
		||||
	if (g_tr.flFraction >= 1.0)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
@@ -314,19 +313,17 @@ static cell AMX_NATIVE_CALL trace_line(AMX *amx, cell *params)
 | 
			
		||||
 | 
			
		||||
	Vector vStart = Vector(fStartX, fStartY, fStartZ);
 | 
			
		||||
	Vector vEnd = Vector(fEndX, fEndY, fEndZ);
 | 
			
		||||
 | 
			
		||||
	TraceResult tr;
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	if (iEnt == -1)
 | 
			
		||||
		TRACE_LINE(vStart, vEnd, ignore_monsters, NULL, &tr);
 | 
			
		||||
		TRACE_LINE(vStart, vEnd, ignore_monsters, NULL, &g_tr);
 | 
			
		||||
	else
 | 
			
		||||
		TRACE_LINE(vStart, vEnd, dont_ignore_monsters, INDEXENT2(iEnt), &tr);
 | 
			
		||||
		TRACE_LINE(vStart, vEnd, dont_ignore_monsters, INDEXENT2(iEnt), &g_tr);
 | 
			
		||||
 | 
			
		||||
	edict_t *pHit = tr.pHit;
 | 
			
		||||
	edict_t *pHit = g_tr.pHit;
 | 
			
		||||
 | 
			
		||||
	vRet[0] = amx_ftoc(tr.vecEndPos.x);
 | 
			
		||||
	vRet[1] = amx_ftoc(tr.vecEndPos.y);
 | 
			
		||||
	vRet[2] = amx_ftoc(tr.vecEndPos.z);
 | 
			
		||||
	vRet[0] = amx_ftoc(g_tr.vecEndPos.x);
 | 
			
		||||
	vRet[1] = amx_ftoc(g_tr.vecEndPos.y);
 | 
			
		||||
	vRet[2] = amx_ftoc(g_tr.vecEndPos.z);
 | 
			
		||||
 | 
			
		||||
	if (FNullEnt(pHit))
 | 
			
		||||
		return 0;
 | 
			
		||||
@@ -573,7 +570,6 @@ static cell AMX_NATIVE_CALL set_lights(AMX *amx, cell *params) {
 | 
			
		||||
static cell AMX_NATIVE_CALL trace_hull(AMX *amx,cell *params)
 | 
			
		||||
{
 | 
			
		||||
	int iResult=0;
 | 
			
		||||
	TraceResult tr;
 | 
			
		||||
	Vector vStart;
 | 
			
		||||
	Vector vEnd;
 | 
			
		||||
	cell *vCell;
 | 
			
		||||
@@ -594,15 +590,15 @@ static cell AMX_NATIVE_CALL trace_hull(AMX *amx,cell *params)
 | 
			
		||||
	else
 | 
			
		||||
		vEnd = vStart;
 | 
			
		||||
 | 
			
		||||
	TRACE_HULL(vStart, vEnd, params[4], params[2], params[3] > 0 ? INDEXENT2(params[3]) : 0, &tr);
 | 
			
		||||
	TRACE_HULL(vStart, vEnd, params[4], params[2], params[3] > 0 ? INDEXENT2(params[3]) : 0, &g_tr);
 | 
			
		||||
 | 
			
		||||
	if (tr.fStartSolid) {
 | 
			
		||||
	if (g_tr.fStartSolid) {
 | 
			
		||||
		iResult += 1;
 | 
			
		||||
	}
 | 
			
		||||
	if (tr.fAllSolid) {
 | 
			
		||||
	if (g_tr.fAllSolid) {
 | 
			
		||||
		iResult += 2;
 | 
			
		||||
	}
 | 
			
		||||
	if (!tr.fInOpen) {
 | 
			
		||||
	if (!g_tr.fInOpen) {
 | 
			
		||||
		iResult += 4;
 | 
			
		||||
	}
 | 
			
		||||
	return iResult;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user