git.fiddlerwoaroof.com
Raw Blame History
(in-package :fwoar.cl-git)

(defun offset-distance (vec)
  (+ (loop for v across vec
           for sum = (logand 127 v)
             then (+ (ash sum 7)
                     (logand 127 v))
           finally (return sum))
     (loop for x from 1 below 2
           sum (expt 2 (* 7 x)))))

(defun extract-offset-to-base (s)
  (offset-distance
   (fwoar.bin-parser:extract-high s)))

(defun object-metadata-at-offset (base-position offset s)
  (file-position s (- base-position offset))
  (read-object-metadata-from-pack s))