@@ -133,6 +133,7 @@ void callback::mainmenu(int Param)
133133 {
134134 ENDGAME = 1 ,
135135 STARTEDITOR ,
136+ LOADMAP ,
136137 OPTIONS
137138 };
138139
@@ -141,11 +142,12 @@ 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 ,
148+ MainMenu->addButton (submenu1, INITIALIZING_CALL , Position (50 , 240 ), Extent (200 , 20 ), BUTTON_GREY ,
146149 " Submenu_1" );
147150#endif
148- MainMenu->addButton (mainmenu, STARTEDITOR , Position (50 , 160 ), Extent (200 , 20 ), BUTTON_RED1 , " Start editor" );
149151 MainMenu->addButton (mainmenu, OPTIONS , Position (50 , 370 ), Extent (200 , 20 ), BUTTON_GREEN2 , " Options" );
150152 break ;
151153
@@ -158,14 +160,9 @@ void callback::mainmenu(int Param)
158160 global::s2->Running = false ;
159161 break ;
160162
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 ;
163+ case STARTEDITOR : global::s2->enterEditor (" " ); break ;
164+
165+ case LOADMAP : EditorLoadMenu (INITIALIZING_CALL ); break ;
169166
170167 case OPTIONS :
171168 assert (MainMenu);
@@ -230,7 +227,8 @@ void callback::submenuOptions(int Param)
230227 SELECTBOX_1920_1400 ,
231228 SELECTBOX_1920_1440 ,
232229 SELECTBOX_2048_1152 ,
233- SELECTBOX_2048_1536
230+ SELECTBOX_2048_1536 ,
231+ SELECTBOX_3840_2160
234232 };
235233
236234 switch (Param)
@@ -252,9 +250,9 @@ void callback::submenuOptions(int Param)
252250 if (ButtonFullscreen)
253251 SubMenu->delButton (ButtonFullscreen);
254252 ButtonFullscreen =
255- SubMenu->addButton (submenuOptions, FULLSCREEN , Position (global::s2->GameResolution .x / 2 - 100 , 190 ),
253+ SubMenu->addButton (submenuOptions, FULLSCREEN , Position (global::s2->GameResolution .x / 2 - 100 , 410 ),
256254 Extent (200 , 20 ), BUTTON_RED1 , (global::s2->fullscreen ? " WINDOW" : " FULLSCREEN" ));
257- SelectBoxRes = SubMenu->addSelectBox (ButtonFullscreen->getPos () - Position (0 , 120 ), Extent (200 , 110 ),
255+ SelectBoxRes = SubMenu->addSelectBox (ButtonFullscreen->getPos () - Position (0 , 340 ), Extent (200 , 330 ),
258256 FontSize::Medium, FontColor::Yellow, BUTTON_GREY );
259257 SelectBoxRes->addOption (" 800 x 600 (SVGA)" , submenuOptions, SELECTBOX_800_600 );
260258 SelectBoxRes->addOption (" 832 x 624 (Half Megapixel)" , submenuOptions, SELECTBOX_832_624 );
@@ -298,6 +296,7 @@ void callback::submenuOptions(int Param)
298296 SelectBoxRes->addOption (" 1920 x 1440" , submenuOptions, SELECTBOX_1920_1440 );
299297 SelectBoxRes->addOption (" 2048 x 1152 (QWXGA)" , submenuOptions, SELECTBOX_2048_1152 );
300298 SelectBoxRes->addOption (" 2048 x 1536 (SUXGA)" , submenuOptions, SELECTBOX_2048_1536 );
299+ SelectBoxRes->addOption (" 3840 x 2160 (4K UHD)" , submenuOptions, SELECTBOX_3840_2160 );
301300 break ;
302301
303302 case MAINMENU :
@@ -318,6 +317,7 @@ void callback::submenuOptions(int Param)
318317
319318 case GRAPHICS_CHANGE :
320319 assert (SubMenu);
320+ global::s2->SaveSettings ();
321321 SubMenu->setWaste ();
322322 TextResolution = nullptr ;
323323 ButtonFullscreen = nullptr ;
@@ -578,6 +578,12 @@ void callback::submenuOptions(int Param)
578578 submenuOptions (GRAPHICS_CHANGE );
579579 break ;
580580
581+ case SELECTBOX_3840_2160 :
582+ global::s2->GameResolution .x = 3840 ;
583+ global::s2->GameResolution .y = 2160 ;
584+ submenuOptions (GRAPHICS_CHANGE );
585+ break ;
586+
581587 default : break ;
582588 }
583589}
@@ -611,7 +617,7 @@ void callback::EditorHelpMenu(int Param)
611617 " ..............................F1" );
612618 SelectBoxHelp->addOption (
613619 " Window/"
614- " Fullscreen........................................................................................F2 " );
620+ " Fullscreen...................................................................................Alt+Enter " );
615621 SelectBoxHelp->addOption (
616622 " Zoom in/normal/out......................................................................F5/F6/"
617623 " F7" );
@@ -741,7 +747,6 @@ void callback::EditorMainMenu(int Param)
741747void callback::EditorLoadMenu (int Param)
742748{
743749 static CWindow* WNDLoad = nullptr ;
744- static CMap* MapObj = nullptr ;
745750 static std::string curFilename;
746751
747752 enum
@@ -758,8 +763,6 @@ void callback::EditorLoadMenu(int Param)
758763 break ;
759764 WNDLoad = global::s2->RegisterWindow (std::make_unique<CWindow>(
760765 EditorLoadMenu, WINDOWQUIT , WindowPos::Center, Extent (280 , 320 ), " Load" , WINDOW_GREEN1 , WINDOW_CLOSE ));
761- MapObj = global::s2->getMapObj ();
762-
763766 auto * CB_Filename = WNDLoad->addSelectBox (Position (10 , 5 ), Extent (160 , 280 ), FontSize::Medium);
764767 curFilename.clear ();
765768 for (const auto & itFile : bfs::directory_iterator (global::userMapsPath))
@@ -799,15 +802,15 @@ void callback::EditorLoadMenu(int Param)
799802 EditorAnimalMenu (MAP_QUIT );
800803 EditorPlayerMenu (MAP_QUIT );
801804
802- MapObj->destructMap ();
803805 bfs::path filepath = global::userMapsPath / curFilename;
804806 if (!filepath.has_extension ())
805807 filepath.replace_extension (" SWD" );
806808 if (!bfs::exists (filepath))
807809 filepath.replace_extension (" WLD" );
808810 if (!bfs::exists (filepath))
809811 filepath.replace_extension (" SWD" );
810- MapObj->constructMap (filepath);
812+
813+ global::s2->enterEditor (filepath);
811814
812815 // we need to check which of these windows was active before
813816 /*
0 commit comments