Maelstrom: Don't double-load panels

From 469ddc7739bf144863f456460f6929aa03740565 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 23 Oct 2011 07:23:28 -0400
Subject: [PATCH] Don't double-load panels

---
 screenlib/UIManager.cpp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/screenlib/UIManager.cpp b/screenlib/UIManager.cpp
index d042b683..e794856c 100644
--- a/screenlib/UIManager.cpp
+++ b/screenlib/UIManager.cpp
@@ -115,14 +115,18 @@ UIPanel *
 UIManager::LoadPanel(const char *name)
 {
 	UIPanel *panel;
-	char file[1024];
 
-	sprintf(file, "%s/%s.xml", m_loadPath, name);
-	panel = new UIPanel(this, name);
-	if (!panel->Load(file)) {
-		SetError("%s", panel->Error());
-		delete panel;
-		return false;
+	panel = GetPanel(name);
+	if (!name) {
+		char file[1024];
+
+		sprintf(file, "%s/%s.xml", m_loadPath, name);
+		panel = new UIPanel(this, name);
+		if (!panel->Load(file)) {
+			SetError("%s", panel->Error());
+			delete panel;
+			return false;
+		}
 	}
 	return panel;
 }