- removed STACK_ARGS.
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl. Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
This commit is contained in:
parent
76f00131ff
commit
db86385cf6
58 changed files with 232 additions and 211 deletions
|
|
@ -231,7 +231,7 @@ int FTraceInfo::EnterLinePortal(line_t *li, double frac)
|
|||
|
||||
frac += 1 / MaxDist;
|
||||
double enterdist = MaxDist / frac;
|
||||
DVector2 enter = newtrace.Start + enterdist * Vec;
|
||||
DVector3 enter = newtrace.Start + enterdist * Vec;
|
||||
|
||||
newtrace.ActorMask = ActorMask;
|
||||
newtrace.WallMask = WallMask;
|
||||
|
|
@ -253,6 +253,18 @@ int FTraceInfo::EnterLinePortal(line_t *li, double frac)
|
|||
newtrace.lastfloorportalheight = newtrace.lastceilingportalheight = newtrace.limitz;
|
||||
newtrace.sectorsel = 0;
|
||||
Results->unlinked = true;
|
||||
|
||||
if ((TraceFlags & TRACE_ReportPortals) && TraceCallback != NULL)
|
||||
{
|
||||
Results->HitType = TRACE_CrossingPortal;
|
||||
Results->HitPos = enter;
|
||||
P_TranslatePortalXY(li, enter.X, enter.Y);
|
||||
P_TranslatePortalZ(li, enter.Z);
|
||||
Results->SrcFromTarget = enter;
|
||||
Results->HitVector = newtrace.Vec;
|
||||
TraceCallback(*Results, TraceCallbackData);
|
||||
}
|
||||
|
||||
return newtrace.TraceTraverse(ActorMask ? PT_ADDLINES | PT_ADDTHINGS | PT_COMPATIBLE : PT_ADDLINES);
|
||||
}
|
||||
|
||||
|
|
@ -455,8 +467,11 @@ bool FTraceInfo::LineCheck(intercept_t *in)
|
|||
lastfloorportalheight = fc;
|
||||
if (TraceCallback != NULL)
|
||||
{
|
||||
// Todo: calculate the intersection point.
|
||||
Results->HitType = TRACE_CrossingPortal;
|
||||
double hitz = CurSector->SkyBoxes[sector_t::floor]->specialf1;
|
||||
Results->HitPos = Start + Vec * (hitz - Start.Z) / Vec.Z;
|
||||
Results->SrcFromTarget = Results->HitPos + CurSector->SkyBoxes[sector_t::floor]->Scale;
|
||||
Results->HitVector = Vec;
|
||||
TraceCallback(*Results, TraceCallbackData);
|
||||
}
|
||||
}
|
||||
|
|
@ -483,8 +498,11 @@ bool FTraceInfo::LineCheck(intercept_t *in)
|
|||
lastceilingportalheight = fc;
|
||||
if (TraceCallback != NULL)
|
||||
{
|
||||
// Todo: calculate the intersection point.
|
||||
Results->HitType = TRACE_CrossingPortal;
|
||||
double hitz = CurSector->SkyBoxes[sector_t::ceiling]->specialf1;
|
||||
Results->HitPos = Start + Vec * (hitz - Start.Z) / Vec.Z;
|
||||
Results->SrcFromTarget = Results->HitPos + CurSector->SkyBoxes[sector_t::ceiling]->Scale;
|
||||
Results->HitVector = Vec;
|
||||
TraceCallback(*Results, TraceCallbackData);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue