[Fixed] +FLOATBOB backwards-compatibility

Bugs that have been investigated and resolved somehow.

Moderator: Developers

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Sun Jul 29, 2012 4:19 am

What it seems is really needed is a physical bob of some sort that doesn't allow an actor to sink into the floor/ceiling (unless it has nointeraction or similar I suppose - ie it respects the collision settings of the actor), which pauses when the game is paused by any means and, ideally, has parameters to allow altering of the amplitude and frequency of the bob. However, given the problems that the original floatbob caused, I suspect that coding such a thing is not particularly easy to make sure all eventualities are covered.
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby Blzut3 » Sun Jul 29, 2012 4:46 am

Not really, we can continue to insert code to add the bob height to anything that returns the Z height until all instances are fixed (either by fixing them preemptively or waiting until an example of something broken is produced).

I think the worst case scenario is some compatibility option would be needed to restore the original behavior, but I doubt there's anything that can't be fixed with the before mentioned method.
Blzut3
Pronounced: B-l-zut
 
Joined: 24 Nov 2004

Re: +FLOATBOB backwards-compatibility

Postby Graf Zahl » Sun Jul 29, 2012 3:58 pm

Ugh...

No more workarounds, please. While I understand that floatbobbing was essentially broken the current 'solution' to break every mod that uses a floatbobbing monster is clearly not acceptable. There must be a fallback option - at least for solid/shootable things that doesn't involve tinkering with the DECORATE code.

The Afrit is somewhat broken right now. Period. And that breaks lots of existing maps.
User avatar
Graf Zahl
 
Joined: 19 Jul 2003
Location: Germany

Re: +FLOATBOB backwards-compatibility

Postby randi » Sun Jul 29, 2012 6:46 pm

Graf Zahl wrote:The Afrit is somewhat broken right now. Period. And that breaks lots of existing maps.

The Afrit doesn't even use floatbob, so how is it relevant or broken? To save time, here is its decorate:
Spoiler: afrit.wad:DECORATE

LilWhiteMouse wrote:Shilla doesn't work as intended anymore.

Shilla should be fine as of r3795.
User avatar
randi
Site Admin
 
Joined: 09 Jul 2003

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Sun Jul 29, 2012 7:45 pm

I've just tried it with r3795 and Shilla's tail still seems horizontal (ie not working) to me.
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby randi » Sun Jul 29, 2012 7:50 pm

Oh, foo. Should be fixed in r3796, then.
User avatar
randi
Site Admin
 
Joined: 09 Jul 2003

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Sun Jul 29, 2012 7:59 pm

Yup, that seems to be it. :thumb:
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Mon Jul 30, 2012 4:03 am

Just wondering, what is the amplitude of a floatbob? I'm just trying to get a clear understanding of how likely it is that it might cause problems with shooting at an enemy.

As I said a while back, I didn't experience any real perceptible problem when shooting a lost soul that had been given +FLOATBOB but I was wondering, for example, how short an actor would have to be before the sprite moved totally out of the actors hitbox.
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby Gez » Mon Jul 30, 2012 4:34 am

Formula is
Code: Select allExpand view
       return finesine[MulScale22(((FloatBobPhase + level.maptime) << FRACBITS) + ticfrac, FINEANGLES) & FINEMASK] * 8;

So, it means finesine(value) * 8, and since the finesine table returns fixed point numbers between 0 and 1, the amplitude is 8.
Gez
 
Joined: 06 Jul 2007

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Mon Jul 30, 2012 5:06 am

I'm not quite sure from the formula - is that 8 units for the full amplitude (ie from the top of one wave to the trough of the next) or is that 8 up and 8 down giving a total of 16?

Even with that doubt, either way, it's going to have to be a pretty small target and involve some precision shooting before render-only floatbobbing creates noticeable aiming inconsistencies. I suspect that it may never be noticed in any normal, workable mod.
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby Blzut3 » Mon Jul 30, 2012 5:21 am

Not to mention if the user has auto aim on then any difference would be corrected.
Blzut3
Pronounced: B-l-zut
 
Joined: 24 Nov 2004

Re: +FLOATBOB backwards-compatibility

Postby Enjay » Mon Jul 30, 2012 5:27 am

Indeed. I suspect even "low" or "very low" would be enough most of the time. With the time spent at the extremes of the floatbob (ie where the sprite is furthest away from the centre of its hitbox) being only a small part of the full cycle, I don't really see this causing a major issue. Hell, some people even include sprites with bigger offsets than that anyway.
User avatar
Enjay
The Force is strong with this one.
 
