mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-27 01:00:13 +00:00
Add character creation screen with race/class/appearance customization
Implements a full character creation UI integrated into the existing flow. In single-player mode, auth screen now goes to character creation before entering the world. In online mode, a "Create Character" button on the character selection screen sends CMSG_CHAR_CREATE to the server. Includes WoW 3.3.5a race/class combo validation and appearance range limits.
This commit is contained in:
parent
129bbac9b3
commit
0605d1522d
16 changed files with 611 additions and 30 deletions
|
|
@ -3,6 +3,54 @@
|
|||
namespace wowee {
|
||||
namespace game {
|
||||
|
||||
bool isValidRaceClassCombo(Race race, Class cls) {
|
||||
// WoW 3.3.5a valid race/class combinations
|
||||
switch (race) {
|
||||
case Race::HUMAN:
|
||||
return cls == Class::WARRIOR || cls == Class::PALADIN || cls == Class::ROGUE ||
|
||||
cls == Class::PRIEST || cls == Class::MAGE || cls == Class::WARLOCK ||
|
||||
cls == Class::DEATH_KNIGHT;
|
||||
case Race::ORC:
|
||||
return cls == Class::WARRIOR || cls == Class::HUNTER || cls == Class::ROGUE ||
|
||||
cls == Class::SHAMAN || cls == Class::WARLOCK || cls == Class::DEATH_KNIGHT;
|
||||
case Race::DWARF:
|
||||
return cls == Class::WARRIOR || cls == Class::PALADIN || cls == Class::HUNTER ||
|
||||
cls == Class::ROGUE || cls == Class::PRIEST || cls == Class::DEATH_KNIGHT;
|
||||
case Race::NIGHT_ELF:
|
||||
return cls == Class::WARRIOR || cls == Class::HUNTER || cls == Class::ROGUE ||
|
||||
cls == Class::PRIEST || cls == Class::DRUID || cls == Class::DEATH_KNIGHT;
|
||||
case Race::UNDEAD:
|
||||
return cls == Class::WARRIOR || cls == Class::ROGUE || cls == Class::PRIEST ||
|
||||
cls == Class::MAGE || cls == Class::WARLOCK || cls == Class::DEATH_KNIGHT;
|
||||
case Race::TAUREN:
|
||||
return cls == Class::WARRIOR || cls == Class::HUNTER || cls == Class::DRUID ||
|
||||
cls == Class::SHAMAN || cls == Class::DEATH_KNIGHT;
|
||||
case Race::GNOME:
|
||||
return cls == Class::WARRIOR || cls == Class::ROGUE || cls == Class::MAGE ||
|
||||
cls == Class::WARLOCK || cls == Class::DEATH_KNIGHT;
|
||||
case Race::TROLL:
|
||||
return cls == Class::WARRIOR || cls == Class::HUNTER || cls == Class::ROGUE ||
|
||||
cls == Class::PRIEST || cls == Class::SHAMAN || cls == Class::MAGE ||
|
||||
cls == Class::DEATH_KNIGHT;
|
||||
case Race::BLOOD_ELF:
|
||||
return cls == Class::PALADIN || cls == Class::HUNTER || cls == Class::ROGUE ||
|
||||
cls == Class::PRIEST || cls == Class::MAGE || cls == Class::WARLOCK ||
|
||||
cls == Class::DEATH_KNIGHT;
|
||||
case Race::DRAENEI:
|
||||
return cls == Class::WARRIOR || cls == Class::PALADIN || cls == Class::HUNTER ||
|
||||
cls == Class::PRIEST || cls == Class::SHAMAN || cls == Class::MAGE ||
|
||||
cls == Class::DEATH_KNIGHT;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t getMaxSkin(Race /*race*/, Gender /*gender*/) { return 9; }
|
||||
uint8_t getMaxFace(Race /*race*/, Gender /*gender*/) { return 9; }
|
||||
uint8_t getMaxHairStyle(Race /*race*/, Gender /*gender*/) { return 11; }
|
||||
uint8_t getMaxHairColor(Race /*race*/, Gender /*gender*/) { return 9; }
|
||||
uint8_t getMaxFacialFeature(Race /*race*/, Gender /*gender*/) { return 8; }
|
||||
|
||||
const char* getRaceName(Race race) {
|
||||
switch (race) {
|
||||
case Race::HUMAN: return "Human";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue