mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-02-28 22:21:19 +00:00
- the remaining loops in sectors_d.cpp
This commit is contained in:
parent
7c6ea9cff7
commit
afd059d6a1
1 changed files with 43 additions and 46 deletions
|
@ -950,7 +950,7 @@ void checkplayerhurt_d(struct player_struct* p, const Collision& coll)
|
||||||
|
|
||||||
bool checkhitceiling_d(int sn)
|
bool checkhitceiling_d(int sn)
|
||||||
{
|
{
|
||||||
int i, j;
|
int j;
|
||||||
|
|
||||||
switch (sector[sn].ceilingpicnum)
|
switch (sector[sn].ceilingpicnum)
|
||||||
{
|
{
|
||||||
|
@ -985,16 +985,16 @@ bool checkhitceiling_d(int sn)
|
||||||
|
|
||||||
if (!sector[sn].hitag)
|
if (!sector[sn].hitag)
|
||||||
{
|
{
|
||||||
SectIterator it(sn);
|
DukeSectIterator it(sn);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].picnum == SECTOREFFECTOR && sprite[i].lotag == 12)
|
if (act->s.picnum == SECTOREFFECTOR && act->s.lotag == 12)
|
||||||
{
|
{
|
||||||
StatIterator it1(STAT_EFFECTOR);
|
DukeStatIterator it1(STAT_EFFECTOR);
|
||||||
while ((j = it1.NextIndex()) >= 0)
|
while (auto act2 = it1.Next())
|
||||||
{
|
{
|
||||||
if (sprite[j].hitag == sprite[i].hitag)
|
if (act2->s.hitag == act->s.hitag)
|
||||||
hittype[j].temp_data[3] = 1;
|
act2->temp_data[3] = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1002,13 +1002,13 @@ bool checkhitceiling_d(int sn)
|
||||||
}
|
}
|
||||||
|
|
||||||
j = krand() & 1;
|
j = krand() & 1;
|
||||||
StatIterator it(STAT_EFFECTOR);
|
DukeStatIterator it(STAT_EFFECTOR);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].hitag == (sector[sn].hitag) && sprite[i].lotag == 3)
|
if (act->s.hitag == (sector[sn].hitag) && act->s.lotag == 3)
|
||||||
{
|
{
|
||||||
hittype[i].temp_data[2] = j;
|
act->temp_data[2] = j;
|
||||||
hittype[i].temp_data[4] = 1;
|
act->temp_data[4] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1263,12 +1263,6 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
case HYDRENT:
|
case HYDRENT:
|
||||||
s->picnum = BROKEFIREHYDRENT;
|
s->picnum = BROKEFIREHYDRENT;
|
||||||
spawn(targ, TOILETWATER);
|
spawn(targ, TOILETWATER);
|
||||||
|
|
||||||
// for(k=0;k<5;k++)
|
|
||||||
// {
|
|
||||||
// j = EGS(s->sectnum,s->x,s->y,s->z-(krand()%(48<<8)),SCRAP3+(krand()&3),-8,48,48,krand()&2047,(krand()&63)+64,-(krand()&4095)-(s->zvel>>2),i,5);
|
|
||||||
// sprite[j].pal = 2;
|
|
||||||
// }
|
|
||||||
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
S_PlayActorSound(GLASS_HEAVYBREAK, targ);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1391,19 +1385,19 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
if (pspr->picnum != FREEZEBLAST)
|
if (pspr->picnum != FREEZEBLAST)
|
||||||
//if (actortype[s->picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
|
//if (actortype[s->picnum] == 0) //TRANSITIONAL. Cannot be done right with EDuke mess backing the engine.
|
||||||
{
|
{
|
||||||
j = fi.spawn(proj->GetIndex(), JIBS6);
|
auto spawned = spawn(proj, JIBS6);
|
||||||
if (pspr->pal == 6)
|
if (pspr->pal == 6)
|
||||||
sprite[j].pal = 6;
|
spawned->s.pal = 6;
|
||||||
sprite[j].z += (4 << 8);
|
spawned->s.z += (4 << 8);
|
||||||
sprite[j].xvel = 16;
|
spawned->s.xvel = 16;
|
||||||
sprite[j].xrepeat = sprite[j].yrepeat = 24;
|
spawned->s.xrepeat = spawned->s.yrepeat = 24;
|
||||||
sprite[j].ang += 32 - (krand() & 63);
|
spawned->s.ang += 32 - (krand() & 63);
|
||||||
}
|
}
|
||||||
|
|
||||||
j = pspr->owner;
|
auto Owner = proj->GetOwner();
|
||||||
|
|
||||||
if (j >= 0 && sprite[j].picnum == APLAYER && s->picnum != ROTATEGUN && s->picnum != DRONE)
|
if (Owner && Owner->s.picnum == APLAYER && s->picnum != ROTATEGUN && s->picnum != DRONE)
|
||||||
if (ps[sprite[j].yvel].curr_weapon == SHOTGUN_WEAPON)
|
if (ps[Owner->PlayerIndex()].curr_weapon == SHOTGUN_WEAPON)
|
||||||
{
|
{
|
||||||
fi.shoot(targ, BLOODSPLAT3);
|
fi.shoot(targ, BLOODSPLAT3);
|
||||||
fi.shoot(targ, BLOODSPLAT1);
|
fi.shoot(targ, BLOODSPLAT1);
|
||||||
|
@ -1417,7 +1411,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
s->ang = (pspr->ang + 1024) & 2047;
|
s->ang = (pspr->ang + 1024) & 2047;
|
||||||
s->xvel = -(pspr->extra << 2);
|
s->xvel = -(pspr->extra << 2);
|
||||||
short j = s->sectnum;
|
short j = s->sectnum;
|
||||||
pushmove(&s->x, &s->y, &s->z, &j, 128L, (4L << 8), (4L << 8), CLIPMASK0);
|
pushmove(&s->x, &s->y, &s->z, &j, 128L, (4 << 8), (4 << 8), CLIPMASK0);
|
||||||
if (j != s->sectnum && j >= 0 && j < MAXSECTORS)
|
if (j != s->sectnum && j >= 0 && j < MAXSECTORS)
|
||||||
changespritesect(targ, j);
|
changespritesect(targ, j);
|
||||||
}
|
}
|
||||||
|
@ -1437,19 +1431,21 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
|
||||||
|
|
||||||
|
|
||||||
int hitpic = pspr->picnum;
|
int hitpic = pspr->picnum;
|
||||||
if (sprite[pspr->owner].picnum == APLAYER)
|
auto Owner = proj->GetOwner();
|
||||||
|
if (Owner && Owner->s.picnum == APLAYER)
|
||||||
{
|
{
|
||||||
if (s->picnum == APLAYER && ud.coop != 0 && ud.ffire == 0)
|
if (s->picnum == APLAYER && ud.coop != 0 && ud.ffire == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (isWorldTour() && hitpic == FIREBALL && sprite[s->owner].picnum != FIREBALL)
|
auto tOwner = targ->GetOwner();
|
||||||
|
if (isWorldTour() && hitpic == FIREBALL && tOwner && tOwner->s.picnum != FIREBALL)
|
||||||
hitpic = FLAMETHROWERFLAME;
|
hitpic = FLAMETHROWERFLAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
targ->picnum = hitpic;
|
targ->picnum = hitpic;
|
||||||
targ->extra += pspr->extra;
|
targ->extra += pspr->extra;
|
||||||
targ->ang = pspr->ang;
|
targ->ang = pspr->ang;
|
||||||
targ->owner = pspr->owner;
|
targ->SetHitOwner(Owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->statnum == 10)
|
if (s->statnum == 10)
|
||||||
|
@ -1704,12 +1700,13 @@ void checksectors_d(int snum)
|
||||||
case VIEWSCREEN:
|
case VIEWSCREEN:
|
||||||
case VIEWSCREEN2:
|
case VIEWSCREEN2:
|
||||||
{
|
{
|
||||||
StatIterator it(STAT_ACTOR);
|
DukeStatIterator it(STAT_ACTOR);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto acti = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].picnum == CAMERA1 && sprite[i].yvel == 0 && neartagsprite->s.hitag == sprite[i].lotag)
|
auto spr = &acti->s;
|
||||||
|
if (spr->picnum == CAMERA1 && spr->yvel == 0 && neartagsprite->s.hitag == spr->lotag)
|
||||||
{
|
{
|
||||||
sprite[i].yvel = 1; //Using this camera
|
spr->yvel = 1; //Using this camera
|
||||||
if (snum == screenpeek) S_PlaySound(MONITOR_ACTIVE);
|
if (snum == screenpeek) S_PlaySound(MONITOR_ACTIVE);
|
||||||
|
|
||||||
neartagsprite->s.owner = i;
|
neartagsprite->s.owner = i;
|
||||||
|
@ -1718,7 +1715,7 @@ void checksectors_d(int snum)
|
||||||
|
|
||||||
|
|
||||||
j = p->cursectnum;
|
j = p->cursectnum;
|
||||||
p->cursectnum = sprite[i].sectnum;
|
p->cursectnum = spr->sectnum;
|
||||||
setpal(p);
|
setpal(p);
|
||||||
p->cursectnum = j;
|
p->cursectnum = j;
|
||||||
|
|
||||||
|
@ -1741,10 +1738,10 @@ void checksectors_d(int snum)
|
||||||
updatesector(p->posx, p->posy, &p->cursectnum);
|
updatesector(p->posx, p->posy, &p->cursectnum);
|
||||||
setpal(p);
|
setpal(p);
|
||||||
|
|
||||||
StatIterator it(STAT_ACTOR);
|
DukeStatIterator it(STAT_ACTOR);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].picnum == CAMERA1) sprite[i].yvel = 0;
|
if (act->s.picnum == CAMERA1) act->s.yvel = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (p->newowner >= 0)
|
else if (p->newowner >= 0)
|
||||||
|
@ -1783,10 +1780,10 @@ void checksectors_d(int snum)
|
||||||
|
|
||||||
if (neartagsector >= 0 && (sector[neartagsector].lotag & 16384) == 0 && isanearoperator(sector[neartagsector].lotag))
|
if (neartagsector >= 0 && (sector[neartagsector].lotag & 16384) == 0 && isanearoperator(sector[neartagsector].lotag))
|
||||||
{
|
{
|
||||||
SectIterator it(neartagsector);
|
DukeSectIterator it(neartagsector);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].picnum == ACTIVATOR || sprite[i].picnum == MASTERSWITCH)
|
if (act->s.picnum == ACTIVATOR || act->s.picnum == MASTERSWITCH)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
operatesectors(neartagsector, p->GetActor());
|
operatesectors(neartagsector, p->GetActor());
|
||||||
|
@ -1795,10 +1792,10 @@ void checksectors_d(int snum)
|
||||||
{
|
{
|
||||||
if (isanunderoperator(sector[p->GetActor()->s.sectnum].lotag))
|
if (isanunderoperator(sector[p->GetActor()->s.sectnum].lotag))
|
||||||
{
|
{
|
||||||
SectIterator it(p->GetActor()->s.sectnum);
|
DukeSectIterator it(p->GetActor()->s.sectnum);
|
||||||
while ((i = it.NextIndex()) >= 0)
|
while (auto act = it.Next())
|
||||||
{
|
{
|
||||||
if (sprite[i].picnum == ACTIVATOR || sprite[i].picnum == MASTERSWITCH) return;
|
if (act->s.picnum == ACTIVATOR || act->s.picnum == MASTERSWITCH) return;
|
||||||
}
|
}
|
||||||
operatesectors(p->GetActor()->s.sectnum, p->GetActor());
|
operatesectors(p->GetActor()->s.sectnum, p->GetActor());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue