Tactical Ops 3.4 guru's Umake drives me nuts

Search, find and discuss about Mutators!
LuckyDog
Novice
Posts: 5
Joined: Wed Jul 22, 2020 4:06 pm

Tactical Ops 3.4 guru's Umake drives me nuts

Post by LuckyDog » Wed Jul 22, 2020 4:12 pm

I freaks,
i am doing something worng or i am missing something.
I try to compile a pretty simple mutator (just a test) for tactical ops 3.4 which makes use of the ut99 engine as well as the Tacops SDK.

The Tacops SDK contains 4 Folders (TOModel, TOPModel, s_SWAT, TOSystem). In there are just function prototypes which i believe are Methods i can use to script?

As far as i know i have to have them folders in my tactical ops folder above the system folder.

When i Compile the following script then it says, that it can't find certain classes or the class is not defined. Below you find whats going wrong.

Tools i use are:
- Notepad++
- UMake 1.2 (also tried 1.1)
- TO SDK
- TO Native Game

TacticalOps\System contains s_SWAT.u, TOModel.u, TOPModel.u, TOSystem.u they seem to be compiled just fine.


Test Script:

Code: Select all

class TestClass extends Mutator;

var int RoundNumber;

function PostBeginPlay (){
	SetTimer(1, True);
}

function Timer (){
	RoundNumber = s_GameReplicationInfo(Level.Game.GameReplicationInfo).RoundNumber;
}
Error without putting s_SWAT.u, TOModel.u, TOPModel.u, TOSystem.u to Umake dependencies

Umake Output:

Code: Select all

Bad or missing expression in =.

Explanation

Sorry, no further explanation available.
UCC log:

Code: Select all

Heading: --------------------T2--------------------
Warning: Failed to load 'T2.u': Can't find file 'T2.u'
Warning: Failed loading package: Can't find file 'T2.u'
Log: Analyzing...
Log: FactoryCreateText: Class with ClassFactoryUC (0 1 ..\T2\Classes\T2.uc)
Log: Imported: Class T2.T2
DevCompile: DowngradeClasses:
DevCompile:    Uncompiled: T2
Log: Parsing T2
Log: Compiling T2
Error: H:\TacticalOpsKopie\TO340\T2\Classes\T2.uc(11) : Error, Bad or missing expression in '='
Critical: appError called:

Error with putting s_SWAT.u, TOModel.u, TOPModel.u, TOSystem.u to Umake dependencies

Umake Output:

Code: Select all

TO_SysSpectator.uc (line1) Missing Class definition.
UCC log:

Code: Select all

DevCompile:    Uncompiled due to dependency on TO_MenuBar: TO_GameMenu
DevCompile:    Uncompiled due to dependency on TO_BrowserModLink: TO_BrowserModFact
DevCompile:    Uncompiled due to dependency on TO_RootWindow: TO_InGameObjectives
DevCompile:    Uncompiled due to dependency on TO_MenuBar: TO_InGameObjectives
Log: Parsing TO_SysSpectator
Error: H:\TacticalOpsKopie\TO340\TOPModels\Classes\TO_SysSpectator.uc(1) : Error, Missing 'Class' definition
Critical: appError called:
Critical: Failed due to errors.

The logs are stripped due to readability.

It is almost like the UMake tries to decompile the TO*.u packages. Funny enough, the Error Error: H:\TacticalOpsKopie\TO340\TOPModels\Classes\TO_SysSpectator.uc(1) : Error, Missing 'Class' definition
is wrong. It is there and looks pretty fine.

However, if i change the order of the 4 .u packages in the dependencies of umake, i do get other errors with missing TO_*.uc classes.

All ressources on the web seem to be down. Can someone shed some light on this?


Thanks in advance, LuckyDog

User avatar
sektor2111
Godlike
Posts: 5194
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by sektor2111 » Wed Jul 22, 2020 4:17 pm

