mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 12:31:32 +00:00
Adapt linedef type 434 to UDMF
This commit is contained in:
parent
17bd20a15e
commit
ea1d442f31
3 changed files with 42 additions and 8 deletions
|
@ -2955,6 +2955,22 @@ udmf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
434
|
||||||
|
{
|
||||||
|
title = "Award Power-Up";
|
||||||
|
prefix = "(434)";
|
||||||
|
stringarg0
|
||||||
|
{
|
||||||
|
title = "Power";
|
||||||
|
type = 2;
|
||||||
|
}
|
||||||
|
stringarg1
|
||||||
|
{
|
||||||
|
title = "Duration/Amount";
|
||||||
|
type = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
437
|
437
|
||||||
{
|
{
|
||||||
title = "Disable Player Control";
|
title = "Disable Player Control";
|
||||||
|
|
|
@ -1292,7 +1292,6 @@ static void P_LoadSidedefs(UINT8 *data)
|
||||||
case 334: // Trigger linedef executor: Object dye - Continuous
|
case 334: // Trigger linedef executor: Object dye - Continuous
|
||||||
case 335: // Trigger linedef executor: Object dye - Each time
|
case 335: // Trigger linedef executor: Object dye - Each time
|
||||||
case 336: // Trigger linedef executor: Object dye - Once
|
case 336: // Trigger linedef executor: Object dye - Once
|
||||||
case 434: // Custom Power
|
|
||||||
case 461: // Spawns an object on the map based on texture offsets
|
case 461: // Spawns an object on the map based on texture offsets
|
||||||
{
|
{
|
||||||
char process[8*3+1];
|
char process[8*3+1];
|
||||||
|
@ -1314,6 +1313,7 @@ static void P_LoadSidedefs(UINT8 *data)
|
||||||
case 332: // Trigger linedef executor: Skin - Each time
|
case 332: // Trigger linedef executor: Skin - Each time
|
||||||
case 333: // Trigger linedef executor: Skin - Once
|
case 333: // Trigger linedef executor: Skin - Once
|
||||||
case 425: // Calls P_SetMobjState on calling mobj
|
case 425: // Calls P_SetMobjState on calling mobj
|
||||||
|
case 434: // Custom Power
|
||||||
case 442: // Calls P_SetMobjState on mobjs of a given type in the tagged sectors
|
case 442: // Calls P_SetMobjState on mobjs of a given type in the tagged sectors
|
||||||
case 443: // Calls a named Lua function
|
case 443: // Calls a named Lua function
|
||||||
case 459: // Control text prompt (named tag)
|
case 459: // Control text prompt (named tag)
|
||||||
|
@ -3823,6 +3823,28 @@ static void P_ConvertBinaryMap(void)
|
||||||
case 433: //Enable/disable gravity flip
|
case 433: //Enable/disable gravity flip
|
||||||
lines[i].args[0] = !!(lines[i].flags & ML_NOCLIMB);
|
lines[i].args[0] = !!(lines[i].flags & ML_NOCLIMB);
|
||||||
break;
|
break;
|
||||||
|
case 434: //Award power-up
|
||||||
|
if (sides[lines[i].sidenum[0]].text)
|
||||||
|
{
|
||||||
|
lines[i].stringargs[0] = Z_Malloc(strlen(sides[lines[i].sidenum[0]].text) + 1, PU_LEVEL, NULL);
|
||||||
|
M_Memcpy(lines[i].stringargs[0], sides[lines[i].sidenum[0]].text, strlen(sides[lines[i].sidenum[0]].text) + 1);
|
||||||
|
}
|
||||||
|
if (lines[i].sidenum[1] != 0xffff && lines[i].flags & ML_BLOCKMONSTERS) // read power from back sidedef
|
||||||
|
{
|
||||||
|
lines[i].stringargs[1] = Z_Malloc(strlen(sides[lines[i].sidenum[1]].text) + 1, PU_LEVEL, NULL);
|
||||||
|
M_Memcpy(lines[i].stringargs[1], sides[lines[i].sidenum[1]].text, strlen(sides[lines[i].sidenum[1]].text) + 1);
|
||||||
|
}
|
||||||
|
else if (lines[i].flags & ML_NOCLIMB) // 'Infinite'
|
||||||
|
{
|
||||||
|
lines[i].stringargs[1] = Z_Malloc(3, PU_LEVEL, NULL);
|
||||||
|
M_Memcpy(lines[i].stringargs[1], "-1", 3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lines[i].stringargs[1] = Z_Malloc(7, PU_LEVEL, NULL);
|
||||||
|
snprintf(lines[i].stringargs[1], 7, "%d", sides[lines[i].sidenum[0]].textureoffset >> FRACBITS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 435: //Change plane scroller direction
|
case 435: //Change plane scroller direction
|
||||||
lines[i].args[0] = tag;
|
lines[i].args[0] = tag;
|
||||||
lines[i].args[1] = R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS;
|
lines[i].args[1] = R_PointToDist2(lines[i].v2->x, lines[i].v2->y, lines[i].v1->x, lines[i].v1->y) >> FRACBITS;
|
||||||
|
|
10
src/p_spec.c
10
src/p_spec.c
|
@ -2669,14 +2669,10 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
|
||||||
{
|
{
|
||||||
mobj_t *dummy = P_SpawnMobj(mo->x, mo->y, mo->z, MT_NULL);
|
mobj_t *dummy = P_SpawnMobj(mo->x, mo->y, mo->z, MT_NULL);
|
||||||
|
|
||||||
var1 = sides[line->sidenum[0]].toptexture; //(line->dx>>FRACBITS)-1;
|
var1 = line->stringargs[0] ? get_number(line->stringargs[0]) : 0;
|
||||||
|
var2 = line->stringargs[1] ? get_number(line->stringargs[1]) : 0;
|
||||||
if (line->sidenum[1] != 0xffff && line->flags & ML_BLOCKMONSTERS) // read power from back sidedef
|
if (var2 == -1) // 'Infinite'
|
||||||
var2 = sides[line->sidenum[1]].toptexture;
|
|
||||||
else if (line->flags & ML_NOCLIMB) // 'Infinite'
|
|
||||||
var2 = UINT16_MAX;
|
var2 = UINT16_MAX;
|
||||||
else
|
|
||||||
var2 = sides[line->sidenum[0]].textureoffset>>FRACBITS;
|
|
||||||
|
|
||||||
P_SetTarget(&dummy->target, mo);
|
P_SetTarget(&dummy->target, mo);
|
||||||
A_CustomPower(dummy);
|
A_CustomPower(dummy);
|
||||||
|
|
Loading…
Reference in a new issue