mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
- movetouchplate, moveooz, movecanwithsomething.
# Conflicts: # source/games/duke/src/funct.h
This commit is contained in:
parent
b7f26c064d
commit
e001b3117f
4 changed files with 38 additions and 42 deletions
|
@ -1109,10 +1109,10 @@ void movedoorshock(DDukeActor* actor)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void movetouchplate(int i, int plate)
|
||||
void movetouchplate(DDukeActor* actor, int plate)
|
||||
{
|
||||
auto s = &sprite[i];
|
||||
auto t = &hittype[i].temp_data[0];
|
||||
auto s = &actor->s;
|
||||
int* t = &actor->temp_data[0];
|
||||
int sect = s->sectnum;
|
||||
int x;
|
||||
int p;
|
||||
|
@ -1176,14 +1176,13 @@ void movetouchplate(int i, int plate)
|
|||
|
||||
if (t[1] == 1)
|
||||
{
|
||||
StatIterator it(STAT_STANDABLE);
|
||||
int j;
|
||||
while ((j = it.NextIndex()) >= 0)
|
||||
DukeStatIterator it(STAT_STANDABLE);
|
||||
while (auto act2 = it.Next())
|
||||
{
|
||||
if (j != i && sprite[j].picnum == plate && sprite[j].lotag == s->lotag)
|
||||
if (act2 != actor && act2->s.picnum == plate && act2->s.lotag == s->lotag)
|
||||
{
|
||||
hittype[j].temp_data[1] = 1;
|
||||
hittype[j].temp_data[3] = t[3];
|
||||
act2->temp_data[1] = 1;
|
||||
act2->temp_data[3] = t[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1195,15 +1194,15 @@ void movetouchplate(int i, int plate)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
||||
void moveooz(DDukeActor* actor, int seenine, int seeninedead, int ooz, int explosion)
|
||||
{
|
||||
auto s = &sprite[i];
|
||||
auto t = &hittype[i].temp_data[0];
|
||||
auto s = &actor->s;
|
||||
int* t = &actor->temp_data[0];
|
||||
int j;
|
||||
if (s->shade != -32 && s->shade != -33)
|
||||
{
|
||||
if (s->xrepeat)
|
||||
j = (fi.ifhitbyweapon(&hittype[i]) >= 0);
|
||||
j = (fi.ifhitbyweapon(actor) >= 0);
|
||||
else
|
||||
j = 0;
|
||||
|
||||
|
@ -1213,11 +1212,10 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
|||
|
||||
t[3] = 1;
|
||||
|
||||
StatIterator it(STAT_STANDABLE);
|
||||
int j;
|
||||
while ((j = it.NextIndex()) >= 0)
|
||||
DukeStatIterator it(STAT_STANDABLE);
|
||||
while (auto act2 = it.Next())
|
||||
{
|
||||
auto ss = &sprite[j];
|
||||
auto ss = &act2->s;
|
||||
if (s->hitag == ss->hitag && (ss->picnum == seenine || ss->picnum == ooz))
|
||||
ss->shade = -32;
|
||||
}
|
||||
|
@ -1239,18 +1237,18 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
|||
{
|
||||
if (s->xrepeat > 0)
|
||||
{
|
||||
hittype[i].temp_data[2]++;
|
||||
if (hittype[i].temp_data[2] == 3)
|
||||
actor->temp_data[2]++;
|
||||
if (actor->temp_data[2] == 3)
|
||||
{
|
||||
if (s->picnum == ooz)
|
||||
{
|
||||
hittype[i].temp_data[2] = 0;
|
||||
detonate(i, explosion);
|
||||
actor->temp_data[2] = 0;
|
||||
detonate(actor, explosion);
|
||||
return;
|
||||
}
|
||||
if (s->picnum != (seeninedead + 1))
|
||||
{
|
||||
hittype[i].temp_data[2] = 0;
|
||||
actor->temp_data[2] = 0;
|
||||
|
||||
if (s->picnum == seeninedead) s->picnum++;
|
||||
else if (s->picnum == seenine)
|
||||
|
@ -1258,13 +1256,13 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
|||
}
|
||||
else
|
||||
{
|
||||
detonate(i, explosion);
|
||||
detonate(actor, explosion);
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
detonate(i, explosion);
|
||||
detonate(actor, explosion);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1276,20 +1274,18 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void movecanwithsomething(int i)
|
||||
void movecanwithsomething(DDukeActor* actor)
|
||||
{
|
||||
auto s = &sprite[i];
|
||||
makeitfall(i);
|
||||
int j = fi.ifhitbyweapon(&hittype[i]);
|
||||
makeitfall(actor);
|
||||
int j = fi.ifhitbyweapon(actor);
|
||||
if (j >= 0)
|
||||
{
|
||||
S_PlayActorSound(VENT_BUST, i);
|
||||
S_PlayActorSound(VENT_BUST, actor);
|
||||
for (j = 0; j < 10; j++)
|
||||
RANDOMSCRAP(s, i);
|
||||
RANDOMSCRAP(actor);
|
||||
|
||||
if (s->lotag) fi.spawn(i, s->lotag);
|
||||
|
||||
deletesprite(i);
|
||||
if (actor->s.lotag) spawn(actor, actor->s.lotag);
|
||||
deletesprite(actor);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1530,7 +1530,7 @@ void movestandables_d(void)
|
|||
|
||||
else if (picnum == OOZFILTER || picnum == SEENINE || picnum == SEENINEDEAD || picnum == (SEENINEDEAD + 1))
|
||||
{
|
||||
moveooz(i, SEENINE, SEENINEDEAD, OOZFILTER, EXPLOSION2);
|
||||
moveooz(&hittype[i], SEENINE, SEENINEDEAD, OOZFILTER, EXPLOSION2);
|
||||
}
|
||||
|
||||
else if (picnum == MASTERSWITCH)
|
||||
|
@ -1570,12 +1570,12 @@ void movestandables_d(void)
|
|||
|
||||
else if (picnum == TOUCHPLATE)
|
||||
{
|
||||
movetouchplate(i, TOUCHPLATE);
|
||||
movetouchplate(&hittype[i], TOUCHPLATE);
|
||||
}
|
||||
|
||||
else if (isIn(picnum, CANWITHSOMETHING, CANWITHSOMETHING2, CANWITHSOMETHING3, CANWITHSOMETHING4))
|
||||
{
|
||||
movecanwithsomething(i);
|
||||
movecanwithsomething(&hittype[i]);
|
||||
}
|
||||
|
||||
else if (isIn(picnum,
|
||||
|
|
|
@ -1079,7 +1079,7 @@ void movestandables_r(void)
|
|||
|
||||
else if (picnum == OOZFILTER || picnum == SEENINE || picnum == SEENINEDEAD || picnum == (SEENINEDEAD + 1))
|
||||
{
|
||||
moveooz(i, SEENINE, SEENINEDEAD, OOZFILTER, EXPLOSION2);
|
||||
moveooz(&hittype[i], SEENINE, SEENINEDEAD, OOZFILTER, EXPLOSION2);
|
||||
}
|
||||
|
||||
else if (picnum == MASTERSWITCH)
|
||||
|
@ -1109,12 +1109,12 @@ void movestandables_r(void)
|
|||
|
||||
else if (picnum == TOUCHPLATE)
|
||||
{
|
||||
movetouchplate(i, TOUCHPLATE);
|
||||
movetouchplate(&hittype[i], TOUCHPLATE);
|
||||
}
|
||||
|
||||
else if (picnum == CANWITHSOMETHING)
|
||||
{
|
||||
movecanwithsomething(i);
|
||||
movecanwithsomething(&hittype[i]);
|
||||
}
|
||||
|
||||
else if (isIn(picnum,
|
||||
|
|
|
@ -38,12 +38,12 @@ void movemasterswitch(DDukeActor* i, int spectype1, int spectype2);
|
|||
void movetrash(DDukeActor* i);
|
||||
void movewaterdrip(DDukeActor* i, int drip);
|
||||
void movedoorshock(DDukeActor* i);
|
||||
void movetouchplate(int i, int plate);
|
||||
void movecanwithsomething(int i);
|
||||
void movetouchplate(DDukeActor* i, int plate);
|
||||
void movecanwithsomething(DDukeActor* i);
|
||||
void bounce(int i);
|
||||
void movetongue(int i, int tongue, int jaw);
|
||||
void rpgexplode(int i, int j, const vec3_t& pos, int EXPLOSION2, int EXPLOSION2BOT, int newextra, int playsound);
|
||||
void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion);
|
||||
void moveooz(DDukeActor* i, int seenine, int seeninedead, int ooz, int explosion);
|
||||
void lotsofstuff(DDukeActor* s, int n, int spawntype);
|
||||
bool respawnmarker(int i, int yellow, int green);
|
||||
bool rat(int i, bool makesound);
|
||||
|
|
Loading…
Reference in a new issue