Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions SKSE/Plugins/hdtSkinnedMeshConfigs/configs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>true</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>0</minScreenSizePercent>
</smp>
<solver>
<numIterations>16</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>true</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>0</minScreenSizePercent>
</smp>
<solver>
<numIterations>8</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>false</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>0</minScreenSizePercent>
</smp>
<solver>
<numIterations>20</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>true</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>0</minScreenSizePercent>
</smp>
<solver>
<numIterations>16</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>true</disable1stPersonViewPhysics>
<skipDeadActors>true</skipDeadActors>
<minScreenSizePercent>2.5</minScreenSizePercent>
</smp>
<solver>
<numIterations>8</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>false</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>0</minScreenSizePercent>
</smp>
<solver>
<numIterations>32</numIterations>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<sampleSize>5</sampleSize>
<disable1stPersonViewPhysics>false</disable1stPersonViewPhysics>
<skipDeadActors>false</skipDeadActors>
<minScreenSizePercent>1.5</minScreenSizePercent>
</smp>
<solver>
<numIterations>16</numIterations>
Expand Down
62 changes: 40 additions & 22 deletions Source/Scripts/FSMPM.psc
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ Event OnPageReset(String aPage)
AddEmptyOption()
AddHeaderOption("Enabling nearest NPCs")
AddSliderOptionST("SliderMinCullingDistance", "SMP is always on below this distance", JMap.getStr(configMapId, "minCullingDistance", 300) as float, "{0}")
AddSliderOptionST("SliderMinScreenSizePercent", "Skip SMP for NPCs smaller on screen than", JMap.getStr(configMapId, "minScreenSizePercent", 0) as float, "{1}%")
SetCursorPosition(1)
AddHeaderOption("Disabling SMP NPCs")
bool autoAdjust = JMap.getStr(configMapId, "autoAdjustMaxSkeletons", "") == "true"
Expand Down Expand Up @@ -265,7 +266,7 @@ function initConfig()
Pages[6] = ""
Pages[7] = sLabelPresets

keys = new String[23]
keys = new String[24]
keys[0] = "logLevel"; first serie
keys[1] = "enableNPCFaceParts"; unused by FSMP...
keys[2] = "disableSMPHairWhenWigEquipped"
Expand All @@ -281,16 +282,17 @@ function initConfig()
keys[12] = "sampleSize"
keys[13] = "disable1stPersonViewPhysics"
keys[14] = "skipDeadActors"
keys[15] = "numIterations"; second serie
keys[16] = "erp"
keys[17] = "min-fps"
keys[18] = "maxSubSteps"
keys[19] = "enabled"; third serie
keys[20] = "windStrength"
keys[21] = "distanceForNoWind"
keys[22] = "distanceForMaxWind"

defaultValues = new String[23]
keys[15] = "minScreenSizePercent"
keys[16] = "numIterations"; second serie
keys[17] = "erp"
keys[18] = "min-fps"
keys[19] = "maxSubSteps"
keys[20] = "enabled"; third serie
keys[21] = "windStrength"
keys[22] = "distanceForNoWind"
keys[23] = "distanceForMaxWind"

defaultValues = new String[24]
defaultValues[0] = "0"; first serie
defaultValues[1] = "true"; unused by FSMP...
defaultValues[2] = "true"
Expand All @@ -306,14 +308,15 @@ function initConfig()
defaultValues[12] = "5"
defaultValues[13] = "false"
defaultValues[14] = "false"; skipDeadActors
defaultValues[15] = "10"; second serie
defaultValues[16] = "0.2"
defaultValues[17] = "60"
defaultValues[18] = "2"
defaultValues[19] = "true"; third serie
defaultValues[20] = "2.0"
defaultValues[21] = "50.0"
defaultValues[22] = "2500"
defaultValues[15] = "0"; minScreenSizePercent
defaultValues[16] = "10"; second serie
defaultValues[17] = "0.2"
defaultValues[18] = "60"
defaultValues[19] = "2"
defaultValues[20] = "true"; third serie
defaultValues[21] = "2.0"
defaultValues[22] = "50.0"
defaultValues[23] = "2500"

presetsInt = new int[50]
endfunction
Expand Down Expand Up @@ -423,23 +426,23 @@ string Function buildConfigString()
string result = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configs>\n <smp>\n"
int index = 0
string value = ""
While (index < 15)
While (index < 16)
string tag = keys[index]
value = JMap.getStr(configMapId, tag, "")
string ev = entaggedValue(tag, value)
result += " " + ev + "\n"
index += 1
EndWhile
result += " </smp>\n <solver>\n"
While (index < 19)
While (index < 20)
string tag = keys[index]
value = JMap.getStr(configMapId, tag, "")
string ev = entaggedValue(tag, value)
result += " " + ev + "\n"
index += 1
EndWhile
result += " </solver>\n <wind>\n"
While (index < 23)
While (index < 24)
string tag = keys[index]
value = JMap.getStr(configMapId, tag, "")
string ev = entaggedValue(tag, value)
Expand Down Expand Up @@ -600,6 +603,21 @@ State SliderMinCullingDistance
EndEvent
EndState

State SliderMinScreenSizePercent
event OnSliderOpenST()
setOpenedSlider(0.0, 100.0, 0.1, "minScreenSizePercent", 0)
endEvent

event OnSliderAcceptST(float a_value)
setFloatTag("minScreenSizePercent", a_value, "{1}")
SetSliderOptionValueST(a_value, "{1}%")
endEvent

Event OnHighlightST()
SetInfoText("Skip SMP for non-player NPCs whose on-screen size is below this percentage of screen height (0 = off).\nHigher skips more distant/small NPCs. The player is never affected.")
EndEvent
EndState

State SliderMaxSkeletons
event OnSliderOpenST()
setOpenedSlider(0,200,1,"maximumActiveSkeletons", 40)
Expand Down
Loading