#pragma once #include "Crawler.h" #include "DEFINES.h" #include "Menu.h" #include "MenuLabel.h" INCLUDE_game typedef Attribute A; void Menu::InitializeClassSelectionWindow(){ Menu*classSelectionWindow=CreateMenu(CLASS_SELECTION,CENTERED,game->GetScreenSize()-vi2d{24,24}); classSelectionWindow->S(A::CLASS_SELECTION)="Warrior"; //Default selected class. vf2d outlineSize=classSelectionWindow->size-vf2d{13,13}; MenuLabel*outline=new MenuLabel(CLASS_SELECTION,{{4,4},outlineSize},"",1,true,false,true,false); classSelectionWindow->AddComponent("Outline Border",outline); vf2d buttonPadding={2,2}; vf2d buttonSize={outlineSize.y/3-buttonPadding.y*3,outlineSize.y/3-buttonPadding.y*3}; float buttonTotalWidth=(buttonSize.x+buttonPadding.x)*3; vf2d buttonStartPos=outline->GetPos()+vf2d{outlineSize.x/2,outlineSize.y/3}-vf2d{buttonTotalWidth/2,0}; MenuComponent*warriorButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{0,0},buttonSize},Warrior::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Warrior::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); MenuComponent*rangerButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{1,0},buttonSize},Ranger::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Ranger::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); MenuComponent*wizardButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{2,0},buttonSize},Wizard::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Wizard::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); MenuComponent*thiefButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{0,1},buttonSize},Thief::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Thief::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); MenuComponent*trapperButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{1,1},buttonSize},Trapper::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Trapper::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); MenuComponent*witchButton=new MenuComponent(CLASS_SELECTION,{buttonStartPos+(buttonSize+buttonPadding)*vf2d{2,1},buttonSize},Witch::name,CLASS_INFO, [](MenuFuncData data){ data.menu.S(A::CLASS_SELECTION)=Witch::name; delete Menu::menus[CLASS_INFO]; Menu::InitializeClassInfoWindow(); }); classSelectionWindow->AddComponent("Warrior Button",warriorButton); classSelectionWindow->AddComponent("Ranger Button",rangerButton); classSelectionWindow->AddComponent("Wizard Button",wizardButton); classSelectionWindow->AddComponent("Thief Button",thiefButton); classSelectionWindow->AddComponent("Trapper Button",trapperButton); classSelectionWindow->AddComponent("Witch Button",witchButton); }