diff --git a/doc/mod-menu.ws b/doc/mod-menu.ws index f19f4d7..d2558cd 100644 --- a/doc/mod-menu.ws +++ b/doc/mod-menu.ws @@ -19,12 +19,9 @@ class MyModSettings extends ISettingsMaster public /* override */ function ValidateSettings() : void { - tab1.option = (MyModSettings_opt)Clamp((int)tab1.option, 0, 2); - tab1.sliderFloat = ClampF(tab1.sliderFloat, 0, 1); - tab1.sliderInt = Clamp(tab1.sliderInt, 0, 100); - tab1.version = ClampF(tab1.version, 0, 100); - - tab2.anotherSlider = ClampF(tab2.anotherSlider, -100, 100); + tab1.Validate(); + tab2.Validate(); + tab3.Validate(); super.ValidateSettings(); } @@ -97,6 +94,16 @@ class MyModSettings_tab1 extends ISettingsGroup default id = 'MODtab1'; default defaultPresetIndex = 1; + + public /* override */ function Validate() : void + { + option = (MyModSettings_opt)Clamp((int)option, 0, 2); + sliderFloat = ClampF(sliderFloat, 0, 1); + sliderInt = Clamp(sliderInt, 0, 100); + version = ClampF(version, 0, 100); + + super.Validate(); + } } class MyModSettings_tab2 extends ISettingsGroup @@ -105,6 +112,13 @@ class MyModSettings_tab2 extends ISettingsGroup default id = 'MODtab2subtab1'; default defaultPresetIndex = 0; + + public /* override */ function Validate() : void + { + anotherSlider = ClampF(anotherSlider, -100, 100); + + super.Validate(); + } } class MyModSettings_tab3 extends ISettingsGroup @@ -113,6 +127,12 @@ class MyModSettings_tab3 extends ISettingsGroup default id = 'MODtab2subtab2'; default defaultPresetIndex = 0; + + public /* override */ function Validate() : void + { + + super.Validate(); + } } enum MyModSettings_opt diff --git a/samples/DifficultyMod/Mods/modSampleDifficultyMod/content/scripts/local/difficulty_mod_base.ws b/samples/DifficultyMod/Mods/modSampleDifficultyMod/content/scripts/local/difficulty_mod_base.ws index 58e183f..57fb9fb 100644 --- a/samples/DifficultyMod/Mods/modSampleDifficultyMod/content/scripts/local/difficulty_mod_base.ws +++ b/samples/DifficultyMod/Mods/modSampleDifficultyMod/content/scripts/local/difficulty_mod_base.ws @@ -15,8 +15,7 @@ class ModDifficultySettingsBase extends ISettingsMaster public /* override */ function ValidateSettings() : void { - general.healthMultip = ClampF(general.healthMultip, 0, 2); - general.dmgMultip = ClampF(general.dmgMultip, 0, 2); + general.Validate(); super.ValidateSettings(); } @@ -73,5 +72,13 @@ class ModDifficultySettingsBase_general extends ISettingsGroup default id = 'DMgeneral'; default defaultPresetIndex = 1; + + public /* override */ function Validate() : void + { + healthMultip = ClampF(healthMultip, 0, 2); + dmgMultip = ClampF(dmgMultip, 0, 2); + + super.Validate(); + } } diff --git a/samples/MonsterOfTheWeek/Mods/modSampleMonsterOfTheWeek/content/scripts/local/monster_of_the_week_settings.ws b/samples/MonsterOfTheWeek/Mods/modSampleMonsterOfTheWeek/content/scripts/local/monster_of_the_week_settings.ws index 7b80d7d..dbf06f6 100644 --- a/samples/MonsterOfTheWeek/Mods/modSampleMonsterOfTheWeek/content/scripts/local/monster_of_the_week_settings.ws +++ b/samples/MonsterOfTheWeek/Mods/modSampleMonsterOfTheWeek/content/scripts/local/monster_of_the_week_settings.ws @@ -17,15 +17,8 @@ class MonsterOfTheWeekSettings extends ISettingsMaster public /* override */ function ValidateSettings() : void { - difficulties.noMansLand = (MOTWDifficulty)Clamp((int)difficulties.noMansLand, 0, 2); - difficulties.skellige = (MOTWDifficulty)Clamp((int)difficulties.skellige, 0, 2); - difficulties.kaerMorhen = (MOTWDifficulty)Clamp((int)difficulties.kaerMorhen, 0, 2); - difficulties.toussaint = (MOTWDifficulty)Clamp((int)difficulties.toussaint, 0, 2); - - monsters.noMansLand = (MonsterOfTheWeekSettings_monster)EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWnoMansLand', (int)monsters.noMansLand); - monsters.skellige = (MonsterOfTheWeekSettings_monster)EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWskellige', (int)monsters.skellige); - monsters.kaerMorhen = (MonsterOfTheWeekSettings_monster)EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWkaerMorhen', (int)monsters.kaerMorhen); - monsters.toussaint = (MonsterOfTheWeekSettings_monster)EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWtoussaint', (int)monsters.toussaint); + difficulties.Validate(); + monsters.Validate(); super.ValidateSettings(); } @@ -276,6 +269,16 @@ class MonsterOfTheWeekSettings_difficulties extends ISettingsGroup default id = 'MOTWdifficulties'; default defaultPresetIndex = 0; + + public /* override */ function Validate() : void + { + noMansLand = (MOTWDifficulty)Clamp((int)noMansLand, 0, 2); + skellige = (MOTWDifficulty)Clamp((int)skellige, 0, 2); + kaerMorhen = (MOTWDifficulty)Clamp((int)kaerMorhen, 0, 2); + toussaint = (MOTWDifficulty)Clamp((int)toussaint, 0, 2); + + super.Validate(); + } } class MonsterOfTheWeekSettings_monsters extends ISettingsGroup @@ -287,6 +290,16 @@ class MonsterOfTheWeekSettings_monsters extends ISettingsGroup default id = 'MOTWmonsters'; default defaultPresetIndex = 0; + + public /* override */ function Validate() : void + { + noMansLand = (MonsterOfTheWeekSettings_monster)m_parentMaster.EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWnoMansLand', (int)noMansLand); + skellige = (MonsterOfTheWeekSettings_monster)m_parentMaster.EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWskellige', (int)skellige); + kaerMorhen = (MonsterOfTheWeekSettings_monster)m_parentMaster.EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWkaerMorhen', (int)kaerMorhen); + toussaint = (MonsterOfTheWeekSettings_monster)m_parentMaster.EnumValueMappingValidateUnified('MOTWmonsters', 'MOTWtoussaint', (int)toussaint); + + super.Validate(); + } } enum MOTWDifficulty