Merge branch '420' into MoreFAPs
@@ -18,6 +18,7 @@
|
||||
- Added some stupid breaks for default switch cases.
|
||||
- Updated: [IFTTT Virtual Button (By Ferrazzi)](https://github.com/Ferrazzi/FlipperZero_IFTTT_Virtual_Button) `Req: ESP8266 w/ IFTTT FW Flashed`
|
||||
- Fixes for slower animations to be MUCH faster
|
||||
- [BadUSB as FAP #396 (By ESurge)](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/pull/396)
|
||||
|
||||
<details>
|
||||
<summary><B>TO DO / REMOVED</b></summary><br/>
|
||||
@@ -100,6 +101,7 @@ $ ./fbt plugin_dist
|
||||
- Assets: Includes sample SubGHz assets for Crosswalk, Handicap Doors, Sextoys, Tesla Charge Port, and Unitree Go1 Robot Dog
|
||||
- Assets: Includes Sonic Screw Driver sound for the Wav Player
|
||||
- Assets: Running DolphinRestorer.fap on new install will auto-level to Level 7.
|
||||
- [BadUSB as FAP #396 (By ESurge)](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/pull/396)
|
||||
- BadUSB: Added ignore DUCKY_LANG cmd to retain compatibility with existing scripts [(Thanks to v1nc)](https://github.com/v1nc/flipperzero-firmware)
|
||||
- BadUSB: Assets for Kiosk Evasion (By nocomp) and Wifi Stealer (By 7h30th3r0n3)
|
||||
- BadUSB: [Dummy decoy/bad usb keyboard layout #1525 (By dummy-decoy)](https://github.com/flipperdevices/flipperzero-firmware/pull/1525)
|
||||
|
||||
@@ -11,7 +11,8 @@ App(
|
||||
"lfrfid",
|
||||
"nfc",
|
||||
"subghz",
|
||||
"bad_usb",
|
||||
#"bad_usb",
|
||||
"bad_usb_loader",
|
||||
# "u2f",
|
||||
"u2f_loader",
|
||||
"fap_loader",
|
||||
|
||||
@@ -63,6 +63,14 @@ static void archive_run_in_app(ArchiveBrowserView* browser, ArchiveFile_t* selec
|
||||
char* result =
|
||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
||||
|
||||
strcpy(result, tmpType);
|
||||
strcat(result, furi_string_get_cstr(selected->path));
|
||||
status = loader_start(loader, "Applications", result);
|
||||
} else if(strcmp(flipper_app_name[selected->type], "Bad USB") == 0) {
|
||||
char* tmpType = "/ext/apps/Main/bad_usb.fap¯";
|
||||
char* result =
|
||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
||||
|
||||
strcpy(result, tmpType);
|
||||
strcat(result, furi_string_get_cstr(selected->path));
|
||||
status = loader_start(loader, "Applications", result);
|
||||
|
||||
@@ -12,7 +12,6 @@ App(
|
||||
# icon="A_BadUsb_14",
|
||||
order=70,
|
||||
fap_category="Main",
|
||||
fap_icon="gpioIcon.png",
|
||||
fap_icon="badusb_10px.png",
|
||||
fap_icon_assets="images",
|
||||
|
||||
)
|
||||
|
||||
|
After Width: | Height: | Size: 576 B |
|
After Width: | Height: | Size: 1.9 KiB |
@@ -62,13 +62,13 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
|
||||
if(model->state.state == BadUsbStateNotConnected) {
|
||||
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 127, 27, AlignRight, AlignBottom, "Connect");
|
||||
canvas_draw_str_aligned(canvas, 127, 39, AlignRight, AlignBottom, "to USB");
|
||||
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Connect");
|
||||
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "to USB");
|
||||
} else if(model->state.state == BadUsbStateWillRun) {
|
||||
canvas_draw_icon(canvas, 4, 22, &I_Clock_18x18);
|
||||
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(canvas, 127, 27, AlignRight, AlignBottom, "Will run");
|
||||
canvas_draw_str_aligned(canvas, 127, 39, AlignRight, AlignBottom, "on connect");
|
||||
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will run");
|
||||
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect");
|
||||
} else if(model->state.state == BadUsbStateFileError) {
|
||||
canvas_draw_icon(canvas, 4, 26, &I_Error_18x18);
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
App(
|
||||
appid="bad_usb_loader",
|
||||
name="Bad USB",
|
||||
apptype=FlipperAppType.APP,
|
||||
entry_point="bad_usb_loader_app",
|
||||
requires=[
|
||||
"gui",
|
||||
"dialogs",
|
||||
],
|
||||
stack_size=int(2 * 1024),
|
||||
icon="A_BadUsb_14",
|
||||
order=80,
|
||||
link="/ext/apps/Main/bad_usb.fap",
|
||||
)
|
||||
@@ -0,0 +1,9 @@
|
||||
#include <applications/services/loader/loader_i.h>
|
||||
|
||||
#define TAG "bad_usb_loader_app"
|
||||
|
||||
int32_t bad_usb_loader_app(void* p) {
|
||||
UNUSED(p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 102 B After Width: | Height: | Size: 102 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 102 B After Width: | Height: | Size: 102 B |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 154 B |
|
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -9,4 +9,5 @@ App(
|
||||
order=100,
|
||||
fap_icon="flappy_10px.png",
|
||||
fap_category="Games",
|
||||
fap_icon_assets="assets",
|
||||
)
|
||||
|
||||
|
After Width: | Height: | Size: 113 B |
|
After Width: | Height: | Size: 116 B |
|
After Width: | Height: | Size: 116 B |
@@ -0,0 +1 @@
|
||||
3
|
||||
@@ -1,54 +0,0 @@
|
||||
#include <furi.h>
|
||||
|
||||
uint8_t bird_array[3][15][11] = {
|
||||
{
|
||||
{0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0},
|
||||
{0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0},
|
||||
{0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0},
|
||||
{0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0},
|
||||
{0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
|
||||
{1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1},
|
||||
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
|
||||
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
|
||||
},
|
||||
{
|
||||
{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
|
||||
{0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0},
|
||||
{0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0},
|
||||
{0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0},
|
||||
{0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1},
|
||||
{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
|
||||
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
|
||||
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
|
||||
},
|
||||
{
|
||||
{0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0},
|
||||
{0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0},
|
||||
{0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0},
|
||||
{0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0},
|
||||
{0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1},
|
||||
{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1},
|
||||
{1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1},
|
||||
{1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
|
||||
}};
|
||||
@@ -1,10 +1,11 @@
|
||||
#include <furi.h>
|
||||
#include <gui/gui.h>
|
||||
#include <input/input.h>
|
||||
#include <stdlib.h>
|
||||
#include <dolphin/dolphin.h>
|
||||
|
||||
#include "bird.h"
|
||||
#include <FlappyBird_icons.h>
|
||||
#include <furi.h>
|
||||
#include <gui/gui.h>
|
||||
#include <gui/icon_animation_i.h>
|
||||
#include <input/input.h>
|
||||
|
||||
#define TAG "Flappy"
|
||||
#define DEBUG false
|
||||
@@ -37,6 +38,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
float gravity;
|
||||
POINT point;
|
||||
IconAnimation* sprite;
|
||||
} BIRD;
|
||||
|
||||
typedef struct {
|
||||
@@ -90,6 +92,7 @@ static void flappy_game_state_init(GameState* const game_state) {
|
||||
bird.gravity = 0.0f;
|
||||
bird.point.x = 15;
|
||||
bird.point.y = 32;
|
||||
bird.sprite = icon_animation_alloc(&A_bird);
|
||||
|
||||
game_state->debug = DEBUG;
|
||||
game_state->bird = bird;
|
||||
@@ -101,6 +104,11 @@ static void flappy_game_state_init(GameState* const game_state) {
|
||||
flappy_game_random_pilar(game_state);
|
||||
}
|
||||
|
||||
static void flappy_game_state_free(GameState* const game_state) {
|
||||
icon_animation_free(game_state->bird.sprite);
|
||||
free(game_state);
|
||||
}
|
||||
|
||||
static void flappy_game_tick(GameState* const game_state) {
|
||||
if(game_state->state == GameStateLife) {
|
||||
if(!game_state->debug) {
|
||||
@@ -214,27 +222,16 @@ static void flappy_game_render_callback(Canvas* const canvas, void* ctx) {
|
||||
FLIPPER_LCD_HEIGHT - pilar->height - FLAPPY_GAB_HEIGHT);
|
||||
}
|
||||
}
|
||||
// Flappy
|
||||
for(int h = 0; h < FLAPPY_BIRD_HEIGHT; h++) {
|
||||
for(int w = 0; w < FLAPPY_BIRD_WIDTH; w++) {
|
||||
// Switch animation
|
||||
int bird = 1;
|
||||
if(game_state->bird.gravity < -0.5)
|
||||
bird = 0;
|
||||
else if(game_state->bird.gravity > 0.5)
|
||||
bird = 2;
|
||||
|
||||
// Draw bird pixels
|
||||
if(bird_array[bird][h][w] == 1) {
|
||||
int x = game_state->bird.point.x + h;
|
||||
int y = game_state->bird.point.y + w;
|
||||
// Switch animation
|
||||
game_state->bird.sprite->frame = 1;
|
||||
if(game_state->bird.gravity < -0.5)
|
||||
game_state->bird.sprite->frame = 0;
|
||||
else if(game_state->bird.gravity > 0.5)
|
||||
game_state->bird.sprite->frame = 2;
|
||||
|
||||
canvas_draw_dot(canvas, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Stats
|
||||
canvas_draw_icon_animation(
|
||||
canvas, game_state->bird.point.x, game_state->bird.point.y, game_state->bird.sprite);
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
char buffer[12];
|
||||
@@ -371,7 +368,7 @@ int32_t flappy_game_app(void* p) {
|
||||
delete_mutex(&state_mutex);
|
||||
|
||||
free_and_exit:
|
||||
free(game_state);
|
||||
flappy_game_state_free(game_state);
|
||||
furi_message_queue_free(event_queue);
|
||||
|
||||
return return_code;
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
|
||||
- Animations: Trimmed out the Flipper animations. `/ext/dolphin` folder on your Flipper should now be managed by you! [Copy this folder (RM Select)](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-RMselect) or [this folder (RM minimal)](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-minimal) if you don't want to do the work but want more animations.
|
||||
- - Rename the [minimal animation file](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/assets/resources/dolphin/manifest.txt.exampleMin) to see it, or [RM select](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/assets/resources/dolphin/manifest.txt.exampleRM) if you have copied over [the RM select](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-RMselect) animations.
|
||||
- on OFW the manifest.txt gets generated for the source material available to fbt (PNGs) and the BMs get built at run
|
||||
- on RM manifest.txt is not auto-generated, whatever OFW, RM or Unleashed animations installed will remain. New animations added would need to be added based on the animation set being used. Also, new animation development would need to have either a recode made of certain files or use a different FW to generate BMs for install. (Will need to try to fix this I guess, I might be able to)
|
||||
- I link to option folders here: https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/ReadMe.md?plain=1#L105 but also explain further here with examples that in the install: https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/ReadMe.md?plain=1#L25
|
||||
(the minimal is in the install)
|
||||
|
||||
|
||||
## Animations: File `/ext/dolphin/manifest.txt` no longer will get overwritten. Any automatic building of animations is disabled [here](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/commit/fbe9175e0c828a54e651ee11f64f10f21e36a907).
|
||||
|
||||
- Not all of these animations are here, some are [here](https://github.com/RogueMaster/awesome-flipperzero-withModules/tree/rogue_main/dolphin-all)
|
||||
- Assets: Includes New Dolphin Animations: [Rick Roll, Matrix & Swim animations (By qqMajiKpp)], [Rukamon 2x and Agumon animations (By Syrius)], [Mew (By Arkaivos)], [Eye of the Flipper (By Kuronons)], [Shodan (By qqMajiKpp)], [Sirene & The Witch (By Haseo)], [Dino & A New Hope (By Haseo)], [Earth Arcadia (By Kuronons)], [Kuronons Black Flags Collection (21 Animations)(By Kuronons)], [D.Va (By Haseo)], [GITS (By Haseo)], [Slayers (By qqMajiKpp)], [P0liwhirl (By Panzer00Z)], [RogueMaster CFW Animation (By Kuronons)], [Nyan Cat (By Haseo)], [L (By Kuronons)], [Laughing Man (By Kuronons)], [B0ws3r (By Haseo)], [Kuronons Black Flags Collection VOL 2 (9 Animations)(By Kuronons)], [Thanks for all the fish (By qqMajiKpp)], [OCP, Skynet and Weyland (By Kuronons)], [Mario (By Haseo)], [Umbrella (By Haseo)], [Trioptimum (By qqMajiKpp)], [Tyrell & Cyberdyne (By Kuronons)], [Allen & Maha (By Haseo)], [Starfield (By qqMajiKpp)], [DJ (By ut1s)], [Fireplace (By Friend of xMasterX)], [Akira & Mad Scientist (By qqMajiKpp)], [Shar!ngan (By Haseo)], [Lions Roar (By qqMajiKpp)], [0ne Pi3ce (By Haseo)], [Calcifier & Last Unicorn (By NeonKodama)], [Jiji Milk (By NeonKodama)], [Halloween, Hexadecimal, Init D Water, Kam3Ham3Ha, Kirbs, Kirbs Confused, M3gamanZ3r0 Battle, OP G3ar 4, Z3lda 0h & Zelda R3ady (By RogueMaster)], [Rekall (By Kuronons)], [Stick Fight (By Sasquach)], [G0ku, Lufy & Mug1wara (By Haseo)], [Tardi5 (By RogueMaster)] & [80s (By Haseo)]
|
||||
|
||||