diff --git a/src/libs/confscreens/carsettingsmenu.cpp b/src/libs/confscreens/carsettingsmenu.cpp index c45ce88f..5e720cb8 100644 --- a/src/libs/confscreens/carsettingsmenu.cpp +++ b/src/libs/confscreens/carsettingsmenu.cpp @@ -35,14 +35,14 @@ void CarSettingsMenu::onActCB(void *P) } -void CarSettingsMenu::CarPickCB(tChoiceInfo *pChoices) +void CarSettingsMenu::CarPickCB(tComboBoxInfo *pInfo) { - m_strCar = pChoices->vecChoices[pChoices->nPos]; + m_strCar = pInfo->vecChoices[pInfo->nPos]; } void CarSettingsMenu::onAcceptCB(void *p) { - CarData *pData = GetCarInfo()->GetCarDataFromRealName(m_strCar.c_str()); + CarData *pData = CarInfo::self()->GetCarDataFromRealName(m_strCar); GetNetwork()->SetCarInfo(pData->strName.c_str()); GfuiScreenActivate(pPrevMenu); } @@ -52,6 +52,11 @@ void CarSettingsMenu::onCancelCB(void *p) GfuiScreenActivate(pPrevMenu); } +CarSettingsMenu::CarSettingsMenu() +: GfuiMenuScreen("carselectionmenu.xml") +{ +} + bool CarSettingsMenu::Init(void* pMenu,const char *pszCar) { std::string strCarCat; @@ -59,41 +64,41 @@ bool CarSettingsMenu::Init(void* pMenu,const char *pszCar) GetNetwork()->GetHostSettings(strCarCat,bCollisions); pPrevMenu = pMenu; - m_pMenuHandle = GfuiScreenCreateEx(NULL,NULL,onActCB, - NULL, (tfuiCallback)NULL, - 1); + void* pMenuHandle = GfuiScreenCreateEx(NULL,NULL,onActCB, + NULL, (tfuiCallback)NULL, + 1); + SetMenuHandle(pMenuHandle); - void *param = LoadMenuXML("carselectionmenu.xml"); - CreateStaticControls(param,m_pMenuHandle); + OpenXMLDescriptor(); - int carCatId = CreateComboboxControl(m_pMenuHandle,param,"modelcombo",CarPickCB); - int skinId = CreateComboboxControl(m_pMenuHandle,param,"skincombo",NULL); - int carImageId = CreateStaticImageControl(m_pMenuHandle,param,"carpreviewimage"); - int progressId = CreateProgressbarControl(m_pMenuHandle,param,"topspeedprogress"); - int accelerationId = CreateProgressbarControl(m_pMenuHandle,param,"accelerationprogress"); - int handlingId = CreateProgressbarControl(m_pMenuHandle,param,"handlingprogress"); - int brakingId = CreateProgressbarControl(m_pMenuHandle,param,"brakingprogress"); + CreateStaticControls(); + + int carCatId = CreateComboboxControl("modelcombo",NULL,CarPickCB); + int skinId = CreateComboboxControl("skincombo",NULL,NULL); + int carImageId = CreateStaticImageControl("carpreviewimage"); + int progressId = CreateProgressbarControl("topspeedprogress"); + int accelerationId = CreateProgressbarControl("accelerationprogress"); + int handlingId = CreateProgressbarControl("handlingprogress"); + int brakingId = CreateProgressbarControl("brakingprogress"); - std::vector vecCars; - GetCarInfo()->GetCarsInCategoryRealName(strCarCat.c_str(),vecCars); + const std::vector vecCarRealNames = + CarInfo::self()->GetCarRealNamesInCategory(strCarCat); m_strCar = pszCar; int carIndex = 0; - for (unsigned i=0;ivecChoices[pChoices->nPos]; + m_strCarCat = pInfo->vecChoices[pInfo->nPos]; } -void HostSettingsMenu::CarCollideCB(tChoiceInfo *pChoices) +void HostSettingsMenu::CarCollideCB(tComboBoxInfo *pInfo) { - if (pChoices->vecChoices[pChoices->nPos] == "Off") + if (pInfo->vecChoices[pInfo->nPos] == "Off") m_bCollisions = false; else m_bCollisions = true; } -void HostSettingsMenu::humanhostCB(tChoiceInfo *pChoices) +void HostSettingsMenu::humanHostCB(tComboBoxInfo *pInfo) { - if (pChoices->vecChoices[pChoices->nPos] == "Yes") + if (pInfo->vecChoices[pInfo->nPos] == "Yes") m_bHumanHost = true; else m_bHumanHost = false; @@ -76,49 +76,53 @@ void HostSettingsMenu::onCancelCB(void *p) GfuiScreenActivate(pPrevMenu); } +HostSettingsMenu::HostSettingsMenu() +: GfuiMenuScreen("hostsettingsmenu.xml") +{ +} + bool HostSettingsMenu::Init(void* pMenu) { GetNetwork()->GetHostSettings(m_strCarCat,m_bCollisions); pPrevMenu = pMenu; - m_pMenuHandle = GfuiScreenCreateEx(NULL,NULL,onActCB, - NULL, (tfuiCallback)NULL, - 1); + void* pMenuHandle = GfuiScreenCreateEx(NULL,NULL,onActCB, + NULL, (tfuiCallback)NULL, + 1); + SetMenuHandle(pMenuHandle); - void *param = LoadMenuXML("hostsettingsmenu.xml"); - CreateStaticControls(param,m_pMenuHandle); + OpenXMLDescriptor(); - int carCatId = CreateComboboxControl(m_pMenuHandle,param,"carcatcombobox",CarControlCB); - std::vector vecCategories; - GetCarInfo()->GetCategories(vecCategories); + CreateStaticControls(); + + int carCatId = CreateComboboxControl("carcatcombobox",NULL,CarControlCB); + const std::vector vecCategories = CarInfo::self()->GetCategoryNames(); int CatIndex = 0; for (unsigned int i=0;iGetDriverIdx()-1,bChecked); - GetNetwork()->SetDriverReady(bChecked); - EnableMenuHostButtons(bChecked); + SetReadyStatus(GetNetwork()->GetDriverIdx()-1,pInfo->bChecked); + GetNetwork()->SetDriverReady(pInfo->bChecked); + EnableMenuHostButtons(pInfo->bChecked); } void EnableMenuClientButtons(bool bChecked) @@ -152,11 +152,11 @@ void EnableMenuClientButtons(bool bChecked) } } -void onClientPlayerReady(bool bChecked) +void onClientPlayerReady(tCheckBoxInfo* pInfo) { - SetReadyStatus(GetNetwork()->GetDriverIdx()-1,bChecked); - GetNetwork()->SetDriverReady(bChecked); - EnableMenuClientButtons(bChecked); + SetReadyStatus(GetNetwork()->GetDriverIdx()-1,pInfo->bChecked); + GetNetwork()->SetDriverReady(pInfo->bChecked); + EnableMenuClientButtons(pInfo->bChecked); } std::string @@ -285,7 +285,7 @@ UpdateNetworkPlayers() const char* name = GfParmGetStr(pMod, ppname, RM_ATTR_NAME, ""); const char* car = GfParmGetStr(pMod, ppname, "car name", ""); - std::string strRealCar = GetCarInfo()->GetRealCarName(car); + std::string strRealCar = CarInfo::self()->GetCarRealName(car); int readyindex = 0; MutexData *pNData = GetNetwork()->LockNetworkData(); @@ -383,8 +383,8 @@ void CheckDriversCategory() if (strCarCat =="All") return; - std::vector vecCars; - GetCarInfo()->GetCarsInCategory(strCarCat.c_str(),vecCars); + const std::vector vecCars = + CarInfo::self()->GetCarNamesInCategory(strCarCat); //Make sure all cars are in the correct category or force change of car Driver *pDrivers = NULL; @@ -394,8 +394,8 @@ void CheckDriversCategory() count = pSData->m_vecNetworkPlayers.size(); for (unsigned int i=0;iGetCarData(pSData->m_vecNetworkPlayers[i].car); - if (pData->strCategory!=strCarCat) + CarData * pData = CarInfo::self()->GetCarData(pSData->m_vecNetworkPlayers[i].car); + if (pData->strCategoryName!=strCarCat) { //Pick first car in categroy strncpy(pSData->m_vecNetworkPlayers[i].car,vecCars[0].c_str(),64); @@ -615,8 +615,7 @@ reNetworkHostMenu(void * /* dummy */) GfuiMenuDefaultKeysAdd(racemanMenuHdle); - std::vector vecCat; - GetCarInfo()->GetCategories(vecCat); + std::vector vecCat = CarInfo::self()->GetCategoryNames(); vecCat.push_back("All Cars"); @@ -647,7 +646,7 @@ reNetworkHostMenu(void * /* dummy */) GfuiLabelSetText(racemanMenuHdle,g_carNames[i],""); } - g_ReadyCheckboxId = CreateCheckboxControl(racemanMenuHdle,mparam,"playerreadycheckbox",onHostPlayerReady); + g_ReadyCheckboxId = CreateCheckboxControl(racemanMenuHdle,mparam,"playerreadycheckbox",NULL,onHostPlayerReady); g_HostSettingsButtonId = CreateButtonControl(racemanMenuHdle,mparam,"networkhostsettings",racemanMenuHdle,reNetworkHostSettingsMenu); g_RaceSetupId = CreateButtonControl(racemanMenuHdle,mparam,"racesetup",racemanMenuHdle,ReConfigureMenu); g_CarSetupButtonId = CreateButtonControl(racemanMenuHdle,mparam,"car",racemanMenuHdle,reCarSettingsMenu); @@ -756,7 +755,7 @@ reNetworkClientConnectMenu(void * /* dummy */) GfuiLabelSetText(racemanMenuHdle,g_carNames[i],""); } - g_ReadyCheckboxId = CreateCheckboxControl(racemanMenuHdle,mparam,"playerreadycheckbox",onClientPlayerReady); + g_ReadyCheckboxId = CreateCheckboxControl(racemanMenuHdle,mparam,"playerreadycheckbox",NULL,onClientPlayerReady); g_CarSetupButtonId = CreateButtonControl(racemanMenuHdle,mparam,"car",racemanMenuHdle,reCarSettingsMenu); g_DisconnectButtonId = CreateButtonControl(racemanMenuHdle,mparam,"disconnect",NULL,reNetworkClientDisconnect);