ITP explanation
Come here for tutorials and 3d training. The aim is to point out good 3d training sites or methods.

Moderators: Winterhawk99, Mermut, Bannor Bloodfist

Post Reply
User avatar
Bannor Bloodfist
Posts: 1309
Joined: Fri Oct 09, 2009 11:45 pm
ctp: Yes
dla: Yes
TBotR: Yes
nwnihof: Yes

ITP explanation

Post by Bannor Bloodfist »

I use the TlkEdit program by EwaldTheUnimaginative to edit the .itp as it allows me to also have the .tlk file open at the same time. It allows other .gff file type edits as well and there ARE other editors out there.

A tileset can have up to TWO different .itp files.

in my example pics, we will be working with the pallette files for the TCP White Wizard tileset, so the names will reflect that.

the Two files:

tcww0Pal.itp <<-- this file only gets changes if you are adding NEW sections to the pallette other than 'Features, Groups, Terrain' that are in the 'standard pallette file below.

tcww0PalStd.itp <<-- This file has 3 sections that we will be working with.
A 'Standard Pallette' has 3 seperate sub-folder type entries:

Features <<-- Features are SINGLE tile entries, ALWAYS. Like a Treasure or a Big Tree, that only take one, single, tile spot when you paint it down.

Groups <<-- Groups are entries that require MORE than a single spot when painted, these can be 1x2, 1x3, 1x4, 2x2, 2x3, 2x4, etc. I have only seen a few instances of anything larger than 4x4 for these. It is possible to create a group as large as 32x32, but that would mean you are forcing the builder to use only this single group in any given area.

Terrain <<-- These are special tiles and require a MUCH longer explanation, that I will not cover here.

Note that EVERY feature AND group is listed in the .set file as a group entry at the bottom of the .set file.

Now on to a display of what I am talking about:


Image


When you first open the the tcww0palstd.itp file you will only see 'main' listed. Be sure to click the plus sign to open that up.

Then you will only see 3 etries, Zero, 1 and 2.

Zero == Features
1 == Groups
2 == Terrain

We will be working with Group Zero, the Features list which is what is displayed in the edited pic above.

Entry Zero in this list shows a STRREF / DWord followed by the number of the line from the .tlk file that gives that entry it's name

Image


So we see that the DWord number points to line 63485 in the .tlk file and that line says 'Treasure 1'.

Note that this is Entry Zero, and it is listed as 'Treasure 1' and you might think that this entry would show up first in the pallette when building. However, the toolset always alpah sorts this list, so it's actual placement HERE doesn't matter.

In this particular instance, whomever originally created this pallette file, inserted this entry instead of adding it to the end.

So, next piece of this Entry Zero is a RESREF (not a STRREF), CResRef and it has manually typed in the actual FILENAME of the tile for this feature. If this were a Group entry, not a Feature, this entry would be the FIRST tile in that group as listed in the .set file.

(Note: I think, THINK, that the FIRST entry in the features list has to match the first Group entry in the .set file, after that, it no longer matters though, as entries get added along the way, the system automatically finds them)

in this case the .set file has this entry for the first group:

Code: Select all

[GROUPS]
Count=58

[GROUP0]
Name=Treasure01
Rows=1
Columns=1
Tile0=108
and the actual tile entry for tile 108 is

Code: Select all

[TILE108]
Model=tcww0_q02_01
WalkMesh=msb01
TopLeft=floor
TopLeftHeight=0
TopRight=floor
TopRightHeight=0
BottomLeft=floor
BottomLeftHeight=0
BottomRight=floor
BottomRightHeight=0
Top=
Right=
Bottom=
Left=
MainLight1=1
MainLight2=1
SourceLight1=1
SourceLight2=1
AnimLoop1=1
AnimLoop2=1
AnimLoop3=1
Doors=0
Sounds=0
PathNode=A
Orientation=0
ImageMap2D=mi_tcww0_q02_01
The ONLY info we need from this actual tile entry is the physical tilename, which is called 'model' in the code above.

Ok, now further down in that first pic, you see entry 30 which has a text name instead of a .tlk entry. Sometimes this is necessary if you can't find a .tlk line that matches what you want. I won't go into the political issue of creating NEW .tlk entries as that is much more trouble than it is worth. However, the advantage of a standard .tlk entry, is that it is automatcally translated into whatever language the end user has on their computer installation of NWN. A NON-Standard .tlk entry will NOT be translated automatically, and you would be forced to distribute your .tlk file along with the tileset. Which runs the risk of damaging something on THEIR machine as the .tlk file is used for many, many things. So, don't do that unless you absolutely must.

Anyway, for entry 30, we changed it's type from DWord with a number pointing to the .tlk file to a type of 'NAME' 'CExoString' with our own manually typed in name. In this case, 'Forest Wall Gate 4'.

Now, when dealing with GROUP entries in the pallette file, the only tile that gets entered in the pallette is the FIRST tile listed in the group section from the .set file. IE, a 2x2 group has 4 tiles, the first tile listed for/from that group has to be the one entered here in the pallette.
Image

This is actual group number 55 from the .set file.

Code: Select all

[GROUP55]
Name=Forest Stairs Down 2x2
Rows=2
Columns=2
Tile0=289
Tile1=290
Tile2=291
Tile3=292
and lists tile number 289 as first tile of the group

Code: Select all

[TILE289]
Model=tcww0_o36_01
WalkMesh=msb01
TopLeft=forestfloor
TopLeftHeight=0
TopRight=forestfloor
TopRightHeight=0
BottomLeft=forestfloor
BottomLeftHeight=0
BottomRight=forestfloor
BottomRightHeight=0
Top=
Right=
Bottom=
Left=
MainLight1=1
MainLight2=1
SourceLight1=1
SourceLight2=1
AnimLoop1=1
AnimLoop2=1
AnimLoop3=1
Doors=1
Sounds=0
PathNode=a
Orientation=0
VisibilityNode=A
VisibilityOrientation=0
DoorVisibilityNode=A
DoorVisibilityOrientation=0
ImageMap2D=mi_tcww0_o36_01
Again, all we care about here is the model name in this case Model=tcww0_o36_01
So that is what is entered for the RESREF CResRef entry in the .itp.

-----------------------


So, to quickly recap, you modify the list by adding structs to the list, best is to start with the last number listed and just add to that if adding NEW entries OR to edit existing entries to point to YOUR new tiles.

99% of folks start with a standard pallette file from an existing tileset, and edit it as they need.
CTP Team Lead

Post Reply