flipchess.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <furi_hal_random.h>
  5. #include <gui/gui.h>
  6. #include <input/input.h>
  7. #include <stdlib.h>
  8. #include <notification/notification_messages.h>
  9. #include <gui/view_dispatcher.h>
  10. #include <gui/modules/submenu.h>
  11. #include <gui/scene_manager.h>
  12. #include <gui/modules/variable_item_list.h>
  13. #include <gui/modules/text_input.h>
  14. #include "scenes/flipchess_scene.h"
  15. #include "views/flipchess_startscreen.h"
  16. #include "views/flipchess_scene_1.h"
  17. #define FLIPCHESS_VERSION "v1.10"
  18. #define TEXT_BUFFER_SIZE 96
  19. #define TEXT_SIZE (TEXT_BUFFER_SIZE - 1)
  20. typedef struct {
  21. Gui* gui;
  22. NotificationApp* notification;
  23. ViewDispatcher* view_dispatcher;
  24. Submenu* submenu;
  25. SceneManager* scene_manager;
  26. VariableItemList* variable_item_list;
  27. TextInput* text_input;
  28. FlipChessStartscreen* flipchess_startscreen;
  29. FlipChessScene1* flipchess_scene_1;
  30. // Settings options
  31. int haptic;
  32. int white_mode;
  33. int black_mode;
  34. // Startscreen options
  35. uint8_t sound;
  36. // Main menu options
  37. uint8_t import_game;
  38. // Text input
  39. uint8_t input_state;
  40. char import_game_text[TEXT_BUFFER_SIZE];
  41. char input_text[TEXT_BUFFER_SIZE];
  42. } FlipChess;
  43. typedef enum {
  44. FlipChessViewIdStartscreen,
  45. FlipChessViewIdMenu,
  46. FlipChessViewIdScene1,
  47. FlipChessViewIdSettings,
  48. FlipChessViewIdTextInput,
  49. } FlipChessViewId;
  50. typedef enum {
  51. FlipChessHapticOff,
  52. FlipChessHapticOn,
  53. } FlipChessHapticState;
  54. typedef enum {
  55. FlipChessPlayerHuman = 0,
  56. FlipChessPlayerAI1 = 1,
  57. FlipChessPlayerAI2 = 2,
  58. FlipChessPlayerAI3 = 3,
  59. } FlipChessPlayerMode;
  60. typedef enum { FlipChessTextInputDefault, FlipChessTextInputGame } FlipChessTextInputState;
  61. typedef enum {
  62. FlipChessStatusNone = 0,
  63. FlipChessStatusMovePlayer = 1,
  64. FlipChessStatusMoveAI = 2,
  65. FlipChessStatusMoveUndo = 3,
  66. FlipChessStatusReturn = 10,
  67. FlipChessStatusLoadError = 11,
  68. FlipChessStatusSaveError = 12,
  69. } FlipChessStatus;