Advertisement
Guest User

Untitled

a guest
Jul 30th, 2014
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 65.80 KB | None | 0 0
  1. #include "document.hpp"
  2.  
  3. #include <cassert>
  4. #include <fstream>
  5.  
  6. #include <boost/filesystem.hpp>
  7.  
  8. #ifndef Q_MOC_RUN
  9. #include <components/files/configurationmanager.hpp>
  10. #endif
  11.  
  12. void CSMDoc::Document::addGmsts()
  13. {
  14. static const char *gmstFloats[] =
  15. {
  16. "fAIFleeFleeMult",
  17. "fAIFleeHealthMult",
  18. "fAIMagicSpellMult",
  19. "fAIMeleeArmorMult",
  20. "fAIMeleeSummWeaponMult",
  21. "fAIMeleeWeaponMult",
  22. "fAIRangeMagicSpellMult",
  23. "fAIRangeMeleeWeaponMult",
  24. "fAlarmRadius",
  25. "fAthleticsRunBonus",
  26. "fAudioDefaultMaxDistance",
  27. "fAudioDefaultMinDistance",
  28. "fAudioMaxDistanceMult",
  29. "fAudioMinDistanceMult",
  30. "fAudioVoiceDefaultMaxDistance",
  31. "fAudioVoiceDefaultMinDistance",
  32. "fAutoPCSpellChance",
  33. "fAutoSpellChance",
  34. "fBargainOfferBase",
  35. "fBargainOfferMulti",
  36. "fBarterGoldResetDelay",
  37. "fBaseRunMultiplier",
  38. "fBlockStillBonus",
  39. "fBribe1000Mod",
  40. "fBribe100Mod",
  41. "fBribe10Mod",
  42. "fCombatAngleXY",
  43. "fCombatAngleZ",
  44. "fCombatArmorMinMult",
  45. "fCombatBlockLeftAngle",
  46. "fCombatBlockRightAngle",
  47. "fCombatCriticalStrikeMult",
  48. "fCombatDelayCreature",
  49. "fCombatDelayNPC",
  50. "fCombatDistance",
  51. "fCombatDistanceWerewolfMod",
  52. "fCombatForceSideAngle",
  53. "fCombatInvisoMult",
  54. "fCombatKODamageMult",
  55. "fCombatTorsoSideAngle",
  56. "fCombatTorsoStartPercent",
  57. "fCombatTorsoStopPercent",
  58. "fConstantEffectMult",
  59. "fCorpseClearDelay",
  60. "fCorpseRespawnDelay",
  61. "fCrimeGoldDiscountMult",
  62. "fCrimeGoldTurnInMult",
  63. "fCrimeStealing",
  64. "fDamageStrengthBase",
  65. "fDamageStrengthMult",
  66. "fDifficultyMult",
  67. "fDiseaseXferChance",
  68. "fDispAttacking",
  69. "fDispBargainFailMod",
  70. "fDispBargainSuccessMod",
  71. "fDispCrimeMod",
  72. "fDispDiseaseMod",
  73. "fDispFactionMod",
  74. "fDispFactionRankBase",
  75. "fDispFactionRankMult",
  76. "fDispositionMod",
  77. "fDispPersonalityBase",
  78. "fDispPersonalityMult",
  79. "fDispPickPocketMod",
  80. "fDispRaceMod",
  81. "fDispStealing",
  82. "fDispWeaponDrawn",
  83. "fEffectCostMult",
  84. "fElementalShieldMult",
  85. "fEnchantmentChanceMult",
  86. "fEnchantmentConstantChanceMult",
  87. "fEnchantmentConstantDurationMult",
  88. "fEnchantmentMult",
  89. "fEnchantmentValueMult",
  90. "fEncumberedMoveEffect",
  91. "fEncumbranceStrMult",
  92. "fEndFatigueMult",
  93. "fFallAcroBase",
  94. "fFallAcroMult",
  95. "fFallDamageDistanceMin",
  96. "fFallDistanceBase",
  97. "fFallDistanceMult",
  98. "fFatigueAttackBase",
  99. "fFatigueAttackMult",
  100. "fFatigueBase",
  101. "fFatigueBlockBase",
  102. "fFatigueBlockMult",
  103. "fFatigueJumpBase",
  104. "fFatigueJumpMult",
  105. "fFatigueMult",
  106. "fFatigueReturnBase",
  107. "fFatigueReturnMult",
  108. "fFatigueRunBase",
  109. "fFatigueRunMult",
  110. "fFatigueSneakBase",
  111. "fFatigueSneakMult",
  112. "fFatigueSpellBase",
  113. "fFatigueSpellCostMult",
  114. "fFatigueSpellMult",
  115. "fFatigueSwimRunBase",
  116. "fFatigueSwimRunMult",
  117. "fFatigueSwimWalkBase",
  118. "fFatigueSwimWalkMult",
  119. "fFightDispMult",
  120. "fFightDistanceMultiplier",
  121. "fFightStealing",
  122. "fFleeDistance",
  123. "fGreetDistanceReset",
  124. "fHandtoHandHealthPer",
  125. "fHandToHandReach",
  126. "fHoldBreathEndMult",
  127. "fHoldBreathTime",
  128. "fIdleChanceMultiplier",
  129. "fIngredientMult",
  130. "fInteriorHeadTrackMult",
  131. "fJumpAcrobaticsBase",
  132. "fJumpAcroMultiplier",
  133. "fJumpEncumbranceBase",
  134. "fJumpEncumbranceMultiplier",
  135. "fJumpMoveBase",
  136. "fJumpMoveMult",
  137. "fJumpRunMultiplier",
  138. "fKnockDownMult",
  139. "fLevelMod",
  140. "fLevelUpHealthEndMult",
  141. "fLightMaxMod",
  142. "fLuckMod",
  143. "fMagesGuildTravel",
  144. "fMagicCreatureCastDelay",
  145. "fMagicDetectRefreshRate",
  146. "fMagicItemConstantMult",
  147. "fMagicItemCostMult",
  148. "fMagicItemOnceMult",
  149. "fMagicItemPriceMult",
  150. "fMagicItemRechargePerSecond",
  151. "fMagicItemStrikeMult",
  152. "fMagicItemUsedMult",
  153. "fMagicStartIconBlink",
  154. "fMagicSunBlockedMult",
  155. "fMajorSkillBonus",
  156. "fMaxFlySpeed",
  157. "fMaxHandToHandMult",
  158. "fMaxHeadTrackDistance",
  159. "fMaxWalkSpeed",
  160. "fMaxWalkSpeedCreature",
  161. "fMedMaxMod",
  162. "fMessageTimePerChar",
  163. "fMinFlySpeed",
  164. "fMinHandToHandMult",
  165. "fMinorSkillBonus",
  166. "fMinWalkSpeed",
  167. "fMinWalkSpeedCreature",
  168. "fMiscSkillBonus",
  169. "fNPCbaseMagickaMult",
  170. "fNPCHealthBarFade",
  171. "fNPCHealthBarTime",
  172. "fPCbaseMagickaMult",
  173. "fPerDieRollMult",
  174. "fPersonalityMod",
  175. "fPerTempMult",
  176. "fPickLockMult",
  177. "fPickPocketMod",
  178. "fPotionMinUsefulDuration",
  179. "fPotionStrengthMult",
  180. "fPotionT1DurMult",
  181. "fPotionT1MagMult",
  182. "fPotionT4BaseStrengthMult",
  183. "fPotionT4EquipStrengthMult",
  184. "fProjectileMaxSpeed",
  185. "fProjectileMinSpeed",
  186. "fProjectileThrownStoreChance",
  187. "fRepairAmountMult",
  188. "fRepairMult",
  189. "fReputationMod",
  190. "fRestMagicMult",
  191. "fSeriousWoundMult",
  192. "fSleepRandMod",
  193. "fSleepRestMod",
  194. "fSneakBootMult",
  195. "fSneakDistanceBase",
  196. "fSneakDistanceMultiplier",
  197. "fSneakNoViewMult",
  198. "fSneakSkillMult",
  199. "fSneakSpeedMultiplier",
  200. "fSneakUseDelay",
  201. "fSneakUseDist",
  202. "fSneakViewMult",
  203. "fSoulGemMult",
  204. "fSpecialSkillBonus",
  205. "fSpellMakingValueMult",
  206. "fSpellPriceMult",
  207. "fSpellValueMult",
  208. "fStromWalkMult",
  209. "fStromWindSpeed",
  210. "fSuffocationDamage",
  211. "fSwimHeightScale",
  212. "fSwimRunAthleticsMult",
  213. "fSwimRunBase",
  214. "fSwimWalkAthleticsMult",
  215. "fSwimWalkBase",
  216. "fSwingBlockBase",
  217. "fSwingBlockMult",
  218. "fTargetSpellMaxSpeed",
  219. "fThrownWeaponMaxSpeed",
  220. "fThrownWeaponMinSpeed",
  221. "fTrapCostMult",
  222. "fTravelMult",
  223. "fTravelTimeMult",
  224. "fUnarmoredBase1",
  225. "fUnarmoredBase2",
  226. "fVanityDelay",
  227. "fVoiceIdleOdds",
  228. "fWaterReflectUpdateAlways",
  229. "fWaterReflectUpdateSeldom",
  230. "fWeaponDamageMult",
  231. "fWeaponFatigueBlockMult",
  232. "fWeaponFatigueMult",
  233. "fWereWolfAcrobatics",
  234. "fWereWolfAgility",
  235. "fWereWolfAlchemy",
  236. "fWereWolfAlteration",
  237. "fWereWolfArmorer",
  238. "fWereWolfAthletics",
  239. "fWereWolfAxe",
  240. "fWereWolfBlock",
  241. "fWereWolfBluntWeapon",
  242. "fWereWolfConjuration",
  243. "fWereWolfDestruction",
  244. "fWereWolfEnchant",
  245. "fWereWolfEndurance",
  246. "fWereWolfFatigue",
  247. "fWereWolfHandtoHand",
  248. "fWereWolfHealth",
  249. "fWereWolfHeavyArmor",
  250. "fWereWolfIllusion",
  251. "fWereWolfIntellegence",
  252. "fWereWolfLightArmor",
  253. "fWereWolfLongBlade",
  254. "fWereWolfLuck",
  255. "fWereWolfMagicka",
  256. "fWereWolfMarksman",
  257. "fWereWolfMediumArmor",
  258. "fWereWolfMerchantile",
  259. "fWereWolfMysticism",
  260. "fWereWolfPersonality",
  261. "fWereWolfRestoration",
  262. "fWereWolfRunMult",
  263. "fWereWolfSecurity",
  264. "fWereWolfShortBlade",
  265. "fWereWolfSilverWeaponDamageMult",
  266. "fWereWolfSneak",
  267. "fWereWolfSpear",
  268. "fWereWolfSpeechcraft",
  269. "fWereWolfSpeed",
  270. "fWereWolfStrength",
  271. "fWereWolfUnarmored",
  272. "fWereWolfWillPower",
  273. "fWortChanceValue",
  274. 0
  275. };
  276.  
  277. static const float gmstFloatsValues[] =
  278. {
  279. 0.3, // fAIFleeFleeMult
  280. 7.0, // fAIFleeHealthMult
  281. 3.0, // fAIMagicSpellMult
  282. 1.0, // fAIMeleeArmorMult
  283. 1.0, // fAIMeleeSummWeaponMult
  284. 2.0, // fAIMeleeWeaponMult
  285. 5.0, // fAIRangeMagicSpellMult
  286. 5.0, // fAIRangeMeleeWeaponMult
  287. 2000.0, // fAlarmRadius
  288. 1.0, // fAthleticsRunBonus
  289. 40.0, // fAudioDefaultMaxDistance
  290. 5.0, // fAudioDefaultMinDistance
  291. 50.0, // fAudioMaxDistanceMult
  292. 20.0, // fAudioMinDistanceMult
  293. 60.0, // fAudioVoiceDefaultMaxDistance
  294. 10.0, // fAudioVoiceDefaultMinDistance
  295. 50.0, // fAutoPCSpellChance
  296. 80.0, // fAutoSpellChance
  297. 50.0, // fBargainOfferBase
  298. -4.0, // fBargainOfferMulti
  299. 24.0, // fBarterGoldResetDelay
  300. 1.75, // fBaseRunMultiplier
  301. 1.25, // fBlockStillBonus
  302. 150.0, // fBribe1000Mod
  303. 75.0, // fBribe100Mod
  304. 35.0, // fBribe10Mod
  305. 60.0, // fCombatAngleXY
  306. 60.0, // fCombatAngleZ
  307. 0.25, // fCombatArmorMinMult
  308. -90.0, // fCombatBlockLeftAngle
  309. 30.0, // fCombatBlockRightAngle
  310. 4.0, // fCombatCriticalStrikeMult
  311. 0.1, // fCombatDelayCreature
  312. 0.1, // fCombatDelayNPC
  313. 128.0, // fCombatDistance
  314. 0.3, // fCombatDistanceWerewolfMod
  315. 30.0, // fCombatForceSideAngle
  316. 0.2, // fCombatInvisoMult
  317. 1.5, // fCombatKODamageMult
  318. 45.0, // fCombatTorsoSideAngle
  319. 0.3, // fCombatTorsoStartPercent
  320. 0.8, // fCombatTorsoStopPercent
  321. 15.0, // fConstantEffectMult
  322. 72.0, // fCorpseClearDelay
  323. 72.0, // fCorpseRespawnDelay
  324. 0.5, // fCrimeGoldDiscountMult
  325. 0.9, // fCrimeGoldTurnInMult
  326. 1.0, // fCrimeStealing
  327. 0.5, // fDamageStrengthBase
  328. 0.1, // fDamageStrengthMult
  329. 5.0, // fDifficultyMult
  330. 2.5, // fDiseaseXferChance
  331. -10.0, // fDispAttacking
  332. -1.0, // fDispBargainFailMod
  333. 1.0, // fDispBargainSuccessMod
  334. 0.0, // fDispCrimeMod
  335. -10.0, // fDispDiseaseMod
  336. 3.0, // fDispFactionMod
  337. 1.0, // fDispFactionRankBase
  338. 0.5, // fDispFactionRankMult
  339. 1.0, // fDispositionMod
  340. 50.0, // fDispPersonalityBase
  341. 0.5, // fDispPersonalityMult
  342. -25.0, // fDispPickPocketMod
  343. 5.0, // fDispRaceMod
  344. -0.5, // fDispStealing
  345. -5.0, // fDispWeaponDrawn
  346. 0.5, // fEffectCostMult
  347. 0.1, // fElementalShieldMult
  348. 3.0, // fEnchantmentChanceMult
  349. 0.5, // fEnchantmentConstantChanceMult
  350. 100.0, // fEnchantmentConstantDurationMult
  351. 0.1, // fEnchantmentMult
  352. 1000.0, // fEnchantmentValueMult
  353. 0.3, // fEncumberedMoveEffect
  354. 5.0, // fEncumbranceStrMult
  355. 0.04, // fEndFatigueMult
  356. 0.25, // fFallAcroBase
  357. 0.01, // fFallAcroMult
  358. 400.0, // fFallDamageDistanceMin
  359. 0.0, // fFallDistanceBase
  360. 0.07, // fFallDistanceMult
  361. 2.0, // fFatigueAttackBase
  362. 0.0, // fFatigueAttackMult
  363. 1.25, // fFatigueBase
  364. 4.0, // fFatigueBlockBase
  365. 0.0, // fFatigueBlockMult
  366. 5.0, // fFatigueJumpBase
  367. 0.0, // fFatigueJumpMult
  368. 0.5, // fFatigueMult
  369. 2.5, // fFatigueReturnBase
  370. 0.02, // fFatigueReturnMult
  371. 5.0, // fFatigueRunBase
  372. 2.0, // fFatigueRunMult
  373. 1.5, // fFatigueSneakBase
  374. 1.5, // fFatigueSneakMult
  375. 0.0, // fFatigueSpellBase
  376. 0.0, // fFatigueSpellCostMult
  377. 0.0, // fFatigueSpellMult
  378. 7.0, // fFatigueSwimRunBase
  379. 0.0, // fFatigueSwimRunMult
  380. 2.5, // fFatigueSwimWalkBase
  381. 0.0, // fFatigueSwimWalkMult
  382. 0.2, // fFightDispMult
  383. 0.005, // fFightDistanceMultiplier
  384. 50.0, // fFightStealing
  385. 3000.0, // fFleeDistance
  386. 512.0, // fGreetDistanceReset
  387. 0.1, // fHandtoHandHealthPer
  388. 1.0, // fHandToHandReach
  389. 0.5, // fHoldBreathEndMult
  390. 20.0, // fHoldBreathTime
  391. 0.75, // fIdleChanceMultiplier
  392. 1.0, // fIngredientMult
  393. 0.5, // fInteriorHeadTrackMult
  394. 128.0, // fJumpAcrobaticsBase
  395. 4.0, // fJumpAcroMultiplier
  396. 0.5, // fJumpEncumbranceBase
  397. 1.0, // fJumpEncumbranceMultiplier
  398. 0.5, // fJumpMoveBase
  399. 0.5, // fJumpMoveMult
  400. 1.0, // fJumpRunMultiplier
  401. 0.5, // fKnockDownMult
  402. 5.0, // fLevelMod
  403. 0.1, // fLevelUpHealthEndMult
  404. 0.6, // fLightMaxMod
  405. 10.0, // fLuckMod
  406. 10.0, // fMagesGuildTravel
  407. 1.5, // fMagicCreatureCastDelay
  408. 0.0167, // fMagicDetectRefreshRate
  409. 1.0, // fMagicItemConstantMult
  410. 1.0, // fMagicItemCostMult
  411. 1.0, // fMagicItemOnceMult
  412. 1.0, // fMagicItemPriceMult
  413. 0.05, // fMagicItemRechargePerSecond
  414. 1.0, // fMagicItemStrikeMult
  415. 1.0, // fMagicItemUsedMult
  416. 3.0, // fMagicStartIconBlink
  417. 0.5, // fMagicSunBlockedMult
  418. 0.75, // fMajorSkillBonus
  419. 300.0, // fMaxFlySpeed
  420. 0.5, // fMaxHandToHandMult
  421. 400.0, // fMaxHeadTrackDistance
  422. 200.0, // fMaxWalkSpeed
  423. 300.0, // fMaxWalkSpeedCreature
  424. 0.9, // fMedMaxMod
  425. 0.1, // fMessageTimePerChar
  426. 5.0, // fMinFlySpeed
  427. 0.1, // fMinHandToHandMult
  428. 1.0, // fMinorSkillBonus
  429. 100.0, // fMinWalkSpeed
  430. 5.0, // fMinWalkSpeedCreature
  431. 1.25, // fMiscSkillBonus
  432. 2.0, // fNPCbaseMagickaMult
  433. 0.5, // fNPCHealthBarFade
  434. 3.0, // fNPCHealthBarTime
  435. 1.0, // fPCbaseMagickaMult
  436. 0.3, // fPerDieRollMult
  437. 5.0, // fPersonalityMod
  438. 1.0, // fPerTempMult
  439. -1.0, // fPickLockMult
  440. 0.3, // fPickPocketMod
  441. 20.0, // fPotionMinUsefulDuration
  442. 0.5, // fPotionStrengthMult
  443. 0.5, // fPotionT1DurMult
  444. 1.5, // fPotionT1MagMult
  445. 20.0, // fPotionT4BaseStrengthMult
  446. 12.0, // fPotionT4EquipStrengthMult
  447. 3000.0, // fProjectileMaxSpeed
  448. 400.0, // fProjectileMinSpeed
  449. 25.0, // fProjectileThrownStoreChance
  450. 3.0, // fRepairAmountMult
  451. 1.0, // fRepairMult
  452. 1.0, // fReputationMod
  453. 0.15, // fRestMagicMult
  454. 0.0, // fSeriousWoundMult
  455. 0.25, // fSleepRandMod
  456. 0.3, // fSleepRestMod
  457. -1.0, // fSneakBootMult
  458. 0.5, // fSneakDistanceBase
  459. 0.002, // fSneakDistanceMultiplier
  460. 0.5, // fSneakNoViewMult
  461. 1.0, // fSneakSkillMult
  462. 0.75, // fSneakSpeedMultiplier
  463. 1.0, // fSneakUseDelay
  464. 500.0, // fSneakUseDist
  465. 1.5, // fSneakViewMult
  466. 3.0, // fSoulGemMult
  467. 0.8, // fSpecialSkillBonus
  468. 7.0, // fSpellMakingValueMult
  469. 2.0, // fSpellPriceMult
  470. 10.0, // fSpellValueMult
  471. 0.25, // fStromWalkMult
  472. 0.7, // fStromWindSpeed
  473. 3.0, // fSuffocationDamage
  474. 0.9, // fSwimHeightScale
  475. 0.1, // fSwimRunAthleticsMult
  476. 0.5, // fSwimRunBase
  477. 0.02, // fSwimWalkAthleticsMult
  478. 0.5, // fSwimWalkBase
  479. 1.0, // fSwingBlockBase
  480. 1.0, // fSwingBlockMult
  481. 1000.0, // fTargetSpellMaxSpeed
  482. 1000.0, // fThrownWeaponMaxSpeed
  483. 300.0, // fThrownWeaponMinSpeed
  484. 0.0, // fTrapCostMult
  485. 4000.0, // fTravelMult
  486. 16000.0,// fTravelTimeMult
  487. 0.1, // fUnarmoredBase1
  488. 0.065, // fUnarmoredBase2
  489. 30.0, // fVanityDelay
  490. 10.0, // fVoiceIdleOdds
  491. 0.0, // fWaterReflectUpdateAlways
  492. 10.0, // fWaterReflectUpdateSeldom
  493. 0.1, // fWeaponDamageMult
  494. 1.0, // fWeaponFatigueBlockMult
  495. 0.25, // fWeaponFatigueMult
  496. 150.0, // fWereWolfAcrobatics
  497. 150.0, // fWereWolfAgility
  498. 1.0, // fWereWolfAlchemy
  499. 1.0, // fWereWolfAlteration
  500. 1.0, // fWereWolfArmorer
  501. 150.0, // fWereWolfAthletics
  502. 1.0, // fWereWolfAxe
  503. 1.0, // fWereWolfBlock
  504. 1.0, // fWereWolfBluntWeapon
  505. 1.0, // fWereWolfConjuration
  506. 1.0, // fWereWolfDestruction
  507. 1.0, // fWereWolfEnchant
  508. 150.0, // fWereWolfEndurance
  509. 400.0, // fWereWolfFatigue
  510. 100.0, // fWereWolfHandtoHand
  511. 2.0, // fWereWolfHealth
  512. 1.0, // fWereWolfHeavyArmor
  513. 1.0, // fWereWolfIllusion
  514. 1.0, // fWereWolfIntellegence
  515. 1.0, // fWereWolfLightArmor
  516. 1.0, // fWereWolfLongBlade
  517. 1.0, // fWereWolfLuck
  518. 100.0, // fWereWolfMagicka
  519. 1.0, // fWereWolfMarksman
  520. 1.0, // fWereWolfMediumArmor
  521. 1.0, // fWereWolfMerchantile
  522. 1.0, // fWereWolfMysticism
  523. 1.0, // fWereWolfPersonality
  524. 1.0, // fWereWolfRestoration
  525. 1.5, // fWereWolfRunMult
  526. 1.0, // fWereWolfSecurity
  527. 1.0, // fWereWolfShortBlade
  528. 1.5, // fWereWolfSilverWeaponDamageMult
  529. 1.0, // fWereWolfSneak
  530. 1.0, // fWereWolfSpear
  531. 1.0, // fWereWolfSpeechcraft
  532. 150.0, // fWereWolfSpeed
  533. 150.0, // fWereWolfStrength
  534. 100.0, // fWereWolfUnarmored
  535. 1.0, // fWereWolfWillPower
  536. 15.0, // fWortChanceValue
  537. };
  538.  
  539. static const char *gmstIntegers[] =
  540. {
  541. "i1stPersonSneakDelta",
  542. "iAlarmAttack",
  543. "iAlarmKilling",
  544. "iAlarmPickPocket",
  545. "iAlarmStealing",
  546. "iAlarmTresspass",
  547. "iAlchemyMod",
  548. "iAutoPCSpellMax",
  549. "iAutoRepFacMod",
  550. "iAutoRepLevMod",
  551. "iAutoSpellAlterationMax",
  552. "iAutoSpellAttSkillMin",
  553. "iAutoSpellConjurationMax",
  554. "iAutoSpellDestructionMax",
  555. "iAutoSpellIllusionMax",
  556. "iAutoSpellMysticismMax",
  557. "iAutoSpellRestorationMax",
  558. "iAutoSpellTimesCanCast",
  559. "iBarterFailDisposition",
  560. "iBarterSuccessDisposition",
  561. "iBaseArmorSkill",
  562. "iBlockMaxChance",
  563. "iBlockMinChance",
  564. "iBootsWeight",
  565. "iCrimeAttack",
  566. "iCrimeKilling",
  567. "iCrimePickPocket",
  568. "iCrimeThreshold",
  569. "iCrimeThresholdMultiplier",
  570. "iCrimeTresspass",
  571. "iCuirassWeight",
  572. "iDaysinPrisonMod",
  573. "iDispAttackMod",
  574. "iDispKilling",
  575. "iDispTresspass",
  576. "iFightAlarmMult",
  577. "iFightAttack",
  578. "iFightAttacking",
  579. "iFightDistanceBase",
  580. "iFightKilling",
  581. "iFightPickpocket",
  582. "iFightTrespass",
  583. "iFlee",
  584. "iGauntletWeight",
  585. "iGreavesWeight",
  586. "iGreetDistanceMultiplier",
  587. "iGreetDuration",
  588. "iHelmWeight",
  589. "iKnockDownOddsBase",
  590. "iKnockDownOddsMult",
  591. "iLevelUp01Mult",
  592. "iLevelUp02Mult",
  593. "iLevelUp03Mult",
  594. "iLevelUp04Mult",
  595. "iLevelUp05Mult",
  596. "iLevelUp06Mult",
  597. "iLevelUp07Mult",
  598. "iLevelUp08Mult",
  599. "iLevelUp09Mult",
  600. "iLevelUp10Mult",
  601. "iLevelupMajorMult",
  602. "iLevelupMajorMultAttribute",
  603. "iLevelupMinorMult",
  604. "iLevelupMinorMultAttribute",
  605. "iLevelupMiscMultAttriubte",
  606. "iLevelupSpecialization",
  607. "iLevelupTotal",
  608. "iMagicItemChargeConst",
  609. "iMagicItemChargeOnce",
  610. "iMagicItemChargeStrike",
  611. "iMagicItemChargeUse",
  612. "iMaxActivateDist",
  613. "iMaxInfoDist",
  614. "iMonthsToRespawn",
  615. "iNumberCreatures",
  616. "iPauldronWeight",
  617. "iPerMinChance",
  618. "iPerMinChange",
  619. "iPickMaxChance",
  620. "iPickMinChance",
  621. "iShieldWeight",
  622. "iSoulAmountForConstantEffect",
  623. "iTrainingMod",
  624. "iVoiceAttackOdds",
  625. "iVoiceHitOdds",
  626. "iWereWolfBounty",
  627. "iWereWolfFightMod",
  628. "iWereWolfFleeMod",
  629. "iWereWolfLevelToAttack",
  630. 0
  631. };
  632.  
  633. static const int gmstIntegersValues[] =
  634. {
  635. 10, // i1stPersonSneakDelta
  636. 50, // iAlarmAttack
  637. 90, // iAlarmKilling
  638. 20, // iAlarmPickPocket
  639. 1, // iAlarmStealing
  640. 5, // iAlarmTresspass
  641. 2, // iAlchemyMod
  642. 100, // iAutoPCSpellMax
  643. 2, // iAutoRepFacMod
  644. 0, // iAutoRepLevMod
  645. 5, // iAutoSpellAlterationMax
  646. 70, // iAutoSpellAttSkillMin
  647. 2, // iAutoSpellConjurationMax
  648. 5, // iAutoSpellDestructionMax
  649. 5, // iAutoSpellIllusionMax
  650. 5, // iAutoSpellMysticismMax
  651. 5, // iAutoSpellRestorationMax
  652. 3, // iAutoSpellTimesCanCast
  653. -1, // iBarterFailDisposition
  654. 1, // iBarterSuccessDisposition
  655. 30, // iBaseArmorSkill
  656. 50, // iBlockMaxChance
  657. 10, // iBlockMinChance
  658. 20, // iBootsWeight
  659. 40, // iCrimeAttack
  660. 1000, // iCrimeKilling
  661. 25, // iCrimePickPocket
  662. 1000, // iCrimeThreshold
  663. 10, // iCrimeThresholdMultiplier
  664. 5, // iCrimeTresspass
  665. 30, // iCuirassWeight
  666. 100, // iDaysinPrisonMod
  667. -50, // iDispAttackMod
  668. -50, // iDispKilling
  669. -20, // iDispTresspass
  670. 1, // iFightAlarmMult
  671. 100, // iFightAttack
  672. 50, // iFightAttacking
  673. 20, // iFightDistanceBase
  674. 50, // iFightKilling
  675. 25, // iFightPickpocket
  676. 25, // iFightTrespass
  677. 0, // iFlee
  678. 5, // iGauntletWeight
  679. 15, // iGreavesWeight
  680. 6, // iGreetDistanceMultiplier
  681. 4, // iGreetDuration
  682. 5, // iHelmWeight
  683. 50, // iKnockDownOddsBase
  684. 50, // iKnockDownOddsMult
  685. 2, // iLevelUp01Mult
  686. 2, // iLevelUp02Mult
  687. 2, // iLevelUp03Mult
  688. 2, // iLevelUp04Mult
  689. 3, // iLevelUp05Mult
  690. 3, // iLevelUp06Mult
  691. 3, // iLevelUp07Mult
  692. 4, // iLevelUp08Mult
  693. 4, // iLevelUp09Mult
  694. 5, // iLevelUp10Mult
  695. 1, // iLevelupMajorMult
  696. 1, // iLevelupMajorMultAttribute
  697. 1, // iLevelupMinorMult
  698. 1, // iLevelupMinorMultAttribute
  699. 1, // iLevelupMiscMultAttriubte
  700. 1, // iLevelupSpecialization
  701. 10, // iLevelupTotal
  702. 10, // iMagicItemChargeConst
  703. 1, // iMagicItemChargeOnce
  704. 10, // iMagicItemChargeStrike
  705. 5, // iMagicItemChargeUse
  706. 192, // iMaxActivateDist
  707. 192, // iMaxInfoDist
  708. 4, // iMonthsToRespawn
  709. 1, // iNumberCreatures
  710. 10, // iPauldronWeight
  711. 5, // iPerMinChance
  712. 10, // iPerMinChange
  713. 75, // iPickMaxChance
  714. 5, // iPickMinChance
  715. 15, // iShieldWeight
  716. 400, // iSoulAmountForConstantEffect
  717. 10, // iTrainingMod
  718. 10, // iVoiceAttackOdds
  719. 30, // iVoiceHitOdds
  720. 10000, // iWereWolfBounty
  721. 100, // iWereWolfFightMod
  722. 100, // iWereWolfFleeMod
  723. 20, // iWereWolfLevelToAttack
  724. };
  725.  
  726. static const char *gmstStrings[] =
  727. {
  728. "s3dAudio",
  729. "s3dHardware",
  730. "s3dSoftware",
  731. "sAbsorb",
  732. "sAcrobat",
  733. "sActivate",
  734. "sActivateXbox",
  735. "sActorInCombat",
  736. "sAdmire",
  737. "sAdmireFail",
  738. "sAdmireSuccess",
  739. "sAgent",
  740. "sAgiDesc",
  741. "sAIDistance",
  742. "sAlembic",
  743. "sAllTab",
  744. "sAlways",
  745. "sAlways_Run",
  746. "sand",
  747. "sApparatus",
  748. "sApparelTab",
  749. "sArcher",
  750. "sArea",
  751. "sAreaDes",
  752. "sArmor",
  753. "sArmorRating",
  754. "sAsk",
  755. "sAssassin",
  756. "sAt",
  757. "sAttack",
  758. "sAttributeAgility",
  759. "sAttributeEndurance",
  760. "sAttributeIntelligence",
  761. "sAttributeListTitle",
  762. "sAttributeLuck",
  763. "sAttributePersonality",
  764. "sAttributesMenu1",
  765. "sAttributeSpeed",
  766. "sAttributeStrength",
  767. "sAttributeWillpower",
  768. "sAudio",
  769. "sAuto_Run",
  770. "sBack",
  771. "sBackspace",
  772. "sBackXbox",
  773. "sBarbarian",
  774. "sBard",
  775. "sBarter",
  776. "sBarterDialog1",
  777. "sBarterDialog10",
  778. "sBarterDialog11",
  779. "sBarterDialog12",
  780. "sBarterDialog2",
  781. "sBarterDialog3",
  782. "sBarterDialog4",
  783. "sBarterDialog5",
  784. "sBarterDialog6",
  785. "sBarterDialog7",
  786. "sBarterDialog8",
  787. "sBarterDialog9",
  788. "sBattlemage",
  789. "sBestAttack",
  790. "sBirthSign",
  791. "sBirthsignmenu1",
  792. "sBirthsignmenu2",
  793. "sBlocks",
  794. "sBonusSkillTitle",
  795. "sBookPageOne",
  796. "sBookPageTwo",
  797. "sBookSkillMessage",
  798. "sBounty",
  799. "sBreath",
  800. "sBribe",
  801. "sBribe",
  802. "sBribe",
  803. "sBribeFail",
  804. "sBribeSuccess",
  805. "sBuy",
  806. "sBye",
  807. "sCalcinator",
  808. "sCancel",
  809. "sCantEquipWeapWarning",
  810. "sCastCost",
  811. "sCaughtStealingMessage",
  812. "sCenter",
  813. "sChangedMastersMsg",
  814. "sCharges",
  815. "sChooseClassMenu1",
  816. "sChooseClassMenu2",
  817. "sChooseClassMenu3",
  818. "sChooseClassMenu4",
  819. "sChop",
  820. "sClass",
  821. "sClassChoiceMenu1",
  822. "sClassChoiceMenu2",
  823. "sClassChoiceMenu3",
  824. "sClose",
  825. "sCompanionShare",
  826. "sCompanionWarningButtonOne",
  827. "sCompanionWarningButtonTwo",
  828. "sCompanionWarningMessage",
  829. "sCondition",
  830. "sConsoleTitle",
  831. "sContainer",
  832. "sContentsMessage1",
  833. "sContentsMessage2",
  834. "sContentsMessage3",
  835. "sControlerVibration",
  836. "sControls",
  837. "sControlsMenu1",
  838. "sControlsMenu2",
  839. "sControlsMenu3",
  840. "sControlsMenu4",
  841. "sControlsMenu5",
  842. "sControlsMenu6",
  843. "sCostChance",
  844. "sCostCharge",
  845. "sCreate",
  846. "sCreateClassMenu1",
  847. "sCreateClassMenu2",
  848. "sCreateClassMenu3",
  849. "sCreateClassMenuHelp1",
  850. "sCreateClassMenuHelp2",
  851. "sCreateClassMenuWarning",
  852. "sCreatedEffects",
  853. "sCrimeHelp",
  854. "sCrimeMessage",
  855. "sCrouch_Sneak",
  856. "sCrouchXbox",
  857. "sCrusader",
  858. "sCursorOff",
  859. "sCustom",
  860. "sCustomClassName",
  861. "sDamage",
  862. "sDark_Gamma",
  863. "sDay",
  864. "sDefaultCellname",
  865. "sDelete",
  866. "sDeleteGame",
  867. "sDeleteNote",
  868. "sDeleteSpell",
  869. "sDeleteSpellError",
  870. "sDetail_Level",
  871. "sDialogMenu1",
  872. "sDialogText1Xbox",
  873. "sDialogText2Xbox",
  874. "sDialogText3Xbox",
  875. "sDifficulty",
  876. "sDisposeCorpseFail",
  877. "sDisposeofCorpse",
  878. "sDone",
  879. "sDoYouWantTo",
  880. "sDrain",
  881. "sDrop",
  882. "sDuration",
  883. "sDurationDes",
  884. "sEasy",
  885. "sEditNote",
  886. "sEffectAbsorbAttribute",
  887. "sEffectAbsorbFatigue",
  888. "sEffectAbsorbHealth",
  889. "sEffectAbsorbSkill",
  890. "sEffectAbsorbSpellPoints",
  891. "sEffectAlmsiviIntervention",
  892. "sEffectBlind",
  893. "sEffectBoundBattleAxe",
  894. "sEffectBoundBoots",
  895. "sEffectBoundCuirass",
  896. "sEffectBoundDagger",
  897. "sEffectBoundGloves",
  898. "sEffectBoundHelm",
  899. "sEffectBoundLongbow",
  900. "sEffectBoundLongsword",
  901. "sEffectBoundMace",
  902. "sEffectBoundShield",
  903. "sEffectBoundSpear",
  904. "sEffectBurden",
  905. "sEffectCalmCreature",
  906. "sEffectCalmHumanoid",
  907. "sEffectChameleon",
  908. "sEffectCharm",
  909. "sEffectCommandCreatures",
  910. "sEffectCommandHumanoids",
  911. "sEffectCorpus",
  912. "sEffectCureBlightDisease",
  913. "sEffectCureCommonDisease",
  914. "sEffectCureCorprusDisease",
  915. "sEffectCureParalyzation",
  916. "sEffectCurePoison",
  917. "sEffectDamageAttribute",
  918. "sEffectDamageFatigue",
  919. "sEffectDamageHealth",
  920. "sEffectDamageMagicka",
  921. "sEffectDamageSkill",
  922. "sEffectDemoralizeCreature",
  923. "sEffectDemoralizeHumanoid",
  924. "sEffectDetectAnimal",
  925. "sEffectDetectEnchantment",
  926. "sEffectDetectKey",
  927. "sEffectDisintegrateArmor",
  928. "sEffectDisintegrateWeapon",
  929. "sEffectDispel",
  930. "sEffectDivineIntervention",
  931. "sEffectDrainAttribute",
  932. "sEffectDrainFatigue",
  933. "sEffectDrainHealth",
  934. "sEffectDrainSkill",
  935. "sEffectDrainSpellpoints",
  936. "sEffectExtraSpell",
  937. "sEffectFeather",
  938. "sEffectFireDamage",
  939. "sEffectFireShield",
  940. "sEffectFortifyAttackBonus",
  941. "sEffectFortifyAttribute",
  942. "sEffectFortifyFatigue",
  943. "sEffectFortifyHealth",
  944. "sEffectFortifyMagickaMultiplier",
  945. "sEffectFortifySkill",
  946. "sEffectFortifySpellpoints",
  947. "sEffectFrenzyCreature",
  948. "sEffectFrenzyHumanoid",
  949. "sEffectFrostDamage",
  950. "sEffectFrostShield",
  951. "sEffectInvisibility",
  952. "sEffectJump",
  953. "sEffectLevitate",
  954. "sEffectLight",
  955. "sEffectLightningShield",
  956. "sEffectLock",
  957. "sEffectMark",
  958. "sEffectNightEye",
  959. "sEffectOpen",
  960. "sEffectParalyze",
  961. "sEffectPoison",
  962. "sEffectRallyCreature",
  963. "sEffectRallyHumanoid",
  964. "sEffectRecall",
  965. "sEffectReflect",
  966. "sEffectRemoveCurse",
  967. "sEffectResistBlightDisease",
  968. "sEffectResistCommonDisease",
  969. "sEffectResistCorprusDisease",
  970. "sEffectResistFire",
  971. "sEffectResistFrost",
  972. "sEffectResistMagicka",
  973. "sEffectResistNormalWeapons",
  974. "sEffectResistParalysis",
  975. "sEffectResistPoison",
  976. "sEffectResistShock",
  977. "sEffectRestoreAttribute",
  978. "sEffectRestoreFatigue",
  979. "sEffectRestoreHealth",
  980. "sEffectRestoreSkill",
  981. "sEffectRestoreSpellPoints",
  982. "sEffects",
  983. "sEffectSanctuary",
  984. "sEffectShield",
  985. "sEffectShockDamage",
  986. "sEffectSilence",
  987. "sEffectSlowFall",
  988. "sEffectSoultrap",
  989. "sEffectSound",
  990. "sEffectSpellAbsorption",
  991. "sEffectStuntedMagicka",
  992. "sEffectSummonAncestralGhost",
  993. "sEffectSummonBonelord",
  994. "sEffectSummonCenturionSphere",
  995. "sEffectSummonClannfear",
  996. "sEffectSummonCreature01",
  997. "sEffectSummonCreature02",
  998. "sEffectSummonCreature03",
  999. "sEffectSummonCreature04",
  1000. "sEffectSummonCreature05",
  1001. "sEffectSummonDaedroth",
  1002. "sEffectSummonDremora",
  1003. "sEffectSummonFabricant",
  1004. "sEffectSummonFlameAtronach",
  1005. "sEffectSummonFrostAtronach",
  1006. "sEffectSummonGoldensaint",
  1007. "sEffectSummonGreaterBonewalker",
  1008. "sEffectSummonHunger",
  1009. "sEffectSummonLeastBonewalker",
  1010. "sEffectSummonScamp",
  1011. "sEffectSummonSkeletalMinion",
  1012. "sEffectSummonStormAtronach",
  1013. "sEffectSummonWingedTwilight",
  1014. "sEffectSunDamage",
  1015. "sEffectSwiftSwim",
  1016. "sEffectTelekinesis",
  1017. "sEffectTurnUndead",
  1018. "sEffectVampirism",
  1019. "sEffectWaterBreathing",
  1020. "sEffectWaterWalking",
  1021. "sEffectWeaknessToBlightDisease",
  1022. "sEffectWeaknessToCommonDisease",
  1023. "sEffectWeaknessToCorprusDisease",
  1024. "sEffectWeaknessToFire",
  1025. "sEffectWeaknessToFrost",
  1026. "sEffectWeaknessToMagicka",
  1027. "sEffectWeaknessToNormalWeapons",
  1028. "sEffectWeaknessToPoison",
  1029. "sEffectWeaknessToShock",
  1030. "sEnableJoystick",
  1031. "sEnchanting",
  1032. "sEnchantItems",
  1033. "sEnchantmentHelp1",
  1034. "sEnchantmentHelp10",
  1035. "sEnchantmentHelp2",
  1036. "sEnchantmentHelp3",
  1037. "sEnchantmentHelp4",
  1038. "sEnchantmentHelp5",
  1039. "sEnchantmentHelp6",
  1040. "sEnchantmentHelp7",
  1041. "sEnchantmentHelp8",
  1042. "sEnchantmentHelp9",
  1043. "sEnchantmentMenu1",
  1044. "sEnchantmentMenu10",
  1045. "sEnchantmentMenu11",
  1046. "sEnchantmentMenu12",
  1047. "sEnchantmentMenu2",
  1048. "sEnchantmentMenu3",
  1049. "sEnchantmentMenu4",
  1050. "sEnchantmentMenu5",
  1051. "sEnchantmentMenu6",
  1052. "sEnchantmentMenu7",
  1053. "sEnchantmentMenu8",
  1054. "sEnchantmentMenu9",
  1055. "sEncumbrance",
  1056. "sEndDesc",
  1057. "sEquip",
  1058. "sExitGame",
  1059. "sExpelled",
  1060. "sExpelledMessage",
  1061. "sFace",
  1062. "sFaction",
  1063. "sFar",
  1064. "sFast",
  1065. "sFatDesc",
  1066. "sFatigue",
  1067. "sFavoriteSkills",
  1068. "sfeet",
  1069. "sFileSize",
  1070. "sfootarea",
  1071. "sFootsteps",
  1072. "sfor",
  1073. "sFortify",
  1074. "sForward",
  1075. "sForwardXbox",
  1076. "sFull",
  1077. "sGame",
  1078. "sGameWithoutLauncherXbox",
  1079. "sGamma_Correction",
  1080. "sGeneralMastPlugMismatchMsg",
  1081. "sGold",
  1082. "sGoodbye",
  1083. "sGoverningAttribute",
  1084. "sgp",
  1085. "sHair",
  1086. "sHard",
  1087. "sHeal",
  1088. "sHealer",
  1089. "sHealth",
  1090. "sHealthDesc",
  1091. "sHealthPerHourOfRest",
  1092. "sHealthPerLevel",
  1093. "sHeavy",
  1094. "sHigh",
  1095. "sin",
  1096. "sInfo",
  1097. "sInfoRefusal",
  1098. "sIngredients",
  1099. "sInPrisonTitle",
  1100. "sInputMenu1",
  1101. "sIntDesc",
  1102. "sIntimidate",
  1103. "sIntimidateFail",
  1104. "sIntimidateSuccess",
  1105. "sInvalidSaveGameMsg",
  1106. "sInvalidSaveGameMsgXBOX",
  1107. "sInventory",
  1108. "sInventoryMenu1",
  1109. "sInventoryMessage1",
  1110. "sInventoryMessage2",
  1111. "sInventoryMessage3",
  1112. "sInventoryMessage4",
  1113. "sInventoryMessage5",
  1114. "sInventorySelectNoIngredients",
  1115. "sInventorySelectNoItems",
  1116. "sInventorySelectNoSoul",
  1117. "sItem",
  1118. "sItemCastConstant",
  1119. "sItemCastOnce",
  1120. "sItemCastWhenStrikes",
  1121. "sItemCastWhenUsed",
  1122. "sItemName",
  1123. "sJournal",
  1124. "sJournalCmd",
  1125. "sJournalEntry",
  1126. "sJournalXbox",
  1127. "sJoystickHatShort",
  1128. "sJoystickNotFound",
  1129. "sJoystickShort",
  1130. "sJump",
  1131. "sJumpXbox",
  1132. "sKeyName_00",
  1133. "sKeyName_01",
  1134. "sKeyName_02",
  1135. "sKeyName_03",
  1136. "sKeyName_04",
  1137. "sKeyName_05",
  1138. "sKeyName_06",
  1139. "sKeyName_07",
  1140. "sKeyName_08",
  1141. "sKeyName_09",
  1142. "sKeyName_0A",
  1143. "sKeyName_0B",
  1144. "sKeyName_0C",
  1145. "sKeyName_0D",
  1146. "sKeyName_0E",
  1147. "sKeyName_0F",
  1148. "sKeyName_10",
  1149. "sKeyName_11",
  1150. "sKeyName_12",
  1151. "sKeyName_13",
  1152. "sKeyName_14",
  1153. "sKeyName_15",
  1154. "sKeyName_16",
  1155. "sKeyName_17",
  1156. "sKeyName_18",
  1157. "sKeyName_19",
  1158. "sKeyName_1A",
  1159. "sKeyName_1B",
  1160. "sKeyName_1C",
  1161. "sKeyName_1D",
  1162. "sKeyName_1E",
  1163. "sKeyName_1F",
  1164. "sKeyName_20",
  1165. "sKeyName_21",
  1166. "sKeyName_22",
  1167. "sKeyName_23",
  1168. "sKeyName_24",
  1169. "sKeyName_25",
  1170. "sKeyName_26",
  1171. "sKeyName_27",
  1172. "sKeyName_28",
  1173. "sKeyName_29",
  1174. "sKeyName_2A",
  1175. "sKeyName_2B",
  1176. "sKeyName_2C",
  1177. "sKeyName_2D",
  1178. "sKeyName_2E",
  1179. "sKeyName_2F",
  1180. "sKeyName_30",
  1181. "sKeyName_31",
  1182. "sKeyName_32",
  1183. "sKeyName_33",
  1184. "sKeyName_34",
  1185. "sKeyName_35",
  1186. "sKeyName_36",
  1187. "sKeyName_37",
  1188. "sKeyName_38",
  1189. "sKeyName_39",
  1190. "sKeyName_3A",
  1191. "sKeyName_3B",
  1192. "sKeyName_3C",
  1193. "sKeyName_3D",
  1194. "sKeyName_3E",
  1195. "sKeyName_3F",
  1196. "sKeyName_40",
  1197. "sKeyName_41",
  1198. "sKeyName_42",
  1199. "sKeyName_43",
  1200. "sKeyName_44",
  1201. "sKeyName_45",
  1202. "sKeyName_46",
  1203. "sKeyName_47",
  1204. "sKeyName_48",
  1205. "sKeyName_49",
  1206. "sKeyName_4A",
  1207. "sKeyName_4B",
  1208. "sKeyName_4C",
  1209. "sKeyName_4D",
  1210. "sKeyName_4E",
  1211. "sKeyName_4F",
  1212. "sKeyName_50",
  1213. "sKeyName_51",
  1214. "sKeyName_52",
  1215. "sKeyName_53",
  1216. "sKeyName_54",
  1217. "sKeyName_55",
  1218. "sKeyName_56",
  1219. "sKeyName_57",
  1220. "sKeyName_58",
  1221. "sKeyName_59",
  1222. "sKeyName_5A",
  1223. "sKeyName_5B",
  1224. "sKeyName_5C",
  1225. "sKeyName_5D",
  1226. "sKeyName_5E",
  1227. "sKeyName_5F",
  1228. "sKeyName_60",
  1229. "sKeyName_61",
  1230. "sKeyName_62",
  1231. "sKeyName_63",
  1232. "sKeyName_64",
  1233. "sKeyName_65",
  1234. "sKeyName_66",
  1235. "sKeyName_67",
  1236. "sKeyName_68",
  1237. "sKeyName_69",
  1238. "sKeyName_6A",
  1239. "sKeyName_6B",
  1240. "sKeyName_6C",
  1241. "sKeyName_6D",
  1242. "sKeyName_6E",
  1243. "sKeyName_6F",
  1244. "sKeyName_70",
  1245. "sKeyName_71",
  1246. "sKeyName_72",
  1247. "sKeyName_73",
  1248. "sKeyName_74",
  1249. "sKeyName_75",
  1250. "sKeyName_76",
  1251. "sKeyName_77",
  1252. "sKeyName_78",
  1253. "sKeyName_79",
  1254. "sKeyName_7A",
  1255. "sKeyName_7B",
  1256. "sKeyName_7C",
  1257. "sKeyName_7D",
  1258. "sKeyName_7E",
  1259. "sKeyName_7F",
  1260. "sKeyName_80",
  1261. "sKeyName_81",
  1262. "sKeyName_82",
  1263. "sKeyName_83",
  1264. "sKeyName_84",
  1265. "sKeyName_85",
  1266. "sKeyName_86",
  1267. "sKeyName_87",
  1268. "sKeyName_88",
  1269. "sKeyName_89",
  1270. "sKeyName_8A",
  1271. "sKeyName_8B",
  1272. "sKeyName_8C",
  1273. "sKeyName_8D",
  1274. "sKeyName_8E",
  1275. "sKeyName_8F",
  1276. "sKeyName_90",
  1277. "sKeyName_91",
  1278. "sKeyName_92",
  1279. "sKeyName_93",
  1280. "sKeyName_94",
  1281. "sKeyName_95",
  1282. "sKeyName_96",
  1283. "sKeyName_97",
  1284. "sKeyName_98",
  1285. "sKeyName_99",
  1286. "sKeyName_9A",
  1287. "sKeyName_9B",
  1288. "sKeyName_9C",
  1289. "sKeyName_9D",
  1290. "sKeyName_9E",
  1291. "sKeyName_9F",
  1292. "sKeyName_A0",
  1293. "sKeyName_A1",
  1294. "sKeyName_A2",
  1295. "sKeyName_A3",
  1296. "sKeyName_A4",
  1297. "sKeyName_A5",
  1298. "sKeyName_A6",
  1299. "sKeyName_A7",
  1300. "sKeyName_A8",
  1301. "sKeyName_A9",
  1302. "sKeyName_AA",
  1303. "sKeyName_AB",
  1304. "sKeyName_AC",
  1305. "sKeyName_AD",
  1306. "sKeyName_AE",
  1307. "sKeyName_AF",
  1308. "sKeyName_B0",
  1309. "sKeyName_B1",
  1310. "sKeyName_B2",
  1311. "sKeyName_B3",
  1312. "sKeyName_B4",
  1313. "sKeyName_B5",
  1314. "sKeyName_B6",
  1315. "sKeyName_B7",
  1316. "sKeyName_B8",
  1317. "sKeyName_B9",
  1318. "sKeyName_BA",
  1319. "sKeyName_BB",
  1320. "sKeyName_BC",
  1321. "sKeyName_BD",
  1322. "sKeyName_BE",
  1323. "sKeyName_BF",
  1324. "sKeyName_C0",
  1325. "sKeyName_C1",
  1326. "sKeyName_C2",
  1327. "sKeyName_C3",
  1328. "sKeyName_C4",
  1329. "sKeyName_C5",
  1330. "sKeyName_C6",
  1331. "sKeyName_C7",
  1332. "sKeyName_C8",
  1333. "sKeyName_C9",
  1334. "sKeyName_CA",
  1335. "sKeyName_CB",
  1336. "sKeyName_CC",
  1337. "sKeyName_CD",
  1338. "sKeyName_CE",
  1339. "sKeyName_CF",
  1340. "sKeyName_D0",
  1341. "sKeyName_D1",
  1342. "sKeyName_D2",
  1343. "sKeyName_D3",
  1344. "sKeyName_D4",
  1345. "sKeyName_D5",
  1346. "sKeyName_D6",
  1347. "sKeyName_D7",
  1348. "sKeyName_D8",
  1349. "sKeyName_D9",
  1350. "sKeyName_DA",
  1351. "sKeyName_DB",
  1352. "sKeyName_DC",
  1353. "sKeyName_DD",
  1354. "sKeyName_DE",
  1355. "sKeyName_DF",
  1356. "sKeyName_E0",
  1357. "sKeyName_E1",
  1358. "sKeyName_E2",
  1359. "sKeyName_E3",
  1360. "sKeyName_E4",
  1361. "sKeyName_E5",
  1362. "sKeyName_E6",
  1363. "sKeyName_E7",
  1364. "sKeyName_E8",
  1365. "sKeyName_E9",
  1366. "sKeyName_EA",
  1367. "sKeyName_EB",
  1368. "sKeyName_EC",
  1369. "sKeyName_ED",
  1370. "sKeyName_EE",
  1371. "sKeyName_EF",
  1372. "sKeyName_F0",
  1373. "sKeyName_F1",
  1374. "sKeyName_F2",
  1375. "sKeyName_F3",
  1376. "sKeyName_F4",
  1377. "sKeyName_F5",
  1378. "sKeyName_F6",
  1379. "sKeyName_F7",
  1380. "sKeyName_F8",
  1381. "sKeyName_F9",
  1382. "sKeyName_FA",
  1383. "sKeyName_FB",
  1384. "sKeyName_FC",
  1385. "sKeyName_FD",
  1386. "sKeyName_FE",
  1387. "sKeyName_FF",
  1388. "sKeyUsed",
  1389. "sKilledEssential",
  1390. "sKnight",
  1391. "sLeft",
  1392. "sLess",
  1393. "sLevel",
  1394. "sLevelProgress",
  1395. "sLevels",
  1396. "sLevelUp",
  1397. "sLevelUpMenu1",
  1398. "sLevelUpMenu2",
  1399. "sLevelUpMenu3",
  1400. "sLevelUpMenu4",
  1401. "sLevelUpMsg",
  1402. "sLevitateDisabled",
  1403. "sLight",
  1404. "sLight_Gamma",
  1405. "sLoadFailedMessage",
  1406. "sLoadGame",
  1407. "sLoadingErrorsMsg",
  1408. "sLoadingMessage1",
  1409. "sLoadingMessage14",
  1410. "sLoadingMessage15",
  1411. "sLoadingMessage2",
  1412. "sLoadingMessage3",
  1413. "sLoadingMessage4",
  1414. "sLoadingMessage5",
  1415. "sLoadingMessage9",
  1416. "sLoadLastSaveMsg",
  1417. "sLocal",
  1418. "sLockFail",
  1419. "sLockImpossible",
  1420. "sLockLevel",
  1421. "sLockSuccess",
  1422. "sLookDownXbox",
  1423. "sLookUpXbox",
  1424. "sLow",
  1425. "sLucDesc",
  1426. "sMagDesc",
  1427. "sMage",
  1428. "sMagic",
  1429. "sMagicAncestralGhostID",
  1430. "sMagicBonelordID",
  1431. "sMagicBoundBattleAxeID",
  1432. "sMagicBoundBootsID",
  1433. "sMagicBoundCuirassID",
  1434. "sMagicBoundDaggerID",
  1435. "sMagicBoundHelmID",
  1436. "sMagicBoundLeftGauntletID",
  1437. "sMagicBoundLongbowID",
  1438. "sMagicBoundLongswordID",
  1439. "sMagicBoundMaceID",
  1440. "sMagicBoundRightGauntletID",
  1441. "sMagicBoundShieldID",
  1442. "sMagicBoundSpearID",
  1443. "sMagicCannotRecast",
  1444. "sMagicCenturionSphereID",
  1445. "sMagicClannfearID",
  1446. "sMagicContractDisease",
  1447. "sMagicCorprusWorsens",
  1448. "sMagicCreature01ID",
  1449. "sMagicCreature02ID",
  1450. "sMagicCreature03ID",
  1451. "sMagicCreature04ID",
  1452. "sMagicCreature05ID",
  1453. "sMagicDaedrothID",
  1454. "sMagicDremoraID",
  1455. "sMagicEffects",
  1456. "sMagicFabricantID",
  1457. "sMagicFlameAtronachID",
  1458. "sMagicFrostAtronachID",
  1459. "sMagicGoldenSaintID",
  1460. "sMagicGreaterBonewalkerID",
  1461. "sMagicHungerID",
  1462. "sMagicInsufficientCharge",
  1463. "sMagicInsufficientSP",
  1464. "sMagicInvalidEffect",
  1465. "sMagicInvalidTarget",
  1466. "sMagicItem",
  1467. "sMagicLeastBonewalkerID",
  1468. "sMagicLockSuccess",
  1469. "sMagicMenu",
  1470. "sMagicOpenSuccess",
  1471. "sMagicPCResisted",
  1472. "sMagicScampID",
  1473. "sMagicSelectTitle",
  1474. "sMagicSkeletalMinionID",
  1475. "sMagicSkillFail",
  1476. "sMagicStormAtronachID",
  1477. "sMagicTab",
  1478. "sMagicTargetResisted",
  1479. "sMagicTargetResistsWeapons",
  1480. "sMagicWingedTwilightID",
  1481. "sMagnitude",
  1482. "sMagnitudeDes",
  1483. "sMake",
  1484. "sMap",
  1485. "sMaster",
  1486. "sMastPlugMismatchMsg",
  1487. "sMaximumSaveGameMessage",
  1488. "sMaxSale",
  1489. "sMedium",
  1490. "sMenu_Help_Delay",
  1491. "sMenu_Mode",
  1492. "sMenuModeXbox",
  1493. "sMenuNextXbox",
  1494. "sMenuPrevXbox",
  1495. "sMenus",
  1496. "sMessage1",
  1497. "sMessage2",
  1498. "sMessage3",
  1499. "sMessage4",
  1500. "sMessage5",
  1501. "sMessageQuestionAnswer1",
  1502. "sMessageQuestionAnswer2",
  1503. "sMessageQuestionAnswer3",
  1504. "sMiscTab",
  1505. "sMissingMastersMsg",
  1506. "sMonk",
  1507. "sMonthEveningstar",
  1508. "sMonthFirstseed",
  1509. "sMonthFrostfall",
  1510. "sMonthHeartfire",
  1511. "sMonthLastseed",
  1512. "sMonthMidyear",
  1513. "sMonthMorningstar",
  1514. "sMonthRainshand",
  1515. "sMonthSecondseed",
  1516. "sMonthSunsdawn",
  1517. "sMonthSunsdusk",
  1518. "sMonthSunsheight",
  1519. "sMore",
  1520. "sMortar",
  1521. "sMouse",
  1522. "sMouseFlip",
  1523. "sMouseWheelDownShort",
  1524. "sMouseWheelUpShort",
  1525. "sMove",
  1526. "sMoveDownXbox",
  1527. "sMoveUpXbox",
  1528. "sMusic",
  1529. "sName",
  1530. "sNameTitle",
  1531. "sNear",
  1532. "sNeedOneSkill",
  1533. "sNeedTwoSkills",
  1534. "sNewGame",
  1535. "sNext",
  1536. "sNextRank",
  1537. "sNextSpell",
  1538. "sNextSpellXbox",
  1539. "sNextWeapon",
  1540. "sNextWeaponXbox",
  1541. "sNightblade",
  1542. "sNo",
  1543. "sNoName",
  1544. "sNone",
  1545. "sNotifyMessage1",
  1546. "sNotifyMessage10",
  1547. "sNotifyMessage11",
  1548. "sNotifyMessage12",
  1549. "sNotifyMessage13",
  1550. "sNotifyMessage14",
  1551. "sNotifyMessage15",
  1552. "sNotifyMessage16",
  1553. "sNotifyMessage16_a",
  1554. "sNotifyMessage17",
  1555. "sNotifyMessage18",
  1556. "sNotifyMessage19",
  1557. "sNotifyMessage2",
  1558. "sNotifyMessage20",
  1559. "sNotifyMessage21",
  1560. "sNotifyMessage22",
  1561. "sNotifyMessage23",
  1562. "sNotifyMessage24",
  1563. "sNotifyMessage25",
  1564. "sNotifyMessage26",
  1565. "sNotifyMessage27",
  1566. "sNotifyMessage28",
  1567. "sNotifyMessage29",
  1568. "sNotifyMessage3",
  1569. "sNotifyMessage30",
  1570. "sNotifyMessage31",
  1571. "sNotifyMessage32",
  1572. "sNotifyMessage33",
  1573. "sNotifyMessage34",
  1574. "sNotifyMessage35",
  1575. "sNotifyMessage36",
  1576. "sNotifyMessage37",
  1577. "sNotifyMessage38",
  1578. "sNotifyMessage39",
  1579. "sNotifyMessage4",
  1580. "sNotifyMessage40",
  1581. "sNotifyMessage41",
  1582. "sNotifyMessage42",
  1583. "sNotifyMessage43",
  1584. "sNotifyMessage44",
  1585. "sNotifyMessage45",
  1586. "sNotifyMessage46",
  1587. "sNotifyMessage47",
  1588. "sNotifyMessage48",
  1589. "sNotifyMessage49",
  1590. "sNotifyMessage4XBOX",
  1591. "sNotifyMessage5",
  1592. "sNotifyMessage50",
  1593. "sNotifyMessage51",
  1594. "sNotifyMessage52",
  1595. "sNotifyMessage53",
  1596. "sNotifyMessage54",
  1597. "sNotifyMessage55",
  1598. "sNotifyMessage56",
  1599. "sNotifyMessage57",
  1600. "sNotifyMessage58",
  1601. "sNotifyMessage59",
  1602. "sNotifyMessage6",
  1603. "sNotifyMessage60",
  1604. "sNotifyMessage61",
  1605. "sNotifyMessage62",
  1606. "sNotifyMessage63",
  1607. "sNotifyMessage64",
  1608. "sNotifyMessage65",
  1609. "sNotifyMessage66",
  1610. "sNotifyMessage67",
  1611. "sNotifyMessage6a",
  1612. "sNotifyMessage7",
  1613. "sNotifyMessage8",
  1614. "sNotifyMessage9",
  1615. "sOff",
  1616. "sOffer",
  1617. "sOfferMenuTitle",
  1618. "sOK",
  1619. "sOn",
  1620. "sOnce",
  1621. "sOneHanded",
  1622. "sOnetypeEffectMessage",
  1623. "sonword",
  1624. "sOptions",
  1625. "sOptionsMenuXbox",
  1626. "spercent",
  1627. "sPerDesc",
  1628. "sPersuasion",
  1629. "sPersuasionMenuTitle",
  1630. "sPickUp",
  1631. "sPilgrim",
  1632. "spoint",
  1633. "spoints",
  1634. "sPotionSuccess",
  1635. "sPowerAlreadyUsed",
  1636. "sPowers",
  1637. "sPreferences",
  1638. "sPrefs",
  1639. "sPrev",
  1640. "sPrevSpell",
  1641. "sPrevSpellXbox",
  1642. "sPrevWeapon",
  1643. "sPrevWeaponXbox",
  1644. "sProfitValue",
  1645. "sQuality",
  1646. "sQuanityMenuMessage01",
  1647. "sQuanityMenuMessage02",
  1648. "sQuestionDeleteSpell",
  1649. "sQuestionMark",
  1650. "sQuick0Xbox",
  1651. "sQuick10Cmd",
  1652. "sQuick1Cmd",
  1653. "sQuick2Cmd",
  1654. "sQuick3Cmd",
  1655. "sQuick4Cmd",
  1656. "sQuick4Xbox",
  1657. "sQuick5Cmd",
  1658. "sQuick5Xbox",
  1659. "sQuick6Cmd",
  1660. "sQuick6Xbox",
  1661. "sQuick7Cmd",
  1662. "sQuick7Xbox",
  1663. "sQuick8Cmd",
  1664. "sQuick8Xbox",
  1665. "sQuick9Cmd",
  1666. "sQuick9Xbox",
  1667. "sQuick_Save",
  1668. "sQuickLoadCmd",
  1669. "sQuickLoadXbox",
  1670. "sQuickMenu",
  1671. "sQuickMenu1",
  1672. "sQuickMenu2",
  1673. "sQuickMenu3",
  1674. "sQuickMenu4",
  1675. "sQuickMenu5",
  1676. "sQuickMenu6",
  1677. "sQuickMenuInstruc",
  1678. "sQuickMenuTitle",
  1679. "sQuickSaveCmd",
  1680. "sQuickSaveXbox",
  1681. "sRace",
  1682. "sRaceMenu1",
  1683. "sRaceMenu2",
  1684. "sRaceMenu3",
  1685. "sRaceMenu4",
  1686. "sRaceMenu5",
  1687. "sRaceMenu6",
  1688. "sRaceMenu7",
  1689. "sRacialTraits",
  1690. "sRange",
  1691. "sRangeDes",
  1692. "sRangeSelf",
  1693. "sRangeTarget",
  1694. "sRangeTouch",
  1695. "sReady_Magic",
  1696. "sReady_Weapon",
  1697. "sReadyItemXbox",
  1698. "sReadyMagicXbox",
  1699. "sRechargeEnchantment",
  1700. "sRender_Distance",
  1701. "sRepair",
  1702. "sRepairFailed",
  1703. "sRepairServiceTitle",
  1704. "sRepairSuccess",
  1705. "sReputation",
  1706. "sResChangeWarning",
  1707. "sRest",
  1708. "sRestIllegal",
  1709. "sRestKey",
  1710. "sRestMenu1",
  1711. "sRestMenu2",
  1712. "sRestMenu3",
  1713. "sRestMenu4",
  1714. "sRestMenuXbox",
  1715. "sRestore",
  1716. "sRetort",
  1717. "sReturnToGame",
  1718. "sRight",
  1719. "sRogue",
  1720. "sRun",
  1721. "sRunXbox",
  1722. "sSave",
  1723. "sSaveGame",
  1724. "sSaveGameDenied",
  1725. "sSaveGameFailed",
  1726. "sSaveGameNoMemory",
  1727. "sSaveGameTooBig",
  1728. "sSaveMenu1",
  1729. "sSaveMenuHelp01",
  1730. "sSaveMenuHelp02",
  1731. "sSaveMenuHelp03",
  1732. "sSaveMenuHelp04",
  1733. "sSaveMenuHelp05",
  1734. "sSaveMenuHelp06",
  1735. "sSchool",
  1736. "sSchoolAlteration",
  1737. "sSchoolConjuration",
  1738. "sSchoolDestruction",
  1739. "sSchoolIllusion",
  1740. "sSchoolMysticism",
  1741. "sSchoolRestoration",
  1742. "sScout",
  1743. "sScrolldown",
  1744. "sScrollup",
  1745. "ssecond",
  1746. "sseconds",
  1747. "sSeldom",
  1748. "sSelect",
  1749. "sSell",
  1750. "sSellerGold",
  1751. "sService",
  1752. "sServiceRefusal",
  1753. "sServiceRepairTitle",
  1754. "sServiceSpellsTitle",
  1755. "sServiceTrainingTitle",
  1756. "sServiceTrainingWords",
  1757. "sServiceTravelTitle",
  1758. "sSetValueMessage01",
  1759. "sSex",
  1760. "sShadows",
  1761. "sShadowText",
  1762. "sShift",
  1763. "sSkill",
  1764. "sSkillAcrobatics",
  1765. "sSkillAlchemy",
  1766. "sSkillAlteration",
  1767. "sSkillArmorer",
  1768. "sSkillAthletics",
  1769. "sSkillAxe",
  1770. "sSkillBlock",
  1771. "sSkillBluntweapon",
  1772. "sSkillClassMajor",
  1773. "sSkillClassMinor",
  1774. "sSkillClassMisc",
  1775. "sSkillConjuration",
  1776. "sSkillDestruction",
  1777. "sSkillEnchant",
  1778. "sSkillHandtohand",
  1779. "sSkillHeavyarmor",
  1780. "sSkillIllusion",
  1781. "sSkillLightarmor",
  1782. "sSkillLongblade",
  1783. "sSkillMarksman",
  1784. "sSkillMaxReached",
  1785. "sSkillMediumarmor",
  1786. "sSkillMercantile",
  1787. "sSkillMysticism",
  1788. "sSkillProgress",
  1789. "sSkillRestoration",
  1790. "sSkillSecurity",
  1791. "sSkillShortblade",
  1792. "sSkillsMenu1",
  1793. "sSkillsMenuReputationHelp",
  1794. "sSkillSneak",
  1795. "sSkillSpear",
  1796. "sSkillSpeechcraft",
  1797. "sSkillUnarmored",
  1798. "sSlash",
  1799. "sSleepInterrupt",
  1800. "sSlideLeftXbox",
  1801. "sSlideRightXbox",
  1802. "sSlow",
  1803. "sSorceror",
  1804. "sSoulGem",
  1805. "sSoulGemsWithSouls",
  1806. "sSoultrapSuccess",
  1807. "sSpace",
  1808. "sSpdDesc",
  1809. "sSpecialization",
  1810. "sSpecializationCombat",
  1811. "sSpecializationMagic",
  1812. "sSpecializationMenu1",
  1813. "sSpecializationStealth",
  1814. "sSpellmaking",
  1815. "sSpellmakingHelp1",
  1816. "sSpellmakingHelp2",
  1817. "sSpellmakingHelp3",
  1818. "sSpellmakingHelp4",
  1819. "sSpellmakingHelp5",
  1820. "sSpellmakingHelp6",
  1821. "sSpellmakingMenu1",
  1822. "sSpellmakingMenuTitle",
  1823. "sSpells",
  1824. "sSpellServiceTitle",
  1825. "sSpellsword",
  1826. "sStartCell",
  1827. "sStartCellError",
  1828. "sStartError",
  1829. "sStats",
  1830. "sStrafe",
  1831. "sStrDesc",
  1832. "sStrip",
  1833. "sSubtitles",
  1834. "sSystemMenuXbox",
  1835. "sTake",
  1836. "sTakeAll",
  1837. "sTargetCriticalStrike",
  1838. "sTaunt",
  1839. "sTauntFail",
  1840. "sTauntSuccess",
  1841. "sTeleportDisabled",
  1842. "sThief",
  1843. "sThrust",
  1844. "sTo",
  1845. "sTogglePOVCmd",
  1846. "sTogglePOVXbox",
  1847. "sToggleRunXbox",
  1848. "sTopics",
  1849. "sTotalCost",
  1850. "sTotalSold",
  1851. "sTraining",
  1852. "sTrainingServiceTitle",
  1853. "sTraits",
  1854. "sTransparency_Menu",
  1855. "sTrapFail",
  1856. "sTrapImpossible",
  1857. "sTrapped",
  1858. "sTrapSuccess",
  1859. "sTravel",
  1860. "sTravelServiceTitle",
  1861. "sTurn",
  1862. "sTurnLeftXbox",
  1863. "sTurnRightXbox",
  1864. "sTwoHanded",
  1865. "sType",
  1866. "sTypeAbility",
  1867. "sTypeBlightDisease",
  1868. "sTypeCurse",
  1869. "sTypeDisease",
  1870. "sTypePower",
  1871. "sTypeSpell",
  1872. "sUnequip",
  1873. "sUnlocked",
  1874. "sUntilHealed",
  1875. "sUse",
  1876. "sUserDefinedClass",
  1877. "sUses",
  1878. "sUseXbox",
  1879. "sValue",
  1880. "sVideo",
  1881. "sVideoWarning",
  1882. "sVoice",
  1883. "sWait",
  1884. "sWarrior",
  1885. "sWaterReflectUpdate",
  1886. "sWaterTerrainReflect",
  1887. "sWeaponTab",
  1888. "sWeight",
  1889. "sWerewolfAlarmMessage",
  1890. "sWerewolfPopup",
  1891. "sWerewolfRefusal",
  1892. "sWerewolfRestMessage",
  1893. "sWilDesc",
  1894. "sWitchhunter",
  1895. "sWorld",
  1896. "sWornTab",
  1897. "sXStrafe",
  1898. "sXTimes",
  1899. "sXTimesINT",
  1900. "sYes",
  1901. "sYourGold",
  1902. 0
  1903. };
  1904.  
  1905. for (int i=0; gmstFloats[i]; i++)
  1906. {
  1907. ESM::GameSetting gmst;
  1908. gmst.mId = gmstFloats[i];
  1909. gmst.mValue.setType (ESM::VT_Float);
  1910. gmst.mValue.setFloat (gmstFloatsValues[i]);
  1911. getData().getGmsts().add (gmst);
  1912. }
  1913.  
  1914. for (int i=0; gmstIntegers[i]; i++)
  1915. {
  1916. ESM::GameSetting gmst;
  1917. gmst.mId = gmstIntegers[i];
  1918. gmst.mValue.setType (ESM::VT_Int);
  1919. gmst.mValue.setInteger (gmstIntegersValues[i]);
  1920. getData().getGmsts().add (gmst);
  1921. }
  1922.  
  1923. for (int i=0; gmstStrings[i]; i++)
  1924. {
  1925. ESM::GameSetting gmst;
  1926. gmst.mId = gmstStrings[i];
  1927. gmst.mValue.setType (ESM::VT_String);
  1928. gmst.mValue.setString ("");
  1929. getData().getGmsts().add (gmst);
  1930. }
  1931. }
  1932.  
  1933. void CSMDoc::Document::addOptionalGmsts()
  1934. {
  1935. static const char *sFloats[] =
  1936. {
  1937. "fCombatDistanceWerewolfMod",
  1938. "fFleeDistance",
  1939. "fWereWolfAcrobatics",
  1940. "fWereWolfAgility",
  1941. "fWereWolfAlchemy",
  1942. "fWereWolfAlteration",
  1943. "fWereWolfArmorer",
  1944. "fWereWolfAthletics",
  1945. "fWereWolfAxe",
  1946. "fWereWolfBlock",
  1947. "fWereWolfBluntWeapon",
  1948. "fWereWolfConjuration",
  1949. "fWereWolfDestruction",
  1950. "fWereWolfEnchant",
  1951. "fWereWolfEndurance",
  1952. "fWereWolfFatigue",
  1953. "fWereWolfHandtoHand",
  1954. "fWereWolfHealth",
  1955. "fWereWolfHeavyArmor",
  1956. "fWereWolfIllusion",
  1957. "fWereWolfIntellegence",
  1958. "fWereWolfLightArmor",
  1959. "fWereWolfLongBlade",
  1960. "fWereWolfLuck",
  1961. "fWereWolfMagicka",
  1962. "fWereWolfMarksman",
  1963. "fWereWolfMediumArmor",
  1964. "fWereWolfMerchantile",
  1965. "fWereWolfMysticism",
  1966. "fWereWolfPersonality",
  1967. "fWereWolfRestoration",
  1968. "fWereWolfRunMult",
  1969. "fWereWolfSecurity",
  1970. "fWereWolfShortBlade",
  1971. "fWereWolfSilverWeaponDamageMult",
  1972. "fWereWolfSneak",
  1973. "fWereWolfSpear",
  1974. "fWereWolfSpeechcraft",
  1975. "fWereWolfSpeed",
  1976. "fWereWolfStrength",
  1977. "fWereWolfUnarmored",
  1978. "fWereWolfWillPower",
  1979. 0
  1980. };
  1981.  
  1982. static const char *sIntegers[] =
  1983. {
  1984. "iWereWolfBounty",
  1985. "iWereWolfFightMod",
  1986. "iWereWolfFleeMod",
  1987. "iWereWolfLevelToAttack",
  1988. 0
  1989. };
  1990.  
  1991. static const char *sStrings[] =
  1992. {
  1993. "sCompanionShare",
  1994. "sCompanionWarningButtonOne",
  1995. "sCompanionWarningButtonTwo",
  1996. "sCompanionWarningMessage",
  1997. "sDeleteNote",
  1998. "sEditNote",
  1999. "sEffectSummonCreature01",
  2000. "sEffectSummonCreature02",
  2001. "sEffectSummonCreature03",
  2002. "sEffectSummonCreature04",
  2003. "sEffectSummonCreature05",
  2004. "sEffectSummonFabricant",
  2005. "sLevitateDisabled",
  2006. "sMagicCreature01ID",
  2007. "sMagicCreature02ID",
  2008. "sMagicCreature03ID",
  2009. "sMagicCreature04ID",
  2010. "sMagicCreature05ID",
  2011. "sMagicFabricantID",
  2012. "sMaxSale",
  2013. "sProfitValue",
  2014. "sTeleportDisabled",
  2015. "sWerewolfAlarmMessage",
  2016. "sWerewolfPopup",
  2017. "sWerewolfRefusal",
  2018. "sWerewolfRestMessage",
  2019. 0
  2020. };
  2021.  
  2022. for (int i=0; sFloats[i]; ++i)
  2023. {
  2024. ESM::GameSetting gmst;
  2025. gmst.mId = sFloats[i];
  2026. gmst.mValue.setType (ESM::VT_Float);
  2027. addOptionalGmst (gmst);
  2028. }
  2029.  
  2030. for (int i=0; sIntegers[i]; ++i)
  2031. {
  2032. ESM::GameSetting gmst;
  2033. gmst.mId = sIntegers[i];
  2034. gmst.mValue.setType (ESM::VT_Int);
  2035. addOptionalGmst (gmst);
  2036. }
  2037.  
  2038. for (int i=0; sStrings[i]; ++i)
  2039. {
  2040. ESM::GameSetting gmst;
  2041. gmst.mId = sStrings[i];
  2042. gmst.mValue.setType (ESM::VT_String);
  2043. gmst.mValue.setString ("<no text>");
  2044. addOptionalGmst (gmst);
  2045. }
  2046. }
  2047.  
  2048. void CSMDoc::Document::addOptionalGlobals()
  2049. {
  2050. static const char *sGlobals[] =
  2051. {
  2052. "DaysPassed",
  2053. "PCWerewolf",
  2054. "PCYear",
  2055. 0
  2056. };
  2057.  
  2058. for (int i=0; sGlobals[i]; ++i)
  2059. {
  2060. ESM::Global global;
  2061. global.mId = sGlobals[i];
  2062. global.mValue.setType (ESM::VT_Long);
  2063.  
  2064. if (i==0)
  2065. global.mValue.setInteger (1); // dayspassed starts counting at 1
  2066.  
  2067. addOptionalGlobal (global);
  2068. }
  2069. }
  2070.  
  2071. void CSMDoc::Document::addOptionalGmst (const ESM::GameSetting& gmst)
  2072. {
  2073. if (getData().getGmsts().searchId (gmst.mId)==-1)
  2074. {
  2075. CSMWorld::Record<ESM::GameSetting> record;
  2076. record.mBase = gmst;
  2077. record.mState = CSMWorld::RecordBase::State_BaseOnly;
  2078. getData().getGmsts().appendRecord (record);
  2079. }
  2080. }
  2081.  
  2082. void CSMDoc::Document::addOptionalGlobal (const ESM::Global& global)
  2083. {
  2084. if (getData().getGlobals().searchId (global.mId)==-1)
  2085. {
  2086. CSMWorld::Record<ESM::Global> record;
  2087. record.mBase = global;
  2088. record.mState = CSMWorld::RecordBase::State_BaseOnly;
  2089. getData().getGlobals().appendRecord (record);
  2090. }
  2091. }
  2092.  
  2093. void CSMDoc::Document::createBase()
  2094. {
  2095. static const char *sGlobals[] =
  2096. {
  2097. "Day",
  2098. "DaysPassed",
  2099. "GameHour",
  2100. "Month",
  2101. "PCRace",
  2102. "PCVampire",
  2103. "PCWerewolf",
  2104. "PCYear",
  2105. 0
  2106. };
  2107.  
  2108. for (int i=0; sGlobals[i]; ++i)
  2109. {
  2110. ESM::Global record;
  2111. record.mId = sGlobals[i];
  2112. record.mValue.setType (i==2 ? ESM::VT_Float : ESM::VT_Long);
  2113.  
  2114. if (i==0 || i==1)
  2115. record.mValue.setInteger (1);
  2116.  
  2117. getData().getGlobals().add (record);
  2118. }
  2119.  
  2120. addGmsts();
  2121.  
  2122. for (int i=0; i<27; ++i)
  2123. {
  2124. ESM::Skill record;
  2125. record.mIndex = i;
  2126. record.mId = ESM::Skill::indexToId (record.mIndex);
  2127. record.blank();
  2128.  
  2129. getData().getSkills().add (record);
  2130. }
  2131.  
  2132. static const char *sVoice[] =
  2133. {
  2134. "Intruder",
  2135. "Attack",
  2136. "Hello",
  2137. "Thief",
  2138. "Alarm",
  2139. "Idle",
  2140. "Flee",
  2141. "Hit",
  2142. 0
  2143. };
  2144.  
  2145. for (int i=0; sVoice[i]; ++i)
  2146. {
  2147. ESM::Dialogue record;
  2148. record.mId = sVoice[i];
  2149. record.mType = ESM::Dialogue::Voice;
  2150. record.blank();
  2151.  
  2152. getData().getTopics().add (record);
  2153. }
  2154.  
  2155. static const char *sGreetings[] =
  2156. {
  2157. "Greeting 0",
  2158. "Greeting 1",
  2159. "Greeting 2",
  2160. "Greeting 3",
  2161. "Greeting 4",
  2162. "Greeting 5",
  2163. "Greeting 6",
  2164. "Greeting 7",
  2165. "Greeting 8",
  2166. "Greeting 9",
  2167. 0
  2168. };
  2169.  
  2170. for (int i=0; sGreetings[i]; ++i)
  2171. {
  2172. ESM::Dialogue record;
  2173. record.mId = sGreetings[i];
  2174. record.mType = ESM::Dialogue::Greeting;
  2175. record.blank();
  2176.  
  2177. getData().getTopics().add (record);
  2178. }
  2179.  
  2180. static const char *sPersuasion[] =
  2181. {
  2182. "Intimidate Success",
  2183. "Intimidate Fail",
  2184. "Service Refusal",
  2185. "Admire Success",
  2186. "Taunt Success",
  2187. "Bribe Success",
  2188. "Info Refusal",
  2189. "Admire Fail",
  2190. "Taunt Fail",
  2191. "Bribe Fail",
  2192. 0
  2193. };
  2194.  
  2195. for (int i=0; sPersuasion[i]; ++i)
  2196. {
  2197. ESM::Dialogue record;
  2198. record.mId = sPersuasion[i];
  2199. record.mType = ESM::Dialogue::Persuasion;
  2200. record.blank();
  2201.  
  2202. getData().getTopics().add (record);
  2203. }
  2204. }
  2205.  
  2206. CSMDoc::Document::Document (const Files::ConfigurationManager& configuration,
  2207. const std::vector< boost::filesystem::path >& files, bool new_,
  2208. const boost::filesystem::path& savePath, const boost::filesystem::path& resDir,
  2209. ToUTF8::FromType encoding)
  2210. : mSavePath (savePath), mContentFiles (files), mNew (new_), mData (encoding), mTools (mData),
  2211. mResDir(resDir),
  2212. mProjectPath ((configuration.getUserDataPath() / "projects") /
  2213. (savePath.filename().string() + ".project")),
  2214. mSaving (*this, mProjectPath, encoding)
  2215. {
  2216. if (mContentFiles.empty())
  2217. throw std::runtime_error ("Empty content file sequence");
  2218.  
  2219. if (!boost::filesystem::exists (mProjectPath))
  2220. {
  2221. std::string destinationPath = mProjectPath.string() + "/defaultfilters";
  2222. std::ofstream dst(destinationPath.c_str(), std::ios::binary);
  2223.  
  2224. boost::filesystem::path customFiltersPath (configuration.getUserDataPath());
  2225. locCustomFiltersPath /= "defaultfilters";
  2226.  
  2227. if (boost::filesystem::exists (customFiltersPath))
  2228. {
  2229. dst<<std::ifstream(customFiltersPath.c_str(), std::ios::binary).rdbuf();
  2230. }
  2231. else
  2232. {
  2233. dst<<std::ifstream(std::string(mResDir.string() + "/defaultfilters").c_str(), std::ios::binary).rdbuf();
  2234. }
  2235. }
  2236.  
  2237. if (mNew)
  2238. {
  2239. mData.setDescription ("");
  2240. mData.setAuthor ("");
  2241.  
  2242. if (mContentFiles.size()==1)
  2243. createBase();
  2244. }
  2245.  
  2246. addOptionalGmsts();
  2247. addOptionalGlobals();
  2248.  
  2249. connect (&mUndoStack, SIGNAL (cleanChanged (bool)), this, SLOT (modificationStateChanged (bool)));
  2250.  
  2251. connect (&mTools, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
  2252. connect (&mTools, SIGNAL (done (int)), this, SLOT (operationDone (int)));
  2253.  
  2254. connect (&mSaving, SIGNAL (progress (int, int, int)), this, SLOT (progress (int, int, int)));
  2255. connect (&mSaving, SIGNAL (done (int)), this, SLOT (operationDone (int)));
  2256.  
  2257. connect (
  2258. &mSaving, SIGNAL (reportMessage (const CSMWorld::UniversalId&, const std::string&, int)),
  2259. this, SLOT (reportMessage (const CSMWorld::UniversalId&, const std::string&, int)));
  2260. }
  2261.  
  2262. CSMDoc::Document::~Document()
  2263. {
  2264. }
  2265.  
  2266. QUndoStack& CSMDoc::Document::getUndoStack()
  2267. {
  2268. return mUndoStack;
  2269. }
  2270.  
  2271. int CSMDoc::Document::getState() const
  2272. {
  2273. int state = 0;
  2274.  
  2275. if (!mUndoStack.isClean())
  2276. state |= State_Modified;
  2277.  
  2278. if (mSaving.isRunning())
  2279. state |= State_Locked | State_Saving | State_Operation;
  2280.  
  2281. if (int operations = mTools.getRunningOperations())
  2282. state |= State_Locked | State_Operation | operations;
  2283.  
  2284. return state;
  2285. }
  2286.  
  2287. const boost::filesystem::path& CSMDoc::Document::getSavePath() const
  2288. {
  2289. return mSavePath;
  2290. }
  2291.  
  2292. const boost::filesystem::path& CSMDoc::Document::getProjectPath() const
  2293. {
  2294. return mProjectPath;
  2295. }
  2296.  
  2297. const std::vector<boost::filesystem::path>& CSMDoc::Document::getContentFiles() const
  2298. {
  2299. return mContentFiles;
  2300. }
  2301.  
  2302. bool CSMDoc::Document::isNew() const
  2303. {
  2304. return mNew;
  2305. }
  2306.  
  2307. void CSMDoc::Document::save()
  2308. {
  2309. if (mSaving.isRunning())
  2310. throw std::logic_error (
  2311. "Failed to initiate save, because a save operation is already running.");
  2312.  
  2313. mSaving.start();
  2314.  
  2315. emit stateChanged (getState(), this);
  2316. }
  2317.  
  2318. CSMWorld::UniversalId CSMDoc::Document::verify()
  2319. {
  2320. CSMWorld::UniversalId id = mTools.runVerifier();
  2321. emit stateChanged (getState(), this);
  2322. return id;
  2323. }
  2324.  
  2325. void CSMDoc::Document::abortOperation (int type)
  2326. {
  2327. if (type==State_Saving)
  2328. mSaving.abort();
  2329. else
  2330. mTools.abortOperation (type);
  2331. }
  2332.  
  2333. void CSMDoc::Document::modificationStateChanged (bool clean)
  2334. {
  2335. emit stateChanged (getState(), this);
  2336. }
  2337.  
  2338. void CSMDoc::Document::reportMessage (const CSMWorld::UniversalId& id, const std::string& message,
  2339. int type)
  2340. {
  2341. /// \todo find a better way to get these messages to the user.
  2342. std::cout << message << std::endl;
  2343. }
  2344.  
  2345. void CSMDoc::Document::operationDone (int type)
  2346. {
  2347. emit stateChanged (getState(), this);
  2348. }
  2349.  
  2350. const CSMWorld::Data& CSMDoc::Document::getData() const
  2351. {
  2352. return mData;
  2353. }
  2354.  
  2355. CSMWorld::Data& CSMDoc::Document::getData()
  2356. {
  2357. return mData;
  2358. }
  2359.  
  2360. CSMTools::ReportModel *CSMDoc::Document::getReport (const CSMWorld::UniversalId& id)
  2361. {
  2362. return mTools.getReport (id);
  2363. }
  2364.  
  2365. void CSMDoc::Document::progress (int current, int max, int type)
  2366. {
  2367. emit progress (current, max, type, 1, this);
  2368. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement