bfbb 0.3.0

Library for interacting with SpongeBob SquarePants: Battle for Bikini Bottom
Documentation
# Changelog


All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


## [0.3.0] - 2023-02-24


### Breaking


- Refactored `GameInterface` into a struct that is generic over any backend-implementation
- Refactored `DolphinInterface` into a struct that implements `InterfaceProvider<Backend=DolphinBackend>`

### Additions


- Added `InterfaceProvider` trait for types that are caple of providing a game interface.
- Added `MockInterface` for writing testing logic without using a real backend.
- Added `GameVar` and `GameVarMut` traits to represent accessible regions of game memory in a strongly-typed manner.
- Improved amount of information availabe from `InterfaceError`s
  - Added new variants for when a hooking attempt fails. `InterfaceError::Unhooked` represents when a previously
    hooked interface becomes unhooked.
  - Added `InterfaceError::Io` to wrap unexpected I/O errors instead of reducing them down to `Other`
  - Replaced `InterfaceError::Other` with `InterfaceError::DataUnavailable` and `InterfaceError::Io`
- Added `Hans` struct for interacting with Hans' state.

### Fixed


- `GameInterface::unlock_task` will now only set a task's counter to `1` if it was previously `0`. This will preserve a
  value of `3` which can also correspond to an "silver" task (e.g. Infestation at the Krusty Krab)

### Removals


- Removed several methods on `GameInterface` that would simply get/set memory regions that are now represented as `GameVar`s

## [0.2.1] - 2022-09-22


### Fixed


- Fixed `DolphinInterface::unlock_powers` writing values of the wrong size.

## [0.2.0] - 2022-09-22


### Additions


- Added functions for manipulating game state.
- Added function for unlocking a task.

## [0.1.0] - 2022-06-20


- Initial Release

[unreleased]: https://github.com/BfBBModdingTools/bfbb/compare/v0.3.0...HEAD
[0.3.0]: https://github.com/BfBBModdingTools/bfbb/releases/tag/v0.3.0
[0.2.1]: https://github.com/BfBBModdingTools/bfbb/releases/tag/v0.2.1
[0.2.0]: https://github.com/BfBBModdingTools/bfbb/releases/tag/v0.2.0
[0.1.0]: https://github.com/BfBBModdingTools/bfbb/releases/tag/v0.1.0