Added Wall effect tag 20

This commit is contained in:
sirlemonhead 2019-11-15 21:45:54 +00:00 committed by Christoph Oelckers
parent 87ef1331d9
commit 69a6715997

View file

@ -1452,23 +1452,29 @@ void runlist_ProcessWallTag(int nWall, short lotag, short hitag)
int var_38 = 0; // TODO - FIXME CHECKME. This doesn't seem to be initialised in the ASM? int var_38 = 0; // TODO - FIXME CHECKME. This doesn't seem to be initialised in the ASM?
int var_2C; int var_2C;
int ebp = 0; // TODO - FIXME CHECKME. This doesn't seem to be initialised in the ASM?
int var_30;
int eax = lotag / 1000; int eax = lotag / 1000;
if (!eax) { if (!eax) {
eax = 1; eax = 1;
} }
int edx = lotag % 1000; int nEffectTag = lotag % 1000;
int edi = edx; // int edi = nEffectTag;
eax <<= 2; eax <<= 2;
switch (edx) switch (nEffectTag)
{ {
default:
return;
case 1: case 1:
{ {
int nWallFace = BuildWallFace(nChannel, nWall, 2, wall[nWall].picnum, wall[nWall].picnum + 1); int nWallFace = BuildWallFace(nChannel, nWall, 2, wall[nWall].picnum, wall[nWall].picnum + 1);
runlist_AddRunRec(sRunChannels[nChannel].a, nWallFace); runlist_AddRunRec(sRunChannels[nChannel].a, nWallFace);
int nSwitch = BuildSwPressWall(nChannel, BuildLink(2, edi, 0), nWall); int nSwitch = BuildSwPressWall(nChannel, BuildLink(2, nEffectTag, 0), nWall);
runlist_AddRunRec(sRunChannels[nChannel].a, nSwitch); runlist_AddRunRec(sRunChannels[nChannel].a, nSwitch);
return; return;
@ -1620,8 +1626,29 @@ void runlist_ProcessWallTag(int nWall, short lotag, short hitag)
return; return;
} }
case 21: case 20:
{ {
short nStart = nWall;
while (1)
{
nWall = wall[nWall].point2;
if (nStart == nWall) {
break;
}
var_30 = ebp;
ebp = nWall;
}
short nWall2 = wall[nStart].point2;
short nWall3 = wall[nWall2].point2;
short nWall4 = wall[nWall3].point2;
int nSlide = BuildSlide(nChannel, nStart, ebp, var_30, nWall2, nWall3, nWall4);
runlist_AddRunRec(sRunChannels[nChannel].a, nSlide);
return; return;
} }