View previous topic :: View next topic |
Author |
Message |
Body-Guard Unstoppable!
Joined: 08 Jan 2006 Location: Hungary
|
Posted: Mon Aug 12, 2013 10:16 am Post subject: Dehacked cannot override heretic/hexen pickup floating |
|
|
By default, heretic and hexen pickups have the FLOATBOB effect, but when using these items in Doom, this effect may be undesirable. Even when combining dehacked with dehsupp, it is still not possible to remove the floating effect from the pickups. |
|
Back to top |
|
|
Cybershark Spamming!
Joined: 05 Jan 2005 Location: off the grid, but still fighting for the users!
|
Posted: Tue Aug 13, 2013 1:23 am Post subject: |
|
|
That's rubbish, as I've done it myself
The problem is not with DEHACKED, it's with the subsections that the various effects fall under. This was one of those things that Worst explains to you but you never really understand.
Basically, unless you set some flag(s) within the bit range you wish to use, the existing flags will not be reset.
For example, in my WAD, to counteract FLOATBOB on Heretic armor, I set the BLASTED flag. That flag is useless on a pickup, but it overwrote the native one.
This was the definition:
Code: | Thing 213 (SilverShield)
Bits = 1 + BLASTED |
|
|
Back to top |
|
|
Body-Guard Unstoppable!
Joined: 08 Jan 2006 Location: Hungary
|
Posted: Tue Aug 13, 2013 9:16 am Post subject: |
|
|
I used Bits = 0 + SPECIAL which didn't work. SPECIAL means item can be picked up. AFAIK this should also remove the effect but it doesn' work. Nevertheless if yours work, I'll give it a go. |
|
Back to top |
|
|
Sr69Mm-jC Unstoppable!
Joined: 21 Jul 2011
|
Posted: Tue Aug 13, 2013 12:02 pm Post subject: |
|
|
Body-Guard wrote: | I used Bits = 0 + SPECIAL which didn't work. SPECIAL means item can be picked up. AFAIK this should also remove the effect but it doesn' work. Nevertheless if yours work, I'll give it a go. |
SPECIAL is not in the same group as FLOATBOB, hence setting SPECIAL won't remove FLOATBOB.
CyberShark attempted to explain it and provided a good reference link, though it might still be not easy to understand it indeed. I personally prefer ZDoom wiki link for this (and cybershark's link doesn't even contain BLASTED bit he mentioned himself). You can see that some bits start with "MF_", and others start with "MF2_". These are two groups of bits. They are separate. Each object has some bits set in one group and some other bits set in the other group. There also "MF3_" and "MF4_" but I'm not sure if they work at all. I will be explaining this for just the first two groups for now.
Now, let's say you write: Bits=SPECIAL. This sets a bit from group 1. What happens is all other bits from group 1 reset while all bits from group 2 remain the same as they were initially for this object. That is why your heretic item is still floatbobbing. However, BLASTED bit is in group 2. So if you write Bits=BLASTED, all other bits from group 2 are reset (including FLOATBOB) while bits from group 1 remain as they were (we don't care about those anyway). Hence CyberShark's solution works.
I hope it makes some sense now. If MF3_ and MF4_ bits indeed work, the exact same logic is applied for these separate groups too. So, in conclusion:
1) If you wish to add a new bit to an object you will also need to explicitly set the other bits from the same group that the object had before. If you only do Bits=MYNEWBIT it will lose the bits from the same group that it had before.
2) If you wish to unset a specific bit you need to assign another bit from the same group. This would often be something that affects your particular object the least. For example, CyberShark used "blasted" bit which makes projectiles pass through your object; as he said himself this does not affect pickup items anyway, hence it's a good idea to assign this bit in order to get rid of "floatbob". |
|
Back to top |
|
|
Body-Guard Unstoppable!
Joined: 08 Jan 2006 Location: Hungary
|
Posted: Tue Aug 13, 2013 1:57 pm Post subject: |
|
|
Thanks for the detailed explanation. I knew about multiple bit types but I thought once I use the Bits keyword, all of the flags of the actor get reset no matter which section they belong to. |
|
Back to top |
|
|
Cybershark Spamming!
Joined: 05 Jan 2005 Location: off the grid, but still fighting for the users!
|
Posted: Thu Aug 15, 2013 1:24 am Post subject: |
|
|
Thanks for a much clearer explanation, Sr |
|
Back to top |
|
|
|