diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-07-04 21:11:28 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-07-04 21:11:28 +0300 |
commit | 8dd47e51d9c318e522b21f28bc3e3935ef692056 (patch) | |
tree | 30b364f3f1b04fd31efec47332d193567894997f /src/gui | |
parent | d1d205fbe0c2d63bbd08742c56f00852ccc0523b (diff) | |
download | manaplus-8dd47e51d9c318e522b21f28bc3e3935ef692056.tar.gz manaplus-8dd47e51d9c318e522b21f28bc3e3935ef692056.tar.bz2 manaplus-8dd47e51d9c318e522b21f28bc3e3935ef692056.tar.xz manaplus-8dd47e51d9c318e522b21f28bc3e3935ef692056.zip |
add missing checks.
also fix crash in creating character with broken data.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/charcreatedialog.cpp | 10 | ||||
-rw-r--r-- | src/gui/palette.cpp | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/charcreatedialog.cpp b/src/gui/charcreatedialog.cpp index c32098b63..b0a7d730c 100644 --- a/src/gui/charcreatedialog.cpp +++ b/src/gui/charcreatedialog.cpp @@ -159,8 +159,14 @@ CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent, if (!maxHairStyle) maxHairStyle = mPlayer->getNumOfHairstyles(); - mHairStyle = (rand() % maxHairStyle) + minHairStyle; - mHairColor = (rand() % maxHairColor) + minHairColor; + if (maxHairStyle) + mHairStyle = (rand() % maxHairStyle) + minHairStyle; + else + mHairStyle = 0; + if (maxHairColor) + mHairColor = (rand() % maxHairColor) + minHairColor; + else + mHairColor = 0; mNameField->setMaximum(24); diff --git a/src/gui/palette.cpp b/src/gui/palette.cpp index abd328458..1b25620a9 100644 --- a/src/gui/palette.cpp +++ b/src/gui/palette.cpp @@ -127,7 +127,7 @@ void Palette::advanceGradient() % (delay * numOfColors); const int gradIndex = elem->gradientIndex; - const int pos = gradIndex % delay; + const int pos = delay ? (gradIndex % delay) : gradIndex; int colIndex; if (delay) colIndex = gradIndex / delay; |