# HG changeset patch # User Robert McIntyre # Date 1333513053 18000 # Node ID 9637a0f52e7b75664593c5aacc9ff103c4dc7064 # Parent 92c47a9cdaea2f56f0275f5434544df0c781de8e located item-list related addresses. diff -r 92c47a9cdaea -r 9637a0f52e7b clojure/com/aurellem/gb/saves.clj --- a/clojure/com/aurellem/gb/saves.clj Tue Apr 03 04:16:20 2012 -0500 +++ b/clojure/com/aurellem/gb/saves.clj Tue Apr 03 23:17:33 2012 -0500 @@ -28,4 +28,17 @@ (defn end-oak-conv [] (read-state "end-oak-conversation")) - \ No newline at end of file + + +(defmacro gen-save [save-name] + `(defn ~save-name + ~(str "load " save-name " from disk.") + [] + (read-state ~(str save-name)))) + +(gen-save cursor-item-1) +(gen-save cursor-item-2) +(gen-save cursor-item-3) +(gen-save cursor-item-4) +(gen-save cursor-item-5) +(gen-save cursor-item-6) \ No newline at end of file diff -r 92c47a9cdaea -r 9637a0f52e7b clojure/com/aurellem/gb/util.clj --- a/clojure/com/aurellem/gb/util.clj Tue Apr 03 04:16:20 2012 -0500 +++ b/clojure/com/aurellem/gb/util.clj Tue Apr 03 23:17:33 2012 -0500 @@ -159,10 +159,26 @@ (map (comp vec memory) states))) +(defn different-every-time [& seqs] + (let [backbone (range (count (first seqs)))] + (sort-by + first + (filter + (comp (fn [seq] (reduce #(not= %1 %2) seq)) second) + (zipmap backbone + (apply (partial map list) seqs)))))) + + +(defn harmonic-compare [& states] + (apply different-every-time + (map (comp vec memory) + states))) + (defn mid-game [] (read-state "mid-game")) - +(defn watch-memory [address] + (loop [] (step) (view-memory address) (recur))) (defn disect-bytes-2 "return a vector consiting of the last 16 bytes of the diff -r 92c47a9cdaea -r 9637a0f52e7b clojure/com/aurellem/run/bootstrap_0.clj --- a/clojure/com/aurellem/run/bootstrap_0.clj Tue Apr 03 04:16:20 2012 -0500 +++ b/clojure/com/aurellem/run/bootstrap_0.clj Tue Apr 03 23:17:33 2012 -0500 @@ -1,5 +1,6 @@ (ns com.aurellem.run.bootstrap-0 - (:use (com.aurellem.gb gb-driver util items vbm characters money)) + (:use (com.aurellem.gb saves gb-driver util + items vbm characters money)) (:use (com.aurellem.run util title save-corruption)) (:use (com.aurellem.exp item-bridge)) (:import [com.aurellem.gb.gb_driver SaveState])) @@ -317,6 +318,26 @@ (->> script (walk [↑ ↑ ←])))) + + +;; useful addresses +52262 ;; --- current-cursor-offset +52278 ;; --- current screen-offset + + +(defn exp-item-list [] + (clojure.pprint/pprint + (apply harmonic-compare + (map read-state + ["up-1" "down-1" + "up-2" "down-2" + "up-3" "down-3" + "up-4" "down-4" + "up-5" "down-5" + "up-6"])))) + + + (defn buy-item "Assumes that the main item-screen is up, and buys quantity of the nth item in the list, assuming that you diff -r 92c47a9cdaea -r 9637a0f52e7b clojure/com/aurellem/run/util.clj --- a/clojure/com/aurellem/run/util.clj Tue Apr 03 04:16:20 2012 -0500 +++ b/clojure/com/aurellem/run/util.clj Tue Apr 03 23:17:33 2012 -0500 @@ -107,19 +107,21 @@ (move dir script)) script directions)) (defn search-string - [^SaveState state string] - (let [codes - (str->character-codes string) - codes-length (count codes) - mem (vec (memory state)) - mem-length (count mem)] - (loop [idx 0] - (if (< (- mem-length idx) codes-length) - nil - (if (= (subvec mem idx (+ idx codes-length)) - codes) - idx - (recur (inc idx))))))) + ([^SaveState state string] + (let [codes + (str->character-codes string) + codes-length (count codes) + mem (vec (memory state)) + mem-length (count mem)] + (loop [idx 0] + (if (< (- mem-length idx) codes-length) + nil + (if (= (subvec mem idx (+ idx codes-length)) + codes) + idx + (recur (inc idx))))))) + ([string] + (search-string @current-state string))) (def text-address 0x9DC1) @@ -143,8 +145,10 @@ (defn end-text ([script] - (->> (do-nothing 150) - (play-moves [[:b]])))) + (->> + script + (do-nothing 150) + (play-moves [[:b]])))) (defn do-nothing [n script] (->> script diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-1.sav Binary file save-states/cursor-item-1.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-2.sav Binary file save-states/cursor-item-2.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-3.sav Binary file save-states/cursor-item-3.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-4.sav Binary file save-states/cursor-item-4.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-5.sav Binary file save-states/cursor-item-5.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/cursor-item-6.sav Binary file save-states/cursor-item-6.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/down-1.sav Binary file save-states/down-1.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/down-2.sav Binary file save-states/down-2.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/down-3.sav Binary file save-states/down-3.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/down-4.sav Binary file save-states/down-4.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/down-5.sav Binary file save-states/down-5.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/pika.sav Binary file save-states/pika.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-1.sav Binary file save-states/up-1.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-2.sav Binary file save-states/up-2.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-3.sav Binary file save-states/up-3.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-4.sav Binary file save-states/up-4.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-5.sav Binary file save-states/up-5.sav has changed diff -r 92c47a9cdaea -r 9637a0f52e7b save-states/up-6.sav Binary file save-states/up-6.sav has changed