Browse Source

Merge branch 'AdvancedCustomSets'

anjuna krokus 2 weeks ago
parent
commit
8943e90636

+ 1 - 0
glife.qproj

@@ -18,6 +18,7 @@
 		<Location name="journal_portfolio"/>
 		<Location name="journal_portfolio"/>
 		<Location name="journal_NPC_information"/>
 		<Location name="journal_NPC_information"/>
 		<Location name="Cheatmenu_din"/>
 		<Location name="Cheatmenu_din"/>
+		<Location name="Cheatmenu_bisets"/>
 	</Folder>
 	</Folder>
 	<Folder name="System">
 	<Folder name="System">
 		<Location name="counter"/>
 		<Location name="counter"/>

+ 1 - 1
locations/AppearanceSystem.qsrc

@@ -296,7 +296,7 @@ end
 if $ARGS[0] = 'AdjustFromBMI':
 if $ARGS[0] = 'AdjustFromBMI':
 	tempValue = ARGS[1] & !!value to be adjusted
 	tempValue = ARGS[1] & !!value to be adjusted
 
 
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class < 100:
 	if temp_bs_class < 100:
 		!! severely underweight
 		!! severely underweight
 		result = tempValue * 50 / 100
 		result = tempValue * 50 / 100

+ 8 - 415
locations/Cheatmenu_din.qsrc

@@ -702,31 +702,31 @@ if $ARGS[0] = 'bodyMod':
 		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
 		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
 		''
 		''
 		if (bs_temp_bs_class / 100) ! 1:
 		if (bs_temp_bs_class / 100) ! 1:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 170"><<func(''body_structure'', ''body_desc'', 17, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 170"><<func(''body_structure'', ''body_desc'', 17, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 2:
 		if (bs_temp_bs_class / 100) ! 2:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 200"><<func(''body_structure'', ''body_desc'', 20, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 200"><<func(''body_structure'', ''body_desc'', 20, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 3:
 		if (bs_temp_bs_class / 100) ! 3:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 230"><<func(''body_structure'', ''body_desc'', 23, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 230"><<func(''body_structure'', ''body_desc'', 23, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 4:
 		if (bs_temp_bs_class / 100) ! 4:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 270"><<func(''body_structure'', ''body_desc'', 27, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 270"><<func(''body_structure'', ''body_desc'', 27, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 5:
 		if (bs_temp_bs_class / 100) ! 5:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 320"><<func(''body_structure'', ''body_desc'', 32, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 320"><<func(''body_structure'', ''body_desc'', 32, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 6:
 		if (bs_temp_bs_class / 100) ! 6:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 370"><<func(''body_structure'', ''body_desc'', 37, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 370"><<func(''body_structure'', ''body_desc'', 37, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		if (bs_temp_bs_class / 100) ! 7:
 		if (bs_temp_bs_class / 100) ! 7:
-			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 420"><<func(''body_structure'', ''body_desc'', 42, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 420"><<func(''body_structure'', ''body_desc'', 42, strenbuf, 0)>></a>'
 			''
 			''
 		end
 		end
 		killvar 'bs_temp_bs_class'
 		killvar 'bs_temp_bs_class'
@@ -3180,414 +3180,7 @@ end
 
 
 $cheatmenu['bdimmain'] = "gs 'Cheatmenu_din', 'bdimmain'"
 $cheatmenu['bdimmain'] = "gs 'Cheatmenu_din', 'bdimmain'"
 if $ARGS[0] = 'bdimmain':
 if $ARGS[0] = 'bdimmain':
-	*clr & cla
-	gs 'stat'
-	gs 'obj_din', 'cheattabs'
-	'<center><h1>Cheat Menu - Body Image Sets</h1></center>'
-	$cheatmenu['table_start']
-	'<center><b>Body Image Controls</b></center>'
-	*nl
-	if cheatVars['fix_bodyimg'] = 1:
-		$temp_text = 'You are currently using set: '
-		if cheatVars['fix_bi_set'] < 10:
-			$temp_text += $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_folder']
-		else
-			$temp_text += 'default '
-			if cheatVars['fix_bi_set'] mod 10 = 0:
-				$temp_text += 'low '
-			elseif cheatVars['fix_bi_set'] mod 10 = 1:
-				$temp_text += 'mid '
-			elseif cheatVars['fix_bi_set'] mod 10 = 2:
-				$temp_text += 'high '
-			end
-
-			if cheatVars['fix_bi_set'] / 10 = 19:
-				$temp_text += 'strength'
-			else
-				$temp_text += func('body_structure', 'body_desc_from_class', (cheatVars['fix_bi_set'] / 10 mod 10) * 100)
-			end
-		end
-		'<<$temp_text>>'
-		killvar '$temp_text'
-	else
-		'You are currently not using a fixed set.'
-	end
-	*nl
-	'These are the default body image sets:'
-	*nl
-	func('cheatmenu_din', 'get_default_bi_table')
-	*nl
-	*nl
-	'<center><b>Custom Image Sets</b></center>'
-	temp_cm_bi_flag = 0
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 0
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 1
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 2
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 3
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 4
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 5
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 6
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 7
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 8
-	gs 'cheatmenu_din', 'bdcustfolddisplay', 9
-
-	if temp_cm_bi_flag < 10:
-		*nl
-		'<a href="exec: gs ''cheatmenu_din'', ''bdimcstadd''"><b>Add new set</b></a>'
-	end
-	killvar 'temp_cm_bi_flag'
-
-	$cheatmenu['table_end']
-end
-
-if $ARGS[0] = 'get_default_bi_table':
-	$temp_table = '<table cellpadding="25" cellspacing="0">'
-	$temp_table +=	'<tr>'
-	$temp_table +=		'<td></td>'
-	$temp_table +=		'<td></td>'
-	$temp_table +=		'<th colspan=3><b>Strength</b></th>'
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		'<td></td>'
-	$temp_table +=		'<th><a href="exec: gs ''cheatmenu_din'', ''unlock_img_set'', 199 & gs ''Cheatmenu_din'', ''bdimmain''"><b>RESET</b></a></th>'
-	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
-	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 0:
-		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_din'', ''unlock_img_set'', 190 & gs ''Cheatmenu_din'', ''bdimmain''"><b>Low</b></a>'
-	else
-		$temp_table +=		'<a href="exec: gs ''cheatmenu_din'', ''lock_img_set'', 190 & gs ''Cheatmenu_din'', ''bdimmain''"><b>Low</b></a>'
-	end
-	$temp_table +=		'</th>'
-	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
-	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 1:
-		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_din'', ''unlock_img_set'', 191 & gs ''Cheatmenu_din'', ''bdimmain''"><b>Mid</b></a>'
-	else
-		$temp_table +=		'<a href="exec: gs ''cheatmenu_din'', ''lock_img_set'', 191 & gs ''Cheatmenu_din'', ''bdimmain''"><b>Mid</b></a>'
-	end
-	$temp_table +=		'</th>'
-	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
-	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 2:
-		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_din'', ''unlock_img_set'', 192 & gs ''Cheatmenu_din'', ''bdimmain''"><b>High</b></a></th>'
-	else
-		$temp_table +=		'<a href="exec: gs ''cheatmenu_din'', ''lock_img_set'', 192 & gs ''Cheatmenu_din'', ''bdimmain''"><b>High</b></a></th>'
-	end
-	$temp_table +=		'</th>'
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		'<th rowspan=9><b>BMI</b></th>'
-	temp_cmd_i = 0
-	:default_table_loop
-		if temp_cmd_i ! 0: $temp_table +=	'<tr>'
-		$temp_table +=		'<th align="right" style="border-right: 1px solid black">'
-		if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i:
-			$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_din'', ''unlock_img_set'', 1<<temp_cmd_i>>9 & gs ''Cheatmenu_din'', ''bdimmain''"><b><<func(''body_structure'', ''body_desc_from_class'', temp_cmd_i * 100)>></a></b>'
-		else
-			$temp_table +=		'<a href="exec: gs ''cheatmenu_din'', ''lock_img_set'', 1<<temp_cmd_i>>9 & gs ''Cheatmenu_din'', ''bdimmain''"><b><<func(''body_structure'', ''body_desc_from_class'', temp_cmd_i * 100)>></b></a>'
-		end
-		$temp_table +=		'</th>'
-		$temp_table +=		'<td align="center" valign="center">'
-		temp_cmd_colorflag = 0
-		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 0 or cheatVars['fix_bi_set'] mod 10 = 9):
-			temp_cmd_colorflag = 1
-		end
-		$temp_table +=			'<<func(''Cheatmenu_din'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 2, temp_cmd_colorflag)>>'
-		$temp_table +=		'</td>'
-		$temp_table +=		'<td align="center" valign="center">'
-		temp_cmd_colorflag = 0
-		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 1 or cheatVars['fix_bi_set'] mod 10 = 9):
-			temp_cmd_colorflag = 1
-		end
-		$temp_table +=			'<<func(''Cheatmenu_din'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 6, temp_cmd_colorflag)>>'
-		$temp_table +=		'</td>'
-		$temp_table +=		'<td align="center" valign="center">'
-		temp_cmd_colorflag = 0
-		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 2 or cheatVars['fix_bi_set'] mod 10 = 9):
-			temp_cmd_colorflag = 1
-		end
-		$temp_table +=			'<<func(''Cheatmenu_din'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 8, temp_cmd_colorflag)>>'
-		$temp_table +=		'</td>'
-		$temp_table +=	'</tr>'
-		temp_cmd_i += 1
-	if temp_cmd_i < 9: jump 'default_table_loop'
-
-	$temp_table += '</table>'
-
-	$result = $temp_table
-	killvar '$temp_table'
-	killvar 'temp_cmd_colorflag'
-end
-
-
-
-if $ARGS[0] = 'lock_img_set':
-	cheatVars['fix_bodyimg'] = 1
-	if ARGS[1] < 10:
-		cheatVars['fix_bi_set'] = ARGS[1]
-	else
-		ARGS[1] = ARGS[1] mod 100
-		if cheatVars['fix_bi_set'] < 10: cheatVars['fix_bi_set'] = 199
-
-		if ARGS[1] mod 10 ! 9:
-			cheatVars['fix_bi_set'] = (cheatVars['fix_bi_set'] / 10) * 10 + (ARGS[1] mod 10)
-		else
-			cheatVars['fix_bi_set'] = 100 + (ARGS[1] / 10) * 10 + (cheatVars['fix_bi_set'] mod 10)
-		end
-	end
-	gs 'body', 'UpdateBodyImage'
-end
-
-if $ARGS[0] = 'unlock_img_set':
-	if cheatVars['fix_bi_set'] < 10:
-		cheatVars['fix_bodyimg'] = 0
-		cheatVars['fix_bi_set'] = 0
-	else
-		ARGS[1] = ARGS[1] mod 100
-		if ARGS[1] mod 10 = 9: cheatVars['fix_bi_set'] = 190 + (cheatVars['fix_bi_set'] mod 10)
-		if ARGS[1] / 10 = 9: cheatVars['fix_bi_set'] = (cheatVars['fix_bi_set'] / 10) * 10 + 9
-
-		if cheatVars['fix_bi_set'] = 199:
-			cheatVars['fix_bodyimg'] = 0
-			cheatVars['fix_bi_set'] = 0
-		end
-	end
-	gs 'body', 'UpdateBodyImage'
-end
-
-
-if $ARGS[0] = 'get_bodyimg_desc_link':
-	$result = '<a <<iif(ARGS[2] = 0, '''', ''style="color:#00FF00"'')>> href="exec: view ''' + func('body_structure', 'body_img_from_class', ARGS[1], 0) + '''">' + func('body_structure', 'body_desc_from_class', ARGS[1]) + '</a>'
-end
-
-
-
-
-if $ARGS[0] = 'bdcustfolddisplay':
-	if $cheatVars['fix_biset_<<ARGS[1]>>_folder'] ! '':
-		if temp_cm_bi_flag = 0:
-			*nl
-			'You may edit aspects of a custom image set by clicking on their folder names below.'
-		end
-		*nl
-		'<a <<iif((cheatVars[''fix_bodyimg''] = 1 and cheatVars[''fix_bi_set''] = ARGS[1]), ''style="color:#00FF00"'', '''')>> href="exec: gs ''Cheatmenu_din'', ''bdimdisplay'', <<ARGS[1]>>"><b><<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>></b></a>'
-		temp_cm_bi_flag += 1
-	end
-end
-
-
-$cheatmenu['bdimdisplay'] = "gs 'Cheatmenu_din', 'bdimdisplay', ARGS[0]"
-if $ARGS[0] = 'bdimdisplay':
-	*clr & cla
-	gs 'stat'
-	'<center><h1>Cheat menu</h1></center>'
-	*nl
-	'<center><b>Body Image Set Display</b></center>'
-
-	$cheatmenu['table_start']
-
-	act 'Go Back': gs 'cheatmenu_din', 'bdimmain'
-	'<a href="exec: gs ''cheatmenu_din'', ''bdimmain''"><b>Go Back</b></a>'
-	*nl
-	if cheatVars['fix_bodyimg'] = 1 and ARGS[1] = cheatVars['fix_bi_set']:
-		'This is the currently locked set.'
-		'<a href="exec: gs ''cheatmenu_din'', ''unlock_img_set'' & gs ''Cheatmenu_din'', ''bdimdisplay'', <<ARGS[1]>>"><b>Clear the lock.</b></a>'
-	else
-		'<a href="exec: gs ''cheatmenu_din'', ''lock_img_set'', <<ARGS[1]>> & gs ''Cheatmenu_din'', ''bdimdisplay'', <<ARGS[1]>>"><b>Use this set only.</b></a>'
-	end
-	*nl
-
-	'"Edit image" allows you to set the image file name (only use .jpg images)'
-	'"Edit description" allows you to set the description of the image'
-
-	'Folder: <<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>'
-
-	'Descriptors: (Displayed as "You are:")'
-
-	$temp_base_folder = 'images/pc/body/shape/<<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>'
-
-	$temp_table = '<table cellpadding = "10">'
-	$temp_table +=	'<tr>'
-	$temp_table +=		'<th></th>'
-	$temp_table +=		'<th>Currently using</th>'
-	$temp_table +=		'<th></th>'
-	$temp_table +=		'<th></th>'
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 0)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 1)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 2)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 3)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 4)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 5)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 6)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 7)
-	$temp_table +=	'</tr>'
-	$temp_table +=	'<tr>'
-	$temp_table +=		func('cheatmenu_din', 'get_custom_bodyimg_desc_link', ARGS[1], 8)
-	$temp_table +=	'</tr>'
-	$temp_table += '</table>'
-
-	'<<$temp_table>>'
-	'<a href="exec: gs ''cheatmenu_din'', ''bdimcstdel'', <<ARGS[1]>>">Delete this set.</a>'
-	killvar '$temp_table'
-
-	$cheatmenu['table_end']
-end
-
-if $ARGS[0] = 'get_custom_bodyimg_desc_link':
-	$temp_cmd_img_name = $cheatVars['fix_biset_<<ARGS[1]>>_img_<<ARGS[2]>>']
-	$temp_cmd_desc = $cheatVars['fix_biset_<<ARGS[1]>>_desc_<<ARGS[2]>>']
-
-	if $temp_cmd_img_name = '':
-		$temp_cmd_image = func('body_structure', 'body_img_from_class', ARGS[2] * 100, 0)
-		$temp_cmd_img_addon = 'Default image'
-	else
-		$temp_base_folder = 'images/pc/body/shape/<<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>'
-		$temp_cmd_image = '<<$temp_base_folder>>/<<$temp_cmd_img_name>>.jpg'
-		$temp_cmd_img_addon = '<<$temp_cmd_img_name>>.jpg (<a href="exec: gs ''Cheatmenu_din'', ''bdimcstimgdefault'', <<ARGS[2]>>">Use default image</a>)'
-		killvar '$temp_base_folder'
-	end
-
-	if $temp_cmd_desc = '':
-		$temp_cmd_desc = func('body_structure', 'body_desc_from_class', ARGS[2] * 100)
-	end
-
-	$result = '<td><a href="exec: view ''<<$temp_cmd_image>>''"><<$temp_cmd_desc>></a></td>'
-	$result += '<td><<$temp_cmd_img_addon>></td>'
-	$result += '<td><a href="exec: gs ''Cheatmenu_din'', ''bdimcstimged'', <<ARGS[1]>>, <<ARGS[2]>>">Edit image</a></td>'
-	$result += '<td><a href="exec: gs ''Cheatmenu_din'', ''bdimcstdesed'', <<ARGS[1]>>, <<ARGS[2]>>">Edit description</a></td>'
-
-	killvar '$temp_cmd_image'
-	killvar '$temp_cmd_desc'
-	killvar '$temp_cmd_img_addon'
-	killvar '$temp_cmd_img_name'
-end
-
-
-$cheatmenu['bdimcstadd'] = "gs 'Cheatmenu_din', 'bdimcstadd'"
-if $ARGS[0] = 'bdimcstadd':
-	*clr & cla
-	'<center><b>Body Image Set Addition</b></center>'
-	$cheatmenu['table_start']
-	act 'Go Back': killvar 'klsetask' & gs 'cheatmenu_din', 'bdimmain'
-	'<a href="exec:killvar ''klsetask'' & gs ''cheatmenu_din'', ''bdimmain''"><b>Go Back</b></a>'
-	*nl
-	'This is where you can add a new image set to a game.'
-	'To add an image set, create a folder in images/pc/body/shape/ and name it anything you want (shorter will be easier to remember). Then put in it any images you want. Once you have done that, click the link below and put in your folder name to add that set.'
-	'Note: This will only be for this instance/save of the game and you will have to redo the click the link step if you want to add the same folder to a different instance/save.'
-	*nl
-	'<a href="exec: gs ''Cheatmenu_din'', ''bdimcstaddpro''">Add Image Set</a>'
-	$cheatmenu['table_end']
-end
-
-$cheatmenu['bdimcstaddpro'] = "gs 'Cheatmenu_din', 'bdimcstaddpro'"
-if $ARGS[0] = 'bdimcstaddpro':
-	$tmpstrg = input("Enter folder name, do not include ''\''")
-	if $tmpstrg = '':
-		killvar '$tmpstrg'
-		gs 'Cheatmenu_din', 'bdimcstadd'
-	else
-		cyci1 = 0
-		:addcyc1
-		if $cheatVars['fix_biset_<<cyci1>>_folder'] ! '': cyci1 += 1 & jump 'addcyc1'
-		if cyci1 > 9:
-			'You have encoutered error 1'
-			'<a href="exec: gs ''cheatmenu_din'', ''bdimmain''"><b>Go Back</b></a>'
-			exit
-		end
-		ARGS[1] = cyci1
-
-		if mid($tmpstrg, len($tmpstrg)) = '/' or mid($tmpstrg, len($tmpstrg)) = '\':
-			$tmpstrg = mid($tmpstrg, 1, len($tmpstrg)-1)
-		end
-
-		cyci1 = 0
-		:addcyc2
-			$cheatVars['fix_biset_<<ARGS[1]>>_desc_<<cyci1>>'] = func('body_structure', 'body_desc_from_class', cyci1 * 100)
-			cyci1 += 1
-		if cyci1 < 9: jump 'addcyc2'
-
-		$cheatVars['fix_biset_<<ARGS[1]>>_folder'] = $tmpstrg
-		killvar '$tmpstrg'
-		killvar 'cyci1'
-
-		gs 'Cheatmenu_din', 'bdimdisplay', ARGS[1]
-	end
-end
-
-$cheatmenu['bdimcstdesed'] = "gs 'Cheatmenu_din', 'bdimcstdesed', ARGS[0], ARGS[1]"
-if $ARGS[0] = 'bdimcstdesed':
-	$tmpstrg = input("Enter a new descriptor")
-	if $tmpstrg ! '':
-		$cheatVars['fix_biset_<<ARGS[1]>>_desc_<<ARGS[2]>>'] = $tmpstrg
-		if cheatVars['fix_bi_set'] = ARGS[1]: gs 'body', 'UpdateBodyImage'
-	end
-
-	killvar '$tmpstrg'
-	gs 'Cheatmenu_din', 'bdimdisplay', ARGS[1]
-end
-
-if $ARGS[0] = 'bdimcstimged':
-	$tmpstrg = input("Enter a new image name (Leave empty to not change the image. Example: 1). Exclude the '.jpg'")
-	if $tmpstrg ! '':
-		if mid($tmpstrg, len($tmpstrg)-3) = '.jpg':
-			$tmpstrg = mid($tmpstrg, 1, len($tmpstrg)-4)
-		end
-		$cheatVars['fix_biset_<<ARGS[1]>>_img_<<ARGS[2]>>'] = $tmpstrg
-		if cheatVars['fix_bi_set'] = ARGS[1]: gs 'body', 'UpdateBodyImage'
-	end
-
-	killvar '$tmpstrg'
-	gs 'Cheatmenu_din', 'bdimdisplay', ARGS[1]
-end
-
-if $ARGS[0] = 'bdimcstimgdefault':
-	$cheatVars['fix_biset_<<ARGS[1]>>_img_<<ARGS[2]>>'] = ''
-	gs 'Cheatmenu_din', 'bdimdisplay', ARGS[1]
-end
-
-
-$cheatmenu['bdimcstdel'] = "gs 'Cheatmenu_din', 'bdimcstdel', ARGS[0]"
-if $ARGS[0] = 'bdimcstdel':
-	*clr & cla
-	'<center><b>Body Image Set Removal</b></center>'
-	$cheatmenu['table_start']
-
-	'<a href="exec: killvar ''klsetask'' & gs ''Cheatmenu_din'', ''bdimdisplay'', <<ARGS[1]>>"><b>Go Back</b></a>'
-	*nl
-	'This is where you remove a body image set from use, please note it does not delete anything, it just clears the custom set from this game instance/save.'
-	if klsetask = 1:
-		'<a href="exec:klsetask = 2 & gs ''Cheatmenu_din'', ''bdimcstdel'', <<ARGS[1]>>"><b>Are you sure you want to remove set <<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>?</b></a>'
-	elseif klsetask = 2:
-		if cheatVars['fix_bodyimg'] = 1 and cheatVars['fix_bi_set'] = ARGS[1]: cheatVars['fix_bodyimg'] = 0 & cheatVars['fix_bi_set'] = 0
-
-		cyci1 = 0
-		:del_bodimgset_loop
-			gs 'shortgs', 'remove_array_element', 'cheatVars', 'fix_biset_<<ARGS[1]>>_img_<<cyci1>>'
-			gs 'shortgs', 'remove_array_element', 'cheatVars', 'fix_biset_<<ARGS[1]>>_desc_<<cyci1>>'
-			cyci1 += 1
-		if cyci1 < 9: jump 'del_bodimgset_loop'
-		gs 'shortgs', 'remove_array_element', 'cheatVars','fix_biset_<<ARGS[1]>>_folder'
-
-		killvar 'cyci1'
-		killvar 'klsetask'
-		gs 'cheatmenu_din', 'bdimmain'
-	else
-		'<a href="exec: klsetask = 1 & gs ''Cheatmenu_din'', ''bdimcstdel'', <<ARGS[1]>>">Remove set <<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>?</a>'
-	end
-	$cheatmenu['table_end']
+	gs 'cheatmenu_bisets', 'main'
 end
 end
 
 
 
 

