Difference between revisions of "OBSE Change Log"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Shademe
(→‎Article Update: Upto v0017b)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}
 
O
== 0001 ==
== 0001 ==
first release
first release

Revision as of 16:37, 21 December 2023


O

0001

first release

Simple proof of concept demo.

0002

first useful commands

Implemented GetNumItems, GetInventoryType and IsKeyPressed.

  1. dynamic_cast support
  2. form access (no data yet)
  3. extra data list access
  4. more virtual functions documented
  5. class hiearchy
  6. minor code reorg
  7. extra data types
  8. container access
  9. variable name cleanup
  10. input commands
  11. inventory commands

0003

GetEquipmentSlotType. determining how inventory items are stored along with their extra data

Implemented GetEquipmentSlotType. Fixed floating point return types for all functions. Considered an alpha release candidate.

  1. fix script result type
  2. pad opcodes out to 1400
  3. get equipment command

0004

PrintToConsole, Get/SetActiveSpell, GetParentCell, math functions, alpha release

Implemented PrintToConsole, Get/SetActiveSpell, GetParentCell, several math functions. Alpha release version, OK to use in released mods.

  1. all RTTI structures
  2. many form structures defined
  3. testing dynamic form creation
  4. improve dll loader sync for editor
  5. added Utilities file with analysis utils

0005

