"This superfield was not present in UT v436"

Discussions about Coding and Scripting
User avatar
Barbie
Godlike
Posts: 3355
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

"This superfield was not present in UT v436"

Post by Barbie »

I continued the work on an old map and fixed the code of a "FrozenSkaarjWorrior", when I got the following message on saving the map:
Function MyLevel.CrevsLvlDecos.PostBeginPlay has superfield Engine.Decoration.PostBeginPlay. This superfield was not present in UT v436, so this package will not work on UT v436 clients or servers. Do you want to use Engine.Actor.PostBeginPlay as the superfield to fix this compatibility problem?
The code of MyLevel.CrevsLvlDecos:

Code: Select all

class CrevsLvlDecos extends Decoration abstract;
...
function PostBeginPlay() {

	if (bActivateFadeOut)
	{
		If (Visible_RadiusBasic == 0) Visible_RadiusBasic = 768;
		If (Visible_HeightBasic == 0) Visible_HeightBasic = 768;
		If (Visible_RadiusExtra == 0) Visible_RadiusExtra = 256;
		If (Visible_HeightExtra == 0) Visible_HeightExtra = 256;
		self.VisibilityRadius = Visible_RadiusBasic+rand(Visible_RadiusExtra);
 		self.VisibilityHeight = Visible_HeightBasic+rand(Visible_HeightExtra);
	}
}
What to do? :???:

EDIT: see also thread Package incompatibility when compiling with UCC (PostBeginPlay)    
Auto merged new post submitted 11 hours 45 minutes later
I mean, CrevsLvlDecos.PostBeginPlay() does not even call Super.PostBeginPlay()? Why the warning then?
"If Origin not in center it be not in center." --Buggie
Buggie
Godlike
Posts: 3592
Joined: Sat Mar 21, 2020 5:32 am

Re: "This superfield was not present in UT v436"

Post by Buggie »

Because any use of function, regardless of call Super or not, make link to parent function. That how compiler and engine works.   
Auto merged new post submitted 2 minutes later
Barbie wrote: Mon May 05, 2025 11:08 amWhat to do?
Answer "yes" to compatibility question. And there will be no problem with old clients. New clients will work fine as well.