Cant remove nointeraction flag

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Cant remove nointeraction flag

Re: Cant remove nointeraction flag

by Apeirogon » Sat Mar 31, 2018 9:19 am

Then it must be added to wiki.

I write it because I cant do so.

Re: Cant remove nointeraction flag

by Graf Zahl » Sat Mar 31, 2018 8:24 am

NOINTERACTION needs to set NOBLOCKMAP because the actor does not get linked into the blockmap. But if the flag is cleared, some code may try to access the block links and crash.

Sorry, can't change.

Re: Cant remove nointeraction flag

by _mental_ » Sat Mar 31, 2018 8:08 am

If I knew that, I could move this topic to closed bugs along with the explanation.
From what I saw in the code NOINTERACTION flag is switching on NOBLOCKMAP implicitly.
There is no way to restore it back, i.e. engine doesn't track any flag changes between game tics.
No matter bug or feature it is, to make work at the moment you need to call A_ChangeLinkFlags(0) on the same actor.

Re: Cant remove nointeraction flag

by Apeirogon » Sat Mar 31, 2018 7:15 am

And why it works in such way? "No interaction"is a some kind of a flag comdo?

Re: Cant remove nointeraction flag

by _mental_ » Thu Mar 29, 2018 9:36 am

After removing NOINTERACTION flag you need to explicitly restore BLOCKMAP flag by calling

Code: Select all

A_ChangeLinkFlags(0);

Cant remove nointeraction flag

by Apeirogon » Wed Mar 28, 2018 9:40 am

Actor cant remove nointeraction flag from himself.
Same with pointers to such actor.

Code: Select all

class tdi : doomimp
{

override void tick()
{
	if( (level.time % 373) == 0){self.bnointeraction = true; console.printf("Im horror flying on the wings of night");}
	if( (level.time % 757) == 0){self.bnointeraction = false; console.printf("I should work, but I dont work");}
	super.tick();
}
}

Top