by Graf Zahl » Fri May 13, 2005 3:14 am
Since Strife's railing flag can't be accessed in the other games, how about this:
Code: Select all
case PCD_SETLINEBLOCKING:
{
int line = -1;
while ((line = P_FindLineFromID (STACK(2), line)) >= 0)
{
switch (STACK(1))
{
case BLOCK_NOTHING:
lines[line].flags &= ~(ML_BLOCKING|ML_BLOCKEVERYTHING|ML_RAILING);
break;
case BLOCK_CREATURES:
default:
lines[line].flags &= ~(ML_BLOCKEVERYTHING|ML_RAILING);
lines[line].flags |= ML_BLOCKING;
break;
case BLOCK_EVERYTHING:
lines[line].flags &= ~(ML_RAILING);
lines[line].flags |= ML_BLOCKING|ML_BLOCKEVERYTHING;
break;
case BLOCK_RAILING:
lines[line].flags &= ~(ML_BLOCKEVERYTHING);
lines[line].flags |= ML_RAILING|ML_BLOCKING;
break;
}
}
sp -= 2;
}
break;
Of course Strife's lower side hack should be restricted to Strife then (and best to non-Hexen format maps as well!)
Since Strife's railing flag can't be accessed in the other games, how about this:
[code]
case PCD_SETLINEBLOCKING:
{
int line = -1;
while ((line = P_FindLineFromID (STACK(2), line)) >= 0)
{
switch (STACK(1))
{
case BLOCK_NOTHING:
lines[line].flags &= ~(ML_BLOCKING|ML_BLOCKEVERYTHING|ML_RAILING);
break;
case BLOCK_CREATURES:
default:
lines[line].flags &= ~(ML_BLOCKEVERYTHING|ML_RAILING);
lines[line].flags |= ML_BLOCKING;
break;
case BLOCK_EVERYTHING:
lines[line].flags &= ~(ML_RAILING);
lines[line].flags |= ML_BLOCKING|ML_BLOCKEVERYTHING;
break;
case BLOCK_RAILING:
lines[line].flags &= ~(ML_BLOCKEVERYTHING);
lines[line].flags |= ML_RAILING|ML_BLOCKING;
break;
}
}
sp -= 2;
}
break;
[/code]
Of course Strife's lower side hack should be restricted to Strife then (and best to non-Hexen format maps as well!)