Jump to content

PRO fileformat


Avenger

Recommended Posts

class CProjectileFileFormat

WORD m_wFileType; // list of projectile file types, default CPROJECTILEFILEFORMAT_FILETYPE_PROJECTILEBAM

SHORT m_speed; // number, default 20

DWORD m_dwFlags;

CResRef m_fireSoundRef; // string, default empty

CResRef m_arrivalSoundRef; // string, default empty

CResRef m_visualEffectRef; // string, default empty

SHORT m_sparkleColor; // list of sparkle colors, default CSPARKLE_COLORTYPE_BLACK

 

BYTE padding[2];

DWORD reservedSpace[53];

 

 

CPROJECTILEFILEFORMAT_FILETYPE_PROJECTILE 0x0001

CPROJECTILEFILEFORMAT_FILETYPE_PROJECTILEBAM 0x0002

CPROJECTILEFILEFORMAT_FILETYPE_PROJECTILEAREA 0x0003

 

CPROJECTILEFILEFORMAT_FLAGS_SPARKLETRAIL 0x00000001 // default OFF

CPROJECTILEFILEFORMAT_FLAGS_HASHEIGHT 0x00000002 // default ON

CPROJECTILEFILEFORMAT_FLAGS_LOOPFIRESOUND 0x00000004 // default OFF

CPROJECTILEFILEFORMAT_FLAGS_LOOPARRIVALSOUND 0x00000008 // default OFF

CPROJECTILEFILEFORMAT_FLAGS_IGNORETARGET 0x00000010 // default OFF

CPROJECTILEFILEFORMAT_FLAGS_BACKLIST 0x00000020 // default OFF

 

CSPARKLE_COLORTYPE_BLACK 0x0001

CSPARKLE_COLORTYPE_BLUE 0x0002

CSPARKLE_COLORTYPE_CHROMATIC 0x0003

CSPARKLE_COLORTYPE_GOLD 0x0004

CSPARKLE_COLORTYPE_GREEN 0x0005

CSPARKLE_COLORTYPE_PURPLE 0x0006

CSPARKLE_COLORTYPE_RED 0x0007

CSPARKLE_COLORTYPE_WHITE 0x0008

CSPARKLE_COLORTYPE_ICE 0x0009

CSPARKLE_COLORTYPE_STONE 0x000A

CSPARKLE_COLORTYPE_MAGENTA 0x000B

CSPARKLE_COLORTYPE_ORANGE 0x000C

 

CPROJECTILEBAMFILEFORMAT_NUMCOLORS 7

 

CPROJECTILEBAMFILEFORMAT_FLAGS_FALSECOLORED 0x00000001 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_SMOKE 0x00000002 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_SMOKEFALSECOLORED 0x00000004 // default ON

CPROJECTILEBAMFILEFORMAT_FLAGS_TINT 0x00000008 // default ON

CPROJECTILEBAMFILEFORMAT_FLAGS_HEIGHT 0x00000010 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_SHADOW 0x00000020 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_GLOW 0x00000040 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_BRIGHTEST 0x00000080 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_BRIGHTESTIFFAST 0x00000100 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_BRIGHTEST3DONLYOFF 0x00000200 // default OFF

 

CPROJECTILEBAMFILEFORMAT_FLAGS_PUFF_ATTARGET 0x00000001 // default OFF

CPROJECTILEBAMFILEFORMAT_FLAGS_PUFF_ATSOURCE 0x00000002 // default OFF

 

// 504 bytes in size

CProjectileBAMFileFormat

DWORD m_dwBAMFlags;

CResRef m_vidCell; // string, default empty

CResRef m_shadowVidCell; // string, default empty

BYTE m_seqVidCell; // number, default 0

BYTE m_seqShadowVidCell; // number, default 0

SHORT m_glowIntensity; // number, default 0

SHORT m_glowSizeX; // number, default 0

SHORT m_glowSizeY; // number, default 0

CResRef m_paletteResRef; // string, default empty

BYTE m_colors[CPROJECTILEBAMFILEFORMAT_NUMCOLORS]; // list of color ranges, default CVIDPALETTE_HAIR_BLACK

BYTE m_smokePeriod; // number, default 1

BYTE m_smokeColors[CPROJECTILEBAMFILEFORMAT_NUMCOLORS]; // list of color ranges, default CVIDPALETTE_CLOTH_DK_GREY

BYTE m_numDirections; // list of {1, 5, 9}, default of 1

WORD m_smokeAnimationCode; // list of animation codes, default of CGAMEANIMATIONTYPE_SMOKE_PUFF_LARGE

 

CResRef m_cPuffEffect1;

CResRef m_cPuffEffect2;

CResRef m_cPuffEffect3;

WORD m_nPuff1Spacing;

WORD m_nPuff2Spacing;

WORD m_nPuff3Spacing;

DWORD m_dwPuffFlags;

 

DWORD reservedSpace[42];

 

CPROJECTILEAREAFILEFORMAT_FLAGS_CENTERBAM 0x00000001 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_CHECKFORNONSPRITES 0x00000002 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_DETONATEONLYIFTARGETS 0x00000004 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_DELAYEDTRIGGER 0x00000008 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_SPARKLEEXPLOSION 0x00000010 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_CHUNKSEXPLOSION 0x00000020 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_LIMITTARGETS 0x00000040 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_PARTYONLY 0x00000080 // default ON