+ 303 - 122
locations/body_structure.qsrc

@@ -1,54 +1,80 @@
 # body_structure
 # body_structure
 
 
+$DEFAULT_PATH = 'images/pc/body/shape'
+
 
 
 !	Get the bmi-strength class
 !	Get the bmi-strength class
-!	bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+!	bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf, pregchem)
 if $ARGS[0] = 'get_class':
 if $ARGS[0] = 'get_class':
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
+	if arrsize('ARGS') = 3: ARGS[3] = PregChem
+
+	!	PregChem
+	if ARGS[3] < 2184:
+		result = 0000
+	elseif ARGS[3] < 2688:
+		result = 1000
+	elseif ARGS[3] < 3192:
+		result = 2000
+	elseif ARGS[3] < 3696:
+		result = 3000
+	elseif ARGS[3] < 4200:
+		result = 4000
+	elseif ARGS[3] < 4704:
+		result = 5000
+	elseif ARGS[3] < 5208:
+		result = 6000
+	elseif ARGS[3] < 5712:
+		result = 7000
+	elseif ARGS[3] < 6216:
+		result = 8000
+	else
+		result = 9000
+	end
 
 
 	!	bmi
 	!	bmi
 	if ARGS[1] < 16:
 	if ARGS[1] < 16:
-		result = 0
+		result += 000
 	elseif ARGS[1] < 19:
 	elseif ARGS[1] < 19:
-		result = 100
+		result += 100
 	elseif ARGS[1] < 22:
 	elseif ARGS[1] < 22:
-		result = 200
+		result += 200
 	elseif ARGS[1] < 25:
 	elseif ARGS[1] < 25:
-		result = 300
+		result += 300
 	elseif ARGS[1] < 30:
 	elseif ARGS[1] < 30:
-		result = 400
+		result += 400
 	elseif ARGS[1] < 35:
 	elseif ARGS[1] < 35:
-		result = 500
+		result += 500
 	elseif ARGS[1] < 40:
 	elseif ARGS[1] < 40:
-		result = 600
+		result += 600
 	elseif ARGS[1] < 45:
 	elseif ARGS[1] < 45:
-		result = 700
+		result += 700
 	else
 	else
-		result = 800
+		result += 800
 	end
 	end
 
 
 	!	strenbuf
 	!	strenbuf
 	if ARGS[2] <= 5:
 	if ARGS[2] <= 5:
-		result += 0
+		result += 00
 	elseif ARGS[2] <= 10:
 	elseif ARGS[2] <= 10:
-		result += 1
+		result += 01
 	elseif ARGS[2] <= 15:
 	elseif ARGS[2] <= 15:
-		result += 2
+		result += 02
 	elseif ARGS[2] <= 25:
 	elseif ARGS[2] <= 25:
-		result += 3
+		result += 03
 	elseif ARGS[2] <= 35:
 	elseif ARGS[2] <= 35:
-		result += 4
+		result += 04
 	elseif ARGS[2] <= 50:
 	elseif ARGS[2] <= 50:
-		result += 5
+		result += 05
 	elseif ARGS[2] <= 70:
 	elseif ARGS[2] <= 70:
-		result += 6
+		result += 06
 	elseif ARGS[2] <= 100:
 	elseif ARGS[2] <= 100:
-		result += 7
+		result += 07
 	elseif ARGS[2] <= 110:
 	elseif ARGS[2] <= 110:
-		result += 8
+		result += 08
 	elseif ARGS[2] <= 120:
 	elseif ARGS[2] <= 120:
-		result += 9
+		result += 09
 	elseif ARGS[2] <= 130:
 	elseif ARGS[2] <= 130:
 		result += 10
 		result += 10
 	elseif ARGS[2] <= 140:
 	elseif ARGS[2] <= 140:
@@ -124,6 +150,26 @@ if $ARGS[0] = 'body_img_totals':
 	elseif ARGS[1] = 800:
 	elseif ARGS[1] = 800:
 		result = 1
 		result = 1
 
 
+
+	elseif ARGS[1] = 1000:
+		result = 1
+	elseif ARGS[1] = 2000:
+		result = 1
+	elseif ARGS[1] = 3000:
+		result = 1
+	elseif ARGS[1] = 4000:
+		result = 1
+	elseif ARGS[1] = 5000:
+		result = 1
+	elseif ARGS[1] = 6000:
+		result = 1
+	elseif ARGS[1] = 7000:
+		result = 1
+	elseif ARGS[1] = 8000:
+		result = 1
+	elseif ARGS[1] = 9000:
+		result = 1
+
 	end
 	end
 end
 end
 
 
@@ -176,25 +222,49 @@ if $ARGS[0] = 'Body_img_transform':
 		result = 600
 		result = 600
 	elseif ARGS[1] < 800:
 	elseif ARGS[1] < 800:
 		result = 700
 		result = 700
-	else
+	elseif ARGS[1] < 1000:
 		result = 800
 		result = 800
+	elseif ARGS[1] < 2000:
+		result = 1000
+	elseif ARGS[1] < 3000:
+		result = 2000
+	elseif ARGS[1] < 4000:
+		result = 3000
+	elseif ARGS[1] < 5000:
+		result = 4000
+	elseif ARGS[1] < 6000:
+		result = 5000
+	elseif ARGS[1] < 7000:
+		result = 6000
+	elseif ARGS[1] < 8000:
+		result = 7000
+	elseif ARGS[1] < 9000:
+		result = 8000
+	elseif ARGS[1] < 10000:
+		result = 9000
 	end
 	end
 end
 end
 
 
 !	ARGS[1] = bs_class
 !	ARGS[1] = bs_class
 if $ARGS[0] = 'default_set_class_transform':
 if $ARGS[0] = 'default_set_class_transform':
-	result = ARGS[1]
+	if ARGS[1] >= 1000:
+		result = ARGS[1]
+		exit
+	end
+
+	result = ARGS[1] mod 1000
 	if cheatVars['fix_bi_set'] mod 10 = 0:
 	if cheatVars['fix_bi_set'] mod 10 = 0:
-		result = 100 * (result / 100) + 2
+		result = 100 * (ARGS[1] / 100) + 2
 	elseif cheatVars['fix_bi_set'] mod 10 = 1:
 	elseif cheatVars['fix_bi_set'] mod 10 = 1:
-		result = 100 * (result / 100) + 6
+		result = 100 * (ARGS[1] / 100) + 6
 	elseif cheatVars['fix_bi_set'] mod 10 = 2:
 	elseif cheatVars['fix_bi_set'] mod 10 = 2:
-		result = 100 * (result / 100) + 8
+		result = 100 * (ARGS[1] / 100) + 8
 	end
 	end
 
 
 	if cheatVars['fix_bi_set'] / 10 mod 10 ! 9:
 	if cheatVars['fix_bi_set'] / 10 mod 10 ! 9:
 		result = (cheatVars['fix_bi_set'] / 10 mod 10) * 100 + result mod 100
 		result = (cheatVars['fix_bi_set'] / 10 mod 10) * 100 + result mod 100
 	end
 	end
+	result += base_result
 end
 end
 
 
 
 
@@ -206,22 +276,9 @@ if $ARGS[0] = 'body_img':
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 3: ARGS[3] = PregChem
 	if arrsize('ARGS') = 3: ARGS[3] = PregChem
 
 
+	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2], ARGS[3])
 
 
 
 
-	! =======      Pregnant       ======= !
-	if cheatVars['fix_bodyimg'] = 0 and (knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or ARGS[3] > 3600))):
-		if ARGS[3] <= 2687:
-			$result = 'images/pc/body/shape/preg/0/0.jpg'
-		elseif ARGS[3] <= 6215:
-			$result = 'images/pc/body/shape/preg/0/<<((ARGS[3] - 2184)/504)>>.jpg'
-		else
-			$result = 'images/pc/body/shape/preg/0/8.jpg'
-		end
-		exit
-	end
-
-	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
-
 	if cheatVars['fix_bodyimg'] = 1:
 	if cheatVars['fix_bodyimg'] = 1:
 		if cheatVars['fix_bi_set'] < 10:
 		if cheatVars['fix_bi_set'] < 10:
 			$result = func('body_structure', 'custom_body_img', bs_temp_bs_class)
 			$result = func('body_structure', 'custom_body_img', bs_temp_bs_class)
