mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-29 00:09:19 +03:00
ecab4d53d2
* Add doxygen and doxygen-awesome css, cleanup docs files * Ignore more libraries and remove leftover local variables * Create an actual intro page * .md files linting * Add doxygen action * Fix Doxygen path * Fix doxyfile path * Try to upload * Change docs branch * Add submudules checkout * Disable doxygen on PR * Mention the firmware docs in the readme * More dev docs mentions in the readme * Fix runner group, add tags * Test dev in PR * Disable running on PR * Fix a typo in the doxyfile * Try upload to S3 * Fix local path * Fix S3 ACL * Add delete flag, unifying dev and tags * Update ignored directories * More ignored directories * Even more ignored directories * Fix submodule * Change S3 uploader * Change S3 uploader version * Fix aws sync flags * Fix ACL * Disable ACL * Improve ignores, add WiFi devboard docs * TEMP: generate dev docs * TEMP: generate 0.89.0 docs * Disabling PR trigger * Enable submodules and test build * Enable test build * Disable test build * Change docs directory structure * Fix accidentally committed submodule * Fix submodules * Update links to the developer documentation * Markdown linting * Update workflow, enable test build * Fix doxygen dir path * Update Doxyfile-awesome.cfg * Change paths * Fix upload docs path * Disable pull_request debug trigger * Disable tags building * Remove autolinks and namespaces * Establish basic documentation structure * Add missing changes * Improve stylesheet, move some files * Improve examples * Improve the main page * Improve application dev docs * Improve system programming docs * Improve development tools docs * Improve other docs * Improve application examples * Fix formatting * Fix PVS-studio warnings * Improve visuals * Fix doxygen syntax warnings * Fix broken links * Update doxygen action Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com> Co-authored-by: あく <alleteam@gmail.com> Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com> Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
82 lines
3.6 KiB
Markdown
82 lines
3.6 KiB
Markdown
# Dolphin assets {#dolphin_assets}
|
|
|
|
Dolphin assets are split into 3 parts:
|
|
|
|
- blocking - Essential animations that are used for blocking system notifications. They are packed to `assets_dolphin_blocking.[h,c]`.
|
|
- internal - Internal animations that are used for idle dolphin animation. Converted to `assets_dolphin_internal.[h,c]`.
|
|
- external - External animations that are used for idle dolphin animation. Packed to resource folder and placed on SD card.
|
|
|
|
# Files
|
|
|
|
- `manifest.txt` - contains animations enumeration that is used for random animation selection. Starting point for Dolphin.
|
|
- `meta.txt` - contains data that describes how animation is drawn.
|
|
- `frame_X.png` - animation frame.
|
|
|
|
## File manifest.txt
|
|
|
|
Flipper Format File with ordered keys.
|
|
|
|
Header:
|
|
|
|
```
|
|
Filetype: Flipper Animation Manifest
|
|
Version: 1
|
|
```
|
|
|
|
- `Name` - name of animation. Must be exact animation directory name.
|
|
- `Min butthurt`, `Max butthurt` - range of dolphin's butthurt for this animation.
|
|
- `Min level`, `Max level` - range of dolphin's level for this animation. If 0, this animation doesn't participate in random idle animation selection and can only be selected by exact name.
|
|
- `Weight` - chance of this animation to be chosen at random animation selection.
|
|
|
|
Some animations can be excluded from participation in random animation selection, such as `L1_NoSd_128x49`.
|
|
|
|
## File meta.txt
|
|
|
|
Flipper Format File with ordered keys.
|
|
|
|
Header:
|
|
|
|
```
|
|
Filetype: Flipper Animation
|
|
Version: 1
|
|
```
|
|
|
|
- `Width` - animation width in px (<= 128)
|
|
- `Height` - animation height in px (<= 64)
|
|
- `Passive frames` - number of bitmap frames for passive animation state
|
|
- `Active frames` - number of bitmap frames for active animation state (can be 0)
|
|
- `Frames order` - order of bitmap frames where first N frames are passive and following M are active. Each X number in order refers to bitmap frame, with name frame\_X.bm. This file must exist. Any X number can be repeated to refer same frame in animation.
|
|
- `Active cycles` - cycles to repeat of N active frames for full active period. E.g. if frames for active cycles are 6 and 7, and active cycles is 3, so full active period plays 6 7 6 7 6 7. Full period of passive + active period are called *total period*.
|
|
- `Frame rate` - number of frames to play for 1 second.
|
|
- `Duration` - total amount of seconds to play 1 animation.
|
|
- `Active cooldown` - amount of seconds (after passive mode) to pass before entering next active mode.
|
|
|
|
- `Bubble slots` - amount of bubble sequences.
|
|
- Any bubble sequence plays whole sequence during active mode. There can be many bubble sequences and bubbles inside it. Bubbles in 1 bubble sequence have to reside in 1 slot. Bubbles order in 1 bubble sequence is determined by occurrence in file. As soon as frame index goes out of EndFrame index of bubble - next animation bubble is chosen. There can also be free of bubbles frames between 2 bubbles.
|
|
|
|
- `Slot` - number to unite bubbles for same sequence.
|
|
- `X`, `Y` - are coordinates of left top corner of bubble.
|
|
- `Text` - text in bubble. New line is `\n`
|
|
- `AlignH` - horizontal place of bubble corner (Left, Center, Right)
|
|
- `AlignV` - vertical place of bubble corner (Top, Center, Bottom)
|
|
- `StartFrame`, `EndFrame` - frame index range inside whole period to show bubble.
|
|
|
|
### Understanding of frame indexes
|
|
|
|
For example we have
|
|
|
|
```
|
|
Passive frames: 6
|
|
Active frames: 2
|
|
Frames order: 0 1 2 3 4 5 6 7
|
|
Active cycles: 4
|
|
```
|
|
|
|
Then we have indexes
|
|
|
|
```
|
|
passive(6) active (2 * 4)
|
|
Real frames order: 0 1 2 3 4 5 6 7 6 7 6 7 6 7
|
|
Frames indexes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
|
|
```
|