mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-31 12:30:40 +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 s = &actor->s;
|
||||||
auto t = &hittype[i].temp_data[0];
|
int* t = &actor->temp_data[0];
|
||||||
int sect = s->sectnum;
|
int sect = s->sectnum;
|
||||||
int x;
|
int x;
|
||||||
int p;
|
int p;
|
||||||
|
@ -1176,14 +1176,13 @@ void movetouchplate(int i, int plate)
|
||||||
|
|
||||||
if (t[1] == 1)
|
if (t[1] == 1)
|
||||||
{
|
{
|
||||||
StatIterator it(STAT_STANDABLE);
|
DukeStatIterator it(STAT_STANDABLE);
|
||||||
int j;
|
while (auto act2 = it.Next())
|
||||||
while ((j = it.NextIndex()) >= 0)
|
|
||||||
{
|
{
|
||||||
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;
|
act2->temp_data[1] = 1;
|
||||||
hittype[j].temp_data[3] = t[3];
|
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 s = &actor->s;
|
||||||
auto t = &hittype[i].temp_data[0];
|
int* t = &actor->temp_data[0];
|
||||||
int j;
|
int j;
|
||||||
if (s->shade != -32 && s->shade != -33)
|
if (s->shade != -32 && s->shade != -33)
|
||||||
{
|
{
|
||||||
if (s->xrepeat)
|
if (s->xrepeat)
|
||||||
j = (fi.ifhitbyweapon(&hittype[i]) >= 0);
|
j = (fi.ifhitbyweapon(actor) >= 0);
|
||||||
else
|
else
|
||||||
j = 0;
|
j = 0;
|
||||||
|
|
||||||
|
@ -1213,11 +1212,10 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
||||||
|
|
||||||
t[3] = 1;
|
t[3] = 1;
|
||||||
|
|
||||||
StatIterator it(STAT_STANDABLE);
|
DukeStatIterator it(STAT_STANDABLE);
|
||||||
int j;
|
while (auto act2 = it.Next())
|
||||||
while ((j = it.NextIndex()) >= 0)
|
|
||||||
{
|
{
|
||||||
auto ss = &sprite[j];
|
auto ss = &act2->s;
|
||||||
if (s->hitag == ss->hitag && (ss->picnum == seenine || ss->picnum == ooz))
|
if (s->hitag == ss->hitag && (ss->picnum == seenine || ss->picnum == ooz))
|
||||||
ss->shade = -32;
|
ss->shade = -32;
|
||||||
}
|
}
|
||||||
|
@ -1239,18 +1237,18 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
||||||
{
|
{
|
||||||
if (s->xrepeat > 0)
|
if (s->xrepeat > 0)
|
||||||
{
|
{
|
||||||
hittype[i].temp_data[2]++;
|
actor->temp_data[2]++;
|
||||||
if (hittype[i].temp_data[2] == 3)
|
if (actor->temp_data[2] == 3)
|
||||||
{
|
{
|
||||||
if (s->picnum == ooz)
|
if (s->picnum == ooz)
|
||||||
{
|
{
|
||||||
hittype[i].temp_data[2] = 0;
|
actor->temp_data[2] = 0;
|
||||||
detonate(i, explosion);
|
detonate(actor, explosion);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (s->picnum != (seeninedead + 1))
|
if (s->picnum != (seeninedead + 1))
|
||||||
{
|
{
|
||||||
hittype[i].temp_data[2] = 0;
|
actor->temp_data[2] = 0;
|
||||||
|
|
||||||
if (s->picnum == seeninedead) s->picnum++;
|
if (s->picnum == seeninedead) s->picnum++;
|
||||||
else if (s->picnum == seenine)
|
else if (s->picnum == seenine)
|
||||||
|
@ -1258,13 +1256,13 @@ void moveooz(int i, int seenine, int seeninedead, int ooz, int explosion)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
detonate(i, explosion);
|
detonate(actor, explosion);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
detonate(i, explosion);
|
detonate(actor, explosion);
|
||||||
return;
|
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(actor);
|
||||||
makeitfall(i);
|
int j = fi.ifhitbyweapon(actor);
|
||||||
int j = fi.ifhitbyweapon(&hittype[i]);
|
|
||||||
if (j >= 0)
|
if (j >= 0)
|
||||||
{
|
{
|
||||||
S_PlayActorSound(VENT_BUST, i);
|
S_PlayActorSound(VENT_BUST, actor);
|
||||||
for (j = 0; j < 10; j++)
|
for (j = 0; j < 10; j++)
|
||||||
RANDOMSCRAP(s, i);
|
RANDOMSCRAP(actor);
|
||||||
|
|
||||||
if (s->lotag) fi.spawn(i, s->lotag);
|
if (actor->s.lotag) spawn(actor, actor->s.lotag);
|
||||||
|
deletesprite(actor);
|
||||||
deletesprite(i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1530,7 +1530,7 @@ void movestandables_d(void)
|
||||||
|
|
||||||
else if (picnum == OOZFILTER || picnum == SEENINE || picnum == SEENINEDEAD || picnum == (SEENINEDEAD + 1))
|
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)
|
else if (picnum == MASTERSWITCH)
|
||||||
|
@ -1570,12 +1570,12 @@ void movestandables_d(void)
|
||||||
|
|
||||||
else if (picnum == TOUCHPLATE)
|
else if (picnum == TOUCHPLATE)
|
||||||
{
|
{
|
||||||
movetouchplate(i, TOUCHPLATE);
|
movetouchplate(&hittype[i], TOUCHPLATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (isIn(picnum, CANWITHSOMETHING, CANWITHSOMETHING2, CANWITHSOMETHING3, CANWITHSOMETHING4))
|
else if (isIn(picnum, CANWITHSOMETHING, CANWITHSOMETHING2, CANWITHSOMETHING3, CANWITHSOMETHING4))
|
||||||
{
|
{
|
||||||
movecanwithsomething(i);
|
movecanwithsomething(&hittype[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (isIn(picnum,
|
else if (isIn(picnum,
|
||||||
|
|
|
@ -1079,7 +1079,7 @@ void movestandables_r(void)
|
||||||
|
|
||||||
else if (picnum == OOZFILTER || picnum == SEENINE || picnum == SEENINEDEAD || picnum == (SEENINEDEAD + 1))
|
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)
|
else if (picnum == MASTERSWITCH)
|
||||||
|
@ -1109,12 +1109,12 @@ void movestandables_r(void)
|
||||||
|
|
||||||
else if (picnum == TOUCHPLATE)
|
else if (picnum == TOUCHPLATE)
|
||||||
{
|
{
|
||||||
movetouchplate(i, TOUCHPLATE);
|
movetouchplate(&hittype[i], TOUCHPLATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (picnum == CANWITHSOMETHING)
|
else if (picnum == CANWITHSOMETHING)
|
||||||
{
|
{
|
||||||
movecanwithsomething(i);
|
movecanwithsomething(&hittype[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (isIn(picnum,
|
else if (isIn(picnum,
|
||||||
|
|
|
@ -38,12 +38,12 @@ void movemasterswitch(DDukeActor* i, int spectype1, int spectype2);
|
||||||
void movetrash(DDukeActor* i);
|
void movetrash(DDukeActor* i);
|
||||||
void movewaterdrip(DDukeActor* i, int drip);
|
void movewaterdrip(DDukeActor* i, int drip);
|
||||||
void movedoorshock(DDukeActor* i);
|
void movedoorshock(DDukeActor* i);
|
||||||
void movetouchplate(int i, int plate);
|
void movetouchplate(DDukeActor* i, int plate);
|
||||||
void movecanwithsomething(int i);
|
void movecanwithsomething(DDukeActor* i);
|
||||||
void bounce(int i);
|
void bounce(int i);
|
||||||
void movetongue(int i, int tongue, int jaw);
|
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 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);
|
void lotsofstuff(DDukeActor* s, int n, int spawntype);
|
||||||
bool respawnmarker(int i, int yellow, int green);
|
bool respawnmarker(int i, int yellow, int green);
|
||||||
bool rat(int i, bool makesound);
|
bool rat(int i, bool makesound);
|
||||||
|
|
Loading…
Reference in a new issue