dolphin_state.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "dolphin_state.h"
  2. #include <flipper_v2.h>
  3. typedef struct {
  4. uint32_t ibutton;
  5. uint32_t nfc;
  6. uint32_t ir;
  7. uint32_t rfid;
  8. } DolphinLimit;
  9. struct DolphinState {
  10. uint32_t icounter;
  11. uint32_t butthurt;
  12. DolphinLimit limit;
  13. };
  14. DolphinState* dolphin_state_alloc() {
  15. DolphinState* dolphin_state = furi_alloc(sizeof(DolphinState));
  16. return dolphin_state;
  17. }
  18. void dolphin_state_release(DolphinState* dolphin_state) {
  19. free(dolphin_state);
  20. }
  21. void dolphin_state_save(DolphinState* dolphin_state) {
  22. }
  23. void dolphin_state_load(DolphinState* dolphin_state) {
  24. }
  25. void dolphin_state_clear(DolphinState* dolphin_state) {
  26. memset(dolphin_state, 0, sizeof(DolphinState));
  27. }
  28. void dolphin_state_on_deed(DolphinState* dolphin_state, DolphinDeed deed) {
  29. const DolphinDeedWeight* deed_weight = dolphin_deed_weight(deed);
  30. int32_t icounter = dolphin_state->icounter + deed_weight->icounter;
  31. if(icounter >= 0) {
  32. dolphin_state->icounter = icounter;
  33. }
  34. }
  35. uint32_t dolphin_state_get_icounter(DolphinState* dolphin_state) {
  36. return dolphin_state->icounter;
  37. }
  38. uint32_t dolphin_state_get_butthurt(DolphinState* dolphin_state) {
  39. return dolphin_state->butthurt;
  40. }