forked from flipperdevices/flipperzero-firmware
-
-
Notifications
You must be signed in to change notification settings - Fork 545
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit add7b35
Showing
21 changed files
with
1,039 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
App( | ||
appid="air_arkanoid", | ||
name="Air Arkanoid", | ||
apptype=FlipperAppType.EXTERNAL, | ||
entry_point="game_app", | ||
stack_size=4 * 1024, | ||
fap_icon="icon.png", | ||
fap_category="Games", | ||
fap_file_assets="assets", | ||
fap_extbuild=( | ||
ExtFile( | ||
path="${FAP_SRC_DIR}/assets", | ||
command="python3 ${FAP_SRC_DIR}/engine/scripts/sprite_builder.py ${FAP_SRC_DIR.abspath}/sprites ${TARGET.abspath}/sprites", | ||
), | ||
), | ||
) |
Binary file not shown.
Binary file not shown.
Submodule engine
added at
e9ae35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#include "fonts.h" | ||
|
||
const uint8_t u8g2_font_u8glib_4_tr[681] = | ||
"`\0\2\2\3\3\1\3\4\5\6\0\377\4\377\5\377\0\325\1\272\2\214 \4@*!\5a**" | ||
"\42\6\323\63I\5#\12\355y\325P\325P\25\0$\13\365\271\31\34\31\215\221A\4%\6d\66\261" | ||
"\7&\11lv\61\305*\215\0'\5\321+\2(\6\362m\252\31)\7\362-\61U\12*\5\322." | ||
"#+\7[ri%\0,\5\321)\2-\5\313\62\3.\5I*\1/\7d\366 \266\1\60\7" | ||
"c\62#\251\21\61\6bn\253\0\62\7c\62\63\245\1\63\7c\62+\203\21\64\7c\62\61\215\30" | ||
"\65\7c\62C\203\21\66\7c\62#\216\1\67\7c\62\63\225\0\70\7c\62G\32\1\71\6c\62" | ||
"\347\10:\5Y*);\5\341)I<\5Zn\62=\6[\62\33\14>\6Z.Q\1\77\7b" | ||
".*\203\0@\10d\66Cm\60\2A\7dv*\216\31B\7d\66k\310!C\7cr\63\3" | ||
"\1D\10d\66+\312\221\0E\10d\66G\312`\4F\10d\66C\203\225\1G\10d\66C\203\64" | ||
"\6H\7d\66qL\31I\5a*#J\7c\62\63.\0K\10d\66q\244(\3L\6c\62" | ||
"\261\34M\11e:\31\254\225\64\10N\7d\66q\251\31O\10dv*\312\244\0P\10d\66+\216" | ||
"\224\1Q\11e:#\305\24\323\12R\6d\66\257\62S\10dvC\243\241\0T\7c\62+V\0" | ||
"U\7d\66\321\34\2V\7d\66\321L\12W\11e:\31\250\244\272\0X\7c\62\251L\5Y\10" | ||
"d\66qh\60\4Z\7d\66#\226#[\6\362-\253%\134\11d\66\31e\224Q\0]\6\362-" | ||
"\252\65^\5\323s\15_\5\314\65#`\5\322/\61a\6[rG\0b\7c\62Q\245\5c\5" | ||
"Z.Kd\7c\262i%\1e\7[\62#-\0f\7c\262)\255\4g\6\343\61g\22h\7" | ||
"c\62Q%\25i\5a*Ij\7\352m\31$\5k\7c\62\61\255\2l\5a*#m\7]" | ||
":\252\245\12n\7[\62*\251\0o\7[\62#\215\0p\7\343\61*\255\10q\7\343q+\311\0" | ||
"r\6Z.+\1s\7[r*)\0t\7criE\1u\7[\62I\215\0v\7[\62I" | ||
"U\0w\10]:\31\250.\0x\6[\62\251\3y\7\343\61i\304\21z\6[\62\62\12{\10\363" | ||
"q\252\314 \12|\5\361)\7}\11\363\61\62\203\230\222\2~\7\324wI%\0\177\7l\66C\232" | ||
"C\0\0\0\4\377\377\0"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
#pragma once | ||
#include <stdint.h> | ||
|
||
extern const uint8_t u8g2_font_u8glib_4_tr[]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#include "game.h" | ||
#include "game_settings.h" | ||
#include "levels/level_menu.h" | ||
#include "levels/level_game.h" | ||
#include "levels/level_settings.h" | ||
#include "levels/level_message.h" | ||
|
||
const NotificationSequence sequence_sound_blip = { | ||
&message_note_c7, | ||
&message_delay_50, | ||
&message_sound_off, | ||
NULL, | ||
}; | ||
|
||
const NotificationSequence sequence_sound_menu = { | ||
&message_note_c6, | ||
&message_delay_10, | ||
&message_sound_off, | ||
NULL, | ||
}; | ||
|
||
void game_start(GameManager* game_manager, void* ctx) { | ||
GameContext* context = ctx; | ||
context->imu = imu_alloc(); | ||
context->imu_present = imu_present(context->imu); | ||
context->levels.menu = game_manager_add_level(game_manager, &level_menu); | ||
context->levels.settings = game_manager_add_level(game_manager, &level_settings); | ||
context->levels.game = game_manager_add_level(game_manager, &level_game); | ||
context->levels.message = game_manager_add_level(game_manager, &level_message); | ||
|
||
if(!game_settings_load(&context->settings)) { | ||
context->settings.sound = true; | ||
context->settings.show_fps = false; | ||
} | ||
|
||
context->app = furi_record_open(RECORD_NOTIFICATION); | ||
context->game_manager = game_manager; | ||
|
||
game_manager_show_fps_set(context->game_manager, context->settings.show_fps); | ||
} | ||
|
||
void game_stop(void* ctx) { | ||
GameContext* context = ctx; | ||
imu_free(context->imu); | ||
|
||
furi_record_close(RECORD_NOTIFICATION); | ||
} | ||
|
||
const Game game = { | ||
.target_fps = 30, | ||
.show_fps = false, | ||
.always_backlight = true, | ||
.start = game_start, | ||
.stop = game_stop, | ||
.context_size = sizeof(GameContext), | ||
}; | ||
|
||
void game_switch_sound(GameContext* context) { | ||
context->settings.sound = !context->settings.sound; | ||
game_settings_save(&context->settings); | ||
} | ||
|
||
void game_switch_show_fps(GameContext* context) { | ||
context->settings.show_fps = !context->settings.show_fps; | ||
game_manager_show_fps_set(context->game_manager, context->settings.show_fps); | ||
game_settings_save(&context->settings); | ||
} | ||
|
||
void game_sound_play(GameContext* context, const NotificationSequence* sequence) { | ||
if(context->settings.sound) { | ||
notification_message(context->app, sequence); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#pragma once | ||
#include "engine/engine.h" | ||
#include "engine/sensors/imu.h" | ||
#include <notification/notification_messages.h> | ||
|
||
typedef struct { | ||
Level* menu; | ||
Level* settings; | ||
Level* game; | ||
Level* message; | ||
} Levels; | ||
|
||
typedef struct { | ||
bool sound; | ||
bool show_fps; | ||
} Settings; | ||
|
||
typedef struct { | ||
Imu* imu; | ||
bool imu_present; | ||
|
||
Levels levels; | ||
Settings settings; | ||
|
||
NotificationApp* app; | ||
GameManager* game_manager; | ||
} GameContext; | ||
|
||
void game_switch_sound(GameContext* context); | ||
|
||
void game_switch_show_fps(GameContext* context); | ||
|
||
void game_sound_play(GameContext* context, const NotificationSequence* sequence); | ||
|
||
extern const NotificationSequence sequence_sound_menu; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#include <storage/storage.h> | ||
#include "game_settings.h" | ||
#include <lib/toolbox/saved_struct.h> | ||
|
||
#define SETTINGS_PATH APP_DATA_PATH("settings.bin") | ||
#define SETTINGS_VERSION (0) | ||
#define SETTINGS_MAGIC (0x69) | ||
|
||
bool game_settings_load(Settings* settings) { | ||
furi_assert(settings); | ||
|
||
return saved_struct_load( | ||
SETTINGS_PATH, settings, sizeof(Settings), SETTINGS_MAGIC, SETTINGS_VERSION); | ||
} | ||
|
||
bool game_settings_save(Settings* settings) { | ||
furi_assert(settings); | ||
|
||
return saved_struct_save( | ||
SETTINGS_PATH, settings, sizeof(Settings), SETTINGS_MAGIC, SETTINGS_VERSION); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#pragma once | ||
#include "game.h" | ||
|
||
bool game_settings_save(Settings* settings); | ||
|
||
bool game_settings_load(Settings* settings); |
Oops, something went wrong.