@ -12,18 +12,18 @@ void printAIPackage(ESM::AIPackage p)
std : : cout < < " Duration: " < < p . mWander . mDuration < < std : : endl ;
std : : cout < < " Time of Day: " < < ( int ) p . mWander . mTimeOfDay < < std : : endl ;
if ( p . mWander . mUnk ! = 1 )
std : : cout < < " Unknown: " < < ( int ) p . mWander . mUnk < < std : : endl ;
std : : cout < < " Unknown: " < < ( int ) p . mWander . mUnk < < std : : endl ;
std : : cout < < " Idle: " ;
for ( int i = 0 ; i ! = 8 ; i + + )
std : : cout < < ( int ) p . mWander . mIdle [ i ] < < " " ;
std : : cout < < ( int ) p . mWander . mIdle [ i ] < < " " ;
std : : cout < < std : : endl ;
}
else if ( p . mType = = ESM : : AI_Travel )
{
std : : cout < < " AIType Travel: " < < std : : endl ;
std : : cout < < " Travel Coordinates: ( " < < p . mTravel . mX < < " , "
< < p . mTravel . mY < < " , " < < p . mTravel . mZ < < " ) " < < std : : endl ;
< < p . mTravel . mY < < " , " < < p . mTravel . mZ < < " ) " < < std : : endl ;
std : : cout < < " Travel Unknown: " < < ( int ) p . mTravel . mUnk < < std : : endl ;
}
else if ( p . mType = = ESM : : AI_Follow | | p . mType = = ESM : : AI_Escort )
@ -32,7 +32,7 @@ void printAIPackage(ESM::AIPackage p)
else std : : cout < < " AIType Escort: " < < std : : endl ;
std : : cout < < " Follow Coordinates: ( " < < p . mTarget . mX < < " , "
< < p . mTarget . mY < < " , " < < p . mTarget . mZ < < " ) " < < std : : endl ;
< < p . mTarget . mY < < " , " < < p . mTarget . mZ < < " ) " < < std : : endl ;
std : : cout < < " Duration: " < < p . mTarget . mDuration < < std : : endl ;
std : : cout < < " Target ID: " < < p . mTarget . mId . toString ( ) < < std : : endl ;
std : : cout < < " Unknown: " < < ( int ) p . mTarget . mUnk < < std : : endl ;
@ -51,6 +51,27 @@ void printAIPackage(ESM::AIPackage p)
std : : cout < < " Cell Name: " < < p . mCellName < < std : : endl ;
}
void printEffectList ( ESM : : EffectList effects )
{
int i = 0 ;
std : : vector < ESM : : ENAMstruct > : : iterator eit ;
for ( eit = effects . mList . begin ( ) ; eit ! = effects . mList . end ( ) ; eit + + )
{
std : : cout < < " Effect[ " < < i < < " ]: " < < eit - > mEffectID < < std : : endl ;
if ( eit - > mSkill ! = - 1 )
std : : cout < < " Skill: " < < ( int ) eit - > mSkill < < std : : endl ;
if ( eit - > mAttribute ! = - 1 )
std : : cout < < " Attribute: " < < ( int ) eit - > mAttribute < < std : : endl ;
std : : cout < < " Range: " < < eit - > mRange < < std : : endl ;
// Area is always zero if range type is "Self"
if ( eit - > mRange ! = ESM : : RT_Self )
std : : cout < < " Area: " < < eit - > mArea < < std : : endl ;
std : : cout < < " Duration: " < < eit - > mDuration < < std : : endl ;
std : : cout < < " Magnitude: " < < eit - > mMagnMin < < " - " < < eit - > mMagnMax < < std : : endl ;
i + + ;
}
}
namespace EsmTool {
RecordBase *
@ -293,11 +314,11 @@ void Record<ESM::Potion>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
std : : cout < < " AutoCalc: " < < mData . mData . mAutoCalc < < std : : endl ;
// mEffects missing
printEffectList ( mData . mEffects ) ;
}
template < >
@ -307,16 +328,23 @@ void Record<ESM::Armor>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
if ( mData . mEnchant ! = " " )
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Type: " < < mData . mData . mType < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
std : : cout < < " Health: " < < mData . mData . mHealth < < std : : endl ;
std : : cout < < " Armor: " < < mData . mData . mArmor < < std : : endl ;
std : : cout < < " Enchantment Points: " < < mData . mData . mEnchant < < std : : endl ;
// mParts missing
std : : vector < ESM : : PartReference > : : iterator pit ;
for ( pit = mData . mParts . mParts . begin ( ) ; pit ! = mData . mParts . mParts . end ( ) ; pit + + )
{
std : : cout < < " Body Part: " < < ( int ) ( pit - > mPart ) < < std : : endl ;
std : : cout < < " Male Name: " < < pit - > mMale < < std : : endl ;
if ( pit - > mFemale ! = " " )
std : : cout < < " Female Name: " < < pit - > mFemale < < std : : endl ;
}
}
template < >
@ -350,15 +378,20 @@ void Record<ESM::Book>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
if ( mData . mEnchant ! = " " )
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
std : : cout < < " IsScroll: " < < mData . mData . mIsScroll < < std : : endl ;
std : : cout < < " SkillID: " < < mData . mData . mSkillID < < std : : endl ;
std : : cout < < " Enchantment Points: " < < mData . mData . mEnchant < < std : : endl ;
// mText missing
std : : cout < < " Text: [skipped] " < < std : : endl ;
// Skip until multi-line fields is controllable by a command line option.
// Mildly problematic because there are no parameter to print() currently.
// std::cout << "-------------------------------------------" << std::endl;
// std::cout << mData.mText << std::endl;
// std::cout << "-------------------------------------------" << std::endl;
}
template < >
@ -369,7 +402,7 @@ void Record<ESM::BirthSign>::print()
std : : cout < < " Description: " < < mData . mDescription < < std : : endl ;
std : : vector < std : : string > : : iterator pit ;
for ( pit = mData . mPowers . mList . begin ( ) ; pit ! = mData . mPowers . mList . end ( ) ; pit + + )
std : : cout < < " Power: " < < * pit < < std : : endl ;
std : : cout < < " Power: " < < * pit < < std : : endl ;
}
template < >
@ -377,25 +410,25 @@ void Record<ESM::Cell>::print()
{
// None of the cells have names...
if ( mData . mName ! = " " )
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
if ( mData . mRegion ! = " " )
std : : cout < < " Region: " < < mData . mRegion < < std : : endl ;
std : : cout < < " Region: " < < mData . mRegion < < std : : endl ;
std : : cout < < " Flags: " < < ( int ) mData . mData . mFlags < < std : : endl ;
std : : cout < < " Coordinates: " < < " ( " < < mData . getGridX ( ) < < " , "
< < mData . getGridY ( ) < < " ) " < < std : : endl ;
< < mData . getGridY ( ) < < " ) " < < std : : endl ;
if ( mData . mData . mFlags & ESM : : Cell : : Interior & &
! ( mData . mData . mFlags & ESM : : Cell : : QuasiEx ) )
! ( mData . mData . mFlags & ESM : : Cell : : QuasiEx ) )
{
std : : cout < < " Ambient Light Color: " < < mData . mAmbi . mAmbient < < std : : endl ;
std : : cout < < " Sunlight Color: " < < mData . mAmbi . mSunlight < < std : : endl ;
std : : cout < < " Fog Color: " < < mData . mAmbi . mFog < < std : : endl ;
std : : cout < < " Fog Density: " < < mData . mAmbi . mFogDensity < < std : : endl ;
std : : cout < < " Water Level: " < < mData . mWater < < std : : endl ;
std : : cout < < " Ambient Light Color: " < < mData . mAmbi . mAmbient < < std : : endl ;
std : : cout < < " Sunlight Color: " < < mData . mAmbi . mSunlight < < std : : endl ;
std : : cout < < " Fog Color: " < < mData . mAmbi . mFog < < std : : endl ;
std : : cout < < " Fog Density: " < < mData . mAmbi . mFogDensity < < std : : endl ;
std : : cout < < " Water Level: " < < mData . mWater < < std : : endl ;
}
else
std : : cout < < " Map Color: " < < boost : : format ( " 0x%08X " ) % mData . mMapColor < < std : : endl ;
std : : cout < < " Map Color: " < < boost : : format ( " 0x%08X " ) % mData . mMapColor < < std : : endl ;
std : : cout < < " Water Level Int: " < < mData . mWaterInt < < std : : endl ;
std : : cout < < " NAM0: " < < mData . mNAM0 < < std : : endl ;
@ -412,9 +445,9 @@ void Record<ESM::Class>::print()
std : : cout < < " Attribute2: " < < mData . mData . mAttribute [ 1 ] < < std : : endl ;
std : : cout < < " Specialization: " < < mData . mData . mSpecialization < < std : : endl ;
for ( int i = 0 ; i ! = 5 ; i + + )
std : : cout < < " Major Skill: " < < mData . mData . mSkills [ i ] [ 0 ] < < std : : endl ;
std : : cout < < " Major Skill: " < < mData . mData . mSkills [ i ] [ 0 ] < < std : : endl ;
for ( int i = 0 ; i ! = 5 ; i + + )
std : : cout < < " Minor Skill: " < < mData . mData . mSkills [ i ] [ 1 ] < < std : : endl ;
std : : cout < < " Minor Skill: " < < mData . mData . mSkills [ i ] [ 1 ] < < std : : endl ;
}
template < >
@ -424,9 +457,9 @@ void Record<ESM::Clothing>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
if ( mData . mEnchant ! = " " )
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Type: " < < mData . mData . mType < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
@ -439,10 +472,13 @@ void Record<ESM::Container>::print()
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Flags: " < < mData . mFlags < < std : : endl ;
std : : cout < < " Weight: " < < mData . mWeight < < std : : endl ;
// mInventory missing
std : : vector < ESM : : ContItem > : : iterator cit ;
for ( cit = mData . mInventory . mList . begin ( ) ; cit ! = mData . mInventory . mList . end ( ) ; cit + + )
std : : cout < < " Inventory: Count: " < < boost : : format ( " %4d " ) % cit - > mCount
< < " Item: " < < cit - > mItem . toString ( ) < < std : : endl ;
}
template < >
@ -476,21 +512,21 @@ void Record<ESM::Creature>::print()
std : : cout < < " Magic: " < < mData . mData . mMagic < < std : : endl ;
std : : cout < < " Stealth: " < < mData . mData . mStealth < < std : : endl ;
std : : cout < < " Attack1: " < < mData . mData . mAttack [ 0 ]
< < " - " < < mData . mData . mAttack [ 1 ] < < std : : endl ;
< < " - " < < mData . mData . mAttack [ 1 ] < < std : : endl ;
std : : cout < < " Attack2: " < < mData . mData . mAttack [ 2 ]
< < " - " < < mData . mData . mAttack [ 3 ] < < std : : endl ;
< < " - " < < mData . mData . mAttack [ 3 ] < < std : : endl ;
std : : cout < < " Attack3: " < < mData . mData . mAttack [ 4 ]
< < " - " < < mData . mData . mAttack [ 5 ] < < std : : endl ;
< < " - " < < mData . mData . mAttack [ 5 ] < < std : : endl ;
std : : cout < < " Gold: " < < mData . mData . mGold < < std : : endl ;
std : : vector < ESM : : ContItem > : : iterator cit ;
for ( cit = mData . mInventory . mList . begin ( ) ; cit ! = mData . mInventory . mList . end ( ) ; cit + + )
std : : cout < < " Inventory: Count: " < < boost : : format ( " %4d " ) % cit - > mCount
< < " Item: " < < cit - > mItem . toString ( ) < < std : : endl ;
std : : cout < < " Inventory: Count: " < < boost : : format ( " %4d " ) % cit - > mCount
< < " Item: " < < cit - > mItem . toString ( ) < < std : : endl ;
std : : vector < std : : string > : : iterator sit ;
for ( sit = mData . mSpells . mList . begin ( ) ; sit ! = mData . mSpells . mList . end ( ) ; sit + + )
std : : cout < < " Spell: " < < * sit < < std : : endl ;
std : : cout < < " Spell: " < < * sit < < std : : endl ;
std : : cout < < " Artifical Intelligence: " < < mData . mHasAI < < std : : endl ;
std : : cout < < " AI Hello: " < < ( int ) mData . mAiData . mHello < < std : : endl ;
@ -505,14 +541,19 @@ void Record<ESM::Creature>::print()
std : : vector < ESM : : AIPackage > : : iterator pit ;
for ( pit = mData . mAiPackage . mList . begin ( ) ; pit ! = mData . mAiPackage . mList . end ( ) ; pit + + )
printAIPackage ( * pit ) ;
printAIPackage ( * pit ) ;
}
template < >
void Record < ESM : : Dialogue > : : print ( )
{
std : : cout < < " Type: " < < ( int ) mData . mType < < std : : endl ;
// mInfo missing
// Sadly, there are no DialInfos, because the loader dumps as it
// loads, rather than loading and then dumping. :-( Anyone mind if
// I change this?
std : : vector < ESM : : DialInfo > : : iterator iit ;
for ( iit = mData . mInfo . begin ( ) ; iit ! = mData . mInfo . end ( ) ; iit + + )
std : : cout < < " INFO! " < < iit - > mId < < std : : endl ;
}
template < >
@ -532,7 +573,7 @@ void Record<ESM::Enchantment>::print()
std : : cout < < " Cost: " < < mData . mData . mCost < < std : : endl ;
std : : cout < < " Charge: " < < mData . mData . mCharge < < std : : endl ;
std : : cout < < " AutoCalc: " < < mData . mData . mAutocalc < < std : : endl ;
// mEffects missing
printEffectList ( mData . mEffects ) ;
}
template < >
@ -541,30 +582,30 @@ void Record<ESM::Faction>::print()
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Hidden: " < < mData . mData . mIsHidden < < std : : endl ;
if ( mData . mData . mUnknown ! = - 1 )
std : : cout < < " Unknown: " < < mData . mData . mUnknown < < std : : endl ;
std : : cout < < " Unknown: " < < mData . mData . mUnknown < < std : : endl ;
std : : cout < < " Attribute1: " < < mData . mData . mAttribute1 < < std : : endl ;
std : : cout < < " Attribute2: " < < mData . mData . mAttribute2 < < std : : endl ;
for ( int i = 0 ; i ! = 6 ; i + + )
if ( mData . mData . mSkillID [ i ] ! = - 1 )
std : : cout < < " Skill: " < < mData . mData . mSkillID [ i ] < < std : : endl ;
if ( mData . mData . mSkillID [ i ] ! = - 1 )
std : : cout < < " Skill: " < < mData . mData . mSkillID [ i ] < < std : : endl ;
for ( int i = 0 ; i ! = 10 ; i + + )
if ( mData . mRanks [ i ] ! = " " )
{
std : : cout < < " Rank: " < < mData . mRanks [ i ] < < std : : endl ;
std : : cout < < " Attribute1 Requirement: "
< < mData . mData . mRankData [ i ] . mAttribute1 < < std : : endl ;
std : : cout < < " Attribute2 Requirement: "
< < mData . mData . mRankData [ i ] . mAttribute2 < < std : : endl ;
std : : cout < < " One Skill at Level: "
< < mData . mData . mRankData [ i ] . mSkill1 < < std : : endl ;
std : : cout < < " Two Skills at Level: "
< < mData . mData . mRankData [ i ] . mSkill2 < < std : : endl ;
std : : cout < < " Faction Reaction: "
< < mData . mData . mRankData [ i ] . mFactReaction < < std : : endl ;
}
if ( mData . mRanks [ i ] ! = " " )
{
std : : cout < < " Rank: " < < mData . mRanks [ i ] < < std : : endl ;
std : : cout < < " Attribute1 Requirement: "
< < mData . mData . mRankData [ i ] . mAttribute1 < < std : : endl ;
std : : cout < < " Attribute2 Requirement: "
< < mData . mData . mRankData [ i ] . mAttribute2 < < std : : endl ;
std : : cout < < " One Skill at Level: "
< < mData . mData . mRankData [ i ] . mSkill1 < < std : : endl ;
std : : cout < < " Two Skills at Level: "
< < mData . mData . mRankData [ i ] . mSkill2 < < std : : endl ;
std : : cout < < " Faction Reaction: "
< < mData . mData . mRankData [ i ] . mFactReaction < < std : : endl ;
}
std : : vector < ESM : : Faction : : Reaction > : : iterator rit ;
for ( rit = mData . mReactions . begin ( ) ; rit ! = mData . mReactions . end ( ) ; rit + + )
std : : cout < < " Reaction: " < < rit - > mReaction < < " = " < < rit - > mFaction < < std : : endl ;
std : : cout < < " Reaction: " < < rit - > mReaction < < " = " < < rit - > mFaction < < std : : endl ;
}
template < >
@ -602,8 +643,53 @@ template<>
void Record < ESM : : DialInfo > : : print ( )
{
std : : cout < < " Id: " < < mData . mId < < std : : endl ;
if ( mData . mPrev ! = " " )
std : : cout < < " Previous ID: " < < mData . mPrev < < std : : endl ;
if ( mData . mNext ! = " " )
std : : cout < < " Next ID: " < < mData . mNext < < std : : endl ;
std : : cout < < " Text: " < < mData . mResponse < < std : : endl ;
// Lots missing, more coming
if ( mData . mActor ! = " " )
std : : cout < < " Actor: " < < mData . mActor < < std : : endl ;
if ( mData . mRace ! = " " )
std : : cout < < " Race: " < < mData . mRace < < std : : endl ;
if ( mData . mClass ! = " " )
std : : cout < < " Class: " < < mData . mClass < < std : : endl ;
std : : cout < < " Factionless: " < < mData . mFactionLess < < std : : endl ;
if ( mData . mNpcFaction ! = " " )
std : : cout < < " NPC Faction: " < < mData . mNpcFaction < < std : : endl ;
if ( mData . mData . mRank ! = - 1 )
std : : cout < < " NPC Rank: " < < ( int ) mData . mData . mRank < < std : : endl ;
if ( mData . mPcFaction ! = " " )
std : : cout < < " PC Faction: " < < mData . mPcFaction < < std : : endl ;
// CHANGE? non-standard capitalization mPCrank -> mPCRank (mPcRank?)
if ( mData . mData . mPCrank ! = - 1 )
std : : cout < < " PC Rank: " < < ( int ) mData . mData . mPCrank < < std : : endl ;
if ( mData . mCell ! = " " )
std : : cout < < " Cell: " < < mData . mCell < < std : : endl ;
if ( mData . mData . mDisposition > 0 )
std : : cout < < " Disposition: " < < mData . mData . mDisposition < < std : : endl ;
if ( mData . mData . mGender ! = ESM : : DialInfo : : NA )
std : : cout < < " Gender: " < < mData . mData . mGender < < std : : endl ;
if ( mData . mSound ! = " " )
std : : cout < < " Sound File: " < < mData . mSound < < std : : endl ;
if ( mData . mResultScript ! = " " )
{
std : : cout < < " Result Script: [skipped] " < < std : : endl ;
// Skip until multi-line fields is controllable by a command line option.
// Mildly problematic because there are no parameter to print() currently.
// std::cout << "-------------------------------------------" << std::endl;
// std::cout << mData.mResultScript << std::endl;
// std::cout << "-------------------------------------------" << std::endl;
}
std : : cout < < " Quest Status: " < < mData . mQuestStatus < < std : : endl ;
std : : cout < < " Unknown1: " < < mData . mData . mUnknown1 < < std : : endl ;
std : : cout < < " Unknown2: " < < ( int ) mData . mData . mUnknown2 < < std : : endl ;
std : : vector < ESM : : DialInfo : : SelectStruct > : : iterator sit ;
for ( sit = mData . mSelects . begin ( ) ; sit ! = mData . mSelects . end ( ) ; sit + + )
std : : cout < < " Select Rule: " < < sit - > mType < < " " < < sit - > mSelectRule < < std : : endl ;
}
template < >
@ -613,16 +699,16 @@ void Record<ESM::Ingredient>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
for ( int i = 0 ; i ! = 4 ; i + + )
{
// A value of -1 means no effect
if ( mData . mData . mEffectID [ i ] = = - 1 ) continue ;
std : : cout < < " Effect: " < < mData . mData . mEffectID [ i ] < < std : : endl ;
std : : cout < < " Skill: " < < mData . mData . mSkills [ i ] < < std : : endl ;
std : : cout < < " Attribute: " < < mData . mData . mAttributes [ i ] < < std : : endl ;
// A value of -1 means no effect
if ( mData . mData . mEffectID [ i ] = = - 1 ) continue ;
std : : cout < < " Effect: " < < mData . mData . mEffectID [ i ] < < std : : endl ;
std : : cout < < " Skill: " < < mData . mData . mSkills [ i ] < < std : : endl ;
std : : cout < < " Attribute: " < < mData . mData . mAttributes [ i ] < < std : : endl ;
}
}
@ -630,7 +716,23 @@ template<>
void Record < ESM : : Land > : : print ( )
{
std : : cout < < " Coordinates: ( " < < mData . mX < < " , " < < mData . mY < < " ) " < < std : : endl ;
// Lots missing, more coming
std : : cout < < " Flags: " < < mData . mFlags < < std : : endl ;
std : : cout < < " HasData: " < < mData . mHasData < < std : : endl ;
std : : cout < < " DataTypes: " < < mData . mDataTypes < < std : : endl ;
// Seems like this should done with reference counting in the
// loader to me. But I'm not really knowledgable about this
// record type yet. --Cory
bool wasLoaded = mData . mDataLoaded ;
if ( mData . mDataTypes ) mData . loadData ( mData . mDataTypes ) ;
if ( mData . mDataLoaded )
{
std : : cout < < " Height Offset: " < < mData . mLandData - > mHeightOffset < < std : : endl ;
// Lots of missing members.
std : : cout < < " Unknown1: " < < mData . mLandData - > mUnk1 < < std : : endl ;
std : : cout < < " Unknown2: " < < mData . mLandData - > mUnk2 < < std : : endl ;
}
if ( ! wasLoaded ) mData . unloadData ( ) ;
}
template < >
@ -641,8 +743,8 @@ void Record<ESM::CreatureLevList>::print()
std : : cout < < " Number of items: " < < mData . mList . size ( ) < < std : : endl ;
std : : vector < ESM : : LeveledListBase : : LevelItem > : : iterator iit ;
for ( iit = mData . mList . begin ( ) ; iit ! = mData . mList . end ( ) ; iit + + )
std : : cout < < " Creature: Level: " < < iit - > mLevel
< < " Creature: " < < iit - > mId < < std : : endl ;
std : : cout < < " Creature: Level: " < < iit - > mLevel
< < " Creature: " < < iit - > mId < < std : : endl ;
}
template < >
@ -653,21 +755,21 @@ void Record<ESM::ItemLevList>::print()
std : : cout < < " Number of items: " < < mData . mList . size ( ) < < std : : endl ;
std : : vector < ESM : : LeveledListBase : : LevelItem > : : iterator iit ;
for ( iit = mData . mList . begin ( ) ; iit ! = mData . mList . end ( ) ; iit + + )
std : : cout < < " Inventory: Count: " < < iit - > mLevel
< < " Item: " < < iit - > mId < < std : : endl ;
std : : cout < < " Inventory: Count: " < < iit - > mLevel
< < " Item: " < < iit - > mId < < std : : endl ;
}
template < >
void Record < ESM : : Light > : : print ( )
{
if ( mData . mName ! = " " )
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
if ( mData . mModel ! = " " )
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
if ( mData . mIcon ! = " " )
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Flags: " < < mData . mData . mFlags < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
@ -684,7 +786,7 @@ void Record<ESM::Tool>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Type: " < < mData . mType < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
@ -699,7 +801,7 @@ void Record<ESM::Probe>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Type: " < < mData . mType < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
@ -714,7 +816,7 @@ void Record<ESM::Repair>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Type: " < < mData . mType < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
@ -739,30 +841,30 @@ void Record<ESM::MagicEffect>::print()
std : : cout < < " Flags: " < < mData . mData . mFlags < < std : : endl ;
std : : cout < < " Particle Texture: " < < mData . mParticle < < std : : endl ;
if ( mData . mCasting ! = " " )
std : : cout < < " Casting Static: " < < mData . mCasting < < std : : endl ;
std : : cout < < " Casting Static: " < < mData . mCasting < < std : : endl ;
if ( mData . mCastSound ! = " " )
std : : cout < < " Casting Sound: " < < mData . mCastSound < < std : : endl ;
std : : cout < < " Casting Sound: " < < mData . mCastSound < < std : : endl ;
if ( mData . mBolt ! = " " )
std : : cout < < " Bolt Static: " < < mData . mBolt < < std : : endl ;
std : : cout < < " Bolt Static: " < < mData . mBolt < < std : : endl ;
if ( mData . mBoltSound ! = " " )
std : : cout < < " Bolt Sound: " < < mData . mBoltSound < < std : : endl ;
std : : cout < < " Bolt Sound: " < < mData . mBoltSound < < std : : endl ;
if ( mData . mHit ! = " " )
std : : cout < < " Hit Static: " < < mData . mHit < < std : : endl ;
std : : cout < < " Hit Static: " < < mData . mHit < < std : : endl ;
if ( mData . mHitSound ! = " " )
std : : cout < < " Hit Sound: " < < mData . mHitSound < < std : : endl ;
std : : cout < < " Hit Sound: " < < mData . mHitSound < < std : : endl ;
if ( mData . mArea ! = " " )
std : : cout < < " Area Static: " < < mData . mArea < < std : : endl ;
std : : cout < < " Area Static: " < < mData . mArea < < std : : endl ;
if ( mData . mAreaSound ! = " " )
std : : cout < < " Area Sound: " < < mData . mAreaSound < < std : : endl ;
std : : cout < < " Area Sound: " < < mData . mAreaSound < < std : : endl ;
std : : cout < < " School: " < < mData . mData . mSchool < < std : : endl ;
std : : cout < < " Base Cost: " < < mData . mData . mBaseCost < < std : : endl ;
std : : cout < < " Speed: " < < mData . mData . mSpeed < < std : : endl ;
std : : cout < < " Size: " < < mData . mData . mSize < < std : : endl ;
std : : cout < < " Size Cap: " < < mData . mData . mSizeCap < < std : : endl ;
std : : cout < < " RGB Color: " < < " ( "
< < mData . mData . mRed < < " , "
< < mData . mData . mGreen < < " , "
< < mData . mData . mGreen < < " ) " < < std : : endl ;
< < mData . mData . mRed < < " , "
< < mData . mData . mGreen < < " , "
< < mData . mData . mGreen < < " ) " < < std : : endl ;
}
template < >
@ -772,7 +874,7 @@ void Record<ESM::Miscellaneous>::print()
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
std : : cout < < " Value: " < < mData . mData . mValue < < std : : endl ;
std : : cout < < " Is Key: " < < mData . mData . mIsKey < < std : : endl ;
@ -788,77 +890,77 @@ void Record<ESM::NPC>::print()
std : : cout < < " Race: " < < mData . mRace < < std : : endl ;
std : : cout < < " Class: " < < mData . mClass < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
if ( mData . mFaction ! = " " )
std : : cout < < " Faction: " < < mData . mFaction < < std : : endl ;
std : : cout < < " Faction: " < < mData . mFaction < < std : : endl ;
std : : cout < < " Flags: " < < mData . mFlags < < std : : endl ;
// Seriously?
if ( mData . mNpdt52 . mGold = = - 10 )
{
std : : cout < < " Level: " < < mData . mNpdt12 . mLevel < < std : : endl ;
std : : cout < < " Reputation: " < < ( int ) mData . mNpdt12 . mReputation < < std : : endl ;
std : : cout < < " Disposition: " < < ( int ) mData . mNpdt12 . mDisposition < < std : : endl ;
std : : cout < < " Faction: " < < ( int ) mData . mNpdt52 . mFactionID < < std : : endl ;
std : : cout < < " Rank: " < < ( int ) mData . mNpdt12 . mRank < < std : : endl ;
std : : cout < < " Unknown1: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown1 ) < < std : : endl ;
std : : cout < < " Unknown2: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown2 ) < < std : : endl ;
std : : cout < < " Unknown3: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown3 ) < < std : : endl ;
std : : cout < < " Gold: " < < ( int ) mData . mNpdt12 . mGold < < std : : endl ;
std : : cout < < " Level: " < < mData . mNpdt12 . mLevel < < std : : endl ;
std : : cout < < " Reputation: " < < ( int ) mData . mNpdt12 . mReputation < < std : : endl ;
std : : cout < < " Disposition: " < < ( int ) mData . mNpdt12 . mDisposition < < std : : endl ;
std : : cout < < " Faction: " < < ( int ) mData . mNpdt52 . mFactionID < < std : : endl ;
std : : cout < < " Rank: " < < ( int ) mData . mNpdt12 . mRank < < std : : endl ;
std : : cout < < " Unknown1: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown1 ) < < std : : endl ;
std : : cout < < " Unknown2: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown2 ) < < std : : endl ;
std : : cout < < " Unknown3: "
< < ( unsigned int ) ( ( unsigned char ) mData . mNpdt12 . mUnknown3 ) < < std : : endl ;
std : : cout < < " Gold: " < < ( int ) mData . mNpdt12 . mGold < < std : : endl ;
}
else {
std : : cout < < " Level: " < < mData . mNpdt52 . mLevel < < std : : endl ;
std : : cout < < " Reputation: " < < ( int ) mData . mNpdt52 . mReputation < < std : : endl ;
std : : cout < < " Disposition: " < < ( int ) mData . mNpdt52 . mDisposition < < std : : endl ;
std : : cout < < " Rank: " < < ( int ) mData . mNpdt52 . mRank < < std : : endl ;
std : : cout < < " Attributes: " < < std : : endl ;
std : : cout < < " Strength: " < < ( int ) mData . mNpdt52 . mStrength < < std : : endl ;
std : : cout < < " Intelligence: " < < ( int ) mData . mNpdt52 . mIntelligence < < std : : endl ;
std : : cout < < " Willpower: " < < ( int ) mData . mNpdt52 . mWillpower < < std : : endl ;
std : : cout < < " Agility: " < < ( int ) mData . mNpdt52 . mAgility < < std : : endl ;
std : : cout < < " Speed: " < < ( int ) mData . mNpdt52 . mSpeed < < std : : endl ;
std : : cout < < " Endurance: " < < ( int ) mData . mNpdt52 . mEndurance < < std : : endl ;
std : : cout < < " Personality: " < < ( int ) mData . mNpdt52 . mPersonality < < std : : endl ;
std : : cout < < " Luck: " < < ( int ) mData . mNpdt52 . mLuck < < std : : endl ;
std : : cout < < " Skills: " < < std : : endl ;
for ( int i = 0 ; i ! = 27 ; i + + )
std : : cout < < " " < < i < < " = "
< < ( int ) ( ( unsigned char ) mData . mNpdt52 . mSkills [ i ] ) < < std : : endl ;
std : : cout < < " Health: " < < mData . mNpdt52 . mHealth < < std : : endl ;
std : : cout < < " Magicka: " < < mData . mNpdt52 . mMana < < std : : endl ;
std : : cout < < " Fatigue: " < < mData . mNpdt52 . mFatigue < < std : : endl ;
std : : cout < < " Unknown: " < < ( int ) mData . mNpdt52 . mUnknown < < std : : endl ;
std : : cout < < " Gold: " < < mData . mNpdt52 . mGold < < std : : endl ;
std : : cout < < " Level: " < < mData . mNpdt52 . mLevel < < std : : endl ;
std : : cout < < " Reputation: " < < ( int ) mData . mNpdt52 . mReputation < < std : : endl ;
std : : cout < < " Disposition: " < < ( int ) mData . mNpdt52 . mDisposition < < std : : endl ;
std : : cout < < " Rank: " < < ( int ) mData . mNpdt52 . mRank < < std : : endl ;
std : : cout < < " Attributes: " < < std : : endl ;
std : : cout < < " Strength: " < < ( int ) mData . mNpdt52 . mStrength < < std : : endl ;
std : : cout < < " Intelligence: " < < ( int ) mData . mNpdt52 . mIntelligence < < std : : endl ;
std : : cout < < " Willpower: " < < ( int ) mData . mNpdt52 . mWillpower < < std : : endl ;
std : : cout < < " Agility: " < < ( int ) mData . mNpdt52 . mAgility < < std : : endl ;
std : : cout < < " Speed: " < < ( int ) mData . mNpdt52 . mSpeed < < std : : endl ;
std : : cout < < " Endurance: " < < ( int ) mData . mNpdt52 . mEndurance < < std : : endl ;
std : : cout < < " Personality: " < < ( int ) mData . mNpdt52 . mPersonality < < std : : endl ;
std : : cout < < " Luck: " < < ( int ) mData . mNpdt52 . mLuck < < std : : endl ;
std : : cout < < " Skills: " < < std : : endl ;
for ( int i = 0 ; i ! = 27 ; i + + )
std : : cout < < " " < < i < < " = "
< < ( int ) ( ( unsigned char ) mData . mNpdt52 . mSkills [ i ] ) < < std : : endl ;
std : : cout < < " Health: " < < mData . mNpdt52 . mHealth < < std : : endl ;
std : : cout < < " Magicka: " < < mData . mNpdt52 . mMana < < std : : endl ;
std : : cout < < " Fatigue: " < < mData . mNpdt52 . mFatigue < < std : : endl ;
std : : cout < < " Unknown: " < < ( int ) mData . mNpdt52 . mUnknown < < std : : endl ;
std : : cout < < " Gold: " < < mData . mNpdt52 . mGold < < std : : endl ;
}
std : : vector < ESM : : ContItem > : : iterator cit ;
for ( cit = mData . mInventory . mList . begin ( ) ; cit ! = mData . mInventory . mList . end ( ) ; cit + + )
std : : cout < < " Inventory: Count: " < < boost : : format ( " %4d " ) % cit - > mCount
< < " Item: " < < cit - > mItem . toString ( ) < < std : : endl ;
std : : cout < < " Inventory: Count: " < < boost : : format ( " %4d " ) % cit - > mCount
< < " Item: " < < cit - > mItem . toString ( ) < < std : : endl ;
std : : vector < std : : string > : : iterator sit ;
for ( sit = mData . mSpells . mList . begin ( ) ; sit ! = mData . mSpells . mList . end ( ) ; sit + + )
std : : cout < < " Spell: " < < * sit < < std : : endl ;
std : : cout < < " Spell: " < < * sit < < std : : endl ;
std : : vector < ESM : : NPC : : Dest > : : iterator dit ;
for ( dit = mData . mTransport . begin ( ) ; dit ! = mData . mTransport . end ( ) ; dit + + )
{
std : : cout < < " Destination Position: "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 0 ] < < " , "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 1 ] < < " , "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 2 ] < < " ) " < < std : : endl ;
std : : cout < < " Destination Rotation: "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 0 ] < < " , "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 1 ] < < " , "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 2 ] < < " ) " < < std : : endl ;
if ( dit - > mCellName ! = " " )
std : : cout < < " Destination Cell: " < < dit - > mCellName < < std : : endl ;
std : : cout < < " Destination Position: "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 0 ] < < " , "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 1 ] < < " , "
< < boost : : format ( " %12.3f " ) % dit - > mPos . pos [ 2 ] < < " ) " < < std : : endl ;
std : : cout < < " Destination Rotation: "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 0 ] < < " , "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 1 ] < < " , "
< < boost : : format ( " %9.6f " ) % dit - > mPos . rot [ 2 ] < < " ) " < < std : : endl ;
if ( dit - > mCellName ! = " " )
std : : cout < < " Destination Cell: " < < dit - > mCellName < < std : : endl ;
}
std : : cout < < " Artifical Intelligence: " < < mData . mHasAI < < std : : endl ;
@ -874,7 +976,7 @@ void Record<ESM::NPC>::print()
std : : vector < ESM : : AIPackage > : : iterator pit ;
for ( pit = mData . mAiPackage . mList . begin ( ) ; pit ! = mData . mAiPackage . mList . end ( ) ; pit + + )
printAIPackage ( * pit ) ;
printAIPackage ( * pit ) ;
}
template < >
@ -884,7 +986,7 @@ void Record<ESM::Pathgrid>::print()
std : : cout < < " Coordinates: ( " < < mData . mData . mX < < " , " < < mData . mData . mY < < " ) " < < std : : endl ;
std : : cout < < " Unknown S1: " < < mData . mData . mS1 < < std : : endl ;
if ( ( unsigned int ) mData . mData . mS2 ! = mData . mPoints . size ( ) )
std : : cout < < " Reported Point Count: " < < mData . mData . mS2 < < std : : endl ;
std : : cout < < " Reported Point Count: " < < mData . mData . mS2 < < std : : endl ;
std : : cout < < " Point Count: " < < mData . mPoints . size ( ) < < std : : endl ;
std : : cout < < " Edge Count: " < < mData . mEdges . size ( ) < < std : : endl ;
@ -892,22 +994,22 @@ void Record<ESM::Pathgrid>::print()
ESM : : Pathgrid : : PointList : : iterator pit ;
for ( pit = mData . mPoints . begin ( ) ; pit ! = mData . mPoints . end ( ) ; pit + + )
{
std : : cout < < " Point[ " < < i < < " ]: " < < std : : endl ;
std : : cout < < " Coordinates: ( " < < pit - > mX < < " , "
< < pit - > mY < < " , " < < pit - > mZ < < " ) " < < std : : endl ;
std : : cout < < " Auto-Generated: " < < ( int ) pit - > mAutogenerated < < std : : endl ;
std : : cout < < " Connections: " < < ( int ) pit - > mConnectionNum < < std : : endl ;
std : : cout < < " Unknown: " < < pit - > mUnknown < < std : : endl ;
i + + ;
std : : cout < < " Point[ " < < i < < " ]: " < < std : : endl ;
std : : cout < < " Coordinates: ( " < < pit - > mX < < " , "
< < pit - > mY < < " , " < < pit - > mZ < < " ) " < < std : : endl ;
std : : cout < < " Auto-Generated: " < < ( int ) pit - > mAutogenerated < < std : : endl ;
std : : cout < < " Connections: " < < ( int ) pit - > mConnectionNum < < std : : endl ;
std : : cout < < " Unknown: " < < pit - > mUnknown < < std : : endl ;
i + + ;
}
i = 0 ;
ESM : : Pathgrid : : EdgeList : : iterator eit ;
for ( eit = mData . mEdges . begin ( ) ; eit ! = mData . mEdges . end ( ) ; eit + + )
{
std : : cout < < " Edge[ " < < i < < " ]: " < < eit - > mV0 < < " -> " < < eit - > mV1 < < std : : endl ;
if ( eit - > mV0 > = mData . mData . mS2 | | eit - > mV1 > = mData . mData . mS2 )
std : : cout < < " BAD POINT IN EDGE! " < < std : : endl ;
i + + ;
std : : cout < < " Edge[ " < < i < < " ]: " < < eit - > mV0 < < " -> " < < eit - > mV1 < < std : : endl ;
if ( eit - > mV0 > = mData . mData . mS2 | | eit - > mV1 > = mData . mData . mS2 )
std : : cout < < " BAD POINT IN EDGE! " < < std : : endl ;
i + + ;
}
}
@ -920,57 +1022,57 @@ void Record<ESM::Race>::print()
std : : cout < < " Male: " < < std : : endl ;
std : : cout < < " Strength: "
< < mData . mData . mStrength . mMale < < std : : endl ;
< < mData . mData . mStrength . mMale < < std : : endl ;
std : : cout < < " Intelligence: "
< < mData . mData . mIntelligence . mMale < < std : : endl ;
< < mData . mData . mIntelligence . mMale < < std : : endl ;
std : : cout < < " Willpower: "
< < mData . mData . mWillpower . mMale < < std : : endl ;
< < mData . mData . mWillpower . mMale < < std : : endl ;
std : : cout < < " Agility: "
< < mData . mData . mAgility . mMale < < std : : endl ;
< < mData . mData . mAgility . mMale < < std : : endl ;
std : : cout < < " Speed: "
< < mData . mData . mSpeed . mMale < < std : : endl ;
< < mData . mData . mSpeed . mMale < < std : : endl ;
std : : cout < < " Endurance: "
< < mData . mData . mEndurance . mMale < < std : : endl ;
< < mData . mData . mEndurance . mMale < < std : : endl ;
std : : cout < < " Personality: "
< < mData . mData . mPersonality . mMale < < std : : endl ;
< < mData . mData . mPersonality . mMale < < std : : endl ;
std : : cout < < " Luck: "
< < mData . mData . mLuck . mMale < < std : : endl ;
< < mData . mData . mLuck . mMale < < std : : endl ;
std : : cout < < " Height: "
< < mData . mData . mHeight . mMale < < std : : endl ;
< < mData . mData . mHeight . mMale < < std : : endl ;
std : : cout < < " Weight: "
< < mData . mData . mWeight . mMale < < std : : endl ;
< < mData . mData . mWeight . mMale < < std : : endl ;
std : : cout < < " Female: " < < std : : endl ;
std : : cout < < " Strength: "
< < mData . mData . mStrength . mFemale < < std : : endl ;
< < mData . mData . mStrength . mFemale < < std : : endl ;
std : : cout < < " Intelligence: "
< < mData . mData . mIntelligence . mFemale < < std : : endl ;
< < mData . mData . mIntelligence . mFemale < < std : : endl ;
std : : cout < < " Willpower: "
< < mData . mData . mWillpower . mFemale < < std : : endl ;
< < mData . mData . mWillpower . mFemale < < std : : endl ;
std : : cout < < " Agility: "
< < mData . mData . mAgility . mFemale < < std : : endl ;
< < mData . mData . mAgility . mFemale < < std : : endl ;
std : : cout < < " Speed: "
< < mData . mData . mSpeed . mFemale < < std : : endl ;
< < mData . mData . mSpeed . mFemale < < std : : endl ;
std : : cout < < " Endurance: "
< < mData . mData . mEndurance . mFemale < < std : : endl ;
< < mData . mData . mEndurance . mFemale < < std : : endl ;
std : : cout < < " Personality: "
< < mData . mData . mPersonality . mFemale < < std : : endl ;
< < mData . mData . mPersonality . mFemale < < std : : endl ;
std : : cout < < " Luck: "
< < mData . mData . mLuck . mFemale < < std : : endl ;
< < mData . mData . mLuck . mFemale < < std : : endl ;
std : : cout < < " Height: "
< < mData . mData . mHeight . mFemale < < std : : endl ;
< < mData . mData . mHeight . mFemale < < std : : endl ;
std : : cout < < " Weight: "
< < mData . mData . mWeight . mFemale < < std : : endl ;
< < mData . mData . mWeight . mFemale < < std : : endl ;
for ( int i = 0 ; i ! = 7 ; i + + )
// Not all races have 7 skills.
if ( mData . mData . mBonus [ i ] . mSkill ! = - 1 )
std : : cout < < " Skill: " < < mData . mData . mBonus [ i ] . mSkill
< < " = " < < mData . mData . mBonus [ i ] . mBonus < < std : : endl ;
// Not all races have 7 skills.
if ( mData . mData . mBonus [ i ] . mSkill ! = - 1 )
std : : cout < < " Skill: " < < mData . mData . mBonus [ i ] . mSkill
< < " = " < < mData . mData . mBonus [ i ] . mBonus < < std : : endl ;
std : : vector < std : : string > : : iterator sit ;
for ( sit = mData . mPowers . mList . begin ( ) ; sit ! = mData . mPowers . mList . end ( ) ; sit + + )
std : : cout < < " Power: " < < * sit < < std : : endl ;
std : : cout < < " Power: " < < * sit < < std : : endl ;
}
template < >
@ -991,10 +1093,10 @@ void Record<ESM::Region>::print()
std : : cout < < " UnknownB: " < < ( int ) mData . mData . mB < < std : : endl ;
std : : cout < < " Map Color: " < < mData . mMapColor < < std : : endl ;
if ( mData . mSleepList ! = " " )
std : : cout < < " Sleep List: " < < mData . mSleepList < < std : : endl ;
std : : cout < < " Sleep List: " < < mData . mSleepList < < std : : endl ;
std : : vector < ESM : : Region : : SoundRef > : : iterator sit ;
for ( sit = mData . mSoundList . begin ( ) ; sit ! = mData . mSoundList . end ( ) ; sit + + )
std : : cout < < " Sound: " < < ( int ) sit - > mChance < < " = " < < sit - > mSound . toString ( ) < < std : : endl ;
std : : cout < < " Sound: " < < ( int ) sit - > mChance < < " = " < < sit - > mSound . toString ( ) < < std : : endl ;
}
template < >
@ -1009,18 +1111,19 @@ void Record<ESM::Script>::print()
std : : cout < < " Table Size: " < < mData . mData . mStringTableSize < < std : : endl ;
std : : cout < < " Script: [skipped] " < < std : : endl ;
// Skip until multi-line field is controllable by a command line option.
//std::cout << "-------------------------------------------" << std::endl;
//std::cout << s->scriptText << std::endl;
//std::cout << "-------------------------------------------" << std::endl;
// Skip until multi-line fields is controllable by a command line option.
// Mildly problematic because there are no parameter to print() currently.
// std::cout << "-------------------------------------------" << std::endl;
// std::cout << s->scriptText << std::endl;
// std::cout << "-------------------------------------------" << std::endl;
std : : vector < std : : string > : : iterator vit ;
for ( vit = mData . mVarNames . begin ( ) ; vit ! = mData . mVarNames . end ( ) ; vit + + )
std : : cout < < " Variable: " < < * vit < < std : : endl ;
std : : cout < < " Variable: " < < * vit < < std : : endl ;
std : : cout < < " ByteCode: " ;
std : : vector < char > : : iterator cit ;
for ( cit = mData . mScriptData . begin ( ) ; cit ! = mData . mScriptData . end ( ) ; cit + + )
std : : cout < < boost : : format ( " %02X " ) % ( int ) ( * cit ) ;
std : : cout < < boost : : format ( " %02X " ) % ( int ) ( * cit ) ;
std : : cout < < std : : endl ;
}
@ -1055,8 +1158,8 @@ void Record<ESM::Sound>::print()
std : : cout < < " Sound: " < < mData . mSound < < std : : endl ;
std : : cout < < " Volume: " < < ( int ) mData . mData . mVolume < < std : : endl ;
if ( mData . mData . mMinRange ! = 0 & & mData . mData . mMaxRange ! = 0 )
std : : cout < < " Range: " < < ( int ) mData . mData . mMinRange < < " - "
< < ( int ) mData . mData . mMaxRange < < std : : endl ;
std : : cout < < " Range: " < < ( int ) mData . mData . mMinRange < < " - "
< < ( int ) mData . mData . mMaxRange < < std : : endl ;
}
template < >
@ -1066,7 +1169,7 @@ void Record<ESM::Spell>::print()
std : : cout < < " Type: " < < mData . mData . mType < < std : : endl ;
std : : cout < < " Flags: " < < mData . mData . mFlags < < std : : endl ;
std : : cout < < " Cost: " < < mData . mData . mCost < < std : : endl ;
// mEffect missing
printEffectList ( mData . mEffects ) ;
}
template < >
@ -1087,15 +1190,15 @@ void Record<ESM::Weapon>::print()
{
// No names on VFX bolts
if ( mData . mName ! = " " )
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Name: " < < mData . mName < < std : : endl ;
std : : cout < < " Model: " < < mData . mModel < < std : : endl ;
// No icons on VFX bolts or magic bolts
if ( mData . mIcon ! = " " )
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
std : : cout < < " Icon: " < < mData . mIcon < < std : : endl ;
if ( mData . mScript ! = " " )
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
std : : cout < < " Script: " < < mData . mScript < < std : : endl ;
if ( mData . mEnchant ! = " " )
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Enchantment: " < < mData . mEnchant < < std : : endl ;
std : : cout < < " Type: " < < mData . mData . mType < < std : : endl ;
std : : cout < < " Flags: " < < mData . mData . mFlags < < std : : endl ;
std : : cout < < " Weight: " < < mData . mData . mWeight < < std : : endl ;
@ -1105,14 +1208,14 @@ void Record<ESM::Weapon>::print()
std : : cout < < " Reach: " < < mData . mData . mReach < < std : : endl ;
std : : cout < < " Enchantment Points: " < < mData . mData . mEnchant < < std : : endl ;
if ( mData . mData . mChop [ 0 ] ! = 0 & & mData . mData . mChop [ 1 ] ! = 0 )
std : : cout < < " Chop: " < < ( int ) mData . mData . mChop [ 0 ] < < " - "
< < ( int ) mData . mData . mChop [ 1 ] < < std : : endl ;
std : : cout < < " Chop: " < < ( int ) mData . mData . mChop [ 0 ] < < " - "
< < ( int ) mData . mData . mChop [ 1 ] < < std : : endl ;
if ( mData . mData . mSlash [ 0 ] ! = 0 & & mData . mData . mSlash [ 1 ] ! = 0 )
std : : cout < < " Slash: " < < ( int ) mData . mData . mSlash [ 0 ] < < " - "
< < ( int ) mData . mData . mSlash [ 1 ] < < std : : endl ;
std : : cout < < " Slash: " < < ( int ) mData . mData . mSlash [ 0 ] < < " - "
< < ( int ) mData . mData . mSlash [ 1 ] < < std : : endl ;
if ( mData . mData . mThrust [ 0 ] ! = 0 & & mData . mData . mThrust [ 1 ] ! = 0 )
std : : cout < < " Thrust: " < < ( int ) mData . mData . mThrust [ 0 ] < < " - "
< < ( int ) mData . mData . mThrust [ 1 ] < < std : : endl ;
std : : cout < < " Thrust: " < < ( int ) mData . mData . mThrust [ 0 ] < < " - "
< < ( int ) mData . mData . mThrust [ 1 ] < < std : : endl ;
}
template < >