ootAI/oot/item_equips.ml

50 lines
1.4 KiB
OCaml

open import "prelude.ml"
open import "../pretty.ml"
open import "../mem/decode.ml"
open import "../mem/int.ml"
open import "./equipment.ml"
open import "./item.ml"
type item_equips = ItemEquips of {
button_item_b: item,
button_item_c_left: item,
button_item_c_down: item,
button_item_c_right: item,
button_slot_c_left: u8,
button_slot_c_down: u8,
button_slot_c_right: u8,
equipment: u16
}
instance decode item_equips begin
let decode addr = ItemEquips {
button_item_b = decode (addr + 0x00),
button_item_c_left = decode (addr + 0x01),
button_item_c_down = decode (addr + 0x02),
button_item_c_right = decode (addr + 0x03),
button_slot_c_left = decode (addr + 0x04),
button_slot_c_down = decode (addr + 0x05),
button_slot_c_right = decode (addr + 0x06),
equipment = decode (addr + 0x08)
}
end
instance prettyrecord item_equips begin
let name _ = "ItemEquips"
let fields (ItemEquips x) =
[
("button_item_b", S x.button_item_b),
("button_item_c_left", S x.button_item_c_left),
("button_item_c_down", S x.button_item_c_down),
("button_item_c_right", S x.button_item_c_right),
("button_slot_c_left", S x.button_slot_c_left),
("button_slot_c_down", S x.button_slot_c_down),
("button_slot_c_right", S x.button_slot_c_right),
("equipment", S x.equipment)
]
end
instance pretty item_equips begin
let pretty = pretty_from_record
end