Joined: 15 Jul 2003
Location: Scotland

Re: +FLOATBOB backwards-compatibility

Postby Blue Shadow » Mon Jul 30, 2012 10:37 am

randi wrote:The Afrit doesn't even use floatbob, so how is it relevant or broken?

The version of the Afrit in the Ultimate Torment & Torture and the one in the ZDoom Community Map Project (both, the Afrit itself and the boss of tha map, the Oblivion Demon) have the flag in their code.
User avatar
Blue Shadow
 
Joined: 14 Nov 2010

Re: +FLOATBOB backwards-compatibility

Postby Zhs2 » Mon Jul 30, 2012 6:33 pm

Confirmed from ZDCMP1. Both enemies mentioned are included.

Code: Select allExpand view
ACTOR OblivionDemon 222
{ 
   Health 6000 
   Speed 12
   Radius 64
   Height 200
   PainChance 12
   Mass 16000
   
+BOSS
   Meleedamage 40 
   SeeSound 
"OblivSight"
   PainSound "baron/pain"
   DeathSound "OblivDeath"
   ActiveSound "baron/active"
   MeleeSound "baron/melee"
   Missiletype "OblivionBall"
   MissileHeight 88
   REACTIONTIME 8
   MONSTER
   Scale 3.0
   
+FLOORCLIP
   
+NORADIUSDMG
   
+NOGRAVITY
   
+FLOATBOB
   
+FLOAT
   Obituary 
"%o was nuked into oblivion by the Oblivion Demon" 
   HitObituary 
"%o found the Oblivion Demon too hot to handle." 
   States 
   
{ 
   Spawn
:
      FRIT ABCD 4 Bright A_Look 
      Loop
   See
:
      FRIT A 0 A_CustomMissile("OblivionOrbitComet", 44, 0, 0)
      FRIT A 0 A_CustomMissile("OblivionOrbitComet2", 44, 0, 180)
      FRIT AABBCCDD 2 Bright A_Chase 
      Goto See 
+2
   Melee
:
      FRIT ST 8 Bright A_FaceTarget
      FRIT U 6 Bright A_MeleeAttack
      Goto See 
+2
   Missile
:
      FRIT E 0 A_Jump(196,15)
      FRIT EF 6 BRIGHT A_FaceTarget
      FRIT G 0 BRIGHT A_CustomMissile 
("OblivionFireSummoner", 88, 0, 0)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 30)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 60)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 90)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 120)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 150)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, 180)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, -150)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, -120)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, -90)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, -60)
      FRIT G 6 BRIGHT A_CustomMissile ("OblivionFireSummoner", 88, 0, -30)
      GoTo See +2
      FRIT E 0 A_Jump
(160,4)
      FRIT EF 6 Bright A_FaceTarget
      FRIT G 6 Bright A_CustomMissile 
("OblivionBall", 88, 0, 0)
      Goto See +2
      FRIT E 0 A_Jump
(128,8)
      FRIT EF 6 Bright A_FaceTarget
      FRIT G 0 BRIGHT A_PlaySound
("OblivAttack")
      FRIT G 0 Bright A_CustomMissile("OblivionComet", 88, 0, 0)
      FRIT G 0 Bright A_CustomMissile("OblivionComet", 88, 0, 30)
      FRIT G 5 BRIGHT A_CustomMissile("OblivionComet", 88, 0, -30)
      FRIT G 0 Bright A_CustomMissile("OblivionComet", 88, 0, 15)
      FRIT G 5 Bright A_CustomMissile("OblivionComet", 88, 0, -15)
      Goto See +2
      FRIT EF 6 BRIGHT A_FaceTarget
      FRIT G 0 BRIGHT A_CustomMissile 
("OblivionBall", 88, 0, 0)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionBall", 88, 0, 10)
      FRIT G 0 BRIGHT A_CustomMissile ("OblivionBall", 88, 0, -10)
      GoTo See +2
   Pain
: 
      FRIT HH 4 Bright A_Pain 
      Goto See 
+2
   Death
: 
      FRIT I 0 Bright A_NoGravity
      FRIT I 6 Bright A_Scream
      FRIT J 5 Bright A_NoBlocking
      FRIT KLMNOPQR 4 Bright
      Stop 
   
} 
}