fixing math functions, DirectInput, GetOBSEVersion, console commands

  1. converted to VS2005
  2. compiles under VS Express
  3. add timeslip's math fns, rename old fns
  4. add many new CRCs
  5. more form structures, a few game objects also
  6. update rand function to use mersenne twister
  7. add DirectInput hooking functions, disallow modification of ESC and ` keys

0006

Item Value functions, Item type functions, Class functions, HasSpell, ModActorValue2

  1. more form structures and class decoding
  2. fix bug with GetEquippedObject not returning an object that is damaged where another non-damaged object is the the inventory.

0007

GetOV Values: QuestItem, Poison, Food, unofficial oldblivion support, editor font changes

  1. fix bug with GetOV ArmorType
  2. fix bug with IngredientItem decoding affecting GetOV weight and value
  3. integrate changes from Timeslip
  4. reimplement editor font changing code so it works on win2k, add font picker dialog

0008

GetEquippedObjectValue, GetEquippedCurrentValue, GetMagicItemValue, GetMagicEffectValue, GetMagicEffectCodeValue, MagicItemHasEffect, MagicItemHasEffectCode, GetNumMouseButtonsPressed, GetMouseButtonPress.

  1. added Enchantment value to the Object Value functions to return a ref to any enchantment on an object
  2. fix bug where equipment functions didn't manage rings correctly. The ring slots now return whatever ring is worn on that side, regardless of the form's declaration as a left or right ring slot.
  3. fix bug with signed mouse movement
  4. fix fake mouse keycode

0009

Individual GetValue functions, Set/ModValue functions, Beta Flow Control functions, new HTML command documentation

  1. adds 114 functions: 70 provide completely new functionality
  2. fix bug looping over magic effects
  3. fix bug in GetMIV Poison to accurately return if the object is poison or not

0009a

Bugfix release, fixes flow control functions and a potential SetModel crash

0009b

Compatibility with patch 1.2

0009c

Compatibility with CS 1.2

0009d

Compatibility with CS 1.2.0.404

0009e

Compatibility with patch 1.2.0.416

0010

Magic effect, book, model path manipulation, more console commands, menu input functions, math functions

  1. update game setting/ini file functions to work with unsigned and boolean types
  2. buffered input functions, useful for menus or other text input
  3. fix some potential thread-safety issues
  4. patch the RefID wraparound bug in 1.1.511 and 1.2.214 (note that the number will keep going up, but with OBSE installed it will wrap from 0xFFFFFFFF to 0xFF000000 properly)
  5. fix Is* functions, allow passing arguments that are not considered 'inventory items'
  6. replace local magic effect list with access to oblivion's internal list
  7. actually seed the random number generator (doh)
  8. fix internal access to form list for 1.2.214
  9. calculate fps via average frametime (calculated via GetTickCount) over 20 frames
  10. log version of OBSE, version of Oblivion in obse.log
  11. change resource version number to 0.0.10.1 to allow for more precision when releasing intermediate versions without ticking the major version number
  12. include NSIS script for modders that want an installer

0011

Skill experience functions, AddFullEffectItem, RunBatchScript, global collision setting functions, more console commands, ModName and AppendName and several defect fixes

  1. fixes GetBaseObject
  2. IsArmor, IsBook, IsContainer and IsSoulGem no longer require the passed object ID
  3. CopyAllEffectItems, CopyNthEffectItem and RemoveNthEffectItem no longer need a cloned form as a target
  4. Adds con_SaveINI, con_QuitGame and con_TGM

0012

Official plugin support, race attribute and skill functions, some climate and weather functions, enable effect item functions for ScriptEffects, add SetNthEIScript and SetNthEIScriptName, enable GetSpellCount and GetNthSpell for NPC references, Get/SetSpellExplodesWithNoTarget, GetScript, RemoveScript, SetScript.

Bug fixes:

  1. GetBaseObject now works when called without a reference

0013

New Functions

  • climate manipulation functions
  • new easier-to-use input functions
  • active magic effect manipulation and querying functions
  • plugin querying API
  • cell water level functions
  • leveled list functions
  • weather manipulation functions
  • get/set travel horse
  • get/set open key
  • get creature reach, soul level and base scale
  • set/copy hair and eyes (changes not saved on NPCs)
  • get owner, get owning faction required rank
  • get parent cell owner, get parent cell owner faction required rank
  • get/set container respawns (changes not saved)
  • IsLoadDoor, GetLinkedDoor, GetTeleportCell
  • RefreshControlMap
  • GetFirstRef, GetNextRef, GetNumRefs

0015

  • Plugin serialization API
  • Projectile Functions
  • Versions of functions such as AddItem which don't generate UI messages when called on the player
  • Functions returning information about the active mod list
  • Sound functions for objects and creatures
  • Functions returning information about an NPC's hair and eyes
  • ToggleCreatureModel
  • Functions to access variables in external scripts by name
  • Functions to test the validity of reference variables
  • SetMessageSound/Icon
  • GetFullGoldValue
  • Hotkey functions
  • Detection state functions
  • Functions to get and set services offered by NPCs including training
  • Functions to iterate over an actor's AI packages
  • Animation-related functions for actors
  • Functions to return information about an actor's Havok state
  • GetGodMode
  • CompareScripts
  • Leveled list functions
  • Input functions are now synced with Oblivion control bindings
  • Get/SetSpellHostile
  • Functions to determine if a file path is valid
  • Functions to return information about the player's level-up progress
  • Functions returning information about active UI menus
  • SetControl/SetAltControl
  • Improved Vista compatibility

0015a

Bugfix update

  • Fix crash when biped model path functions called on an object for which the specified model is not defined
  • Update GetMagicProjectileSpell to return staff enchantment for projectiles fired from a staff
  • Fix incorrect return value for GetPluginVersion when specified plugin is not installed
  • Plugin manager now offers some protection against misbehaving plugins

0016

  • Updated plugin API
  • Miscellaneous bug fixes and tweaks
  • New string variable datatype and associated commands
  • Debug mode output for scripts
  • Text input capabilities
  • Spell effectiveness modifier commands
  • Mapmarker commands
  • UI manipulation commands
  • Rudimentary script error logging
  • Projectile commands
  • Various other miscellaneous commands
New commands
  • SetDebugMode
  • DebugPrint
  • RunScriptLine
  • ResetAllVariables
  • GetFirstRefInCell
  • GetNumRefsInCell
  • OpenTextInput
  • UpdateTextInput
  • GetInputText
  • CloseTextInput
  • IsTextInputInUse
  • InsertInInputText
  • GetTextInputControlPressed
  • SetRaceAlias
  • SetRaceVoice
  • SetRacePlayable
  • GetSpellEffectiveness
  • ModPCSpellEffectiveness
  • GetPCSpellEffectivenessModifier
  • GetIngredient
  • GetIngredientChance
  • SetIngredient
  • SetIngredientChance
  • GetFormFromMod
  • ToggleFirstPerson
  • sv_Construct
  • sv_Destruct
  • sv_Length
  • sv_Compare
  • sv_Find
  • sv_Count
  • sv_Replace
  • sv_Erase
  • sv_GetChar
  • sv_Substring
  • sv_ToNumeric
  • sv_Insert
  • CharToAscii
  • IsLetter
  • IsUpper
  • IsDigit
  • IsPrintable
  • IsPunctuation
  • GetName
  • GetModelPath
  • GetIconPath
  • GetBipedModelPath
  • GetBipedIconPath
  • GetNthModName
  • GetStringGameSetting
  • GetNthFactionRankName
  • GetNthEffectItemScriptName
  • SetModelPathEX
  • SetIconPathEX
  • SetBipedModelPathEX
  • SetBipedIconPathEX
  • SetStringGameSettingEX
  • SetNthFactionRankNameEX
  • SetNthEffectItemScriptNameEX
  • ToggleFirstPerson
  • GetHidesRings
  • SetHidesRings
  • GetHidesAmulet
  • SetHidesAmulet
  • IsMapMarkerVisible
  • SetMapMarkerVisible
  • CanTravelToMapMarker
  • SetCanTravelToMapMarker
  • GetMapMarkerType
  • SetMapMarkerType
  • GetCursorPos
  • IsFlora
  • SetPCMajorSkillUps
  • SetPCAttributeBonus
  • con_Show1stPerson
  • GetMenuFloatValue
  • GetMenuStringValue
  • SetMenuFloatValue
  • SetMenuStringValue
  • SetProjectileSource
  • SetArrowProjectileEnchantment
  • SetArrowProjectileBowEnchantment
  • SetArrowProjectilePoison
  • GetProjectileSpeed
  • GetProjectileDistanceTraveled
  • GetProjectileLifetime
  • SetProjectileSpeed
  • ToUpper
  • ToLower
  • SetButtonPressed
  • SetBaseForm
  • GetBipedSlotMask
  • SetBipedSlotMask
  • GetLastEnchantedItem
  • GetLastCreatedSpell
  • GetNumExplicitRefs
  • GetNthExplicitRef
  • GetActiveUIComponentName
  • GetActiveUIComponentFullName
  • GetActiveUIComponentID
  • ClickMenuButton
  • GetProjectile
  • RemoveNthLevItem
  • GetLevItemIndexByLevel
  • GetLevItemIndexByForm
  • GetLastCreatedPotion
  • GetLastUniqueCreatedPotion
  • IsConsoleOpen
  • GetBookText
  • GetMenuHasTrait
  • SetChanceNone
  • sv_Set
  • IsControl
  • SetIsControl
  • DeleteFromInputText
  • MoveTextInputCursor
  • LoadGameEx
  • GetPCTrainingSessionsUsed
  • SetPCTrainingSessionsUsed
  • GetStringIniSetting
  • SetStringIniSetting


0017

  • Array variables
  • ForEach and While loops
  • A new expression syntax supporting array and string variables as basic datatypes, complex expressions, and a richer set of operators.
  • Effect setting functions
  • Combat style functions
  • Activate2
  • GetCurrentRegion
  • Functions to detect if keys or controls have been disabled via script
  • GetEquippedItems, GetItems, GetSpells, GetFollowers
  • IsRefDeleted
  • Functions to manipulate Greater Powers
  • Various bug-fixes and miscellaneous functions
New commands
  • CanUsePower
  • SetCanUsePower
  • GetUsedPowers
  • SetPowerTimer
  • ar_First
  • ar_Last
  • ar_Next
  • ar_Prev
  • ar_Keys
  • ar_HasKey
  • ar_BadStringIndex
  • ar_BadNumericIndex
  • ar_Copy
  • ar_Null
  • ar_DeepCopy
  • ActorValueToStringC
  • GetKeyName
  • AsciiToChar
  • GetFormIDString
  • NumToHex
  • DeleteReference
  • IsOblivionGate
  • Let
  • Eval
  • TestExpr
  • While
  • ForEach
  • Loop
  • Continue
  • Break
  • ToString
  • Print
  • TypeOf
  • ar_Construct
  • ar_Destruct
  • ar_Size
  • ar_Dump
  • ar_DumpID
  • ar_Erase
  • ar_Find
  • ar_Sort
  • ar_SortAlpha
  • IsKeyDisabled
  • IsControlDisabled
  • GetFollowers
  • GetCurrentRegion
  • Activate2
  • GetEquippedItems
  • GetBaseItems
  • GetItems
  • GetSpells
  • GetNthEffectItemName
  • ActorValueToString
  • GetParentWorldSpace
  • GetEditorID
  • MatchPotion
  • MagicEffectFromCode
  • MagicEffectFromChars
  • IncrementPlayerSkillUseC
  • GetSkillUseIncrementC
  • SetSkillUseIncrementC
  • SetCellWaterHeight
  • DispelNthActiveEffect
  • IsRefDeleted
  • ModPCMovementSpeed
  • GetPCMovementSpeedModifier
  • IsRacePlayable
  • IsGameMessageBox
  • GetMessageBoxType
  • GetTileChildren
  • GetTileTraits
  • PrintTileInfo
  • GetMagicEffectName
  • GetMagicEffectNameC
  • GetMagicEffectHitShader
  • GetMagicEffectHitShaderC
  • GetMagicEffectEnchantShader
  • GetMagicEffectEnchantShaderC
  • GetMagicEffectLight
  • GetMagicEffectLightC
  • GetMagicEffectCastingSound
  • GetMagicEffectCastingSoundC
  • GetMagicEffectBoltSound
  • GetMagicEffectBoltSoundC
  • GetMagicEffectHitSound
  • GetMagicEffectHitSoundC
  • GetMagicEffectAreaSound
  • GetMagicEffectAreaSoundC
  • GetMagicEffectNumCounters
  • GetMagicEffectNumCountersC
  • GetMagicEffectResistValue
  • GetMagicEffectResistValueC
  • GetNthMagicEffectCounter
  • GetNthMagicEffectCounterC
  • GetMagicEffectCounters
  • GetMagicEffectCountersC
  • GetMagicEffectIcon
  • GetMagicEffectIconC
  • GetMagicEffectModel
  • GetMagicEffectModelC
  • SetMagicEffectIsHostile
  • SetMagicEffectIsHostileC
  • SetMagicEffectCanRecover
  • SetMagicEffectCanRecoverC
  • SetMagicEffectIsDetrimental
  • SetMagicEffectIsDetrimentalC
  • SetMagicEffectMagnitudePercent
  • SetMagicEffectMagnitudePercentC
  • SetMagicEffectOnSelfAllowed
  • SetMagicEffectOnSelfAllowedC
  • SetMagicEffectOnTouchAllowed
  • SetMagicEffectOnTouchAllowedC
  • SetMagicEffectOnTargetAllowed
  • SetMagicEffectOnTargetAllowedC
  • SetMagicEffectNoDuration
  • SetMagicEffectNoDurationC
  • SetMagicEffectNoMagnitude
  • SetMagicEffectNoMagnitudeC
  • SetMagicEffectNoArea
  • SetMagicEffectNoAreaC
  • SetMagicEffectFXPersists
  • SetMagicEffectFXPersistsC
  • SetMagicEffectForSpellmaking
  • SetMagicEffectForSpellmakingC
  • SetMagicEffectForEnchanting
  • SetMagicEffectForEnchantingC
  • SetMagicEffectNoIngredient
  • SetMagicEffectNoIngredientC
  • SetMagicEffectUsesWeapon
  • SetMagicEffectUsesWeaponC
  • SetMagicEffectUsesArmor
  • SetMagicEffectUsesArmorC
  • SetMagicEffectUsesCreature
  • SetMagicEffectUsesCreatureC
  • SetMagicEffectUsesSkill
  • SetMagicEffectUsesSkillC
  • SetMagicEffectUsesAttribute
  • SetMagicEffectUsesAttributeC
  • SetMagicEffectUsesActorValue
  • SetMagicEffectUsesActorValueC
  • SetMagicEffectNoHitEffect
  • SetMagicEffectNoHitEffectC
  • SetMagicEffectName
  • SetMagicEffectNameC
  • SetMagicEffectSchool
  • SetMagicEffectSchoolC
  • SetMagicEffectBaseCost
  • SetMagicEffectBaseCostC
  • SetMagicEffectResistValue
  • SetMagicEffectResistValueC
  • SetMagicEffectIcon
  • SetMagicEffectIconC
  • SetMagicEffectCastingSound
  • SetMagicEffectCastingSoundC
  • SetMagicEffectBoltSound
  • SetMagicEffectBoltSoundC
  • SetMagicEffectHitSound
  • SetMagicEffectHitSoundC
  • SetMagicEffectAreaSound
  • SetMagicEffectAreaSoundC
  • SetMagicEffectEnchantFactor
  • SetMagicEffectEnchantFactorC
  • SetMagicEffectBarterFactor
  • SetMagicEffectBarterFactorC
  • SetMagicEffectModel
  • SetMagicEffectModelC
  • SetMagicEffectHitShader
  • SetMagicEffectHitShaderC
  • SetMagicEffectEnchantShader
  • SetMagicEffectEnchantShaderC
  • SetMagicEffectProjectileSpeed
  • SetMagicEffectProjectileSpeedC
  • SetMagicEffectLight
  • SetMagicEffectLightC
  • AddMagicEffectCounter
  • AddMagicEffectCounterC
  • RemoveNthMagicEffectCounter
  • RemoveNthMagicEffectCounterC
  • SetMagicEffectCounters
  • SetMagicEffectCountersC
  • SetMagicEffectOtherActorValue
  • SetMagicEffectOtherActorValueC
  • SetMagicEffectUsedObject
  • SetMagicEffectUsedObjectC
  • GetCombatStyle
  • GetCombatStyleDodgeChance
  • GetCombatStyleDodgeLRChance
  • GetCombatStyleDodgeLRTimerMin
  • GetCombatStyleDodgeLRTimerMax
  • GetCombatStyleDodgeFWTimerMin
  • GetCombatStyleDodgeFWTimerMax
  • GetCombatStyleDodgeBackTimerMin
  • GetCombatStyleDodgeBackTimerMax
  • GetCombatStyleIdleTimerMin
  • GetCombatStyleIdleTimerMax
  • GetCombatStyleBlockChance
  • GetCombatStyleAttackChance
  • GetCombatStyleStaggerBonusToAttack
  • GetCombatStyleKOBonusToAttack
  • GetCombatStyleH2HBonusToAttack
  • GetCombatStylePowerAttackChance
  • GetCombatStyleStaggerBonusToPowerAttack
  • GetCombatStyleKOBonusToPowerAttack
  • GetCombatStyleHoldTimerMin
  • GetCombatStyleHoldTimerMax
  • GetCombatStyleAcrobaticsDodgeChance
  • GetCombatStyleRangeOptimalMult
  • GetCombatStyleRangeMaxMult
  • GetCombatStyleSwitchDistMelee
  • GetCombatStyleSwitchDistRanged
  • GetCombatStyleBuffStandoffDist
  • GetCombatStyleRangedStandoffDist
  • GetCombatStyleGroupStandoffDist
  • GetCombatStyleRushAttackChance
  • GetCombatStyleRushAttackDistMult
  • GetCombatStyleDodgeFatigueModMult
  • GetCombatStyleDodgeFatigueModBase
  • GetCombatStyleEncumberedSpeedModBase
  • GetCombatStyleEncumberedSpeedModMult
  • GetCombatStyleDodgeUnderAttackMult
  • GetCombatStyleDodgeNotUnderAttackMult
  • GetCombatStyleDodgeBackUnderAttackMult
  • GetCombatStyleDodgeBackNotUnderAttackMult
  • GetCombatStyleDodgeFWAttackingMult
  • GetCombatStyleDodgeFWNotAttackingMult
  • GetCombatStyleBlockSkillModMult
  • GetCombatStyleBlockSkillModBase
  • GetCombatStyleBlockUnderAttackMult
  • GetCombatStyleBlockNotUnderAttackMult
  • GetCombatStyleAttackSkillModMult
  • GetCombatStyleAttackSkillModBase
  • GetCombatStyleAttackUnderAttackMult
  • GetCombatStyleAttackNotUnderAttackMult
  • GetCombatStyleAttackDuringBlockMult
  • GetCombatStylePowerAttackFatigueModBase
  • GetCombatStylePowerAttackFatigueModMult
  • SetCombatStyleDodgeChance
  • SetCombatStyleDodgeLRChance
  • SetCombatStyleDodgeLRTimerMin
  • SetCombatStyleDodgeLRTimerMax
  • SetCombatStyleDodgeFWTimerMin
  • SetCombatStyleDodgeFWTimerMax
  • SetCombatStyleDodgeBackTimerMin
  • SetCombatStyleDodgeBackTimerMax
  • SetCombatStyleIdleTimerMin
  • SetCombatStyleIdleTimerMax
  • SetCombatStyleBlockChance
  • SetCombatStyleAttackChance
  • SetCombatStyleStaggerBonusToAttack
  • SetCombatStyleKOBonusToAttack
  • SetCombatStyleH2HBonusToAttack
  • SetCombatStylePowerAttackChance
  • SetCombatStyleStaggerBonusToPowerAttack
  • SetCombatStyleKOBonusToPowerAttack
  • SetCombatStyleHoldTimerMin
  • SetCombatStyleHoldTimerMax
  • SetCombatStyleAcrobaticsDodgeChance
  • SetCombatStyleRangeOptimalMult
  • SetCombatStyleRangeMaxMult
  • SetCombatStyleSwitchDistMelee
  • SetCombatStyleSwitchDistRanged
  • SetCombatStyleBuffStandoffDist
  • SetCombatStyleRangedStandoffDist
  • SetCombatStyleGroupStandoffDist
  • SetCombatStyleRushAttackChance
  • SetCombatStyleRushAttackDistMult
  • SetCombatStyleDodgeFatigueModMult
  • SetCombatStyleDodgeFatigueModBase
  • SetCombatStyleEncumberedSpeedModBase
  • SetCombatStyleEncumberedSpeedModMult
  • SetCombatStyleDodgeUnderAttackMult
  • SetCombatStyleDodgeNotUnderAttackMult
  • SetCombatStyleDodgeBackUnderAttackMult
  • SetCombatStyleDodgeBackNotUnderAttackMult
  • SetCombatStyleDodgeFWAttackingMult
  • SetCombatStyleDodgeFWNotAttackingMult
  • SetCombatStyleBlockSkillModMult
  • SetCombatStyleBlockSkillModBase
  • SetCombatStyleBlockUnderAttackMult
  • SetCombatStyleBlockNotUnderAttackMult
  • SetCombatStyleAttackSkillModMult
  • SetCombatStyleAttackSkillModBase
  • SetCombatStyleAttackUnderAttackMult
  • SetCombatStyleAttackNotUnderAttackMult
  • SetCombatStyleAttackDuringBlockMult
  • SetCombatStylePowerAttackFatigueModBase

0017a

Bugfix update

  • Fix compiler occasionally freezing when attempting to save a script
  • Make local variables take precedence over objectIDs in cases of name collision
  • Fix crash with GetEquippedItems after unequipping slotless items
  • IsModelPathValid now works with non-simple models like NPC and Hair
  • Remove delay between calling InsertInInputText and seeing the displayed text updated
  • Empty strings are no longer displayed as "NULL" with the %z format specifier; instead nothing is displayed


0017b

Beta support for Steam