mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-13 07:57:51 +00:00
Done the code changes.
This time only nulls I've added are nullptrs
This commit is contained in:
parent
1ab990f81f
commit
ecffd0bea6
4 changed files with 28 additions and 5 deletions
|
@ -584,6 +584,7 @@ xx(Dialog)
|
||||||
xx(Ifitem)
|
xx(Ifitem)
|
||||||
xx(Choice)
|
xx(Choice)
|
||||||
xx(Link)
|
xx(Link)
|
||||||
|
xx(Goodbye)
|
||||||
|
|
||||||
// Special menus
|
// Special menus
|
||||||
xx(Mainmenu)
|
xx(Mainmenu)
|
||||||
|
|
|
@ -556,6 +556,7 @@ FStrifeDialogueNode::~FStrifeDialogueNode ()
|
||||||
{
|
{
|
||||||
if (SpeakerName != NULL) delete[] SpeakerName;
|
if (SpeakerName != NULL) delete[] SpeakerName;
|
||||||
if (Dialogue != NULL) delete[] Dialogue;
|
if (Dialogue != NULL) delete[] Dialogue;
|
||||||
|
if (Goodbye != nullptr) delete[] Goodbye;
|
||||||
FStrifeDialogueReply *tokill = Children;
|
FStrifeDialogueReply *tokill = Children;
|
||||||
while (tokill != NULL)
|
while (tokill != NULL)
|
||||||
{
|
{
|
||||||
|
@ -743,10 +744,26 @@ public:
|
||||||
++i;
|
++i;
|
||||||
V_FreeBrokenLines (ReplyLines);
|
V_FreeBrokenLines (ReplyLines);
|
||||||
}
|
}
|
||||||
char goodbye[25];
|
const char *goodbyestr = CurNode->Goodbye;
|
||||||
mysnprintf(goodbye, countof(goodbye), "TXT_RANDOMGOODBYE_%d", 1+(pr_randomspeech() % NUM_RANDOM_GOODBYES));
|
if (goodbyestr == nullptr)
|
||||||
const char *goodbyestr = GStrings[goodbye];
|
{
|
||||||
if (goodbyestr == NULL) goodbyestr = "Bye.";
|
char goodbye[25];
|
||||||
|
mysnprintf(goodbye, countof(goodbye), "TXT_RANDOMGOODBYE_%d", 1 + (pr_randomspeech() % NUM_RANDOM_GOODBYES));
|
||||||
|
goodbyestr = GStrings[goodbye];
|
||||||
|
if (goodbyestr == nullptr) goodbyestr = "Bye.";
|
||||||
|
}
|
||||||
|
else if (strncmp(goodbyestr, "RANDOM_", 7) == 0)
|
||||||
|
{
|
||||||
|
FString byetext;
|
||||||
|
|
||||||
|
byetext.Format("TXT_%s_%02d", goodbyestr, 1 + (pr_randomspeech() % NUM_RANDOM_LINES));
|
||||||
|
goodbyestr = GStrings[byetext];
|
||||||
|
if (goodbyestr == nullptr) goodbyestr = "Bye.";
|
||||||
|
}
|
||||||
|
else if (goodbyestr[0] == '$')
|
||||||
|
{
|
||||||
|
goodbyestr = GStrings(goodbyestr + 1);
|
||||||
|
}
|
||||||
mResponses.Push(mResponseLines.Size());
|
mResponses.Push(mResponseLines.Size());
|
||||||
mResponseLines.Push(FString(goodbyestr));
|
mResponseLines.Push(FString(goodbyestr));
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ struct FStrifeDialogueNode
|
||||||
FSoundID SpeakerVoice;
|
FSoundID SpeakerVoice;
|
||||||
FTextureID Backdrop;
|
FTextureID Backdrop;
|
||||||
char *Dialogue;
|
char *Dialogue;
|
||||||
|
char *Goodbye = nullptr; // must init to null for binary scripts to work as intended
|
||||||
|
|
||||||
FStrifeDialogueReply *Children;
|
FStrifeDialogueReply *Children;
|
||||||
};
|
};
|
||||||
|
|
|
@ -286,6 +286,7 @@ class USDFParser : public UDMFParserBase
|
||||||
|
|
||||||
FString SpeakerName;
|
FString SpeakerName;
|
||||||
FString Dialogue;
|
FString Dialogue;
|
||||||
|
FString Goodbye;
|
||||||
|
|
||||||
while (!sc.CheckToken('}'))
|
while (!sc.CheckToken('}'))
|
||||||
{
|
{
|
||||||
|
@ -331,7 +332,9 @@ class USDFParser : public UDMFParserBase
|
||||||
node->ItemCheckNode = CheckInt(key);
|
node->ItemCheckNode = CheckInt(key);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NAME_Goodbye:
|
||||||
|
Goodbye = CheckString(key);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -354,6 +357,7 @@ class USDFParser : public UDMFParserBase
|
||||||
}
|
}
|
||||||
node->SpeakerName = ncopystring(SpeakerName);
|
node->SpeakerName = ncopystring(SpeakerName);
|
||||||
node->Dialogue = ncopystring(Dialogue);
|
node->Dialogue = ncopystring(Dialogue);
|
||||||
|
node->Goodbye = ncopystring(Goodbye);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue