mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-18 09:41:06 +00:00
- insertsprite
This commit is contained in:
parent
486066e02d
commit
d039c82037
16 changed files with 110 additions and 125 deletions
|
@ -604,8 +604,8 @@ void processfluid(DWHActor* actor, Collision& florHit, boolean fly) {
|
||||||
|
|
||||||
void castspell(PLAYER& plr, DWHActor* actor) {
|
void castspell(PLAYER& plr, DWHActor* actor) {
|
||||||
auto& spr = actor->s();
|
auto& spr = actor->s();
|
||||||
int j = insertsprite(spr.sectnum, MISSILE);
|
auto spawnedactor = InsertActor(spr.sectnum, MISSILE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
|
@ -643,8 +643,8 @@ void castspell(PLAYER& plr, DWHActor* actor) {
|
||||||
|
|
||||||
void skullycastspell(PLAYER& plr, int i) {
|
void skullycastspell(PLAYER& plr, int i) {
|
||||||
auto& spr = sprite[i];
|
auto& spr = sprite[i];
|
||||||
int j = insertsprite(spr.sectnum, MISSILE);
|
auto spawnedactor = InsertActor(spr.sectnum, MISSILE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
|
@ -1007,9 +1007,9 @@ void monsterweapon(int i) {
|
||||||
if ((krand() % 100) < 75)
|
if ((krand() % 100) < 75)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int j = insertsprite(sprite[i].sectnum, (short)0);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, (short)0);
|
||||||
|
auto& weap = spawnedactor->s();
|
||||||
|
|
||||||
SPRITE& weap = sprite[j];
|
|
||||||
weap.x = sprite[i].x;
|
weap.x = sprite[i].x;
|
||||||
weap.y = sprite[i].y;
|
weap.y = sprite[i].y;
|
||||||
weap.z = sprite[i].z - (24 << 8);
|
weap.z = sprite[i].z - (24 << 8);
|
||||||
|
|
|
@ -341,10 +341,7 @@ static void firebreath(PLAYER& plr, DWHActor* actor, int a, int b, int c)
|
||||||
{
|
{
|
||||||
auto& spr = actor->s();
|
auto& spr = actor->s();
|
||||||
for (int k = 0; k <= a; k++) {
|
for (int k = 0; k <= a; k++) {
|
||||||
int j = insertsprite(spr.sectnum, MISSILE);
|
auto spawnedactor = InsertActor(spr.sectnum, MISSILE);
|
||||||
if (j == -1)
|
|
||||||
return;
|
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
|
|
|
@ -248,11 +248,9 @@ static void throwspank(PLAYER& plr, DWHActor* actor)
|
||||||
int i = actor->GetSpriteIndex();
|
int i = actor->GetSpriteIndex();
|
||||||
SPRITE& spr = actor->s();
|
SPRITE& spr = actor->s();
|
||||||
|
|
||||||
int j = insertsprite(spr.sectnum, MISSILE);
|
auto spawnedactor = InsertActor(spr.sectnum, MISSILE);
|
||||||
if (j == -1)
|
auto& spawned = spawnedactor->s();
|
||||||
return;
|
|
||||||
|
|
||||||
auto& spawned = sprite[j];
|
|
||||||
spritesound(S_WITCHTHROW, actor);
|
spritesound(S_WITCHTHROW, actor);
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
|
|
|
@ -658,11 +658,8 @@ static boolean patrolprocess(PLAYER& plr, DWHActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gonzopike(short s, PLAYER& plr) {
|
static void gonzopike(short s, PLAYER& plr) {
|
||||||
int j = insertsprite(sprite[s].sectnum, JAVLIN);
|
auto spawnedactor = InsertActor(sprite[s].sectnum, JAVLIN);
|
||||||
if (j == -1)
|
auto& spr = spawnedactor->s();
|
||||||
return;
|
|
||||||
|
|
||||||
SPRITE& spr = sprite[j];
|
|
||||||
|
|
||||||
spr.x = sprite[s].x;
|
spr.x = sprite[s].x;
|
||||||
spr.y = sprite[s].y;
|
spr.y = sprite[s].y;
|
||||||
|
@ -796,8 +793,9 @@ void premapGonzo(short i) {
|
||||||
|
|
||||||
void deaddude(short sn) {
|
void deaddude(short sn) {
|
||||||
auto& spr = sprite[sn];
|
auto& spr = sprite[sn];
|
||||||
int j = insertsprite(spr.sectnum, DEAD);
|
auto spawnedactor = InsertActor(spr.sectnum, DEAD);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
spawned.z = spr.z;
|
spawned.z = spr.z;
|
||||||
|
|
|
@ -453,12 +453,9 @@ static void checkexplgron(PLAYER& plr, DWHActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void throwhalberd(int s) {
|
static void throwhalberd(int s) {
|
||||||
int j = insertsprite(sprite[s].sectnum, JAVLIN);
|
auto spawnedactor = InsertActor(sprite[s].sectnum, JAVLIN);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
|
|
||||||
if (j == -1)
|
|
||||||
return;
|
|
||||||
SPRITE& spr = spawnedactor->s();
|
SPRITE& spr = spawnedactor->s();
|
||||||
|
|
||||||
spr.x = sprite[s].x;
|
spr.x = sprite[s].x;
|
||||||
spr.y = sprite[s].y;
|
spr.y = sprite[s].y;
|
||||||
spr.z = sprite[s].z - (40 << 8);
|
spr.z = sprite[s].z - (40 << 8);
|
||||||
|
|
|
@ -379,8 +379,8 @@ void judyOperate(PLAYER& plr)
|
||||||
|
|
||||||
void spawnabaddy(DWHActor* actor, int monster) {
|
void spawnabaddy(DWHActor* actor, int monster) {
|
||||||
auto& spr = actor->s();
|
auto& spr = actor->s();
|
||||||
short j = insertsprite(spr.sectnum, FACE);
|
auto spawnedactor = InsertActor(spr.sectnum, FACE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x + (krand() & 2048) - 1024;
|
spawned.x = spr.x + (krand() & 2048) - 1024;
|
||||||
spawned.y = spr.y + (krand() & 2048) - 1024;
|
spawned.y = spr.y + (krand() & 2048) - 1024;
|
||||||
|
@ -391,20 +391,20 @@ void spawnabaddy(DWHActor* actor, int monster) {
|
||||||
spawned.cstat = 0;
|
spawned.cstat = 0;
|
||||||
|
|
||||||
if (monster == WILLOW)
|
if (monster == WILLOW)
|
||||||
premapWillow(j);
|
premapWillow(spawnedactor->GetSpriteIndex());
|
||||||
else if (monster == SPIDER)
|
else if (monster == SPIDER)
|
||||||
premapSpider(j);
|
premapSpider(spawnedactor->GetSpriteIndex());
|
||||||
else if (monster == GRONSW)
|
else if (monster == GRONSW)
|
||||||
premapGron(j);
|
premapGron(spawnedactor->GetSpriteIndex());
|
||||||
else if (monster == SKELETON)
|
else if (monster == SKELETON)
|
||||||
premapSkeleton(j);
|
premapSkeleton(spawnedactor->GetSpriteIndex());
|
||||||
else if (monster == GONZOGSH)
|
else if (monster == GONZOGSH)
|
||||||
premapGonzo(j);
|
premapGonzo(spawnedactor->GetSpriteIndex());
|
||||||
|
|
||||||
spawned.picnum = (short)monster;
|
spawned.picnum = (short)monster;
|
||||||
killcnt++;
|
killcnt++;
|
||||||
|
|
||||||
setsprite(j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -362,12 +362,9 @@ static void castnewguy(PLAYER& plr, DWHActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void newguyarrow(short s, PLAYER& plr) {
|
static void newguyarrow(short s, PLAYER& plr) {
|
||||||
int j = insertsprite(sprite[s].sectnum, JAVLIN);
|
auto spawnedactor = InsertActor(sprite[s].sectnum, JAVLIN);
|
||||||
if (j == -1)
|
auto& spr = spawnedactor->s();
|
||||||
return;
|
|
||||||
|
|
||||||
SPRITE& spr = sprite[j];
|
|
||||||
|
|
||||||
spr.x = sprite[s].x;
|
spr.x = sprite[s].x;
|
||||||
spr.y = sprite[s].y;
|
spr.y = sprite[s].y;
|
||||||
spr.z = sprite[s].z - (40 << 8);
|
spr.z = sprite[s].z - (40 << 8);
|
||||||
|
|
|
@ -140,8 +140,8 @@ void randompotion(int i) {
|
||||||
if ((krand() % 100) > 20)
|
if ((krand() % 100) > 20)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int j = insertsprite(sprite[i].sectnum, (short)0);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, (short)0);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[i].x;
|
spawned.x = sprite[i].x;
|
||||||
spawned.y = sprite[i].y;
|
spawned.y = sprite[i].y;
|
||||||
|
|
|
@ -262,8 +262,9 @@ void nukespell(PLAYER& plr, short const j) {
|
||||||
spr.hitag = 0;
|
spr.hitag = 0;
|
||||||
addscore(&plr, 150);
|
addscore(&plr, 150);
|
||||||
|
|
||||||
int k = insertsprite(spr.sectnum, NUKED);
|
auto spawnedactor = InsertActor(spr.sectnum, NUKED);
|
||||||
auto& spawned = sprite[k];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.lotag = 360;
|
spawned.lotag = 360;
|
||||||
spawned.xrepeat = 30;
|
spawned.xrepeat = 30;
|
||||||
spawned.yrepeat = 12;
|
spawned.yrepeat = 12;
|
||||||
|
|
|
@ -896,7 +896,6 @@ void madenoise(PLAYER& plr, int val, int x, int y, int z) {
|
||||||
|
|
||||||
void shootgun(PLAYER& plr, float ang, int guntype) {
|
void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
int k = 0, daz2;
|
int k = 0, daz2;
|
||||||
short j;
|
|
||||||
DWHActor* hitActor = nullptr;
|
DWHActor* hitActor = nullptr;
|
||||||
|
|
||||||
int daang = (int) ang;
|
int daang = (int) ang;
|
||||||
|
@ -1705,9 +1704,9 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
ntag, 1024, 3);
|
ntag, 1024, 3);
|
||||||
|
|
||||||
if (ntag.tagsector < 0) {
|
if (ntag.tagsector < 0) {
|
||||||
j = insertsprite(pHitInfo.hitsect, (short) 0);
|
auto spawnedactor = InsertActor(pHitInfo.hitsect, (short) 0);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = pHitInfo.hitx;
|
spawned.x = pHitInfo.hitx;
|
||||||
spawned.y = pHitInfo.hity;
|
spawned.y = pHitInfo.hity;
|
||||||
spawned.z = pHitInfo.hitz + (8 << 8);
|
spawned.z = pHitInfo.hitz + (8 << 8);
|
||||||
|
@ -1728,9 +1727,9 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
spritesound(S_ARROWHIT, spawnedactor);
|
spritesound(S_ARROWHIT, spawnedactor);
|
||||||
|
|
||||||
if (isWh2() && plr.weapon[6] == 3 && plr.currweapon == 6) {
|
if (isWh2() && plr.weapon[6] == 3 && plr.currweapon == 6) {
|
||||||
auto spawnedactor = &whActors[j];
|
auto spawnedactor = InsertActor(pHitInfo.hitsect, FIRECHUNK);
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
j = insertsprite(pHitInfo.hitsect, FIRECHUNK);
|
|
||||||
spawned.x = pHitInfo.hitx;
|
spawned.x = pHitInfo.hitx;
|
||||||
spawned.y = pHitInfo.hity;
|
spawned.y = pHitInfo.hity;
|
||||||
spawned.z = pHitInfo.hitz + (14 << 8);
|
spawned.z = pHitInfo.hitz + (14 << 8);
|
||||||
|
@ -1756,9 +1755,9 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pHitInfo.hitwall > 0 && pHitInfo.hitsprite > 0) {
|
if (pHitInfo.hitwall > 0 && pHitInfo.hitsprite > 0) {
|
||||||
j = insertsprite(pHitInfo.hitsect, FX);
|
auto spawnedactor = InsertActor(pHitInfo.hitsect, FX);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = pHitInfo.hitx;
|
spawned.x = pHitInfo.hitx;
|
||||||
spawned.y = pHitInfo.hity;
|
spawned.y = pHitInfo.hity;
|
||||||
spawned.z = pHitInfo.hitz + (8 << 8);
|
spawned.z = pHitInfo.hitz + (8 << 8);
|
||||||
|
@ -1956,10 +1955,10 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plr.weapon[plr.currweapon] == 3) {
|
if (plr.weapon[plr.currweapon] == 3) {
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
throwpikesprite[throwpikecnt] = j;
|
|
||||||
|
throwpikesprite[throwpikecnt] = spawnedactor->GetSpriteIndex();
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
spawned.z = plr.z + (24 << 8);
|
spawned.z = plr.z + (24 << 8);
|
||||||
|
@ -1985,12 +1984,13 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
spawned.pal = 0;
|
spawned.pal = 0;
|
||||||
movesprite(spawnedactor, (bcos(spawned.extra) * TICSPERFRAME) << 3,
|
movesprite(spawnedactor, (bcos(spawned.extra) * TICSPERFRAME) << 3,
|
||||||
(bsin(spawned.extra) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
(bsin(spawned.extra) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
||||||
setsprite((short) j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
} else {
|
} else {
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
throwpikesprite[throwpikecnt] = j;
|
|
||||||
|
throwpikesprite[throwpikecnt] = spawnedactor->GetSpriteIndex();
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
spawned.z = plr.z + (24 << 8);
|
spawned.z = plr.z + (24 << 8);
|
||||||
|
@ -2012,8 +2012,8 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
|
@ -2055,10 +2055,10 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
|
|
||||||
if (plr.weapon[plr.currweapon] == 3) {
|
if (plr.weapon[plr.currweapon] == 3) {
|
||||||
|
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
throwpikesprite[throwpikecnt] = j;
|
|
||||||
|
throwpikesprite[throwpikecnt] = spawnedactor->GetSpriteIndex();
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
spawned.z = plr.z + (24 << 8);
|
spawned.z = plr.z + (24 << 8);
|
||||||
|
@ -2081,13 +2081,13 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
spawned.pal = 0;
|
spawned.pal = 0;
|
||||||
movesprite(spawnedactor, (bcos(spawned.extra) * TICSPERFRAME) << 3,
|
movesprite(spawnedactor, (bcos(spawned.extra) * TICSPERFRAME) << 3,
|
||||||
(bsin(spawned.extra) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
(bsin(spawned.extra) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
||||||
setsprite((short) j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
} else {
|
} else {
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
throwpikesprite[throwpikecnt] = j;
|
|
||||||
|
throwpikesprite[throwpikecnt] = spawnedactor->GetSpriteIndex();
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
spawned.z = plr.z + (24 << 8);
|
spawned.z = plr.z + (24 << 8);
|
||||||
|
@ -2109,8 +2109,8 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
spawned.y = plr.y;
|
spawned.y = plr.y;
|
||||||
|
@ -2145,8 +2145,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
// netshootgun(-1,12);
|
// netshootgun(-1,12);
|
||||||
}
|
}
|
||||||
|
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
|
@ -2176,7 +2175,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
|
|
||||||
movesprite(spawnedactor, (bcos(spawned.ang) * TICSPERFRAME) << 3,
|
movesprite(spawnedactor, (bcos(spawned.ang) * TICSPERFRAME) << 3,
|
||||||
(bsin(spawned.ang) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
(bsin(spawned.ang) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
||||||
setsprite(j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -2187,8 +2186,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
// netshootgun(-1,13);
|
// netshootgun(-1,13);
|
||||||
}
|
}
|
||||||
|
|
||||||
j = insertsprite(plr.sector, MISSILE);
|
auto spawnedactor = InsertActor(plr.sector, MISSILE);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
|
@ -2221,7 +2219,7 @@ void shootgun(PLAYER& plr, float ang, int guntype) {
|
||||||
|
|
||||||
movesprite(spawnedactor, (bcos(spawned.ang) * TICSPERFRAME) << 3,
|
movesprite(spawnedactor, (bcos(spawned.ang) * TICSPERFRAME) << 3,
|
||||||
(bsin(spawned.ang) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
(bsin(spawned.ang) * TICSPERFRAME) << 3, 0, 4 << 8, 4 << 8, 0);
|
||||||
setsprite(j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -213,4 +213,9 @@ inline void DeleteActor(DWHActor* actor)
|
||||||
deletesprite(actor->GetSpriteIndex());
|
deletesprite(actor->GetSpriteIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline DWHActor* InsertActor(int sectnum, int statnum)
|
||||||
|
{
|
||||||
|
return &whActors[insertsprite(sectnum, statnum)];
|
||||||
|
}
|
||||||
|
|
||||||
END_WH_NS
|
END_WH_NS
|
||||||
|
|
|
@ -254,8 +254,9 @@ void animateobjs(PLAYER& plr) {
|
||||||
spr.extra = 12;
|
spr.extra = 12;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
j = insertsprite(spr.sectnum, FACE);
|
auto spawnedactor = InsertActor(spr.sectnum, FACE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
enemy[GONZOTYPE].info.set(spawned);
|
enemy[GONZOTYPE].info.set(spawned);
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
|
@ -1330,8 +1331,8 @@ void animateobjs(PLAYER& plr) {
|
||||||
spr.lotag -= TICSPERFRAME;
|
spr.lotag -= TICSPERFRAME;
|
||||||
|
|
||||||
if (krand() % 100 > 90) {
|
if (krand() % 100 > 90) {
|
||||||
j = insertsprite(spr.sectnum, SMOKE);
|
auto spawnedactor = InsertActor(spr.sectnum, SMOKE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
|
|
|
@ -799,8 +799,7 @@ void thesplash() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void makeasplash(int picnum, PLAYER& plr) {
|
void makeasplash(int picnum, PLAYER& plr) {
|
||||||
int j = insertsprite(plr.sector, MASPLASH);
|
auto spawnedactor = InsertActor(plr.sector, MASPLASH);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = plr.x;
|
spawned.x = plr.x;
|
||||||
|
@ -838,9 +837,9 @@ void makemonstersplash(int picnum, int i) {
|
||||||
if (sprite[i].picnum == FISH)
|
if (sprite[i].picnum == FISH)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int j = insertsprite(sprite[i].sectnum, MASPLASH);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, MASPLASH);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[i].x;
|
spawned.x = sprite[i].x;
|
||||||
spawned.y = sprite[i].y;
|
spawned.y = sprite[i].y;
|
||||||
spawned.z = sector[sprite[i].sectnum].floorz + (tileHeight(picnum) << 8);
|
spawned.z = sector[sprite[i].sectnum].floorz + (tileHeight(picnum) << 8);
|
||||||
|
@ -891,8 +890,9 @@ void makemonstersplash(int picnum, int i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void bats(PLAYER& plr, int k) {
|
void bats(PLAYER& plr, int k) {
|
||||||
short j = insertsprite(sprite[k].sectnum, FLOCK);
|
auto spawnedactor = InsertActor(sprite[k].sectnum, FLOCK);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[k].x;
|
spawned.x = sprite[k].x;
|
||||||
spawned.y = sprite[k].y;
|
spawned.y = sprite[k].y;
|
||||||
spawned.z = sprite[k].z;
|
spawned.z = sprite[k].z;
|
||||||
|
@ -909,10 +909,10 @@ void bats(PLAYER& plr, int k) {
|
||||||
spawned.extra = 0;
|
spawned.extra = 0;
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
|
|
||||||
newstatus(j, FLOCK);
|
SetNewStatus(spawnedactor, FLOCK);
|
||||||
|
|
||||||
if (sprite[k].extra == 1)
|
if (sprite[k].extra == 1)
|
||||||
lastbat = j;
|
lastbat = spawnedactor->GetSpriteIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cracks() {
|
void cracks() {
|
||||||
|
@ -998,8 +998,7 @@ void lavadryland() {
|
||||||
void warpfxsprite(int s) {
|
void warpfxsprite(int s) {
|
||||||
PLAYER& plr = player[pyrn];
|
PLAYER& plr = player[pyrn];
|
||||||
|
|
||||||
int j = insertsprite(sprite[s].sectnum, WARPFX);
|
auto spawnedactor = InsertActor(sprite[s].sectnum, WARPFX);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[s].x;
|
spawned.x = sprite[s].x;
|
||||||
|
@ -1095,24 +1094,21 @@ void weaponpowerup(PLAYER& plr) {
|
||||||
|
|
||||||
void makesparks(short i, int type) {
|
void makesparks(short i, int type) {
|
||||||
|
|
||||||
int j = -1;
|
DWHActor* spawnedactor = nullptr;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 1:
|
case 1:
|
||||||
j = insertsprite(sprite[i].sectnum, SPARKS);
|
spawnedactor = InsertActor(sprite[i].sectnum, SPARKS);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
j = insertsprite(sprite[i].sectnum, SPARKSUP);
|
spawnedactor = InsertActor(sprite[i].sectnum, SPARKSUP);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
j = insertsprite(sprite[i].sectnum, SPARKSDN);
|
spawnedactor = InsertActor(sprite[i].sectnum, SPARKSDN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j == -1)
|
auto& spawned = spawnedactor->s();
|
||||||
return;
|
|
||||||
|
|
||||||
auto& spawned = sprite[j];
|
|
||||||
|
|
||||||
spawned.x = sprite[i].x;
|
spawned.x = sprite[i].x;
|
||||||
spawned.y = sprite[i].y;
|
spawned.y = sprite[i].y;
|
||||||
|
@ -1134,8 +1130,8 @@ void makesparks(short i, int type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void shards(int i, int type) {
|
void shards(int i, int type) {
|
||||||
short j = insertsprite(sprite[i].sectnum, SHARDOFGLASS);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, SHARDOFGLASS);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[i].x + (((krand() % 512) - 256) << 2);
|
spawned.x = sprite[i].x + (((krand() % 512) - 256) << 2);
|
||||||
spawned.y = sprite[i].y + (((krand() % 512) - 256) << 2);
|
spawned.y = sprite[i].y + (((krand() % 512) - 256) << 2);
|
||||||
|
|
|
@ -758,9 +758,8 @@ boolean prepareboard(const char* fname) {
|
||||||
|
|
||||||
if(mapon == 13) {
|
if(mapon == 13) {
|
||||||
if(sector[427].floorpicnum == 291) {
|
if(sector[427].floorpicnum == 291) {
|
||||||
int s = insertsprite((short)427, (short)0);
|
auto spawnedActor = InsertActor(427, 0);
|
||||||
if(s != -1) {
|
SPRITE& sp = spawnedActor->s();
|
||||||
SPRITE& sp = sprite[s];
|
|
||||||
sp.x = 27136;
|
sp.x = 27136;
|
||||||
sp.y = 51712;
|
sp.y = 51712;
|
||||||
sp.z = 7168;
|
sp.z = 7168;
|
||||||
|
@ -772,7 +771,6 @@ boolean prepareboard(const char* fname) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (justteleported) { // next level
|
if (justteleported) { // next level
|
||||||
plr.hvel = 0;
|
plr.hvel = 0;
|
||||||
|
|
|
@ -1372,9 +1372,9 @@ void newstatus(short sn, int seq) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void makeafire(int i, int firetype) {
|
void makeafire(int i, int firetype) {
|
||||||
short j = insertsprite(sprite[i].sectnum, FIRE);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, FIRE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[i].x + (krand() & 1024) - 512;
|
spawned.x = sprite[i].x + (krand() & 1024) - 512;
|
||||||
spawned.y = sprite[i].y + (krand() & 1024) - 512;
|
spawned.y = sprite[i].y + (krand() & 1024) - 512;
|
||||||
spawned.z = sprite[i].z;
|
spawned.z = sprite[i].z;
|
||||||
|
@ -1389,13 +1389,13 @@ void makeafire(int i, int firetype) {
|
||||||
spawned.owner = sprite[i].owner;
|
spawned.owner = sprite[i].owner;
|
||||||
spawned.lotag = 2047;
|
spawned.lotag = 2047;
|
||||||
spawned.hitag = 0;
|
spawned.hitag = 0;
|
||||||
changespritestat(j, FIRE);
|
ChangeActorStat(spawnedactor, FIRE);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
}
|
}
|
||||||
|
|
||||||
void explosion(int i, int x, int y, int z, int owner) {
|
void explosion(int i, int x, int y, int z, int owner) {
|
||||||
int j = insertsprite(sprite[i].sectnum, EXPLO);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, EXPLO);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
boolean isWH2 = isWh2();
|
boolean isWH2 = isWh2();
|
||||||
|
|
||||||
|
@ -1432,8 +1432,8 @@ void explosion(int i, int x, int y, int z, int owner) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void explosion2(int i, int x, int y, int z, int owner) {
|
void explosion2(int i, int x, int y, int z, int owner) {
|
||||||
int j = insertsprite(sprite[i].sectnum, EXPLO);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, EXPLO);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
boolean isWH2 = isWh2();
|
boolean isWH2 = isWh2();
|
||||||
|
|
||||||
|
@ -1474,8 +1474,8 @@ void explosion2(int i, int x, int y, int z, int owner) {
|
||||||
|
|
||||||
void trailingsmoke(DWHActor* actor, boolean ball) {
|
void trailingsmoke(DWHActor* actor, boolean ball) {
|
||||||
auto& spr = actor->s();
|
auto& spr = actor->s();
|
||||||
int j = insertsprite(spr.sectnum, SMOKE);
|
auto spawnedactor = InsertActor(spr.sectnum, SMOKE);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = spr.x;
|
spawned.x = spr.x;
|
||||||
spawned.y = spr.y;
|
spawned.y = spr.y;
|
||||||
|
@ -1503,8 +1503,8 @@ void trailingsmoke(DWHActor* actor, boolean ball) {
|
||||||
void icecubes(int i, int x, int y, int z, int owner) {
|
void icecubes(int i, int x, int y, int z, int owner) {
|
||||||
auto actor = &whActors[i];
|
auto actor = &whActors[i];
|
||||||
auto& spr = actor->s();
|
auto& spr = actor->s();
|
||||||
int j = insertsprite(spr.sectnum, FX);
|
auto spawnedactor = InsertActor(spr.sectnum, FX);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = x;
|
spawned.x = x;
|
||||||
spawned.y = y;
|
spawned.y = y;
|
||||||
|
@ -1788,8 +1788,8 @@ Collision movesprite(DWHActor* actor, int dx, int dy, int dz, int ceildist, int
|
||||||
}
|
}
|
||||||
|
|
||||||
void trowajavlin(int s) {
|
void trowajavlin(int s) {
|
||||||
int j = insertsprite(sprite[s].sectnum, JAVLIN);
|
auto spawnedactor = InsertActor(sprite[s].sectnum, JAVLIN);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[s].x;
|
spawned.x = sprite[s].x;
|
||||||
spawned.y = sprite[s].y;
|
spawned.y = sprite[s].y;
|
||||||
|
@ -1842,8 +1842,9 @@ void trowajavlin(int s) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void spawnhornskull(short i) {
|
void spawnhornskull(short i) {
|
||||||
short j = insertsprite(sprite[i].sectnum, (short) 0);
|
auto spawnedactor = InsertActor(sprite[i].sectnum, (short) 0);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[i].x;
|
spawned.x = sprite[i].x;
|
||||||
spawned.y = sprite[i].y;
|
spawned.y = sprite[i].y;
|
||||||
spawned.z = sprite[i].z - (24 << 8);
|
spawned.z = sprite[i].z - (24 << 8);
|
||||||
|
@ -1860,8 +1861,8 @@ void spawnhornskull(short i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void spawnapentagram(int sn) {
|
void spawnapentagram(int sn) {
|
||||||
short j = insertsprite(sprite[sn].sectnum, (short) 0);
|
auto spawnedactor = InsertActor(sprite[sn].sectnum, (short) 0);
|
||||||
auto& spawned = sprite[j];
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = sprite[sn].x;
|
spawned.x = sprite[sn].x;
|
||||||
spawned.y = sprite[sn].y;
|
spawned.y = sprite[sn].y;
|
||||||
|
@ -1878,7 +1879,7 @@ void spawnapentagram(int sn) {
|
||||||
spawned.picnum = PENTAGRAM;
|
spawned.picnum = PENTAGRAM;
|
||||||
spawned.detail = PENTAGRAMTYPE;
|
spawned.detail = PENTAGRAMTYPE;
|
||||||
|
|
||||||
setsprite(j, spawned.x, spawned.y, spawned.z);
|
SetActorPos(spawnedactor, &spawned.pos);
|
||||||
spawned.backuploc();
|
spawned.backuploc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -282,7 +282,6 @@ void plruse(PLAYER& plr) {
|
||||||
|
|
||||||
void chunksofmeat(PLAYER& plr, DWHActor* hitActor, int hitx, int hity, int hitz, short hitsect, int daang) {
|
void chunksofmeat(PLAYER& plr, DWHActor* hitActor, int hitx, int hity, int hitz, short hitsect, int daang) {
|
||||||
|
|
||||||
int j;
|
|
||||||
short k;
|
short k;
|
||||||
short zgore = 0;
|
short zgore = 0;
|
||||||
int chunk = REDCHUNKSTART;
|
int chunk = REDCHUNKSTART;
|
||||||
|
@ -346,8 +345,7 @@ void chunksofmeat(PLAYER& plr, DWHActor* hitActor, int hitx, int hity, int hitz,
|
||||||
for (k = 0; k < zgore; k++) {
|
for (k = 0; k < zgore; k++) {
|
||||||
newchunk = 0;
|
newchunk = 0;
|
||||||
|
|
||||||
j = insertsprite(hitsect, CHUNKOMEAT);
|
auto spawnedactor = InsertActor(hitsect, CHUNKOMEAT);
|
||||||
auto spawnedactor = &whActors[j];
|
|
||||||
auto& spawned = spawnedactor->s();
|
auto& spawned = spawnedactor->s();
|
||||||
|
|
||||||
spawned.x = hitx;
|
spawned.x = hitx;
|
||||||
|
|
Loading…
Reference in a new issue