Skip to content

Commit

Permalink
Updated: Avoid creating a matrix in real-time
Browse files Browse the repository at this point in the history
Updated: Snap directions are updated in every frame
  • Loading branch information
dvdvideo1234 committed Jan 26, 2025
1 parent 10aaf4d commit ee9920c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lua/autorun/trackassembly_init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ local asmlib = trackasmlib; if(not asmlib) then -- Module present
------------ CONFIGURE ASMLIB ------------

asmlib.InitBase("track","assembly")
asmlib.SetOpVar("TOOL_VERSION","9.774")
asmlib.SetOpVar("TOOL_VERSION","9.775")

------------ CONFIGURE GLOBAL INIT OPVARS ------------

Expand Down
13 changes: 8 additions & 5 deletions lua/trackassembly/trackasmlib.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4525,6 +4525,7 @@ function GetNormalSpawn(oPly,ucsPos,ucsAng,shdModel,ivhdPoID,
local stSpawn = GetCacheSpawn(oPly, stData)
stSpawn.HID = ihdPoID
stSpawn.HRec = hdRec
local aRev = GetOpVar("ANG_REV")
if(ucsPos) then stSpawn.BPos:Set(ucsPos) end
if(ucsAng) then stSpawn.BAng:Set(ucsAng) end
stSpawn.OPos:Set(stSpawn.BPos); stSpawn.OAng:Set(stSpawn.BAng)
Expand All @@ -4540,10 +4541,11 @@ function GetNormalSpawn(oPly,ucsPos,ucsAng,shdModel,ivhdPoID,
NegAngle(stSpawn.ANxt, true, true, false)
local vW, aW = LocalToWorld(stSpawn.PNxt, stSpawn.ANxt, stSpawn.BPos, stSpawn.BAng)
stSpawn.OPos:Set(vW); stSpawn.OAng:Set(aW)
stSpawn.F:Set(stSpawn.OAng:Forward())
stSpawn.R:Set(stSpawn.OAng:Right())
stSpawn.U:Set(stSpawn.OAng:Up())
end
-- Update snap directions
stSpawn.F:Set(stSpawn.OAng:Forward())
stSpawn.R:Set(stSpawn.OAng:Right())
stSpawn.U:Set(stSpawn.OAng:Up())
-- Read holder record
stSpawn.HPnt:SetUnpacked(hdPOA.P:Get())
stSpawn.HOrg:SetUnpacked(hdPOA.O:Get())
Expand All @@ -4556,10 +4558,11 @@ function GetNormalSpawn(oPly,ucsPos,ucsAng,shdModel,ivhdPoID,
stSpawn.HMtx:Identity()
stSpawn.HMtx:Translate(stSpawn.HOrg)
stSpawn.HMtx:Rotate(stSpawn.HAng)
stSpawn.HMtx:Rotate(GetOpVar("ANG_REV"))
stSpawn.HMtx:Rotate(aRev)
stSpawn.HMtx:Invert()
-- Calculate the spawn matrix
stSpawn.SMtx:Set(stSpawn.TMtx * stSpawn.HMtx)
stSpawn.SMtx:Set(stSpawn.TMtx)
stSpawn.SMtx:Mul(stSpawn.HMtx)
-- Read the spawn origin position and angle
stSpawn.SPos:Set(stSpawn.SMtx:GetTranslation())
stSpawn.SAng:Set(stSpawn.SMtx:GetAngles())
Expand Down

0 comments on commit ee9920c

Please sign in to comment.