4
Fork 0

Moved torch reequipping to a separate script

development
Eddoursul 3 months ago
parent 1e76ddf587
commit 16f10be14a
  1. BIN
      scripts/_00E_DigControl.pex
  2. BIN
      scripts/_00E_TorchControl.pex
  3. BIN
      scripts/_00e_class_openclassmenuscript.pex
  4. BIN
      scripts/_00e_peaceweedplayeraliasscript.pex
  5. BIN
      scripts/_00e_playerfunctions.pex
  6. BIN
      scripts/mineoreenderal.pex
  7. 1
      scripts/scriptarchiveorder.txt
  8. BIN
      scripts/wispactorscript.pex
  9. 4
      source/scripts/_00E_DigControl.psc
  10. 43
      source/scripts/_00E_TorchControl.psc
  11. 2
      source/scripts/_00e_class_openclassmenuscript.psc
  12. 4
      source/scripts/_00e_peaceweedplayeraliasscript.psc
  13. 45
      source/scripts/_00e_playerfunctions.psc
  14. 5
      source/scripts/mineoreenderal.psc
  15. 2
      source/scripts/wispactorscript.psc

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -2268,6 +2268,7 @@ scripts\ski_questbase.pex
scripts\ski_settingsmanager.pex
scripts\ski_widgetbase.pex
scripts\ski_widgetmanager.pex
scripts\_00e_torchcontrol.pex
scripts\_00e_digcontrol.pex
scripts\tif__000a5ebd.pex
scripts\tif__000a5ebe.pex

Binary file not shown.

@ -36,7 +36,7 @@ bool function Dig()
Game.ForceThirdPerson()
Form[] equippedTorches = New Form[2]
Bool torchesUnequipping = (PlayerREF as _00E_PlayerFunctions).UnequipTorches(equippedTorches)
Bool torchesUnequipping = _00E_TorchControl.UnequipTorches(equippedTorches)
If PlayerREF.IsWeaponDrawn() ; Sheathe the weapon
PlayerREF.PlayIdle(DefaultSheathe)
@ -53,7 +53,7 @@ bool function Dig()
; Stop digging
Debug.SendAnimationEvent(PlayerREF, "IdleForceDefaultState")
(PlayerREF as _00E_PlayerFunctions).ReequipTorches(equippedTorches)
_00E_TorchControl.ReequipTorches(equippedTorches)
Wait(1)
Game.SetPlayerAIDriven(false)

@ -0,0 +1,43 @@
Scriptname _00E_TorchControl Hidden
Int Function _GetHandSlotEx(int iHand) global
; By default, iHand = 0 for left hand, 1 for right hand
; In SKSE's "Equip Ex" functions though: iHand = 2 for left hand, 1 for right hand
Return 2 - iHand
EndFunction
Bool Function UnequipTorches(Form[] equippedTorches) global
Actor PlayerREF = Game.GetForm(0x14) as Actor
Bool unequipping = False
Int iHand = 0
While iHand < equippedTorches.Length
If PlayerREF.GetEquippedItemType(iHand) == 11 ; A torch is in the hand?
Form torch = PlayerREF.GetEquippedObject(iHand)
If torch
PlayerREF.UnequipItemEx(torch, _GetHandSlotEx(iHand))
equippedTorches[iHand] = torch
unequipping = True
EndIf
EndIf
iHand += 1
EndWhile
Return unequipping
EndFunction
Function ReequipTorches(Form[] equippedTorches) global
Actor PlayerREF = Game.GetForm(0x14) as Actor
Int iHand = 0
While iHand < equippedTorches.Length
Form torch = equippedTorches[iHand]
If torch
If PlayerREF.GetItemCount(torch) > 0
PlayerREF.EquipItemEx(torch, _GetHandSlotEx(iHand), False, True)
EndIf
; "Forget" about the form to not keep it persistent if equippedTorches is a script's property or variable
equippedTorches[iHand] = None
EndIf
iHand += 1
EndWhile
EndFunction

