- Added a StartConversation special that allows automatic activation of Strife
dialogs. - Added Thing_Raise special that allows Arch-Vile like resurrections from scripts or DECORATE states. - Added a RadiusDamageFactor property for actors. This replaces the hard coded factor of 0.25 for Hexen's players. - Added new SpawnProjectile function to ACS. It's the same as Thing_Projectile2 but the projectile is specified by name, not spawn ID. - Added MAPINFO option to set the compatibility flags. If this is done these explicit settings will take precedence over the compatflags CVAR. SVN r164 (trunk)
This commit is contained in:
parent
4325fb8993
commit
15681d0588
32 changed files with 473 additions and 261 deletions
|
|
@ -84,6 +84,7 @@ static FStrifeDialogueNode *CurNode, *PrevNode;
|
|||
static brokenlines_t *DialogueLines;
|
||||
static AActor *ConversationNPC, *ConversationPC;
|
||||
static angle_t ConversationNPCAngle;
|
||||
static bool ConversationFaceTalker;
|
||||
|
||||
#define NUM_RANDOM_LINES 10
|
||||
#define NUM_RANDOM_GOODBYES 3
|
||||
|
|
@ -601,7 +602,7 @@ CUSTOM_CVAR(Float, dlg_musicvolume, 1.0f, CVAR_ARCHIVE)
|
|||
//
|
||||
//============================================================================
|
||||
|
||||
void P_StartConversation (AActor *npc, AActor *pc)
|
||||
void P_StartConversation (AActor *npc, AActor *pc, bool facetalker)
|
||||
{
|
||||
FStrifeDialogueReply *reply;
|
||||
menuitem_t item;
|
||||
|
|
@ -629,9 +630,13 @@ void P_StartConversation (AActor *npc, AActor *pc)
|
|||
{
|
||||
npc->target = pc;
|
||||
}
|
||||
ConversationFaceTalker = facetalker;
|
||||
ConversationNPCAngle = npc->angle;
|
||||
A_FaceTarget (npc);
|
||||
pc->angle = R_PointToAngle2 (pc->x, pc->y, npc->x, npc->y);
|
||||
if (facetalker)
|
||||
{
|
||||
A_FaceTarget (npc);
|
||||
pc->angle = R_PointToAngle2 (pc->x, pc->y, npc->x, npc->y);
|
||||
}
|
||||
|
||||
// Check if we should jump to another node
|
||||
while (CurNode->ItemCheck[0] != NULL)
|
||||
|
|
@ -742,7 +747,7 @@ void P_ResumeConversation ()
|
|||
{
|
||||
if (ConversationPC != NULL && ConversationNPC != NULL)
|
||||
{
|
||||
P_StartConversation (ConversationNPC, ConversationPC);
|
||||
P_StartConversation (ConversationNPC, ConversationPC, ConversationFaceTalker);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -962,7 +967,7 @@ static void PickConversationReply ()
|
|||
ConversationNPC->Conversation = StrifeDialogues[rootnode - reply->NextNode - 1];
|
||||
if (gameaction != ga_slideshow)
|
||||
{
|
||||
P_StartConversation (ConversationNPC, players[consoleplayer].mo);
|
||||
P_StartConversation (ConversationNPC, players[consoleplayer].mo, ConversationFaceTalker);
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue