MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / ProcessEventsWhileNonactive

Method ProcessEventsWhileNonactive

PanzerChasm/menu.cpp:2430–2492  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2428}
2429
2430void Menu::ProcessEventsWhileNonactive( const SystemEvents& events )
2431{
2432 if( IsActive() )
2433 return;
2434
2435 PC_ASSERT( current_menu_ == nullptr );
2436
2437 for( const SystemEvent& event : events )
2438 {
2439 if( event.type != SystemEvent::Type::Key )
2440 continue;
2441 if( !event.event.key.pressed )
2442 continue;
2443
2444 MenuBase* const previous_menu= current_menu_;
2445
2446 switch( event.event.key.key_code )
2447 {
2448 case KeyCode::F2:
2449 current_menu_= root_menu_->OpenSaveMenu();
2450 root_menu_->PlayMenuSound( Sound::SoundId::MenuSelect );
2451 break;
2452
2453 case KeyCode::F3:
2454 current_menu_= root_menu_->OpenLoadMenu();
2455 root_menu_->PlayMenuSound( Sound::SoundId::MenuSelect );
2456 break;
2457
2458 case KeyCode::F4:
2459 current_menu_= root_menu_->OpenOptionsMenu();
2460 root_menu_->PlayMenuSound( Sound::SoundId::MenuSelect );
2461 break;
2462
2463 case KeyCode::F5:
2464 current_menu_= root_menu_->OpenNetworkMenu();
2465 root_menu_->PlayMenuSound( Sound::SoundId::MenuSelect );
2466 break;
2467
2468 case KeyCode::F6:
2469 host_commands_.SaveGame(0u);
2470 break;
2471
2472 case KeyCode::F9:
2473 host_commands_.LoadGame(0u);
2474 break;
2475
2476 case KeyCode::F10:
2477 current_menu_= root_menu_->OpenQuitMenu();
2478 root_menu_->PlayMenuSound( Sound::SoundId::MenuSelect );
2479 break;
2480
2481 case KeyCode::F12:
2482 // TODO - take screenshot
2483 break;
2484
2485 default:
2486 break;
2487 };

Callers 1

LoopMethod · 0.80

Calls 9

OpenSaveMenuMethod · 0.80
PlayMenuSoundMethod · 0.80
OpenLoadMenuMethod · 0.80
OpenOptionsMenuMethod · 0.80
OpenNetworkMenuMethod · 0.80
SaveGameMethod · 0.80
LoadGameMethod · 0.80
OpenQuitMenuMethod · 0.80
OnActivatedMethod · 0.80

Tested by

no test coverage detected