Merge pull request #477 from alexey-lysiuk/fix_strife_dialog

Fixed stuck Strife dialogs
This commit is contained in:
coelckers 2016-01-15 18:36:26 +01:00
commit 91d56aa6a1
1 changed files with 6 additions and 8 deletions

View File

@ -1345,12 +1345,14 @@ 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;
if (reply->NextNode < 0) unsigned next = (unsigned)(rootnode + (reply->NextNode < 0 ? -1 : 1) * reply->NextNode - 1);
if (next < StrifeDialogues.Size())
{ {
unsigned next = (unsigned)(rootnode - reply->NextNode - 1); npc->Conversation = StrifeDialogues[next];
if (gameaction != ga_slideshow && next < StrifeDialogues.Size())
if (gameaction != ga_slideshow)
{ {
npc->Conversation = StrifeDialogues[next];
P_StartConversation (npc, player->mo, player->ConversationFaceTalker, false); P_StartConversation (npc, player->mo, player->ConversationFaceTalker, false);
return; return;
} }
@ -1359,10 +1361,6 @@ static void HandleReply(player_t *player, bool isconsole, int nodenum, int reply
S_StopSound (npc, CHAN_VOICE); S_StopSound (npc, CHAN_VOICE);
} }
} }
else
{
npc->Conversation = StrifeDialogues[rootnode + reply->NextNode - 1];
}
} }
npc->angle = player->ConversationNPCAngle; npc->angle = player->ConversationNPCAngle;