mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-02-21 02:41:05 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
db8cd859a6
4 changed files with 23 additions and 3 deletions
|
@ -63,6 +63,10 @@ either refuse loading dialogues with the 'ZDoom' namespace or if it does not
|
||||||
outright abort on incompatible namespaces fail with a type mismatch error on
|
outright abort on incompatible namespaces fail with a type mismatch error on
|
||||||
one of the specified propeties.
|
one of the specified propeties.
|
||||||
|
|
||||||
|
In addition ZDoom defines one new field in the top level of a conversation block:
|
||||||
|
|
||||||
|
id = <integer>; Assigns a conversation ID for use in Thing_SetConversation or in UDMF's 'conversation' actor property.
|
||||||
|
|
||||||
ZDoom-format dialogues need to start with the line:
|
ZDoom-format dialogues need to start with the line:
|
||||||
|
|
||||||
namespace = "ZDoom";
|
namespace = "ZDoom";
|
||||||
|
|
|
@ -312,8 +312,13 @@ FString level_info_t::LookupLevelName()
|
||||||
{
|
{
|
||||||
mysnprintf (checkstring, countof(checkstring), "%d: ", atoi(&MapName[5]));
|
mysnprintf (checkstring, countof(checkstring), "%d: ", atoi(&MapName[5]));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// make sure nothing is stripped.
|
||||||
|
checkstring[0] = '\0';
|
||||||
|
}
|
||||||
thename = strstr (lookedup, checkstring);
|
thename = strstr (lookedup, checkstring);
|
||||||
if (thename == NULL)
|
if (thename == NULL || thename == lookedup)
|
||||||
{
|
{
|
||||||
thename = lookedup;
|
thename = lookedup;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4249,6 +4249,7 @@ enum T_Flags
|
||||||
TF_NODESTFOG = 0x00000080, // Don't spawn any fog at the arrival position.
|
TF_NODESTFOG = 0x00000080, // Don't spawn any fog at the arrival position.
|
||||||
TF_USEACTORFOG = 0x00000100, // Use the actor's TeleFogSourceType and TeleFogDestType fogs.
|
TF_USEACTORFOG = 0x00000100, // Use the actor's TeleFogSourceType and TeleFogDestType fogs.
|
||||||
TF_NOJUMP = 0x00000200, // Don't jump after teleporting.
|
TF_NOJUMP = 0x00000200, // Don't jump after teleporting.
|
||||||
|
TF_OVERRIDE = 0x00000400, // Ignore NOTELEPORT.
|
||||||
};
|
};
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Teleport)
|
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Teleport)
|
||||||
|
@ -4270,8 +4271,11 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Teleport)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ref->flags2 & MF2_NOTELEPORT)
|
if ((ref->flags2 & MF2_NOTELEPORT) && !(Flags & TF_OVERRIDE))
|
||||||
|
{
|
||||||
|
ACTION_SET_RESULT(false);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Randomly choose not to teleport like A_Srcr2Decide.
|
// Randomly choose not to teleport like A_Srcr2Decide.
|
||||||
if (Flags & TF_RANDOMDECIDE)
|
if (Flags & TF_RANDOMDECIDE)
|
||||||
|
@ -4293,14 +4297,20 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Teleport)
|
||||||
|
|
||||||
DSpotState *state = DSpotState::GetSpotState();
|
DSpotState *state = DSpotState::GetSpotState();
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
|
{
|
||||||
|
ACTION_SET_RESULT(false);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!TargetType)
|
if (!TargetType)
|
||||||
TargetType = PClass::FindClass("BossSpot");
|
TargetType = PClass::FindClass("BossSpot");
|
||||||
|
|
||||||
AActor * spot = state->GetSpotWithMinMaxDistance(TargetType, ref->x, ref->y, MinDist, MaxDist);
|
AActor * spot = state->GetSpotWithMinMaxDistance(TargetType, ref->x, ref->y, MinDist, MaxDist);
|
||||||
if (spot == NULL)
|
if (spot == NULL)
|
||||||
|
{
|
||||||
|
ACTION_SET_RESULT(false);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
fixed_t prevX = ref->x;
|
fixed_t prevX = ref->x;
|
||||||
fixed_t prevY = ref->y;
|
fixed_t prevY = ref->y;
|
||||||
|
|
|
@ -199,6 +199,7 @@ enum
|
||||||
TF_NODESTFOG = 0x00000080, // Don't spawn any fog at the arrival position.
|
TF_NODESTFOG = 0x00000080, // Don't spawn any fog at the arrival position.
|
||||||
TF_USEACTORFOG = 0x00000100, // Use the actor's TeleFogSourceType and TeleFogDestType fogs.
|
TF_USEACTORFOG = 0x00000100, // Use the actor's TeleFogSourceType and TeleFogDestType fogs.
|
||||||
TF_NOJUMP = 0x00000200, // Don't jump after teleporting.
|
TF_NOJUMP = 0x00000200, // Don't jump after teleporting.
|
||||||
|
TF_OVERRIDE = 0x00000400, // Ignore NOTELEPORT.
|
||||||
|
|
||||||
TF_KEEPORIENTATION = TF_KEEPVELOCITY|TF_KEEPANGLE,
|
TF_KEEPORIENTATION = TF_KEEPVELOCITY|TF_KEEPANGLE,
|
||||||
TF_NOFOG = TF_NOSRCFOG|TF_NODESTFOG,
|
TF_NOFOG = TF_NOSRCFOG|TF_NODESTFOG,
|
||||||
|
|
Loading…
Reference in a new issue