No announcement yet.

UCC Problems

  • Filter
  • Time
  • Show
Clear All
new posts

  • UCC Problems

    My first foray into UnrealScript isn't going as smoothly as I hoped. I am trying to subclass ThieveryAI.TGuard, but UCC complains that it cannot find the superclass.

    I tried exporting all classes via UnrealEd, but it only seems to export a few classes and then just sits there for hours (not locked up, but no drive activity). Next I tried to use ucc batchexport and export by class. Some classes export just fine, but many Thievery-related classes don't export usually because there is some texture or sound that cannot be found (i.e. CarletonFont is a common one).

    Is there any way I can tell UCC to search under the Thievery directory for required objects (textures, sounds, etc) or do I have to make copies of all files and place them under the main Unreal Tournament heirarchy?

    I've read through several generic US tutorials, but I wish there were a list of Thievery-specific caveats.

  • #2
    You aren't using the correct ini file. UCC has to use the UnrealTournament.ini for it's editpackages section, which tells it which packages to use for rebuilding.

    To make UCC work with Thievery, rename the UnrealTournament.ini file to UnrealTournament.bak. Then, make a copy of ThAux.ini and name it UnrealTournament.ini. This will now allow you to compile your scripts with all of the proper includes and defines.

    There may be another way to do this, but this method is the quickest and least troublesome method in my opinion.


    • #3
      You do not need to extract the existing .uc files to compile your own packages. Extracting the source is usually for your own benefit, so you have easy access to the source without having to open UEd. You only need to have access to the .u file of a package to subclass classes defined within it. As MO said, you need to tell UCC to load the Thievery packages when you compile. The easiest way is to just tell UCC to look in ThAux.ini, as this file tells UCC to load all Thievery files on compile.

      You can specify an .ini file to use like so:

      [code:1:d27a718566]ucc make -INI=ThAux.ini[/code:1:d27a718566]

      That's all that's needed. The method described in the rest of this post is optional, but I thought I'd post it here as I was going document it somewhere anyway

      I use a seperate .ini file for compiling, as you can exclude packages that you do not need (i.e. packages that you do not reference any objects of from within your code). To do this, create a copy of an .ini file, say ThAux.ini, rename it to ThAux_Build.ini (or whatever) and remove all but the following sections:


      Then remove all non-relevant EditPackage= entries from the [Editor.EditorEngine] section until you have minimised the number of packages loaded. I think I also removed some other variables from that section, as the only other remaining variable left in the below example is CacheSizeMegs.

      As an example, the [Editor.EditorEngine] section of the ThAux_ThieveryLowLevel.ini file I use to build ThieveryLowLevel.u contains only these packages:


      I then run this to compile:

      [code:1:d27a718566]ucc make -INI=ThAux_ThieveryLowLevel.ini[/code:1:d27a718566]

      This is an extreme case (in that I only need to reference 2 other packages), but the compile time is less than 1 second
      Compare this to about 30-60 secs if I had included all the default packages.
      AI Programmer,
      Thievery UT


      • #4
        Thanks much for the info. I ended up using ThAux.ini with ucc make last night, but was too tired to post a followup reply saying that I had fixed the problem. The tip about trimming down the package list will still come in handy.