mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-23 05:24:46 -07:00
Fuzzer App: Attack state
This commit is contained in:
@@ -49,11 +49,10 @@ void fuzzer_scene_attack_on_enter(void* context) {
|
||||
app->attack_view,
|
||||
fuzzer_proto_get_menu_label(app->fuzzer_state.menu_index),
|
||||
fuzzer_proto_get_name(app->fuzzer_state.proto_index));
|
||||
fuzzer_view_attack_set_attack(app->attack_view, false);
|
||||
|
||||
fuzzer_scene_attack_update_uid(app);
|
||||
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, false);
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateIdle);
|
||||
|
||||
view_dispatcher_switch_to_view(app->view_dispatcher, FuzzerViewIDAttack);
|
||||
}
|
||||
@@ -65,35 +64,53 @@ bool fuzzer_scene_attack_on_event(void* context, SceneManagerEvent event) {
|
||||
|
||||
if(event.type == SceneManagerEventTypeCustom) {
|
||||
if(event.event == FuzzerCustomEventViewAttackBack) {
|
||||
if(!scene_manager_get_scene_state(app->scene_manager, FuzzerSceneAttack)) {
|
||||
if(scene_manager_get_scene_state(app->scene_manager, FuzzerSceneAttack) ==
|
||||
FuzzerAttackStateRunning) {
|
||||
// Pause if attack running
|
||||
fuzzer_worker_pause(app->worker);
|
||||
scene_manager_set_scene_state(
|
||||
app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateIdle);
|
||||
fuzzer_view_attack_pause(app->attack_view);
|
||||
} else {
|
||||
// Exit
|
||||
fuzzer_worker_stop(app->worker);
|
||||
scene_manager_set_scene_state(
|
||||
app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateOff);
|
||||
fuzzer_view_attack_stop(app->attack_view);
|
||||
if(!scene_manager_previous_scene(app->scene_manager)) {
|
||||
scene_manager_stop(app->scene_manager);
|
||||
view_dispatcher_stop(app->view_dispatcher);
|
||||
}
|
||||
} else {
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, false);
|
||||
fuzzer_view_attack_set_attack(app->attack_view, false);
|
||||
fuzzer_worker_stop(app->worker);
|
||||
}
|
||||
consumed = true;
|
||||
} else if(event.event == FuzzerCustomEventViewAttackOk) {
|
||||
if(!scene_manager_get_scene_state(app->scene_manager, FuzzerSceneAttack) &&
|
||||
fuzzer_worker_start(
|
||||
app->worker, fuzzer_view_attack_get_time_delay(app->attack_view))) {
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, true);
|
||||
fuzzer_view_attack_set_attack(app->attack_view, true);
|
||||
} else {
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, false);
|
||||
fuzzer_view_attack_set_attack(app->attack_view, false);
|
||||
fuzzer_worker_stop(app->worker);
|
||||
if(scene_manager_get_scene_state(app->scene_manager, FuzzerSceneAttack) ==
|
||||
FuzzerAttackStateIdle) {
|
||||
// Start or Continue Attack
|
||||
if(fuzzer_worker_start(
|
||||
app->worker, fuzzer_view_attack_get_time_delay(app->attack_view))) {
|
||||
scene_manager_set_scene_state(
|
||||
app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateRunning);
|
||||
fuzzer_view_attack_start(app->attack_view);
|
||||
} else {
|
||||
// Error?
|
||||
}
|
||||
} else if(
|
||||
scene_manager_get_scene_state(app->scene_manager, FuzzerSceneAttack) ==
|
||||
FuzzerAttackStateRunning) {
|
||||
scene_manager_set_scene_state(
|
||||
app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateIdle);
|
||||
fuzzer_view_attack_pause(app->attack_view);
|
||||
fuzzer_worker_pause(app->worker); // XXX
|
||||
}
|
||||
consumed = true;
|
||||
} else if(event.event == FuzzerCustomEventViewAttackTick) {
|
||||
fuzzer_scene_attack_update_uid(app);
|
||||
consumed = true;
|
||||
} else if(event.event == FuzzerCustomEventViewAttackEnd) {
|
||||
scene_manager_set_scene_state(app->scene_manager, FuzzerSceneAttack, false);
|
||||
fuzzer_view_attack_set_attack(app->attack_view, false);
|
||||
scene_manager_set_scene_state(
|
||||
app->scene_manager, FuzzerSceneAttack, FuzzerAttackStateEnd);
|
||||
fuzzer_view_attack_end(app->attack_view);
|
||||
consumed = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user