A compact bitset implementation used in Ocarina of Time save files
10 months ago
- #programming
- #game-development
- #optimization
- 灵感来自《塞尔达传说:时之笛》的极简零开销旗帜系统
- 采用C/C++和Rust实现,实现高效旗帜存储
- 在存档文件中存储数百或数千个单比特旗帜,不浪费字节
- 使用uint16_t数组实现空间高效存储(1个字=16面旗帜)
- C语言版本仅需头文件,Rust版本依赖极小;无需堆分配
- 通过无分支位操作实现零成本抽象,性能优异
- 可扩展性从1到4096个字(65,536面旗帜)
- 直观的索引方式便于调试(例如0x12对应字1位2)
- 包含设置、清除和检查旗帜的功能函数
- 兼容C99及以上版本编译器,并通过Cargo支持Rust