ref: b560aacca5b63622a4f53935caf83877da050b87
dir: /sim.h/
#pragma once #include "bank.h" #include "base.h" #include "mark.h" #define ORCA_PIANO_KEYS_COUNT ((size_t)(('9' - '0') + 1 + ('z' - 'a') + 1)) #define ORCA_PIANO_BITS_NONE UINT64_C(0) typedef U64 Piano_bits; static inline Piano_bits piano_bits_of(Glyph g) { if (g >= '0' && g <= '9') return UINT64_C(1) << (U64)((Usz)('9' - g)); if (g >= 'a' && g <= 'z') return UINT64_C(1) << (U64)(((Usz)('z' - g)) + ((Usz)('9' - '0')) + 1); return UINT64_C(0); } void orca_run(Gbuffer gbuf, Mbuffer markmap, Usz height, Usz width, Usz tick_number, Bank* bank, Oevent_list* oevent_list, Piano_bits piano_bits);