|
|
|
#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);
|
|
|
|
}
|