Browse Source

[added] Ability to remove single mods from game without having to remove all, from Sword

Kevin_Smarts 11 months ago
parent
commit
161b9be80b
1 changed files with 80 additions and 0 deletions
  1. 80 0
      locations/mod_setting.qsrc

+ 80 - 0
locations/mod_setting.qsrc

@@ -98,5 +98,85 @@ if mod_list > 0:
 		end
 	end
 end
+
+! Delete single mod
+act ''+iif(settingmode = 1, '<center><b>Uninstall mod</b></center>','Uninstall mod')+'':
+	$mod_temp = input('Input mod name to uninstal (Case Sensetive)')
+	mod_removed_temp = 0
+	if $mod_temp ! '':
+		mod_i = mod_list
+		:mod_data_remover
+		if $mod_name[mod_i] = $mod_temp:
+			$mod_su_name = 'mod_<<$mod_name[mod_i]>>_onremove'
+			if LOC($mod_su_name): gs $mod_su_name
+			mod_removed_temp += 1
+			$mod_name_temp[mod_i] = ''
+		else
+			$mod_name_temp[mod_i] = $mod_name[mod_i]
+			$mod_version_temp[mod_i] = $mod_version[mod_i]
+			$mod_author_temp[mod_i] = $mod_author[mod_i]
+			$mod_desc_temp[mod_i] = $mod_desc[mod_i]
+			$mod_opt_temp[mod_i] = $mod_opt[mod_i]
+		end
+		if mod_i > 1:
+			mod_i -= 1
+			jump 'mod_data_remover'
+		end
+		killvar '$mod_su_name'
+		killvar 'mod_i'
+	end
+
+	if mod_removed_temp > 0:
+
+		killqst
+		killvar '$mod_name'
+		killvar '$mod_version'
+		killvar '$mod_author'
+		killvar '$mod_desc'
+		killvar '$mod_opt'
+
+		mod_i = 1
+		mod_restored_i = 1
+		:mod_data_restore
+		if $mod_name_temp[mod_i] ! '':
+			$mod_name_add_temp = $mod_name_temp[mod_i]
+			addqst 'mod/<<$mod_name_add_temp>>.qsp'
+			killvar '$mod_name_add_temp'
+
+			$mod_name[mod_restored_i] = $mod_name_temp[mod_i]
+			$mod_version[mod_restored_i] = $mod_version_temp[mod_i]
+			$mod_author[mod_restored_i] = $mod_author_temp[mod_i]
+			$mod_desc[mod_restored_i] = $mod_desc_temp[mod_i]
+			$mod_opt[mod_restored_i] = $mod_opt_temp[mod_i]
+			mod_restored_i += 1      
+		end
+		if mod_i < mod_list:
+			mod_i += 1
+			jump 'mod_data_restore'
+		end
+
+		mod_list = mod_restored_i - 1
+
+		killvar '$mod_name_temp'
+		killvar '$mod_version_temp'
+		killvar '$mod_author_temp'
+		killvar '$mod_desc_temp'
+		killvar '$mod_opt_temp'
+		killvar 'mod_i'
+		killvar 'mod_restored_i'
+
+		if mod_removed_temp > 0:
+			msg 'Mod <<$mod_temp>> was disabled.'
+		end
+	else
+		msg 'Mod <<$mod_temp>> was not installed.'
+	end
+
+	killvar 'mod_removed_temp'
+	killvar 'mod_temp'
+
+	gt 'mod_setting'
+end
+
 --- mod_setting ---------------------------------