Fixed resolution change messing up kart selection screen
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@4378 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
27decfcd2a
commit
f58bc8708b
@ -250,7 +250,7 @@ void IrrDriver::changeResolution()
|
||||
attachment_manager -> removeTextures();
|
||||
projectile_manager -> removeTextures();
|
||||
item_manager -> removeTextures();
|
||||
kart_properties_manager -> removeTextures();
|
||||
kart_properties_manager -> unloadAllKarts();
|
||||
powerup_manager -> removeTextures();
|
||||
GUIEngine::clear();
|
||||
GUIEngine::cleanUp();
|
||||
|
@ -161,7 +161,8 @@ namespace GUIEngine
|
||||
'updateItemDisplay' to update the display. */
|
||||
void clearItems();
|
||||
|
||||
/** Register a listener to be notified of selection changes within the ribbon */
|
||||
/** Register a listener to be notified of selection changes within the ribbon.
|
||||
* The ribbon takes ownership of this listener and will delete it. */
|
||||
void registerHoverListener(DynamicRibbonHoverListener* listener);
|
||||
|
||||
/** Called when right key is pressed */
|
||||
|
@ -68,7 +68,7 @@ void KartPropertiesManager::addKartSearchDir(const std::string &s)
|
||||
} // addKartSearchDir
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void KartPropertiesManager::removeTextures()
|
||||
void KartPropertiesManager::unloadAllKarts()
|
||||
{
|
||||
for(KartPropertiesVector::iterator i = m_karts_properties.begin();
|
||||
i != m_karts_properties.end(); ++i)
|
||||
@ -76,6 +76,11 @@ void KartPropertiesManager::removeTextures()
|
||||
delete *i;
|
||||
}
|
||||
m_karts_properties.clear();
|
||||
m_selected_karts.clear();
|
||||
m_kart_available.clear();
|
||||
m_groups.clear();
|
||||
m_all_groups.clear();
|
||||
m_kart_search_path.clear();
|
||||
} // removeTextures
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -145,8 +150,8 @@ bool KartPropertiesManager::loadKart(const std::string &dir)
|
||||
//-----------------------------------------------------------------------------
|
||||
const int KartPropertiesManager::getKartId(const std::string &ident) const
|
||||
{
|
||||
std::cout << "======\n";
|
||||
std::cout << "Searching for kart " << ident.c_str() << std::endl;
|
||||
//std::cout << "======\n";
|
||||
//std::cout << "Searching for kart " << ident.c_str() << std::endl;
|
||||
|
||||
for(KartPropertiesVector::const_iterator i = m_karts_properties.begin();
|
||||
i != m_karts_properties.end(); ++i)
|
||||
|
@ -60,7 +60,10 @@ public:
|
||||
const KartProperties* getKart (const std::string &ident) const;
|
||||
const int getKartId (const std::string &ident) const;
|
||||
int getKartByGroup (const std::string& group, int i) const;
|
||||
|
||||
void loadAllKarts ();
|
||||
void unloadAllKarts ();
|
||||
|
||||
const unsigned int getNumberOfKarts () const {return (unsigned int)m_karts_properties.size();}
|
||||
const std::vector<std::string>&
|
||||
getAllGroups () const {return m_all_groups; }
|
||||
@ -77,7 +80,6 @@ public:
|
||||
void selectKartName(const std::string &kart_name);
|
||||
bool testAndSetKart(int kartid);
|
||||
std::vector<std::string> getRandomKartList(int count, RemoteKartInfoList& existing_karts);
|
||||
void removeTextures ();
|
||||
/** Returns all directories from which karts were loaded. */
|
||||
const std::vector<std::string>* getAllKartDirs() const
|
||||
{ return &m_all_kart_dirs; }
|
||||
|
@ -617,14 +617,25 @@ class KartHoverListener : public DynamicRibbonHoverListener
|
||||
{
|
||||
KartSelectionScreen* m_parent;
|
||||
public:
|
||||
int m_magic_number;
|
||||
|
||||
KartHoverListener(KartSelectionScreen* parent)
|
||||
{
|
||||
m_magic_number = 0xCAFEC001;
|
||||
m_parent = parent;
|
||||
}
|
||||
|
||||
virtual ~KartHoverListener()
|
||||
{
|
||||
assert(m_magic_number == 0xCAFEC001);
|
||||
m_magic_number = 0xDEADBEEF;
|
||||
}
|
||||
|
||||
void onSelectionChanged(DynamicRibbonWidget* theWidget, const std::string& selectionID,
|
||||
const irr::core::stringw& selectionText, const int playerID)
|
||||
{
|
||||
assert(m_magic_number == 0xCAFEC001);
|
||||
|
||||
// Don't allow changing the selection after confirming it
|
||||
if (m_parent->m_kart_widgets[playerID].isReady())
|
||||
{
|
||||
@ -689,8 +700,9 @@ void KartSelectionScreen::forgetWhatWasLoaded()
|
||||
{
|
||||
Screen::forgetWhatWasLoaded();
|
||||
|
||||
// this pointer is no more valid
|
||||
// these pointers is no more valid (have been deleted along other widgets)
|
||||
g_dispatcher = NULL;
|
||||
karthoverListener = NULL;
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
// Return true if event was handled successfully
|
||||
|
Loading…
x
Reference in New Issue
Block a user