Jump to content
Sign in to follow this  
Andrea C.

ITM/EFF file format

Recommended Posts

This information also comes from the BG:EE devs. I thought I'd post it since CamDawg hasn't done so yet. To me, it's tantamount to reading Chinese :)

 

Item_Header_st
	DWORD   nFileType;
	DWORD   nFileVersion;
	STRREF  genericName;
	STRREF  identifiedName;
	RESREF  usedUpItemID;
	DWORD   itemFlags;
	WORD	itemType;
	DWORD   notUsableBy;
	BYTE	animationType[2];
	//WORD	animationType;
	WORD	minLevelRequired;
	WORD	minSTRRequired;
	BYTE	minSTRBonusRequired;
	BYTE	notUsableBy2a; //Uppermost byte of a DWORD
	BYTE	minINTRequired;
	BYTE	notUsableBy2b;
	BYTE	minDEXRequired;
	BYTE	notUsableBy2c;
	BYTE	minWISRequired;
	BYTE	notUsableBy2d;
	BYTE	minCONRequired;
	BYTE	proficiencyType;
	WORD	minCHRRequired;

	DWORD   baseValue;
	WORD	maxStackable;
	RESREF  itemIcon;
	WORD	loreValue;
	RESREF  groundIcon;
	DWORD   baseWeight;
	STRREF  genericDescription;
	STRREF  identifiedDescription;
	RESREF  descriptionPicture;
	DWORD   attributes;

	DWORD   abilityOffset;
	WORD	abilityCount;

	DWORD   effectsOffset;
	WORD	equipedStartingEffect;
	WORD	equipedEffectCount;

};

Item_ability_st
	WORD	type;
	BYTE	quickSlotType;
	BYTE	largeDamageDice; //NEW!
	RESREF  quickSlotIcon;
	BYTE	actionType;
	BYTE	actionCount;
	WORD	range;
	BYTE	launcherType;
	BYTE	largeDamageDiceCount; //New!
	BYTE	speedFactor;
	BYTE	largeDamageDiceBonus; //New!
	SHORT   thac0Bonus;
	BYTE	damageDice;
	BYTE	school;
	BYTE	damageDiceCount;
	BYTE	secondaryType;
	WORD	damageDiceBonus;
	WORD	damageType;
	WORD	effectCount;
	WORD	startingEffect;
	WORD	maxUsageCount;
	WORD	usageFlags;
	DWORD   abilityFlags;
	WORD	missileType;
	WORD	attackProbability[iTEM_ABILITY_NUM_ATTACK_TYPES];

Item_effect_st
	WORD	effectID;
	BYTE	targetType;
	BYTE	spellLevel;
	int	 effectAmount;
	DWORD   dwFlags;
	WORD	durationType;
	DWORD   duration;
	BYTE	probabilityUpper;
	BYTE	probabilityLower;
	RESREF  res;
	DWORD   numDice;
	DWORD   diceSize;
	DWORD   savingThrow;
	LONG	saveMod;
	DWORD   special;

Edited by Andrea C.

Share this post


Link to post

No, "largedamage" fields are not entirely new, Ascension64 already reported them :)

 

0x0011 1 (byte)

Alternative dice thrown

0x0013 1 (byte) Alternative damage bonus

 

etc.

 

What is more interesting, there is no confirmation about these:

 

0x0017 1 (byte) Primary type

0x0019 1 (byte) Secondary type

Edited by Avenger

Share this post


Link to post

They're there (school and secondaryType).

 

Taimon was the first to reverse these fields IIRC.

Share this post


Link to post

They're there (school and secondaryType).

 

Taimon was the first to reverse these fields IIRC.

Where they are then, in the original source???

Of course they could hack the values out of the field, what i found interesting: there is no dedicated field for them.

 

[edit]

Now i see them! Odd, i couldn't see them earlier.

Edited by Avenger

Share this post


Link to post

"To me, it's tantamount to reading Chinese"

If you have a copy of IESDP, check the reference:

iesdp/file_formats/ie_formats/itm_v1.htm

Share this post


Link to post
No, "largedamage" fields are not entirely new, Ascension64 already reported them

The comments reflect the original developers hacking the code, rather than an interpretation by us. Anyway, local copy updated. I've kept some fields separate (e.g. in places we have a dword split into 2 words, with info on how the engine interprets each word).

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...