2021-03-10 00:35:24 +00:00
|
|
|
open import "prelude.ml"
|
|
|
|
open import "../pretty.ml"
|
|
|
|
open import "../mem/decode.ml"
|
|
|
|
open import "../mem/int.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,
|
2021-03-10 00:39:59 +00:00
|
|
|
equipment: u16
|
2021-03-10 00:35:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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),
|
2021-03-10 00:39:59 +00:00
|
|
|
("equipment", S x.equipment)
|
2021-03-10 00:35:24 +00:00
|
|
|
]
|
|
|
|
end
|
|
|
|
|
|
|
|
instance pretty item_equips begin
|
|
|
|
let pretty = pretty_from_record
|
|
|
|
end
|