@@ -237,46 +294,79 @@ if $ARGS[0] = 'body_img':
 end
 end
 
 
 
 
+!! ARGS[1] = bs_class
 if $ARGS[0] = 'body_img_from_class':
 if $ARGS[0] = 'body_img_from_class':
-	$result = 'images/pc/body/shape/'
-
 	ARGS[1] = func('body_structure', 'Body_img_transform', ARGS[1])
 	ARGS[1] = func('body_structure', 'Body_img_transform', ARGS[1])
-	if ARGS[1] < 100:
-		$result += '0_starving/'
-	elseif ARGS[1] < 200:
-		$result += '1_underweight/'
-	elseif ARGS[1] < 300:
-		$result += '2_slender/'
-	elseif ARGS[1] < 400:
-		$result += '3_healthy/'
-	elseif ARGS[1] < 500:
-		$result += '4_overweight/'
-	elseif ARGS[1] < 600:
-		$result += '5_modobese/'
-	elseif ARGS[1] < 700:
-		$result += '6_sevobese/'
-	elseif ARGS[1] < 800:
-		$result += '7_vsevobese/'
-	else
-		$result += '8_morobese/'
+
+	$result = func('body_structure', 'body_img_path_from_class', ARGS[1])
+	$result += '/'
+
+	if ARGS[1] >= 1000:
+		$result += '0/'
+		if ARGS[1] = 1000:
+			$result += '0'
+		elseif ARGS[1] = 2000:
+			$result += '1'
+		elseif ARGS[1] = 3000:
+			$result += '2'
+		elseif ARGS[1] = 4000:
+			$result += '3'
+		elseif ARGS[1] = 5000:
+			$result += '4'
+		elseif ARGS[1] = 6000:
+			$result += '5'
+		elseif ARGS[1] = 7000:
+			$result += '6'
+		elseif ARGS[1] = 8000:
+			$result += '7'
+		elseif ARGS[1] = 9000:
+			$result += '8'
+		end
+		$result += '.jpg'
+		exit
 	end
 	end
 
 
-	if ARGS[1] mod 100 = 0:
+
+	ARGS[2] = (ARGS[1] mod 100)
+	if ARGS[2] = 0:
 		$result += '0_low_'
 		$result += '0_low_'
-	elseif ARGS[1] mod 100 = 6:
+	elseif ARGS[2] = 1:
+		$result += '1_???_'
+	elseif ARGS[2] = 2:
+		$result += '2_???_'
+	elseif ARGS[2] = 3:
+		$result += '3_???_'
+	elseif ARGS[2] = 4:
+		$result += '4_???_'
+	elseif ARGS[2] = 5:
+		$result += '5_???_'
+	elseif ARGS[2] = 6:
 		$result += '6_mid_'
 		$result += '6_mid_'
-	elseif ARGS[1] mod 100 = 7:
+	elseif ARGS[2] = 7:
 		$result += '7_high_'
 		$result += '7_high_'
-	elseif ARGS[1] mod 100 = 8:
+	elseif ARGS[2] = 8:
 		$result += '8_strong_'
 		$result += '8_strong_'
-	elseif ARGS[1] mod 100 = 10:
+	elseif ARGS[2] = 9:
+		$result += '9_???_'
+	elseif ARGS[2] = 10:
 		$result += '10_vstrong_'
 		$result += '10_vstrong_'
-	elseif ARGS[1] mod 100 = 13:
+	elseif ARGS[2] = 11:
+		$result += '11_???_'
+	elseif ARGS[2] = 12:
+		$result += '12_???_'
+	elseif ARGS[2] = 13:
 		$result += '13_bbuilder_'
 		$result += '13_bbuilder_'
-	elseif ARGS[1] mod 100 = 15:
+	elseif ARGS[2] = 14:
+		$result += '14_???_'
+	elseif ARGS[2] = 15:
 		$result += '15_hulk_'
 		$result += '15_hulk_'
+	elseif ARGS[2] = 16:
+		$result += '16_???_'
+	else
+		$result += '17_???_'
 	end
 	end
 
 
+
 	temp_img_totals = func('body_structure', 'body_img_totals', ARGS[1])
 	temp_img_totals = func('body_structure', 'body_img_totals', ARGS[1])
 	if arrsize('ARGS') <= 2:
 	if arrsize('ARGS') <= 2:
 		temp_img_chosen = rand(0, temp_img_totals-1)
 		temp_img_chosen = rand(0, temp_img_totals-1)
@@ -291,21 +381,70 @@ if $ARGS[0] = 'body_img_from_class':
 	$result += '<<temp_img_chosen>>.jpg'
 	$result += '<<temp_img_chosen>>.jpg'
 
 
 	killvar 'temp_img_totals'
 	killvar 'temp_img_totals'
-	killvar 'bs_temp_bs_class'
 end
 end
 
 
+if $ARGS[0] = 'body_img_path_from_class':
+	$result = $DEFAULT_PATH + '/'
+	if ARGS[1] < 100:
+		$result += '0_starving'
+	elseif ARGS[1] < 200:
+		$result += '1_underweight'
+	elseif ARGS[1] < 300:
+		$result += '2_slender'
+	elseif ARGS[1] < 400:
+		$result += '3_healthy'
+	elseif ARGS[1] < 500:
+		$result += '4_overweight'
+	elseif ARGS[1] < 600:
+		$result += '5_modobese'
+	elseif ARGS[1] < 700:
+		$result += '6_sevobese'
+	elseif ARGS[1] < 800:
+		$result += '7_vsevobese'
+	elseif ARGS[1] < 1000:
+		$result += '8_morobese'
+	else
+		$result += 'preg'
+	end
+end
+
+
+
 if $ARGS[0] = 'custom_body_img':
 if $ARGS[0] = 'custom_body_img':
-	ARGS[1] = ARGS[1] / 100
+	if ARGS[1] >= 1000:
+		$result = func('body_structure', 'body_img_from_class', ARGS[1])
+		exit
+	end
+
+
+	if cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_advanced'] = 0:
+		ARGS[1] = ARGS[1] / 100
+		$temp_img_name = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_img_<<ARGS[1]>>']
+		$temp_base_folder = $DEFAULT_PATH
+		$temp_base_folder += '/' + $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_folder']
+	else
+		$cbi_class = $mid(1000+ARGS[1], 2)
+		bs_imgnum = rand(0, cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_imgnums_<<$cbi_class>>']-1)
+		$temp_img_name = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_img_<<$cbi_class>>_<<bs_imgnum>>']
+		killvar 'bs_imgnum'
+
+		$temp_base_folder = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_path']
+		if $temp_base_folder = '':
+			$temp_base_folder = $DEFAULT_PATH
+		end
+		$temp_base_folder += '/' + $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_folder']
+		if $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_path_<<$cbi_class>>'] ! '':
+			$temp_base_folder += '/' + $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_path_<<$cbi_class>>']
+		end
+		killvar '$cbi_class'
+	end
 
 
-	$temp_img_name = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_img_<<ARGS[1]>>']
 	if $temp_img_name = '':
 	if $temp_img_name = '':
-		$result = func('body_structure', 'body_img_from_class', ARGS[1] * 100)
-		killvar '$temp_img_name'
-		exit
+		$result = func('body_structure', 'cs_get_default_img', ARGS[1])
+	else
+		$result = '<<$temp_base_folder>>/<<$temp_img_name>>.jpg'
 	end
 	end
 
 
-	$temp_base_folder = 'images/pc/body/shape/' + $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_folder']
-	$result = '<<$temp_base_folder>>/<<$temp_img_name>>.jpg'
 	killvar '$temp_base_folder'
 	killvar '$temp_base_folder'
 	killvar '$temp_img_name'
 	killvar '$temp_img_name'
 end
 end
@@ -318,30 +457,7 @@ if $ARGS[0] = 'body_desc':
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 3: ARGS[3] = PregChem
 	if arrsize('ARGS') = 3: ARGS[3] = PregChem
 
 
-	if knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or ARGS[3] > 3600)):
-		if ARGS[3] <= 2687:
-			$result = 'pregnant, but not showing'
-		elseif ARGS[3] <= 3191:
-			$result = 'glowing'
-		elseif ARGS[3] <= 3695:
-			$result = 'starting to show'
-		elseif ARGS[3] <= 4199:
-			$result = 'clearly showing'
-		elseif ARGS[3] <= 4703:
-			$result = 'fairly pregnant'
-		elseif ARGS[3] <= 5207:
-			$result = 'quite pregnant'
-		elseif ARGS[3] <= 5711:
-			$result = 'very pregnant'
-		elseif ARGS[3] <= 6215:
-			$result = 'extremely pregnant'
-		else
-			$result = 'ready to pop'
-		end
-		exit
-	end
-
-	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
+	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2], ARGS[3])
 
 
 	if cheatVars['fix_bodyimg'] = 1:
 	if cheatVars['fix_bodyimg'] = 1:
 		if cheatVars['fix_bi_set'] < 10:
 		if cheatVars['fix_bi_set'] < 10:
@@ -432,19 +548,50 @@ if $ARGS[0] = 'body_desc_from_class':
 
 
 	! =======   morbidly obese    ======= !
 	! =======   morbidly obese    ======= !
 	! -----     45 <= bmi           ----- !
 	! -----     45 <= bmi           ----- !
-	else
+	elseif ARGS[1] < 1000:
 		!	0 <= strenbuf <= 200
 		!	0 <= strenbuf <= 200
 		$result = 'morbidly obese'
 		$result = 'morbidly obese'
+
+	! =======      pregnant       ======= !
+	! -----                         ----- !
+	elseif ARGS[1] < 2000:
+		$result = 'pregnant, but not showing'
+	elseif ARGS[1] < 3000:
+		$result = 'glowing'
+	elseif ARGS[1] < 4000:
+		$result = 'starting to show'
+	elseif ARGS[1] < 5000:
+		$result = 'clearly showing'
+	elseif ARGS[1] < 6000:
+		$result = 'fairly pregnant'
+	elseif ARGS[1] < 7000:
+		$result = 'quite pregnant'
+	elseif ARGS[1] < 8000:
+		$result = 'very pregnant'
+	elseif ARGS[1] < 9000:
+		$result = 'extremely pregnant'
+	else
+		$result = 'ready to pop'
 	end
 	end
 end
 end
 
 
 
 
 if $ARGS[0] = 'custom_body_desc':
 if $ARGS[0] = 'custom_body_desc':
-	ARGS[1] = ARGS[1] / 100
+	if ARGS[1] >= 1000:
+		$result = func('body_structure', 'body_desc_from_class', ARGS[1])
+		exit
+	end
+
+
+	if cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_advanced'] = 0:
+		ARGS[1] = ARGS[1] / 100
+		$temp_bs_body_desc = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_desc_<<ARGS[1]>>']
+	else
+		$temp_bs_body_desc = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_desc_<<$mid(1000+ARGS[1],2)>>']
+	end
 
 
-	$temp_bs_body_desc = $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_desc_<<ARGS[1]>>']
 	if $temp_bs_body_desc = '':
 	if $temp_bs_body_desc = '':
-		$temp_bs_body_desc = func('body_structure', 'body_desc_from_class', ARGS[1] * 100)
+		$temp_bs_body_desc = func('body_structure', 'cs_get_default_desc', ARGS[1])
 	end
 	end
 
 
 	$result = $temp_bs_body_desc
 	$result = $temp_bs_body_desc
@@ -458,7 +605,7 @@ end
 if $ARGS[0] = 'bmi_desc':
 if $ARGS[0] = 'bmi_desc':
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 
 
-	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], 30)
+	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], 30, 0)
 	$result = func('body_structure', 'bmi_desc_from_class', bs_temp_bs_class)
 	$result = func('body_structure', 'bmi_desc_from_class', bs_temp_bs_class)
 	killvar 'bs_temp_bs_class'
 	killvar 'bs_temp_bs_class'
 end
 end
@@ -493,12 +640,14 @@ if $ARGS[0] = 'appearance_bonus':
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 
 
-	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2])
+	bs_temp_bs_class = func('body_structure', 'get_class', ARGS[1], ARGS[2], 0)
 	result = func('body_structure', 'appearance_bonus_from_class', bs_temp_bs_class)
 	result = func('body_structure', 'appearance_bonus_from_class', bs_temp_bs_class)
 	killvar 'bs_temp_bs_class'
 	killvar 'bs_temp_bs_class'
 end
 end
 
 
 if $ARGS[0] = 'appearance_bonus_from_class':
 if $ARGS[0] = 'appearance_bonus_from_class':
+	ARGS[1] = ARGS[1] mod 1000
+
 	if ARGS[1] < 100:
 	if ARGS[1] < 100:
 		!	starving: bmi < 16
 		!	starving: bmi < 16
 		result = -10
 		result = -10
@@ -528,57 +677,57 @@ if $ARGS[0] = 'appearance_bonus_from_class':
 		result = -80
 		result = -80
 	end
 	end
 
 
-	ARGS[1] = ARGS[1] mod 100
 
 
-	if ARGS[1] = 0:
+	ARGS[2] = (ARGS[1] mod 100)
+	if ARGS[2] = 0:
 		!	0 <= strenbuf <= 5
 		!	0 <= strenbuf <= 5
 		result -= 30
 		result -= 30
-	elseif ARGS[1] = 1:
+	elseif ARGS[2] = 1:
 		!	5 < strenbuf <= 10
 		!	5 < strenbuf <= 10
 		result -= 20
 		result -= 20
-	elseif ARGS[1] = 2:
+	elseif ARGS[2] = 2:
 		!	10 < strenbuf <= 15
 		!	10 < strenbuf <= 15
 		result -= 15
 		result -= 15
-	elseif ARGS[1] = 3:
+	elseif ARGS[2] = 3:
 		!	15 < strenbuf <= 25
 		!	15 < strenbuf <= 25
 		result -= 10
 		result -= 10
-	elseif ARGS[1] = 4:
+	elseif ARGS[2] = 4:
 		!	25 < strenbuf <= 35
 		!	25 < strenbuf <= 35
 		result -= 5
 		result -= 5
-	elseif ARGS[1] = 5:
+	elseif ARGS[2] = 5:
 		!	35 < strenbuf <= 50
 		!	35 < strenbuf <= 50
 		result += 0
 		result += 0
-	elseif ARGS[1] = 6:
+	elseif ARGS[2] = 6:
 		!	50 < strenbuf <= 70
 		!	50 < strenbuf <= 70
 		result += 5
 		result += 5
-	elseif ARGS[1] = 7:
+	elseif ARGS[2] = 7:
 		!	70 < strenbuf <= 100
 		!	70 < strenbuf <= 100
 		result += 10
 		result += 10
-	elseif ARGS[1] = 8:
+	elseif ARGS[2] = 8:
 		!	100 < strenbuf <= 110
 		!	100 < strenbuf <= 110
 		result += 5
 		result += 5
-	elseif ARGS[1] = 9:
+	elseif ARGS[2] = 9:
 		!	110 < strenbuf <= 120
 		!	110 < strenbuf <= 120
 		result += 0
 		result += 0
-	elseif ARGS[1] = 10:
+	elseif ARGS[2] = 10:
 		!	120 < strenbuf <= 130
 		!	120 < strenbuf <= 130
 		result -= 5
 		result -= 5
-	elseif ARGS[1] = 11:
+	elseif ARGS[2] = 11:
 		!	130 < strenbuf <= 140
 		!	130 < strenbuf <= 140
 		result -= 15
 		result -= 15
-	elseif ARGS[1] = 12:
+	elseif ARGS[2] = 12:
 		!	140 < strenbuf <= 150
 		!	140 < strenbuf <= 150
 		result -= 30
 		result -= 30
-	elseif ARGS[1] = 13:
+	elseif ARGS[2] = 13:
 		!	150 < strenbuf <= 160
 		!	150 < strenbuf <= 160
 		result -= 45
 		result -= 45
