mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 11:11:16 +00:00
- moved the access switch handlers out of checkhitswitch_*.
This commit is contained in:
parent
79c91b2538
commit
ffb471666d
2 changed files with 101 additions and 78 deletions
|
@ -154,6 +154,50 @@ void operateforcefields_d(DDukeActor* act, int low)
|
|||
operateforcefields_common(act, low, { DTILE_W_FORCEFIELD, DTILE_W_FORCEFIELD2, DTILE_W_FORCEFIELD3, DTILE_BIGFORCE });
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool checkaccessswitch_d(int snum, int switchpal, DDukeActor* act, walltype* wwal)
|
||||
{
|
||||
if (ps[snum].access_incs == 0)
|
||||
{
|
||||
if (switchpal == 0)
|
||||
{
|
||||
if ((ps[snum].got_access & 1))
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(70, &ps[snum]);
|
||||
}
|
||||
|
||||
else if (switchpal == 21)
|
||||
{
|
||||
if (ps[snum].got_access & 2)
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(71, &ps[snum]);
|
||||
}
|
||||
|
||||
else if (switchpal == 23)
|
||||
{
|
||||
if (ps[snum].got_access & 4)
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(72, &ps[snum]);
|
||||
}
|
||||
|
||||
if (ps[snum].access_incs == 1)
|
||||
{
|
||||
if (!act)
|
||||
ps[snum].access_wall = wwal;
|
||||
else
|
||||
ps[snum].access_spritenum = act;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// how NOT to implement switch animations...
|
||||
|
@ -202,39 +246,7 @@ bool checkhitswitch_d(int snum, walltype* wwal, DDukeActor *act)
|
|||
break;
|
||||
case DTILE_ACCESSSWITCH:
|
||||
case DTILE_ACCESSSWITCH2:
|
||||
if (ps[snum].access_incs == 0)
|
||||
{
|
||||
if (switchpal == 0)
|
||||
{
|
||||
if ((ps[snum].got_access & 1))
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(70, &ps[snum]);
|
||||
}
|
||||
|
||||
else if (switchpal == 21)
|
||||
{
|
||||
if (ps[snum].got_access & 2)
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(71, &ps[snum]);
|
||||
}
|
||||
|
||||
else if (switchpal == 23)
|
||||
{
|
||||
if (ps[snum].got_access & 4)
|
||||
ps[snum].access_incs = 1;
|
||||
else FTA(72, &ps[snum]);
|
||||
}
|
||||
|
||||
if (ps[snum].access_incs == 1)
|
||||
{
|
||||
if (!act)
|
||||
ps[snum].access_wall = wwal;
|
||||
else
|
||||
ps[snum].access_spritenum = act;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
checkaccessswitch_d(snum, switchpal, act, wwal);
|
||||
[[fallthrough]];
|
||||
case DTILE_DIPSWITCH2:
|
||||
case DTILE_DIPSWITCH2ON:
|
||||
|
|
|
@ -113,6 +113,61 @@ void operateforcefields_r(DDukeActor* act, int low)
|
|||
operateforcefields_common(act, low, { RTILE_BIGFORCE });
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool checkaccessswitch_r(int snum, int switchpal, DDukeActor* act, walltype* wwal)
|
||||
{
|
||||
if (ps[snum].access_incs == 0)
|
||||
{
|
||||
if (switchpal == 0)
|
||||
{
|
||||
if (ps[snum].keys[1])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(70, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act ? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
else if (switchpal == 21)
|
||||
{
|
||||
if (ps[snum].keys[2])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(71, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act ? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
else if (switchpal == 23)
|
||||
{
|
||||
if (ps[snum].keys[3])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(72, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act ? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
if (ps[snum].access_incs == 1)
|
||||
{
|
||||
if (!act)
|
||||
ps[snum].access_wall = wwal;
|
||||
else
|
||||
ps[snum].access_spritenum = act;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
@ -161,51 +216,7 @@ bool checkhitswitch_r(int snum, walltype* wwal, DDukeActor* act)
|
|||
break;
|
||||
case RTILE_ACCESSSWITCH:
|
||||
case RTILE_ACCESSSWITCH2:
|
||||
if (ps[snum].access_incs == 0)
|
||||
{
|
||||
if (switchpal == 0)
|
||||
{
|
||||
if (ps[snum].keys[1])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(70, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
else if (switchpal == 21)
|
||||
{
|
||||
if (ps[snum].keys[2])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(71, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act ? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
else if (switchpal == 23)
|
||||
{
|
||||
if (ps[snum].keys[3])
|
||||
ps[snum].access_incs = 1;
|
||||
else
|
||||
{
|
||||
FTA(72, &ps[snum]);
|
||||
if (isRRRA()) S_PlayActorSound(99, act ? act : ps[snum].GetActor());
|
||||
}
|
||||
}
|
||||
|
||||
if (ps[snum].access_incs == 1)
|
||||
{
|
||||
if (!act)
|
||||
ps[snum].access_wall = wwal;
|
||||
else
|
||||
ps[snum].access_spritenum = act;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
checkaccessswitch_r(snum, switchpal, act, wwal);
|
||||
goto goOn1;
|
||||
|
||||
case RTILE_MULTISWITCH2:
|
||||
|
|
Loading…
Reference in a new issue