Adapt some reserved tags to UDMF

This commit is contained in:
MascaraSnake 2021-12-20 23:28:18 +01:00
parent db1f215327
commit 72e2c24fdb
6 changed files with 64 additions and 3 deletions

View file

@ -258,6 +258,11 @@ doom
sprite = "TRETA1";
width = 16;
height = 32;
arg0
{
title = "Death trigger tag";
type = 15;
}
}
111
{
@ -2704,6 +2709,11 @@ doom
sprite = "KOOPA0";
width = 16;
height = 48;
arg0
{
title = "Death trigger tag";
type = 15;
}
}
1807
{
@ -2711,6 +2721,11 @@ doom
sprite = "MAXEA0";
width = 8;
height = 16;
arg0
{
title = "Death trigger tag";
type = 15;
}
}
1808
{

View file

@ -899,7 +899,7 @@ state_t states[NUMSTATES] =
{SPR_TRET, FF_FULLBRIGHT|2, 7, {A_Pain}, 0, 0, S_TURRETSHOCK7}, // S_TURRETSHOCK6
{SPR_TRET, FF_FULLBRIGHT|3, 7, {NULL}, 0, 0, S_TURRETSHOCK8}, // S_TURRETSHOCK7
{SPR_TRET, FF_FULLBRIGHT|4, 7, {NULL}, 0, 0, S_TURRETSHOCK9}, // S_TURRETSHOCK8
{SPR_TRET, FF_FULLBRIGHT|4, 7, {A_LinedefExecute}, LE_TURRET, 0, S_XPLD1}, // S_TURRETSHOCK9
{SPR_TRET, FF_FULLBRIGHT|4, 7, {A_LinedefExecuteFromArg}, 0, 0, S_XPLD1}, // S_TURRETSHOCK9
{SPR_TURR, 0, 1, {A_Look}, 1, 0, S_TURRETPOPDOWN8}, // S_TURRETLOOK
{SPR_TURR, 0, 0, {A_FaceTarget}, 0, 0, S_TURRETPOPUP1}, // S_TURRETSEE

View file

@ -150,6 +150,7 @@ enum actionnum
A_BOSS3PATH,
A_BOSS3SHOCKTHINK,
A_LINEDEFEXECUTE,
A_LINEDEFEXECUTEFROMARG,
A_PLAYSEESOUND,
A_PLAYATTACKSOUND,
A_PLAYACTIVESOUND,
@ -409,6 +410,7 @@ void A_Boss3TakeDamage();
void A_Boss3Path();
void A_Boss3ShockThink();
void A_LinedefExecute();
void A_LinedefExecuteFromArg();
void A_PlaySeeSound();
void A_PlayAttackSound();
void A_PlayActiveSound();

View file

@ -173,6 +173,7 @@ void A_Boss3TakeDamage(mobj_t *actor);
void A_Boss3Path(mobj_t *actor);
void A_Boss3ShockThink(mobj_t *actor);
void A_LinedefExecute(mobj_t *actor);
void A_LinedefExecuteFromArg(mobj_t *actor);
void A_PlaySeeSound(mobj_t *actor);
void A_PlayAttackSound(mobj_t *actor);
void A_PlayActiveSound(mobj_t *actor);
@ -4049,7 +4050,8 @@ bossjustdie:
}
case MT_KOOPA:
{
EV_DoCeiling(LE_KOOPA, NULL, raiseToHighest);
if (mo->spawnpoint)
EV_DoCeiling(mo->spawnpoint->args[0], NULL, raiseToHighest);
return;
}
case MT_FANG:
@ -8307,6 +8309,38 @@ void A_LinedefExecute(mobj_t *actor)
P_LinedefExecute((INT16)tagnum, actor, actor->subsector->sector);
}
// Function: A_LinedefExecuteFromArg
//
// Description: Object's location is used to set the calling sector. The tag used is the spawnpoint mapthing's args[var1].
//
// var1 = mapthing arg to take tag from
// var2 = unused
//
void A_LinedefExecuteFromArg(mobj_t *actor)
{
INT32 tagnum;
INT32 locvar1 = var1;
if (LUA_CallAction(A_LINEDEFEXECUTEFROMARG, actor))
return;
if (!actor->spawnpoint)
return;
if (locvar1 < 0 || locvar1 > NUMMAPTHINGARGS)
{
CONS_Debug(DBG_GAMELOGIC, "A_LinedefExecuteFromArg: Invalid mapthing arg %d\n", locvar1);
return;
}
tagnum = actor->spawnpoint->args[locvar1];
CONS_Debug(DBG_GAMELOGIC, "A_LinedefExecuteFromArg: Running mobjtype %d's sector with tag %d\n", actor->type, tagnum);
// tag 32768 displayed in map editors is actually tag -32768, tag 32769 is -32767, 65535 is -1 etc.
P_LinedefExecute((INT16)tagnum, actor, actor->subsector->sector);
}
// Function: A_PlaySeeSound
//
// Description: Plays the object's seesound.

View file

@ -1387,7 +1387,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
if (player->bot && player->bot != BOT_MPAI)
return;
EV_DoElevator(LE_AXE, NULL, bridgeFall);
if (special->spawnpoint)
EV_DoElevator(special->spawnpoint->args[0], NULL, bridgeFall);
// scan the remaining thinkers to find koopa
for (th = thlist[THINK_MOBJ].next; th != &thlist[THINK_MOBJ]; th = th->next)

View file

@ -4873,6 +4873,9 @@ static void P_ConvertBinaryMap(void)
{
switch (mapthings[i].type)
{
case 110: //THZ Turret
mapthings[i].args[0] = LE_TURRET;
break;
case 754: //Push point
case 755: //Pull point
{
@ -5048,6 +5051,12 @@ static void P_ConvertBinaryMap(void)
case 1714: //Ideya anchor point
mapthings[i].args[0] = mapthings[i].extrainfo;
break;
case 1806: //King Bowser
mapthings[i].args[0] = LE_KOOPA;
break;
case 1807: //Axe
mapthings[i].args[0] = LE_AXE;
break;
default:
break;
}