-	elseif ARGS[1] = 14:
+	elseif ARGS[2] = 14:
 		!	160 < strenbuf <= 170
 		!	160 < strenbuf <= 170
 		result -= 60
 		result -= 60
-	elseif ARGS[1] = 15:
+	elseif ARGS[2] = 15:
 		!	170 < strenbuf <= 180
 		!	170 < strenbuf <= 180
 		result -= 75
 		result -= 75
-	elseif ARGS[1] = 16:
+	elseif ARGS[2] = 16:
 		!	180 < strenbuf <= 190
 		!	180 < strenbuf <= 190
 		result -= 100
 		result -= 100
 	else
 	else
@@ -588,4 +737,36 @@ if $ARGS[0] = 'appearance_bonus_from_class':
 end
 end
 
 
 
 
+
+
+
+if $ARGS[0] = 'cs_get_default_img':
+	if cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_advanced'] = 0:
+		ARGS[1] *= 100
+	end
+
+	$result = func('body_structure', 'body_img_from_class', ARGS[1])
+end
+
+if $ARGS[0] = 'cs_get_default_desc':
+	if cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_advanced'] = 0:
+		ARGS[1] *= 100
+	end
+
+	$result = func('body_structure', 'body_desc_from_class', ARGS[1])
+end
+
+
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                              CLEANUP                              !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+killvar '$DEFAULT_PATH'
+
+
 --- body_structure ---------------------------------
 --- body_structure ---------------------------------

+ 1541 - 0
locations/cheatmenu_bisets.qsrc

