Make balloons use UDMF arg 0, MTF_AMBUSH not being set turns on respawning
This commit is contained in:
parent
677075bfbf
commit
72931e7713
3 changed files with 34 additions and 1 deletions
|
|
@ -196,6 +196,7 @@ _(A_SpawnParticleRelative, SPAWNPARTICLERELATIVE)
|
|||
_(A_ParticleSpawn, PARTICLESPAWN)
|
||||
_(A_MultiShotDist, MULTISHOTDIST)
|
||||
_(A_CheckFlags2, CHECKFLAGS2)
|
||||
_(A_CheckScriptArg, CHECKSCRIPTARG)
|
||||
_(A_DoNPCSkid, DONPCSKID)
|
||||
_(A_DoNPCPain, DONPCPAIN)
|
||||
_(A_PrepareRepeat, PREPAREREPEAT)
|
||||
|
|
|
|||
|
|
@ -9747,6 +9747,11 @@ void A_SpawnFreshCopy(void *thing)
|
|||
|
||||
newObject = P_SpawnMobjFromMobj(actor, 0, 0, 0, actor->type);
|
||||
newObject->flags2 = actor->flags2 & MF2_AMBUSH;
|
||||
|
||||
INT32 i;
|
||||
for (i = 0; i < NUM_SCRIPT_ARGS; i++)
|
||||
newObject->script_args[i] = actor->script_args[i];
|
||||
|
||||
newObject->angle = actor->angle;
|
||||
newObject->color = actor->color;
|
||||
P_SetTarget(&newObject->target, actor->target);
|
||||
|
|
@ -10577,6 +10582,29 @@ void A_CheckFlags2(void *thing)
|
|||
P_SetMobjState(actor, (statenum_t)locvar2);
|
||||
}
|
||||
|
||||
// Function: A_CheckScriptArg
|
||||
//
|
||||
// Description: If actor->script_args[var1] != 0, goto var2.
|
||||
//
|
||||
// var1 = mask
|
||||
// var2 = state to go
|
||||
//
|
||||
void A_CheckScriptArg(void *thing)
|
||||
{
|
||||
mobj_t *actor = thing;
|
||||
INT32 locvar1 = var1;
|
||||
INT32 locvar2 = var2;
|
||||
|
||||
if (locvar1 >= NUM_SCRIPT_ARGS)
|
||||
return;
|
||||
|
||||
if (LUA_CallAction(A_CHECKSCRIPTARG, actor))
|
||||
return;
|
||||
|
||||
if (actor->script_args[locvar1])
|
||||
P_SetMobjState(actor, (statenum_t)locvar2);
|
||||
}
|
||||
|
||||
// Function: A_DoNPCSkid
|
||||
//
|
||||
// Description: Something that looks like a player is skidding.
|
||||
|
|
|
|||
|
|
@ -7182,6 +7182,8 @@ static void P_ConvertBinarySectorTypes(void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO: Check to make sure every object that sets flags such as ambush properly get converted to UDMF
|
||||
static void P_ConvertBinaryThingTypes(void)
|
||||
{
|
||||
size_t i;
|
||||
|
|
@ -7342,7 +7344,9 @@ static void P_ConvertBinaryThingTypes(void)
|
|||
mapthings[i].args[2] = !(mapthings[i].options & (MTF_AMBUSH|MTF_OBJECTSPECIAL));
|
||||
break;
|
||||
case 462: //Balloon
|
||||
mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
|
||||
mapthings[i].args[0] = !(mapthings[i].options & MTF_AMBUSH);
|
||||
mapthings[i].options &= ~MTF_AMBUSH;
|
||||
|
||||
if (mapthings[i].angle > 0)
|
||||
P_WriteSkincolor(((mapthings[i].angle - 1) % (numskincolors - 1)) + 1, &mapthings[i].stringargs[0]);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in a new issue