@ -71,7 +71,7 @@ Function EnterClassMenu()
EndIf
Form[] equippedTorches = New Form[2]
(PlayerREF as _00E_PlayerFunctions).UnequipTorches(equippedTorches)
_00E_TorchControl.UnequipTorches(equippedTorches)
_00E_RealWorldOrigin.MoveTo(playerREF)
_00E_Class_MenuMeditationSound.Play(PlayerREF)

@ -156,7 +156,7 @@ Function _TryStartSmoking()
RegisterCancelKeys()
EquippedTorches = New Form[2]
Bool bTorchesUnequipping = (PlayerRef as _00E_PlayerFunctions).UnequipTorches(EquippedTorches)
Bool bTorchesUnequipping = _00E_TorchControl.UnequipTorches(EquippedTorches)
If PlayerRef.IsWeaponDrawn()
_UnlockSmokingStage()
@ -294,7 +294,7 @@ Function StopSmoking()
StoredEquippedShield = None
EndIf
(PlayerRef as _00E_PlayerFunctions).ReequipTorches(EquippedTorches)
_00E_TorchControl.ReequipTorches(EquippedTorches)
If StoredCameraState == 0
Game.ForceFirstPerson()

@ -82,48 +82,3 @@ Function ResumeRandomHeadTracking()
Game.SetGameSettingFloat("fAIHoldDefaultHeadTrackTimer", fDefaultHeadTrackTimerOldValue)
Game.SetGameSettingFloat("fAIStayonScriptHeadtrack", fStayHeadTrackTimerOldValue)
EndFunction
;=====================================================================================
; Equip/unequip torches
;=====================================================================================
Int Function _GetHandSlotEx(int iHand)
; By default, iHand = 0 for left hand, 1 for right hand
; In SKSE's "Equip Ex" functions though: iHand = 2 for left hand, 1 for right hand
Return 2 - iHand
EndFunction
Bool Function UnequipTorches(Form[] equippedTorches)
Bool unequipping = False
Int iHand = 0
While iHand < equippedTorches.Length
If GetEquippedItemType(iHand) == 11 ; A torch is in the hand?
Form torch = GetEquippedObject(iHand)
If torch
UnequipItemEx(torch, _GetHandSlotEx(iHand))
equippedTorches[iHand] = torch
unequipping = True
EndIf
EndIf
iHand += 1
EndWhile
Return unequipping
EndFunction
Function ReequipTorches(Form[] equippedTorches)
Int iHand = 0
While iHand < equippedTorches.Length
Form torch = equippedTorches[iHand]
If torch
If GetItemCount(torch) > 0
EquipItemEx(torch, _GetHandSlotEx(iHand), False, True)
EndIf
; "Forget" about the form to not keep it persistent if equippedTorches is a script's property or variable
equippedTorches[iHand] = None
EndIf
iHand += 1
EndWhile
EndFunction

@ -117,7 +117,7 @@ Function TryPlayerActivate(ObjectReference myLinkedRef)
;USKP 1.3.0 FixEnd
EquippedTorches = New Form[2]
If (PlayerREF as _00E_PlayerFunctions).UnequipTorches(EquippedTorches)
If _00E_TorchControl.UnequipTorches(EquippedTorches)
Utility.Wait(0.25) ; Give some time for torch unequip animations to settle
EndIf
@ -193,7 +193,6 @@ Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile,
endif
endif
endEvent
event onReset()
@ -220,7 +219,7 @@ Function OnFurnitureExit()
; Debug.Trace(self + ": OnFurnitureExit")
If PlayerIsInFurniture
PlayerIsInFurniture = False
(PlayerREF as _00E_PlayerFunctions).ReequipTorches(EquippedTorches)
_00E_TorchControl.ReequipTorches(EquippedTorches)
EndIf
EndFunction

@ -153,8 +153,6 @@ bool bFX = FALSE
Shade02 = selfRef.placeAtMe(EncWispShade) as Actor
EndIf
;Set AV06 to 1 as a flag for being in this state (used in Frostmere Crypt)
selfRef.SetActorValue("Variable06", 1)
;/ selfRef.setActorValue("Variable07",1)
selfRef.damageActorValue("Magicka", -(selfRef.getActorValue("Magicka")))
selfRef.SetActorValue("Magicka", 0.0)

Loading…
Cancel
Save