[FL-2188] Fix Desktop crush: stub dolphin stats (#950)

* Fix Desktop crush: stub dolphin stats

Fix Desktop crash on butthurt > 11, so hardcoded animations
are always available. Stub good dolphin stats till
correct deeds management implemented.

* Update ReadMe to match real project structure.

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Albert Kharisov 2022-01-10 23:46:20 +04:00 committed by GitHub
parent 990a065bd0
commit 9ade2349ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 94 additions and 68 deletions

View File

@ -140,67 +140,18 @@ make whole
* Kickstarter page: [kickstarter.com](https://www.kickstarter.com/projects/flipper-devices/flipper-zero-tamagochi-for-hackers) * Kickstarter page: [kickstarter.com](https://www.kickstarter.com/projects/flipper-devices/flipper-zero-tamagochi-for-hackers)
* Forum: [forum.flipperzero.one](https://forum.flipperzero.one/) * Forum: [forum.flipperzero.one](https://forum.flipperzero.one/)
# Folders structure # Project structure
- applications - application and services - `applications` - Applications and services used in firmware
* accessor - Wiegand server - `assets` - Assets used by applications and services
* archive - Archive and file manager - `bootloader` - Bootloader source code
* bt - BLE service and application - `core` - Furi Core: os level primitives and helpers
* cli - Console service - `debug` - Debug tool: GDB-plugins, SVD-file and etc
* debug_tools - different tools that we use on factory and for debug - `docker` - Docker image sources (used for firmware build automation)
* dialogs - service for showing GUI dialogs - `documentation` - Documentation generation system configs and input files
* dolphin - dolphin service and supplementary apps - `firmware` - Firmware source code
* gpio-tester - GPIO control application - `lib` - Our and 3rd party libraries, drivers and etc...
* gui - GUI service - `make` - Make helpers
* ibutton - ibutton application, onewire keys and more - `scripts` - Supplementary scripts and python libraries home
* input - input service
* irda - irda application, controls your IR devices Also pay attention to `ReadMe.md` files inside of those directories.
* irda_monitor - irda debug tool
* lfrfid - LF RFID application
* lfrfid-debug - LF RFID debug tool
* loader - application loader service
* menu - main menu service
* music-player - music player app (demo)
* nfc - NFC application, HF rfid, EMV and etc
* notification - notification service
* power - power service
* power-observer - power debug tool
* scened-app-example - c++ application example
* storage - storage service, internal + sdcard
* storage_settings - storage settings app
* subghz - subghz application, 433 fobs and etc
* tests - unit tests and etc
- assets - assets used by applications and services
* compiled - compilation results
* icons - source icons images
- bootloader - bootloader for flipper
* src - bootloader sources
* targets - targets' hal and implementation
- core - core libraries: home for furi
- debug - debug helpers, plugins and tools
- docker - docker image sources (used for automated firmware build)
- documentation - documentation generation system configs and input files
- firmware - firmware for flipper
* targets - targets' hal and implementation
- lib - different libraries and drivers that apps and firmware uses
* ST25RFAL002 - ST253916 driver and NFC hal
* STM32CubeWB - STM32WB hal
* app-scened-template - scened template app library
* app-template - template app library
* callback-connector - callback connector library
* common-api - common api declaration library
* cyfral - cyfral library
* drivers - drivers that we wrote
* fatfs - external storage file system
* fnv1a-hash - fnv1a hash library
* irda - irda library
* littlefs - internal storage file system
* mlib - algorithms and containers
* nfc_protocols - nfc protocols library
* onewire - one wire library
* qrcode - qr code generator library
* subghz - subghz library
* toolbox - toolbox of things that we are using but don't place in core
* u8g2 - graphics library that we use to draw GUI
- make - make helpers
- scripts - supplementary scripts

40
applications/ReadMe.md Normal file
View File

@ -0,0 +1,40 @@
# Structure
- `about` - Small About application that shows flipper info
- `accessor` - Wiegand server
- `archive` - Archive and file manager
- `bad_usb` - Bad USB application
- `bt` - BLE service and application
- `cli` - Console service and API
- `crypto` - Crypto cli tools
- `debug_tools` - Different tools that we use for debug
- `desktop` - Desktop service
- `dialogs` - Dialogs service: GUI Dialogs for your app
- `dolphin` - Dolphin service and supplementary apps
- `gpio` - GPIO application: includes USART bridge and GPIO control
- `gui` - GUI service and API
- `ibutton` - iButton application, onewire keys and more
- `input` - Input service
- `irda` - Irda application, controls your IR devices
- `irda_monitor` - Irda debug tool
- `lfrfid` - LF RFID application
- `lfrfid_debug` - LF RFID debug tool
- `loader` - Application loader service
- `music_player` - Music player app (demo)
- `nfc` - NFC application, HF rfid, EMV and etc
- `notification` - Notification service
- `power` - Power service
- `power_observer` - Power debug tool
- `rpc` - RPC service and API
- `scened_app_example` - C++ application example
- `snake_game` - Snake game application
- `storage` - Storage service, internal + sdcard
- `storage_settings` - Storage settings app
- `subghz` - Subghz application, 433 fobs and etc
- `system` - System settings, tools and API
- `tests` - Unit tests and etc
- `u2f` - U2F Application
- `application.c` - Firmware application list source
- `application.h` - Firmware application list header
- `application.mk` - Makefile helper

View File

@ -111,13 +111,16 @@ int32_t dolphin_srv(void* p) {
furi_pubsub_publish(dolphin->pubsub, &event); furi_pubsub_publish(dolphin->pubsub, &event);
} }
} else if(event.type == DolphinEventTypeStats) { } else if(event.type == DolphinEventTypeStats) {
event.stats->icounter = dolphin->state->data.icounter; // TODO: correct icounter/butthurt changing, stub till then
event.stats->butthurt = dolphin->state->data.butthurt; event.stats->icounter = 0;
event.stats->butthurt = 0;
event.stats->timestamp = dolphin->state->data.timestamp; event.stats->timestamp = dolphin->state->data.timestamp;
event.stats->level = dolphin_get_level(dolphin->state->data.icounter); event.stats->level = 1;
event.stats->level_up_is_pending = event.stats->level_up_is_pending = 0;
!dolphin_state_xp_to_levelup(dolphin->state->data.icounter);
} else if(event.type == DolphinEventTypeFlush) { } else if(event.type == DolphinEventTypeFlush) {
// TODO: correct icounter/butthurt changing, stub till then
dolphin->state->data.butthurt = 0;
dolphin->state->data.icounter = 0;
dolphin_state_save(dolphin->state); dolphin_state_save(dolphin->state);
} }
dolphin_event_release(dolphin, &event); dolphin_event_release(dolphin, &event);

