Project

General

Profile

Bug #343

Cyberdemon infights

Added by papercut2 about 15 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Target version:
Start date:
2006-08-23
% Done:

100%


Description

In the latest version of Doomsday, monsters are unale
to fight cyberdemons. This hasn't been tested with the
Spider Mastermind.

Doom2 Map08, the room with the Cybie and all the Hell
Barons is practically impossible because of this.

CyberDreams.wad Map07 IS impossible because of this.

Labels: jDoom Gameplay

History

#1 Updated by papercut2 about 15 years ago

Logged In: YES
user_id=1566636

I tested and it does in fact do the same for the Spider
Mastermind as well.

#2 Updated by pimpuigi about 15 years ago

Logged In: YES
user_id=1600910

In Barrels of Fun the arachnatrons wouldn't fight with the
Mastermind either.

#3 Updated by pimpuigi about 15 years ago

Logged In: YES
user_id=1600910

My fault, didn't know where comments appeared.

#4 Updated by zachkeene almost 15 years ago

Logged In: YES
user_id=1103163

While trying to track this down I saw this in
jdoom/src/p_enemy.c (line 226):

dist =
P_ApproxDistance(actor->pos[VX] -

actor->target->pos[VX],

actor->pos[VX] -

actor->target->pos[VY]) - 64 * FRACUNIT

Surely that second "actor->pos[VX]" should be "actor->pos[VY]"?

Unfortunately changing this didn't fix the problem, so back
to digging I go...

#5 Updated by zachkeene almost 15 years ago

Logged In: YES
user_id=1103163

OK, the real source of this bug is line 984 of
jdoom/src/p_inter.c:

((!target->threshold && !(source->flags2 & MF2_BOSS))||

target->type == MT_VILE) &&

The MF2_BOSS check was added in SVN 3128 along with other
changes meant to add some Heretic functionality to jDoom.
However, no equivalent check existed in the original Doom
source and having it here is preventing other monsters from
targetting bosses.

#6 Updated by danij almost 15 years ago

Logged In: YES
user_id=849456

While trying to track this down I saw this in
jdoom/src/p_enemy.c (line 226):

dist = P_ApproxDistance(actor->pos[VX]
actor
>target->pos[VX],
actor->pos[VX]
actor
>target->pos[VY]) - 64 *

FRACUNIT

Surely that second "actor->pos[VX]" should be
"actor->pos[VY]"?

Well spotted. Yep, that is definetly a bug, I'll commit a
fix soon.

#7 Updated by danij almost 15 years ago

Logged In: YES
user_id=849456

OK, the real source of this bug is line 984 of
jdoom/src/p_inter.c:

((!target->threshold && !(source->flags2
& MF2_BOSS))|| target->type == MT_VILE) &&

The MF2_BOSS check was added in SVN 3128 along with other
changes meant to add some Heretic functionality to jDoom.
However, no equivalent check existed in the original Doom
source and having it here is preventing other monsters from
targetting bosses.

Good work. I'll look into and commit a fix for this logic
error soon.

#8 Updated by danij almost 15 years ago

Logged In: YES
user_id=849456
Originator: NO

Fixed in svn for 1.9.0-beta5.

In order to fix this properly I've had to implement a new MF3_NOINFIGHT flag. This flag can be used to prevent a mobj from being "in-fought with". And this means that all games' objects.ded's have been updated too.

Also available in: Atom PDF