@@ -637,13 +637,9 @@ void GameMenuState::OptionMenuLevel() {
637
637
flatui::EndGroup ();
638
638
}
639
639
640
- MenuState GameMenuState::ScoreReviewMenu (fplbase::AssetManager& assetman,
641
- flatui::FontManager& fontman,
642
- fplbase::InputSystem& input) {
643
- MenuState next_state = kMenuStateScoreReview ;
644
-
645
- PushDebugMarker (" ScoreReviewMenu" );
646
-
640
+ void GameMenuState::EmptyMenuBackground (
641
+ fplbase::AssetManager& assetman, flatui::FontManager& fontman,
642
+ fplbase::InputSystem& input, const std::function<void ()>& gui_definition) {
647
643
flatui::Run (assetman, fontman, input, [&]() {
648
644
flatui::StartGroup (flatui::kLayoutOverlay , 0 );
649
645
flatui::StartGroup (flatui::kLayoutHorizontalTop , 0 );
@@ -655,6 +651,32 @@ MenuState GameMenuState::ScoreReviewMenu(fplbase::AssetManager& assetman,
655
651
flatui::Image (*background_options_, 1400 );
656
652
flatui::EndGroup ();
657
653
654
+ gui_definition ();
655
+
656
+ flatui::EndGroup ();
657
+ flatui::EndGroup ();
658
+ });
659
+ }
660
+
661
+ bool GameMenuState::DisplayMessageBackButton () {
662
+ flatui::StartGroup (flatui::kLayoutHorizontalBottom , 150 );
663
+ flatui::PositionGroup (flatui::kAlignCenter , flatui::kAlignBottom ,
664
+ mathfu::vec2 (0 , -125 ));
665
+ flatui::SetTextColor (kColorLightBrown );
666
+ auto event = ImageButtonWithLabel (*button_back_, 60 ,
667
+ flatui::Margin (60 , 35 , 40 , 50 ), " Back" );
668
+ flatui::EndGroup ();
669
+ return event & flatui::kEventWentUp ;
670
+ }
671
+
672
+ MenuState GameMenuState::ScoreReviewMenu (fplbase::AssetManager& assetman,
673
+ flatui::FontManager& fontman,
674
+ fplbase::InputSystem& input) {
675
+ MenuState next_state = kMenuStateScoreReview ;
676
+
677
+ PushDebugMarker (" ScoreReviewMenu" );
678
+
679
+ EmptyMenuBackground (assetman, fontman, input, [&]() {
658
680
// Display the game end values, along with the score.
659
681
flatui::SetTextColor (kColorBrown );
660
682
flatui::StartGroup (flatui::kLayoutVerticalRight , 10 );
@@ -715,9 +737,6 @@ MenuState GameMenuState::ScoreReviewMenu(fplbase::AssetManager& assetman,
715
737
next_state = kMenuStateFinished ;
716
738
}
717
739
flatui::EndGroup ();
718
-
719
- flatui::EndGroup ();
720
- flatui::EndGroup ();
721
740
});
722
741
723
742
PopDebugMarker (); // ScoreReviewMenu
@@ -732,18 +751,8 @@ MenuState GameMenuState::ReceivedInviteMenu(fplbase::AssetManager& assetman,
732
751
733
752
PushDebugMarker (" ReceivedInviteMenu" );
734
753
735
- flatui::Run (assetman, fontman, input, [&]() {
736
- flatui::StartGroup (flatui::kLayoutOverlay , 0 );
737
- flatui::StartGroup (flatui::kLayoutHorizontalTop , 0 );
738
- // Background image.
739
- flatui::StartGroup (flatui::kLayoutVerticalCenter , 0 );
740
- // Positioning the UI slightly above of the center.
741
- flatui::PositionGroup (flatui::kAlignCenter , flatui::kAlignCenter ,
742
- mathfu::vec2 (0 , -150 ));
743
- flatui::Image (*background_options_, 1400 );
744
- flatui::EndGroup ();
745
-
746
- // Display the game end values, along with the score.
754
+ EmptyMenuBackground (assetman, fontman, input, [&]() {
755
+ // Display a message indicating an invite was received.
747
756
flatui::SetTextColor (kColorBrown );
748
757
flatui::StartGroup (flatui::kLayoutVerticalCenter , 10 );
749
758
flatui::PositionGroup (flatui::kAlignCenter , flatui::kAlignCenter ,
@@ -758,22 +767,38 @@ MenuState GameMenuState::ReceivedInviteMenu(fplbase::AssetManager& assetman,
758
767
}
759
768
flatui::EndGroup ();
760
769
761
- flatui::StartGroup (flatui::kLayoutHorizontalBottom , 150 );
762
- flatui::PositionGroup (flatui::kAlignCenter , flatui::kAlignBottom ,
763
- mathfu::vec2 (0 , -125 ));
764
- flatui::SetTextColor (kColorLightBrown );
765
- auto event = ImageButtonWithLabel (*button_back_, 60 ,
766
- flatui::Margin (60 , 35 , 40 , 50 ), " Back" );
767
- if (event & flatui::kEventWentUp ) {
770
+ if (DisplayMessageBackButton ()) {
768
771
next_state = kMenuStateStart ;
769
772
}
770
- flatui::EndGroup ( );
773
+ } );
771
774
775
+ PopDebugMarker (); // ReceivedInviteMenu
776
+
777
+ return next_state;
778
+ }
779
+
780
+ MenuState GameMenuState::ReceivedMessageMenu (fplbase::AssetManager& assetman,
781
+ flatui::FontManager& fontman,
782
+ fplbase::InputSystem& input) {
783
+ MenuState next_state = kMenuStateReceivedMessage ;
784
+
785
+ PushDebugMarker (" ReceivedMessageMenu" );
786
+
787
+ EmptyMenuBackground (assetman, fontman, input, [&]() {
788
+ // Display the message that was received.
789
+ flatui::SetTextColor (kColorBrown );
790
+ flatui::StartGroup (flatui::kLayoutVerticalCenter , 10 );
791
+ flatui::PositionGroup (flatui::kAlignCenter , flatui::kAlignCenter ,
792
+ mathfu::kZeros2f );
793
+ flatui::Label (received_message_.c_str (), kButtonSize );
772
794
flatui::EndGroup ();
773
- flatui::EndGroup ();
795
+
796
+ if (DisplayMessageBackButton ()) {
797
+ next_state = kMenuStateStart ;
798
+ }
774
799
});
775
800
776
- PopDebugMarker (); // ReceivedInviteMenu
801
+ PopDebugMarker (); // ReceivedMessageMenu
777
802
778
803
return next_state;
779
804
}
0 commit comments