- Version bump to 2.1.4.

- Fixed: Friendlies would not turn to face you when you engaged them in
  conversation, nor would they reliably return to their original facing when
  you stopped talking to them.
- Added deprecation warnings for the DontHurtShooter, ExplosionRadius, and
  ExplosionDamage actor "properties." They were considered deprecated before;
  now this is explicitly stated when they are used. The problem with them is
  that they are not really properties and do not behave like other properties
  and cannot be inherited, because they are really just an alternate way of
  specifying parameters for A_Explode. (Anything that currently prints a
  deprecation warning will be removed completely in 2.2.0, which will be the
  version where custom state labels make their debut.)


SVN r272 (trunk)
This commit is contained in:
Randy Heit 2006-07-29 01:26:24 +00:00
parent f203219d24
commit 06681ec72d
8 changed files with 57 additions and 15 deletions

View File

@ -1,3 +1,17 @@
July 28, 2008
- Version bump to 2.1.4.
- Fixed: Friendlies would not turn to face you when you engaged them in
conversation, nor would they reliably return to their original facing when
you stopped talking to them.
- Added deprecation warnings for the DontHurtShooter, ExplosionRadius, and
ExplosionDamage actor "properties." They were considered deprecated before;
now this is explicitly stated when they are used. The problem with them is
that they are not really properties and do not behave like other properties
and cannot be inherited, because they are really just an alternate way of
specifying parameters for A_Explode. (Anything that currently prints a
deprecation warning will be removed completely in 2.2.0, which will be the
version where custom state labels make their debut.)
July 26, 2006 (Changes by Graf Zahl)
- Changed player sprite translation for the menu so that it uses a regular
translation table instead of a local custom buffer.

View File

@ -79,6 +79,7 @@ static void ParseReplies (FStrifeDialogueReply **replyptr, Response *responses);
static void DrawConversationMenu ();
static void PickConversationReply ();
static void CleanupConversationMenu ();
static void ConversationMenuEscaped ();
static FStrifeDialogueNode *CurNode, *PrevNode;
static brokenlines_t *DialogueLines;
@ -602,8 +603,9 @@ CUSTOM_CVAR(Float, dlg_musicvolume, 1.0f, CVAR_ARCHIVE)
//
//============================================================================
void P_StartConversation (AActor *npc, AActor *pc, bool facetalker)
void P_StartConversation (AActor *npc, AActor *pc, bool facetalker, bool saveangle)
{
AActor *oldtarget;
FStrifeDialogueReply *reply;
menuitem_t item;
const char *toSay;
@ -626,17 +628,22 @@ void P_StartConversation (AActor *npc, AActor *pc, bool facetalker)
}
npc->reactiontime = 2;
if (!(npc->flags & MF_FRIENDLY) && !(npc->flags4 & MF4_NOHATEPLAYERS))
{
npc->target = pc;
}
ConversationFaceTalker = facetalker;
if (saveangle)
{
ConversationNPCAngle = npc->angle;
}
oldtarget = npc->target;
npc->target = pc;
if (facetalker)
{
A_FaceTarget (npc);
pc->angle = R_PointToAngle2 (pc->x, pc->y, npc->x, npc->y);
}
if ((npc->flags & MF_FRIENDLY) || (npc->flags4 & MF4_NOHATEPLAYERS))
{
npc->target = oldtarget;
}
// Check if we should jump to another node
while (CurNode->ItemCheck[0] != NULL)
@ -662,7 +669,7 @@ void P_StartConversation (AActor *npc, AActor *pc, bool facetalker)
// Set up the menu
ConversationMenu.PreDraw = DrawConversationMenu;
ConversationMenu.EscapeHandler = CleanupConversationMenu;
ConversationMenu.EscapeHandler = ConversationMenuEscaped;
// Format the speaker's message.
toSay = CurNode->Dialogue;
@ -747,7 +754,7 @@ void P_ResumeConversation ()
{
if (ConversationPC != NULL && ConversationNPC != NULL)
{
P_StartConversation (ConversationNPC, ConversationPC, ConversationFaceTalker);
P_StartConversation (ConversationNPC, ConversationPC, ConversationFaceTalker, false);
}
}
@ -866,6 +873,7 @@ static void PickConversationReply ()
CleanupConversationMenu ();
if (reply == NULL)
{
ConversationNPC->angle = ConversationNPCAngle;
return;
}
@ -880,6 +888,7 @@ static void PickConversationReply ()
Printf ("%s\n", reply->QuickNo);
}
ConversationNPC->ConversationAnimation (2);
ConversationNPC->angle = ConversationNPCAngle;
return;
}
}
@ -967,7 +976,7 @@ static void PickConversationReply ()
ConversationNPC->Conversation = StrifeDialogues[rootnode - reply->NextNode - 1];
if (gameaction != ga_slideshow)
{
P_StartConversation (ConversationNPC, players[consoleplayer].mo, ConversationFaceTalker);
P_StartConversation (ConversationNPC, players[consoleplayer].mo, ConversationFaceTalker, false);
return;
}
else
@ -1018,3 +1027,16 @@ void CleanupConversationMenu ()
I_SetMusicVolume(1.f);
}
//============================================================================
//
// ConversationMenuEscaped
//
// Called when the user presses escape to leave tho conversation menu.
//
//============================================================================
void ConversationMenuEscaped ()
{
CleanupConversationMenu ();
ConversationNPC->angle = ConversationNPCAngle;
}

