CapsAdmin

Untitled

Nov 28th, 2012
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.33 KB | None | 0 0
  1. local r = function(n) return math.ceil(n*100)*0.001 end
  2.  
  3. do
  4.     local cache = {}
  5.     local pos, ang
  6.     local res
  7.    
  8.     local ax,ay,az
  9.     local bp,by,br
  10.     local cx,cy,cz
  11.     local dp,cy,dr
  12.    
  13.     CACHED_OLD_WorldToLocal = CACHED_OLD_WorldToLocal or WorldToLocal
  14.        
  15.     function WorldToLocal(a,b,c,d)
  16.         --do return CACHED_OLD_LocalToWorld(a,b,c,d) end
  17.         ax = r(a.x)
  18.         ay = r(a.y)
  19.         az = r(a.z)
  20.        
  21.         bp = r(b.p)
  22.         by = r(b.y)
  23.         br = r(b.r)
  24.        
  25.         cx = r(c.x)
  26.         cy = r(c.y)
  27.         cz = r(c.z)
  28.        
  29.         dp = r(d.p)
  30.         dy = r(d.y)
  31.         dr = r(d.r)
  32.        
  33.         cache[ax] = cache[ax] or {}
  34.         cache[ax][ay] = cache[ax][ay] or {}
  35.         cache[ax][ay][az] = cache[ax][ay][az] or {}
  36.         cache[ax][ay][az][bp] = cache[ax][ay][az][bp] or {}
  37.         cache[ax][ay][az][bp][by] = cache[ax][ay][az][bp][by] or {}
  38.         cache[ax][ay][az][bp][by][br] = cache[ax][ay][az][bp][by][br] or {}
  39.         cache[ax][ay][az][bp][by][br][cx] = cache[ax][ay][az][bp][by][br][cx] or {}
  40.         cache[ax][ay][az][bp][by][br][cx][cy] = cache[ax][ay][az][bp][by][br][cx][cy] or {}
  41.         cache[ax][ay][az][bp][by][br][cx][cy][cz] = cache[ax][ay][az][bp][by][br][cx][cy][cz] or {}
  42.         cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] or {}
  43.         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 {}
  44.         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 {}
  45.            
  46.         res = cache
  47.         [ax][ay][az]
  48.         [bp][by][br]
  49.         [cx][cy][cz]
  50.         [dp][dy][dr]
  51.            
  52.         if res[2] then
  53.             return res[1], res[2]
  54.         end
  55.    
  56.         pos, ang = CACHED_OLD_WorldToLocal(a,b,c,d)
  57.            
  58.         cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = {pos, ang}
  59.        
  60.         return pos, ang
  61.     end
  62. end
  63.  
  64. do
  65.     local cache = {}
  66.     local pos, ang
  67.     local res
  68.    
  69.     local ax,ay,az
  70.     local bp,by,br
  71.     local cx,cy,cz
  72.     local dp,cy,dr
  73.    
  74.     CACHED_OLD_LocalToWorld = CACHED_OLD_LocalToWorld or LocalToWorld
  75.    
  76.     function LocalToWorld(a,b,c,d)
  77.         --do return CACHED_OLD_LocalToWorld(a,b,c,d) end
  78.         ax = r(a.x)
  79.         ay = r(a.y)
  80.         az = r(a.z)
  81.        
  82.         bp = r(b.p)
  83.         by = r(b.y)
  84.         br = r(b.r)
  85.        
  86.         cx = r(c.x)
  87.         cy = r(c.y)
  88.         cz = r(c.z)
  89.        
  90.         dp = r(d.p)
  91.         dy = r(d.y)
  92.         dr = r(d.r)
  93.        
  94.         cache[ax] = cache[ax] or {}
  95.         cache[ax][ay] = cache[ax][ay] or {}
  96.         cache[ax][ay][az] = cache[ax][ay][az] or {}
  97.         cache[ax][ay][az][bp] = cache[ax][ay][az][bp] or {}
  98.         cache[ax][ay][az][bp][by] = cache[ax][ay][az][bp][by] or {}
  99.         cache[ax][ay][az][bp][by][br] = cache[ax][ay][az][bp][by][br] or {}
  100.         cache[ax][ay][az][bp][by][br][cx] = cache[ax][ay][az][bp][by][br][cx] or {}
  101.         cache[ax][ay][az][bp][by][br][cx][cy] = cache[ax][ay][az][bp][by][br][cx][cy] or {}
  102.         cache[ax][ay][az][bp][by][br][cx][cy][cz] = cache[ax][ay][az][bp][by][br][cx][cy][cz] or {}
  103.         cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] = cache[ax][ay][az][bp][by][br][cx][cy][cz][dp] or {}
  104.         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 {}
  105.         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 {}
  106.            
  107.         res = cache
  108.         [ax][ay][az]
  109.         [bp][by][br]
  110.         [cx][cy][cz]
  111.         [dp][dy][dr]
  112.            
  113.         if res[2] then
  114.             return res[1], res[2]
  115.         end
  116.    
  117.         pos, ang = CACHED_OLD_LocalToWorld(a,b,c,d)
  118.            
  119.         cache[ax][ay][az][bp][by][br][cx][cy][cz][dp][dy][dr] = {pos, ang}
  120.        
  121.         return pos, ang
  122.     end
  123. end
Advertisement
Add Comment
Please, Sign In to add comment