I think variable "s_GameReplicationInfo" and generally data called in process should have some definition as a "Local" in function timer and assigned, or it needs to be as "var" defined in class and also taken somehow before dealing with a None thing.
Just my two cents.

LuckyDog
Novice
Posts: 5
Joined: Wed Jul 22, 2020 4:06 pm

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by LuckyDog » Wed Jul 22, 2020 4:31 pm

Thanks for your 2 cents, i forgot to mention that i tried this:

Code: Select all

function Timer (){
	
	local s_GameReplicationInfo sGRI;

}
Leads into the exact same problem.

LuckyDog

User avatar
sektor2111
Godlike
Posts: 5194
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by sektor2111 » Wed Jul 22, 2020 4:36 pm

Then compiler doesn't have a resource available containing that "s_GameReplicationInfo" thing for doing code links. Other advanced coders or pros can explain better what it's about. If those packages were screwed against future coding you need replacements - said place-holders.

LuckyDog
Novice
Posts: 5
Joined: Wed Jul 22, 2020 4:06 pm

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by LuckyDog » Wed Jul 22, 2020 5:18 pm

Thats the problem i have. But the ressources are there. I also dont think, that the binaries are screwed.

It looks like, the compiler tries to decompile the sources into .uc before it links things together. I am not a compiler guru but thats what the second log actually says.

User avatar
sektor2111
Godlike
Posts: 5194
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by sektor2111 » Wed Jul 22, 2020 11:37 pm

I'm not familiar with TO games but I know what happens if you want to compile a MonsterHunt mutator for UT using plain original file. It won't work because it was bugged on purpose. For compiling something for MH it's needed a place-holder or another clean compilation. If TO was done in the same way then you need to find those clean resources, or there are needed place-holders with functions and variables, not a lot of content.

LuckyDog
Novice
Posts: 5
Joined: Wed Jul 22, 2020 4:06 pm

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by LuckyDog » Thu Jul 23, 2020 9:18 am

This is whats called "prototyping" or "header files". I still dont think there is something like a "bug on purpose" accept it would be in the header files (the SDK).

The 4 binaries must be working otherwise the game wont work.

Also, if i use the SDK, which is pretty much just an undocumented header/prototype collection (what you call dummy), i am able to rebuild the 4 sources and the game works again.

Example: I am able to rebuild s_SWAT.u & TOSystem.u by using the s_SWAT.uc classes & the TOSystem.uc classes. So i know that they work and there is no bug in there neither in the sdk.

But as soon as i build an own class and use the dummy (prototypes) as dependency, the errors occurs. It says clearly the path where it expects a certain class definition from which i know it is there but it doesnt find it.

I belive, that umake is doing something wrong here. As soon as it goes to this class definition it crashes because the definition has an own dependency on something else in the sdk that wasnt build at that point in time.

Thats why you can change the order of dependencies in umake. If i flip the order around (16 .ufiles). I get to other errors and missing class definitions.

I believe i have to write an own makefile and feed it through the ucc.exe.

User avatar
sektor2111
Godlike
Posts: 5194
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by sektor2111 » Thu Jul 23, 2020 2:06 pm

There is another thing to take in account, packages with classes removed, they can be compiled but other devs depending on them and calling a missing class will fail. I can recreate such packages like BBoyShare which are having a different structure. In one of them some decoration is missing. As result, a map done with package more filled will crash game if it's used the poorly loaded package and not the original - named the same. Here is questioning if that s_GameReplicationInfo exist somewhere. I'm curious too what have others to say here.

User avatar
Barbie
Godlike
Posts: 2064
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Tactical Ops 3.4 guru's Umake drives me nuts

Post by Barbie » Thu Jul 23, 2020 8:04 pm

A simple text search shows that LeagueAS140-Addon1g.u and LeagueAS140.u contains s_GameReplicationInfo also.
None of the Actors in LeagueAS140-Addon1g.u I've inspected show any code, not even in UTPT. Compiling is not possible ("Missing class definition").
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett