@@ -133,6 +133,7 @@ void callback::mainmenu(int Param)
133133 {
134134 ENDGAME = 1 ,
135135 STARTEDITOR ,
136+ LOADMAP ,
136137 OPTIONS
137138 };
138139
@@ -141,11 +142,11 @@ void callback::mainmenu(int Param)
141142 case INITIALIZING_CALL :
142143 MainMenu = global::s2->RegisterMenu (std::make_unique<CMenu>(SPLASHSCREEN_MAINMENU ));
143144 MainMenu->addButton (mainmenu, ENDGAME , Position (50 , 400 ), Extent (200 , 20 ), BUTTON_RED1 , " Quit program" );
145+ MainMenu->addButton (mainmenu, STARTEDITOR , Position (50 , 160 ), Extent (200 , 20 ), BUTTON_RED1 , " Start editor" );
146+ MainMenu->addButton (mainmenu, LOADMAP , Position (50 , 200 ), Extent (200 , 20 ), BUTTON_GREEN2 , " Load map" );
144147#ifdef _ADMINMODE
145- MainMenu->addButton (submenu1, INITIALIZING_CALL , Position (50 , 200 ), Extent (200 , 20 ), BUTTON_GREY ,
146- " Submenu_1" );
148+ MainMenu->addButton (submenu1, INITIALIZING_CALL , Position (50 , 240 ), Extent (200 , 20 ), BUTTON_GREY , " Submenu_1" );
147149#endif
148- MainMenu->addButton (mainmenu, STARTEDITOR , Position (50 , 160 ), Extent (200 , 20 ), BUTTON_RED1 , " Start editor" );
149150 MainMenu->addButton (mainmenu, OPTIONS , Position (50 , 370 ), Extent (200 , 20 ), BUTTON_GREEN2 , " Options" );
150151 break ;
151152
@@ -158,14 +159,9 @@ void callback::mainmenu(int Param)
158159 global::s2->Running = false ;
159160 break ;
160161
161- case STARTEDITOR :
162- assert (MainMenu);
163- PleaseWait (INITIALIZING_CALL );
164- global::s2->setMapObj (std::make_unique<CMap>(" " ));
165- MainMenu->setWaste ();
166- MainMenu = nullptr ;
167- PleaseWait (WINDOW_QUIT_MESSAGE );
168- break ;
162+ case STARTEDITOR : global::s2->enterEditor (" " ); break ;
163+
164+ case LOADMAP : EditorLoadMenu (INITIALIZING_CALL ); break ;
169165
170166 case OPTIONS :
171167 assert (MainMenu);
@@ -230,7 +226,8 @@ void callback::submenuOptions(int Param)
230226 SELECTBOX_1920_1400 ,
231227 SELECTBOX_1920_1440 ,
232228 SELECTBOX_2048_1152 ,
233- SELECTBOX_2048_1536
229+ SELECTBOX_2048_1536 ,
230+ SELECTBOX_3840_2160
234231 };
235232
236233 switch (Param)
@@ -252,9 +249,9 @@ void callback::submenuOptions(int Param)
252249 if (ButtonFullscreen)
253250 SubMenu->delButton (ButtonFullscreen);
254251 ButtonFullscreen =
255- SubMenu->addButton (submenuOptions, FULLSCREEN , Position (global::s2->GameResolution .x / 2 - 100 , 190 ),
252+ SubMenu->addButton (submenuOptions, FULLSCREEN , Position (global::s2->GameResolution .x / 2 - 100 , 410 ),
256253 Extent (200 , 20 ), BUTTON_RED1 , (global::s2->fullscreen ? " WINDOW" : " FULLSCREEN" ));
257- SelectBoxRes = SubMenu->addSelectBox (ButtonFullscreen->getPos () - Position (0 , 120 ), Extent (200 , 110 ),
254+ SelectBoxRes = SubMenu->addSelectBox (ButtonFullscreen->getPos () - Position (0 , 340 ), Extent (200 , 330 ),
258255 FontSize::Medium, FontColor::Yellow, BUTTON_GREY );
259256 SelectBoxRes->addOption (" 800 x 600 (SVGA)" , submenuOptions, SELECTBOX_800_600 );
260257 SelectBoxRes->addOption (" 832 x 624 (Half Megapixel)" , submenuOptions, SELECTBOX_832_624 );
@@ -298,6 +295,7 @@ void callback::submenuOptions(int Param)
298295 SelectBoxRes->addOption (" 1920 x 1440" , submenuOptions, SELECTBOX_1920_1440 );
299296 SelectBoxRes->addOption (" 2048 x 1152 (QWXGA)" , submenuOptions, SELECTBOX_2048_1152 );
300297 SelectBoxRes->addOption (" 2048 x 1536 (SUXGA)" , submenuOptions, SELECTBOX_2048_1536 );
298+ SelectBoxRes->addOption (" 3840 x 2160 (4K UHD)" , submenuOptions, SELECTBOX_3840_2160 );
301299 break ;
302300
303301 case MAINMENU :
@@ -318,6 +316,7 @@ void callback::submenuOptions(int Param)
318316
319317 case GRAPHICS_CHANGE :
320318 assert (SubMenu);
319+ global::s2->SaveSettings ();
321320 SubMenu->setWaste ();
322321 TextResolution = nullptr ;
323322 ButtonFullscreen = nullptr ;
@@ -578,6 +577,12 @@ void callback::submenuOptions(int Param)
578577 submenuOptions (GRAPHICS_CHANGE );
579578 break ;
580579
580+ case SELECTBOX_3840_2160 :
581+ global::s2->GameResolution .x = 3840 ;
582+ global::s2->GameResolution .y = 2160 ;
583+ submenuOptions (GRAPHICS_CHANGE );
584+ break ;
585+
581586 default : break ;
582587 }
583588}
@@ -611,7 +616,7 @@ void callback::EditorHelpMenu(int Param)
611616 " ..............................F1" );
612617 SelectBoxHelp->addOption (
613618 " Window/"
614- " Fullscreen........................................................................................F2 " );
619+ " Fullscreen...................................................................................Alt+Enter " );
615620 SelectBoxHelp->addOption (
616621 " Zoom in/normal/out......................................................................F5/F6/"
617622 " F7" );
@@ -741,7 +746,6 @@ void callback::EditorMainMenu(int Param)
741746void callback::EditorLoadMenu (int Param)
742747{
743748 static CWindow* WNDLoad = nullptr ;
744- static CMap* MapObj = nullptr ;
745749 static std::string curFilename;
746750
747751 enum
@@ -758,8 +762,6 @@ void callback::EditorLoadMenu(int Param)
758762 break ;
759763 WNDLoad = global::s2->RegisterWindow (std::make_unique<CWindow>(
760764 EditorLoadMenu, WINDOWQUIT , WindowPos::Center, Extent (280 , 320 ), " Load" , WINDOW_GREEN1 , WINDOW_CLOSE ));
761- MapObj = global::s2->getMapObj ();
762-
763765 auto * CB_Filename = WNDLoad->addSelectBox (Position (10 , 5 ), Extent (160 , 280 ), FontSize::Medium);
764766 curFilename.clear ();
765767 for (const auto & itFile : bfs::directory_iterator (global::userMapsPath))
@@ -799,15 +801,15 @@ void callback::EditorLoadMenu(int Param)
799801 EditorAnimalMenu (MAP_QUIT );
800802 EditorPlayerMenu (MAP_QUIT );
801803
802- MapObj->destructMap ();
803804 bfs::path filepath = global::userMapsPath / curFilename;
804805 if (!filepath.has_extension ())
805806 filepath.replace_extension (" SWD" );
806807 if (!bfs::exists (filepath))
807808 filepath.replace_extension (" WLD" );
808809 if (!bfs::exists (filepath))
809810 filepath.replace_extension (" SWD" );
810- MapObj->constructMap (filepath);
811+
812+ global::s2->enterEditor (filepath);
811813
812814 // we need to check which of these windows was active before
813815 /*
0 commit comments