diff --git a/data/images/udraw.png b/data/images/udraw.png new file mode 100644 index 00000000..4056a9a0 Binary files /dev/null and b/data/images/udraw.png differ diff --git a/data/images/udrawR.png b/data/images/udrawR.png new file mode 100644 index 00000000..44d9f467 Binary files /dev/null and b/data/images/udrawR.png differ diff --git a/source/gui/GameTDB.cpp b/source/gui/GameTDB.cpp index 0d6b97ab..516986da 100644 --- a/source/gui/GameTDB.cpp +++ b/source/gui/GameTDB.cpp @@ -488,9 +488,10 @@ bool GameTDB::FindTitle(char * data, string & title, string langCode) bool GameTDB::GetTitle(const char * id, string & title) { - if(!id) return false; + title = ""; + if(!id) return false; - char * data = GetGameNode(id); + char * data = GetGameNode(id); if(!data) return false; bool retval = FindTitle(data, title, LangCode); @@ -502,9 +503,10 @@ bool GameTDB::GetTitle(const char * id, string & title) bool GameTDB::GetSynopsis(const char * id, string & synopsis) { - if(!id) return false; + synopsis = ""; + if(!id) return false; - char * data = GetGameNode(id); + char * data = GetGameNode(id); if(!data) return false; char * language = SeekLang(data, LangCode.c_str()); @@ -534,9 +536,10 @@ bool GameTDB::GetSynopsis(const char * id, string & synopsis) bool GameTDB::GetRegion(const char * id, string & region) { - if(!id) return false; + region = ""; + if(!id) return false; - char * data = GetGameNode(id); + char * data = GetGameNode(id); if(!data) return false; char * the_region = GetNodeText(data, "", ""); @@ -555,9 +558,10 @@ bool GameTDB::GetRegion(const char * id, string & region) bool GameTDB::GetDeveloper(const char * id, string & dev) { - if(!id) return false; + dev = ""; + if(!id) return false; - char * data = GetGameNode(id); + char * data = GetGameNode(id); if(!data) return false; char * the_dev = GetNodeText(data, "", ""); @@ -576,9 +580,10 @@ bool GameTDB::GetDeveloper(const char * id, string & dev) bool GameTDB::GetPublisher(const char * id, string & pub) { - if(!id) return false; + pub = ""; + if(!id) return false; - char * data = GetGameNode(id); + char * data = GetGameNode(id); if(!data) return false; char * the_pub = GetNodeText(data, "", ""); @@ -644,7 +649,8 @@ bool GameTDB::GetGenres(const char * id, string & gen) { safe_vector genre; - if(!id) return false; + gen = ""; + if(!id) return false; char * data = GetGameNode(id); if(!data) return false; @@ -738,7 +744,8 @@ int GameTDB::GetRating(const char * id) bool GameTDB::GetRatingValue(const char * id, string & rating_value) { - if(!id) return false; + rating_value = ""; + if(!id) return false; char * data = GetGameNode(id); if(!data) return false; @@ -766,6 +773,7 @@ bool GameTDB::GetRatingValue(const char * id, string & rating_value) int GameTDB::GetRatingDescriptors(const char * id, safe_vector & desc_list) { + desc_list.clear(); if(!id) return -1; @@ -781,7 +789,6 @@ int GameTDB::GetRatingDescriptors(const char * id, safe_vector & desc_li } unsigned int list_num = 0; - desc_list.clear(); while(*descriptor_text != '\0') { @@ -833,6 +840,7 @@ int GameTDB::GetWifiPlayers(const char * id) int GameTDB::GetWifiFeatures(const char * id, safe_vector & feat_list) { + feat_list.clear(); if(!id) return -1; @@ -848,7 +856,6 @@ int GameTDB::GetWifiFeatures(const char * id, safe_vector & feat_list) } unsigned int list_num = 0; - feat_list.clear(); while(*feature_text != '\0') { @@ -905,6 +912,7 @@ int GameTDB::GetPlayers(const char * id) int GameTDB::GetAccessories(const char * id, safe_vector & acc_list) { + acc_list.clear(); if(!id) return -1; @@ -920,7 +928,6 @@ int GameTDB::GetAccessories(const char * id, safe_vector & acc_list) } unsigned int list_num = 0; - acc_list.clear(); while(ControlsNode && *ControlsNode != '\0') { diff --git a/source/menu/menu_about.cpp b/source/menu/menu_about.cpp index c4a0877b..5a89cd33 100644 --- a/source/menu/menu_about.cpp +++ b/source/menu/menu_about.cpp @@ -95,7 +95,8 @@ void CMenu::_showAbout(void) m_btnMgr.show(m_aboutLblTitle); m_btnMgr.show(m_aboutLblIOS); m_btnMgr.show(m_aboutLblInfo,false,true); - m_btnMgr.show(m_aboutBtnSystem); + if (!m_locked) + m_btnMgr.show(m_aboutBtnSystem); for (u32 i = 0; i < ARRAY_SIZE(m_aboutLblUser); ++i) if (m_aboutLblUser[i] != -1u) m_btnMgr.show(m_aboutLblUser[i]); diff --git a/source/menu/menu_gameinfo.cpp b/source/menu/menu_gameinfo.cpp index 911f0fd0..04ccb5a5 100644 --- a/source/menu/menu_gameinfo.cpp +++ b/source/menu/menu_gameinfo.cpp @@ -40,6 +40,8 @@ extern const u8 drums_png[]; extern const u8 drumsR_png[]; extern const u8 motionplus_png[]; extern const u8 motionplusR_png[]; +extern const u8 udraw_png[]; +extern const u8 udrawR_png[]; extern const u8 wheel_png[]; extern const u8 zapper_png[]; extern const u8 keyboard_png[]; @@ -336,6 +338,7 @@ void CMenu::_textGameInfo(void) } //Ratings + m_rating.fromPNG(norating_png); switch(gameinfo.RatingType) { case 0: @@ -350,8 +353,6 @@ void CMenu::_textGameInfo(void) m_rating.fromPNG(cero_c_png); else if (gameinfo.RatingValue == "Z") m_rating.fromPNG(cero_z_png); - else - m_rating.fromPNG(norating_png); break; case 1: //ESRB @@ -367,8 +368,6 @@ void CMenu::_textGameInfo(void) m_rating.fromPNG(esrb_t_png); else if (gameinfo.RatingValue == "M") m_rating.fromPNG(esrb_m_png); - else - m_rating.fromPNG(norating_png); break; case 2: //PEGI @@ -382,8 +381,6 @@ void CMenu::_textGameInfo(void) m_rating.fromPNG(pegi_16_png); else if (gameinfo.RatingValue == "18") m_rating.fromPNG(pegi_18_png); - else - m_rating.fromPNG(norating_png); break; default: break; @@ -419,16 +416,17 @@ void CMenu::_textGameInfo(void) u8 wiimote=0, nunchuk=0, - classiccontroller=0, - balanceboard=0, - dancepad=0, - guitar=0, - gamecube=0, - motionplus=0, - drums=0, + classiccontroller=0, + balanceboard=0, + dancepad=0, + guitar=0, + gamecube=0, + motionplus=0, + drums=0, microphone=0, wheel=0, - keyboard, + keyboard=0, + udraw = 0, zapper=0; //check required controlls @@ -452,6 +450,8 @@ void CMenu::_textGameInfo(void) microphone=1; else if (strcmp((acc_itr->Name).c_str(), "balanceboard") == 0) balanceboard=1; + else if (strcmp((acc_itr->Name).c_str(), "udraw") == 0) + udraw = 1; } u8 x = 0; @@ -521,6 +521,12 @@ void CMenu::_textGameInfo(void) m_btnMgr.setTexture(m_gameinfoLblControlsReq[x] ,m_controlsreq[x], 52, 60); x++; } + if(udraw && x < max_controlsReq) + { + m_controlsreq[x].fromPNG(udrawR_png); + m_btnMgr.setTexture(m_gameinfoLblControlsReq[x] ,m_controlsreq[x], 52, 60); + x++; + } cnt_controlsreq = x; @@ -540,6 +546,7 @@ void CMenu::_textGameInfo(void) microphone=0, wheel=0, keyboard=0, + udraw = 0, zapper=0; for (safe_vector::iterator acc_itr = gameinfo.Accessories.begin(); acc_itr != gameinfo.Accessories.end(); acc_itr++) @@ -570,6 +577,8 @@ void CMenu::_textGameInfo(void) zapper=1; else if (strcmp((acc_itr->Name).c_str(), "wheel") == 0) wheel=1; + else if (strcmp((acc_itr->Name).c_str(), "udraw") == 0) + udraw = 1; } x = 0; @@ -635,6 +644,12 @@ void CMenu::_textGameInfo(void) m_btnMgr.setTexture(m_gameinfoLblControls[x] ,m_controls[x], 52, 60); x++; } + if(udraw && x < max_controls) + { + m_controls[x].fromPNG(udraw_png); + m_btnMgr.setTexture(m_gameinfoLblControls[x] ,m_controls[x], 52, 60); + x++; + } if(zapper && x < max_controls) { m_controls[x].fromPNG(zapper_png);