* Updated to ZDoom r2569:

- Removed FActorInfo::ConversationID which was development garbage of the USDF branch.
- Fixed: The USDF CheckActorType function did not return the class object for ZDoom namespace.
- Fixed: The binary check for dialogue lumps must only rewind the file by 4 bytes, not completely to the start.
- Added UMDF property to assign conversation dialogues to mapthings.

git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@903 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
gez 2010-08-22 21:36:52 +00:00
parent da09f94592
commit d900641e08
11 changed files with 27 additions and 7 deletions

View file

@ -180,6 +180,8 @@ Note: All <bool> fields default to false unless mentioned otherwise.
class# = <bool> // Unlike the base spec, # can range from 1-8.
// 8 is the maximum amount of classes the class
// menu can display.
conversation = <int> // Assigns a conversation dialogue to this thing.
// Parameter is the conversation ID, 0 meaning none.
}
@ -268,6 +270,9 @@ Added 'playeruseback' line trigger flag.
1.11 07.08.2010
Added 'soundsequnce' sector property.
1.12 22.08.2010
Added 'conversation' thing property.
===============================================================================
EOF
===============================================================================

View file

@ -317,7 +317,6 @@ PClass *PClass::CreateDerivedClass (FName name, unsigned int size)
info->DamageFactors = NULL;
info->PainChances = NULL;
info->ColorSets = NULL;
info->ConversationID = -1;
m_RuntimeActors.Push (type);
}
return type;
@ -412,7 +411,6 @@ void PClass::InitializeActorInfo ()
info->DamageFactors = NULL;
info->PainChances = NULL;
info->ColorSets = NULL;
info->ConversationID = -1;
m_RuntimeActors.Push (this);
}

View file

@ -340,6 +340,7 @@ struct FMapThing
DWORD flags;
int special;
int args[5];
int Conversation;
void Serialize (FArchive &);
};

View file

@ -203,7 +203,6 @@ struct FActorInfo
BYTE GameFilter;
BYTE SpawnID;
SWORD DoomEdNum;
int ConversationID;
FStateLabels *StateList;
DmgFactors *DamageFactors;
PainChanceList *PainChances;

View file

@ -383,6 +383,7 @@ xx(Firstsideonly)
xx(Transparent)
xx(Passuse)
xx(Repeatspecial)
xx(Conversation)
xx(Playercross)
xx(Playeruse)

View file

@ -266,7 +266,7 @@ static bool LoadScriptFile(int lumpnum, FileReader *lump, int numnodes, bool inc
char buffer[4];
lump->Read(buffer, 4);
lump->Seek(0, SEEK_SET);
lump->Seek(-4, SEEK_CUR);
// The binary format is so primitive that this check is enough to detect it.
bool isbinary = (buffer[0] == 0 || buffer[1] == 0 || buffer[2] == 0 || buffer[3] == 0);

View file

@ -4394,6 +4394,17 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
mobj->AddToHash ();
mobj->PrevAngle = mobj->angle = (DWORD)((mthing->angle * UCONST64(0x100000000)) / 360);
// Check if this actor's mapthing has a conversation defined
if (mthing->Conversation > 0)
{
mobj->ConversationRoot = GetConversation(mthing->Conversation);
if (mobj->ConversationRoot != -1)
{
mobj->Conversation = StrifeDialogues[mobj->ConversationRoot];
}
}
mobj->BeginPlay ();
if (!(mobj->ObjectFlags & OF_EuthanizeMe))
{

View file

@ -493,6 +493,11 @@ public:
th->type = (short)CheckInt(key);
break;
case NAME_Conversation:
CHECK_N(Zd | Zdt)
th->Conversation = CheckInt(key);
break;
case NAME_Special:
CHECK_N(Hx | Zd | Zdt | Va)
th->special = CheckInt(key);

View file

@ -71,6 +71,7 @@ class USDFParser : public UDMFParserBase
sc.ScriptMessage("'%s' is not an actor type", key);
return NULL;
}
return cls;
}
return NULL;
}

View file

@ -3,5 +3,5 @@
// This file was automatically generated by the
// updaterevision tool. Do not edit by hand.
#define ZD_SVN_REVISION_STRING "2563"
#define ZD_SVN_REVISION_NUMBER 2563
#define ZD_SVN_REVISION_STRING "2569"
#define ZD_SVN_REVISION_NUMBER 2569

View file

@ -257,7 +257,6 @@ DEFINE_INFO_PROPERTY(conversationid, IiI, Actor)
}
bag.Info->ConversationID = convid;
if (convid <= 0) return; // 0 is not usable because the dialogue scripts use it as 'no object'.
SetStrifeType(convid, info->Class);
}