Fixed broken 'closedialog' property in Strife dialogs

See http://forum.zdoom.org/viewtopic.php?t=50524
This commit is contained in:
alexey.lysiuk 2016-01-21 15:53:35 +02:00
parent 5421213711
commit 673ac1295c

View file

@ -1345,20 +1345,24 @@ static void HandleReply(player_t *player, bool isconsole, int nodenum, int reply
if (reply->NextNode != 0) if (reply->NextNode != 0)
{ {
int rootnode = npc->ConversationRoot; int rootnode = npc->ConversationRoot;
unsigned next = (unsigned)(rootnode + (reply->NextNode < 0 ? -1 : 1) * reply->NextNode - 1); const bool isNegative = reply->NextNode < 0;
const unsigned next = (unsigned)(rootnode + (isNegative ? -1 : 1) * reply->NextNode - 1);
if (next < StrifeDialogues.Size()) if (next < StrifeDialogues.Size())
{ {
npc->Conversation = StrifeDialogues[next]; npc->Conversation = StrifeDialogues[next];
if (gameaction != ga_slideshow) if (isNegative)
{ {
P_StartConversation (npc, player->mo, player->ConversationFaceTalker, false); if (gameaction != ga_slideshow)
return; {
} P_StartConversation (npc, player->mo, player->ConversationFaceTalker, false);
else return;
{ }
S_StopSound (npc, CHAN_VOICE); else
{
S_StopSound (npc, CHAN_VOICE);
}
} }
} }
} }