actor OblivionComet
{
    Radius 12
    Height 16
    Speed 10
    Damage 20
    ExplosionDamage 160
    ExplosionRadius 320
    Scale 1.1
    PROJECTILE
    SeeSound 
"OvlivAttack"
    DeathSound "CometExplosion"
    MissileType OblivionCometTail
    MissileHeight 0
    States
    
{
    Spawn:
        COML AAAABBBBCCCC 1 Bright A_MissileAttack
        Loop
    Death
:
        COML D 3 Bright A_CustomMissile("OblivionCometDeathGlow", 0, 0, 0)
        COML E 3 Bright A_Explode
        COML E 0 A_CustomMissile
("OblivionCometDeath", 0, 0, 0)
        Stop
    
}
}

actor OblivionCometTail
{
    PROJECTILE
    RENDERSTYLE ADD
    
+NOCLIP
    Scale 2.0
    ALPHA 0.4
    States
    
{
    Spawn:
        FRTB ABCDEFGHI 1 Bright
        Stop
    
}
}

actor OblivionCometDeath
{
    PROJECTILE
    RENDERSTYLE ADD
    
+NOCLIP
    Scale 2.0
    ALPHA 0.7
    States
    
{
    Spawn:
        COML FGHI 3 Bright
        Stop
    
}
}

actor OblivionCometDeathGlow : OblivionCometTail
{
    Scale 4.0
    Alpha 0.6
    States
    
{
    Spawn:
        FRTB ABCDEFGHI 3 Bright
        Stop
    
}
}

actor OblivionOrbitCometTail : OblivionCometTail
{
    Scale 1.0
}

actor OblivionOrbitComet : OblivionComet
{
     SeeSound ""
     +NOCLIP
     Scale 1.0
     Speed 10
     MissileType OblivionOrbitCometTail
     MissileHeight 0
     States
     
{
     Spawn:
         COML AABBCC 1 Bright A_MissileAttack
         COML A 0 A_CustomMissile
("OblivionOrbitComet", 0, 0, 75)
         COML A 0 A_MissileAttack
         Stop
     
}
}

actor OblivionOrbitComet2 : OblivionOrbitComet
{
     Scale 1.0
     MissileType OblivionOrbitCometTail
     Speed 10
     MissileHeight 0
     States
     
{
     Spawn:
         COML AABBCC 1 Bright A_MissileAttack
         COML A 0 A_CustomMissile
("OblivionOrbitComet2", 0, 0, -75)
         COML A 0 A_MissileAttack
         Stop
     
}
}

actor OblivionBall
{
    Radius 12
    Height 16
    Speed 30
    Damage 10
    DONTHURTSHOOTER
    PROJECTILE
    RENDERSTYLE ADD
    ALPHA 0.8
    Scale 2.0
    SeeSound 
"OblivAttack"
    DeathSound "imp/shotx"
    States
    
{
    Spawn:
        FRTM AB 5 Bright
        Loop
    Death
:
        FRTM CDE 6 Bright
        Stop
    
}
}

actor OblivionFireSummoner
{
    spawnID 238
    Radius 0
    Height 0
    Speed 20
    Scale 0.25
    PROJECTILE
    
- NOGRAVITY
    States
    
{
    Spawn:
        COML ABCD 4
        Loop
    Death
:
        COML D 3 Bright A_CustomMissile("OblivionCometDeathGlow", 0, 0, 0)
        COML E 3 Bright A_Explode
        COML E 0 A_CustomMissile
("BurningDeath", 0, 0, 150)
        COML E 0 A_CustomMissile("BurningDeath", 0, 0, -150)
        COML E 0 A_CustomMissile("BurningDeath", 0, 0, 180)
        Stop
    
}
}

ACTOR BurningDeath
{
     +FLOORHUGGER
     PROJECTILE
     Speed 36
     
+RIPPER
    SeeSound 
"OblivAttack"
    DeathSound "CometExplosion"
     Damage 4
     RenderStyle ADD
     Height 60
     Radius 24
     States
     
{
     Spawn:
          FIRE ABCD 4 BRIGHT
          FIRE EF 4 BRIGHT
          GoTo Spawn
+4
     Death
:
          FIRE EFGH 4 BRIGHT
          Stop
     
}
}

