From 8196bdbd31b0720c5bf9725039d38e5900a6d5db Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 29 Mar 2021 02:10:59 +0200 Subject: [PATCH] :sparkles: Set the initial ready spell when creating a new hero --- Source/pfile.cpp | 3 +++ Source/player.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/Source/pfile.cpp b/Source/pfile.cpp index 5fb208cd4..74027d930 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -338,6 +338,9 @@ BOOL pfile_ui_save_create(_uiheroinfo *heroinfo) PackPlayer(&pkplr, 0, TRUE); pfile_encode_hero(&pkplr); game_2_ui_player(&plr[0], heroinfo, FALSE); + if (!gbVanilla) { + SaveHotkeys(); + } pfile_flush(TRUE, save_num); return TRUE; } diff --git a/Source/player.cpp b/Source/player.cpp index b10cfed75..f5389dce0 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -729,22 +729,31 @@ void CreatePlayer(int pnum, plr_class c) plr[pnum]._pLightRad = 10; plr[pnum]._pInfraFlag = FALSE; + plr[pnum]._pRSplType = RSPLTYPE_SKILL; if (c == PC_WARRIOR) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_REPAIR); + plr[pnum]._pRSpell = SPL_REPAIR; } else if (c == PC_ROGUE) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_DISARM); + plr[pnum]._pRSpell = SPL_DISARM; } else if (c == PC_SORCERER) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_RECHARGE); + plr[pnum]._pRSpell = SPL_RECHARGE; } else if (c == PC_MONK) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_SEARCH); + plr[pnum]._pRSpell = SPL_SEARCH; } else if (c == PC_BARD) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_IDENTIFY); + plr[pnum]._pRSpell = SPL_IDENTIFY; } else if (c == PC_BARBARIAN) { plr[pnum]._pAblSpells = GetSpellBitmask(SPL_BLODBOIL); + plr[pnum]._pRSpell = SPL_BLODBOIL; } if (c == PC_SORCERER) { plr[pnum]._pMemSpells = GetSpellBitmask(SPL_FIREBOLT); + plr[pnum]._pRSplType = RSPLTYPE_SPELL; + plr[pnum]._pRSpell = SPL_FIREBOLT; } else { plr[pnum]._pMemSpells = 0; }