- monsterweapon

This commit is contained in:
Christoph Oelckers 2021-11-14 19:43:16 +01:00
parent d9ad0661f7
commit 56494526d5
3 changed files with 27 additions and 25 deletions

View file

@ -995,23 +995,25 @@ boolean checksight(PLAYER& plr, DWHActor* actor) {
return false;
}
void monsterweapon(int i) {
void monsterweapon(DWHActor* actor) {
if (sprite[i].shade > 20)
auto& spr = actor->s();
if (spr.shade > 20)
return;
if (sprite[i].picnum == SKELETONDEAD || sprite[i].picnum == KOBOLDDEAD)
if (spr.picnum == SKELETONDEAD || spr.picnum == KOBOLDDEAD)
return;
if ((krand() % 100) < 75)
return;
auto spawnedactor = InsertActor(sprite[i].sectnum, (short)0);
auto spawnedactor = InsertActor(spr.sectnum, (short)0);
auto& weap = spawnedactor->s();
weap.x = sprite[i].x;
weap.y = sprite[i].y;
weap.z = sprite[i].z - (24 << 8);
weap.x = spr.x;
weap.y = spr.y;
weap.z = spr.z - (24 << 8);
weap.shade = -15;
weap.cstat = 0;
weap.cstat &= ~3;
@ -1024,7 +1026,7 @@ void monsterweapon(int i) {
weap.xrepeat = 25;
weap.yrepeat = 20;
switch (sprite[i].picnum) {
switch (spr.picnum) {
case NEWGUYDEAD:
weap.xrepeat = 25;
weap.yrepeat = 20;
@ -1119,11 +1121,11 @@ void monsterweapon(int i) {
weap.detail = GOBWEAPONTYPE;
break;
default:
if (sprite[i].picnum == GRONDEAD) {
if (spr.picnum == GRONDEAD) {
if (netgame) {
weap.x = sprite[i].x;
weap.y = sprite[i].y;
weap.z = sprite[i].z - (24 << 8);
weap.x = spr.x;
weap.y = spr.y;
weap.z = spr.z - (24 << 8);
weap.shade = -15;
weap.cstat = 0;
weap.cstat &= ~3;

View file

@ -134,7 +134,7 @@ boolean checkdist(PLAYER& plr, DWHActor* actor);
boolean checkdist(DWHActor* actor, int x, int y, int z);
extern int checksight_ang;
boolean checksight(PLAYER& plr, DWHActor* actor);
void monsterweapon(int i);
void monsterweapon(DWHActor*);
PLAYER* aiGetPlayerTarget(short i);
boolean actoruse(short i);

View file

@ -1127,7 +1127,7 @@ void newstatus(short sn, int seq) {
ChangeActorStat(actor, DEAD);
if(isWh2()) {
addscore(aiGetPlayerTarget(sn), 70);
monsterweapon(sn);
monsterweapon(actor);
}
} else if(spr.picnum == FISH || spr.picnum == RAT) {
spr.cstat &= ~3;
@ -1155,7 +1155,7 @@ void newstatus(short sn, int seq) {
} else {
addscore(aiGetPlayerTarget(sn), 200);
}
monsterweapon(sn);
monsterweapon(actor);
} else {
switch (spr.picnum) {
case GONZOBSHDEAD:
@ -1171,7 +1171,7 @@ void newstatus(short sn, int seq) {
} else {
ChangeActorStat(actor, DEAD);
if (spr.shade < 25)
monsterweapon(sn);
monsterweapon(actor);
}
addscore(aiGetPlayerTarget(sn), 85);
break;
@ -1186,7 +1186,7 @@ void newstatus(short sn, int seq) {
deaddude(sn);
} else {
ChangeActorStat(actor, DEAD);
monsterweapon(sn);
monsterweapon(actor);
}
addscore(aiGetPlayerTarget(sn), 55);
break;
@ -1201,7 +1201,7 @@ void newstatus(short sn, int seq) {
deaddude(sn);
} else {
ChangeActorStat(actor, DEAD);
monsterweapon(sn);
monsterweapon(actor);
}
addscore(aiGetPlayerTarget(sn), 105);
break;
@ -1216,7 +1216,7 @@ void newstatus(short sn, int seq) {
deaddude(sn);
} else {
ChangeActorStat(actor, DEAD);
monsterweapon(sn);
monsterweapon(actor);
}
addscore(aiGetPlayerTarget(sn), 100);
break;
@ -1227,7 +1227,7 @@ void newstatus(short sn, int seq) {
spr.picnum = NEWGUYDEAD;
spr.cstat &= ~3;
ChangeActorStat(actor, DEAD);
monsterweapon(sn);
monsterweapon(actor);
addscore(aiGetPlayerTarget(sn), 50);
break;
case GONZOGSHDEAD:
@ -1243,7 +1243,7 @@ void newstatus(short sn, int seq) {
deaddude(sn);
} else {
ChangeActorStat(actor, DEAD);
monsterweapon(sn);
monsterweapon(actor);
}
addscore(aiGetPlayerTarget(sn), 110);
break;
@ -1265,7 +1265,7 @@ void newstatus(short sn, int seq) {
spr.cstat &= ~3;
ChangeActorStat(actor, DEAD);
addscore(aiGetPlayerTarget(sn), 115);
monsterweapon(sn);
monsterweapon(actor);
break;
case KOBOLDDEAD:
spr.picnum = KOBOLDDEAD;
@ -1286,7 +1286,7 @@ void newstatus(short sn, int seq) {
ChangeActorStat(actor, DEAD);
addscore(aiGetPlayerTarget(sn), isWh2() ? 70 : 50);
if(isWh2())
monsterweapon(sn);
monsterweapon(actor);
break;
case FREDDEAD:
spr.picnum = FREDDEAD;
@ -1300,7 +1300,7 @@ void newstatus(short sn, int seq) {
ChangeActorStat(actor, DEAD);
addscore(aiGetPlayerTarget(sn), 25);
if ((rand() % 100) > 60)
monsterweapon(sn);
monsterweapon(actor);
break;
case MINOTAURDEAD:
spr.picnum = MINOTAURDEAD;
@ -1308,7 +1308,7 @@ void newstatus(short sn, int seq) {
ChangeActorStat(actor, DEAD);
addscore(aiGetPlayerTarget(sn), isWh2() ? 95 : 70);
if ((rand() % 100) > 60)
monsterweapon(sn);
monsterweapon(actor);
break;
case SPIDERDEAD:
spr.picnum = SPIDERDEAD;