Mercurial > vba-clojure
diff clojure/com/aurellem/gb/items.clj @ 363:79252378fd22
saving progress...]
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Mon, 09 Apr 2012 10:35:22 -0500 |
parents | 3b3cd62b6106 |
children | 716752719a78 |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/gb/items.clj Mon Apr 09 09:25:33 2012 -0500 1.2 +++ b/clojure/com/aurellem/gb/items.clj Mon Apr 09 10:35:22 2012 -0500 1.3 @@ -179,7 +179,7 @@ 1.4 0xFC :TM52 ;; "fly" 1.5 0xFD :TM53 ;; "surf" 1.6 0xFE :TM54 ;; "strength" 1.7 - 0xFF :end-of-list-sentinel ;; also "flash" 1.8 + 0xFF :TM55 ;; "flash" (also end-of-list-sentinel) 1.9 )) 1.10 1.11 (def item-name->item-code 1.12 @@ -198,10 +198,15 @@ 1.13 2 1.14 raw-inventory))) 1.15 1.16 -(defn inventory [^SaveState state] 1.17 - (let [items (item-list state)] 1.18 - (raw-inventory->inventory 1.19 - (next (take-while (partial not= 255) items))))) 1.20 +(defn total-held-items [state] 1.21 + (aget (memory state) item-list-start)) 1.22 + 1.23 +(defn inventory 1.24 + ([^SaveState state] 1.25 + (let [items (item-list state)] 1.26 + (raw-inventory->inventory 1.27 + (take (* 2 (total-held-items state)) (next items))))) 1.28 + ([] (inventory @current-state))) 1.29 1.30 (defn print-inventory 1.31 ([] (print-inventory @current-state)) 1.32 @@ -231,7 +236,7 @@ 1.33 (map (fn [[item-name quantity]] 1.34 [(item-name->item-code item-name item-name) 1.35 quantity]) inventory) 1.36 - [(item-name->item-code :end-of-list-sentinel)]))) 1.37 + [(item-name->item-code :TM55)]))) 1.38 1.39 (defn set-inv-mem [^SaveState state inv-codes] 1.40 (set-memory-range state item-list-start