Freeze CMD: Frozen Actors still do certain actions

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: Freeze CMD: Frozen Actors still do certain actions

Re: Freeze CMD: Frozen Actors still do certain actions

by XxMiltenXx » Wed May 15, 2019 3:52 pm

Ah, thanks for the clarification, I wasn't aware of that. Sorry for the false report then.

Re: Freeze CMD: Frozen Actors still do certain actions

by Graf Zahl » Wed May 15, 2019 3:43 pm

More to the point, even when frozen, Tick still runs some actions. This cannot be disabled globally. Tick needs to be called and a Tick override needs to check itself and ensure that the base function still performs the needed actions.

Re: Freeze CMD: Frozen Actors still do certain actions

by Arctangent » Wed May 15, 2019 3:10 pm

You've got it backwards: it's not that the game checks for whether or not an actor is frozen and calls Tick() based on that, Tick() itself checks if the actor is frozen and just doesn't do anything if it is. Subsequently, any code in an Tick() override will run regardless if it doesn't check for that itself.

Freeze CMD: Frozen Actors still do certain actions

by XxMiltenXx » Wed May 15, 2019 2:46 pm

Actors will still perform overriden Tick() when frozen.

Code: Select all

	override void Tick()
	{
		angle += 4;
		SetXYZ((Pos.X + 0.1, Pos.Y, Pos.Z));
		A_LogFloat(angle);
		Super.Tick();
	}
Testable Example is attached.
Start a Level in Doom
Open the Console
Summon Turner
Freeze or Give PowerTimeFreeze

The Actor will still turn and move, even though it shouldn't.
Attachments
Freeze_Bug.wad
(232 Bytes) Downloaded 30 times

Top