bool CMainMenuState::Load(CAssetManager* pAssets, eStateLoadCommands* pLoadCommands) { if (GetLoaded()) { return true; } //DebugPrint("[MainMenu] Loading MainMenuState...\n"); CBaseState::Load(pAssets); if (pLoadCommands) { pLoadCommands[STATE_CONTROLS] = STATE_COMMAND_LOAD; pLoadCommands[STATE_CREDITS] = STATE_COMMAND_LOAD; // pLoadCommands[STATE_STAGESELECT] = STATE_COMMAND_LOAD; } /*std::ifstream fin(pathA + "Options.txt", std::ios_base::in); if (fin.is_open()) { int _nMasterBank = -1; BOOL _nFullscreen, _waifu; fin >> _nMasterBank; fin >> _nMasterBank; fin >> _nMasterBank; fin >> _nMasterBank; fin >> _nMasterBank; fin >> _nFullscreen; fin >> _waifu; if (0 == _waifu) { m_bWaifuBander = false; } else { m_bWaifuBander = true; } } fin.close();*/ m_pScene = new CScene(); m_pGUI = new CGUIManager();//CGUIManager::Load(std::string("Assets/Xml/MainMenu.xml")); //m_pLogo = new CUIElement( ); // //m_pLogo->SetWidth(256); //m_pLogo->SetHeight(256); //m_pLogo->SetPosition(vec3f(1000 - m_pLogo->GetBounds( ).ComputeWidth( ) / 2, m_pLogo->GetBounds( ).ComputeHeight( ) / 2, 1)); //m_pLogo->SetVisible(true); // //m_pLogo->LoadTexture(L"Assets/Images/titleLogo.png"); // //m_pGUI->AddElement(m_pLogo); //Background CUIElement* pBackground = new CUIElement(); pBackground->SetHeight(GUI_HEIGHT); pBackground->SetWidth(GUI_WIDTH); pBackground->SetPosition(vec3f(GUI_WIDTH * 0.5f, GUI_HEIGHT * 0.5f, 0)); pBackground->LoadTexture(L"Assets/Images/MainMenu/Main_Menu.png"); m_pGUI->AddElement(pBackground); //Add buttons CUIButton* pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Start.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.32f, 200, 60, std::string("Start")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Leaderboards.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.4f, 200, 60, std::string("Leaderboards")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Achievements.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.48f, 200, 60, std::string("Achievements")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/How_To_Play.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.56f, 200, 60, std::string("How to Play")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Options.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.64f, 200, 60, std::string("Options")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Credits.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.72f, 200, 60, std::string("Credits")); m_pGUI->AddElement(pButton); pButton = new CUIButton(std::wstring(L"Assets/Images/MainMenu/Exit.png"), GUI_WIDTH * 0.708f, GUI_HEIGHT * 0.80f, 200, 60, std::string("Quit")); m_pGUI->AddElement(pButton); m_pBackPlate = new CUIElement(); m_pBackPlate->SetWidth(300); m_pBackPlate->SetHeight(300); m_pBackPlate->SetColor({ 1, 1, 1, 0.25f }); m_pBackPlate->SetPosition(vec3f(300, 375, 1)); m_pBackPlate->SetVisible(false); m_pBackPlate->LoadTexture(L"Assets/Images/Menus/Main_Menu_Border_v4.png"); m_pGUI->AddElement(m_pBackPlate); //Load whole menu m_pBack = new CUIButton(std::wstring(L"Assets//Images//Menus//Back.png"), 300, 460, 150, 60, std::string("Void")); m_pBack->SetRenderText(false); m_pBack->SetVisible(false); m_pGUI->AddElement(m_pBack); m_pCampaign = new CUIButton(std::wstring(L"Assets//Images//Menus//Campaign.png"), 300, 300, 150, 60, std::string("Void")); m_pCampaign->SetRenderText(false); m_pCampaign->SetVisible(false); m_pGUI->AddElement(m_pCampaign); m_pEndless = new CUIButton(std::wstring(L"Assets//Images//Menus//Endless.png"), 300, 380, 150, 60, std::string("Void")); m_pEndless->SetRenderText(false); m_pEndless->SetVisible(false); m_pGUI->AddElement(m_pEndless); m_pScreen = new CUIElement(); m_pScreen->SetWidth(10000); m_pScreen->SetHeight(8000); m_pScreen->SetPosition(vec3f(500, 400, 1)); m_pScreen->SetVisible(true); m_pScreen->LoadTexture(L"Assets/Images/Black.png"); //m_pGUI->AddElement(m_pScreen); #ifdef SPINNING_SEXY //test object for Deferred { pAssets->LoadFBX("Assets//Models//Deferred.fbx", "Spinning Sexy"); CRObject* bob = new CRObject(); bob->SetTag("Spinning Sexy"); m_pScene->AddObject(bob); } //set some light stuff { using namespace MathHelper; auto Lerp = [&](const DirectX::XMFLOAT3& x, const DirectX::XMFLOAT3& y, const DirectX::XMFLOAT3& s) -> DirectX::XMFLOAT3 { return x + s * (y - x); }; float amb = .45f; LightParams ambient({ amb, amb, amb }, { 0, -1, 0 }); m_pScene->AddLight(ambient); LightParams light; light.Type = Point; light.Range = 2.0f; const int cubeSize = 3 + 0 * 2; const int cubeMin = -(cubeSize / 2); const int cubeMax = cubeSize / 2; const DirectX::XMFLOAT3 minExtents(-4.0f, 1.0f, -4.0f); const DirectX::XMFLOAT3 maxExtents(4.0f, 11.0f, 4.0f); const DirectX::XMFLOAT3 minColor(1.0f, 0.0f, 0.0f); const DirectX::XMFLOAT3 maxColor(0.0f, 1.0f, 1.0f); for (int x = cubeMin; x <= cubeMax; x++) { for (int y = cubeMin; y <= cubeMax; y++) { for (int z = cubeMin; z <= cubeMax; z++) { DirectX::XMFLOAT3 lerp; lerp.x = static_cast<float>(x - cubeMin) / (cubeSize - 1); lerp.y = static_cast<float>(y - cubeMin) / (cubeSize - 1); lerp.z = static_cast<float>(z - cubeMin) / (cubeSize - 1); light.Position = Lerp(minExtents, maxExtents, lerp); light.Color = Lerp(minColor, maxColor, lerp) * 1.5f * 1.5f; m_pScene->AddLight(light); } } } } #endif static CEntity e; //Since this thing's only use us as a listener, I think I'll commandeer the render type and use it as a bool if (e.GetRObjectType() == CRObject::ROBJECT_STATIC) { AudioSystemWwise::Get()->RegisterListener(&e, NULL); e.SetRObjectType(CRObject::ROBJECT_TRANSPARENT); } return true; }