CPROJECTILEAREAFILEFORMAT_FLAGS_DURATIONEQUALWIZLEVEL 0x00000100 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_DURATIONEQUALPRSLEVEL 0x00000200 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_VVCATCENTER 0x00000400 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_CONEFROMCASTER 0x00000800 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_IGNORELOS 0x00001000 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_CENTERBAMWAIT 0x00002000 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_FORCEINITIALDELAY 0x00004000 // default OFF

CPROJECTILEAREAFILEFORMAT_FLAGS_ONETARGETONLY 0x00008000 // default OFF

 

CGAMEFIREBALL_TYPE_NONE MAXBYTE

CGAMEFIREBALL_TYPE_FIRE 0

CGAMEFIREBALL_TYPE_CLOUD 1

CGAMEFIREBALL_TYPE_CLOUDKILL 2

CGAMEFIREBALL_TYPE_STORM 3

CGAMEFIREBALL_TYPE_GREASE 4

CGAMEFIREBALL_TYPE_WEB 5

CGAMEFIREBALL_TYPE_METEOR 6

CGAMEFIREBALL_TYPE_WILTING 7

CGAMEFIREBALL_TYPE_WEIRD 8

CGAMEFIREBALL_TYPE_ENTANGLE 9

CGAMEFIREBALL_TYPE_COLORSPRAY 10

CGAMEFIREBALL_TYPE_CONECOLD 11

CGAMEFIREBALL_TYPE_HOLYSMITE 12

CGAMEFIREBALL_TYPE_UNHOLYSMITE 13

CGAMEFIREBALL_TYPE_PRISMSPRAY 14

CGAMEFIREBALL_TYPE_FIRE_DRAGON 15

CGAMEFIREBALL_TYPE_STORM_OF_VENGEANCE 16

CGAMEFIREBALL_TYPE_FIRE_PURPLE 17

CGAMEFIREBALL_TYPE_FIRE_DRAGON_GREEN 18

 

// 760 bytes in size

CProjectileAreaFileFormat

DWORD m_dwAreaFlags;

WORD m_triggerRange; // number, default 256

WORD m_explosionRange; // number, default 256

CResRef m_explodeSound; // string, default empty

WORD m_nDelay; // number, default 100

WORD m_explodeId; // list of animation codes, default CGAMEANIMATIONTYPE_CHUNKS

WORD m_sparkleExplosionProjectile; // list of projectile types, default ITEM_MISSILETYPE_HIT_NECROMANCY_AREA

BYTE m_nRepetitionCount; // number, default 1

BYTE m_fireBallType; // list of fireball types, default CGAMEFIREBALL_TYPE_FIRE

BYTE m_ringColor; // list of color ranges, default CVIDPALETTE_FIRE_NORMAL

BYTE padding1;

WORD m_secondaryProjectile; // list of projectile types, default ITEM_MISSILETYPE_INVISIBLE_TRAVELLING

CResRef m_centerVVC;

WORD m_coneSize; // cone arc in degrees (1-359), default 45

WORD padding2;

 

DWORD reservedSpace[54];

Link to comment

Ooh, I sense an IESDP update soon. While you're updating the page, can we get this text updated for the explosion area (0x206):

 

Trigger radius (divide by approx 8.5 to receive radius in feet)

 

Dividing by 8.5 will get you the diameter, not the radius. I suspect the same is true for the trigger area, 0x204.

Link to comment

So it's actually updated but not uploaded?

 

While we're at it, how about a css reworking on the whole thing, especially the Effects page. All those tables and lists could be under spoiler tags, especially the needlessly repeated ones like color palettes.

 

Speaking of needlessly repeated: six times, once for each of the attribute stats, it explains the whole Timing vis white/red display issue. How about showing that just once and linking to it from the other five? Similarly, there are sixty-one iterations of this:

 

Known values for 'Type' are:

0 Cumulative Modifier -> {effect} = {effect}+ 'Statistic Modifier' value

1 Flat Value Modifier -> {effect}= 'Statistic Modifier' value

2 Percentage Modifier -> {effect}= ({effect}* 'Statistic Modifier' value) / 100

 

I think providing this just once would be sufficient.

 

Finally, the "parameter 1; parameter 2" thing is obviously a relic from IEEP days. Any chance of getting the verbiage updated for more modern editing methods like NI and weidu (like hex addresses for the params)?

 

Thanks! I eagerly anticipate not going through archived threads so I don't post fixes that are already accounted for.

Link to comment

Alright, this is getting silly. Am I to understand that effects like Poison and Haste don't actually set the appropriate STATE? Because if they do, why is this not in the IESDP?

 

The description for Haste doesn't even say what the different types do. Considering how excessively explicit most of the other descriptions are, are we to assume that the vanilla spell descriptions are, in fact, accurate? This is certainly not the case for all spells.

 

[size=3]#26 (0x01A)Item: Remove Curse [26]
Parameter #1: Irrelevant
Parameter #2: Irrelevant
Description:[/size]

[size=3]Removes cursed items from the targeted creature(s).[/size]

Does this literally remove the cursed items, or does it unequip them and put them into inventory?

Link to comment

The offsets for weidu are a godsend convenience, for sure, but the rest looks like it was abandoned years ago. If it's not accurate -- nevermind laughably incomplete after 12+ years -- free is less than irrelevant. What kind of asshole uses that as justification? I hope you're not the official iesdp spokesperson. Updating more than the local copy is the prerequisite to suggesting making submissions.

 

There was talk that BGEE would bring in new players and new modders. If all we can expect is the old timers sitting around telling war stories... lol, emoticons are broken. Figures.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...