# HG changeset patch # User Robert McIntyre # Date 1333516609 18000 # Node ID af86b5ba622b7f3f4bfdbd82e5c24d8ceecf56b3 # Parent 9637a0f52e7b75664593c5aacc9ff103c4dc7064 created function to determine total item-offset diff -r 9637a0f52e7b -r af86b5ba622b clojure/com/aurellem/gb/util.clj --- a/clojure/com/aurellem/gb/util.clj Tue Apr 03 23:17:33 2012 -0500 +++ b/clojure/com/aurellem/gb/util.clj Wed Apr 04 00:16:49 2012 -0500 @@ -164,7 +164,8 @@ (sort-by first (filter - (comp (fn [seq] (reduce #(not= %1 %2) seq)) second) + (comp (fn [seq] (not (contains? (set (map - seq (rest seq))) + 0))) second) (zipmap backbone (apply (partial map list) seqs)))))) @@ -177,8 +178,17 @@ (defn mid-game [] (read-state "mid-game")) -(defn watch-memory [address] - (loop [] (step) (view-memory address) (recur))) +(defn watch-memory + ([^SaveState state address] + (set-state! state) + (loop [] (step) (view-memory address) (recur))) + ([address] (watch-memory @current-state address))) + +(defn watch-fn + ([^SaveState state state-fn] + (set-state! state) + (loop [] (step) (state-fn @current-state) (recur))) + ([state-fn] (watch-fn @current-state state-fn))) (defn disect-bytes-2 "return a vector consiting of the last 16 bytes of the diff -r 9637a0f52e7b -r af86b5ba622b clojure/com/aurellem/run/bootstrap_0.clj --- a/clojure/com/aurellem/run/bootstrap_0.clj Tue Apr 03 23:17:33 2012 -0500 +++ b/clojure/com/aurellem/run/bootstrap_0.clj Wed Apr 04 00:16:49 2012 -0500 @@ -335,7 +335,16 @@ "up-4" "down-4" "up-5" "down-5" "up-6"])))) - + +(def item-cursor-offset-address 52262) +(def item-screen-offset-address 52278) + +(defn item-offset + ([^SaveState state] + (let [mem (memory state)] + (+ (aget mem item-screen-offset-address) + (aget mem item-cursor-offset-address)))) + ([] (item-offset @current-state))) (defn buy-item