Is it just me or enemies like the Pig Cop, Enforcer or the Newbeast aren't supposed to enter water, let alone underwater.
The Enforcer's case is particularly annoying, because in the original Duke3d game they were coded to not enter water (just like the Battlelords). Test them in maps like Fusion station, Overlord, Dark Side etc., when they are placed nearby to underwater areas. They are jumping around, but never get submerged. However in EDuke32 the coding has been changed, and the fast moving Enforcer always fall in the nearest water and never gets out of it. It looks and feels buggy.
The same can be said about the equally fast moving Newbeast, although I don't think they were coded to stay away from water sectors in the original game.... but it's still not normal, except for the Queen fight of course. The Pigcops are slower moving, but still fall in the nearest water when they reach it. And it's not normal as well.
My point being that these enemies should be coded to avoid water sectors, just like the Battlelord (and Enforcers in the original Duke3d). It should be a normal behaviour for them.
I didn't mention the Liztoop, because they are somewhat of a special case. They look fine underwater with using their "jetpack", although they shouldn't be just passive swimmers and should attack the player.
Page 1 of 1
Ground enemies entering water...
#1 Posted 09 April 2013 - 12:22 PM
#2 Posted 09 April 2013 - 12:49 PM
It'd be really cool if the aliens could actually swim and use special attacks under water.
I know, that's more of a mod and less of a bug fix, but I digress.
I know, that's more of a mod and less of a bug fix, but I digress.
#3 Posted 09 April 2013 - 08:03 PM
From the source code:
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
( ( hittype[spritenum].actorstayput >= 0 && hittype[spritenum].actorstayput != dasectnum ) || ( ( sprite[spritenum].picnum == BOSS2 ) && sprite[spritenum].pal == 0 && sector[dasectnum].lotag != 3 ) || ( ( sprite[spritenum].picnum == BOSS1 || sprite[spritenum].picnum == BOSS2 ) && sector[dasectnum].lotag == 1 ) || ( sector[dasectnum].lotag == 1 && ( sprite[spritenum].picnum == LIZMAN || ( sprite[spritenum].picnum == LIZTROOP && sprite[spritenum].zvel == 0 ) ) )
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
This post has been edited by Fox: 09 April 2013 - 08:25 PM
#4 Posted 10 April 2013 - 03:10 AM
Fox, on 09 April 2013 - 08:03 PM, said:
From the source code:
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
( ( hittype[spritenum].actorstayput >= 0 && hittype[spritenum].actorstayput != dasectnum ) || ( ( sprite[spritenum].picnum == BOSS2 ) && sprite[spritenum].pal == 0 && sector[dasectnum].lotag != 3 ) || ( ( sprite[spritenum].picnum == BOSS1 || sprite[spritenum].picnum == BOSS2 ) && sector[dasectnum].lotag == 1 ) || ( sector[dasectnum].lotag == 1 && ( sprite[spritenum].picnum == LIZMAN || ( sprite[spritenum].picnum == LIZTROOP && sprite[spritenum].zvel == 0 ) ) )
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
However, the Enforcers enter water sectors in EDuke32, and it's pretty annoying.
#5 Posted 10 April 2013 - 03:36 AM
I've also observed enforcers jump through forcefields. It's particularly noticeable in my old map Libraryl, where there are some enforcers in a room with windows with forcefields in them; you approach from the outside (forcefields are on), they jump to get through the window, and they pass through it like the forcefield isn't even there. I'm talking about the flickering one that does damage, not the invisible one.
#6 Posted 10 April 2013 - 07:07 PM
I always thought that Pig Cops should drown shortly after entering water, much like Zero Hour.
#7 Posted 11 April 2013 - 02:25 AM
i actually like the thought of underwater fights, always thought those were really underrated be it in the original game or most user maps. not sure this is particularly helpful to know, but it is possible to submerge battlelords and such by making them respawn higher than floor level over the water sector (if you make them respawn directly in the water, they will they afloat at the surface and glitch during their firing animation during which they will appear standing on their feet instead of being half-submerged). for a mapper who would want his battlelord to be able to enter a water sector and teleport itself underwater (ie. in a swimming pool map), i guess it would be possible using this trick along with a very thin non-lotagged sector surrounding the tagged water section, in order to trick the actor into thinking it can enter the sector even though it will make it through it and into the tagged neighboring sector right away ? haven't tested that but i think it could work
#8 Posted 11 April 2013 - 03:25 AM
ck3D, on 11 April 2013 - 02:25 AM, said:
i actually like the thought of underwater fights, always thought those were really underrated be it in the original game or most user maps. not sure this is particularly helpful to know, but it is possible to submerge battlelords and such by making them respawn higher than floor level over the water sector (if you make them respawn directly in the water, they will they afloat at the surface and glitch during their firing animation during which they will appear standing on their feet instead of being half-submerged). for a mapper who would want his battlelord to be able to enter a water sector and teleport itself underwater (ie. in a swimming pool map), i guess it would be possible using this trick along with a very thin non-lotagged sector surrounding the tagged water section, in order to trick the actor into thinking it can enter the sector even though it will make it through it and into the tagged neighboring sector right away ? haven't tested that but i think it could work
Weren't such thing used in Roch 6?
#9 Posted 11 April 2013 - 12:20 PM
I wouldn't be surprised, but I can't remember for sure, I haven't played that map in many years !
#10 Posted 13 April 2013 - 02:24 AM
Fox, on 09 April 2013 - 08:03 PM, said:
From the source code:
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
( ( hittype[spritenum].actorstayput >= 0 && hittype[spritenum].actorstayput != dasectnum ) || ( ( sprite[spritenum].picnum == BOSS2 ) && sprite[spritenum].pal == 0 && sector[dasectnum].lotag != 3 ) || ( ( sprite[spritenum].picnum == BOSS1 || sprite[spritenum].picnum == BOSS2 ) && sector[dasectnum].lotag == 1 ) || ( sector[dasectnum].lotag == 1 && ( sprite[spritenum].picnum == LIZMAN || ( sprite[spritenum].picnum == LIZTROOP && sprite[spritenum].zvel == 0 ) ) )
Meaning that the Enforcer, Battlelord and Overlord are not meant to enter water sectors, and the same apply to an Assault Trooper if he is flying.
In EDuke32, the last line has been commented out since r1044.
#11 Posted 22 April 2013 - 01:13 AM
Micky C, on 10 April 2013 - 03:36 AM, said:
I've also observed enforcers jump through forcefields. It's particularly noticeable in my old map Libraryl, where there are some enforcers in a room with windows with forcefields in them; you approach from the outside (forcefields are on), they jump to get through the window, and they pass through it like the forcefield isn't even there. I'm talking about the flickering one that does damage, not the invisible one.
No, it has nothing to do with the forcefields. Rather, the "windowsills" are much too thin on the inside. BUILD is known to have clipping issues with that (rememer "Bugs", as in Bug Team?). Making that portion a bit wider makes the lizmen stay inside, but the commanders still get through, so maybe it's also too thin somewhere else.
By the way, you should load Libraryl with the new EDuke32/Mapster32 revision. It exposed a problem that's present in various other maps, too.
r3696 said:
Engine: stricter map load time checking for sprites with oob sectnums.
Sprites are now considered to have out of bounds sector numbers if it is
< 0 or >= numsectors (not merely >= MAXSECTORS). If such a sprite is now
encountered during post-load, an attempt is made first to assign it a sector
number (using updatesector()). If that fails, the sprite is removed from the
map. The background is that a dozen of maps do come with such sprites and
could previously corrupt the sprite list when loaded.
Sprites are now considered to have out of bounds sector numbers if it is
< 0 or >= numsectors (not merely >= MAXSECTORS). If such a sprite is now
encountered during post-load, an attempt is made first to assign it a sector
number (using updatesector()). If that fails, the sprite is removed from the
map. The background is that a dozen of maps do come with such sprites and
could previously corrupt the sprite list when loaded.
Share this topic:
Page 1 of 1