ACTOR Afrit 3120
{ 
   Health 800 
   Speed 6
   Radius 24
   Height 72
   PainChance 50
   Mass 500
   Meleedamage 10 
   SeeSound 
"baron/sight"
   PainSound "baron/pain"
   DeathSound "baron/death"
   ActiveSound "baron/active"
   MeleeSound "baron/melee"
   Missiletype "AfritBall"
   MissileHeight 44
   REACTIONTIME 8
   MONSTER
   
+NORADIUSDMG
   
+FLOORCLIP
   
+NOGRAVITY
   
+FLOATBOB
   
+FLOAT
   Obituary 
"%o was scorched by an Afrit" 
   HitObituary 
"%o found the Afrit too hot to handle." 
   States 
   
{ 
   Spawn
:
      FRIT ABCD 4 Bright A_Look 
      Loop
   See
:
      FRIT A 0 A_CustomMissile("OrbitComet", 44, 0, 0)
      FRIT A 0 A_CustomMissile("OrbitComet2", 44, 0, 180)
      FRIT AABBCCDD 2 Bright A_Chase 
      Goto See 
+2
   Melee
:
      FRIT ST 8 Bright A_FaceTarget
      FRIT U 6 Bright A_ComboAttack
      Goto See 
+2
   Missile
:
      FRIT E 0 A_Jump(128,4)
      FRIT EF 6 Bright A_FaceTarget
      FRIT G 6 Bright A_ComboAttack
      Goto See 
+2
      FRIT EF 6 Bright A_FaceTarget
      FRIT G 6 Bright A_CustomMissile
("Comet", 44, 0, 0)
      Goto See +2
   Pain
: 
      FRIT HH 4 Bright A_Pain 
      Goto See 
+2
   Death
: 
      FRIT I 0 Bright A_NoGravity
      FRIT I 6 Bright A_Scream
      FRIT J 5 Bright A_NoBlocking
      FRIT KLMNOPQR 4 Bright
      Stop 
   
} 
}

actor Comet
{
    Radius 6
    Height 8
    Speed 10
    Damage 5
    ExplosionDamage 40
    ExplosionRadius 80
    Scale .55
    PROJECTILE
    SeeSound 
"CometLaunch"
    DeathSound "CometExplosion"
    MissileType CometTail
    MissileHeight 0
    States
    
{
    Spawn:
        COMT AAAABBBBCCCC 1 Bright A_MissileAttack
        Loop
    Death
:
        COMT D 3 Bright A_CustomMissile("CometDeathGlow", 0, 0, 0)
        COMT E 3 Bright A_Explode
        COMT E 0 A_CustomMissile
("CometDeath", 0, 0, 0)
        Stop
    
}
}

//******************************************************************************************

actor CometTail
{
    PROJECTILE
    RENDERSTYLE ADD
    
+NOCLIP
    ALPHA 0.4
    States
    
{
    Spawn:
        FRTB ABCDEFGHI 1 Bright
        Stop
    
}
}

//******************************************************************************************

actor CometDeath
{
    PROJECTILE
    RENDERSTYLE ADD
    
+NOCLIP
    ALPHA 0.7
    States
    
{
    Spawn:
        COMT FGHI 3 Bright
        Stop
    
}
}

//******************************************************************************************

actor CometDeathGlow : CometTail
{
    Scale 2.0
    Alpha 0.6
    States
    
{
    Spawn:
        FRTB ABCDEFGHI 3 Bright
        Stop
    
}
}

//******************************************************************************************

actor OrbitCometTail : CometTail
{
    Scale .5
}

//******************************************************************************************

actor OrbitComet : Comet
{
     SeeSound ""
     +NOCLIP
     Scale .28
     Speed 5
     MissileType OrbitCometTail
     MissileHeight 0
     States
     
{
     Spawn:
         COMT AABBCC 1 Bright A_MissileAttack
         COMT A 0 A_CustomMissile
("OrbitComet", 0, 0, 75)
         COMT A 0 A_MissileAttack
         Stop
     
}
}

//******************************************************************************************

actor OrbitComet2 : OrbitComet
{
     MissileType OrbitCometTail
     MissileHeight 0
     States
     
{
     Spawn:
         COMT AABBCC 1 Bright A_MissileAttack
         COMT A 0 A_CustomMissile
("OrbitComet2", 0, 0, -75)
         COMT A 0 A_MissileAttack
         Stop
     
}
}

//******************************************************************************************

actor AfritBall
{
    Radius 6
    Height 8
    Speed 15
    Damage 8
    PROJECTILE
    RENDERSTYLE ADD
    ALPHA 0.8
    SeeSound 
"imp/attack"
    DeathSound "imp/shotx"
    States
    
{
    Spawn:
        FRTM AB 5 Bright
        Loop
    Death
:
        FRTM CDE 6 Bright
        Stop
    
}
}
User avatar
Zhs2
Power of three.
 
Joined: 07 Nov 2008
Location: Maryland, USA

Previous

Return to Closed Bugs

Who is online

Users browsing this forum: Bing [Bot], Yandex [Bot] and 1 guest