diff --git a/src/k_dialogue.cpp b/src/k_dialogue.cpp index 7f3a03b18..76f575700 100644 --- a/src/k_dialogue.cpp +++ b/src/k_dialogue.cpp @@ -70,15 +70,20 @@ void Dialogue::SetSpeaker(std::string skinName, int portraitID) if (sprdef->numframes > 0) { portraitID %= sprdef->numframes; + + const spriteframe_t *sprframe = &sprdef->spriteframes[portraitID]; + + portrait = static_cast( W_CachePatchNum(sprframe->lumppat[0], PU_CACHE) ); + portraitColormap = R_GetTranslationColormap(skinID, static_cast(skin->prefcolor), GTC_CACHE); + } + else + { + portrait = nullptr; + portraitColormap = nullptr; } - const spriteframe_t *sprframe = &sprdef->spriteframes[portraitID]; - speaker = skin->realname; - portrait = static_cast( W_CachePatchNum(sprframe->lumppat[0], PU_CACHE) ); - portraitColormap = R_GetTranslationColormap(skinID, static_cast(skin->prefcolor), GTC_CACHE); - voiceSfx = skin->soundsid[ S_sfx[sfx_ktalk].skinsound ]; } else @@ -333,6 +338,7 @@ void Dialogue::Unset(void) { Dismiss(); SetSpeaker(); + slide = 0; } /*