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