Merge commit '6e45c565a0' into scripting

Conflicts:
	src/p_mobj.cpp

(This stops right before moving the conversation IDs into MAPINFO because that feature is quite conflict-heavy and will have to merged by itself.)
This commit is contained in:
Christoph Oelckers 2015-04-28 12:59:20 +02:00
commit ddced06be2
28 changed files with 1672 additions and 1457 deletions

View file

@ -469,11 +469,6 @@ void AActor::Serialize (FArchive &arc)
}
}
void FMapThing::Serialize (FArchive &arc)
{
arc << thingid << x << y << z << angle << type << flags << special
<< args[0] << args[1] << args[2] << args[3] << args[4];
}
AActor::AActor () throw()
{
@ -4705,17 +4700,17 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
AActor *mobj;
fixed_t x, y, z;
if (mthing->type == 0 || mthing->type == -1)
if (mthing->EdNum == 0 || mthing->EdNum == -1)
return NULL;
// find which type to spawn
FDoomEdEntry *mentry = DoomEdMap.CheckKey(mthing->type);
FDoomEdEntry *mentry = mthing->info;
if (mentry == NULL)
{
// [RH] Don't die if the map tries to spawn an unknown thing
Printf ("Unknown type %i at (%i, %i)\n",
mthing->type,
mthing->EdNum,
mthing->x>>FRACBITS, mthing->y>>FRACBITS);
mentry = DoomEdMap.CheckKey(0);
if (mentry == NULL) // we need a valid entry for the rest of this function so if we can't find a default, let's exit right away.
@ -4742,7 +4737,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
switch (mentry->Special)
{
case SMT_DEATHMATCHSTART:
case SMT_DeathmatchStart:
{
// count deathmatch start positions
FPlayerStart start(mthing, 0);
@ -4750,10 +4745,10 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
return NULL;
}
case SMT_POLYANCHOR:
case SMT_POLYSPAWN:
case SMT_POLYSPAWNCRUSH:
case SMT_POLYSPAWNHURT:
case SMT_PolyAnchor:
case SMT_PolySpawn:
case SMT_PolySpawnCrush:
case SMT_PolySpawnHurt:
{
polyspawns_t *polyspawn = new polyspawns_t;
polyspawn->next = polyspawns;
@ -4762,20 +4757,20 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
polyspawn->angle = mthing->angle;
polyspawn->type = mentry->Special;
polyspawns = polyspawn;
if (mentry->Special != SMT_POLYANCHOR)
if (mentry->Special != SMT_PolyAnchor)
po_NumPolyobjs++;
return NULL;
}
case SMT_PLAYER1START:
case SMT_PLAYER2START:
case SMT_PLAYER3START:
case SMT_PLAYER4START:
case SMT_PLAYER5START:
case SMT_PLAYER6START:
case SMT_PLAYER7START:
case SMT_PLAYER8START:
pnum = mentry->Special - SMT_PLAYER1START;
case SMT_Player1Start:
case SMT_Player2Start:
case SMT_Player3Start:
case SMT_Player4Start:
case SMT_Player5Start:
case SMT_Player6Start:
case SMT_Player7Start:
case SMT_Player8Start:
pnum = mentry->Special - SMT_Player1Start;
break;
// Sound sequence override will be handled later
@ -4860,7 +4855,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
}
// [RH] sound sequence overriders
if (mentry->Type == NULL && mentry->Special == SMT_SSEQOVERRIDE)
if (mentry->Type == NULL && mentry->Special == SMT_SSeqOverride)
{
int type = mentry->Args[0];
if (type == 255) type = -1;