View File

@ -32,3 +32,10 @@ Good starting point: https://docs.unrealengine.com/4.27/en-US/ProductionPipeline
Don't include assets that you are not using, compiler is not going to strip unused assets. Don't include assets that you are not using, compiler is not going to strip unused assets.
# Structure
- `compiled` - Output folder for compiled assets.
- `dolphin` - Dolphin game assets sources. Goes to `compiled` and `resources` folders.
- `icons` - Icons sources. Goes to `compiled` folder.
- `protobuf` - Protobuf sources. Goes to `compiled` folder.
- `resources` - Assets that is going to be provisioned to SD card.

25
lib/ReadMe.md Normal file
View File

@ -0,0 +1,25 @@
# Structure
- `app-scened-template` - Scened template app library
- `app-template` - Template app library
- `callback-connector` - Callback connector library
- `common-api` - Common api declaration library
- `cyfral` - Cyfral library
- `drivers` - Drivers that we wrote
- `fatfs` - External storage file system
- `flipper_file` - Flipper File Format library
- `fnv1a-hash` - Fnv1a hash library
- `irda` - Irda library
- `libusb_stm32` - STM32 USB library
- `littlefs` - Internal storage file system
- `micro-ecc` - Elyptic Curve Crpytography library
- `mlib` - Algorithms and containers
- `nanopb` - Nano Protobuf library
- `nfc_protocols` - Nfc protocols library
- `onewire` - One wire library
- `qrcode` - Qr code generator library
- `ST25RFAL002` - ST253916 driver and NFC hal
- `STM32CubeWB` - STM32WB series cube package
- `subghz` - Subghz library
- `toolbox` - Toolbox of things that we are using but don't place in core
- `u8g2` - Graphics library that we use to draw GUI