View File

@ -59,7 +59,7 @@ extern const PClass *StrifeTypes[1001];
void P_LoadStrifeConversations (const char *mapname);
void P_FreeStrifeConversations ();
void P_StartConversation (AActor *npc, AActor *pc, bool facetalker);
void P_StartConversation (AActor *npc, AActor *pc, bool facetalker, bool saveangle);
void P_ResumeConversation ();
#endif

View File

@ -2664,7 +2664,7 @@ FUNC(LS_StartConversation)
{
// Give the NPC a chance to play a brief animation
target->ConversationAnimation (0);
P_StartConversation (target, it, !!arg1);
P_StartConversation (target, it, !!arg1, true);
return true;
}
return false;

View File

@ -3167,7 +3167,7 @@ BOOL PTR_UseTraverse (intercept_t *in)
{
// Give the NPC a chance to play a brief animation
in->d.thing->ConversationAnimation (0);
P_StartConversation (in->d.thing, usething, true);
P_StartConversation (in->d.thing, usething, true, true);
return false;
}
return true;

View File

@ -1418,7 +1418,7 @@ void R_InitTranslationTables ()
{
static BYTE MainTranslationTables[256*
(NUMCOLORMAPS*16 // Shaded
+MAXPLAYERS*2+1 // Players + PlayersExtra
+MAXPLAYERS*2+1 // Players + PlayersExtra + Menu player
+8 // Standard (7 for Strife, 3 for the rest)
+MAX_ACS_TRANSLATIONS // LevelScripted
+BODYQUESIZE // PlayerCorpses

View File

@ -2223,7 +2223,7 @@ static void StatePropertyIsDeprecated (const char *actorname, const char *prop)
{
static bool warned = false;
Printf (TEXTCOLOR_YELLOW "In actor %s, the %s property is deprecated.\n",
Printf (TEXTCOLOR_YELLOW "In actor %s, the %s property is deprecated and will be removed in 2.2.0.\n",
actorname, prop);
if (!warned)
{
@ -2739,6 +2739,8 @@ static void ActorHitObituary (AActor *defaults, Baggage &bag)
//==========================================================================
static void ActorDontHurtShooter (AActor *defaults, Baggage &bag)
{
Printf (TEXTCOLOR_YELLOW "DontHurtShooter in %s is deprecated and will be removed in 2.2.0.\n",
bag.Info->Class->TypeName.GetChars());
bag.EParms.HurtShooter=false;
}
@ -2747,6 +2749,8 @@ static void ActorDontHurtShooter (AActor *defaults, Baggage &bag)
//==========================================================================
static void ActorExplosionRadius (AActor *defaults, Baggage &bag)
{
Printf (TEXTCOLOR_YELLOW "ExplosionRadius in %s is deprecated and will be removed in 2.2.0.\n",
bag.Info->Class->TypeName.GetChars());
SC_MustGetNumber();
bag.EParms.ExplosionRadius=sc_Number;
}
@ -2756,6 +2760,8 @@ static void ActorExplosionRadius (AActor *defaults, Baggage &bag)
//==========================================================================
static void ActorExplosionDamage (AActor *defaults, Baggage &bag)
{
Printf (TEXTCOLOR_YELLOW "ExplosionDamage in %s is deprecated and will be removed in 2.2.0.\n",
bag.Info->Class->TypeName.GetChars());
SC_MustGetNumber();
bag.EParms.ExplosionDamage=sc_Number;
}

View File

@ -40,7 +40,7 @@
/** Lots of different version numbers **/
#define DOTVERSIONSTR_NOREV "2.1.3"
#define DOTVERSIONSTR_NOREV "2.1.4"
// The version string the user actually sees.
#define DOTVERSIONSTR DOTVERSIONSTR_NOREV " (r" SVN_REVISION_STRING ")"