@@ -0,0 +1,1541 @@
+# cheatmenu_bisets
+
+$cheatmenu['table_start']	= '<center><table width="80%" cellspacing="0" cellpadding="20" valign="top"><tr><td width="500" cellspacing="0" cellpadding="20" valign="top">'
+$cheatmenu['table_second']	= '</td><td width="500" cellspacing="0" cellpadding="20" valign="top">'
+$cheatmenu['table_end']		= '</td></tr></table></center>'
+
+
+if $ARGS[0] = 'main':
+	*clr & cla
+	gs 'stat'
+	gs 'themes', 'indoors'
+	gs 'obj_din', 'cheattabs'
+
+	'<center><h1>Cheat Menu - Body Image Sets</h1></center>'
+	$cheatmenu['table_start']
+		'<center><b>Body Image Controls</b></center>'
+		*nl
+		if cheatVars['fix_bodyimg'] = 1:
+			$temp_text = 'You are currently using set: '
+			if cheatVars['fix_bi_set'] < 10:
+				$temp_text += $cheatVars['fix_biset_<<cheatVars[''fix_bi_set'']>>_folder']
+			else
+				$temp_text += 'default '
+				if cheatVars['fix_bi_set'] mod 10 = 0:
+					$temp_text += 'low '
+				elseif cheatVars['fix_bi_set'] mod 10 = 1:
+					$temp_text += 'mid '
+				elseif cheatVars['fix_bi_set'] mod 10 = 2:
+					$temp_text += 'high '
+				end
+
+				if cheatVars['fix_bi_set'] / 10 = 19:
+					$temp_text += 'strength'
+				else
+					$temp_text += func('body_structure', 'body_desc_from_class', (cheatVars['fix_bi_set'] / 10 mod 10) * 100)
+				end
+			end
+			'<<$temp_text>>'
+			killvar '$temp_text'
+		else
+			'You are currently not using a fixed set.'
+		end
+		*nl
+		'These are the default body image sets:'
+		*nl
+		func('cheatmenu_bisets', 'get_default_bi_table')
+		*nl
+		*nl
+		'<center><b>Custom Image Sets</b></center>'
+		temp_cm_bi_flag = 0
+		gs 'cheatmenu_bisets', 'custom_folder_display', 0
+		gs 'cheatmenu_bisets', 'custom_folder_display', 1
+		gs 'cheatmenu_bisets', 'custom_folder_display', 2
+		gs 'cheatmenu_bisets', 'custom_folder_display', 3
+		gs 'cheatmenu_bisets', 'custom_folder_display', 4
+		gs 'cheatmenu_bisets', 'custom_folder_display', 5
+		gs 'cheatmenu_bisets', 'custom_folder_display', 6
+		gs 'cheatmenu_bisets', 'custom_folder_display', 7
+		gs 'cheatmenu_bisets', 'custom_folder_display', 8
+		gs 'cheatmenu_bisets', 'custom_folder_display', 9
+
+		if temp_cm_bi_flag < 10:
+			*nl
+			'<a href="exec: gs ''cheatmenu_bisets'', ''add_set''"><b>Add new set</b></a>'
+			'<a href="exec: gs ''cheatmenu_bisets'', ''import_set''"><b>Import new set</b></a>'
+		end
+		killvar 'temp_cm_bi_flag'
+
+	$cheatmenu['table_end']
+
+	act 'How to: mod edition': gs 'cheatmenu_bisets', 'mods_how_to'
+end
+
+if $ARGS[0] = 'get_default_bi_table':
+	$temp_table = '<table cellpadding="25" cellspacing="0">'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td></td>'
+	$temp_table +=		'<td></td>'
+	$temp_table +=		'<th colspan=3><b>Strength</b></th>'
+	$temp_table +=	'</tr>'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<td></td>'
+	$temp_table +=		'<th><a href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'', 199 & gs ''cheatmenu_bisets'', ''main''"><b>RESET</b></a></th>'
+	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
+	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 0:
+		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'', 190 & gs ''cheatmenu_bisets'', ''main''"><b>Low</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gs ''cheatmenu_bisets'', ''lock_img_set'', 190 & gs ''cheatmenu_bisets'', ''main''"><b>Low</b></a>'
+	end
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
+	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 1:
+		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'', 191 & gs ''cheatmenu_bisets'', ''main''"><b>Mid</b></a>'
+	else
+		$temp_table +=		'<a href="exec: gs ''cheatmenu_bisets'', ''lock_img_set'', 191 & gs ''cheatmenu_bisets'', ''main''"><b>Mid</b></a>'
+	end
+	$temp_table +=		'</th>'
+	$temp_table +=		'<th valign="bottom" style="border-bottom: 1px solid black">'
+	if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] mod 10 = 2:
+		$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'', 192 & gs ''cheatmenu_bisets'', ''main''"><b>High</b></a></th>'
+	else
+		$temp_table +=		'<a href="exec: gs ''cheatmenu_bisets'', ''lock_img_set'', 192 & gs ''cheatmenu_bisets'', ''main''"><b>High</b></a></th>'
+	end
+	$temp_table +=		'</th>'
+	$temp_table +=	'</tr>'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<th rowspan=9><b>BMI</b></th>'
+	temp_cmd_i = 0
+	:default_table_loop
+		if temp_cmd_i ! 0: $temp_table +=	'<tr>'
+		$temp_table +=		'<th align="right" style="border-right: 1px solid black">'
+		if cheatVars['fix_bi_set'] > 10 and cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i:
+			$temp_table +=		'<a style="color:#00FF00" href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'', 1<<temp_cmd_i>>9 & gs ''cheatmenu_bisets'', ''main''"><b><<func(''body_structure'', ''body_desc_from_class'', temp_cmd_i * 100)>></a></b>'
+		else
+			$temp_table +=		'<a href="exec: gs ''cheatmenu_bisets'', ''lock_img_set'', 1<<temp_cmd_i>>9 & gs ''cheatmenu_bisets'', ''main''"><b><<func(''body_structure'', ''body_desc_from_class'', temp_cmd_i * 100)>></b></a>'
+		end
+		$temp_table +=		'</th>'
+		$temp_table +=		'<td align="center" valign="center">'
+		temp_cmd_colorflag = 0
+		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 0 or cheatVars['fix_bi_set'] mod 10 = 9):
+			temp_cmd_colorflag = 1
+		end
+		$temp_table +=			'<<func(''cheatmenu_bisets'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 2, temp_cmd_colorflag)>>'
+		$temp_table +=		'</td>'
+		$temp_table +=		'<td align="center" valign="center">'
+		temp_cmd_colorflag = 0
+		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 1 or cheatVars['fix_bi_set'] mod 10 = 9):
+			temp_cmd_colorflag = 1
+		end
+		$temp_table +=			'<<func(''cheatmenu_bisets'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 6, temp_cmd_colorflag)>>'
+		$temp_table +=		'</td>'
+		$temp_table +=		'<td align="center" valign="center">'
+		temp_cmd_colorflag = 0
+		if cheatVars['fix_bi_set'] > 10 and (cheatVars['fix_bi_set'] / 10 mod 10 = temp_cmd_i or cheatVars['fix_bi_set'] / 10 mod 10 = 9) and (cheatVars['fix_bi_set'] mod 10 = 2 or cheatVars['fix_bi_set'] mod 10 = 9):
+			temp_cmd_colorflag = 1
+		end
+		$temp_table +=			'<<func(''cheatmenu_bisets'', ''get_bodyimg_desc_link'', temp_cmd_i * 100 + 8, temp_cmd_colorflag)>>'
+		$temp_table +=		'</td>'
+		$temp_table +=	'</tr>'
+		temp_cmd_i += 1
+	if temp_cmd_i < 9: jump 'default_table_loop'
+
+	$temp_table += '</table>'
+
+	$result = $temp_table
+	killvar '$temp_table'
+	killvar 'temp_cmd_colorflag'
+end
+
+
+
+if $ARGS[0] = 'lock_img_set':
+	cheatVars['fix_bodyimg'] = 1
+	if ARGS[1] < 10:
+		cheatVars['fix_bi_set'] = ARGS[1]
+	else
+		ARGS[1] = ARGS[1] mod 100
+		if cheatVars['fix_bi_set'] < 10: cheatVars['fix_bi_set'] = 199
+
+		if ARGS[1] mod 10 ! 9:
+			cheatVars['fix_bi_set'] = (cheatVars['fix_bi_set'] / 10) * 10 + (ARGS[1] mod 10)
+		else
+			cheatVars['fix_bi_set'] = 100 + (ARGS[1] / 10) * 10 + (cheatVars['fix_bi_set'] mod 10)
+		end
+	end
+	gs 'body', 'UpdateBodyImage'
+end
+
+if $ARGS[0] = 'unlock_img_set':
+	if cheatVars['fix_bi_set'] < 10:
+		cheatVars['fix_bodyimg'] = 0
+		cheatVars['fix_bi_set'] = 0
+	else
+		ARGS[1] = ARGS[1] mod 100
+		if ARGS[1] mod 10 = 9: cheatVars['fix_bi_set'] = 190 + (cheatVars['fix_bi_set'] mod 10)
+		if ARGS[1] / 10 = 9: cheatVars['fix_bi_set'] = (cheatVars['fix_bi_set'] / 10) * 10 + 9
+
+		if cheatVars['fix_bi_set'] = 199:
+			cheatVars['fix_bodyimg'] = 0
+			cheatVars['fix_bi_set'] = 0
+		end
+	end
+	gs 'body', 'UpdateBodyImage'
+end
+
+
+if $ARGS[0] = 'get_bodyimg_desc_link':
+	if ARGS[2] = 0:
+		$result = '<a href="exec: view ''' + func('body_structure', 'body_img_from_class', ARGS[1], 0) + '''">' + func('body_structure', 'body_desc_from_class', ARGS[1]) + '</a>'
+	else
+		$result = '<i><a style="color:#00FF00" href="exec: view ''' + func('body_structure', 'body_img_from_class', ARGS[1], 0) + '''">' + func('body_structure', 'body_desc_from_class', ARGS[1]) + '</a></i>'
+	end
+
+end
+
+
+if $ARGS[0] = 'custom_folder_display':
+	if $cheatVars['fix_biset_<<ARGS[1]>>_folder'] ! '':
+		if temp_cm_bi_flag = 0:
+			*nl
+			'You may edit aspects of a custom image set by clicking on their folder names below.'
+		end
+		*nl
+		$cs_display_text = $cheatVars['fix_biset_<<ARGS[1]>>_name']
+		if $cs_display_text = '':
+			$cs_display_text = $cheatVars['fix_biset_<<ARGS[1]>>_folder']
+		end
+		if cheatVars['fix_bodyimg'] = 1 and cheatVars['fix_bi_set'] = ARGS[1]:
+			'<i><b><a style="color:#00FF00" href="exec: gs ''cheatmenu_bisets'', ''cs_main'', <<ARGS[1]>>"><<$cs_display_text>></a></b></i>'
+		else
+			'<a href="exec: gs ''cheatmenu_bisets'', ''cs_main'', <<ARGS[1]>>"><b><<$cs_display_text>></b></a>'
+		end
+		killvar '$cs_display_text'
+
+		temp_cm_bi_flag += 1
+	end
+end
+
+
+if $ARGS[0] = 'cs_main':
+	*clr & cla
+	'<center><h1>Cheat menu</h1></center>'
+	*nl
+	'<center><b>Body Image Set Display</b></center>'
+
+	$cheatmenu['table_start']
+		act 'Go Back': gs 'cheatmenu_bisets', 'main'
+		'<a href="exec: gs ''cheatmenu_bisets'', ''main''"><b>Go Back</b></a>'
+		*nl
+		if cheatVars['fix_bodyimg'] = 1 and ARGS[1] = cheatVars['fix_bi_set']:
+			'This is the currently locked set.'
+			'<a href="exec: gs ''cheatmenu_bisets'', ''unlock_img_set'' & gs ''cheatmenu_bisets'', ''cs_main'', <<ARGS[1]>>"><b>Clear the lock.</b></a>'
+		else
+			'<a href="exec: gs ''cheatmenu_bisets'', ''lock_img_set'', <<ARGS[1]>> & gs ''cheatmenu_bisets'', ''cs_main'', <<ARGS[1]>>"><b>Use this set only.</b></a>'
+		end
+		*nl
+		dynamic "
+			act 'Export set': gs 'cheatmenu_bisets', 'cs_export', <<ARGS[1]>>
+		"
+		'<a href="exec: gs ''cheatmenu_bisets'', ''cs_export'', <<ARGS[1]>>">Export image set.</a>'
+		*nl
+
+		if cheatVars['fix_biset_<<ARGS[1]>>_advanced'] = 0:
+			gs 'cheatmenu_bisets', 'cs_main_simple', ARGS[1]
+		else
+			gs 'cheatmenu_bisets', 'cs_main_advanced', ARGS[1]
+		end
+
+		'<a href="exec: gs ''cheatmenu_bisets'', ''cs_delete_set'', <<ARGS[1]>>">Delete this set.</a>'
+	$cheatmenu['table_end']
+end
+
+if $ARGS[0] = 'cs_export':
+	*clr & cla
+	cmbs_exp_set = ARGS[1]
+
+	$cheatmenu['table_start']
+		dynamic "
+			act 'Go Back': gs 'cheatmenu_bisets', 'cs_main', <<cmbs_exp_set>>
+		"
+
+		$temp_export_text = "fix_bod_set['advanced'] = <<cheatVars['fix_biset_<<cmbs_exp_set>>_advanced']>>
+		$fix_bod_set['folder'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_folder']>>'
+		"
+		if $cheatVars['fix_biset_<<cmbs_exp_set>>_name'] ! '':
+			$temp_export_text += "$fix_bod_set['name'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_name']>>'
+			"
+		end
+		if $cheatVars['fix_biset_<<cmbs_exp_set>>_path'] ! '':
+			$temp_export_text += "$fix_bod_set['path'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_path']>>'
+			"
+		end
+
+
+		!! classic sets
+		cmd_exp_i = 0
+		:cs_export_simple_loop
+			if $cheatVars['fix_biset_<<cmbs_exp_set>>_img_<<cmd_exp_i>>'] ! '':
+				$temp_export_text += "$fix_bod_set['img_<<cmd_exp_i>>'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_img_<<cmd_exp_i>>']>>'
+				"
+			end
+			if $cheatVars['fix_biset_<<cmbs_exp_set>>_desc_<<cmd_exp_i>>'] ! '':
+				$temp_export_text += "$fix_bod_set['desc_<<cmd_exp_i>>'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_desc_<<cmd_exp_i>>']>>'
+				"
+			end
+			cmd_exp_i += 1
+		if cmd_exp_i < 9: jump 'cs_export_simple_loop'
+
+
+		!! Advanced sets
+		if cheatVars['fix_biset_<<cmbs_exp_set>>_imgnums_0000'] > 0:
+			cmd_exp_bmi = 0
+			:cs_export_adv_bmi_loop
+				cmd_exp_stren = 0
+				:cs_export_adv_str_loop
+					$cmd_class_str = $mid(10000 + cmd_exp_bmi * 100 + cmd_exp_stren, 2)
+
+					if $cheatVars['fix_biset_<<cmbs_exp_set>>_desc_<<$cmd_class_str>>'] ! '':
+						$temp_export_text += "$fix_bod_set['desc_<<$cmd_class_str>>'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_desc_<<$cmd_class_str>>']>>'
+						"
+					end
+					if $cheatVars['fix_biset_<<cmbs_exp_set>>_path_<<$cmd_class_str>>'] ! '':
+						$temp_export_text += "$fix_bod_set['path_<<$cmd_class_str>>'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_path_<<$cmd_class_str>>']>>'
+						"
+					end
+					cmd_imgnums = cheatVars['fix_biset_<<cmbs_exp_set>>_imgnums_<<$cmd_class_str>>']
+					$temp_export_text += "fix_bod_set['imgnums_<<$cmd_class_str>>'] = <<cmd_imgnums>>
+					"
+					cmd_exp_i = 0
+					:cs_export_adv_inner_loop
+						if $cheatVars['fix_biset_<<cmbs_exp_set>>_img_<<$cmd_class_str>>_<<cmd_exp_i>>'] ! '':
+							$temp_export_text += "$fix_bod_set['img_<<$cmd_class_str>>_<<cmd_exp_i>>'] = '<<$cheatVars['fix_biset_<<cmbs_exp_set>>_img_<<$cmd_class_str>>_<<cmd_exp_i>>']>>'
+							"
+						end
+
+						cmd_exp_i += 1
+					if cmd_exp_i < cmd_imgnums: jump 'cs_export_adv_inner_loop'
+
+					cmd_exp_stren += 1
+				if cmd_exp_stren < 18: jump 'cs_export_adv_str_loop'
+				cmd_exp_bmi += 1
+			if cmd_exp_bmi < 9: jump 'cs_export_adv_bmi_loop'
+		end
+
+		$temp_export_text = replace($temp_export_text, "	", "")
+		'<<$temp_export_text>>'
+		killvar '$temp_export_text'
+	$cheatmenu['table_end']
+
+	killvar 'cmbs_exp_set'
+end
+
+
+if $ARGS[0] = 'cs_main_simple':
+	cmbs_set = ARGS[1]
+
+	'<a href="exec: gs ''cheatmenu_bisets'', ''cs_set_advanced'', <<cmbs_set>>"><b>Switch to "advanced"</b></a>'
+	*nl
+	'"Edit image" allows you to set the image file name (only use .jpg images)'
+	'"Edit description" allows you to set the description of the image'
+	*nl
+	'Folder: <<$cheatVars[''fix_biset_<<cmbs_set>>_folder'']>>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_folder'', <<cmbs_set>>">Change Folder</a>'
+	*nl
+	'Descriptors: (Displayed as "You are:")'
+
+	$temp_table = '<table cellpadding = "10">'
+	$temp_table +=	'<tr>'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th>Currently using</th>'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th></th>'
+	$temp_table +=	'</tr>'
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 0)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 1)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 2)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 3)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 4)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 5)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 6)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 7)
+	$temp_table +=	func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_simple', cmbs_set, 8)
+	$temp_table += '</table>'
+
+	'<<$temp_table>>'
+	killvar '$temp_table'
+	killvar 'cmbs_set'
+end
+
+if $ARGS[0] = 'get_custom_bodyimg_desc_link_simple':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+
+	$temp_cmd_img_name = $cheatVars['fix_biset_<<temp_set>>_img_<<temp_class>>']
+	$temp_cmd_desc = $cheatVars['fix_biset_<<temp_set>>_desc_<<temp_class>>']
+
+	if $temp_cmd_img_name = '':
+		$temp_cmd_image = func('cheatmenu_bisets', 'cs_get_default_img', temp_set, temp_class)
+		$temp_cmd_img_addon = ''
+		$temp_cmd_img_addon2 = ''
+	else
+		$temp_base_folder = 'images/pc/body/shape/' + $cheatVars['fix_biset_<<temp_set>>_folder']
+		$temp_cmd_image = $temp_base_folder + '/' + $temp_cmd_img_name + '.jpg'
+		$temp_cmd_img_addon = $temp_cmd_img_name + '.jpg'
+		killvar '$temp_base_folder'
+	end
+
+	if $temp_cmd_desc = '':
+		$temp_cmd_desc = func('cheatmenu_bisets', 'cs_get_default_desc', temp_set, temp_class)
+	end
+
+	$result =	'<tr>'
+	$result +=		'<td><<$temp_cmd_desc>></td>'
+	if $temp_cmd_img_addon = '':
+		$result +=		'<td><a href="exec: view ''<<$temp_cmd_image>>''">Default image</a></td>'
+	else
+		$result +=		'<td><a href="exec: view ''<<$temp_cmd_image>>''"><<$temp_cmd_img_addon>></a> (<a href="exec: gs ''cheatmenu_bisets'', ''cs_set_default_img'', <<temp_set>>, <<temp_class>>">Use default image</a>)</td>'
+	end
+	$result +=		'<td><a href="exec: view ''<<$temp_cmd_image>>''"><<$temp_cmd_img_addon>></a></td>'
+	$result +=		'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_change_img'', <<temp_set>>, <<temp_class>>">Edit image</a></td>'
+	$result +=		'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_change_desc'', <<temp_set>>, <<temp_class>>">Edit description</a></td>'
+	$result +=	'</tr>'
+
+	killvar '$temp_cmd_image'
+	killvar '$temp_cmd_desc'
+	killvar '$temp_cmd_img_addon'
+	killvar '$temp_cmd_img_name'
+
+	killvar 'temp_set'
+	killvar 'temp_class'
+end
+
+
+
+
+if $ARGS[0] = 'cs_main_advanced':
+	cmbs_set = ARGS[1]
+
+	'<a href="exec: gs ''cheatmenu_bisets'', ''cs_set_simple'', <<cmbs_set>>"><b>Switch to "classic"</b></a>'
+	*nl
+	'"Edit image" allows you to set the image file name (only use .jpg images)'
+	'"Edit description" allows you to set the description of the image'
+	*nl
+	if $cheatVars['fix_biset_<<cmbs_set>>_name'] = '':
+		'Name: <<$cheatVars[''fix_biset_<<cmbs_set>>_folder'']>>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_name'', <<cmbs_set>>">Change Name</a>'
+	else
+		'Name: <<$cheatVars[''fix_biset_<<cmbs_set>>_name'']>>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_name'', <<cmbs_set>>">Change Name</a>'
+	end
+	'Folder: <<$cheatVars[''fix_biset_<<cmbs_set>>_folder'']>>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_folder'', <<cmbs_set>>">Change Folder</a>'
+	if $cheatVars['fix_biset_<<cmbs_set>>_path'] = '':
+		'Path: images/pc/body/shape    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_path'', <<cmbs_set>>">Set Path</a>'
+	else
+		'Path: <<$cheatVars[''fix_biset_<<cmbs_set>>_path'']>>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_path'', <<cmbs_set>>">Change Path</a>'
+	end
+	*nl
+
+	!! ---- MAIN BODY IMAGE CLASSES
+	$temp_table = '<table cellpadding="10">'
+	$temp_table +=	'<tr align="center">'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th colspan=9>BMI</th>'
+	$temp_table +=	'</tr><tr align="center">'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th></th>'
+
+	$temp_bmi_text[0] = '00-15'
+	$temp_bmi_text[1] = '16-18'
+	$temp_bmi_text[2] = '19-21'
+	$temp_bmi_text[3] = '22-24'
+	$temp_bmi_text[4] = '25-29'
+	$temp_bmi_text[5] = '30-34'
+	$temp_bmi_text[6] = '35-39'
+	$temp_bmi_text[7] = '40-44'
+	$temp_bmi_text[8] = '45-99'
+
+	cmd_adv_bmi_i = 0
+	:cs_copy_class_header_loop
+		$temp_table +=	'<th style="white-space: nowrap"><<$temp_bmi_text[cmd_adv_bmi_i]>></th>'
+		cmd_adv_bmi_i += 1
+	if cmd_adv_bmi_i < 9: jump 'cs_copy_class_header_loop'
+
+	$temp_table +=	'</tr><tr align="center">'
+	!$temp_table +=		'<th rowspan=18 style="transform:rotateZ(270deg)">Strength</th>'
+	$temp_table +=		'<th rowspan=18>Strength</th>'
+
+
+	$temp_str_text[0]  = '000-005'
+	$temp_str_text[1]  = '006-010'
+	$temp_str_text[2]  = '011-015'
+	$temp_str_text[3]  = '016-025'
+	$temp_str_text[4]  = '026-035'
+	$temp_str_text[5]  = '036-050'
+	$temp_str_text[6]  = '051-070'
+	$temp_str_text[7]  = '071-100'
+	$temp_str_text[8]  = '101-110'
+	$temp_str_text[9]  = '111-120'
+	$temp_str_text[10] = '121-130'
+	$temp_str_text[11] = '131-140'
+	$temp_str_text[12] = '141-150'
+	$temp_str_text[13] = '151-160'
+	$temp_str_text[14] = '161-170'
+	$temp_str_text[15] = '171-180'
+	$temp_str_text[16] = '181-190'
+	$temp_str_text[17] = '191-200'
+
+
+	cmd_adv_str_i = 0
+	:cs_main_adv_str_loop
+		if cmd_adv_str_i ! 0: $temp_table += '<tr align="center">'
+		$temp_table +=		'<th style="white-space: nowrap"><<$temp_str_text[cmd_adv_str_i]>></th>'
+
+		cmd_adv_bmi_i = 0
+		:cs_main_adv_bmi_loop
+			cmbs_class = cmd_adv_bmi_i * 100 + cmd_adv_str_i
+			$temp_table +=	'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_main_advanced2'', <<cmbs_set>>, <<cmbs_class>>"><<$mid(1000 + cmbs_class, 2)>></a></td>'
+			cmd_adv_bmi_i += 1
+		if cmd_adv_bmi_i < 9: jump 'cs_main_adv_bmi_loop'
+
+		$temp_table +=	'</tr>'
+		cmd_adv_str_i += 1
+	if cmd_adv_str_i < 18: jump 'cs_main_adv_str_loop'
+	killvar 'cmd_adv_str_i'
+	killvar 'cmd_adv_bmi_i'
+	killvar 'cmbs_class'
+
+	$temp_table += '</table>'
+	'<<$temp_table>>'
+	killvar '$temp_table'
+	killvar '$temp_str_text'
+	!! ---- END MAIN BODY IMAGE CLASSES
+
+	!{
+	*nl
+	*nl
+	!! ---- PREG IMAGES
+	num_pregsets = cheatVars['fix_biset_<<cmbs_set>>_pregsets']
+	if num_pregsets > 0:
+		cmd_pregset_i = 0
+		:cs_main_adv_preg_loop
+			func('cheatmenu_bisets', 'get_pregset_link', cmbs_set, cmd_pregset_i)
+			cmd_pregset_i += 1
+		if cmd_pregset_i < num_pregsets: jump 'cs_main_adv_preg_loop'
+		*nl
+	end
+	killvar 'num_pregsets'
+
+	'<a href="exec: gs ''cheatmenu_bisets'', ''add_pregset'', <<cmbs_set>>">Add new pregnant image set</a>'
+	*nl
+	*nl
+	}
+	killvar 'cmbs_set'
+end
+
+if $ARGS[0] = 'cs_main_advanced2':
+	*clr & cla
+	cmbs_set = ARGS[1]
+	cmbs_class = ARGS[2]
+	$cmdbs_class_str = $mid(10000 + ARGS[2], 2)
+
+	'<center><h1>Cheat menu</h1></center>'
+	*nl
+	'<center><b>Body Image Set Display - class=<<$mid(1000 + ARGS[2], 2)>></b></center>'
+
+	$cheatmenu['table_start']
+		dynamic "
+			act 'Go Back': gs 'cheatmenu_bisets', 'cs_main', <<cmbs_set>>
+			'<a href=""exec: gs ''cheatmenu_bisets'', ''cs_main'', <<cmbs_set>>""><b>Go Back</b></a>'
+			act 'Copy to other class':
+				cmd_copy_class['set'] = <<cmbs_set>>
+				cmd_copy_class['base'] = <<cmbs_class>>
+				gs 'cheatmenu_bisets', 'cs_copy_class_menu'
+			end
+		"
+		*nl
+		*nl
+		'Click links to edit'
+		*nl
+		$temp_cmd_desc = $cheatVars['fix_biset_<<cmbs_set>>_desc_<<$cmdbs_class_str>>']
+		if $temp_cmd_desc = '':
+			$temp_cmd_desc = func('cheatmenu_bisets', 'cs_get_default_desc', cmbs_set, cmbs_class)
+			'You are: <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_desc_adv'', <<cmbs_set>>, <<cmbs_class>>"><<$temp_cmd_desc>></a>'
+		else
+			'You are: <a href="exec: gs ''cheatmenu_bisets'', ''cs_change_desc_adv'', <<cmbs_set>>, <<cmbs_class>>"><<$temp_cmd_desc>></a>    <a href="exec: gs ''cheatmenu_bisets'', ''cs_set_default_desc_adv'', <<ARGS[1]>>, <<ARGS[2]>>">Use default description</a>'
+		end
+		killvar '$temp_cmd_desc'
+		*nl
+
+		$temp_cmd_path = $cheatVars['fix_biset_<<cmbs_set>>_path']
+		if $temp_cmd_path = '':
+			$temp_cmd_path = 'images/pc/body/shape'
+		end
+		$temp_cmd_path += '/' + $cheatVars['fix_biset_<<cmbs_set>>_folder']
+
+		$temp_cmd_subpath = $cheatVars['fix_biset_<<cmbs_set>>_path_<<$cmdbs_class_str>>']
+		if $temp_cmd_subpath = '':
+			$temp_cmd_subpath = func('cheatmenu_bisets', 'cs_get_default_subpath', cmbs_set, cmbs_class)
+			$temp_cmd_subpath = $mid($temp_cmd_subpath, 22)
+		end
+		'Path: <<$temp_cmd_path>>/<a href="exec: gs ''cheatmenu_bisets'', ''cs_change_subpath'', <<cmbs_set>>, <<cmbs_class>>"><<$temp_cmd_subpath>></a>'
+		killvar '$temp_cmd_subpath'
+		killvar 'temp_cmd_path'
+		*nl
+		*nl
+
+		$temp_table =	'<table width=80% align="center">'
+		$temp_table +=		'<tr>'
+		$temp_table +=			'<th>Currently using</th>'
+		$temp_table +=			'<th></th>'
+		$temp_table +=			'<th></th>'
+		$temp_table +=		'</tr>'
+
+		cmd_adv_i = 0
+		:cs_main_adv2_loop
+			$temp_table += func('cheatmenu_bisets', 'get_custom_bodyimg_desc_link_advanced', cmbs_set, cmbs_class, cmd_adv_i)
+
+			cmd_adv_i += 1
+		if cmd_adv_i < cheatVars['fix_biset_<<cmbs_set>>_imgnums_<<$cmdbs_class_str>>']: jump 'cs_main_adv2_loop'
+
+		$temp_table +=		'<tr>'
+		$temp_table +=			'<td></td>'
+		$temp_table +=			'<td></td>'
+		$temp_table +=			'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_add_img'', <<cmbs_set>>, <<cmbs_class>>">Add image</a></td>'
+		$temp_table +=		'</tr>'
+
+
+		$temp_table += '</table>'
+		'<<$temp_table>>'
+		killvar '$temp_table'
+
+
+	$cheatmenu['table_end']
+
+
+	killvar 'cmbs_set'
+	killvar 'cmbs_class'
+	killvar '$cmdbs_class_str'
+end
+
+
+if $ARGS[0] = 'get_custom_bodyimg_desc_link_advanced':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	temp_img_num = ARGS[3]
+	$temp_bs_class_str = $mid(10000 + ARGS[2], 2)
+	$temp_cmd_img_name = $cheatVars['fix_biset_<<temp_set>>_img_<<$temp_bs_class_str>>_<<temp_img_num>>']
+	$temp_cmd_desc = $cheatVars['fix_biset_<<temp_set>>_desc_<<$temp_bs_class_str>>']
+
+	if $temp_cmd_img_name = '':
+		$temp_cmd_image = func('cheatmenu_bisets', 'cs_get_default_img', temp_set, temp_class)
+		$temp_cmd_img_addon = ''
+	else
+		$temp_base_folder = $cheatVars['fix_biset_<<temp_set>>_path']
+		if $temp_base_folder = '':
+			$temp_base_folder = 'images/pc/body/shape'
+		end
+		$temp_base_folder += '/' + $cheatVars['fix_biset_<<temp_set>>_folder']
+		if $cheatVars['fix_biset_<<temp_set>>_path_<<$temp_bs_class_str>>'] ! '':
+			$temp_base_folder += '/' + $cheatVars['fix_biset_<<temp_set>>_path_<<$temp_bs_class_str>>']
+		end
+		$temp_cmd_image = $temp_base_folder + '/' + $temp_cmd_img_name + '.jpg'
+		$temp_cmd_img_addon = $temp_cmd_img_name + '.jpg'
+		killvar '$temp_base_folder'
+	end
+
+	if $temp_cmd_desc = '':
+		$temp_cmd_desc = func('cheatmenu_bisets', 'cs_get_default_desc', temp_set, temp_class)
+	end
+
+	$result =	'<tr>'
+	if $temp_cmd_img_addon = '':
+		$result +=		'<td><a href="exec: view ''<<$temp_cmd_image>>''">Default image</a></td>'
+	else
+		$result +=		'<td><a href="exec: view ''<<$temp_cmd_image>>''"><<$temp_cmd_img_addon>></a> (<a href="exec: gs ''cheatmenu_bisets'', ''cs_set_default_img_adv'', <<temp_set>>, <<temp_class>>, <<temp_img_num>>">Use default image</a>)</td>'
+	end
+	$result +=		'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_change_img_adv'', <<temp_set>>, <<temp_class>>, <<temp_img_num>>">Edit image</a></td>'
+	if cheatVars['fix_biset_<<temp_set>>_imgnums_<<temp_class>>'] = 1:
+		$result +=	'<td></td>'
+	else
+		$result +=	'<td><a href="exec: gs ''cheatmenu_bisets'', ''cs_remove_img'', <<temp_set>>, <<temp_class>>, <<temp_img_num>>">Remove image</a></td>'
+	end
+	$result +=	'</tr>'
+
+	killvar '$temp_cmd_image'
+	killvar '$temp_cmd_desc'
+	killvar '$temp_cmd_img_addon'
+	killvar '$temp_cmd_img_name'
+	killvar '$temp_bs_class_str'
+	killvar 'temp_set'
+	killvar 'temp_class'
+	killvar 'temp_img_num'
+end
+
+if $ARGS[0] = 'add_pregset':
+	temp_set = ARGS[1]
+	cheatVars['fix_biset_<<temp_set>>_pregsets'] += 1
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+end
+
+
+if $ARGS[0] = 'get_pregset_link':
+	*clr & cla
+	temp_set = ARGS[1]
+	preg_set = ARGS[2]
+
+	'<center><h1>Cheat menu</h1></center>'
+	*nl
+	'<center><b>Pregnancy Image Set Display - Set = <<preg_set>></b></center>'
+
+	$cheatmenu['table_start']
+		act 'Go Back': gs 'cheatmenu_bisets', 'cs_main', temp_set
+		'<a href="exec: gs ''cheatmenu_bisets'', ''cs_main'', temp_set"><b>Go Back</b></a>'
+		*nl
+
+		$temp_cmd_path = $cheatVars['fix_biset_<<temp_set>>_path']
+		if $temp_cmd_path = '':
+			$temp_cmd_path = 'images/pc/body/shape'
+		end
+		$temp_cmd_path += '/' + $cheatVars['fix_biset_<<cmbs_set>>_folder']
+
+		$temp_cmd_subpath = $cheatVars['fix_biset_<<cmbs_set>>_pregpath_<<preg_set>>']
+		if $temp_cmd_subpath = '':
+			$temp_cmd_subpath = 'preg/0'
+		end
+		'Path: <<$temp_cmd_path>>/<a href="exec: gs ''cheatmenu_bisets'', ''cs_change_preg_subpath'', <<temp_set>>, <<preg_set>>"><<$temp_cmd_subpath>></a>'
+		killvar '$temp_cmd_subpath'
+		killvar 'temp_cmd_path'
+		*nl
+		*nl
+
+		$temp_table =	'<table width=80% align="center">'
+		$temp_table +=		'<tr>'
+		$temp_table +=			'<th>Currently using</th>'
+		$temp_table +=			'<th></th>'
+		$temp_table +=			'<th></th>'
+		$temp_table +=		'</tr>'
+
+		cmd_preg_img = 0
+		:pregset_img_loop
+			$temp_table += func('cheatmenu_bisets', 'get_custom_pregimg', temp_set, preg_set, cmd_preg_img)
+			cmd_preg_img += 1
+		if cmd_preg_img < 9: jump 'pregset_img_loop'
+		killvar 'cmd_preg_img'
+
+	$cheatmenu['table_end']
+
+	killvar 'temp_set'
+	killvar 'preg_set'
+end
+
+if $ARGS[0] = 'get_custom_pregimg':
+	temp_set = ARGS[1]
+	preg_set = ARGS[2]
+	temp_img = ARGS[3]
+
+	$temp_cmd_img_name = $cheatVars['fix_biset_<<temp_set>>_pregimg_<<preg_set>>_<<temp_img>>']
+	$temp_cmd_desc = $cheatVars['fix_biset_<<temp_set>>_desc_<<preg_set>>']
+
+	if $temp_cmd_img_name = '':
+		$temp_cmd_image = func('cheatmenu_bisets', 'cs_get_default_img', temp_set, temp_class)
+		$temp_cmd_img_addon = ''
+	else
+		$temp_base_folder = $cheatVars['fix_biset_<<temp_set>>_path']
+		if $temp_base_folder = '':
+			$temp_base_folder = 'images/pc/body/shape'
+		end
+		$temp_base_folder += '/' + $cheatVars['fix_biset_<<temp_set>>_folder']
+		if $cheatVars['fix_biset_<<temp_set>>_path_<<$temp_bs_class_str>>'] ! '':
+			$temp_base_folder += '/' + $cheatVars['fix_biset_<<temp_set>>_path_<<$temp_bs_class_str>>']
+		end
+		$temp_cmd_image = $temp_base_folder + '/' + $temp_cmd_img_name + '.jpg'
+		$temp_cmd_img_addon = $temp_cmd_img_name + '.jpg'
+		killvar '$temp_base_folder'
+	end
+
+	killvar 'temp_set'
+	killvar 'preg_set'
+	killvar 'temp_img'
+end
+
+
+
+if $ARGS[0] = 'cs_copy_class_menu':
+	*clr & cla
+	act 'Cancel':
+		gs 'cheatmenu_bisets', 'cs_main_advanced2', cmd_copy_class['set'], cmd_copy_class['base']
+		killvar 'cmd_copy_class'
+	end
+
+	$temp_table = '<table cellpadding="10">'
+	$temp_table +=	'<tr align="center">'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th colspan=9>BMI</th>'
+	$temp_table +=	'</tr><tr align="center">'
+	$temp_table +=		'<th></th>'
+	$temp_table +=		'<th></th>'
+
+	$temp_bmi_text[0] = '00-15'
+	$temp_bmi_text[1] = '16-18'
+	$temp_bmi_text[2] = '19-21'
+	$temp_bmi_text[3] = '22-24'
+	$temp_bmi_text[4] = '25-29'
+	$temp_bmi_text[5] = '30-34'
+	$temp_bmi_text[6] = '35-39'
+	$temp_bmi_text[7] = '40-44'
+	$temp_bmi_text[8] = '45-99'
+
+	cmd_adv_bmi_i = 0
+	:cs_copy_class_header_loop
+		$temp_table +=	'<th style="white-space: nowrap"><b><a href="exec: gs ''cheatmenu_bisets'', ''cs_copy_class_bmi'', <<cmd_adv_bmi_i>>"><<$temp_bmi_text[cmd_adv_bmi_i]>></a></b></th>'
+		cmd_adv_bmi_i += 1
+	if cmd_adv_bmi_i < 9: jump 'cs_copy_class_header_loop'
+
+	$temp_table +=	'</tr><tr align="center">'
+	!$temp_table +=		'<th rowspan=18 style="transform:rotateZ(270deg)">Strength</th>'
+	$temp_table +=		'<th rowspan=18>Strength</th>'
+
+
+	$temp_str_text[0]  = '000-005'
+	$temp_str_text[1]  = '006-010'
+	$temp_str_text[2]  = '011-015'
+	$temp_str_text[3]  = '016-025'
+	$temp_str_text[4]  = '026-035'
+	$temp_str_text[5]  = '036-050'
+	$temp_str_text[6]  = '051-070'
+	$temp_str_text[7]  = '071-100'
+	$temp_str_text[8]  = '101-110'
+	$temp_str_text[9]  = '111-120'
+	$temp_str_text[10] = '121-130'
+	$temp_str_text[11] = '131-140'
+	$temp_str_text[12] = '141-150'
+	$temp_str_text[13] = '151-160'
+	$temp_str_text[14] = '161-170'
+	$temp_str_text[15] = '171-180'
+	$temp_str_text[16] = '181-190'
+	$temp_str_text[17] = '191-200'
+
+	cmd_copy_class['counter'] = 0
+
+	cmd_adv_str_i = 0
+	:cs_copy_class_str_loop
+		if cmd_adv_str_i ! 0: $temp_table += '<tr align="center">'
+		$temp_table +=		'<th style="white-space: nowrap"><b><a href="exec: gs ''cheatmenu_bisets'', ''cs_copy_class_stren'', <<cmd_adv_str_i>>"><<$temp_str_text[cmd_adv_str_i]>></a></b></th>'
+
+		cmd_adv_bmi_i = 0
+		:cs_copy_class_bmi_loop
+			cmbs_class = cmd_adv_bmi_i * 100 + cmd_adv_str_i
+			$cmbs_class_str = $mid(10000 + cmbs_class, 2)
+			if cmd_copy_class['base'] = cmbs_class:
+				$temp_table +=	'<td><<$cmbs_class_str>></td>'
+			elseif cmd_copy_class[$cmbs_class_str] = 1:
+				cmd_copy_class['counter'] += 1
+				$temp_table +=	'<td><i><a style="color:#00FF00" href="exec: cmd_copy_class[''<<$cmbs_class_str>>''] = 0 & gs ''cheatmenu_bisets'', ''cs_copy_class_menu''"><<$cmbs_class_str>></a></i></td>'
+			else
+				$temp_table +=	'<td><a href="exec: cmd_copy_class[''<<$cmbs_class_str>>''] = 1 & gs ''cheatmenu_bisets'', ''cs_copy_class_menu''"><<$cmbs_class_str>></a></td>'
+			end
+			cmd_adv_bmi_i += 1
+		if cmd_adv_bmi_i < 9: jump 'cs_copy_class_bmi_loop'
+
+		$temp_table +=	'</tr>'
+		cmd_adv_str_i += 1
+	if cmd_adv_str_i < 18: jump 'cs_copy_class_str_loop'
+	killvar 'cmd_adv_str_i'
+	killvar 'cmd_adv_bmi_i'
+
+	$temp_table += '</table>'
+	'<<$temp_table>>'
+	killvar '$temp_table'
+	killvar '$temp_str_text'
+
+	killvar 'cmbs_set'
+	killvar 'cmbs_class'
+
+	if cmd_copy_class['counter'] > 0:
+		act 'Reset':
+			temp_set = cmd_copy_class['set']
+			temp_base = cmd_copy_class['base']
+			killvar 'cmd_copy_class'
+			cmd_copy_class['set'] = temp_set
+			cmd_copy_class['base'] = temp_base
+			killvar 'temp_set'
+			killvar 'temp_base'
+			gs 'cheatmenu_bisets', 'cs_copy_class_menu'
+		end
+		act 'Overwrite':
+			gs 'cheatmenu_bisets', 'cs_overwrite_classes_base'
+		end
+ 	end
+end
+
+if $ARGS[0] = 'cs_copy_class_bmi':
+	temp_copyclass['bmi'] = ARGS[1]
+
+	temp_copyclass['counter'] = 0
+	temp_copyclass['stren'] = 0
+	:cs_copy_class_stren_loop2
+		temp_copyclass['class'] = temp_copyclass['bmi'] * 100 + temp_copyclass['stren']
+		$temp_copyclass['class_str'] = $mid(10000 + temp_copyclass['class'], 2)
+		if cmd_copy_class[$temp_copyclass['class_str']] = 1 or cmd_copy_class['base'] = temp_copyclass['class']:
+			temp_copyclass['counter'] += 1
+		end
+		temp_copyclass['stren'] += 1
+	if temp_copyclass['stren'] < 18: jump 'cs_copy_class_stren_loop2'
+
+	if temp_copyclass['counter'] < 18:
+		temp_copyclass['result'] = 1
+	else
+		temp_copyclass['result'] = 0
+	end
+
+	temp_copyclass['stren'] = 0
+	:cs_copy_class_stren_loop3
+		temp_copyclass['class'] = temp_copyclass['bmi'] * 100 + temp_copyclass['stren']
+		$temp_copyclass['class_str'] = $mid(10000 + temp_copyclass['class'], 2)
+		if cmd_copy_class['base'] ! temp_copyclass['class']:
+			cmd_copy_class[$temp_copyclass['class_str']] = temp_copyclass['result']
+		end
+		temp_copyclass['stren'] += 1
+	if temp_copyclass['stren'] < 18: jump 'cs_copy_class_stren_loop3'
+
+	killvar 'temp_copyclass'
+
+	gs 'cheatmenu_bisets', 'cs_copy_class_menu'
+end
+
+if $ARGS[0] = 'cs_copy_class_stren':
+	temp_copyclass['stren'] = ARGS[1]
+
+	temp_copyclass['counter'] = 0
+	temp_copyclass['bmi'] = 0
+	:cs_copy_class_bmi_loop2
+		temp_copyclass['class'] = temp_copyclass['bmi'] * 100 + temp_copyclass['stren']
+		$temp_copyclass['class_str'] = $mid(10000 + temp_copyclass['class'], 2)
+		if cmd_copy_class[$temp_copyclass['class_str']] = 1 or cmd_copy_class['base'] = temp_copyclass['class']:
+			temp_copyclass['counter'] += 1
+		end
+		temp_copyclass['bmi'] += 1
+	if temp_copyclass['bmi'] < 9: jump 'cs_copy_class_bmi_loop2'
+
+	if temp_copyclass['counter'] < 9:
+		temp_copyclass['result'] = 1
+	else
+		temp_copyclass['result'] = 0
+	end
+
+	temp_copyclass['bmi'] = 0
+	:cs_copy_class_bmi_loop3
+		temp_copyclass['class'] = temp_copyclass['bmi'] * 100 + temp_copyclass['stren']
+		$temp_copyclass['class_str'] = $mid(10000 + temp_copyclass['class'], 2)
+		if cmd_copy_class['base'] ! temp_copyclass['class']:
+			cmd_copy_class[$temp_copyclass['class_str']] = temp_copyclass['result']
+		end
+		temp_copyclass['bmi'] += 1
+	if temp_copyclass['bmi'] < 9: jump 'cs_copy_class_bmi_loop3'
+
+	killvar 'temp_copyclass'
+
+	gs 'cheatmenu_bisets', 'cs_copy_class_menu'
+end
+
+if $ARGS[0] = 'cs_overwrite_classes_base':
+	$cmd_copy_class['base_str'] = $mid(10000 + cmd_copy_class['base'], 2)
+	$cmd_copy_class['string'] = 'fix_biset_<<cmd_copy_class[''set'']>>_'
+	$cmd_copy_class['path'] = $cheatVars[$cmd_copy_class['string'] + 'path_<<$cmd_copy_class[''base_str'']>>']
+	$cmd_copy_class['desc'] = $cheatVars[$cmd_copy_class['string'] + 'desc_<<$cmd_copy_class[''base_str'']>>']
+	cmd_copy_class['imgnums'] = cheatVars[$cmd_copy_class['string'] + 'imgnums_<<$cmd_copy_class[''base_str'']>>']
+	cmd_copy_class['i'] = 0
+	:cs_overwrite_loop1
+		$cmd_copy_class['img_<<cmd_copy_class[''i'']>>'] = $cheatVars[$cmd_copy_class['string'] + 'img_<<$cmd_copy_class[''base_str'']>>_<<cmd_copy_class[''i'']>>']
+		cmd_copy_class['i'] += 1
+	if cmd_copy_class['i'] < cmd_copy_class['imgnums']: jump 'cs_overwrite_loop1'
+
+
+	cmd_copy_class['str_i'] = 0
+	:cs_overwrite_str_loop
+		cmd_copy_class['bmi_i'] = 0
+		:cs_overwrite_bmi_loop
+			cmbs_class = cmd_copy_class['bmi_i'] * 100 + cmd_copy_class['str_i']
+			$cmbs_class_str = $mid(10000 + cmbs_class, 2)
+			if cmd_copy_class['base'] ! cmbs_class and cmd_copy_class[$cmbs_class_str] = 1:
+				gs 'cheatmenu_bisets', 'cs_overwrite_class', $cmbs_class_str
+			end
+			cmd_copy_class['bmi_i'] += 1
+		if cmd_copy_class['bmi_i'] < 9: jump 'cs_overwrite_bmi_loop'
+		cmd_copy_class['str_i'] += 1
+	if cmd_copy_class['str_i'] < 18: jump 'cs_overwrite_str_loop'
+
+	gs 'cheatmenu_bisets', 'cs_main', cmd_copy_class['set']
+	killvar 'cmd_copy_class'
+end
+
+if $ARGS[0] = 'cs_overwrite_class':
+	$cheatVars[$cmd_copy_class['string'] + 'path_<<$ARGS[1]>>'] = $cmd_copy_class['path']
+	$cheatVars[$cmd_copy_class['string'] + 'desc_<<$ARGS[1]>>'] = $cmd_copy_class['desc']
+
+	cmd_copy_class['i'] = 0
+	:cs_overwrite_loop2
+		$cheatVars[$cmd_copy_class['string'] + 'img_<<$ARGS[1]>>_<<cmd_copy_class[''i'']>>'] = $cmd_copy_class['img_<<cmd_copy_class[''i'']>>']
+		cmd_copy_class['i'] += 1
+	if cmd_copy_class['i'] < cmd_copy_class['imgnums']: jump 'cs_overwrite_loop2'
+
+	if cheatVars[$cmd_copy_class['string'] + 'imgnums_<<$ARGS[1]>>'] > cmd_copy_class['imgnums']:
+		cmd_copy_class['i'] = cmd_copy_class['imgnums']
+		:cs_overwrite_loop3
+			gs 'shortgs', 'remove_array_element', '$cheatVars', $cmd_copy_class['string'] + 'img_<<$ARGS[1]>>_<<cmd_copy_class[''i'']>>'
+			cmd_copy_class['i'] += 1
+		if cmd_copy_class['i'] < cheatVars[$cmd_copy_class['string'] + 'imgnums_<<$ARGS[1]>>']: jump 'cs_overwrite_loop3'
+	end
+	cheatVars[$cmd_copy_class['string'] + 'imgnums_<<$ARGS[1]>>'] = cmd_copy_class['imgnums']
+end
+
+
+if $ARGS[0] = 'add_set':
+	*clr & cla
+	'<center><b>Body Image Set Addition</b></center>'
+	$cheatmenu['table_start']
+		act 'Go Back': killvar 'klsetask' & gs 'cheatmenu_bisets', 'main'
+		'<a href="exec:killvar ''klsetask'' & gs ''cheatmenu_bisets'', ''main''"><b>Go Back</b></a>'
+		*nl
+		'This is where you can add a new image set to a game.'
+		'To add an image set, create a folder in images/pc/body/shape/ and name it anything you want (shorter will be easier to remember). Then put in it any images you want. Once you have done that, click the link below and put in your folder name to add that set.'
+		'Note: This will only be for this instance/save of the game and you will have to redo the click the link step if you want to add the same folder to a different instance/save.'
+		*nl
+		cs_new_index = func('cheatmenu_bisets', 'get_new_set_index')
+		if cs_new_index >= 0:
+			'<a href="exec: gs ''cheatmenu_bisets'', ''add_set2'', <<cs_new_index>>">Add Image Set</a>'
+		else
+			'You cannot add more sets.'
+			'<a href="exec: gs ''cheatmenu_bisets'', ''main''"><b>Go Back</b></a>'
+		end
+		killvar 'cs_new_index'
+	$cheatmenu['table_end']
+end
+
+
+if $ARGS[0] = 'add_set2':
+	$cmd_temp_input = input("Enter folder name, do not include ''\''")
+	if $cmd_temp_input = '':
+		killvar '$cmd_temp_input'
+		gs 'cheatmenu_bisets', 'add_set'
+	else
+		if mid($cmd_temp_input, len($cmd_temp_input)) = '/' or mid($cmd_temp_input, len($cmd_temp_input)) = '\':
+			$cmd_temp_input = mid($cmd_temp_input, 1, len($cmd_temp_input)-1)
+		end
+
+		$cheatVars['fix_biset_<<ARGS[1]>>_folder'] = $cmd_temp_input
+		killvar '$cmd_temp_input'
+		killvar 'cyci1'
+
+		gs 'cheatmenu_bisets', 'cs_main', ARGS[1]
+	end
+end
+
+if $ARGS[0] = 'get_new_set_index':
+	temp_set_index = 0
+	:cs_index_find_loop
+	if $cheatVars['fix_biset_<<temp_set_index>>_folder'] ! '':
+		temp_set_index += 1
+		if temp_set_index <= 9:
+			jump 'cs_index_find_loop'
+		else
+			result = -1
+		end
+	else
+		result = temp_set_index
+	end
+	killvar 'temp_set_index'
+end
+
+if $ARGS[0] = 'import_set':
+	*clr & cla
+	killvar 'fix_bod_set'
+	'<center><b>Body Image Set Import</b></center>'
+	$cheatmenu['table_start']
+		act 'Go Back': killvar 'klsetask' & gs 'cheatmenu_bisets', 'main'
+		'<a href="exec:killvar ''klsetask'' & gs ''cheatmenu_bisets'', ''main''"><b>Go Back</b></a>'
+		*nl
+		'This is where you can import a new image set to a game.'
+
+		*nl
+		cs_new_index = func('cheatmenu_bisets', 'get_new_set_index')
+		if cs_new_index >= 0:
+			if mod_list > 0:
+				'<a href="exec: gs ''cheatmenu_bisets'', ''import_set_mod'', <<cs_new_index>>">Import from a Mod</a>'
+			end
+			'<a href="exec: gs ''cheatmenu_bisets'', ''import_set_direct'', <<cs_new_index>>">Import directly</a>'
+		else
+			'You cannot add more sets.'
+			'<a href="exec: gs ''cheatmenu_bisets'', ''main''"><b>Go Back</b></a>'
+		end
+		killvar 'cs_new_index'
+	$cheatmenu['table_end']
+end
+
+if $ARGS[0] = 'import_set_direct':
+	cmbs_import_set = ARGS[1]
+	$temp_import_text = $input('Copy the exported text here:')
+
+	if $temp_import_text ! '':
+		$temp_conform_text = $input('Do you want to continue? (y/n)')
+		if $mid($lcase($temp_conform_text), 1, 1) = 'y':
+			dynamic $temp_import_text
+			gs 'cheatmenu_bisets', 'import_custom_set', cmbs_import_set
+		end
+	end
+	killvar '$temp_conform_text'
+	killvar '$temp_import_text'
+	killvar 'cmbs_import_set'
+
+	gs 'cheatmenu_bisets', 'main'
+end
+
+if $ARGS[0] = 'import_set_mod':
+	*clr & cla
+	cmbs_import_set = ARGS[1]
+
+	$cheatmenu['table_start']
+		'<a href="exec: gs ''cheatmenu_bisets'', ''main''">Go Back</a>'
+		*nl
+		'Select a mod from which you want to try and import a image set.'
+		mod_i = 1
+		:mod_exec
+			if $mod_name[mod_i] ! '':
+				'<a href="exec: gs ''cheatmenu_bisets'', ''import_set_mod2'', <<cmbs_import_set>>, ''<<$mod_name[mod_i]>>''"><<$mod_name[mod_i]>></a>'
+			end
+			mod_i += 1
+		if mod_i <= mod_list: jump 'mod_exec'
+		killvar 'mod_i'
+	$cheatmenu['table_end']
+end
+
+if $ARGS[0] = 'import_set_mod2':
+	*clr & cla
+	cmbs_import_set = ARGS[1]
+	$cmbs_mod_name = $ARGS[2]
+
+	$cheatmenu['table_start']
+		killvar 'fix_bod_set'
+		gs 'mod_<<$cmbs_mod_name>>', 'import_body_set'
+
+		if arrsize('fix_bod_set') > 0:
+			'Image set found.'
+			'Folder: <<$fix_bod_set[''Folder'']>>'
+			if $fix_bod_set['Name'] ! '':
+				'Name: <<$fix_bod_set[''Name'']>>'
+			end
+			if $fix_bod_set['Path'] ! '':
+				'Path: <<$fix_bod_set[''Path'']>>'
+			end
+			$temp_conform_text = $input('Do you want to continue? (y/n)')
+			if $mid($lcase($temp_conform_text), 1, 1) = 'y':
+				gs 'cheatmenu_bisets', 'import_custom_set', cmbs_import_set
+			end
+		end
+	$cheatmenu['table_end']
+
+	killvar '$temp_conform_text'
+	killvar 'fix_bod_set'
+	killvar 'cmbs_import_set'
+	killvar '$cmbs_mod_name'
+
+	gs 'cheatmenu_bisets', 'main'
+end
+
+
+if $ARGS[0] = 'import_custom_set':
+	$temp_start_str = 'fix_biset_<<ARGS[1]>>_'
+	cheatVars[$temp_start_str + 'advanced'] = fix_bod_set['advanced']
+	$cheatVars[$temp_start_str + 'folder'] = $fix_bod_set['folder']
+	$cheatVars[$temp_start_str + 'path'] = $fix_bod_set['path']
+	$cheatVars[$temp_start_str + 'name'] = $fix_bod_set['name']
+
+
+	!! Classic sets
+	cmd_imp_i = 0
+	:cs_import_simple_loop
+		$cheatVars[$temp_start_str + 'img_<<cmd_imp_i>>'] = $fix_bod_set['img_<<cmd_imp_i>>']
+		$cheatVars[$temp_start_str + 'desc_<<cmd_imp_i>>'] = $fix_bod_set['desc_<<cmd_imp_i>>']
+		cmd_imp_i += 1
+	if cmd_imp_i < 9: jump 'cs_import_simple_loop'
+
+	!! Advanced sets
+	if fix_bod_set['imgnums_0000'] > 0:
+		cmd_exp_bmi = 0
+		:cs_import_adv_bmi_loop
+			cmd_exp_stren = 0
+			:cs_import_adv_str_loop
+				$cmd_class_str = $mid(10000 + cmd_exp_bmi * 100 + cmd_exp_stren, 2)
+
+				cheatVars[$temp_start_str + 'desc_<<$cmd_class_str>>'] = fix_bod_set['desc_<<$cmd_class_str>>']
+				$cheatVars[$temp_start_str + 'path_<<$cmd_class_str>>'] = $fix_bod_set['path_<<$cmd_class_str>>']
+				cmd_imgnums = fix_bod_set['imgnums_<<$cmd_class_str>>']
+				cheatVars[$temp_start_str + 'imgnums_<<$cmd_class_str>>'] = cmd_imgnums
+
+				cmd_exp_i = 0
+				:cs_import_adv_inner_loop
+					$cheatVars[$temp_start_str + 'img_<<$cmd_class_str>>_<<cmd_exp_i>>'] = $fix_bod_set['img_<<$cmd_class_str>>_<<cmd_exp_i>>']
+					cmd_exp_i += 1
+				if cmd_exp_i < cmd_imgnums: jump 'cs_import_adv_inner_loop'
+
+				cmd_exp_stren += 1
+			if cmd_exp_stren < 18: jump 'cs_import_adv_str_loop'
+			cmd_exp_bmi += 1
+		if cmd_exp_bmi < 9: jump 'cs_import_adv_bmi_loop'
+	end
+
+	killvar 'fix_bod_set'
+	killvar '$temp_start_str'
+end
+
+
+if $ARGS[0] = 'cs_set_simple':
+	cheatVars['fix_biset_<<ARGS[1]>>_advanced'] = 0
+	gs 'cheatmenu_bisets', 'cs_main', ARGS[1]
+end
+
+if $ARGS[0] = 'cs_set_advanced':
+	if cheatVars['fix_biset_<<ARGS[1]>>_imgnums_0000'] = 0:
+		gs 'cheatmenu_bisets', 'cs_init_advanced', ARGS[1]
+	end
+
+	cheatVars['fix_biset_<<ARGS[1]>>_advanced'] = 1
+	gs 'cheatmenu_bisets', 'cs_main', ARGS[1]
+end
+
+
+if $ARGS[0] = 'cs_init_advanced':
+	cmd_adv_bmi_i = 0
+	:adv_init_bmi_loop
+		cmd_adv_str_i = 0
+		:adv_init_str_loop
+			cmd_bs_class = cmd_adv_bmi_i  * 100 + cmd_adv_str_i
+			$cmd_bs_class_str = $mid(10000 + cmd_bs_class, 2)
+			cheatVars['fix_biset_<<ARGS[1]>>_imgnums_<<$cmd_bs_class_str>>'] = 1
+			cmd_adv_str_i += 1
+		if cmd_adv_str_i < 18: jump 'adv_init_str_loop'
+		cmd_adv_bmi_i += 1
+	if cmd_adv_bmi_i < 9: jump 'adv_init_bmi_loop'
+	killvar 'cmd_bs_class'
+	killvar '$cmd_bs_class_str'
+	killvar 'cmd_adv_bmi_i'
+	killvar 'cmd_adv_str_i'
+end
+
+if $ARGS[0] = 'cs_change_name':
+	temp_set = ARGS[1]
+
+	$cmd_temp_input = input('Set name')
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_name'] = $cmd_temp_input
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+end
+
+if $ARGS[0] = 'cs_change_folder':
+	temp_set = ARGS[1]
+
+	$cmd_temp_input = input('Folder name')
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_folder'] = $cmd_temp_input
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+end
+
+if $ARGS[0] = 'cs_change_path':
+	temp_set = ARGS[1]
+
+	$cmd_temp_input = input('Input path (i.e. images/pc/shape)')
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_path'] = $cmd_temp_input
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+end
+
+if $ARGS[0] = 'cs_change_desc':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+
+	$cmd_temp_input = input("Enter a new descriptor")
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_desc_<<temp_class>>'] = $cmd_temp_input
+		if cheatVars['fix_bi_set'] = temp_set: gs 'body', 'UpdateBodyImage'
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+end
+
+if $ARGS[0] = 'cs_change_desc_adv':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	$temp_class_str = $mid(10000 + ARGS[2], 2)
+
+	$cmd_temp_input = input("Enter a new descriptor")
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_desc_<<$temp_class_str>>'] = $cmd_temp_input
+		if cheatVars['fix_bi_set'] = temp_set: gs 'body', 'UpdateBodyImage'
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', temp_set, temp_class
+	killvar 'temp_set'
+	killvar 'temp_class'
+	killvar '$temp_class_str'
+end
+
+if $ARGS[0] = 'cs_change_subpath':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	$temp_class_str = $mid(10000 + ARGS[2], 2)
+
+	$cmd_temp_input = input('Input subpath (i.e. 0_starving)')
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_path_<<$temp_class_str>>'] = $cmd_temp_input
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', temp_set, temp_class
+	killvar 'temp_set'
+	killvar 'temp_class'
+	killvar '$temp_class_str'
+end
+
+if $ARGS[0] = 'cs_change_preg_subpath':
+	temp_set = ARGS[1]
+	preg_set = ARGS[2]
+
+	$cmd_temp_input = input('Input subpath (i.e. 0_starving)')
+	if $cmd_temp_input ! '':
+		$cheatVars['fix_biset_<<temp_set>>_pregpath_<<preg_set>>'] = $cmd_temp_input
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'get_pregset_link', temp_set, preg_set
+	killvar 'temp_set'
+	killvar 'preg_set'
+end
+
+
+if $ARGS[0] = 'cs_change_img':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+
+	$cmd_temp_input = input("Enter a new image name (Leave empty to not change the image. Example: 1). Exclude the '.jpg'")
+	if $cmd_temp_input ! '':
+		if mid($cmd_temp_input, len($cmd_temp_input)-3) = '.jpg':
+			$cmd_temp_input = mid($cmd_temp_input, 1, len($cmd_temp_input)-4)
+		end
+		$cheatVars['fix_biset_<<temp_set>>_img_<<temp_class>>'] = $cmd_temp_input
+		if cheatVars['fix_bi_set'] = temp_set: gs 'body', 'UpdateBodyImage'
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main', temp_set
+	killvar 'temp_set'
+	killvar 'temp_class'
+end
+
+if $ARGS[0] = 'cs_change_img_adv':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	temp_img_num = ARGS[3]
+	$temp_class_str = $mid(10000 + ARGS[2], 2)
+
+	$cmd_temp_input = input("Enter a new image name (Leave empty to not change the image. Example: 1). Exclude the '.jpg'")
+	if $cmd_temp_input ! '':
+		if mid($cmd_temp_input, len($cmd_temp_input)-3) = '.jpg':
+			$cmd_temp_input = mid($cmd_temp_input, 1, len($cmd_temp_input)-4)
+		end
+		$cheatVars['fix_biset_<<temp_set>>_img_<<$temp_class_str>>_<<temp_img_num>>'] = $cmd_temp_input
+		if cheatVars['fix_bi_set'] = temp_set: gs 'body', 'UpdateBodyImage'
+	end
+	killvar '$cmd_temp_input'
+
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', temp_set, temp_class
+	killvar 'temp_set'
+	killvar 'temp_class'
+	killvar 'temp_img_num'
+	killvar '$temp_class_str'
+end
+
+if $ARGS[0] = 'cs_add_img':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	$temp_class_str = $mid(10000 + ARGS[2], 2)
+
+	$cmd_temp_input = input("Enter a new image name (Leave empty to use default image. Example: 1). Exclude the '.jpg'")
+	if $mid($cmd_temp_input, len($cmd_temp_input)-3) = '.jpg':
+		$cmd_temp_input = mid($cmd_temp_input, 1, len($cmd_temp_input)-4)
+	end
+	temp_new_img_index = cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>']
+	cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>'] += 1
+	$cheatVars['fix_biset_<<temp_set>>_img_<<$temp_class_str>>_<<temp_new_img_index>>'] = $cmd_temp_input
+	if cheatVars['fix_bi_set'] = temp_set: gs 'body', 'UpdateBodyImage'
+	killvar 'temp_new_img_index'
+	killvar '$cmd_temp_input'
+	killvar '$temp_class_str'
+
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', temp_set, temp_class
+	killvar 'temp_set'
+	killvar 'temp_class'
+end
+
+if $ARGS[0] = 'cs_remove_img':
+	temp_set = ARGS[1]
+	temp_class = ARGS[2]
+	temp_img_num = ARGS[3]
+	$temp_class_str = $mid(10000 + ARGS[2], 2)
+
+	if temp_img_num < cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>'] and cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>'] > 1:
+		cmd_new_index = temp_img_num
+		:cs_remove_img_loop
+		if cmd_new_index + 1 < cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>']:
+			$cheatVars['fix_biset_<<temp_set>>_img_<<$temp_class_str>>_<<cmd_new_index>>'] = $cheatVars['fix_biset_<<temp_set>>_img_<<$temp_class_str>>_<<cmd_new_index+1>>']
+			cmd_new_index += 1
+			jump 'cs_remove_img_loop'
+		end
+
+		!Due to the construction above, we have
+		!cmd_new_index = cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>']
+		gs 'shortgs', 'remove_array_element', '$cheatVars', 'fix_biset_<<temp_set>>_img_<<$temp_class_str>>_<<cmd_new_index>>'
+		cheatVars['fix_biset_<<temp_set>>_imgnums_<<$temp_class_str>>'] -= 1
+	end
+
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', temp_set, temp_class
+	killvar 'temp_set'
+	killvar 'temp_class'
+	killvar 'temp_img_num'
+end
+
+
+if $ARGS[0] = 'cs_set_default_img':
+	$cheatVars['fix_biset_<<ARGS[1]>>_img_<<$mid(10000 + ARGS[2], 2)>>'] = ''
+	gs 'cheatmenu_bisets', 'cs_main', ARGS[1]
+end
+
+if $ARGS[0] = 'cs_set_default_img_adv':
+	$cheatVars['fix_biset_<<ARGS[1]>>_img_<<$mid(10000 + ARGS[2], 2)>>_<<ARGS[3]>>'] = ''
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', ARGS[1], ARGS[2]
+end
+
+if $ARGS[0] = 'cs_set_default_desc':
+	$cheatVars['fix_biset_<<ARGS[1]>>_desc_<<$mid(10000 + ARGS[2], 2)>>'] = ''
+	gs 'cheatmenu_bisets', 'cs_main', ARGS[1]
+end
+
+if $ARGS[0] = 'cs_set_default_desc_adv':
+	$cheatVars['fix_biset_<<ARGS[1]>>_desc_<<$mid(10000 + ARGS[2], 2)>>'] = ''
+	gs 'cheatmenu_bisets', 'cs_main_advanced2', ARGS[1], ARGS[2]
+end
+
+if $ARGS[0] = 'cs_delete_set':
+	*clr & cla
+	'<center><b>Body Image Set Removal</b></center>'
+	$cheatmenu['table_start']
+		'<a href="exec: killvar ''klsetask'' & gs ''cheatmenu_bisets'', ''cs_main'', <<ARGS[1]>>"><b>Go Back</b></a>'
+		*nl
+		'This is where you remove a body image set from use, please note it does not delete anything, it just clears the custom set from this game instance/save.'
+		if klsetask = 1:
+			'<a href="exec:klsetask = 2 & gs ''cheatmenu_bisets'', ''cs_delete_set'', <<ARGS[1]>>"><b>Are you sure you want to remove set <<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>?</b></a>'
+		elseif klsetask = 2:
+			if cheatVars['fix_bodyimg'] = 1 and cheatVars['fix_bi_set'] = ARGS[1]: cheatVars['fix_bodyimg'] = 0 & cheatVars['fix_bi_set'] = 0
+
+			gs 'cheatmenu_bisets', 'cs_delete_set2', ARGS[1]
+
+			killvar 'klsetask'
+			gs 'cheatmenu_bisets', 'main'
+		else
+			'<a href="exec: klsetask = 1 & gs ''cheatmenu_bisets'', ''cs_delete_set'', <<ARGS[1]>>">Remove set <<$cheatVars[''fix_biset_<<ARGS[1]>>_folder'']>>?</a>'
+		end
+	$cheatmenu['table_end']
+end
+
+if $ARGS[0] = 'cs_delete_set2':
+	$cmbs_text = 'fix_biset_<<ARGS[1]>>_'
+
+	cmbs_bmi_i = 0
+	:del_bodimgset_loop
+		gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'img_<<cmbs_i>>'
+		gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'desc_<<cmbs_i>>'
+		cmbs_i += 1
+	if cmbs_i < 9: jump 'del_bodimgset_loop'
+
+	cmbs_bmi = 0
+	:del_bodimgset_bmi_loop
+		cmbs_stren = 0
+		:del_bodimgset_stren_loop
+			$cmbs_class_str = $mid(10000 + cmbs_bmi * 100 + cmbs_stren, 2)
+			gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'desc_<<$cmbs_class_str>>'
+			gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'path_<<$cmbs_class_str>>'
+
+			cmbs_i = 0
+			:del_bodimgset_img_loop
+				gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'img_<<$cmbs_class_str>>_<<cmbs_i>>'
+				cmbs_i += 1
+			if cmbs_i < cheatVars[$cmbs_text + 'imgnums_<<$cmbs_class_str>>']: jump 'del_bodimgset_img_loop'
+			gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'imgnums_<<$cmbs_class_str>>'
+
+			cmbs_stren += 1
+		if cmbs_stren < 18: jump 'del_bodimgset_stren_loop'
+		cmbs_bmi += 1
+	if cmbs_bmi < 9: jump 'del_bodimgset_bmi_loop'
+
+	gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'folder'
+	gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'path'
+	gs 'shortgs', 'remove_array_element', 'cheatVars', $cmbs_text + 'name'
+
+	killvar 'cmbs_bmi'
+	killvar 'cmbs_stren'
+	killvar 'cmbs_i'
+	killvar '$cmbs_class_str'
+	killvar '$cmbs_text'
+end
+
+
+if $ARGS[0] = 'cs_get_default_img':
+	if cheatVars['fix_biset_<<ARGS[1]>>_advanced'] = 0:
+		ARGS[2] *= 100
+	end
+
+	$result = func('body_structure', 'body_img_from_class', ARGS[2])
+end
+
+if $ARGS[0] = 'cs_get_default_desc':
+	if cheatVars['fix_biset_<<ARGS[1]>>_advanced'] = 0:
+		ARGS[2] *= 100
+	end
+
+	$result = func('body_structure', 'body_desc_from_class', ARGS[2])
+end
+
+if $ARGS[0] = 'cs_get_default_subpath':
+	$result = func('body_structure', 'body_img_path_from_class', ARGS[2])
+end
+
+
+if $ARGS[0] = 'mods_how_to':
+	*clr & cla
+	act 'Go Back': gs 'cheatmenu_bisets', 'main'
+	$cheatmenu['table_start']
+		'How do you add the option to import an image set to a mod?'
+		'It''s fairly simple:'
+		'    1. Build the image set in game, using the correct folders, names, paths, etc.'
+		'    2. Click on the "Export Image Set" button.'
+		'    3. Copy the displayed code.'
+		'    4. When the main mod''s location (''mod_name'') is called with $ARGS[0] = ''import_body_set'' execute that code.'
+	$cheatmenu['table_end']
+end
+
+--- cheatmenu_bisets -------------------------------

+ 3 - 3
locations/foto_shoot.qsrc

@@ -881,7 +881,7 @@ if $ARGS[0] = 'sportswear':
 	gs 'exp_gain', 'mdlng', rand(2,4)
 	gs 'exp_gain', 'mdlng', rand(2,4)
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'stat'
 	gs 'stat'
-	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf, 0)
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		*clr & cla
 		modelpayfin += 300
 		modelpayfin += 300
@@ -912,7 +912,7 @@ if $ARGS[0] = 'sports_underwear':
 	gs 'exp_gain', 'mdlng', rand(3,6)
 	gs 'exp_gain', 'mdlng', rand(3,6)
 	if pcs_inhib < 50:inhib_exp += 1
 	if pcs_inhib < 50:inhib_exp += 1
 	gs 'stat'
 	gs 'stat'
-	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf, 0)
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		*clr & cla
 		modelpayfin += 325
 		modelpayfin += 325
@@ -941,7 +941,7 @@ if $ARGS[0] = 'fitness_artistic_nude':
 	gs 'fame', 'city', 'modelling', 'small'
 	gs 'fame', 'city', 'modelling', 'small'
 	inhib_exp += 2
 	inhib_exp += 2
 	gs 'stat'
 	gs 'stat'
-	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf)
+	temp_bs_class = func('body_structure', 'get_class', pcs_bmi, strenbuf, 0)
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 	if temp_bs_class / 100 >= 2 and (temp_bs_class mod 100) >= 8:
 		*clr & cla
 		*clr & cla
 		modelpayfin += 600
 		modelpayfin += 600

+ 5 - 5
locations/pcs_has_attr.qsrc

@@ -366,7 +366,7 @@ end
 
 
 !! To be checked
 !! To be checked
 if $ARGS[0] = 'body_bmi_starving':
 if $ARGS[0] = 'body_bmi_starving':
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class < 100:
 	if temp_bs_class < 100:
 		result = 1
 		result = 1
 	end
 	end
@@ -374,7 +374,7 @@ if $ARGS[0] = 'body_bmi_starving':
 	exit
 	exit
 
 
 elseif $ARGS[0] = 'body_bmi_underweight':
 elseif $ARGS[0] = 'body_bmi_underweight':
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class >= 100 and temp_bs_class < 200:
 	if temp_bs_class >= 100 and temp_bs_class < 200:
 		result = 1
 		result = 1
 	end
 	end
@@ -382,7 +382,7 @@ elseif $ARGS[0] = 'body_bmi_underweight':
 	exit
 	exit
 
 
 elseif $ARGS[0] = 'body_bmi_normal':
 elseif $ARGS[0] = 'body_bmi_normal':
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class >= 200 and temp_bs_class < 400:
 	if temp_bs_class >= 200 and temp_bs_class < 400:
 		result = 1
 		result = 1
 	end
 	end
@@ -390,7 +390,7 @@ elseif $ARGS[0] = 'body_bmi_normal':
 	exit
 	exit
 
 
 elseif $ARGS[0] = 'body_bmi_overweight':
 elseif $ARGS[0] = 'body_bmi_overweight':
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class >= 400 and temp_bs_class < 500:
 	if temp_bs_class >= 400 and temp_bs_class < 500:
 		result = 1
 		result = 1
 	end
 	end
@@ -398,7 +398,7 @@ elseif $ARGS[0] = 'body_bmi_overweight':
 	exit
 	exit
 
 
 elseif $ARGS[0] = 'body_bmi_obese':
 elseif $ARGS[0] = 'body_bmi_obese':
-	temp_bs_class = func('body_structure', 'get_class')
+	temp_bs_class = func('body_structure', 'get_class') mod 1000
 	if temp_bs_class >= 500:
 	if temp_bs_class >= 500:
 		result = 1
 		result = 1
 	end
 	end