summaryrefslogtreecommitdiff
path: root/src/gui/table.cpp
diff options
context:
space:
mode:
authorFate <fate.tmw@googlemail.com>2008-11-01 22:39:26 +0000
committerFate <fate.tmw@googlemail.com>2008-11-01 22:39:26 +0000
commit4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf (patch)
tree20471d3a652d35a193b6c9873b45eded59bd3e63 /src/gui/table.cpp
parent885a9c145464a2b376edfd1c9677b84f6d4a8ce5 (diff)
downloadmana-4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf.tar.gz
mana-4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf.tar.bz2
mana-4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf.tar.xz
mana-4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf.zip
* Updated GUI table and model to better handle NULL widgets during initialisation
* On SMSG_MOVE et al., ignore boots and glove information-- that information is incorrect and we're guaranteed to already have the correct information anyway. * Properly decode `is dead' information for PCs, so that dead players, when encountered, will be lying on the ground, dead, rather than standing. * Use `skills.xml' file from client data to determine skill names * Report client version number (hereby bumped to 1) in unused charserver slot (ignored by vanilla eAthena)
Diffstat (limited to 'src/gui/table.cpp')
-rw-r--r--src/gui/table.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gui/table.cpp b/src/gui/table.cpp
index 89a93825..bddfbfed 100644
--- a/src/gui/table.cpp
+++ b/src/gui/table.cpp
@@ -105,8 +105,10 @@ GuiTable::setModel(TableModel *new_model)
mModel = new_model;
installActionListeners();
- new_model->installListener(this);
- recomputeDimensions();
+ if (new_model) {
+ new_model->installListener(this);
+ recomputeDimensions();
+ }
}
@@ -187,6 +189,9 @@ GuiTable::uninstallActionListeners(void)
void
GuiTable::installActionListeners(void)
{
+ if (!mModel)
+ return;
+
int rows = mModel->getRows();
int columns = mModel->getColumns();
@@ -367,7 +372,7 @@ GuiTable::getWidgetAt(int x, int y)
if (row > -1
&& column > -1) {
gcn::Widget *w = mModel->getElementAt(row, column);
- if (w->isFocusable())
+ if (w && w->isFocusable())
return w;
else
return NULL; // Grab the event locally