Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local r = function(n) return math.ceil(n*100)*0.001 end
- do
- local cache = {}
- local pos, ang
- local res
- local ax,ay,az
- local bp,by,br
- local cx,cy,cz
- local dp,cy,dr
- CACHED_OLD_WorldToLocal = CACHED_OLD_WorldToLocal or WorldToLocal
- function WorldToLocal(a,b,c,d)
- --do return CACHED_OLD_LocalToWorld(a,b,c,d) end
- ax = r(a.x)
- ay = r(a.y)
- az = r(a.z)
- bp = r(b.p)
- by = r(b.y)
- br = r(b.r)
- cx = r(c.x)
- cy = r(c.y)
- cz = r(c.z)
- dp = r(d.p)
- dy = r(d.y)
- dr = r(d.r)
- cache[ax] = cache[ax] or {}
- cache[ax][ay] = cache[ax][ay] or {}
- cache[ax][ay][az] = cache[ax][ay][az] or {}
- cache[ax][ay][az][bp] = cache[ax][ay][az][bp] or {}
- cache[ax][ay][az][bp][by] = cache[ax][ay][az][bp][by] or {}
- cache[ax][ay][az][bp][by][br] = cache[ax][ay][az][bp][by][br] or {}
- cache[ax][ay][az][bp][by][br][cx] = cache[ax][ay][az][bp][by][br][cx] or {}
- cache[ax][ay][az][bp][by][br][cx][cy] = cache[ax][ay][az][bp][by][br][cx][cy] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz] = cache[ax][ay][az][bp][by][br][cx][cy][cz] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] or {}
- res = cache
- [ax][ay][az]
- [bp][by][br]
- [cx][cy][cz]
- [dp][dy][dr]
- if res[2] then
- return res[1], res[2]
- end
- pos, ang = CACHED_OLD_WorldToLocal(a,b,c,d)
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = {pos, ang}
- return pos, ang
- end
- end
- do
- local cache = {}
- local pos, ang
- local res
- local ax,ay,az
- local bp,by,br
- local cx,cy,cz
- local dp,cy,dr
- CACHED_OLD_LocalToWorld = CACHED_OLD_LocalToWorld or LocalToWorld
- function LocalToWorld(a,b,c,d)
- --do return CACHED_OLD_LocalToWorld(a,b,c,d) end
- ax = r(a.x)
- ay = r(a.y)
- az = r(a.z)
- bp = r(b.p)
- by = r(b.y)
- br = r(b.r)
- cx = r(c.x)
- cy = r(c.y)
- cz = r(c.z)
- dp = r(d.p)
- dy = r(d.y)
- dr = r(d.r)
- cache[ax] = cache[ax] or {}
- cache[ax][ay] = cache[ax][ay] or {}
- cache[ax][ay][az] = cache[ax][ay][az] or {}
- cache[ax][ay][az][bp] = cache[ax][ay][az][bp] or {}
- cache[ax][ay][az][bp][by] = cache[ax][ay][az][bp][by] or {}
- cache[ax][ay][az][bp][by][br] = cache[ax][ay][az][bp][by][br] or {}
- cache[ax][ay][az][bp][by][br][cx] = cache[ax][ay][az][bp][by][br][cx] or {}
- cache[ax][ay][az][bp][by][br][cx][cy] = cache[ax][ay][az][bp][by][br][cx][cy] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz] = cache[ax][ay][az][bp][by][br][cx][cy][cz] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy] or {}
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] or {}
- res = cache
- [ax][ay][az]
- [bp][by][br]
- [cx][cy][cz]
- [dp][dy][dr]
- if res[2] then
- return res[1], res[2]
- end
- pos, ang = CACHED_OLD_LocalToWorld(a,b,c,d)
- cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = {pos, ang}
- return pos, ang
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment