1
Fork 0

Remade ToArray() formlist loops to vanilla

development
Eddoursul 3 months ago
parent 90a5a2868e
commit 810ded0020
  1. BIN
      scripts/_00E_SoundControl.pex
  2. BIN
      scripts/_00E_VisionControl.pex
  3. BIN
      scripts/_00e_armorsetscript.pex
  4. BIN
      scripts/_00e_func_getpointsinclass.pex
  5. BIN
      scripts/_00e_game_talentcooldownsc.pex
  6. BIN
      scripts/_00e_mq06_functions.pex
  7. BIN
      scripts/_00e_mq07a_functions.pex
  8. BIN
      scripts/_00e_mq11a_functions.pex
  9. BIN
      scripts/_00e_mq11a_playeraliasscript.pex
  10. BIN
      scripts/_00e_mq13c_functions.pex
  11. 6
      source/scripts/_00E_SoundControl.psc
  12. 12
      source/scripts/_00E_VisionControl.psc
  13. 50
      source/scripts/_00e_armorsetscript.psc
  14. 6
      source/scripts/_00e_func_getpointsinclass.psc
  15. 4
      source/scripts/_00e_game_talentcooldownsc.psc
  16. 20
      source/scripts/_00e_mq06_functions.psc
  17. 22
      source/scripts/_00e_mq07a_functions.psc
  18. 23
      source/scripts/_00e_mq11a_functions.psc
  19. 14
      source/scripts/_00e_mq11a_playeraliasscript.psc
  20. 6
      source/scripts/_00e_mq13c_functions.psc

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -17,10 +17,10 @@ EndFunction
Function RemoveCombatSoundtracks() Function RemoveCombatSoundtracks()
int nItems = _00E_MUS_AllCombatSoundtracks.GetSize()
Int iIndex = 0 Int iIndex = 0
Form[] tracks = _00E_MUS_AllCombatSoundtracks.ToArray() While iIndex < nItems
While iIndex < tracks.Length (_00E_MUS_AllCombatSoundtracks.GetAt(iIndex) as MusicType).Remove()
(tracks[iIndex] as MusicType).Remove()
iIndex += 1 iIndex += 1
EndWhile EndWhile

@ -119,9 +119,9 @@ Function VisionEffectNoTimestop(Formlist RefsInvolved, Formlist ActorsToFreeze =
if RefsInvolved != None if RefsInvolved != None
Int iIndex = 0 Int iIndex = 0
Form[] actors = RefsInvolved.ToArray() int nItems = RefsInvolved.GetSize()
While iIndex < actors.Length While iIndex < nItems
Actor VisionREF = actors[iIndex] as Actor Actor VisionREF = RefsInvolved.GetAt(iIndex) as Actor
if VisionREF.IsDisabled() if VisionREF.IsDisabled()
VisionREF.EnableNoWait() VisionREF.EnableNoWait()
EndIf EndIf
@ -165,10 +165,10 @@ Function VisionEffectNoTimestopStop(Formlist RefsInvolved, Formlist ActorsToFree
EndIf EndIf
if RefsInvolved != None if RefsInvolved != None
int nItems = RefsInvolved.GetSize()
Int iIndex = 0 Int iIndex = 0
Form[] actors = RefsInvolved.ToArray() While iIndex < nItems
While iIndex < actors.Length Actor VisionREF = RefsInvolved.GetAt(iIndex) as Actor
Actor VisionREF = actors[iIndex] as Actor
MS04MemoryFXBody01VFX.Stop(VisionREF) MS04MemoryFXBody01VFX.Stop(VisionREF)
VisionRef.SetAlpha(1) VisionRef.SetAlpha(1)
iIndex += 1 iIndex += 1

@ -26,7 +26,7 @@ Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldCo
If akNewContainer == PlayerREF If akNewContainer == PlayerREF
; Take All, no need to check for equipped items ; Take All, no need to check for equipped items
If UI.IsMenuOpen("ContainerMenu") == False If SKSE.GetVersion() > 0 && UI.IsMenuOpen("ContainerMenu") == False
return return
EndIf EndIf
@ -43,9 +43,31 @@ EndEvent
Function UpdateSpells() Function UpdateSpells()
Int iIndex = 0 bool bSKSE = (SKSE.GetVersion() > 0)
Int iIndex
Int nEquippedPieces = 0 Int nEquippedPieces = 0
Form[] setPieces = __Config_SetList.ToArray() Form[] setPieces
if bSKSE
setPieces = __Config_SetList.ToArray()
else
int nPieces = __Config_SetList.GetSize()
if nPieces == 4
setPieces = new Form[4]
elseif nPieces == 5
setPieces = new Form[5]
else
setPieces = new Form[6]
endif
iIndex = 0
while iIndex < nPieces
setPieces[iIndex] = __Config_SetList.GetAt(iIndex)
iIndex += 1
endwhile
endif
iIndex = 0
While iIndex < setPieces.Length While iIndex < setPieces.Length
If PlayerREF.IsEquipped(setPieces[iIndex] as Armor) If PlayerREF.IsEquipped(setPieces[iIndex] as Armor)
nEquippedPieces += 1 nEquippedPieces += 1
@ -59,8 +81,26 @@ Function UpdateSpells()
Int nBonusSpells = nEquippedPieces - 1 Int nBonusSpells = nEquippedPieces - 1
Bool bSpellRemoved = False Bool bSpellRemoved = False
Bool bSpellAdded = False Bool bSpellAdded = False
Form[] bonusSpells
Form[] bonusSpells = __Config_SetBonusesList.ToArray()
if bSKSE
bonusSpells = __Config_SetBonusesList.ToArray()
else
int nSpells = __Config_SetBonusesList.GetSize()
if nSpells == 4
bonusSpells = new Form[4]
elseif nSpells == 5
bonusSpells = new Form[5]
else
bonusSpells = new Form[6]
endif
iIndex = 0
while iIndex < nSpells
bonusSpells[iIndex] = __Config_SetBonusesList.GetAt(iIndex)
iIndex += 1
endwhile
endif
iIndex = 0 iIndex = 0
While iIndex < bonusSpells.Length While iIndex < bonusSpells.Length
Spell bonusSpell = bonusSpells[iIndex] as Spell Spell bonusSpell = bonusSpells[iIndex] as Spell

@ -3,12 +3,12 @@ Scriptname _00E_Func_GetPointsInClass Hidden
int Function Run(Formlist akClassPerkformlist) Global int Function Run(Formlist akClassPerkformlist) Global
Actor PlayerREF = Game.GetForm(0x14) as Actor Actor PlayerREF = Game.GetForm(0x14) as Actor
Form[] perkForms = akClassPerkformlist.ToArray()
int PointsSpentInClass int PointsSpentInClass
int iClassIndex = 0 int iClassIndex = 0
While iClassIndex < perkForms.Length int nItems = akClassPerkformlist.GetSize()
Perk iPerk = perkForms[iClassIndex] as Perk While iClassIndex < nItems
Perk iPerk = akClassPerkformlist.GetAt(iClassIndex) as Perk
If iPerk && PlayerREF.HasPerk(iPerk) If iPerk && PlayerREF.HasPerk(iPerk)
PointsSpentInClass += 1 PointsSpentInClass += 1
EndIf EndIf

@ -20,6 +20,10 @@ Float Property IdleUpdatePeriod = 30.0 AutoReadOnly
Event OnEffectStart(Actor akTarget, Actor akCaster) Event OnEffectStart(Actor akTarget, Actor akCaster)
if SKSE.GetVersion() == 0
return
endif
LockEquipUpdates() LockEquipUpdates()
CooldownShouts = New Shout[128] CooldownShouts = New Shout[128]

@ -431,10 +431,10 @@ Function StartCer()
MQ06_SC05_JorekBench.SetFactionOwner(MQ06_SC05_JorekBenchFaction) MQ06_SC05_JorekBench.SetFactionOwner(MQ06_SC05_JorekBenchFaction)
Form[] idleMarkers = MQ06_SC05_IdleMarkerList.ToArray() int nItems = MQ06_SC05_IdleMarkerList.GetSize()
Int iIndex = 0 Int iIndex = 0
While iIndex < idleMarkers.Length While iIndex < nItems
(idleMarkers[iIndex] as ObjectReference).Disable() (MQ06_SC05_IdleMarkerList.GetAt(iIndex) as ObjectReference).Disable()
iIndex += 1 iIndex += 1
EndWhile EndWhile
@ -508,11 +508,11 @@ EndFunction
Function FillSpectators() Function FillSpectators()
Form[] spectators = MQ06_SC05_RitualList.ToArray() int nItems = MQ06_SC05_RitualList.GetSize()
Int iIndex = 0 Int iIndex = 0
While iIndex < spectators.Length While iIndex < nItems
Actor akSpectator = (spectators[iIndex] as Actor) Actor akSpectator = (MQ06_SC05_RitualList.GetAt(iIndex) as Actor)
If akSpectator.IsDead() == False If ! akSpectator.IsDead()
akSpectator.MoveTo(CaliaRitualMarker) akSpectator.MoveTo(CaliaRitualMarker)
SC05_SpectatorArray[iIndex].ForceRefTo(akSpectator) SC05_SpectatorArray[iIndex].ForceRefTo(akSpectator)
EndIf EndIf
@ -542,10 +542,10 @@ Function UnfillSpectators()
MQ06_SC05_JorekBench.SetFactionOwner(None) MQ06_SC05_JorekBench.SetFactionOwner(None)
Form[] idleMarkers = MQ06_SC05_IdleMarkerList.ToArray() int nItems = MQ06_SC05_IdleMarkerList.GetSize()
iIndex = 0 iIndex = 0
While iIndex < idleMarkers.Length While iIndex < nItems
(idleMarkers[iIndex] as ObjectReference).Enable() (MQ06_SC05_IdleMarkerList.GetAt(iIndex) as ObjectReference).Enable()
iIndex += 1 iIndex += 1
EndWhile EndWhile

@ -477,14 +477,14 @@ EndFunction
Function EnableEnemiesInFormlist(Formlist formlistToProcess, GlobalVariable counterGlobal) Function EnableEnemiesInFormlist(Formlist formlistToProcess, GlobalVariable counterGlobal)
Int Index Int Index
Form[] enemies = formlistToProcess.ToArray() int nItems = formlistToProcess.GetSize()
counterGlobal.SetValueInt(enemies.Length) counterGlobal.SetValueInt(nItems)
bDoneBattleFailsave = True bDoneBattleFailsave = True
Index = 0 Index = 0
While Index < enemies.Length While Index < nItems
Actor enemyRef = (enemies[Index] as Actor) Actor enemyRef = (formlistToProcess.GetAt(Index) as Actor)
enemyRef.Enable() enemyRef.Enable()
enemyRef.SetAlpha(0.0) enemyRef.SetAlpha(0.0)
Index += 1 Index += 1
@ -494,7 +494,7 @@ Function EnableEnemiesInFormlist(Formlist formlistToProcess, GlobalVariable coun
Utility.Wait(1) Utility.Wait(1)
MQ07a_EnemiesLeft.SetValueInt(enemies.Length) MQ07a_EnemiesLeft.SetValueInt(nItems)
UpdateCurrentInstanceGlobal(MQ07a_EnemiesLeft) UpdateCurrentInstanceGlobal(MQ07a_EnemiesLeft)
If MQ07a_CurrentWave.GetValueInt() == 1 If MQ07a_CurrentWave.GetValueInt() == 1
@ -768,11 +768,11 @@ Function EnableSigilStone()
MQ07a_SC14_SigilstoneFX.EnableNoWait() MQ07a_SC14_SigilstoneFX.EnableNoWait()
MQ07a_SC14_SigilStoneLight2.EnableNoWait() MQ07a_SC14_SigilStoneLight2.EnableNoWait()
Form[] refsToDisable = MQ07a_SC14_FurnitureToDisable.ToArray()
ActorBase dummyOwner = PlayerREF.GetActorBase() ActorBase dummyOwner = PlayerREF.GetActorBase()
int nItems = MQ07a_SC14_FurnitureToDisable.GetSize()
Int Index = 0 Int Index = 0
While Index < refsToDisable.Length While Index < nItems
(refsToDisable[Index] as ObjectReference).SetActorOwner(dummyOwner) (MQ07a_SC14_FurnitureToDisable.GetAt(Index) as ObjectReference).SetActorOwner(dummyOwner)
Index += 1 Index += 1
EndWhile EndWhile
@ -813,10 +813,10 @@ EndFunction
Function EndSC14() Function EndSC14()
Form[] refsToDisable = MQ07a_SC14_FurnitureToDisable.ToArray() int nItems = MQ07a_SC14_FurnitureToDisable.GetSize()
Int Index = 0 Int Index = 0
While Index < refsToDisable.Length While Index < nItems
(refsToDisable[Index] as ObjectReference).SetActorOwner(None) (MQ07a_SC14_FurnitureToDisable.GetAt(Index) as ObjectReference).SetActorOwner(None)
Index += 1 Index += 1
EndWhile EndWhile

@ -191,12 +191,11 @@ EndFunction
Function DisableWolfPack() ; Disable Wolf pack if still alive, to make sure they don't interrupt the scene Function DisableWolfPack() ; Disable Wolf pack if still alive, to make sure they don't interrupt the scene
Form[] wolfRefs = MQ11a_SC6_WolfPackGates.ToArray() Int iIndex = MQ11a_SC6_WolfPackGates.GetSize()
Int iIndex = wolfRefs.Length
While iIndex > 0 While iIndex > 0
iIndex -= 1 iIndex -= 1
Actor WolfToDisable = wolfRefs[iIndex] as Actor Actor WolfToDisable = MQ11a_SC6_WolfPackGates.GetAt(iIndex) as Actor
If WolfToDisable.IsDead() == False If ! WolfToDisable.IsDead()
WolfToDisable.DisableNoWait() WolfToDisable.DisableNoWait()
EndIf EndIf
EndWhile EndWhile
@ -1620,10 +1619,10 @@ Function StartTrackingFight(Int fightId, Int postFightQuestStage, FormList enemy
EndFunction EndFunction
Function RaiseDeadServants(Formlist corpseList, ObjectReference corpseActivatorRef) Function RaiseDeadServants(Formlist corpseList, ObjectReference corpseActivatorRef)
Form[] corpses = corpseList.ToArray() int nItems = corpseList.GetSize()
Int Index = 0 Int Index = 0
While Index < corpses.Length While Index < nItems
(corpses[Index] as ObjectReference).Activate(corpseActivatorRef) (corpseList.GetAt(Index) as ObjectReference).Activate(corpseActivatorRef)
index += 1 index += 1
EndWhile EndWhile
EndFunction EndFunction
@ -1652,18 +1651,18 @@ Function RegisterFightEnd(Int fightId, Int postFightQuestStage)
EndFunction EndFunction
Function GiveKeyToEnemies(FormList enemyList, Key keyToGive) Function GiveKeyToEnemies(FormList enemyList, Key keyToGive)
Form[] enemies = enemyList.ToArray() int nItems = enemyList.GetSize()
Int Index Int Index
Index = 0 Index = 0
While Index < enemies.Length While Index < nItems
(enemies[Index] as ObjectReference).AddItem(keyToGive) (enemyList.GetAt(Index) as ObjectReference).AddItem(keyToGive)
Index += 1 Index += 1
EndWhile EndWhile
Index = 0 Index = 0
While Index < enemies.Length While Index < nItems
_00E_Questshader.Play(enemies[Index] as ObjectReference) _00E_Questshader.Play(enemyList.GetAt(Index) as ObjectReference)
Index += 1 Index += 1
EndWhile EndWhile
EndFunction EndFunction

@ -42,11 +42,11 @@ Function PostFightCleanup()
If EnemyList If EnemyList
; Kill'em all as a safeguard! ; Kill'em all as a safeguard!
Form[] enemies = EnemyList.ToArray() int nItems = EnemyList.GetSize()
Int Index = 0 Int Index = 0
While Index < enemies.Length While Index < nItems
Actor enemyRef = (enemies[Index] as Actor) Actor enemyRef = (EnemyList.GetAt(Index) as Actor)
If enemyRef.IsDead() == False If ! enemyRef.IsDead()
enemyRef.Kill(enemyRef) ; "Suicide" -> no XP for the player, hehe enemyRef.Kill(enemyRef) ; "Suicide" -> no XP for the player, hehe
EndIf EndIf
Index += 1 Index += 1
@ -57,10 +57,10 @@ Function PostFightCleanup()
EndFunction EndFunction
Bool Function CheckEnemiesAreDead() Bool Function CheckEnemiesAreDead()
Form[] enemies = EnemyList.ToArray() int nItems = EnemyList.GetSize()
Int Index = 0 Int Index = 0
While Index < enemies.Length While Index < nItems
If (enemies[Index] as Actor).IsDead() == False If (EnemyList.GetAt(Index) as Actor).IsDead() == False
Return False Return False
EndIf EndIf
Index += 1 Index += 1

@ -255,10 +255,10 @@ Function EnterCombat()
MQ13c_SC04_SpiderParent.Enable() MQ13c_SC04_SpiderParent.Enable()
; Activate all spiders to get them released into the room ; Activate all spiders to get them released into the room
Form[] enemies = MQ13c_Nexushall_Spiders.ToArray() int nItems = MQ13c_Nexushall_Spiders.GetSize()
Int index = 0 Int index = 0
While index < enemies.Length While index < nItems
Actor enemy = enemies[index] as Actor Actor enemy = MQ13c_Nexushall_Spiders.GetAt(index) as Actor
if enemy != MQ13c_SC04_CenturionREF if enemy != MQ13c_SC04_CenturionREF
enemy.Activate(akCompanionRomance) enemy.Activate(akCompanionRomance)
EndIf EndIf

Loading…
Cancel
Save