47 Commits 6f71ceeb2e ... 651a6d9736

Auteur SHA1 Bericht Datum
  anjuna krokus 651a6d9736 [fixed] temp_clo_suffix array wasn't properly killvarred. Resulting in remaining text after getting naked. Reported by Dibutello 2 weken geleden
  anjuna krokus 674db27fd8 [fixed] cleanup of variables in shortgs 2 weken geleden
  anjuna krokus f71f32bcb6 [fixed] forgotten husband line 2 weken geleden
  anjuna krokus 0cbea1a8a8 [changed] time and daystage management done in time instead of daystage 2 weken geleden
  anjuna krokus 8943e90636 Merge branch 'AdvancedCustomSets' 2 weken geleden
  anjuna krokus 5ed32775aa Merge branch 'CourtOverhaul' 2 weken geleden
  anjuna krokus 096b7b3e8b [added/changed] Added the option to call cum_cleanup directly with the location to clean. Some small layout changes 2 weken geleden
  anjuna krokus 953e305888 [changed] minor layout change 2 weken geleden
  anjuna krokus 44a98515d5 [changed] ATM money withdraw function split off into bank 2 weken geleden
  anjuna krokus 0c9c264fcc [added] start of the pregnancy sets 2 weken geleden
  Kevin_Smarts 40daa08a40 Merge remote-tracking branch 'Anjuna/master' 2 weken geleden
  Kevin_Smarts b0c32e9f2e [added] custom clothing start from Lokplart 2 weken geleden
  anjuna krokus e695fac6a0 [fixed] preparation to enable custom pregnancy images 2 weken geleden
  anjuna krokus e70e5bc956 [changed] propagating the pregnancy changes 3 weken geleden
  anjuna krokus ff4011e68c [added] Court events 3 weken geleden
  anjuna krokus e8479dda51 [fixed?] Some Miroslava guest issues. 3 weken geleden
  anjuna krokus 0ace8fed34 [changed] body structure class now also includes pregnancy state 3 weken geleden
  anjuna krokus 71e65e4694 [Added] Advanced custom body images 3 weken geleden
  bgkjdgbizgblzdgbr 85d0cfb608 [fixed/changed] You now actaully use you lube for anal mastrubation if it is set to autolube anal and only if autolube is set to anal (and you have some lube) 3 weken geleden
  Insomniac 151968f70e fix: stop repeatedly asking for condoms 3 weken geleden
  Insomniac e564a6cbb2 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 3 weken geleden
  Insomniac 0be43c6b68 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 1 maand geleden
  Insomniac 7a6491d3f9 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 1 maand geleden
  Insomniac 004e5dc4c4 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 1 maand geleden
  Insomniac 37f90596a3 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 1 maand geleden
  Insomniac 01bd2cf8d8 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 1 maand geleden
  Insomniac 99204cd633 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac 925f013aeb Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac 3ef16e8998 Merge branch 'master' of https://git.tfgames.site/Insomniac/glife into test 2 maanden geleden
  Insomniac e69941d363 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac 62125db2b7 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac efe643fff1 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac 13419cf829 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 2 maanden geleden
  Insomniac 0c26adddf0 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 3 maanden geleden
  Insomniac 1cb29f7adb Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 3 maanden geleden
  Insomniac d90d056559 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 4 maanden geleden
  Insomniac 6932313402 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 4 maanden geleden
  Insomniac 07d53ce79f Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 4 maanden geleden
  Insomniac 76c330d52c Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 5 maanden geleden
  Insomniac abba173fd5 Line endings 5 maanden geleden
  Insomniac 21169ae3f5 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 5 maanden geleden
  Insomniac 4bc5581202 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into test 5 maanden geleden
  Insomniac 467346c49a Add rel check for creampie reaction 5 maanden geleden
  Insomniac c93fe36b6d Merge branch 'master' of https://git.tfgames.site/Insomniac/glife into test 6 maanden geleden
  Insomniac dbb3cac740 Merge branch 'master' of https://git.tfgames.site/Insomniac/glife into test 6 maanden geleden
  Insomniac 5e85abfb36 Testing - newline 8 maanden geleden
  Insomniac 753bef1083 Testing - newline 8 maanden geleden
52 gewijzigde bestanden met toevoegingen van 5175 en 2508 verwijderingen
  1. 4 0
      build.sh
  2. 1 1
      locations/AppearanceSystem.qsrc
  3. 8 415
      locations/Cheatmenu_din.qsrc
  4. 2 2
      locations/Komp.qsrc
  5. 29 4
      locations/bank.qsrc
  6. 303 122
      locations/body_structure.qsrc
  7. 1541 0
      locations/cheatmenu_bisets.qsrc
  8. 590 0
      locations/court_arrest_events.qsrc
  9. 30 0
      locations/court_functions.qsrc
  10. 500 0
      locations/court_sentence_events.qsrc
  11. 2 2
      locations/courtletter.qsrc
  12. 71 71
      locations/cum_cleanup.qsrc
  13. 11 5
      locations/dinSex2.qsrc
  14. 3 3
      locations/foto_shoot.qsrc
  15. 409 18
      locations/intro_customization.qsrc
  16. 1 1
      locations/miroslava.qsrc
  17. 10 10
      locations/miroslava_schedule.qsrc
  18. 24 89
      locations/outdoors.qsrc
  19. 30 24
      locations/pav_commercial.qsrc
  20. 50 41
      locations/pav_industrial.qsrc
  21. 21 12
      locations/pav_residential.qsrc
  22. 12 6
      locations/pav_train_market.qsrc
  23. 5 5
      locations/pcs_has_attr.qsrc
  24. 344 100
      locations/pirsingsalon.qsrc
  25. 149 688
      locations/police_station.qsrc
  26. 8 477
      locations/sentence.qsrc
  27. 11 3
      locations/sex_ev_condoms.qsrc
  28. 1 1
      locations/sex_ev_pillow_talk.qsrc
  29. 1 1
      locations/sex_ev_reactions_creampie.qsrc
  30. 16 7
      locations/shop_allure.qsrc
  31. 28 11
      locations/shop_coco_carmen.qsrc
  32. 68 20
      locations/shop_danilovich.qsrc
  33. 47 20
      locations/shop_dolls.qsrc
  34. 59 21
      locations/shop_erotomaniac.qsrc
  35. 47 17
      locations/shop_exhibitionist.qsrc
  36. 10 4
      locations/shop_fancy_pancy.qsrc
  37. 57 22
      locations/shop_fashionista.qsrc
  38. 27 10
      locations/shop_flamingos.qsrc
  39. 109 42
      locations/shop_gm.qsrc
  40. 29 12
      locations/shop_lusso.qsrc
  41. 10 5
      locations/shop_materinstvo.qsrc
  42. 60 21
      locations/shop_moncheri.qsrc
  43. 45 16
      locations/shop_nerdvana.qsrc
  44. 67 26
      locations/shop_pussycats.qsrc
  45. 55 20
      locations/shop_scandalicious.qsrc
  46. 49 19
      locations/shop_tsar_bomba.qsrc
  47. 4 1
      locations/shortgs.qsrc
  48. 17 17
      locations/stat.qsrc
  49. 2 0
      locations/stat_display.qsrc
  50. 185 71
      locations/time.qsrc
  51. 13 25
      locations/uni_shop.qsrc
  52. 0 0
      tools/Parser/qsp_parser.exe

+ 4 - 0
build.sh

@@ -18,6 +18,7 @@
 		<Location name="journal_portfolio"/>
 		<Location name="journal_NPC_information"/>
 		<Location name="Cheatmenu_din"/>
+		<Location name="Cheatmenu_bisets"/>
 	</Folder>
 	<Folder name="System">
 		<Location name="counter"/>
@@ -908,8 +909,11 @@
 		<Location name="model_mari"/>
 	</Folder>
 	<Folder name="Crime and Punishment">
+		<Location name="court_functions"/>
 		<Location name="police_station"/>
+		<Location name="court_arrest_events"/>
 		<Location name="sentence"/>
+		<Location name="court_sentence_events"/>
 		<Location name="courtletter"/>
 		<Location name="shoplifting"/>
 	</Folder>

+ 1 - 1
locations/AppearanceSystem.qsrc

@@ -296,7 +296,7 @@ end
 if $ARGS[0] = 'AdjustFromBMI':
 	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:
 		!! severely underweight
 		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)'
 		''
 		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
 		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
 		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
 		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
 		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
 		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
 		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
 		killvar 'bs_temp_bs_class'
@@ -3180,414 +3180,7 @@ end
 
 $cheatmenu['bdimmain'] = "gs 'Cheatmenu_din', '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
 
 

+ 2 - 2
locations/Komp.qsrc

@@ -76,7 +76,7 @@ if $ARGS[0] = 'browse':
 	else
 		'<center><img <<$set_imgh>> src="images/pc/items/accessories/computer/komp.jpg"></center>'
 		if access['general-text'] = 1: '<center><h4 style="color: red;"><b><<$access[''general-text'']>></b></h4></center>'
-		'You head to your favourite start page while you decide what you want to do.'		
+		'You head to your favourite start page while you decide what you want to do.'
 		'A blinking banner for a <a href="exec: gt ''komp'',''agent''">Kirsanova Real Estate Agency</a> keeps popping up in the corner.'
 		if access['noporn'] = 1:
 			"<b><<$access['noporn']>></b>"
@@ -84,7 +84,7 @@ if $ARGS[0] = 'browse':
 		if camwhore = 1 and access['nocamshow'] = 1 and mc_inventory['tech_webcam'] = 1: 
 			"<b><<$access['nocamshow']>></b>"
 		end
-		if func('homes_properties', 'is_property_of_status', 'owned', 'city_apartment') and husband = 0: act 'Rent your apartment out': gt 'komp', 'sale'
+		if func('homes_properties', 'is_property_of_status', 'owned', 'city_apartment') and $husID = '': act 'Rent your apartment out': gt 'komp', 'sale'
 
 		if access['noporn'] = 0: act 'Watch porn': gt 'komp', 'porno'
 

+ 29 - 4
locations/bank.qsrc

@@ -353,14 +353,17 @@ if $ARGS[0] = 'loan_officer':
 	end
 end
 
-
+!ARGS[1] = fee. Defaults to 100
 if $ARGS[0] = 'deposit_cash':
-	kartaIN = input ("How much money do you want to deposit into your account? (There''s a 100 <b>₽</b> fee)")
+	if arrsize('ARGS') = 1: ARGS[1] = 100
+
+	kartaIN = input ("How much money do you want to deposit into your account?" + iif(ARGS[1] <= 0, "", " (There''s a <<ARGS[1]>> <b>₽</b> fee)"))
+
 
-	if kartaIN <= 100 or kartaIN > money:
+	if kartaIN <= ARGS[1] or kartaIN > money:
 		'Invalid operation.'
 	else
-		atmDeposit[] = kartaIN - 100
+		atmDeposit[] = kartaIN - ARGS[1]
 		atmDepositDate[] = daystart + 2
 		money -= kartaIN
 
@@ -370,6 +373,28 @@ if $ARGS[0] = 'deposit_cash':
 	killvar 'kartaIN'
 end
 
+!ARGS[1] = fee. Defaults to 0
+if $ARGS[0] = 'withdraw_cash':
+	if arrsize('ARGS') = 1: ARGS[1] = 0
+	if ARGS[1] < 0: ARGS[1] = 0
+
+	kartaOUT = input ("How much money do you want to withdraw?" + iif(ARGS[1] <= 0, "", " (There''s a <<ARGS[1]>> <b>₽</b> fee)"))
+	if kartaOUT <= ARGS[1] or kartaOUT > karta:
+		'<br>Invalid operation.'
+	else
+		karta -= kartaOUT
+		money += (kartaOUT - ARGS[1])
+		if karta > bankDebtLimit:
+			'<br>You withdraw <<kartaOUT>> <b>₽</b>. You have <<karta - bankDebtLimit>> <b>₽</b> left in your bank account.'
+		elseif karta = 0:
+			'<br>You withdraw <<kartaOUT>> <b>₽</b>. You have no money left in your bank account.'
+		else
+			'<br>You withdraw <<kartaOUT>> <b>₽</b>. <font color="red">Your bank account is overdrawn by <b><<bankDebtLimit - karta>> ₽</b>.</font>'
+		end
+	end
+	killvar 'kartaOUT'
+end
+
 
 if $ARGS[0] = 'cikl':
 	!!------------------------------------------------------------------------------------------------------------

+ 303 - 122
locations/body_structure.qsrc

@@ -1,54 +1,80 @@
 # body_structure
 
+$DEFAULT_PATH = 'images/pc/body/shape'
+
 
 !	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 arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	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
 	if ARGS[1] < 16:
-		result = 0
+		result += 000
 	elseif ARGS[1] < 19:
-		result = 100
+		result += 100
 	elseif ARGS[1] < 22:
-		result = 200
+		result += 200
 	elseif ARGS[1] < 25:
-		result = 300
+		result += 300
 	elseif ARGS[1] < 30:
-		result = 400
+		result += 400
 	elseif ARGS[1] < 35:
-		result = 500
+		result += 500
 	elseif ARGS[1] < 40:
-		result = 600
+		result += 600
 	elseif ARGS[1] < 45:
-		result = 700
+		result += 700
 	else
-		result = 800
+		result += 800
 	end
 
 	!	strenbuf
 	if ARGS[2] <= 5:
-		result += 0
+		result += 00
 	elseif ARGS[2] <= 10:
-		result += 1
+		result += 01
 	elseif ARGS[2] <= 15:
-		result += 2
+		result += 02
 	elseif ARGS[2] <= 25:
-		result += 3
+		result += 03
 	elseif ARGS[2] <= 35:
-		result += 4
+		result += 04
 	elseif ARGS[2] <= 50:
-		result += 5
+		result += 05
 	elseif ARGS[2] <= 70:
-		result += 6
+		result += 06
 	elseif ARGS[2] <= 100:
-		result += 7
+		result += 07
 	elseif ARGS[2] <= 110:
-		result += 8
+		result += 08
 	elseif ARGS[2] <= 120:
-		result += 9
+		result += 09
 	elseif ARGS[2] <= 130:
 		result += 10
 	elseif ARGS[2] <= 140:
@@ -124,6 +150,26 @@ if $ARGS[0] = 'body_img_totals':
 	elseif ARGS[1] = 800:
 		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
 
@@ -176,25 +222,49 @@ if $ARGS[0] = 'Body_img_transform':
 		result = 600
 	elseif ARGS[1] < 800:
 		result = 700
-	else
+	elseif ARGS[1] < 1000:
 		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
 
 !	ARGS[1] = bs_class
 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:
-		result = 100 * (result / 100) + 2
+		result = 100 * (ARGS[1] / 100) + 2
 	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:
-		result = 100 * (result / 100) + 8
+		result = 100 * (ARGS[1] / 100) + 8
 	end
 
 	if cheatVars['fix_bi_set'] / 10 mod 10 ! 9:
 		result = (cheatVars['fix_bi_set'] / 10 mod 10) * 100 + result mod 100
 	end
+	result += base_result
 end
 
 
@@ -206,22 +276,9 @@ if $ARGS[0] = 'body_img':
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	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_bi_set'] < 10:
 			$result = func('body_structure', 'custom_body_img', bs_temp_bs_class)
@@ -237,46 +294,79 @@ if $ARGS[0] = 'body_img':
 end
 
 
+!! ARGS[1] = bs_class
 if $ARGS[0] = 'body_img_from_class':
-	$result = 'images/pc/body/shape/'
-
 	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
 
-	if ARGS[1] mod 100 = 0:
+
+	ARGS[2] = (ARGS[1] mod 100)
+	if ARGS[2] = 0:
 		$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_'
-	elseif ARGS[1] mod 100 = 7:
+	elseif ARGS[2] = 7:
 		$result += '7_high_'
-	elseif ARGS[1] mod 100 = 8:
+	elseif ARGS[2] = 8:
 		$result += '8_strong_'
-	elseif ARGS[1] mod 100 = 10:
+	elseif ARGS[2] = 9:
+		$result += '9_???_'
+	elseif ARGS[2] = 10:
 		$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_'
-	elseif ARGS[1] mod 100 = 15:
+	elseif ARGS[2] = 14:
+		$result += '14_???_'
+	elseif ARGS[2] = 15:
 		$result += '15_hulk_'
+	elseif ARGS[2] = 16:
+		$result += '16_???_'
+	else
+		$result += '17_???_'
 	end
 
+
 	temp_img_totals = func('body_structure', 'body_img_totals', ARGS[1])
 	if arrsize('ARGS') <= 2:
 		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'
 
 	killvar 'temp_img_totals'
-	killvar 'bs_temp_bs_class'
 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':
-	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 = '':
-		$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
 
-	$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_img_name'
 end
@@ -318,30 +457,7 @@ if $ARGS[0] = 'body_desc':
 	if arrsize('ARGS') = 2: ARGS[2] = strenbuf
 	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_bi_set'] < 10:
@@ -432,19 +548,50 @@ if $ARGS[0] = 'body_desc_from_class':
 
 	! =======   morbidly obese    ======= !
 	! -----     45 <= bmi           ----- !
-	else
+	elseif ARGS[1] < 1000:
 		!	0 <= strenbuf <= 200
 		$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
 
 
 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 = '':
-		$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
 
 	$result = $temp_bs_body_desc
@@ -458,7 +605,7 @@ end
 if $ARGS[0] = 'bmi_desc':
 	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)
 	killvar 'bs_temp_bs_class'
 end
@@ -493,12 +640,14 @@ if $ARGS[0] = 'appearance_bonus':
 	if arrsize('ARGS') = 1: ARGS[1] = pcs_bmi
 	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)
 	killvar 'bs_temp_bs_class'
 end
 
 if $ARGS[0] = 'appearance_bonus_from_class':
+	ARGS[1] = ARGS[1] mod 1000
+
 	if ARGS[1] < 100:
 		!	starving: bmi < 16
 		result = -10
@@ -528,57 +677,57 @@ if $ARGS[0] = 'appearance_bonus_from_class':
 		result = -80
 	end
 
-	ARGS[1] = ARGS[1] mod 100
 
-	if ARGS[1] = 0:
+	ARGS[2] = (ARGS[1] mod 100)
+	if ARGS[2] = 0:
 		!	0 <= strenbuf <= 5
 		result -= 30
-	elseif ARGS[1] = 1:
+	elseif ARGS[2] = 1:
 		!	5 < strenbuf <= 10
 		result -= 20
-	elseif ARGS[1] = 2:
+	elseif ARGS[2] = 2:
 		!	10 < strenbuf <= 15
 		result -= 15
-	elseif ARGS[1] = 3:
+	elseif ARGS[2] = 3:
 		!	15 < strenbuf <= 25
 		result -= 10
-	elseif ARGS[1] = 4:
+	elseif ARGS[2] = 4:
 		!	25 < strenbuf <= 35
 		result -= 5
-	elseif ARGS[1] = 5:
+	elseif ARGS[2] = 5:
 		!	35 < strenbuf <= 50
 		result += 0
-	elseif ARGS[1] = 6:
+	elseif ARGS[2] = 6:
 		!	50 < strenbuf <= 70
 		result += 5
-	elseif ARGS[1] = 7:
+	elseif ARGS[2] = 7:
 		!	70 < strenbuf <= 100
 		result += 10
-	elseif ARGS[1] = 8:
+	elseif ARGS[2] = 8:
 		!	100 < strenbuf <= 110
 		result += 5
-	elseif ARGS[1] = 9:
+	elseif ARGS[2] = 9:
 		!	110 < strenbuf <= 120
 		result += 0
-	elseif ARGS[1] = 10:
+	elseif ARGS[2] = 10:
 		!	120 < strenbuf <= 130
 		result -= 5
-	elseif ARGS[1] = 11:
+	elseif ARGS[2] = 11:
 		!	130 < strenbuf <= 140
 		result -= 15
-	elseif ARGS[1] = 12:
+	elseif ARGS[2] = 12:
 		!	140 < strenbuf <= 150
 		result -= 30
-	elseif ARGS[1] = 13:
+	elseif ARGS[2] = 13:
 		!	150 < strenbuf <= 160
 		result -= 45
-	elseif ARGS[1] = 14:
+	elseif ARGS[2] = 14:
 		!	160 < strenbuf <= 170
 		result -= 60
-	elseif ARGS[1] = 15:
+	elseif ARGS[2] = 15:
 		!	170 < strenbuf <= 180
 		result -= 75
-	elseif ARGS[1] = 16:
+	elseif ARGS[2] = 16:
 		!	180 < strenbuf <= 190
 		result -= 100
 	else
@@ -588,4 +737,36 @@ if $ARGS[0] = 'appearance_bonus_from_class':
 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 ---------------------------------

+ 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 -------------------------------

+ 590 - 0
locations/court_arrest_events.qsrc

@@ -0,0 +1,590 @@
+# court_arrest_events
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                            PRE-BOOKING                            !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+if $ARGS[0] = 'booking_start':
+	if $ARGS[1] = 'shplft' or $ARGS[1] = 'shoplift':
+		gs 'court_functions', 'arrest_for', 'shoplift'
+		temp_tot_arrests = func('court_functions', 'get_total_arrests')
+
+		if temp_tot_arrests = 1:
+			!!a gosub on purpose!!
+			gs 'court_arrest_events', 'first_shoplift'
+		elseif temp_tot_arrests < 6:
+			gt 'court_arrest_events', 'repeat'
+		elseif temp_tot_arrests < 11:
+			gt 'court_arrest_events', 'multiple'
+		else
+			gt 'court_arrest_events', 'regular'
+		end
+
+	elseif $ARGS[1] = 'prst' or $ARGS[1] = 'prostitution':
+		gs 'court_functions', 'arrest_for', 'prostitution'
+		temp_tot_arrests = func('court_functions', 'get_total_arrests')
+
+		if temp_tot_arrests = 1:
+			!!a gosub on purpose!!
+			gs 'court_arrest_events', 'first_prostitution'
+		elseif temp_tot_arrests < 6:
+			gt 'court_arrest_events', 'repeat'
+		elseif temp_tot_arrests < 11:
+			gt 'court_arrest_events', 'multiple'
+		else
+			gt 'court_arrest_events', 'regular'
+		end
+	end
+end
+
+if $ARGS[0] = 'booking_end':
+	gt 'police_station', 'booking'
+end
+
+
+	!!-------------------------------------------------------------------!!
+	!!                         PRE-BOOKING EVENTS                        !!
+	!!-------------------------------------------------------------------!!
+
+
+if $ARGS[0] = 'first_shoplift':
+	cla
+	minut += 2
+	gs 'pain', 2, 'armR', 'pinch'
+	gs 'stat'
+
+	if policeQW['toldonguard'] = 2:
+		!! if had sex with the security guard but still got arrested
+		'"I''m not lying, that security guard forced me to have sex with him! Why won''t you believe me?" you plead, but it does you no good.'
+		'The officer sighs, "You think you''re the first to try that? I''ve heard it all from you thieving little whores. You''re not the victim here!"'
+		*nl
+		'With a dejected whimper, you look down to the floor as you''re led further into the station to be booked.'
+
+	elseif grupTipe = 4:
+		'"Security over at the mall caught a wild one today. This little bitch tried to bite me as I was bringing her in!"'
+		'The others shake their head as he leads you further inside the police station.'
+		*nl
+		'"Wow, you''re real tough, manhandling a girl barely half your size," you hiss.'
+		'"You think this is being too rough? I can show you a thing or two about real pain," he threatens.'
+
+	elseif pcs_hotcat >= 7:
+		'"Look who was caught stealing by the security guys at the mall! I guess being pretty can''t get you everything you want," he says with a cruel laugh.'
+		'Most of officers just grin and laugh, but you hear a few make crude comments as you''re led further inside the police station.'
+		*nl
+		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
+		'"Being pretty isn''t going to get you any special treatment, girly. You''re a criminal, just like everyone else brought through here," he spits back.'
+
+	elseif pcs_hotcat <= 3:
+		'"You''ll never guess what she was brought in for!" he laughs. "Security at the mall caught this one trying to steal beauty products. You can put makeup on a pig but it''ll still be a pig!"'
+		'The others laugh loudly as he leads you further inside the police station.'
+		*nl
+		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
+		'"What were you thinking stealing make-up?" he asks, ignoring your pleas. "It wouldn''t do you a damn bit of good. You''d still look like you were hit with a brick!"'
+
+	else
+		!if plain looking
+		'"The security guys over at the mall caught this little mouse trying to steal some stuff. I guess looks can be deceiving; I would have never thought she''d be the type."'
+		'Some of the other officers just shrug or click their tongue disapprovingly before he leads you deeper inside the police station.'
+		*nl
+		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
+		'"Oh, don''t like the way I''m treating you, little mouse? Well, you should have thought about that before trying to play thief!" he spits back.'
+	end
+
+	act 'Continue further in': gt 'court_arrest_events', 'booking_end'
+end
+
+
+if $ARGS[0] = 'first_prostitution':
+	minut += 2
+	gs 'pain', 2, 'armR', 'pinch'
+	gs 'stat'
+
+	if policeQW['prostitution_bribe'] = 1:
+		if pcs_hotcat <= 3:
+			!else if ugly and bribed the officer with sex
+			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
+			'The others shake their head, "What was she thinking? No one would fuck someone as ugly as her!"'
+			'You hang your head in shame as you''re led further into the station for booking.'
+
+		elseif pcs_hotcat >= 7:
+			!else if beautiful and bribed the officer with sex
+			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
+			'The other officers eye you hungrily, "You''re a better man than me!" one of them exclaim. "Just look at her, how often do you get a chance like that? I would have said yes!"'
+			'A small smile plays across your face, feeling a tiny bit flattered as you''re led further into the station to get booked.'
+
+		else
+			!else if plain and bribed the officer with sex
+			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
+			'The others jokingly say, "Well, she doesn''t look that bad. I wouldn''t have agreed, but I can see it working on someone else..."'
+			'You frown at their rude remarks, but remain silent as you''re led further into the station to be booked.'
+		end
+
+	else
+		if pcs_hotcat <= 3:
+			!Prostitute event, this will be an continuation to the prostitute events that happened earlier
+			!if ugly
+			'"I caught this one whoring herself out. Can you believe that? Who would ever want to fuck this pig?!" he exclaims, and the staff erupt with laughter.'
+			'"What was she thinking? Honestly, you''ve done everyone a favor getting her off the streets," says one of the officers before you''re led further into the station.'
+
+		elseif pcs_hotcat >= 7:
+			!else if beautiful
+			'"I caught this one whoring herself out on the street corner. Such a waste," he turns to you and shakes his head. "A hot thing like you could shack up with some rich guy and leech off him, but I guess that''s not enough for a cock hungry whore like you, huh? One just ain''t enough."'
+			*nl
+			'The other officers laugh cruelly. "It really is a shame, just look at her-- she''s damn gorgeous. You must have some real issues to be selling yourself to strangers."'
+			*nl
+			'"I''m sure the money is great!" The officer holding you laughs loudly as he leads you further inside the police station.'
+
+		else
+			!else if plain
+			'"I caught this one whoring herself out. She ain''t bad looking, but you know she''s not making money like those other girls," he says with a disappointing click of the tongue'
+			'The other officers shrug and shake their heads. "Probably some cheap bastards out there that can''t afford to be picky," one speaks up as you''re led further into the station.'
+		end
+	end
+
+	act 'Continue further in': gt 'court_arrest_events', 'booking_end'
+end
+
+
+
+if $ARGS[0] = 'repeat':
+	minut += 2
+	gs 'pain', 2, 'armR', 'pinch'
+	gs 'stat'
+
+	police_event = rand(1, 5)
+	!else repeat offender, the looks doesn''t matter only the variable that you''re being booked again
+	!randomized events
+	if police_event = 1:
+		'"Look who''s back! She just couldn''t stay out of trouble."'
+		'The others smile and shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 2:
+		'"She really likes getting in trouble! Must be the good food that is served here."'
+		'The others laugh and shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 3:
+		'"Look who I brought back with me. She just can''t keep away from here!"'
+		'The others smile and shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 4:
+		'"Time to book <<$pcs_lastname>> again. She just can''t keep out of trouble."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 5:
+		'"You really like to get in trouble, don''t you?"'
+		'The others shake their heads as he leads you further inside the police station.'
+	end
+	killvar 'police_event'
+
+	act 'Continue further in': gt 'court_arrest_events', 'booking_end'
+end
+
+if $ARGS[0] = 'multiple':
+	minut += 2
+	gs 'pain', 2, 'armR', 'pinch'
+	gs 'stat'
+
+	police_event = rand(1,5)
+	!triggered more than 5 times, randomized
+	if police_event = 1:
+		'"You''re getting a bit familiar with this place, aren''t you?"'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 2:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "Why won''t you learn? You know doing this will only lead to worse things..."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 3:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "I''m getting tired of seeing you around here, <<$pcs_lastname>>..."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 4:
+		'The staff sitting at the reception desk glance at you while the officer sighs tiredly, "You''re flushing your life straight down the shitter if you keep this up, <<$pcs_lastname>>."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 5:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "Here we go again. You know the drill, <<$pcs_lastname>>..."'
+		'The others shake their heads as he leads you further inside the police station.'
+	end
+	killvar 'police_event'
+
+	act 'Continue further in': gt 'court_arrest_events', 'booking_end'
+end
+
+if $ARGS[0] = 'regular':
+	minut += 2
+	gs 'pain', 2, 'armR', 'pinch'
+	gs 'stat'
+
+	police_event = rand(1, 8)
+	!triggered more than 10 times, randomized
+	if police_event = 1:
+		'The staff sitting at the reception desk glance your way as the arresting officer glares down at you, "I''m sick and tired of processing you, <<$pcs_lastname>>! I hope they lock you away for a long time!"'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 2:
+		'The staff sitting at the reception desk glance your way as the arresting officer smirks, "Well, if it isn''t our favorite customer. How long will you be staying this time?"'
+		'The others laugh loudly as he leads you further inside the police station.'
+
+	elseif police_event = 3:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "Why do you continue doing this, <<$pcs_lastname>>? Aren''t you getting tired of this life?"'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 4:
+		'The staff sitting at the reception desk glance at you as the arresting officer smiles sarcastically, "What a surprise, it''s our favorite little criminal!"'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 5:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "May they lock you up for a long time..."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 6:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "There''s really no saving you, <<$pcs_lastname>>..."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 7:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "I hope they give you a long sentence this time..."'
+		'The others shake their heads as he leads you further inside the police station.'
+
+	elseif police_event = 8:
+		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "I don''t know what to say anymore, <<$pcs_lastname>>... You''re really a lost case..."'
+		'The others shake their heads as he leads you further inside the police station.'
+	end
+	killvar 'police_event'
+
+	act 'Continue further in': gt 'court_arrest_events', 'booking_end'
+end
+
+
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                           INTERROGATION                           !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+if $ARGS[0] = 'interrogation_start':
+	if $policeQW['crime_flag'] = 'shoplift':
+		if $ARGS[1] = 'easy':
+			gt 'court_arrest_events', 'shoplift_easy'
+		elseif $ARGS[1] = 'norm':
+			gt 'court_arrest_events', 'shoplift_norm'
+		else
+			gt 'court_arrest_events', 'shoplift_hard'
+		end
+
+	elseif $policeQW['crime_flag'] = 'prostitution':
+		if $ARGS[1] = 'easy':
+			gt 'court_arrest_events', 'prostitution_easy'
+		elseif $ARGS[1] = 'norm':
+			gt 'court_arrest_events', 'prostitution_norm'
+		else
+			gt 'court_arrest_events', 'prostitution_hard'
+		end
+	end
+end
+
+if $ARGS[0] = 'interrogation_end':
+	 gt 'police_station', 'returncell'
+end
+
+
+	!!-------------------------------------------------------------------!!
+	!!                        INTERROGATION EVENTS                       !!
+	!!-------------------------------------------------------------------!!
+
+
+if $ARGS[0] = 'shoplift_easy':
+	!easy going detective
+	minut += 20
+	gs 'stat'
+
+	picrand = rand(1, 2)
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+	'He takes a seat at the table opposite of you, "So caught stealing, eh?" he asks.'
+	'You nervously look around trying to avoid eye-contact...'
+	'He''s quick to notice your nervousness and tells you to relax, he only wants to know what happened. "Now start from the beginning..."'
+	'You take a deep breath and begin confessing your crime as the detective listens attentively.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['toldonguard'] = 2:
+			policeQW['toldonguard'] = 1
+
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'You tear up, "So in the end the security guard forced me to have sex with him..."'
+			'The detective looks up, "Sounds awful! I''ll send some officers over to have a talk with him and we''ll take actions against him... assuming you''re telling the truth."'
+			'You nod your head, "I am, I promise!" You say before continuing to admit to everything while the detective writes down some notes.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and as you''ve made my job easy by admitting to everything, I can get you in front of him today. Don''t worry I''ll put in a good word for you," he reassures gently.'
+
+		else
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'As you finish you see the detective write down one last thing before looking at you, "Good, that''s everything I need."'
+			'"What will happen to me?" you ask.'
+			'"Don''t worry, it was a petty crime and you''ve been more than cooperative with me and the booking officer, so I''ll put in a good word for you to the civil court judge," he reassures you.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+if $ARGS[0] = 'shoplift_norm':
+!normal detective
+	minut += 20
+	gs 'stat'
+
+	picrand = rand(1, 2)
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+	'He takes a seat opposite of you, "So caught stealing, eh?" he asks.'
+	'You nervously look around trying to avoid eye-contact...'
+	'"Look here <<$pcs_firstname>>, I''m just trying to do my job so lets make this quick and easy: tell the truth and confess to everything."'
+	'You take a deep breath and begin to talk.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['toldonguard'] = 2:
+			policeQW['toldonguard'] = 1
+
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'You tear up, "So in the end the security guard forced me to have sex with him..."'
+			'The detective really isn''t paying attention to you as he scribbles things down, "I''ll see if there are any free officers to head over and interrogate the security guard about it."'
+			'You nod your head before continuing the confession. The officer looks bored, but he continues writing everything down.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything... we might as well take you in front of him and see how it goes," he says tiredly.'
+
+		else
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'As you finish you confessing, the detective looks at you with an unreadable expression. "Well, you''ve pretty much confessed to everything, <<$pcs_firstname>>. It''s an open and shut case."'
+			'"What will happen to me?" you ask.'
+			'"Who knows, I''m not the civil court judge," he shrugs.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+if $ARGS[0] = 'shoplift_hard':
+!rough detective
+	minut += 20
+	gs 'stat'
+
+	picrand = rand(1, 2)
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+	'He takes a seat opposite of you, "So caught stealing, eh?" he asks.'
+	'You shrug your shoulders nonchalantly, not really caring what might happen.'
+	'"Don''t waste my time, <<$pcs_firstname>>," he threatens. "If you won''t take this seriously, then I won''t put in the effort to give a shit what happens to you. Now, stop fucking around and tell me everything you did."'
+	'You stutter as you begin confessing.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['toldonguard'] = 2:
+			policeQW['toldonguard'] = 1
+
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'You tear up, "So in the end the security guard forced me to have sex with him..."'
+			'The detective''s scowl deepens as he glares at you. "You think you can just say shit like that and get away with everything? Stop lying, or I''ll throw you back in that cell with that crazy woman."'
+			'You shake your head, "I''m telling the truth! Why won''t you believe me?"'
+			'The detective lets out a loud sigh, "Sticking to your lies, huh? Fine but let me be clear: lying about a hard working security officer like this just to get away with stealing is going to make you an enemy to a lot of people around here, including the judge you''re about to see. I''m sure he''ll love to hear your swan song."'
+
+		else
+			picrand = rand(1, 2)
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
+			'As you finish, the detective looks up at you, "Good, that''s everything I need from you. Makes my job easier, y''know."'
+			'"What will happen to me?" you ask.'
+			'"Hopefully the civil court judge will give be going for a long and hard sentence. Criminals need to be taught a lesson," he says coldly.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+if $ARGS[0] = 'prostitution_easy':
+	!easy going detective
+	minut += 20
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
+	'You nervously look around trying to avoid eye-contact...'
+	'He''s quick to notice your nervousness and tells you to relax, he only wants to know what happened. "Now start from the beginning..."'
+	'You take a deep breath and begin confessing your crime as the detective listens attentively.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['prostitution_bribe'] = 2:
+		!if tried to bribe the officer with sex
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'After a while listening to your story the detective clears his throat, "And this was when you tried to offer the officer sex?"'
+			'You stop and nod your head, "Yes, I... I thought it would get me off the hook..." You continue to confess while the detective writes down some notes.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him. I''ll try to put in a good word for you," he says.'
+
+		elseif policeQW['prostitution_bribe'] = 1:
+		!else if tried to bribe the officer with money
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'After a while listening to your story the detective clears his throat, "And this was when you tried to offer the officer money?"'
+			'You stop and nod your head, "Yes, I... I thought it would get me off the hook..." You continue to confess while the detective writes down some notes.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him. I''ll try to put in a good word for you," he says.'
+
+		else
+			!this will show up otherwise
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'As you finish, you see the detective write down one last thing before looking at you, "Good, that''s everything I need."'
+			'"What will happen to me?" you ask.'
+			'"Don''t worry, the civil court judge probably won''t care too much about the crime and both the booking officer and I will put in a good word for you since you made our job easy and confessed to everything. The punishment, if there is one, shouldn''t be too bad," he reassures you.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+if $ARGS[0] = 'prostitution_norm':
+!normal detective
+	minut += 20
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
+	'You nervously look around trying to avoid eye-contact...'
+	'"Look here <<$pcs_firstname>>, I''m just trying to do my job here so how about you confess and we''ll take it from there..."'
+	'You take a deep breath and begin to talk.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['prostitution_bribe'] = 2:
+		!if tried to bribe the officer with sex
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'You tear up, "And this is where I thought I could bribe the officer with sex..."'
+			'The detective, not really paying attention, scribbles it down, "Attempted to bribe the officer with sex," he repeats.'
+			'You nod your head before continuing to confess to the bored looking officer.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him and we''ll see how it goes..." he says tiredly.'
+
+		elseif policeQW['prostitution_bribe'] = 1:
+		!if tried to bribe the officer with money
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'You tear up, "And this is where I thought I could bribe the officer with money..."'
+			'The detective, not really paying attention, scribbles it down, "Attempted to bribe the officer with money," he repeats.'
+			'You nod your head before continuing to confess to the bored looking officer.'
+			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him and we''ll see how it goes..." he says tiredly.'
+
+		else
+		!this will show up otherwise
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'As you finish, you see the detective write down one last thing before looking at you, "Well, you''ve pretty much confessed to everything, <<$pcs_firstname>>. It''s an open and shut case."'
+			'"What will happen to me?" you ask.'
+			'"Truth be told, I don''t really know what kind of sentence the judge will be going for..." he tells you.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+if $ARGS[0] = 'prostitution_hard':
+!rough detective
+	minut += 20
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
+	'You shrug your shoulders nonchalantly not really caring what might happened.'
+	'"Don''t waste my time, <<$pcs_firstname>>," he threatens. "If you won''t take this seriously, then I won''t put in the effort to give a shit what happens to you. Now, stop fucking around and tell me everything you did."'
+	'You stutter as you begin confessing.'
+
+	act 'Continue':
+		*clr & cla
+		gs 'stat'
+
+		if policeQW['prostitution_bribe'] = 2:
+		!if tried to bribe the officer with sex
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'You tear up, "And this is where I thought I could bribe the officer with sex..."'
+			'The detective''s face twists into a scowl. "You think you can get away with this by accusing someone of rape?!"'
+			'You shake your head, "Not at all! I''ve heard from the other girls that they''ve gotten away by doing that, so I thought--"'
+			'He slams his fist down on the table. "You think you can get away with telling these kind of lies against our fine police force?! You''re in deep shit now, <<$pcs_firstname>>. I''m taking you to see the judge, and we''ll see how he likes hearing you make a mockery of our justice system."'
+
+		elseif policeQW['prostitution_bribe'] = 1:
+		!if tried to bribe the officer with money
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'You tear up, "And this is where I thought I could bribe the officer with money..."'
+			'The detective''s face twists into a scowl. "You thought you could just buy your way out of this? That''s not how the world works, your actions have consequences!"'
+			'You shake your head, "Not at all! I''ve heard from the other girls that they''ve gotten away by doing that, so I thought--"'
+			'He slams his fist down on the table. "You think you can get away with telling these kind of lies against our fine police force?! You''re in deep shit now, <<$pcs_firstname>>. I''m taking you to see the judge, and we''ll see how he likes hearing you make a mockery of our justice system."'
+
+		else
+		!this will show up otherwise
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
+			'As you finish you see the detective looks at you, "Good just what I was looking for. You''ve confessed everything. Makes my and the prosecutors job easier."'
+			'"What will happen to me?" you ask.'
+			'"Hopefully the judge will give you a long and hard sentence." he angrily answers you.'
+		end
+
+		act 'Return to the holding cell': gt 'court_arrest_events', 'interrogation_end'
+	end
+end
+
+
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                          CELLMATE STORY                           !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+if $ARGS[0] = 'cellmate_story':
+	if $policeQW['crime_flag'] = 'shoplift':
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityhold.jpg"></center>'
+		'"I got caught while I was stealing stuff," you answer nonchalantly.'
+		'The woman smirks, "A petty crime, you''ll be fine."'
+		'"What are you in for?" you ask her.'
+		'She starts laughing, "I refused to bribe one of these fuckers while I was prostituting so they brought me in as a punishment."'
+		'"I see..." you answer a bit taken back by her openness.'
+
+	elseif $policeQW['crime_flag'] = 'prostitution':
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityhold.jpg"></center>'
+		'"I got caught while I was prostituting," you answer nonchalantly.'
+		'She smiles surprisingly, "You too?!" The two of you start to laugh loudly.'
+		'"I refused to bribe one of these fuckers while I was prostituting so they brought me in as a punishment," she tells you, "So where do you usually work I haven''t seen you around?" she asks.'
+		'"Yeah same thing happened to me," you answer, "Here and there. I try to keep myself away from the usual spots." you explain.'
+	end
+end
+
+
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                         VARIABLE CLEANUP                          !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+killvar 'temp_tot_arrested'
+
+
+--- court_arrest_events ---------------------------------

+ 30 - 0
locations/court_functions.qsrc

@@ -0,0 +1,30 @@
+# court_functions
+
+if $ARGS[0] = 'get_total_arrests':
+	result = policeQW['shoplift_booked'] + policeQW['prostitution_booked']
+end
+
+if $ARGS[0] = 'arrest_for':
+	policeQW['<<$ARGS[1]>>_booked'] += 1
+	$policeQW['crime_flag'] = $ARGS[1]
+end
+
+!! gs 'add_fine', fine
+if $ARGS[0] = 'add_fine':
+	policeQW['legal_fine'] += ARGS[1]
+
+	temp_tot_missed = max(0, policeQW['tot_court_dates_missed'] + policeQW['tot_fines_deadlines_missed'])
+	temp_current_missed = max(0, policeQW['missed_fine_deadlines'] + policeQW['missed_court_dates'] - 1)
+
+	if policeQW['fine_deadline'] = 0:
+		policeQW['fine_deadline'] = daystart + 28 - min(14, temp_tot_missed / 4)
+	else
+		policeQW['fine_deadline'] = max(daystart, policeQW['fine_deadline']) + 14 - min(7, 2 * temp_current_missed + temp_tot_missed / 4)
+	end
+
+	killvar 'temp_current_missed'
+	killvar 'temp_tot_missed'
+end
+
+
+--- court_functions ---------------------------------

+ 500 - 0
locations/court_sentence_events.qsrc

@@ -0,0 +1,500 @@
+# court_sentence_events
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                               JUDGE                               !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+if $ARGS[0] = 'judge_start':
+	if $mid($ARGS[1], 1, 8) = 'shoplift':
+		gt 'court_sentence_events', 'judge_shoplift', $mid($ARGS[1], 10)
+
+	elseif $mid($ARGS[1], 1, 12) = 'prostitution':
+		gt 'court_sentence_events', 'judge_prostitution', $mid($ARGS[1], 14)
+
+	else
+		gs 'LOCA', 'mod_sentenceevents', 'hearing'
+	end
+end
+
+if $ARGS[0] = 'judge_end':
+	gt 'sentence', 'punishment'
+end
+
+
+	!!-------------------------------------------------------------------!!
+	!!                            JUDGE EVENTS                           !!
+	!!-------------------------------------------------------------------!!
+
+
+if $ARGS[0] = 'judge_shoplift':
+	'<center><img <<$set_imgh>> src="images/locations/city/shared/court/judge.jpg"></center>'
+	'The judge speaks up with a stern voice, "So I see that you''re here because of you''ve gotten caught stealing."'
+	'You sink your glance in shame and nod meekly.'
+	'The judge continues on, "Let''s see what the detectives concluded during their investigation."'
+
+	if $mid($ARGS[1], 1, 4) = 'easy':
+		'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective seem to be quite positive in the report."'
+		'Suddenly, you feel a bit emboldened as the detective seems to have come through for you. You even manage to let out a little smirk.'
+		'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
+		'"Yes your honor." you respectfully answer.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+
+	elseif $mid($ARGS[1], 1, 4) = 'norm':
+		'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective has only written neutral comments in the report."'
+		'Suddenly, you feel a bit looser as you can probably expect a lighter sentencing than usual. You let out a relieving sigh.'
+		'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
+		'"Yes your honor." you respectfully answer.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+
+	else
+		'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, what is wrong with you? The report written by the detective is quite damaging and you will be getting a harsher sentencing."'
+		'You look nonchalantly at the judge, almost ignoring what he has to say.'
+		'"Well as you''ve already admitted being guilty, no need listening to your pleading," he sternly looks at you.'
+		'"Whatever." you shrug your shoulders.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+	end
+end
+
+if $ARGS[0] = 'judge_prostitution':
+	'<center><img <<$set_imgh>> src="images/locations/city/shared/court/judge.jpg"></center>'
+	'The judge speaks up with a stern voice, "So I see that you''re here because of you''ve gotten caught prostituting."'
+	'You sink your glance in shame and nod meekly.'
+	'The judge continues on, "Let''s see what the detectives concluded during their investigation."'
+
+	if $mid($ARGS[1], 1, 4) = 'easy':
+		'Suddenly, you feel a bit emboldened as the detective seems to have come through for you. You even manage to let out a little smirk.'
+		'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
+		'"Yes your honor." you respectfully answer.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+
+	elseif $mid($ARGS[1], 1, 4) = 'norm':
+		'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective has only written neutral comments in the report."'
+		'Suddenly, you feel a bit looser as you can probably expect a lighter sentencing than usual. You let out a relieving sigh.'
+		'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
+		'"Yes your honor." you respectfully answer.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+
+	else
+		'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, what is wrong with you? The report written by the detective is quite damaging and you will be getting a harsher sentencing."'
+		'You look nonchalantly at the judge, almost ignoring what he has to say.'
+		'"Well as you''ve already admitted being guilty, no need listening to your pleading," he sternly looks at you.'
+		'"Whatever." you shrug your shoulders.'
+
+!!do a check if the player missed any earlier sentencing
+		if policeQW['missed_court_dates'] > 0:
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
+			'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
+			'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
+			'You try your best to hold back the tears as you nod that you understand.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+
+		else
+			'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
+			'You nod and take a deep breath as you await your punishment.'
+
+			act 'Await punishment': gt 'court_sentence_events', 'judge_end'
+		end
+	end
+end
+
+
+
+
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                            PUNISHMENT                             !!
+	!!                                                                   !!
+	!!===================================================================!!
+
+
+if $ARGS[0] = 'punishment_start':
+	if $mid($ARGS[1], 1, 8) = 'shoplift':
+		policeQW['shoplift_counter'] += 1
+		gs 'court_sentence_events', 'punishment_shoplift', $mid($ARGS[1], 10)
+
+	elseif $mid($ARGS[1], 1, 12) = 'prostitution':
+		policeQW['prostitution_counter'] += 1
+		gs 'court_sentence_events', 'punishment_shoplift', $mid($ARGS[1], 14)
+
+	else
+		gs 'LOCA', 'mod_sentenceevents', 'punishment', $ARGS[1]
+	end
+end
+
+
+	!!-------------------------------------------------------------------!!
+	!!                         PUNISHMENT EVENTS                         !!
+	!!-------------------------------------------------------------------!!
+
+if $ARGS[0] = 'punishment_shoplift':
+	if policeQW['shoplift_counter'] <= 5:
+	!Stage 1
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 5000 + (policeQW['shoplift_value'] / 2)
+
+			'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office. You''ve been lucky this time Miss <<$pcs_lastname>>." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 5000 + policeQW['shoplift_value']
+
+			'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 5000 + (3 * policeQW['shoplift_value'] / 2)
+
+			'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office. And if it happens that you appear in front of this court again, check your attitude." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['shoplift_counter'] <= 10:
+	!Stage 2
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 7500 + (3 * policeQW['shoplift_value'] / 4)
+
+			'"Seems that I need to increase the fine for you to pay back to a sum of <<temp_fine>> <b>₽</b>. Hopefully, this will teach you a lesson." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 7500 + (3 * policeQW['shoplift_value'] / 2)
+
+			'"Seems that I need to increase the fine for you to pay back to a sum of <<temp_fine>> <b>₽</b>. Hopefully, this will teach you a lesson." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 7500 + (9 * policeQW['shoplift_value'] / 4)
+
+			'"I sentence you hereby to pay back a sum of <<temp_fine>> <b>₽</b> and I''ll also sentence you to some community service at the Mercy Clinic to 20 hours, hopefully this will help." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic? I see you''ve still got an attitude issue." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['shoplift_counter'] <= 15:
+	!Stage 3
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 10000 + policeQW['shoplift_value']
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 10000 + (2 * policeQW['shoplift_value'])
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 10000 + (5 * policeQW['shoplift_value'] / 2)
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['shoplift_counter'] <= 20:
+	!Stage 4
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 15000 + (5 * policeQW['shoplift_value'] / 4)
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 15000 + (5 * policeQW['shoplift_value'] / 2)
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 15000 + (3 * policeQW['shoplift_value'])
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 80 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['shoplift_counter'] <= 25:
+	!Stage 5
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 25000 + (3 * policeQW['shoplift_value'] / 2)
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay this fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 40 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 25000 + (3 * policeQW['shoplift_value'])
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 25000 + (4 * policeQW['shoplift_value'])
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	else
+	!Stage 6
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 50000 + (2 * policeQW['shoplift_value'])
+
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 50000 + (4 * policeQW['shoplift_value'])
+
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 50000 + (5 * policeQW['shoplift_value'])
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 160 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+	end
+end
+
+if $ARGS[0] = 'punishment_prostitution':
+	if policeQW['prostitution_counter'] <= 5:
+	!Stage 1
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 6000
+
+			'"I hereby sentence you to a fine of 6000 <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office. You''ve been lucky this time Miss <<$pcs_lastname>>." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 7000
+
+			'"I hereby sentence you to a fine of 7000 <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 8000
+
+			'"I hereby sentence you to a fine of 8000 <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office. And if it happens that you appear in front of this court again, check your attitude." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['prostitution_counter'] <= 10:
+	!Stage 2
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 9000
+
+			'"I need to increase the fine to 9000 <b>₽</b>. Hopefully, this will get you to reconsider your actions." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 10500
+
+			'"I need to increase the fine to 10,500 <b>₽</b>. Hopefully, this will get you to reconsider your actions." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 11500
+
+			'"I sentence you hereby to pay a fine of 11,500 <b>₽</b> and I''ll also add some community service at the Mercy Clinic to 20 hours, hopefully this will help you reconsider your actions." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic? I see you''ve still got an attitude issue." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['prostitution_counter'] <= 15:
+	!Stage 3
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 12000
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 12000 <b>₽</b>." the judge reads out your sentence.'
+			'"You can pay your fine at the post office." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 14000
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 14000 <b>₽</b> and sentence you to community service at the Mercy Clinic for 20 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 15000
+
+			'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 15000 <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['prostitution_counter'] <= 20:
+	!Stage 4
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 17500
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 17500 <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 20000
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 20000 <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 21000
+
+			'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 21000 <b>₽</b> and increase the community service at the Mercy Clinic to 80 hours." the judge reads out your sentence.'
+			'"You already know what you need to do." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	elseif policeQW['prostitution_counter'] <= 25:
+	!Stage 5
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 28000
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay this fine of 28000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 40 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 21000
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of 31000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 32000
+
+			'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of 32000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
+			'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+
+	else
+	!Stage 6
+		if $mid($ARGS[1], 1, 4) = 'easy':
+			gs 'court_functions', 'add_fine', 55000
+
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 55000 <b>₽</b> and the community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		elseif $mid($ARGS[1], 1, 4) = 'norm':
+			gs 'court_functions', 'add_fine', 57500
+
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 57500 <b>₽</b> and the community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+
+		else
+			gs 'court_functions', 'add_fine', 60000
+
+			'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 60000 <b>₽</b> and the community service at the Mercy Clinic for 160 hours." the judge reads out your sentence.'
+			'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
+			'You nod and quickly make your way out of courtroom.'
+		end
+	end
+end
+
+--- court_sentence_events ---------------------------------

+ 2 - 2
locations/courtletter.qsrc

@@ -149,7 +149,7 @@ if $ARGS[0] = 'letter':
 		end
 
 
-	elseif mid($policeQW_courtletter_subjects[0], 1, 12) = 'missed_court':
+	elseif $mid($policeQW_courtletter_subjects[0], 1, 12) = 'missed_court':
 		if week = 6:
 			policeQW_courthearing_dates[] = daystart + 9
 		elseif week = 7:
@@ -158,7 +158,7 @@ if $ARGS[0] = 'letter':
 			policeQW_courthearing_dates[] = daystart + 7
 		end
 
-		$policeQW_courthearing_subjects[] = mid($policeQW_courtletter_subjects[0], 14)
+		$policeQW_courthearing_subjects[] = $mid($policeQW_courtletter_subjects[0], 14)
 
 		if policeQW['courtletter_hearing_counter'] < 10:
 			policeQW['courtletter_hearing_counter'] += 1

+ 71 - 71
locations/cum_cleanup.qsrc

@@ -152,107 +152,107 @@ elseif $ARGS[0] = '':
 			exit
 		end
 		!{full external clean}
-		if isprok = 0 and vibratorIN = 0: deresidue[arrsize('deresidue')] = 0
-		if analplugin = 0: deresidue[arrsize('deresidue')] = 3
-		toclean[arrsize('toclean')] = 1
-		toclean[arrsize('toclean')] = 2
-		toclean[arrsize('toclean')] = 4
-		toclean[arrsize('toclean')] = 5
-		toclean[arrsize('toclean')] = 6
-		toclean[arrsize('toclean')] = 7
-		toclean[arrsize('toclean')] = 8
-		toclean[arrsize('toclean')] = 9
-		toclean[arrsize('toclean')] = 10
-		toclean[arrsize('toclean')] = 11
-		toclean[arrsize('toclean')] = 12
-		toclean[arrsize('toclean')] = 13
-		toclean[arrsize('toclean')] = 14
-		toclean[arrsize('toclean')] = 15
-		toclean[arrsize('toclean')] = 16
+		if isprok = 0 and vibratorIN = 0: deresidue[] = 0
+		if analplugin = 0: deresidue[] = 3
+		toclean[] = 1
+		toclean[] = 2
+		toclean[] = 4
+		toclean[] = 5
+		toclean[] = 6
+		toclean[] = 7
+		toclean[] = 8
+		toclean[] = 9
+		toclean[] = 10
+		toclean[] = 11
+		toclean[] = 12
+		toclean[] = 13
+		toclean[] = 14
+		toclean[] = 15
+		toclean[] = 16
 	elseif cumspclnt = 2:
 		!{teeth clean}
-		toclean[arrsize('toclean')] = 12
+		toclean[] = 12
 	elseif cumspclnt = 3:
 		!{internal clean}
-		toclean[arrsize('toclean')] = 0
-		toclean[arrsize('toclean')] = 3
-		toclean[arrsize('toclean')] = 17
+		toclean[] = 0
+		toclean[] = 3
+		toclean[] = 17
 		if hypnoAddict > 0 and (cumloc[0] > 0 or cumloc[3] > 0): 'You have no reason to, but you carefully avoid cleaning out your pussy and ass.'
 	elseif cumspclnt = 4:
 		!{external body clean}
-		toclean[arrsize('toclean')] = 1
-		toclean[arrsize('toclean')] = 4
-		toclean[arrsize('toclean')] = 8
-		toclean[arrsize('toclean')] = 9
-		toclean[arrsize('toclean')] = 10
-		toclean[arrsize('toclean')] = 11
-		toclean[arrsize('toclean')] = 13
-		toclean[arrsize('toclean')] = 14
-		toclean[arrsize('toclean')] = 15
-		toclean[arrsize('toclean')] = 16
+		toclean[] = 1
+		toclean[] = 4
+		toclean[] = 8
+		toclean[] = 9
+		toclean[] = 10
+		toclean[] = 11
+		toclean[] = 13
+		toclean[] = 14
+		toclean[] = 15
+		toclean[] = 16
 	elseif cumspclnt = 5:
 		!{hair clean}
-		toclean[arrsize('toclean')] = 16
+		toclean[] = 16
 	elseif cumspclnt = 6:
 		!{clothes clean}
-		toclean[arrsize('toclean')] = 2
-		toclean[arrsize('toclean')] = 5
-		toclean[arrsize('toclean')] = 6
-		toclean[arrsize('toclean')] = 7
+		toclean[] = 2
+		toclean[] = 5
+		toclean[] = 6
+		toclean[] = 7
 	elseif cumspclnt = 7:
 		!{enema}
-		toclean[arrsize('toclean')] = 3
+		toclean[] = 3
 	elseif cumspclnt = 8:
 		!{blank}
 	elseif cumspclnt = 9:
 		!{wash hands}
-		toclean[arrsize('toclean')] = 13
+		toclean[] = 13
 	elseif cumspclnt = 11:
 		!{wash face}
-		toclean[arrsize('toclean')] = 11
+		toclean[] = 11
 	elseif cumspclnt = 12:
 		!{face and hair}
-		toclean[arrsize('toclean')] = 11
-		toclean[arrsize('toclean')] = 16
+		toclean[] = 11
+		toclean[] = 16
 	elseif cumspclnt = 13:
 		!{head}
-		toclean[arrsize('toclean')] = 11
-		toclean[arrsize('toclean')] = 12
-		toclean[arrsize('toclean')] = 16
+		toclean[] = 11
+		toclean[] = 12
+		toclean[] = 16
 	elseif cumspclnt = 14:
 		!{belly}
-		toclean[arrsize('toclean')] = 14
+		toclean[] = 14
 	elseif cumspclnt = 15:
 		!{wipe ass/pussy}
-		toclean[arrsize('toclean')] = 1
-		toclean[arrsize('toclean')] = 4
-		deresidue[arrsize('deresidue')] = 0
-		deresidue[arrsize('deresidue')] = 3
+		toclean[] = 1
+		toclean[] = 4
+		deresidue[] = 0
+		deresidue[] = 3
 		if hypnoAddict > 0 and (cumloc[0] > 0 or cumloc[3] > 0): 'You have no reason to, but you carefully avoid cleaning out your pussy and ass.'
 	elseif cumspclnt = 16:
 		!{Breasts}
-		toclean[arrsize('toclean')] = 15
+		toclean[] = 15
 	elseif cumspclnt = 17:
 		!{Arms/legs}
-		toclean[arrsize('toclean')] = 9
-		toclean[arrsize('toclean')] = 10
+		toclean[] = 9
+		toclean[] = 10
 	elseif cumspclnt = 18:
 		!{full clean but skipping internal due to hypno}
-		toclean[arrsize('toclean')] = 1
-		toclean[arrsize('toclean')] = 2
-		toclean[arrsize('toclean')] = 4
-		toclean[arrsize('toclean')] = 5
-		toclean[arrsize('toclean')] = 6
-		toclean[arrsize('toclean')] = 7
-		toclean[arrsize('toclean')] = 8
-		toclean[arrsize('toclean')] = 9
-		toclean[arrsize('toclean')] = 10
-		toclean[arrsize('toclean')] = 11
-		toclean[arrsize('toclean')] = 12
-		toclean[arrsize('toclean')] = 13
-		toclean[arrsize('toclean')] = 14
-		toclean[arrsize('toclean')] = 15
-		toclean[arrsize('toclean')] = 16
+		toclean[] = 1
+		toclean[] = 2
+		toclean[] = 4
+		toclean[] = 5
+		toclean[] = 6
+		toclean[] = 7
+		toclean[] = 8
+		toclean[] = 9
+		toclean[] = 10
+		toclean[] = 11
+		toclean[] = 12
+		toclean[] = 13
+		toclean[] = 14
+		toclean[] = 15
+		toclean[] = 16
 	elseif cumspclnt = 20:
 		!{Clean everything}
 		KILLVAR 'sparrage'
@@ -277,7 +277,7 @@ elseif $ARGS[0] = '':
 			!! vagina
 			if sparrloc[n] = 0:
 				!! cannot be completely cleaned with tissues\toilet use\hypno block\no enema kit
-				if FUNC('Cum_Manage', 'check_innards', sparrloc[n]) = 1 _
+				if func('Cum_Manage', 'check_innards', sparrloc[n]) = 1 _
 				or (hypnoAddict = 0 and (cheatVars['enema'] = 1 or (mc_inventory['enema_kit'] = 1 _
 				and (cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3)))):
 					cumsumbod -= sparrvol[n] & cumsumvag -= sparrvol[n]
@@ -286,7 +286,7 @@ elseif $ARGS[0] = '':
 				end
 			!! ass
 			elseif sparrloc[n] = 3:
-				if FUNC('Cum_Manage', 'check_innards', sparrloc[n]) = 1 or cumspclnt = 7 _
+				if func('Cum_Manage', 'check_innards', sparrloc[n]) = 1 or cumspclnt = 7 _
 				or (hypnoAddict = 0 and (cheatVars['enema'] = 1 or (mc_inventory['enema_kit'] = 1 _
 				and (cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3)))):
 					cumsumbod -= sparrvol[n] & cumsumass -= sparrvol[n]
@@ -303,7 +303,7 @@ elseif $ARGS[0] = '':
 		if tmp ! -1 and tmp < arrsize('toclean') and sparrvol[n] > 0:
 			!! vagina
 			if sparrloc[n] = 0:
-				if cumsumvag * rand(6, 9) / 6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[n], 1) and isprok = 0 and vibratorIN = 0 _
+				if cumsumvag * rand(6, 9) / 6 >= func('Cum_Manage', 'check_innards', sparrloc[n], 1) and isprok = 0 and vibratorIN = 0 _
 				or (hypnoAddict = 0 and (cheatVars['enema'] = 1 or (mc_inventory['enema_kit'] = 1 _
 				and (cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3)))):
 					gs 'cum_cleanup', 'cleandeposit', n
@@ -311,7 +311,7 @@ elseif $ARGS[0] = '':
 				end
 			!! ass
 			elseif sparrloc[n] = 3:
-				if (cumsumass * rand(6, 9) / 6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[n], 1) and analplugin = 0) or cumspclnt = 7 _
+				if (cumsumass * rand(6, 9) / 6 >= func('Cum_Manage', 'check_innards', sparrloc[n], 1) and analplugin = 0) or cumspclnt = 7 _
 				or (hypnoAddict = 0 and (cheatVars['enema'] = 1 or (mc_inventory['enema_kit'] = 1 _
 				and (cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3)))):
 					gs 'cum_cleanup', 'cleandeposit', n

+ 11 - 5
locations/dinSex2.qsrc

@@ -106,12 +106,18 @@ if $ARGS[0] = 'd_analsex_dildo':
 		'You pull the plug out of your narrow and tight ass.'
 		analplugin = 0 & analplugout = 1
 	end
-	if mc_inventory['lubricant'] = 0:
-		'You have no lube, so you spit on your fingers and use your saliva to lubricate your anus.'
-		gs 'arousal', 'anal_finger', 1,'lube'
-	else
+
+	if auto_anal_lube = 1 and mc_inventory['lubricant'] > 0:
 		'You take a tube of lubricant and squeeze a little on your palm and rub your anus.'
-		gs 'arousal', 'anal_finger', 1,'lube'
+		mc_inventory['lubricant'] -= 1
+		gs 'arousal', 'anal_finger', 1, 'lube'	
+	else
+		if auto_anal_lube = 0:
+			'You spit on your fingers and use your saliva to lubricate your anus.'
+		else
+			'You have no lube, so you spit on your fingers and use your saliva to lubricate your anus.'
+		end
+		gs 'arousal', 'anal_finger', 1, 'spit'
 	end
 
 	'You begin to massage your anus with your fingers.'

+ 3 - 3
locations/foto_shoot.qsrc

@@ -881,7 +881,7 @@ if $ARGS[0] = 'sportswear':
 	gs 'exp_gain', 'mdlng', rand(2,4)
 	gs 'fame', 'city', 'modelling', 'small'
 	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:
 		*clr & cla
 		modelpayfin += 300
@@ -912,7 +912,7 @@ if $ARGS[0] = 'sports_underwear':
 	gs 'exp_gain', 'mdlng', rand(3,6)
 	if pcs_inhib < 50:inhib_exp += 1
 	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:
 		*clr & cla
 		modelpayfin += 325
@@ -941,7 +941,7 @@ if $ARGS[0] = 'fitness_artistic_nude':
 	gs 'fame', 'city', 'modelling', 'small'
 	inhib_exp += 2
 	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:
 		*clr & cla
 		modelpayfin += 600

+ 409 - 18
locations/intro_customization.qsrc

@@ -1,7 +1,16 @@
 # intro_customization
 !!2022/03/12
 if $ARGS[0] = 'start':
-	'If you want to set your skills and attributes to a certain number, use the cheat menu to do it, the options to do it here were removed.'
+	'If you want to set your skills and attributes to a certain number, use the cheat menu to do it, the options to do it here were removed.'	
+
+	intro_custom_temp_money = -1
+	$intro_custom_temp_loc = ''
+	$intro_custom_temp_loc_arg = ''
+	$intro_custom_temp_loc_s = ''
+	$intro_custom_temp_args_s = ''
+	$intro_custom_temp_menu_loc = ''
+	$intro_custom_temp_menu_arg = ''
+	
 	if pcs_mass['butt_gen'] = 0: pcs_mass['butt_gen'] = 22
 	if pcs_mass['bust_gen'] = 0: pcs_mass['bust_gen'] = 22
 	if $soc_grup = '':gs 'intro_customization', 'none'
@@ -10,11 +19,23 @@ if $ARGS[0] = 'start':
 	act 'Set appearance':gt 'intro_customization','modapp'
 	act 'Set purse': gt 'intro_customization','modpur'
 	act 'Set items': gt 'intro_customization','modite'
+	act 'Set clothes': gt 'intro_customization', 'modclo_menu'
 	act 'Set money (<<money>>₽)': money = input 'Set Cash Amount' & gt 'intro_customization', 'start'
 	if $start_type['loc'] = 'sg':
 		gs 'intro_sg_select_custom', 'start'
 	else
 		act 'Confirm these options':
+			killvar $menu_name
+			killvar intro_custom_temp_money
+			killvar $intro_custom_temp_loc
+			killvar $intro_custom_temp_loc_arg
+			killvar $intro_custom_temp_loc_s
+			killvar $intro_custom_temp_args_s
+			killvar $intro_custom_temp_menu_loc
+			killvar $intro_custom_temp_menu_arg
+			killvar intro_custom_step
+			killvar intro_custom_noexcept
+			killvar intro_custom_shop_return
 			if bag = 1:
 				!!using current combination should prevent having more than 1 bag at the start of game.
 				dynamic $currentpursetype + '_purses[<<currentpursenumber>>] = 1'
@@ -25,6 +46,355 @@ if $ARGS[0] = 'start':
 	end
 end
 
+if $ARGS[0] = 'modclo_menu':
+	'Make sure to finalize appearance stats before choosing clothing otherwise they might not fit once the game starts.'
+
+	gs 'body', 'initial'
+	gs 'wardrobe', 'removeall'
+	gs 'tattoo_management', 'count'
+	gs 'piercing_management', 'count'
+	
+	intro_custom_step = 1
+	intro_custom_noexcept = 1
+	intro_custom_shop_return = 1
+	if intro_custom_temp_money = -1: 
+		intro_custom_temp_money = money
+		money = 999999999
+	end
+	if $intro_custom_temp_loc = '':
+		$intro_custom_temp_loc = $loc
+		$intro_custom_temp_loc_arg = $loc_arg
+		$intro_custom_temp_loc_s = $loc_s
+		$intro_custom_temp_args_s = $args_s
+		$intro_custom_temp_menu_loc = $menu_loc
+		$intro_custom_temp_menu_arg = $menu_arg
+	end
+
+	act 'Return': 
+		money = intro_custom_temp_money
+		intro_temp_money = -1
+		
+		intro_custom_step = 0
+		intro_custom_noexcept = 0
+		intro_custom_shop_return = 0
+		
+		$loc = $intro_custom_temp_loc
+		$loc_arg = $intro_custom_temp_loc_arg
+		$intro_custom_temp_loc = ''
+		$intro_custom_temp_loc_arg = ''
+		
+		$menu_loc = $intro_custom_temp_menu_loc
+		$menu_arg = $intro_custom_temp_menu_arg
+		$intro_custom_temp_menu_loc = ''
+		$intro_custom_temp_menu_arg = ''
+
+		$loc_s = $intro_custom_temp_loc_s
+		$args_s = $intro_custom_temp_args_s
+		$intro_custom_temp_loc_s = ''
+		$intro_custom_temp_args_s = ''
+	
+		gt 'intro_customization', 'start'
+	end
+	
+	$loc = 'intro_customization'
+	$loc_arg = 'modclo_menu'
+	$menu_loc = $loc
+	$menu_arg = $loc_arg
+	
+	act 'Browse':
+		$menu_name = ''
+		gt 'intro_customization', 'modclo'
+	end
+	act 'Open wardrobe':
+		gt 'wardrobe', 'main'
+	end
+	act 'View looks':
+		menu_page = 0
+		gt 'obj_din', 'face'
+	end
+	if pcs_tattoos['total'] > 0:
+		act 'Manage tattoos':	gt 'intro_customization', 'modclo_tattoos'		
+	end
+	if pcs_piercings['total'] > 0:
+		act 'Manage Piercings': gt 'piercing_management', 'main'
+	end
+end
+
+if $ARGS[0] = 'modclo_tattoos':
+	act 'Return': 					gt 'intro_customization', 'modclo_menu'
+	if pcs_tattoos['total'] > 0:	act 'Remove all tattoos': 		gs 'tattoo_management', 'full_reset' 		& gt 'intro_customization', 'modclo_menu'
+	if pcs_tattoos['face'] > 0:		act 'Remove face tattoo': 		gs 'tattoo_management', 'remove', 'face'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['lip'] > 0: 		act 'Remove lip tattoo': 		gs 'tattoo_management', 'remove', 'lip'		& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['neck'] > 0: 	act 'Remove neck tattoo': 		gs 'tattoo_management', 'remove', 'neck'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['back'] > 0: 	act 'Remove back tattoo': 		gs 'tattoo_management', 'remove', 'back'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['shoulder'] > 0: act 'Remove shoulder tattoo': 	gs 'tattoo_management', 'remove', 'shoulder'& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['breast'] > 0: 	act 'Remove breast tattoo': 	gs 'tattoo_management', 'remove', 'breast'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['under'] > 0: 	act 'Remove under tattoo': 		gs 'tattoo_management', 'remove', 'under'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['chest'] > 0: 	act 'Remove chest tattoo': 		gs 'tattoo_management', 'remove', 'chest'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['side'] > 0: 	act 'Remove side tattoo': 		gs 'tattoo_management', 'remove', 'side'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['belly'] > 0: 	act 'Remove belly tattoo': 		gs 'tattoo_management', 'remove', 'belly'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['arm'] > 0: 		act 'Remove arm tattoo': 		gs 'tattoo_management', 'remove', 'arm'		& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['wrist'] > 0: 	act 'Remove wrist tattoo': 		gs 'tattoo_management', 'remove', 'wrist'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['hand'] > 0: 	act 'Remove hand tattoo': 		gs 'tattoo_management', 'remove', 'hand'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['leg'] > 0: 		act 'Remove leg tattoo': 		gs 'tattoo_management', 'remove', 'leg'		& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['ankle'] > 0: 	act 'Remove ankle tattoo': 		gs 'tattoo_management', 'remove', 'ankle'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['tramp'] > 0: 	act 'Remove tramp tattoo': 		gs 'tattoo_management', 'remove', 'tramp'	& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['ass'] > 0: 		act 'Remove ass tattoo': 		gs 'tattoo_management', 'remove', 'ass'		& gt 'intro_customization', 'modclo_tattoos'
+	if pcs_tattoos['pussy'] > 0: 	act 'Remove pussy tattoo': 		gs 'tattoo_management', 'remove', 'pussy'	& gt 'intro_customization', 'modclo_tattoos'
+end
+
+if $ARGS[0] = 'modclo':
+	'Make sure to finalize appearance stats before choosing clothing otherwise they might not fit once the game starts.'
+	'<<$curloc>>'
+
+	$loc_s = 'intro_customization'
+	$args_s = 'modclo'
+
+	if $menu_name = '':
+		act 'Return': 			gt 'intro_customization', 'modclo_menu'
+		
+		act 'Allure': 			$menu_name = 'allure' 		 & gt 'intro_customization', 'modclo'
+		act 'Coco Carmen':		$menu_name = 'coco_carmen'	 & gt 'intro_customization', 'modclo'
+		act 'Danilovich': 		$menu_name = 'danilovich'	 & gt 'intro_customization', 'modclo'
+		act 'Erotomaniac':		$menu_name = 'erotomaniac'	 & gt 'intro_customization', 'modclo'
+		act 'Fancy Pancy':		$menu_name = 'fancy_pancy'	 & gt 'intro_customization', 'modclo'
+		act 'Fashionista':		$menu_name = 'fashionista' 	 & gt 'intro_customization', 'modclo'
+		act 'Flamingo''s':		$menu_name = 'flamingos' 	 & gt 'intro_customization', 'modclo'
+		act 'G&M': 				$menu_name = 'gm' 			 & gt 'intro_customization', 'modclo'
+		act 'Lusso Intimo': 	$menu_name = 'lusso' 		 & gt 'intro_customization', 'modclo'
+		act 'Market': 										   gt 'pav_train_market'   , 'clo'
+		act 'Mommy Style':		$menu_name = 'materinstvo' 	 & gt 'intro_customization', 'modclo'
+		act 'Mon Cheri':		$menu_name = 'moncheri' 	 & gt 'intro_customization', 'modclo'
+		act 'Nerdvana':			$menu_name = 'nerdvana' 	 & gt 'intro_customization', 'modclo'
+		act 'Patch Work Dolls': $menu_name = 'dolls' 		 & gt 'intro_customization', 'modclo'
+		act 'Pussy-Cats':		$menu_name = 'pussycats' 	 & gt 'intro_customization', 'modclo'
+		act 'Scandalicious':	$menu_name = 'scandalicious' & gt 'intro_customization', 'modclo'
+		act 'Simply Salacious': $menu_name = 'exhibitionist' & gt 'intro_customization', 'modclo'
+		act 'Tsar Bomba':		$menu_name = 'tsar_bomba' 	 & gt 'intro_customization', 'modclo'
+		
+		act 'Tattoos & Piercings':	$menu_name = 'pirsingsalon' & gt 'intro_customization', 'modclo'
+
+	elseif $menu_name = 'allure':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View swimsuits': 			gt 'shop_allure', 'swim'
+		act 'View bikinis': 			gt 'shop_allure', 'bikinis'
+
+		'<center><b><font color="maroon">shop_allure</font></b></center>'
+		'<center><img src="images/locations/city/residential/lake/allure/shop.jpg"></center>'
+		'This shop has the feel of a summer at the beach, which you''d expect seeing as it sells swimwear.'
+		
+	elseif $menu_name = 'coco_carmen':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View dresses': 			gt 'shop_coco_carmen', 'dress'
+		act 'View other outfits': 		gt 'shop_coco_carmen', 'outfits'
+		act 'View purses': 				gt 'shop_coco_carmen', 'purses'
+
+		'<center><b><font color="maroon">Coco Carmen</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/coco/shop.jpg"></center>'
+		'If you are happy to push through the tourists Coco has everything a young adult might like to wear. It''s a step up from G&M and unless you can afford the boutiques in Old Town you''ll be spending some time buying outfits here.'
+		
+	elseif $menu_name = 'danilovich':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View sports clothing': 	gt 'shop_danilovich', 'clo'
+		act 'View sports bras': 		gt 'shop_danilovich', 'bras'
+		act 'View sports panties': 		gt 'shop_danilovich', 'panties'
+		act 'View exercise shoes': 		gt 'shop_danilovich', 'shoes'
+		act 'View swimwear': 			gt 'shop_danilovich', 'swim'
+		act 'View purses': 				gt 'shop_danilovich', 'purses'
+		act 'View coats': 				gt 'shop_danilovich', 'coats'
+
+		'<center><b><font color="maroon">Danilovich sporting goods</font></b></center>'
+		'<center><img src="images/locations/city/citycenter/mall/sportshop/sportshop.jpg"></center>'
+		'As soon as you enter, a high energy song with a thumping baseline fills your eardrums, making you feel pumped and awake. The store is sleek and professional, the walls and floors advertising all different kinds of sporting equipment and attire. The room is filled with beautifully fit people shopping, their bodies varying from big and muscular to lean and trim. If they don''t inspire you to want to work out, the posters advertising past and present famous athletes are motivating as hell.'
+
+		gs 'item_cart', 'shoppping_aisle', 'sports'
+
+	elseif $menu_name = 'erotomaniac':
+		act 'Return': $menu_name = '' & 			gt 'intro_customization', 'modclo'
+		act 'Adult toys & items': 					gt 'shop_erotomaniac', 'sexshop_menu'
+		act 'Look through the fetish dresses':  	gt 'shop_erotomaniac', 'dress'
+		act 'Look through the fetish outfits':  	gt 'shop_erotomaniac', 'outfits'
+		act 'Look through the stripper clothing':	gt 'shop_erotomaniac', 'strip'
+		act 'Look through the panties': 			gt 'shop_erotomaniac', 'panties'
+		act 'Look through the bras': 				gt 'shop_erotomaniac', 'bras'
+		act 'Look through the fetish shoes': 		gt 'shop_erotomaniac', 'shoes'
+
+		$backimage=''
+		'<center><b><font color="maroon">The Erotomaniac</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/redlight/erotomaniac/sexshop.jpg"></center>'
+		'The main counter displays various sex toys:'
+		'Lubricant - 145 <b>₽</b>'
+		'Vibrator - 800 <b>₽</b>'
+		'Butt plug - 800 <b>₽</b>'
+		'Strap-on harness - 500 <b>₽</b>'
+		'Dildos - starting at 800 <b>₽</b>'
+	
+	elseif $menu_name = 'fancy_pancy':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View clothing': 			gt 'shop_fancy_pancy', 'clothes'
+
+		'<center><b><font color="maroon">Fancy Pancy</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/pushkin/fancypancy/shop.jpg"></center>'
+		'This small boutique shop looks more like a dressing room at the burlesque club nearby. Satin, leather, ruffles and glamour make it clear this is not a place to buy a practical outfit. It is the only place to buy outfits suitable for the burlesque club or perhaps spice up things in the bedroom.'
+		'The boutique sells designer winter coats, burlesque clothing, beautiful shoes and exquisite handbags.'
+	
+	elseif $menu_name = 'fashionista':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View purses': 				gt 'shop_fashionista', 'purses'
+		act 'Try on dresses': 			gt 'shop_fashionista', 'dressingclothes'
+		act 'Try on outfits': 			gt 'shop_fashionista', 'dressingoutfit'
+		act 'Try on bra': 	  			gt 'shop_fashionista', 'dressingbra'
+		act 'Try on panties': 			gt 'shop_fashionista', 'dressingpanties'
+
+		'<center><b><font color="maroon">Fashionista</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/fashionista.jpg"></center>'
+		'This shop features many big name brands and designer clothing. Even their bags look cool.'
+		'You can try on outfits via the changing room.'
+	
+	elseif $menu_name = 'flamingos':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View dresses': 			gt 'shop_flamingos', 'dresses'
+		act 'View other clothing': 		gt 'shop_flamingos', 'clothes'
+		act 'View purses': 				gt 'shop_flamingos', 'purses'
+
+		'<center><b><font color="maroon">Flamingo''s</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/island/flamingos/shop.jpg"></center>'
+		'Flamingos is trendy and modern while still keeping the prices low enough for the large student population on the Island. It mimics the latest fashions for young adults but cuts costs on material and manufacturing. This suits the clients who are likely to grow bored of an outfit before it falls apart and that''s why it''s always busy.'
+	
+	elseif $menu_name = 'gm':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View clothing': 			gt 'shop_gm', 'clothes'
+		act 'View dresses': 			gt 'shop_gm', 'dresses'
+		act 'View office wear': 		gt 'shop_gm', 'office'
+		act 'View maid outfits': 		gt 'shop_gm', 'gm_maid'
+		act 'View server uniforms': 	gt 'shop_gm', 'gm_server'
+		act 'View school uniforms': 	gt 'shop_gm', 'school'
+		act 'View regular shoes': 		gt 'shop_gm', 'shoes'
+		act 'View panties': 			gt 'shop_gm', 'panties'
+		act 'View bras': 				gt 'shop_gm', 'bras'
+		act 'View purses': 				gt 'shop_gm', 'purses'
+		act 'View coats': 				gt 'shop_gm', 'coats'
+
+		'<center><b><font color="maroon">Welcome to G & M - Clothes for all your needs</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/gandm/shop.jpg"></center>'
+		'G&M is not fancy, it''s certainly not high fashion but it''s cheap and has specific work and school wear.'
+	
+	elseif $menu_name = 'lusso':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View panties': 			gt 'shop_lusso', 'panties'
+		act 'View bras': 				gt 'shop_lusso', 'bras'
+		act 'View bodysuits':			gt 'shop_lusso', 'bodysuit'
+
+		'<center><b><font color="maroon">Lusso Intimo</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/lusso/lusso.jpg"></center>'
+		'The décor is bright and modern the flowers are real and the dressers made with expensive woods.'
+		'This is clearly a high end underwear shop. Just knowing you are wearing these will make you stand out more and they will feel so nice you might never want to go back to wearing the cheap ill fitting underwear you used to have to put up with. That is of course assuming you can afford the prices here.'
+	
+	elseif $menu_name = 'materinstvo':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View clothes': 			gt 'shop_materinstvo', 'clothes'
+
+		'<center><b><font color="maroon">Mommy Style</font></b></center>'
+		'<center><img src="images/locations/city/citycenter/mall/mommy/shop.jpg"></center>'
+		'This is a shop dedicated to all things pregnancy related.  Here you can buy Pregnancy Clothing or items to aid the process of getting through the day.'
+	
+	elseif $menu_name = 'moncheri':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View shoes': gt 'shop_moncheri', 'shoes'
+		act 'View purses': gt 'shop_moncheri', 'purses'
+		act 'View coats': gt 'shop_moncheri', 'coats'
+		act 'Try on dresses': gt 'shop_moncheri', 'dresses'
+		act 'Try on gowns': gt 'shop_moncheri', 'gowns'
+		act 'Try on bodysuits': gt 'shop_moncheri', 'bodysuit'
+
+		'<center><b><font color="maroon">Mon Chéri</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/boutique/butik.jpg"></center>'
+		'You''re inside the boutique only a few seconds before a tall, slender brunette woman saunters up to you. Everything about her is poised and perfect, from the beautiful silver dress she''s wearing to her unblemished skin and pearly white teeth. "Welcome to Mon Chéri, dear. We sell only the most beautifully luxurious items here. Come, take a look! You won''t be disappointed," she smiles as she ushers you further inside with a small flourish. Everything in the boutique is high-end, definitely not for the average shopper, but the items on display are simply stunning.'
+		'The boutique sells designer winter coats, formal clothing, beautiful shoes and exquisite handbags.'
+	
+	elseif $menu_name = 'nerdvana':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View cosplay outfits': 	gt 'shop_nerdvana', 'cosplay'
+		act 'View other outfits':  		gt 'shop_nerdvana', 'outfits'
+		act 'View swimsuits': 			gt 'shop_nerdvana', 'swim'
+		act 'View bikinis': 			gt 'shop_nerdvana', 'bikinis'
+		act 'View purses': 				gt 'shop_nerdvana', 'purses'
+
+		'<center><b><font color="maroon">Nerdvana</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/island/nerdvana/shop.jpg"></center>'
+		'If you are happy to push through the tourists nerdvana has everything a young adult might like to wear. It''s a step up from G&M and unless you can afford the boutiques in Old Town you''ll be spending some time buying outfits here.'
+	
+	elseif $menu_name = 'dolls':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View dresses': 			gt 'shop_dolls', 'dress'
+		act 'View other outfits': 		gt 'shop_dolls', 'clothing'
+		act 'View shoes': 				gt 'shop_dolls', 'shoes'
+		act 'View purses': 				gt 'shop_dolls', 'purses'
+		act 'View coats': 				gt 'shop_dolls', 'coats'
+
+		'<center><b><font color="maroon">Patch Work Dolls</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/island/dolls/dollsshop.jpg"></center>'
+		'The store has a small front on a side street, but one glance is all you need to tell this is not your average clothing store. Inside the store, shelves and racks of alternative clothes are crammed into every available space - anybody setting out to find an inch of wall would have their work cut out for them. The checkout counter is near the entrance.'
+
+	elseif $menu_name = 'pussycats':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View dresses': 			gt 'shop_pussycats', 'dress'
+		act 'View other outfits': 		gt 'shop_pussycats', 'clothes'
+		act 'View panties': 			gt 'shop_pussycats', 'panties'
+		act 'View bras': 				gt 'shop_pussycats', 'bras'
+		act 'View shoes': 				gt 'shop_pussycats', 'shoes'
+		act 'View purses': 				gt 'shop_pussycats', 'purses'
+		act 'View coats': 				gt 'shop_pussycats', 'coats'
+
+		'<b><center><font size="4">Pussy-Cats</font></center></b>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/cats/young_shop.jpg"></center>'
+		'The latest chart topping pop single is playing throughout the small store. The interior is decorated in bright colors and bold designs, and the floor is packed with stands and tables displaying clothes with a more daring style. Looking around at all the advertisements with attractive yet emaciated models, you''ll either leave here seduced into buying something or with lower self-esteem.'
+	
+	elseif $menu_name = 'scandalicious':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View clothing': 			gt 'shop_scandalicious', 'clothes'
+		act 'View dresses': 			gt 'shop_scandalicious', 'dresses'
+		act 'View shoes': 				gt 'shop_scandalicious', 'shoes'
+		act 'View swimsuits': 			gt 'shop_scandalicious', 'swim'
+		act 'View bikinis': 			gt 'shop_scandalicious', 'bikinis'
+		act 'View bodysuits': 			gt 'shop_scandalicious', 'bodysuit'
+
+		'<center><b><font color="maroon">Scandalicious</font></b></center>'
+		'<center><img src="images/locations/city/citycenter/mall/scandalicious/shop.jpg"></center>'
+		'This store is cheap and tacky. The clothing lives up to the name though and you assume they saved a lot of money on fabric.
+		It''s not somewhere you''d go with your Mom or let her know you''d even looked in the window but if you want to show off your body there is nowhere better to shop. The staff aren''t judging anyone so it feels relaxed but there is still a mix of those hiding their embarrassment and those exuding confidence.'
+	
+	elseif $menu_name = 'exhibitionist':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View outfits': 			gt 'shop_exhibitionist', 'outfits'
+		act 'View dresses': 			gt 'shop_exhibitionist', 'dresses'
+		act 'View panties': 			gt 'shop_exhibitionist', 'panties'
+		act 'View bras': 				gt 'shop_exhibitionist', 'bras'
+		act 'View bodysuits': 			gt 'shop_exhibitionist', 'bodysuit'
+
+		'<center><b><font color="maroon">Simply Salacious</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/pushkin/exhibitshop/shop.jpg"></center>'
+		'A shop in the most modern style who''s clothing is all very revealing and not nearly as classy as the store itself.'
+	
+	elseif $menu_name = 'tsar_bomba':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		act 'View dresses': 			gt 'shop_tsar_bomba', 'dresses'
+		act 'View outfits': 			gt 'shop_tsar_bomba', 'clothes'
+		act 'View shoes': 				gt 'shop_tsar_bomba', 'shoes'
+		act 'View purses': 				gt 'shop_tsar_bomba', 'purses'
+		act 'View coats': 				gt 'shop_tsar_bomba', 'coats'
+
+		'<center><b><font color="maroon">Tsar Bomba</font></b></center>'
+		'<center><img <<$set_imgh>> src="images/locations/pushkin/bomba/shop.jpg"></center>'
+		'Tsar Bomba, a small clothing shop in the Okhlopkov Square. The shop is unique and used to be very cool with punk fashion. These days it is much more generic and alternative, it could easily be mistaken for an alt. fashion chain store.'
+		'Simply put this place is very cool and most of the clothes are strange and wonderful.'
+	
+	elseif $menu_name = 'pirsingsalon':
+		act 'Return': $menu_name = '' & gt 'intro_customization', 'modclo'
+		gs 'pirsingsalon', 'shop_menu'
+	end
+end
+
 if $ARGS[0] = 'modapp':
 	cla & *clr
 	if pcs_mass['bust_gen'] = 0: pcs_mass['bust_gen'] = 12
@@ -486,6 +856,8 @@ if $ARGS[0] = 'modatt':
 	'<center><b>Attributes</b></center>'
 	*nl
 	killvar '$table_display'
+	gs 'intro_customization', 'modrel_setup4', 'pcs_inhib', 'Inhibition'
+	gs 'intro_customization', 'modrel_setup3', 'willpowermax', 'Willpower'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_stren', 'Strength'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_agil', 'Agility'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_vital', 'Endurance'
@@ -495,9 +867,6 @@ if $ARGS[0] = 'modatt':
 	gs 'intro_customization', 'modrel_setup2', 'pcs_chrsm', 'Charisma'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_prcptn', 'Perception'
 	if $start_type['magic'] ! 'nomagic': gs 'intro_customization', 'modrel_setup2', 'pcs_magik', 'Magic'
-	gs 'intro_customization', 'modrel_setup4', 'pcs_inhib', 'Inhibition'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_heels', 'Heels'
-	gs 'intro_customization', 'modrel_setup3', 'willpowermax', 'Willpower'
 	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
 	$table_display
 	'</table></center>'
@@ -510,12 +879,13 @@ end
 
 if $ARGS[0] = 'modskl':
 	*clr & cla
-	act 'Mental skills':gt 'intro_customization','modskl_men'
-	act 'Sport skills':gt 'intro_customization','modskl_spo'
-	act 'Beauty skills':gt 'intro_customization','modskl_bea'
-	act 'Artistic skills':gt 'intro_customization','modskl_art'
-	act 'Job skills':gt 'intro_customization','modskl_job'
-	act 'Return': gt 'intro_customization','start'
+	act 'Mental skills':	gt 'intro_customization', 'modskl_men'
+	act 'Sport skills':		gt 'intro_customization', 'modskl_spo'
+	act 'Combat skills':	gt 'intro_customization', 'modskl_com'
+	act 'Beauty skills':	gt 'intro_customization', 'modskl_bea'
+	act 'Artistic skills':	gt 'intro_customization', 'modskl_art'
+	act 'Job skills':		gt 'intro_customization', 'modskl_job'
+	act 'Return': 			gt 'intro_customization', 'start'
 end
 
 if $ARGS[0] = 'modskl_men':
@@ -544,19 +914,37 @@ if $ARGS[0] = 'modskl_spo':
 	'<center><b>Sport Skills</b></center>'
 	*nl
 	killvar '$table_display'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_jab', 'Jabs'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_punch', 'Power Strikes'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_kick', 'Kicks'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_def', 'Defence'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_run', 'Running'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_vball', 'Volleyball'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_ftbll', 'Football'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_bkball', 'Basketball'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_wrstlng', 'Wrestling'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_shoot', 'Marksmanship'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_bushcraft', 'Bushcraft'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_chess', 'Chess'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_icesktng', 'Ice Skating'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_gaming', 'Gaming'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_chess', 'Chess'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_pool', 'Pool'
+	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
+	$table_display
+	'</table></center>'
+	nl
+
+	act 'Return':
+		gt 'intro_customization','modskl'
+	end
+end
+
+if $ARGS[0] = 'modskl_com':
+	*clr & cla
+	$locM_arg = 'modskl_com'
+	'<center><b>Combat Skills</b></center>'
+	*nl
+	killvar '$table_display'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_jab', 'Jabs'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_punch', 'Power Strikes'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_kick', 'Kicks'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_def', 'Defence'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_shoot', 'Marksmanship'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_bushcraft', 'Bushcraft'
 	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
 	$table_display
 	'</table></center>'
@@ -578,7 +966,7 @@ if $ARGS[0] = 'modskl_bea':
 	gs 'intro_customization', 'modrel_setup2', 'pcs_dancero', 'Erotic Dancing'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_dancpol', 'Pole Dancing'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_cheer', 'Cheerleading'
-	gs 'intro_customization', 'modrel_setup2', 'pcs_mdlng', 'Modelling'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_heels', 'Heels'
 	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
 	$table_display
 	'</table></center>'
@@ -600,6 +988,7 @@ if $ARGS[0] = 'modskl_art':
 	gs 'intro_customization', 'modrel_setup2', 'pcs_photoskl', 'Photography'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_artskls', 'Artistic Skills'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_perform', 'Performance'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_musicprod', 'Music Production'
 	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
 	$table_display
 	'</table></center>'
@@ -622,6 +1011,8 @@ if $ARGS[0] = 'modskl_job':
 	gs 'intro_customization', 'modrel_setup2', 'pcs_sewng', 'Tailoring'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_servng', 'Serving'
 	gs 'intro_customization', 'modrel_setup2', 'pcs_medcn', 'Medicine'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_cleaning', 'Cleaning'
+	gs 'intro_customization', 'modrel_setup2', 'pcs_mdlng', 'Modelling'
 	'<center><table border=0 cellspacing=0 cellpadding=25  bgcolor=#808080><TH></TH><TH>Set to zero</TH><TH>Minus 10</TH><TH>Minus 5</TH><TH>Plus 5</TH><TH>Plus 10</TH><TH>Set to 100</TH>'
 	$table_display
 	'</table></center>'

+ 1 - 1
locations/miroslava.qsrc

@@ -428,7 +428,7 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 				gs 'underwear', 'wear'
 			end
 
-			act 'Go back to the village': gt 'Gadukino'
+			act 'Go back': gt 'miroslava', 'leave'
 		end
 	end
 end

+ 10 - 10
locations/miroslava_schedule.qsrc

@@ -123,16 +123,6 @@ if $ARGS[0] = 'update_locat':
 		exit
 	end
 
-	if MiraVars['follower'] = 1:
-		MiraVars['follower'] = 0
-		! Mira is your follower, so set her location to your location.
-		locat['A60'] = func('miroslava_schedule', 'get_locat_from_loc')
-		exit
-	elseif Miravars['follow_time'] > 0:
-		locat['A60'] = locat['A60_prev']
-		exit
-	end
-
 	if MiraVars['guest'] = 1:
 		if MiraVars['guestday'] <= daystart: MiraVars['guestday'] = daystart + 1
 		!! check if mira and sveta are in the same location.
@@ -156,6 +146,16 @@ if $ARGS[0] = 'update_locat':
 		exit
 	end
 
+	if MiraVars['follower'] = 1:
+		MiraVars['follower'] = 0
+		! Mira is your follower, so set her location to your location.
+		locat['A60'] = func('miroslava_schedule', 'get_locat_from_loc')
+		exit
+	elseif Miravars['follow_time'] > 0:
+		locat['A60'] = locat['A60_prev']
+		exit
+	end
+
 	gs 'miroslava_schedule', 'get_base_schedule'
 
 	if hour <= 7:

+ 24 - 89
locations/outdoors.qsrc

@@ -30,18 +30,18 @@ weatherFallM[12]= 40
 
 weatherFallDelta = 10
 
-DayLengthMin = 177 &! Minutes from dawn to noon
-DayLengthMax = 563
+!DayLengthMin = 177 &! Minutes from dawn to noon
+!DayLengthMax = 563
 
 if $ARGS[0] = 'weather':
-	if weatherDay ! DayInYear:
+	if weatherDay ! daystart:
 		weatherTemper = rand(weatherGrM[month]-weatherGrDelta, weatherGrM[month]+weatherGrDelta)
 		weatherFall = rand(weatherFallM[month]-weatherFallDelta, weatherFallM[month]+weatherFallDelta)
 	end
 	if (weatherHour ! hour) or (weatherDay ! daystart):
-		weatherDay = DayInYear
+		weatherDay = daystart
 		weatherHour = hour
-		
+
 		temper = hour
 		if temper <= 2:
 			temper = temper + (6 - (temper * 2))
@@ -50,9 +50,9 @@ if $ARGS[0] = 'weather':
 		elseif temper >= 16:
 			temper = (temper - 30) * -1
 		end
-		
+
 		temper = weatherTemper + (weatherGrDelta*100/6*temper)/100
-		
+
 		if chWeather = 0:
 			sunWeather = IIF( rand(0,100)<weatherFall, 0, 1)
 		else
@@ -123,32 +123,32 @@ if $ARGS[0] = 'weather':
 
 		gs 'outdoors', 'temp_set'
 
-        if month = 1:
+		if month = 1:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>There is snow on the street.'
-        elseif month = 2:
+		elseif month = 2:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>There is snow on the street.'
-        elseif month = 3:
+		elseif month = 3:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>There is snow on the street.'
-        elseif month = 4:
+		elseif month = 4:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>The snow melts on the street.'
-        elseif month = 5:
+		elseif month = 5:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>Puddles in the street left by snow, winter has covered everything in dirt and debris, some places where new grass grows are pleasantly green.'
-        elseif month = 6:
+		elseif month = 6:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>Green grass lines the streets.'
-        elseif month = 7:
+		elseif month = 7:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>Green grass lines the streets.'
-        elseif month = 8:
+		elseif month = 8:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>The grass is green, the leaves in the trees are already turning yellow.'
-        elseif month = 9:
+		elseif month = 9:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>Streets lined with green grass, visible yellow leaves.'
-        elseif month = 10:
+		elseif month = 10:
 			$weather = '<<$osadki>> Temperature is <<$temperature>>.<br>The grass is fading and patchy, yellow and brown leaves fall from the trees, mud and puddles dot the street.'
-        elseif month = 11:
+		elseif month = 11:
 			$weather = '<<$osadki>> Temperature is <<$temperature>>.<br>The street is dirty with a thin snow cover.'
-        elseif month = 12:
+		elseif month = 12:
 			$weather = '<<$osadki>> The temperature is <<$temperature>>.<br>The street is covered in snow.'
 		end
-	end	
+	end
 end
 
 if $ARGS[0] = 'temp_set':
@@ -165,76 +165,11 @@ if $ARGS[0] = 'temp_set':
 end
 
 if $ARGS[0] = 'main':
-	DayInYear = func('shortgs', 'doy', year, month, day)
-
-	!! distance from summer solstice (longest day of the year)
-	if DayInYear < 172:
-		DayInYear2 = 172 - DayInYear
-	elseif DayinYear < 355:
-		DayInYear2 = DayInYear - 172
-	else
-		DayInYear2 = 536 - DayInYear
-	end
-
-	DayLength = DayLengthMax - ((DayLengthMax - DayLengthMin) * 100 / 182) * DayInYear2 / 100
-	!  half of daylight duration
-	!  used as an offset for solar noon
-	!  to get time when day starts and ends
-
-	!  solar noon coincides with CurTimeSun of 0 which happens at 13:00
-	!! Solar Noon (13:00) minus DayLength - time when day starts
-	!! Solar Noon (13:00) plus DayLength - time when day ends
-
-	CurTimeSun = hour * 60 + minut
-	!! distance from 13:00 (Solar Noon) in minutes
-	!    at midnight its -780
-	!    0 is 13:00
-	!    1 minute before midnight (23:59) is 659
-	if CurTimeSun >= 780:
-		CurTimeSun = CurTimeSun - 780
-	else
-		CurTimeSun = -(780 - CurTimeSun)
-	end
-
-	DayStage = 5
-	BColorBase = 0
-	! 1 - dawn
-	! 2 - midday
-	! 3 - sunset
-	! 4 - the beginning of the night
-	! 5 - night
-	! 6 - the end of the night
-	!! phases 1, 3, 4 and 6 last for 60 minutes
-	if CurTimeSun >= -(DayLength - 60) and CurTimeSun <= (DayLength - 60):
-		DayStage = 2
-		BColorBase = 255
-	elseif CurTimeSun >= -DayLength and CurTimeSun <= -(DayLength - 60):
-		! CurTimeSun - negative
-		DayStage = 1
-		! result = 128 + [0-60] * 2
-		BColorBase = 128 + (DayLength + CurTimeSun) * 2
-	elseif CurTimeSun >= (DayLength - 60) and CurTimeSun <= DayLength:
-		! CurTimeSun - positive
-		DayStage = 3
-		! result = 128 + [0-60] * 2
-		BColorBase = 256 + ((DayLength - 60) - CurTimeSun) * 2
-	elseif CurTimeSun >= DayLength and CurTimeSun <= DayLength + 60:
-		! CurTimeSun - positive
-		DayStage = 4
-		! result = 128 - [0-60] * 2
-		BColorBase = 128 - (CurTimeSun - DayLength) * 2
-	elseif CurTimeSun >= -(DayLength + 60) and CurTimeSun <= -DayLength:
-		! CurTimeSun - negative
-		DayStage = 6
-		! result = 128 - [0-60] * 2
-		BColorBase = 128 + (CurTimeSun + DayLength) * 2
-	end
-
-!	*pl '    DayInYear=<<DayInYear>> DayLength=<<DayLength>>  CurTimeSun=<<CurTimeSun>>  DayStage=<<DayStage>>'
+	!BColorBase is updated in Time.
 
 	$weatherImage = '<img height = <<set_weatherht>> src="images/system/weather/wthr'
 	$weatherImage = $weatherImage + '<<DayStage>>'
-	if temper < -10 : 
+	if temper < -10 :
 		$weatherImage += '1'
 	elseif temper <= 5 :
 		$weatherImage += '2'
@@ -374,7 +309,7 @@ if $ARGS[0] = 'main':
 		gs 'themes', 'indoors'
 	end
 end
-	
-	
+
+
 --- outdoors ---------------------------------
 

+ 30 - 24
locations/pav_commercial.qsrc

@@ -2,27 +2,35 @@
 
 CLOSE ALL
 
-$loc_arg = ''
-$loc = 'pav_commercial'
-$region = 'pav'
-$location_type = 'public_outdoors'
-$menu_loc = 'pav_commercial'
-$menu_arg = ''
+*clr & cla
 menu_off = 0
+$location_type = 'public_outdoors'
+gs 'shortgs', 'setloc', 'pav_commercial', ''
+$region = 'pav'
+
+alkoblock = 0
+boynumBlock = 0
+gs 'stat'
 
 if sound = 0:
-	if month >=11 and month <= 12 or month >=1 and month <=3:
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/zima.mp3',30
-		if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
+	if month <= 3 or month >= 11:
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/zima.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3',30
+			PLAY 'sound/zima.mp3', 30
+		end
 	else
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street_leto.mp3',30
-		if hour >= 0 and hour <= 7:PLAY 'sound/street_night.mp3',30
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/street_leto.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3', 30
+		end
 	end
 end
 
-*clr & cla
-alkoblock = 0
-boynumBlock = 0
 gs 'music_actions', 'clear_restrictions'
 !call random events from [street_events], and display them before show location.
 if streetevent_hour + 2 < hour:gt 'street_event', 'pav_commercial', 'main'
@@ -69,8 +77,6 @@ if rand(1, 5) >= 4 and fame['pav_slut'] >= 100:
 	end
 end
 
-gs 'stat'
-
 if car > 0 and cardrive = 24:
 	cardrive = 24
 	'Your <a href="exec:gs ''carF'', ''start''"><<$car>></a> is parked in the street.'
@@ -140,14 +146,14 @@ if hypnoSchedule = 1:
 	end
 end
 
-act 'Walk to the Residential area (0:05)':minut += 5 & gt 'pav_residential'
-act 'Walk to the Industrial region (0:05)':minut += 5 & gt 'pav_industrial'
-act 'Walk to the Five Eight estate (0:05)':minut += 5 & gt 'pav_complex', 'start'
-act 'Walk to the Market (0:10)':minut += 10 & gt 'pav_market'
-act 'Walk to the park (0:05)':minut += 5 & gt 'pav_park', 'start'
-act 'Walk to the train station (0:10)':minut += 10 & gt 'pav_train_hall'
-act 'Walk to the highway (0:15)':minut += 15 & nroad = 20 & gt 'road'
-act 'Walk to Pushkin (0:25)':minut += 25 & gt 'pushkin'
+act 'Walk to the Residential area (0:05)': minut += 5 & gt 'pav_residential'
+act 'Walk to the Industrial region (0:05)': minut += 5 & gt 'pav_industrial'
+act 'Walk to the Five Eight estate (0:05)': minut += 5 & gt 'pav_complex', 'start'
+act 'Walk to the Market (0:10)': minut += 10 & gt 'pav_market'
+act 'Walk to the park (0:05)': minut += 5 & gt 'pav_park', 'start'
+act 'Walk to the train station (0:10)': minut += 10 & gt 'pav_train_hall'
+act 'Walk to the highway (0:15)': minut += 15 & nroad = 20 & gt 'road'
+act 'Walk to Pushkin (0:25)': minut += 25 & gt 'pushkin'
 
 gs 'music_actions', 'start'
 !!if rand (0,2) ! 0:gs 'din_bad' & dynamic $mobile_check

+ 50 - 41
locations/pav_industrial.qsrc

@@ -1,25 +1,35 @@
 # pav_industrial
 
+*clr & cla
 CLOSE ALL
+menu_off = 0
 
 gs 'shortgs', 'setloc', 'pav_industrial', ''
 $region = 'pav'
 $location_type = 'public_outdoors'
-menu_off = 0
+alkoblock = 0
+boynumBlock = 0
+gs 'stat'
 
 if sound = 0:
-	if month >=11 and month <= 12 or month >=1 and month <=3:
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/zima.mp3',30
-		if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
+	if month <= 3 or month >= 11:
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/zima.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3', 30
+			PLAY 'sound/zima.mp3', 30
+		end
 	else
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street_leto.mp3',30
-		if hour >= 0 and hour <= 7:PLAY 'sound/street_night.mp3',30
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/street_leto.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3', 30
+		end
 	end
 end
 
-*clr & cla
-alkoblock = 0
-boynumBlock = 0
 
 !call random events from [street_events], and display them before show location.
 if streetevent_hour + 2 < hour:gt 'street_event', 'pav_industrial', 'main'
@@ -57,10 +67,7 @@ if rand(1,5) >= 4 and fame['pav_slut'] >= 100:
 	end
 end
 
-gs 'stat'
-
 if car > 0 and cardrive = 26:
-	cardrive = 26
 	'Your <a href="exec:gs ''carF'', ''start''"><<$car>></a> is parked in the street.'
 end
 
@@ -70,13 +77,13 @@ else
 	*pl 'The local G&M store is currently closed. Opening hours are Monday to Saturday, between '+func('time', 'get_time_string', 8, 0, cheatVars['time_format'])+' to '+func('time', 'get_time_string', 20, 0, cheatVars['time_format'])+'.'
 end
 
-act 'Walk to the Five Eight estate (0:05)':minut += 5 & gt 'pav_complex', 'start'
-act 'Walk to the Residential area (0:05)':minut += 5 & gt 'pav_residential'
-act 'Walk to the Commercial area (0:05)':minut += 5 & gt 'pav_commercial'
-act 'Walk to the Market (0:15)':minut += 15 & gt 'pav_market'
-act 'Walk to the train station (0:15)':minut += 15 & gt 'pav_train_hall'
-act 'Walk to the highway (0:15)':minut += 15 & nroad = 20 & gt 'road'
-act 'Walk to Pushkin (0:30)':minut += 30 & gt 'pushkin'
+act 'Walk to the Five Eight estate (0:05)': minut += 5 & gt 'pav_complex', 'start'
+act 'Walk to the Residential area (0:05)': minut += 5 & gt 'pav_residential'
+act 'Walk to the Commercial area (0:05)': minut += 5 & gt 'pav_commercial'
+act 'Walk to the Market (0:15)': minut += 15 & gt 'pav_market'
+act 'Walk to the train station (0:15)': minut += 15 & gt 'pav_train_hall'
+act 'Walk to the highway (0:15)': minut += 15 & nroad = 20 & gt 'road'
+act 'Walk to Pushkin (0:30)': minut += 30 & gt 'pushkin'
 
 if week < 7 and hour >= 8 and hour < 18:
 	act 'Visit the tailor': gt 'pav_factory', 'tailor'
@@ -85,28 +92,30 @@ else
 end
 !!if rand (0,2) ! 0:gs 'din_bad' & dynamic $mobile_check
 
-if npc_QW['A113'] = 1 and daybelisex ! daystart and hour >= 9 and hour <= 23 and week = 7:
-	menu_off = 1
-	cla & *clr
-	daybelisex = daystart
-	minut += 5
-	gs 'stat'
-
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/vadim/belyjeep.jpg"></center>'
-	'As you walk through Pavlovsk, Vadim Belys Mitsubishi Pajero stops near you.'
-
-	act 'Go to the jeep': gt 'belgang', 'payday'
-elseif npc_QW['A113'] = 1 and daybelisex ! daystart and hour >= 9 and hour <= 23 and week ! 7 and belgangPayWeek >= 300 and belgangProstitute = 1 and rand (0,2) = 0:
-	menu_off = 1
-	cla & *clr
-	daybelisex = daystart
-	minut += 5
-	gs 'stat'
-
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/vadim/belyjeep.jpg"></center>'
-	'You see the by now familiar old Mitsubishi Pajero driving through the streets with Vadim Bely and his gang. Your heart skips a beat as you notice one of them pointing at you, and soon they pull over.'
-
-	act 'Go to the jeep': gt 'belgang', 'workofdebt'
+if npc_QW['A113'] = 1 and daybelisex ! daystart and hour >= 9:
+	if week = 7:
+		*clr & cla
+		menu_off = 1
+		daybelisex = daystart
+		minut += 5
+		gs 'stat'
+
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/vadim/belyjeep.jpg"></center>'
+		'As you walk through Pavlovsk, Vadim Belys Mitsubishi Pajero stops near you.'
+
+		act 'Go to the jeep': gt 'belgang', 'payday'
+	elseif belgangPayWeek >= 300 and belgangProstitute = 1 and rand (0, 2) = 0:
+		*clr & cla
+		menu_off = 1
+		daybelisex = daystart
+		minut += 5
+		gs 'stat'
+
+		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/vadim/belyjeep.jpg"></center>'
+		'You see the by now familiar old Mitsubishi Pajero driving through the streets with Vadim Bely and his gang. Your heart skips a beat as you notice one of them pointing at you, and soon they pull over.'
+
+		act 'Go to the jeep': gt 'belgang', 'workofdebt'
+	end
 end
 
 !-- Random prostitution solicitation check ------------------------

+ 21 - 12
locations/pav_residential.qsrc

@@ -1,29 +1,38 @@
 # pav_residential
 !2021/04/30
 
-music_loop = 0
+*clr & cla
 CLOSE ALL
+menu_off = 0
+music_loop = 0
 gs 'shortgs', 'setloc', 'pav_residential', ''
 $location_type = 'public_outdoors'
 $region = 'pav'
-menu_off = 0
 killvar '$locclass'
 
+alkoblock = 0
+boynumBlock = 0
+gs 'stat'
+
 if sound = 0:
-	if month >=11 and month <= 12 or month >=1 and month <=3:
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/zima.mp3',30
-		if hour >= 0 and hour <= 7: PLAY 'sound/street_night.mp3',30 & PLAY 'sound/zima.mp3',30
+	if month <= 3 or month >= 11:
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/zima.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3', 30
+			PLAY 'sound/zima.mp3', 30
+		end
 	else
-		if hour >= 8 and hour <= 23: PLAY 'sound/street2.mp3',30 & PLAY 'sound/street_leto.mp3',30
-		if hour >= 0 and hour <= 7:PLAY 'sound/street_night.mp3',30
+		if hour >= 8:
+			PLAY 'sound/street2.mp3', 30
+			PLAY 'sound/street_leto.mp3', 30
+		else
+			PLAY 'sound/street_night.mp3', 30
+		end
 	end
 end
 
-*clr & cla
-alkoblock = 0
-boynumBlock = 0
-gs 'stat'
-
 !call random events from [street_events], and display them before show location.
 if streetevent_hour + 2 < hour:gt 'street_event', 'pav_residential', 'main'
 

+ 12 - 6
locations/pav_train_market.qsrc

@@ -240,12 +240,18 @@ if $ARGS[0] = 'clo':
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'market_outfits'
 
-	act 'Return':
-		cla
-		minut += 5
-		gt 'pav_train_market', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return':
+			cla
+			minut += 5
+			gt 'pav_train_market', 'start'
+		end
+		step = 1
 	end
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopmarket_outfits_filter
@@ -261,7 +267,7 @@ if $ARGS[0] = 'clo':
 				if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1:*p '<a href="exec: i = <<i>> & gt ''pav_train_market'', ''marketclo''"><img <<$set_imgh>> src="images/pc/items/market/clothes/<<i>>.jpg" 	height="250" /></a>'
 			end
 		end
-	i += 1
+	i += step
 	if i <= total:jump 'loopmarket_outfits'
 
 	clo_i += 1

+ 5 - 5
locations/pcs_has_attr.qsrc

@@ -366,7 +366,7 @@ end
 
 !! To be checked
 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:
 		result = 1
 	end
@@ -374,7 +374,7 @@ if $ARGS[0] = 'body_bmi_starving':
 	exit
 
 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:
 		result = 1
 	end
@@ -382,7 +382,7 @@ elseif $ARGS[0] = 'body_bmi_underweight':
 	exit
 
 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:
 		result = 1
 	end
@@ -390,7 +390,7 @@ elseif $ARGS[0] = 'body_bmi_normal':
 	exit
 
 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:
 		result = 1
 	end
@@ -398,7 +398,7 @@ elseif $ARGS[0] = 'body_bmi_overweight':
 	exit
 
 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:
 		result = 1
 	end

File diff suppressed because it is too large
+ 344 - 100
locations/pirsingsalon.qsrc


+ 149 - 688
locations/police_station.qsrc

@@ -1,10 +1,9 @@
 # police_station
 
 if $ARGS[0] = 'start':
-	$menu_loc = 'police_station'
-	$menu_arg = 'start'
-	$region = 'city'
 	menu_off = 0
+	$region = 'city'
+	gs 'shortgs', 'setloc', 'police_station', 'start'
 
 	'<center><h1><font color="maroon">Police station Entrance</font></h1></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityext.jpg"></center>'
@@ -16,280 +15,154 @@ end
 
 
 if $ARGS[0] = 'reception':
-	$menu_loc = 'police_station'
-	$menu_arg = 'reception'
-	$region = 'city'
 	menu_off = 0
+	$region = 'city'
+	gs 'shortgs', 'setloc', 'police_station', 'reception'
 
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
 	'Upon entering the station you''re welcomed by a reception desk. The officers sitting here are protected by thick glass and you see several monitors and computers keeping an eye on everything that''s happening inside and outside the building.'
 
-	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt 'police_station', 'rape_report'
+	if rape_count > 0 and daystart < rape_day + 2: act 'Report a rape': gt 'police_station', 'rape_report'
 	gs 'blackmailer', 'set_police_act'
 	act 'Return to the center': gt 'city_center'
 end
 
 
-temp_tot_booked = policeQW['shoplift_booked'] + policeQW['prostitution_booked']
-
-if $ARGS[0] = 'entrance':
-	menu_off = 1
-
-	'<center><h1><font color="maroon">Reception area</font></h1></center>'
+if $ARGS[0] = 'rape_report':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
-	'The officer drags you in by the arm, his grip tightening whenever he feels the slightest bit of resistance from you. You expect him to take you straight in to be booked, but to your dismay he stops at the front desk to put you on display to the other officers as he gloats.'
-	*nl
-
-	!first time offender, event where Sveta gets caught stealing
-	!need to add a variable to store that Sveta has been brought into the police station
-	if $ARGS[1] = 'shplft' or $ARGS[1] = 'shoplift':
-		policeQW['shoplift_booked'] += 1
-		$policeQW['crime_flag'] = 'shoplift'
-		temp_tot_booked = policeQW['shoplift_booked'] + policeQW['prostitution_booked']
-
-		if temp_tot_booked = 1:
-			!!a gosub on purpose!!
-			gs 'police_station', 'first_shoplift'
-		elseif temp_tot_booked < 6:
-			gt 'police_station', 'repeat'
-		elseif temp_tot_booked < 11:
-			gt 'police_station', 'repeat'
-		else
-			gt 'police_station', 'regular'
-		end
-
-	else
-		policeQW['prostitution_booked'] += 1
-		$policeQW['crime_flag'] = 'prostitution'
-		temp_tot_booked = policeQW['shoplift_booked'] + policeQW['prostitution_booked']
-
-		if temp_tot_booked = 1:
-			!!a gosub on purpose!!
-			gs 'police_station', 'first_prostitution'
-		elseif temp_tot_booked < 6:
-			gt 'police_station', 'repeat'
-		elseif temp_tot_booked < 11:
-			gt 'police_station', 'repeat'
-		else
-			gt 'police_station', 'regular'
-		end
-	end
-end
-
-
-if $ARGS[0] = 'first_shoplift':
-	cla
-	minut += 2
-	gs 'pain', 2, 'armR', 'pinch'
-	gs 'stat'
-
-	if policeQW['toldonguard'] = 2:
-		!! if had sex with the security guard but still got arrested
-		'"I''m not lying, that security guard forced me to have sex with him! Why won''t you believe me?" you plead, but it does you no good.'
-		'The officer sighs, "You think you''re the first to try that? I''ve heard it all from you thieving little whores. You''re not the victim here!"'
-		*nl
-		'With a dejected whimper, you look down to the floor as you''re led further into the station to be booked.'
-
-	elseif grupTipe = 4:
-		'"Security over at the mall caught a wild one today. This little bitch tried to bite me as I was bringing her in!"'
-		'The others shake their head as he leads you further inside the police station.'
-		*nl
-		'"Wow, you''re real tough, manhandling a girl barely half your size," you hiss.'
-		'"You think this is being too rough? I can show you a thing or two about real pain," he threatens.'
-
-	elseif pcs_hotcat >= 7:
-		'"Look who was caught stealing by the security guys at the mall! I guess being pretty can''t get you everything you want," he says with a cruel laugh.'
-		'Most of officers just grin and laugh, but you hear a few make crude comments as you''re led further inside the police station.'
-		*nl
-		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
-		'"Being pretty isn''t going to get you any special treatment, girly. You''re a criminal, just like everyone else brought through here," he spits back.'
-
-	elseif pcs_hotcat =< 3:
-		'"You''ll never guess what she was brought in for!" he laughs. "Security at the mall caught this one trying to steal beauty products. You can put makeup on a pig but it''ll still be a pig!"'
-		'The others laugh loudly as he leads you further inside the police station.'
-		*nl
-		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
-		'"What were you thinking stealing make-up?" he asks, ignoring your pleas. "It wouldn''t do you a damn bit of good. You''d still look like you were hit with a brick!"'
-
-	else
-		!if plain looking
-		'"The security guys over at the mall caught this little mouse trying to steal some stuff. I guess looks can be deceiving; I would have never thought she''d be the type."'
-		'Some of the other officers just shrug or click their tongue disapprovingly before he leads you deeper inside the police station.'
-		*nl
-		'"Hey, you''re hurting my arm!" you whine. "Could you please loosen up? It''s not like I''m going to try to run!"'
-		'"Oh, don''t like the way I''m treating you, little mouse? Well, you should have thought about that before trying to play thief!" he spits back.'
-	end
-
-	act 'Continue further in': gt 'police_station', 'booking'
-end
-
-
-if $ARGS[0] = 'first_prostitution':
-	minut += 2
-	gs 'pain', 2, 'armR', 'pinch'
-	gs 'stat'
+	'One step after another, you trudge through town until you suddenly find yourself standing inside the police station. On the other side of a plexiglass reception, you can see several officers milling about, though none pay attention to you. Stepping up to the window, you pick up the phone and hear a buzzer sound on the other side. One of the officers picks it up without hesitation and looks at you.'
+	'"Can I help you?"'
+	'"I- I''d like t-to report a r-rape..." you stammer out. The officer nods but his expression doesn''t change in the slightest.'
+	'"Someone will come out to meet you. Follow them and they''ll take your statement in the back."'
 
-	if policeQW['prostitution_bribe'] = 1:
-		if pcs_hotcat =< 3:
-			!else if ugly and bribed the officer with sex
-			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
-			'The others shake their head, "What was she thinking? No one would fuck someone as ugly as her!"'
-			'You hang your head in shame as you''re led further into the station for booking.'
-
-		elseif pcs_hotcat >= 7:
-			!else if beautiful and bribed the officer with sex
-			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
-			'The other officers eye you hungrily, "You''re a better man than me!" one of them exclaim. "Just look at her, how often do you get a chance like that? I would have said yes!"'
-			'A small smile plays across your face, feeling a tiny bit flattered as you''re led further into the station to get booked.'
-
-		else
-			!else if plain and bribed the officer with sex
-			'"I caught this one whoring herself out and you know what she tried to do? She tried to bribe me with sex!"'
-			'The others jokingly say, "Well, she doesn''t look that bad. I wouldn''t have agreed, but I can see it working on someone else..."'
-			'You frown at their rude remarks, but remain silent as you''re led further into the station to be booked.'
-		end
+	act 'Continue':
+		cla & *clr
+		minut += rand(2,5)
+		gs'stat'
 
-	else
-		if pcs_hotcat =< 3:
-			!Prostitute event, this will be an continuation to the prostitute events that happened earlier
-			!if ugly
-			'"I caught this one whoring herself out. Can you believe that? Who would ever want to fuck this pig?!" he exclaims, and the staff erupt with laughter.'
-			'"What was she thinking? Honestly, you''ve done everyone a favor getting her off the streets," says one of the officers before you''re led further into the station.'
-
-		elseif pcs_hotcat >= 7:
-			!else if beautiful
-			'"I caught this one whoring herself out on the street corner. Such a waste," he turns to you and shakes his head. "A hot thing like you could shack up with some rich guy and leech off him, but I guess that''s not enough for a cock hungry whore like you, huh? One just ain''t enough."'
-			*nl
-			'The other officers laugh cruelly. "It really is a shame, just look at her-- she''s damn gorgeous. You must have some real issues to be selling yourself to strangers."'
-			*nl
-			'"I''m sure the money is great!" The officer holding you laughs loudly as he leads you further inside the police station.'
-
-		else
-			!else if plain
-			'"I caught this one whoring herself out. She ain''t bad looking, but you know she''s not making money like those other girls," he says with a disappointing click of the tongue'
-			'The other officers shrug and shake their heads. "Probably some cheap bastards out there that can''t afford to be picky," one speaks up as you''re led further into the station.'
-		end
-	end
+		'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation1.jpg"></center>'
+		'As promised, someone comes out and takes you into their office space behind. You sit down at a shoddy looking desk and the officer takes his place on the other side of it.'
+		'"Alright ma''am, tell me what happened to you."'
+		'You explain to the officer as best as you can what happened to you while he takes notes. How you were randomly attacked, how you were violated.'
 
-	act 'Continue further in': gt 'police_station', 'booking'
-end
+		act 'Continue':
+			cla & *clr
+			minut += rand(2,5)
+			gs'stat'
 
+			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation2.jpg"></center>'
+			'"And where did the attack occur?"'
 
-if $ARGS[0] = 'repeat':
-	minut += 2
-	gs 'pain', 2, 'armR', 'pinch'
-	gs 'stat'
+			if $loc = 'city_center':
+				'"Here, i-in the city center. But he pulled me away. I... I don''t remember how far..."'
 
-	police_event = rand(1,5)
-	!else repeat offender, the looks doesn''t matter only the variable that you''re being booked again
-	!randomized events
-	if police_event = 1:
-		'"Look who''s back! She just couldn''t stay out of trouble."'
-		'The others smile and shake their heads as he leads you further inside the police station.'
+			elseif $loc = 'city_residential':
+				'"In th-the residential district. But he pulled me away. I... I don''t remember how far..."'
 
-	elseif police_event = 2:
-		'"She really likes getting in trouble! Must be the good food that is served here."'
-		'The others laugh and shake their heads as he leads you further inside the police station.'
+			elseif $loc = 'city_industrial':
+				'"In th-the industrial district. But he pulled me away. I... I don''t remember how far..."'
 
-	elseif police_event = 3:
-		'"Look who I brought back with me. She just can''t keep away from here!"'
-		'The others smile and shake their heads as he leads you further inside the police station.'
+			elseif $loc = 'city_island':
+				'"On th-the island, Vasilyevsky Island. But he pulled me away. I... I don''t remember how far..."'
 
-	elseif police_event = 4:
-		'"Time to book <<$pcs_lastname>> again. She just can''t keep out of trouble."'
-		'The others shake their heads as he leads you further inside the police station.'
+			elseif $loc = 'city_park':
+				'"In th-the park. But he pulled me away. I... I don''t remember how far..."'
+			end
 
-	elseif police_event = 5:
-		'"You really like to get in trouble, don''t you?"'
-		'The others shake their heads as he leads you further inside the police station.'
-	end
+			'"Can you describe what he looked like?"'
+			'The blood drains from your face. "I... I-!"'
+			'"Anything about him will be helpful. Height? Build? Hair color? Eye color?"'
 
-	killvar 'police_event'
+			act 'I... can''t...':
+				cla
+				*nl
+				'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation1.jpg"></center>'
+				'"He was... I don''t remember how tall he was... And... he was wearing a nondescript hoody, I couldn''t tell what his body type was... And-! And... I don''t know what he looks like... he was behind me during... the event..."'
+				'The officer doesn''t say anything but you see him slightly shake his head. You realize that the information you gave him is going to be of little to no use at all. A rape in town and nothing else to go off of? You might as well have told him you a pidgeon did it.'
+				*nl
+				'For a moment, you wonder how many other girls like you have sat at this desk filing a report just like this one only for it to go nowhere. You wonder if any of them were been raped by the same man who raped you...'
 
-	act 'Continue further in': gt 'police_station', 'booking'
-end
+				act'Finish the interview':
+					cla & *clr
+					minut += rand(2,5)
+					gs'stat'
 
+					'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
+					'With that, you conclude the interview and are led to the front door.'
+					'"We''ll take this information into consideration. Again, we''re very sorry for what happened to you."'
+					'And then he walks away. Leaving you so very alone...'
 
-if $ARGS[0] = 'multiple':
-	minut += 2
-	gs 'pain', 2, 'armR', 'pinch'
-	gs 'stat'
+					act'Leave': gt 'city_center'
+				end
 
-	police_event = rand(1,5)
-	!triggered more than 5 times, randomized
-	if police_event = 1:
-		'"You''re getting a bit familiar with this place, aren''t you?"'
-		'The others shake their heads as he leads you further inside the police station.'
+				if cumsumvag+cumsumass > 0:
+					act 'Can I get a rape kit?':
+						cla & *clr
+						minut += 2
+						gs'stat'
 
-	elseif police_event = 2:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "Why won''t you learn? You know doing this will only lead to worse things..."'
-		'The others shake their heads as he leads you further inside the police station.'
+						'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cubicle.jpg"></center>'
+						'"C-can I get a... a rape kit...?" you mumble.'
+						'The officer nods at you and pulls a small box out of a drawer in his desk.'
+						'"If you just come this way ma''am." The two of you get up and he leads you through the office area to the bathroom where he hands you the box. Looking down at it, you read the label on it.'
+						*nl
+						'<i><b>SEXUAL ASSAULT EVIDENCE COLLECTION KIT</b></i>'
+						*nl
+						'You take it from him, cradling it in your hands.'
+						'"This will let you catch him right?" The officer shrugs in return.'
+						'"It depends. DNA evidence is only useful if we can match it to the person it came from."'
+						'"So you''re saying this might not do anything?"'
+						'He shrugs again. "It''s better than nothing."'
 
-	elseif police_event = 3:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "I''m getting tired of seeing you around here, <<$pcs_lastname>>..."'
-		'The others shake their heads as he leads you further inside the police station.'
+						act 'Use the rape kit':
+							cla & *clr
+							minut += 20
+							gs'stat'
 
-	elseif police_event = 4:
-		'The staff sitting at the reception desk glance at you while the officer sighs tiredly, "You''re flushing your life straight down the shitter if you keep this up, <<$pcs_lastname>>."'
-		'The others shake their heads as he leads you further inside the police station.'
+							'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityext.jpg"></center>'
+							'Closing the bathroom door, you open the kit and you swab your insides, feeling humiliated and disgusted when it comes back covered in semen. Packaging it up, you re-open the door and hand the evidence to the officer.'
+							'With that, you conclude the interview and are led to the front door.'
+							'"We''ll take this information into consideration. Again, we''re very sorry for what happened to you." And then he walks away.'
+							*nl
+							'Leaving you alone with your thoughts and memories of your rape...'
 
-	elseif police_event = 5:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs, "Here we go again. You know the drill, <<$pcs_lastname>>..."'
-		'The others shake their heads as he leads you further inside the police station.'
+							act 'Leave': gt 'city_center'
+						end
+					end
+				end
+			end
+		end
 	end
-
-	killvar 'police_event'
-	act 'Continue further in': gt 'police_station', 'booking'
 end
 
-if $ARGS[0] = 'regular':
-	minut += 2
-	gs 'pain', 2, 'armR', 'pinch'
-	gs 'stat'
-
-	police_event = rand(1,8)
-	!triggered more than 10 times, randomized
-	if police_event = 1:
-		'The staff sitting at the reception desk glance your way as the arresting officer glares down at you, "I''m sick and tired of processing you, <<$pcs_lastname>>! I hope they lock you away for a long time!"'
-		'The others shake their heads as he leads you further inside the police station.'
 
-	elseif police_event = 2:
-		'The staff sitting at the reception desk glance your way as the arresting officer smirks, "Well, if it isn''t our favorite customer. How long will you be staying this time?"'
-		'The others laugh loudly as he leads you further inside the police station.'
 
-	elseif police_event = 3:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "Why do you continue doing this, <<$pcs_lastname>>? Aren''t you getting tired of this life?"'
-		'The others shake their heads as he leads you further inside the police station.'
 
-	elseif police_event = 4:
-		'The staff sitting at the reception desk glance at you as the arresting officer smiles sarcastically, "What a surprise, it''s our favorite little criminal!"'
-		'The others shake their heads as he leads you further inside the police station.'
+	!!===================================================================!!
+	!!                                                                   !!
+	!!                              ARRESTS                              !!
+	!!                                                                   !!
+	!!===================================================================!!
 
-	elseif police_event = 5:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "May they lock you up for a long time..."'
-		'The others shake their heads as he leads you further inside the police station.'
 
-	elseif police_event = 6:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "There''s really no saving you, <<$pcs_lastname>>..."'
-		'The others shake their heads as he leads you further inside the police station.'
+if $ARGS[0] = 'entrance':
+	menu_off = 1
 
-	elseif police_event = 7:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "I hope they give you a long sentence this time..."'
-		'The others shake their heads as he leads you further inside the police station.'
+	'<center><h1><font color="maroon">Reception area</font></h1></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
+	'The officer drags you in by the arm, his grip tightening whenever he feels the slightest bit of resistance from you. You expect him to take you straight in to be booked, but to your dismay he stops at the front desk to put you on display to the other officers as he gloats.'
+	*nl
 
-	elseif police_event = 8:
-		'The staff sitting at the reception desk glance at you as the arresting officer sighs heavily, "I don''t know what to say anymore, <<$pcs_lastname>>... You''re really a lost case..."'
-		'The others shake their heads as he leads you further inside the police station.'
-	end
+	!first time offender, event where Sveta gets caught stealing
+	!need to add a variable to store that Sveta has been brought into the police station
 
-	killvar 'police_event'
-	act 'Continue further in': gt 'police_station', 'booking'
+	gs 'court_arrest_events', 'booking_start', $ARGS[1]
 end
 
 
 !Goes through the process of getting booked, pretty straight forward, an event when Sveta gets booked the first time (three ways how this goes) and repeatable bookings
 if $ARGS[0] = 'booking':
-	if temp_tot_booked = 1:
+	if func('court_functions', 'get_total_arrests') = 1:
 		gt 'police_station', 'booking1'
 	else
 		gt 'police_station', 'booking2'
@@ -309,9 +182,7 @@ if $ARGS[0] = 'booking1':
 	'The other officer looks you up and down, evaluating you at a glance. "<<$pcs_lastname>> was it, right?"'
 
 	act 'Play along': gt 'police_station', 'booking1_play_along'
-
 	act 'Answer brashly': gt 'police_station', 'booking1_brash'
-
 	act 'Try to weasel your way out': gt 'police_station', 'booking1_weasel'
 end
 
@@ -924,375 +795,91 @@ if $ARGS[0] = 'interrogation':
 	minut += 10
 	gs 'stat'
 
-	detecrand = rand (1,100)
+	detecrand = rand (1, 100)
 
 	!Then we add a bonus or penalty to the roll, depending on his relationship with you:
-	if policeQW['bookingofficer_rel'] >= 90:
-		detecrand += 10
-	elseif policeQW['bookingofficer_rel'] >= 80:
-		detecrand += 8
-	elseif policeQW['bookingofficer_rel'] >= 70:
-		detecrand += 6
-	elseif policeQW['bookingofficer_rel'] >= 60:
-		detecrand += 4
-	elseif policeQW['bookingofficer_rel'] >= 50:
-		detecrand += 2
-	elseif policeQW['bookingofficer_rel'] >= 25:
+	if policeQW['bookingofficer_rel'] < 25:
+		detecrand -= 10
+	elseif policeQW['bookingofficer_rel'] < 50:
 		detecrand += 0
+	elseif policeQW['bookingofficer_rel'] < 60:
+		detecrand += 2
+	elseif policeQW['bookingofficer_rel'] < 70:
+		detecrand += 4
+	elseif policeQW['bookingofficer_rel'] < 80:
+		detecrand += 6
+	elseif policeQW['bookingofficer_rel'] < 90:
+		detecrand += 8
 	else
-		detecrand -= 10
+		detecrand += 10
 	end
 
-
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/interrogationroom.jpg"></center>'
 	'The detective leads you to a small private room with only some chairs and a table. He shoves you in and closes the door behind him.'
 	'He tells you to take a seat and you quietly comply. "I''ll be right back I need to get something..." he says.'
 	'You take a seat on the chair and look around anxiously while waiting for the detective to return. As he returns you see him holding a paper.'
 
-	if $policeQW['crime_flag'] = 'shoplift':
-	!if caught stealing
-		if book_response = 5: gt 'police_station', 'shoplift_hard'
-
-		if book_response = 4: gt 'police_station', 'shoplift_easy'
-
-		!Normal response
+	act 'Continue':
 		if book_response = 1:
 			if detecrand >= 86:
-				gt 'police_station', 'shoplift_easy'
+				$policeQW['detective_type'] = 'easy'
+				gt 'court_arrest_events', 'interrogation_start', 'easy'
 
 			elseif detecrand >= 16:
-				gt 'police_station', 'shoplift_norm'
-
-			else
-				gt 'police_station', 'shoplift_hard'
-			end
-
-		!Bribe the booking officer
-		elseif book_response = 2:
-			if detecrand >= 31:
-				gt 'police_station', 'shoplift_easy'
-
-			elseif detecrand >= 11:
-				gt 'police_station', 'shoplift_norm'
+				$policeQW['detective_type'] = 'norm'
+				gt 'court_arrest_events', 'interrogation_start', 'norm'
 
 			else
-				gt 'police_station', 'shoplift_hard'
+				$policeQW['detective_type'] = 'hard'
+				gt 'court_arrest_events', 'interrogation_start', 'hard'
 			end
 
 		!Give the officer a hard time
-		elseif book_response = 3:
+		elseif book_response = 2:
 			if detecrand >= 91:
-				gt 'police_station', 'shoplift_easy'
+				$policeQW['detective_type'] = 'easy'
+				gt 'court_arrest_events', 'interrogation_start', 'easy'
 
 			elseif detecrand >= 71:
-				gt 'police_station', 'shoplift_norm'
+				$policeQW['detective_type'] = 'norm'
+				gt 'court_arrest_events', 'interrogation_start', 'norm'
 
 			else
-				gt 'police_station', 'shoplift_hard'
-			end
-		end
-
-	elseif $policeQW['crime_flag'] = 'prostitution':
-	!if caught whoring
-		if book_response = 5: gt 'police_station', 'prostitution_hard'
-
-		if book_response = 4: gt 'police_station', 'prostitution_easy'
-
-		!Normal response
-		if book_response = 1:
-			if detecrand >= 86:
-				gt 'police_station', 'prostitution_easy'
-
-			elseif detecrand >= 16:
-				gt 'police_station', 'prostitution_norm'
-
-			else
-				gt 'police_station', 'prostitution_hard'
+				$policeQW['detective_type'] = 'hard'
+				gt 'court_arrest_events', 'interrogation_start', 'hard'
 			end
 
 		!Bribe the booking officer
-		elseif book_response = 2:
+		elseif book_response = 3:
 			if detecrand >= 31:
-				gt 'police_station', 'prostitution_easy'
+				$policeQW['detective_type'] = 'easy'
+				gt 'court_arrest_events', 'interrogation_start', 'easy'
 
 			elseif detecrand >= 11:
-				gt 'police_station', 'prostitution_norm'
+				$policeQW['detective_type'] = 'norm'
+				gt 'court_arrest_events', 'interrogation_start', 'norm'
 
 			else
-				gt 'police_station', 'prostitution_hard'
+				$policeQW['detective_type'] = 'hard'
+				gt 'court_arrest_events', 'interrogation_start', 'hard'
 			end
 
-		!Give the officer a hard time
-		elseif book_response = 3:
-			if detecrand >= 91:
-				gt 'police_station', 'prostitution_easy'
-
-			elseif detecrand >= 71:
-				gt 'police_station', 'prostitution_norm'
-
-			else
-				gt 'police_station', 'prostitution_hard'
-			end
-		end
-	end
-end
-
-
-if $ARGS[0] = 'shoplift_easy':
-!easy going detective
-	minut += 20
-	$policeQW['detective_type'] = 'easy'
-	gs 'stat'
-
-	picrand = rand(1, 2)
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-	'He takes a seat at the table opposite of you, "So caught stealing, eh?" he asks.'
-	'You nervously look around trying to avoid eye-contact...'
-	'He''s quick to notice your nervousness and tells you to relax, he only wants to know what happened. "Now start from the beginning..."'
-	'You take a deep breath and begin confessing your crime as the detective listens attentively.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
-
-		if policeQW['toldonguard'] = 2:
-			policeQW['toldonguard'] = 1
-
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'You tear up, "So in the end the security guard forced me to have sex with him..."'
-			'The detective looks up, "Sounds awful! I''ll send some officers over to have a talk with him and we''ll take actions against him... assuming you''re telling the truth."'
-			'You nod your head, "I am, I promise!" You say before continuing to admit to everything while the detective writes down some notes.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and as you''ve made my job easy by admitting to everything, I can get you in front of him today. Don''t worry I''ll put in a good word for you," he reassures gently.'
-
-		else
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'As you finish you see the detective write down one last thing before looking at you, "Good, that''s everything I need."'
-			'"What will happen to me?" you ask.'
-			'"Don''t worry, it was a petty crime and you''ve been more than cooperative with me and the booking officer, so I''ll put in a good word for you to the civil court judge," he reassures you.'
-		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
-	end
-end
-
-
-if $ARGS[0] = 'shoplift_norm':
-!normal detective
-	minut += 20
-	$policeQW['detective_type'] = 'norm'
-	gs 'stat'
-
-	picrand = rand(1, 2)
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-	'He takes a seat opposite of you, "So caught stealing, eh?" he asks.'
-	'You nervously look around trying to avoid eye-contact...'
-	'"Look here <<$pcs_firstname>>, I''m just trying to do my job so lets make this quick and easy: tell the truth and confess to everything."'
-	'You take a deep breath and begin to talk.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
-
-		if policeQW['toldonguard'] = 2:
-			policeQW['toldonguard'] = 1
-
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'You tear up, "So in the end the security guard forced me to have sex with him..."'
-			'The detective really isn''t paying attention to you as he scribbles things down, "I''ll see if there are any free officers to head over and interrogate the security guard about it."'
-			'You nod your head before continuing the confession. The officer looks bored, but he continues writing everything down.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything... we might as well take you in front of him and see how it goes," he says tiredly.'
-
-		else
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'As you finish you confessing, the detective looks at you with an unreadable expression. "Well, you''ve pretty much confessed to everything, <<$pcs_firstname>>. It''s an open and shut case."'
-			'"What will happen to me?" you ask.'
-			'"Who knows, I''m not the civil court judge," he shrugs.'
-		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
-	end
-end
-
-
-if $ARGS[0] = 'shoplift_hard':
-!rough detective
-	minut += 20
-	$policeQW['detective_type'] = 'hard'
-	gs 'stat'
-
-	picrand = rand(1, 2)
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-	'He takes a seat opposite of you, "So caught stealing, eh?" he asks.'
-	'You shrug your shoulders nonchalantly, not really caring what might happen.'
-	'"Don''t waste my time, <<$pcs_firstname>>," he threatens. "If you won''t take this seriously, then I won''t put in the effort to give a shit what happens to you. Now, stop fucking around and tell me everything you did."'
-	'You stutter as you begin confessing.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
+		!! Flirt and comply
+		elseif book_response = 4:
+			$policeQW['detective_type'] = 'easy'
+			gt 'court_arrest_events', 'interrogation_start', 'easy'
 
-		if policeQW['toldonguard'] = 2:
-			policeQW['toldonguard'] = 1
-
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'You tear up, "So in the end the security guard forced me to have sex with him..."'
-			'The detective''s scowl deepens as he glares at you. "You think you can just say shit like that and get away with everything? Stop lying, or I''ll throw you back in that cell with that crazy woman."'
-			'You shake your head, "I''m telling the truth! Why won''t you believe me?"'
-			'The detective lets out a loud sigh, "Sticking to your lies, huh? Fine but let me be clear: lying about a hard working security officer like this just to get away with stealing is going to make you an enemy to a lot of people around here, including the judge you''re about to see. I''m sure he''ll love to hear your swan song."'
-
-		else
-			picrand = rand(1, 2)
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation<<picrand>>.jpg"></center>'
-			'As you finish, the detective looks up at you, "Good, that''s everything I need from you. Makes my job easier, y''know."'
-			'"What will happen to me?" you ask.'
-			'"Hopefully the civil court judge will give be going for a long and hard sentence. Criminals need to be taught a lesson," he says coldly.'
+		!! Flirt then refuse
+		elseif book_response = 5:
+			$policeQW['detective_type'] = 'hard'
+			gt 'court_arrest_events', 'interrogation_start', 'hard'
 		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
 	end
 end
 
 
-if $ARGS[0] = 'prostitution_easy':
-	!easy going detective
-	minut += 20
-	$policeQW['detective_type'] = 'easy'
-	gs 'stat'
-
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
-	'You nervously look around trying to avoid eye-contact...'
-	'He''s quick to notice your nervousness and tells you to relax, he only wants to know what happened. "Now start from the beginning..."'
-	'You take a deep breath and begin confessing your crime as the detective listens attentively.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
-
-		if policeQW['prostitution_bribe'] = 2:
-		!if tried to bribe the officer with sex
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'After a while listening to your story the detective clears his throat, "And this was when you tried to offer the officer sex?"'
-			'You stop and nod your head, "Yes, I... I thought it would get me off the hook..." You continue to confess while the detective writes down some notes.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him. I''ll try to put in a good word for you," he says.'
-
-		elseif policeQW['prostitution_bribe'] = 1:
-		!else if tried to bribe the officer with money
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'After a while listening to your story the detective clears his throat, "And this was when you tried to offer the officer money?"'
-			'You stop and nod your head, "Yes, I... I thought it would get me off the hook..." You continue to confess while the detective writes down some notes.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him. I''ll try to put in a good word for you," he says.'
-
-		else
-			!this will show up otherwise
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'As you finish, you see the detective write down one last thing before looking at you, "Good, that''s everything I need."'
-			'"What will happen to me?" you ask.'
-			'"Don''t worry, the civil court judge probably won''t care too much about the crime and both the booking officer and I will put in a good word for you since you made our job easy and confessed to everything. The punishment, if there is one, shouldn''t be too bad," he reassures you.'
-		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
-	end
-end
-
-
-if $ARGS[0] = 'prostitution_norm':
-!normal detective
-	minut += 20
-	$policeQW['detective_type'] = 'norm'
-	gs 'stat'
-
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
-	'You nervously look around trying to avoid eye-contact...'
-	'"Look here <<$pcs_firstname>>, I''m just trying to do my job here so how about you confess and we''ll take it from there..."'
-	'You take a deep breath and begin to talk.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
-
-		if policeQW['prostitution_bribe'] = 2:
-		!if tried to bribe the officer with sex
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'You tear up, "And this is where I thought I could bribe the officer with sex..."'
-			'The detective, not really paying attention, scribbles it down, "Attempted to bribe the officer with sex," he repeats.'
-			'You nod your head before continuing to confess to the bored looking officer.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him and we''ll see how it goes..." he says tiredly.'
-
-		elseif policeQW['prostitution_bribe'] = 1:
-		!if tried to bribe the officer with money
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'You tear up, "And this is where I thought I could bribe the officer with money..."'
-			'The detective, not really paying attention, scribbles it down, "Attempted to bribe the officer with money," he repeats.'
-			'You nod your head before continuing to confess to the bored looking officer.'
-			'"Okay <<$pcs_firstname>>, we have a civil court judge for these kind of cases and since you''ve already admitted to everything, we might as well take you in front of him and we''ll see how it goes..." he says tiredly.'
-
-		else
-		!this will show up otherwise
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'As you finish, you see the detective write down one last thing before looking at you, "Well, you''ve pretty much confessed to everything, <<$pcs_firstname>>. It''s an open and shut case."'
-			'"What will happen to me?" you ask.'
-			'"Truth be told, I don''t really know what kind of sentence the judge will be going for..." he tells you.'
-		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
-	end
-end
-
-
-if $ARGS[0] = 'prostitution_hard':
-!rough detective
-	minut += 20
-	$policeQW['detective_type'] = 'hard'
-	gs 'stat'
-
-	'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-	'He takes a seat opposite of you, "So caught prostituting, eh?" he asks.'
-	'You shrug your shoulders nonchalantly not really caring what might happened.'
-	'"Don''t waste my time, <<$pcs_firstname>>," he threatens. "If you won''t take this seriously, then I won''t put in the effort to give a shit what happens to you. Now, stop fucking around and tell me everything you did."'
-	'You stutter as you begin confessing.'
-
-	act 'Continue':
-		*clr & cla
-		gs 'stat'
-
-		if policeQW['prostitution_bribe'] = 2:
-		!if tried to bribe the officer with sex
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'You tear up, "And this is where I thought I could bribe the officer with sex..."'
-			'The detective''s face twists into a scowl. "You think you can get away with this by accusing someone of rape?!"'
-			'You shake your head, "Not at all! I''ve heard from the other girls that they''ve gotten away by doing that, so I thought--"'
-			'He slams his fist down on the table. "You think you can get away with telling these kind of lies against our fine police force?! You''re in deep shit now, <<$pcs_firstname>>. I''m taking you to see the judge, and we''ll see how he likes hearing you make a mockery of our justice system."'
-
-		elseif policeQW['prostitution_bribe'] = 1:
-		!if tried to bribe the officer with money
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'You tear up, "And this is where I thought I could bribe the officer with money..."'
-			'The detective''s face twists into a scowl. "You thought you could just buy your way out of this? That''s not how the world works, your actions have consequences!"'
-			'You shake your head, "Not at all! I''ve heard from the other girls that they''ve gotten away by doing that, so I thought--"'
-			'He slams his fist down on the table. "You think you can get away with telling these kind of lies against our fine police force?! You''re in deep shit now, <<$pcs_firstname>>. I''m taking you to see the judge, and we''ll see how he likes hearing you make a mockery of our justice system."'
-
-		else
-		!this will show up otherwise
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogationpro.jpg"></center>'
-			'As you finish you see the detective looks at you, "Good just what I was looking for. You''ve confessed everything. Makes my and the prosecutors job easier."'
-			'"What will happen to me?" you ask.'
-			'"Hopefully the judge will give you a long and hard sentence." he angrily answers you.'
-		end
-
-		act 'Return to the holding cell': gt 'police_station', 'returncell'
-	end
-end
-
 
 if $ARGS[0] = 'returncell':
-	killvar 'book_response'
 	minut += 180
 	!! add the letter to be sent
 	policeQW_courtletter_dates[] = daystart + 7
@@ -1308,21 +895,7 @@ if $ARGS[0] = 'returncell':
 		*clr & cla
 		gs 'stat'
 
-		if $policeQW['crime_flag'] = 'shoplift':
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityhold.jpg"></center>'
-			'"I got caught while I was stealing stuff," you answer nonchalantly.'
-			'The woman smirks, "A petty crime, you''ll be fine."'
-			'"What are you in for?" you ask her.'
-			'She starts laughing, "I refused to bribe one of these fuckers while I was prostituting so they brought me in as a punishment."'
-			'"I see..." you answer a bit taken back by her openness.'
-
-		elseif $policeQW['crime_flag'] = 'prostitution':
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityhold.jpg"></center>'
-			'"I got caught while I was prostituting," you answer nonchalantly.'
-			'She smiles surprisingly, "You too?!" The two of you start to laugh loudly.'
-			'"I refused to bribe one of these fuckers while I was prostituting so they brought me in as a punishment," she tells you, "So where do you usually work I haven''t seen you around?" she asks.'
-			'"Yeah same thing happened to me," you answer, "Here and there. I try to keep myself away from the usual spots." you explain.'
-		end
+		gs 'court_arrest_events', 'cellmate_story'
 
 		act 'Keep talking':
 			*clr & cla
@@ -1335,7 +908,7 @@ if $ARGS[0] = 'returncell':
 			'"Go on before they change their mind," she smiles.'
 			'You say goodbye to each other and the officer leads you towards the entrance and as the police station doors open you can feel the fresh wind breeze against your face.'
 
-			act 'Walk outside':gt 'city_center'
+			act 'Walk outside': gt 'city_center'
 		end
 	end
 
@@ -1350,121 +923,9 @@ if $ARGS[0] = 'returncell':
 		'Some time passes by and the cell door opens, "<<$pcs_lastname>>, it''s your time to get released."'
 		'You quickly jump up and hurry out from the holding cell. The officer leads you towards the entrance and as the police station doors open you can feel the fresh wind breeze against your face.'
 
-		act 'Walk outside':gt 'city_center'
+		act 'Walk outside': gt 'city_center'
 	end
 end
 
 
-if $ARGS[0] = 'rape_report':
-	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
-	'One step after another, you trudge through town until you suddenly find yourself standing inside the police station. On the other side of a plexiglass reception, you can see several officers milling about, though none pay attention to you. Stepping up to the window, you pick up the phone and hear a buzzer sound on the other side. One of the officers picks it up without hesitation and looks at you.'
-	'"Can I help you?"'
-	'"I- I''d like t-to report a r-rape..." you stammer out. The officer nods but his expression doesn''t change in the slightest.'
-	'"Someone will come out to meet you. Follow them and they''ll take your statement in the back."'
-
-	act 'Continue':
-		cla & *clr
-		minut += rand(2,5)
-		gs'stat'
-
-		'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation1.jpg"></center>'
-		'As promised, someone comes out and takes you into their office space behind. You sit down at a shoddy looking desk and the officer takes his place on the other side of it.'
-		'"Alright ma''am, tell me what happened to you."'
-		'You explain to the officer as best as you can what happened to you while he takes notes. How you were randomly attacked, how you were violated.'
-
-		act 'Continue':
-			cla & *clr
-			minut += rand(2,5)
-			gs'stat'
-
-			'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation2.jpg"></center>'
-			'"And where did the attack occur?"'
-
-			if $loc = 'city_center':
-				'"Here, i-in the city center. But he pulled me away. I... I don''t remember how far..."'
-
-			elseif $loc = 'city_residential':
-				'"In th-the residential district. But he pulled me away. I... I don''t remember how far..."'
-
-			elseif $loc = 'city_industrial':
-				'"In th-the industrial district. But he pulled me away. I... I don''t remember how far..."'
-
-			elseif $loc = 'city_island':
-				'"On th-the island, Vasilyevsky Island. But he pulled me away. I... I don''t remember how far..."'
-
-			elseif $loc = 'city_park':
-				'"In th-the park. But he pulled me away. I... I don''t remember how far..."'
-			end
-
-			'"Can you describe what he looked like?"'
-			'The blood drains from your face. "I... I-!"'
-			'"Anything about him will be helpful. Height? Build? Hair color? Eye color?"'
-
-			act 'I... can''t...':
-				cla
-				*nl
-				'<center><img <<$set_imgh>> src="images/locations/shared/police/interrogation1.jpg"></center>'
-				'"He was... I don''t remember how tall he was... And... he was wearing a nondescript hoody, I couldn''t tell what his body type was... And-! And... I don''t know what he looks like... he was behind me during... the event..."'
-				'The officer doesn''t say anything but you see him slightly shake his head. You realize that the information you gave him is going to be of little to no use at all. A rape in town and nothing else to go off of? You might as well have told him you a pidgeon did it.'
-				*nl
-				'For a moment, you wonder how many other girls like you have sat at this desk filing a report just like this one only for it to go nowhere. You wonder if any of them were been raped by the same man who raped you...'
-
-				act'Finish the interview':
-					cla & *clr
-					minut += rand(2,5)
-					gs'stat'
-
-					'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
-					'With that, you conclude the interview and are led to the front door.'
-					'"We''ll take this information into consideration. Again, we''re very sorry for what happened to you."'
-					'And then he walks away. Leaving you so very alone...'
-
-					act'Leave': gt 'city_center'
-				end
-
-				if cumsumvag+cumsumass > 0:
-					act 'Can I get a rape kit?':
-						cla & *clr
-						minut += 2
-						gs'stat'
-
-						'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cubicle.jpg"></center>'
-						'"C-can I get a... a rape kit...?" you mumble.'
-						'The officer nods at you and pulls a small box out of a drawer in his desk.'
-						'"If you just come this way ma''am." The two of you get up and he leads you through the office area to the bathroom where he hands you the box. Looking down at it, you read the label on it.'
-						*nl
-						'<i><b>SEXUAL ASSAULT EVIDENCE COLLECTION KIT</b></i>'
-						*nl
-						'You take it from him, cradling it in your hands.'
-						'"This will let you catch him right?" The officer shrugs in return.'
-						'"It depends. DNA evidence is only useful if we can match it to the person it came from."'
-						'"So you''re saying this might not do anything?"'
-						'He shrugs again. "It''s better than nothing."'
-
-						act 'Use the rape kit':
-							cla & *clr
-							minut += 20
-							gs'stat'
-
-							'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityext.jpg"></center>'
-							'Closing the bathroom door, you open the kit and you swab your insides, feeling humiliated and disgusted when it comes back covered in semen. Packaging it up, you re-open the door and hand the evidence to the officer.'
-							'With that, you conclude the interview and are led to the front door.'
-							'"We''ll take this information into consideration. Again, we''re very sorry for what happened to you." And then he walks away.'
-							*nl
-							'Leaving you alone with your thoughts and memories of your rape...'
-
-							act 'Leave': gt 'city_center'
-						end
-					end
-				end
-			end
-		end
-	end
-end
-
-
-killvar 'temp_tot_booked'
-
-
 --- police_station ---------------------------------
-

+ 8 - 477
locations/sentence.qsrc

@@ -5,28 +5,10 @@
 !!adding a version if Sveta has gone to court and not paid the fine within 30 days
 
 
-!! gs 'add_fine', fine
-if $ARGS[0] = 'add_fine':
-	policeQW['legal_fine'] += ARGS[1]
-
-	temp_tot_missed = max(0, policeQW['tot_court_dates_missed'] + policeQW['tot_fines_deadlines_missed'])
-	temp_current_missed = max(0, policeQW['missed_fine_deadlines'] + policeQW['missed_court_dates'] - 1)
-
-	if policeQW['fine_deadline'] = 0:
-		policeQW['fine_deadline'] = daystart + 28 - min(14, temp_tot_missed / 4)
-	else
-		policeQW['fine_deadline'] = max(daystart, policeQW['fine_deadline']) + 14 - min(7, 2 * temp_current_missed + temp_tot_missed / 4)
-	end
-
-	killvar 'temp_current_missed'
-	killvar 'temp_tot_missed'
-end
-
-
 if $ARGS[0] = 'start':
 	*clr & cla
 	minut += 2
-	gs'stat'
+	gs 'stat'
 
 	'<center><img <<$set_imgh>> src="images/locations/city/shared/court/courthouse.jpg"></center>'
 	'You are standing in the middle of the Greco-Roman inspired main courthouse for the whole city of St. Petersburg.'
@@ -74,162 +56,11 @@ if $ARGS[0] = 'hearing':
 			'You try your best to listen to some of the defenses maybe you can pick up something useful before seeing the judge but it doesn''t take long before you lose focus and dream yourself away not really focusing on what''s happening around you.'
 			'All of a sudden you''re interrupted as you hear your name being called out. Startled, you quickly let the whole room know that you''re here as you hear some people quietly let out a laugh.'
 
-			if mid($policeQW_courthearing_subjects[0], 1, 8) = 'shoplift':
-				act 'Stand in front of the judge':
-					*clr & cla
-					minut += 20
-					gs 'stat'
-
-					'<center><img <<$set_imgh>> src="images/locations/city/shared/court/judge.jpg"></center>'
-					'The judge speaks up with a stern voice, "So I see that you''re here because of you''ve gotten caught stealing."'
-					'You sink your glance in shame and nod meekly.'
-					'The judge continues on, "Let''s see what the detectives concluded during their investigation."'
-
-					if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-						'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective seem to be quite positive in the report."'
-						'Suddenly, you feel a bit emboldened as the detective seems to have come through for you. You even manage to let out a little smirk.'
-						'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
-						'"Yes your honor." you respectfully answer.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-
-					elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-						'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective has only written neutral comments in the report."'
-						'Suddenly, you feel a bit looser as you can probably expect a lighter sentencing than usual. You let out a relieving sigh.'
-						'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
-						'"Yes your honor." you respectfully answer.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-
-					else
-						'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, what is wrong with you? The report written by the detective is quite damaging and you will be getting a harsher sentencing."'
-						'You look nonchalantly at the judge, almost ignoring what he has to say.'
-						'"Well as you''ve already admitted being guilty, no need listening to your pleading," he sternly looks at you.'
-						'"Whatever." you shrug your shoulders.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-					end
-				end
-
-			elseif mid($policeQW_courthearing_subjects[0], 1, 12) = 'prostitution':
-				act 'Stand in front of the judge':
-					*clr & cla
-					minut += 20
-					gs 'stat'
-
-					'<center><img <<$set_imgh>> src="images/locations/city/shared/court/judge.jpg"></center>'
-					'The judge speaks up with a stern voice, "So I see that you''re here because of you''ve gotten caught prostituting."'
-					'You sink your glance in shame and nod meekly.'
-					'The judge continues on, "Let''s see what the detectives concluded during their investigation."'
-
-					if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-						'Suddenly, you feel a bit emboldened as the detective seems to have come through for you. You even manage to let out a little smirk.'
-						'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
-						'"Yes your honor." you respectfully answer.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-
-					elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-						'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, the detective has only written neutral comments in the report."'
-						'Suddenly, you feel a bit looser as you can probably expect a lighter sentencing than usual. You let out a relieving sigh.'
-						'"Well as you''ve already admitted being guilty I guess we don''t need to listen to your pleading," he sternly looks at you.'
-						'"Yes your honor." you respectfully answer.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-
-					else
-						'The judge sits and quietly glances through the report, looking towards you from time to time, "Miss <<$pcs_lastname>>, what is wrong with you? The report written by the detective is quite damaging and you will be getting a harsher sentencing."'
-						'You look nonchalantly at the judge, almost ignoring what he has to say.'
-						'"Well as you''ve already admitted being guilty, no need listening to your pleading," he sternly looks at you.'
-						'"Whatever." you shrug your shoulders.'
-
-!!do a check if the player missed any earlier sentencing
-						if policeQW['missed_court_dates'] > 0:
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>," and just as he''s about to close it, he stops at the last page, "Wait! What is this? Have you missed a sentencing?" he inquirers.'
-							'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "Yes..." you meekly answer.'
-							'With the judges eyes piercing through you, they clear their throat, "Well then this will affect your punishment. This is a serious thing Miss <<$pcs_lastname>>. The court can''t turn a blind eye to this. We''ll have to take this into the consideration when deciding your punishment."'
-							'You try your best to hold back the tears as you nod that you understand.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-
-						else
-							'The judge continues on flipping throughout the report, "Well everything seems to check out <<$pcs_lastname>>, shall we proceed to the punishment?" the judge asks.'
-							'You nod and take a deep breath as you await your punishment.'
-
-							act 'Await punishment': gt 'sentence', 'punishment'
-						end
-					end
-				end
-			else
-				gs 'LOCA', 'hearing', 'mod_sentenceevents'
+			act 'Stand in front of the judge':
+				minut += 20
+				gs 'stat'
+
+				gt 'court_sentence_events', 'judge_start', $policeQW_courthearing_subjects[0]
 			end
 		end
 	end
@@ -245,308 +76,9 @@ if $ARGS[0] = 'punishment':
 	'You tremble a bit in fear as he keeps on talking, "With that said, I believe in a more soft approach and that you can improve yourself by learning from your mistakes."'
 	'You meekly nod and feel a bit relieved as you hear that.'
 
-	temp_fine = 0
-	if mid($policeQW_courthearing_subjects[0], 1, 8) = 'shoplift':
-		policeQW['shoplift_counter'] += 1
-
-		if policeQW['shoplift_counter'] <= 5:
-		!Stage 1
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 5000 + (policeQW['shoplift_value'] / 2)
-
-				'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office. You''ve been lucky this time Miss <<$pcs_lastname>>." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 5000 + policeQW['shoplift_value']
-
-				'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 5000 + (3 * policeQW['shoplift_value'] / 2)
-
-				'"I hereby sentence you to a fine of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office. And if it happens that you appear in front of this court again, check your attitude." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['shoplift_counter'] <= 10:
-		!Stage 2
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 7500 + (3 * policeQW['shoplift_value'] / 4)
-
-				'"Seems that I need to increase the fine for you to pay back to a sum of <<temp_fine>> <b>₽</b>. Hopefully, this will teach you a lesson." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 7500 + (3 * policeQW['shoplift_value'] / 2)
-
-				'"Seems that I need to increase the fine for you to pay back to a sum of <<temp_fine>> <b>₽</b>. Hopefully, this will teach you a lesson." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 7500 + (9 * policeQW['shoplift_value'] / 4)
-
-				'"I sentence you hereby to pay back a sum of <<temp_fine>> <b>₽</b> and I''ll also sentence you to some community service at the Mercy Clinic to 20 hours, hopefully this will help." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic? I see you''ve still got an attitude issue." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['shoplift_counter'] <= 15:
-		!Stage 3
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 10000 + policeQW['shoplift_value']
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 10000 + (2 * policeQW['shoplift_value'])
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 10000 + (5 * policeQW['shoplift_value'] / 2)
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['shoplift_counter'] <= 20:
-		!Stage 4
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 15000 + (5 * policeQW['shoplift_value'] / 4)
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 15000 + (5 * policeQW['shoplift_value'] / 2)
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 15000 + (3 * policeQW['shoplift_value'])
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to a sum of <<temp_fine>> <b>₽</b> and increase the community service at the Mercy Clinic to 80 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['shoplift_counter'] <= 25:
-		!Stage 5
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 25000 + (3 * policeQW['shoplift_value'] / 2)
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay this fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 40 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 25000 + (3 * policeQW['shoplift_value'])
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 25000 + (4 * policeQW['shoplift_value'])
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of <<temp_fine>> <b>₽</b> and enjoy your community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		else
-		!Stage 6
-			if mid($policeQW_courthearing_subjects[0], 10, 4) = 'easy':
-				temp_fine += 50000 + (2 * policeQW['shoplift_value'])
-
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 10, 4) = 'norm':
-				temp_fine += 50000 + (4 * policeQW['shoplift_value'])
-
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 50000 + (5 * policeQW['shoplift_value'])
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to <<temp_fine>> <b>₽</b> and the community service at the Mercy Clinic for 160 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before stealing again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-		end
-
-	elseif mid($policeQW_courthearing_subjects[0], 1, 12) = 'prostitution':
-		policeQW['prostitution_counter'] += 1
-
-		if policeQW['prostitution_counter'] <= 5:
-		!Stage 1
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 6000
-
-				'"I hereby sentence you to a fine of 6000 <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office. You''ve been lucky this time Miss <<$pcs_lastname>>." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 7000
-
-				'"I hereby sentence you to a fine of 7000 <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 8000
-
-				'"I hereby sentence you to a fine of 8000 <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office. And if it happens that you appear in front of this court again, check your attitude." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['prostitution_counter'] <= 10:
-		!Stage 2
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 9000
-
-				'"I need to increase the fine to 9000 <b>₽</b>. Hopefully, this will get you to reconsider your actions." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 10500
-
-				'"I need to increase the fine to 10,500 <b>₽</b>. Hopefully, this will get you to reconsider your actions." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 11500
-
-				'"I sentence you hereby to pay a fine of 11,500 <b>₽</b> and I''ll also add some community service at the Mercy Clinic to 20 hours, hopefully this will help you reconsider your actions." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic? I see you''ve still got an attitude issue." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['prostitution_counter'] <= 15:
-		!Stage 3
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 12000
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 12000 <b>₽</b>." the judge reads out your sentence.'
-				'"You can pay your fine at the post office." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 14000
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 14000 <b>₽</b> and sentence you to community service at the Mercy Clinic for 20 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 15000
-
-				'"<<$pcs_lastname>> I see that name come up quite often here. Seems like I need to increase the fine even further to 15000 <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and by now you should know where to find the Mercy Clinic." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
+	gs 'court_sentence_events', 'punishment_start', $policeQW_courthearing_subjects[0]
 
-		elseif policeQW['prostitution_counter'] <= 20:
-		!Stage 4
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 17500
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 17500 <b>₽</b> and sentence you to community service at the Mercy Clinic to 20 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 20000
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 20000 <b>₽</b> and increase the community service at the Mercy Clinic to 40 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 21000
-
-				'"This is starting to get out of hand, <<$pcs_lastname>>! Seems like I need to increase the fine even further to 21000 <b>₽</b> and increase the community service at the Mercy Clinic to 80 hours." the judge reads out your sentence.'
-				'"You already know what you need to do." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		elseif policeQW['prostitution_counter'] <= 25:
-		!Stage 5
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 28000
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay this fine of 28000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 40 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 21000
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of 31000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine +=32000
-
-				'"Well well, what a surprise, <<$pcs_lastname>> stands in front of me again. You''re starting to annoy me! Are you doing this on purpose? Don''t answer and instead pay the fine of 32000 <b>₽</b> and enjoy your community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
-				'"You can pay your fine at the post office and I suppose you know where to find the Mercy Clinic?" the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-
-		else
-		!Stage 6
-			if mid($policeQW_courthearing_subjects[0], 14, 4) = 'easy':
-				temp_fine += 55000
-
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 55000 <b>₽</b> and the community service at the Mercy Clinic for 80 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			elseif mid($policeQW_courthearing_subjects[0], 14, 4) = 'norm':
-				temp_fine += 57500
-
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 57500 <b>₽</b> and the community service at the Mercy Clinic for 120 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-
-			else
-				temp_fine += 60000
-
-				'The judge sighs, "Here we are again <<$pcs_lastname>>! I''m getting tired of being lenient so you''re getting the maximum sentence. The fine will be set to 60000 <b>₽</b> and the community service at the Mercy Clinic for 160 hours." the judge reads out your sentence.'
-				'"You already know what you need to do. I hope you will think about your actions before prostituting yourself again." the judge finishes.'
-				'You nod and quickly make your way out of courtroom.'
-			end
-		end
-	else
-		gs 'LOCA', 'punishment', 'mod_sentenceevents'
-	end
-
-	gs 'sentence', 'add_fine', temp_fine
 	policeQW['fine_deadline'] += 14
-	killvar 'temp_fine'
 	killvar 'policeQW_courthearing_dates', 0
 	killvar '$policeQW_courthearing_subjects', 0
 	act 'Leave the court': gt 'city_center', 'mom_check'
@@ -589,7 +121,7 @@ if $ARGS[0] = 'police_arrest1':
 	'You are taken out of holding and over to the courthouse to await your hearing. The judge reviews your case, "It seems you have missed your hearings, Miss <<$pcs_lastname>>, what do you have to say for yourself?"'
 	'You begin to look around, trying to come up with an excuse. But in the end you decide it''s best to admit, "I have no excuse your honor." you meekly answer.'
 
-	$policeQW_courthearing_subjects[] = mid($policeQW_courtletter_subjects[0], 14)
+	$policeQW_courthearing_subjects[] = $mid($policeQW_courtletter_subjects[0], 14)
 	policeQW_courthearing_dates[] = -1
 	gs 'shortgs', 'coupled_array_sort', 'policeQW_courthearing_dates', '$policeQW_courthearing_subjects'
 
@@ -635,4 +167,3 @@ end
 
 
 --- sentence ---------------------------------
-

+ 11 - 3
locations/sex_ev_condoms.qsrc

@@ -37,7 +37,7 @@ if $ARGS[0] = 'condoms':
 !!	if sex_ev['no_condom'] ! 1 and sex_ev['skip_condom'] ! 1:
 	if sex_ev['no_condom'] ! 1:
 		if npc_bareback[$boy] = 1 and sex_ev['condom'] ! 1:
-	!!		if npc_know_bc[$boy] = 1 and npc_condom_conscious[$boy] ! 2: sex_ev['no_condom'] = 1
+			!! if npc_know_bc[$boy] = 1 and npc_condom_conscious[$boy] ! 2: sex_ev['no_condom'] = 1
 			'You agreed to stop using condoms with <<$npc_firstname[$boy]>> and he makes no move to get one.'
 			if npc_free_creampies[$boy] = 1 or npc_creampie_permission[$boy] = 1:
 				gs 'sex_ev_condoms', 'safeday_check'
@@ -106,7 +106,11 @@ if $ARGS[0] = 'condoms':
 		elseif sex_ev['condom'] = 1:
 			cla
 			if sex_ev['condoms_used'] >= sex_ev['condom_count']:
-				act'Continue':gs 'sex_ev_condoms', 'npc_out_of_condoms'
+				if sex_ev['no_condom'] > 0 and sex_ev['pc_skip_the_condom'] > 0:
+					act'Continue':gs 'sex_ev_sex', 'position_choose'
+				else
+					act'Continue':gs 'sex_ev_condoms', 'npc_out_of_condoms'
+				end
 			else
 				act'Continue':gs 'sex_ev_condoms', 'npc_condom_use'
 			end
@@ -121,7 +125,11 @@ if $ARGS[0] = 'condoms':
 			gs'sex_ev_condoms', 'pc_no_condoms_left'
 		end
 	elseif sex_ev['npc_used_all_condoms'] > 0:
-		gs 'sex_ev_condoms', 'npc_out_of_condoms'
+		if sex_ev['no_condom'] > 0 and sex_ev['pc_skip_the_condom'] > 0:
+			act'Continue':gs 'sex_ev_sex', 'position_choose'
+		else
+			act'Continue':gs 'sex_ev_condoms', 'npc_out_of_condoms'
+		end
 	end
 end
 

+ 1 - 1
locations/sex_ev_pillow_talk.qsrc

@@ -1570,7 +1570,7 @@ if $ARGS[0] = 'on_birth_control':
 
 		act'If I get pregnant, you better take responsibility (tease)':
 			cla & *nl
-			'"If I get pregnant, you better take responsibility for this," you say with a smile to let him know you''re only teasing. He seems deeply discomforted by your joke though...'
+			'"If I get pregnant, you better take responsibility for this," you say with a smile to let him know you''re only teasing. ' + iif(npc_rel[$boy] < 100, 'He seems deeply discomforted by your joke though...', 'Though you really hope you don''t get pregnant off of this...')
 			gs'sex_ev_pillow_talk', 'topic_route'
 		end
 	end

+ 1 - 1
locations/sex_ev_reactions_creampie.qsrc

@@ -3116,7 +3116,7 @@ if $ARGS[0] = 'creampie_accident_birth_control':
 	elseif birth_control['think_safe'] = 0:
 		act'If I get pregnant, you better take responsibility (tease)':
 			cla & *nl
-			'"If I get pregnant, you better take responsibility for this," you say with a smile to let him know you''re only teasing. He seems deeply discomforted by your joke though...'
+			'"If I get pregnant, you better take responsibility for this," you say with a smile to let him know you''re only teasing. ' + iif(npc_rel[$boy] < 100, 'He seems deeply discomforted by your joke though...', 'Though you really hope you don''t get pregnant off of this...')
 			gs'sex_ev_cum', 'what_now'
 		end
 

+ 16 - 7
locations/shop_allure.qsrc

@@ -28,7 +28,6 @@ if $ARGS[0] = 'start':
 			gt 'city_lake', 'start'
 		end
 	end
-
 	act 'View swimsuits': minut += 5 & gt 'shop_allure', 'swim'
 	act 'View bikinis': minut += 5 & gt 'shop_allure', 'bikinis'
 end
@@ -41,7 +40,13 @@ if $ARGS[0] = 'swim':
 	'<center><b><font color="maroon">Swimsuits - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_allure', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_allure', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'allure_swimsuit'
@@ -60,7 +65,7 @@ if $ARGS[0] = 'swim':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_allure'', ''swim1''"><img src="images/pc/items/allure/one/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopallure_swimsuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -77,9 +82,13 @@ if $ARGS[0] = 'bikinis':
 
 	'<center><b><font color="maroon">Bikinis - one size fits all</font></b></center>'
 	*nl
-
-	act 'Return': minut += 1 & gt 'shop_allure', 'start'
-
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_allure', 'start'
+		step = 4
+	end
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'allure_bikinis'
 
@@ -97,7 +106,7 @@ if $ARGS[0] = 'bikinis':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_allure'', ''bikini1''"><img src="images/pc/items/allure/two/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 4
+			i += step
 		if i <= total:jump 'loopallure_bikinis'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:

+ 28 - 11
locations/shop_coco_carmen.qsrc

@@ -14,9 +14,8 @@ if $ARGS[0] = 'start':
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/coco/shop.jpg"></center>'
 	*nl
 	'If you are happy to push through the tourists Coco has everything a young adult might like to wear. It''s a step up from G&M and unless you can afford the boutiques in Old Town you''ll be spending some time buying outfits here.'
-
+	
 	act 'Leave the coco': minut += 3 & gt 'pav_commercial'
-
 	act 'View dresses': minut += 5 & gt 'shop_coco_carmen', 'dress'
 	act 'View other outfits': minut += 5 & gt 'shop_coco_carmen', 'outfits'
 	act 'View purses': minut += 5 & gt 'shop_coco_carmen', 'purses'
@@ -30,7 +29,13 @@ if $ARGS[0] = 'dress':
 	'<center><b><font color="maroon">Viewing Coco Carmen dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+		step = 6
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'coco_dress'
@@ -49,7 +54,7 @@ if $ARGS[0] = 'dress':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_coco_carmen'', ''coco_dress''"><img src="images/pc/items/coco/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 6
+			i += step
 		if i <= total: jump 'loopcoco_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -73,11 +78,17 @@ if $ARGS[0] = 'outfits':
 	'<center><b><font color="maroon">Viewing Coco Carmen outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+		step = 4
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'coco_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopcoco_outfits_filter
@@ -92,7 +103,7 @@ if $ARGS[0] = 'outfits':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_coco_carmen'', ''coco_outfits''"><img src="images/pc/items/coco/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 4
+			i += step
 		if i <= total: jump 'loopcoco_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -114,15 +125,21 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_coco_carmen', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'coco_purses'
-
+	
 	i = 1
 	:loopcoco_purses
 		if coco_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_coco_carmen'', ''purses2''"><img src="images/pc/items/coco/purses/<<i>>.jpg"	 height="150" /></a> '
-		i += 1
-	if i <= totals: jump 'loopcoco_purses'
+		i += step
+	if i <= total: jump 'loopcoco_purses'
 end
 
 if $ARGS[0] = 'purses2': gt 'purses', 'view_purse_item', 'shop', 'coco', i, 2000

+ 68 - 20
locations/shop_danilovich.qsrc

@@ -21,9 +21,8 @@ if $ARGS[0] = 'start' or $ARGS[0] = '':
 	elseif mc_inventory['refill_bottle'] = 0:
 		'The shop sells high-quality water bottles for 1,000 <b>₽</b>. You could carry one around in '+iif(bag > 0, 'your', 'a')+' purse.'
 	end
-
+	
 	act 'Leave': minut += 3 & gt 'city_mall'
-
 	act 'View sports clothing': minut += 5 & gt 'shop_danilovich', 'clo'
 	act 'View sports bras': minut += 5 & gt 'shop_danilovich', 'bras'
 	act 'View sports panties': minut += 5 & gt 'shop_danilovich', 'panties'
@@ -47,7 +46,12 @@ if $ARGS[0] = 'buy_refill_bottle':
 		karta -= 1000
 	end
 	mc_inventory['refill_bottle'] = 1
-	gt $loc_s, $args_s
+	if intro_custom_shop_return = 1:
+		gt 'intro_customization', 'modclo'
+	else
+		gt $loc_s, $args_s
+	end
+
 end
 
 if $ARGS[0] = 'clo':
@@ -58,7 +62,13 @@ if $ARGS[0] = 'clo':
 	'<center><b><font color="maroon">Sportswear - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'danilovich_outfits'
@@ -77,7 +87,7 @@ if $ARGS[0] = 'clo':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''danilovich''"><img src="images/pc/items/danilovich/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopdanilovich_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -95,7 +105,13 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'danilovich_shoes'
@@ -112,7 +128,7 @@ if $ARGS[0] = 'shoes':
 					if Shofilter['inc'] = 1 and Shofilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''training_shoes''"><img src="images/pc/items/danilovich/shoes/<<i>>.jpg" height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopdanilovich_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -130,7 +146,13 @@ if $ARGS[0] = 'swim':
 	'<center><b><font color="maroon">Swimwear - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'danilovich_swimsuit'
@@ -149,9 +171,11 @@ if $ARGS[0] = 'swim':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''swim1''"><img src="images/pc/items/danilovich/swimwear/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 			!!4 is in he supermarket, so skipped
-			if i = 4: i += 2
+			if intro_custom_noexcept = 0:
+				if i = 4: i += 2
+			end
 		if i <= total: jump 'loopswim'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -166,11 +190,17 @@ if $ARGS[0] = 'panties':
 	menu_off = 1
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 1
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'danilovich_panties'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looppantyquality_filter
@@ -182,7 +212,7 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''panties2''"><img src="images/pc/items/danilovich/panties/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopdanilovich_panties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -204,7 +234,13 @@ if $ARGS[0] = 'bras':
 	menu_off = 1
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'danilovich_bras'
@@ -220,7 +256,7 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''bras2''"><img src="images/pc/items/danilovich/bras/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopdanilovich_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -242,14 +278,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 1
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 2
+	end
 
 	gs 'purses', 'totals', 'danilovich_purses'
-
+	
 	i = 1 + (Clothingstock / 6) mod 2
 	:loopdanilovich_purses
 		if danilovich_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''purses2''"><img src="images/pc/items/danilovich/purses/<<i>>.jpg"	 height="150" /></a> '
-		i += 2
+		i += step
 	if i <= total: jump 'loopdanilovich_purses'
 end
 
@@ -260,14 +302,20 @@ if $ARGS[0] = 'coats':
 	menu_off = 1
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_danilovich', 'start'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'danilovich_coats'
 
 	i = 1
 	:loopdanilovich_coats
 		if danilovich_coats[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_danilovich'', ''coats2''"><img src="images/pc/items/danilovich/coats/<<i>>.jpg"	 height="150" /></a> '
-		i += 1
+		i += step
 	if i <= total: jump 'loopdanilovich_coats'
 end
 

+ 47 - 20
locations/shop_dolls.qsrc

@@ -54,11 +54,9 @@ if $ARGS[0] = 'browse':
 	act 'View coats': gt 'shop_dolls', 'coats'
 	!act 'Jewelery': gt 'shop_dolls', 'jewelry'
 	!act 'Piercings': gt 'shop_dolls', 'piecrings'
-
 	act 'Return': gt 'shop_dolls', 'start'
 end
 
-
 if $ARGS[0] = 'dress':
 	gs 'shortgs', 'setloc', 'shop_dolls', 'dress'
 	menu_off = 0
@@ -67,11 +65,17 @@ if $ARGS[0] = 'dress':
 	'<center><b><font color="maroon">Viewing Patchwork Dolls dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'dolls_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopdolls_dress_filter
@@ -86,7 +90,7 @@ if $ARGS[0] = 'dress':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_dolls'', ''dolls_dress''"><img src="images/pc/items/dolls/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopdolls_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -114,10 +118,16 @@ if $ARGS[0] = 'clothing':
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'dolls_outfits'
 
-	act 'Return':
-		cla
-		minut += 5
-		gt 'shop_dolls', 'browse'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return':
+			cla
+			minut += 5
+			gt 'shop_dolls', 'browse'
+		end
+		step = 2
 	end
 
 	!!To filter just this set
@@ -134,7 +144,7 @@ if $ARGS[0] = 'clothing':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_dolls'', ''dolls_outfits''"><img src="images/pc/items/dolls/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopdolls'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -159,11 +169,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'dolls_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -178,7 +194,7 @@ if $ARGS[0] = 'shoes':
 					end
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopdolls_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -195,14 +211,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'dolls_purses'
-
+	
 	i = 1
 	:loopdolls_purses
 		if dolls_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_dolls'', ''purses2''"><img src="images/pc/items/dolls/purses/<<i>>.jpg" height="250" /></a>'
-		i += 1
+		i += step
 	if i <= total: jump 'loopdolls_purses'
 end
 
@@ -210,20 +232,25 @@ if $ARGS[0] = 'purses2':
 	gt 'purses', 'view_purse_item', 'shop', 'dolls', i, iif(anushkaQW['dolls'] > 2, 1800, 2000)
 end
 
-
 if $ARGS[0] = 'coats':
 	gs 'shortgs', 'setloc', 'shop_dolls', 'coats'
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_dolls', 'browse'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'dolls_coats'
-
+	
 	i = 1
 	:loopdolls_coats
 		if dolls_coats[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_dolls'', ''coats2''"><img src="images/pc/items/dolls/coats/<<i>>.jpg" height="250" /></a>'
-		i += 1
+		i += step
 	if i <= total: jump 'loopdolls_coats'
 end
 

+ 59 - 21
locations/shop_erotomaniac.qsrc

@@ -93,14 +93,12 @@ if $ARGS[0] = 'start':
 			act 'Leave': gt 'shop_erotomaniac', 'start'
 		end
 	end
-
 	act 'Look through the fetish dresses': minut += 1 & gt 'shop_erotomaniac', 'dress'
 	act 'Look through the fetish outfits': minut += 1 & gt 'shop_erotomaniac', 'outfits'
 	act 'Look through the stripper clothing': minut += 1 & gt 'shop_erotomaniac', 'strip'
 	act 'Look through the panties': minut += 1 & gt 'shop_erotomaniac', 'panties'
 	act 'Look through the bras': minut += 1 & gt 'shop_erotomaniac', 'bras'
 	act 'Look through the fetish shoes': minut += 1 & gt 'shop_erotomaniac', 'shoes'
-
 end
 
 if $ARGS[0] = 'sexshop_menu' or $ARGS[0] = '':
@@ -113,7 +111,11 @@ if $ARGS[0] = 'sexshop_menu' or $ARGS[0] = '':
 	gs 'themes', 'indoors'
 	$backimage= 'images/locations/city/redlight/erotomaniac/sexshop.jpg'
 
-	act 'Stop browsing': gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+	else
+		act 'Stop browsing': gt 'shop_erotomaniac', 'start'
+	end
 end
 
 if $ARGS[0] = 'dress':
@@ -124,11 +126,17 @@ if $ARGS[0] = 'dress':
 	'<center><b><font color="maroon">Fetish dresses - for all your personal needs</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'eroto_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looperoto_dress_filter
@@ -143,7 +151,7 @@ if $ARGS[0] = 'dress':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_erotomaniac'', ''eroto_dress''"><img src="images/pc/items/eroto/dress/<<i>>.jpg"	height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'looperoto_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -161,11 +169,17 @@ if $ARGS[0] = 'outfits':
 	'<center><b><font color="maroon">Fetish outfits - for all your personal needs</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'eroto_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looperoto_outfits_filter
@@ -180,7 +194,7 @@ if $ARGS[0] = 'outfits':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_erotomaniac'', ''eroto_outfits''"><img src="images/pc/items/eroto/outfits/<<i>>.jpg"	height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'looperoto_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -198,11 +212,17 @@ if $ARGS[0] = 'strip':
 	'<center><b><font color="maroon">Stripper clothing - for work or the bedroom</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'eroto_strip'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looperoto_strip_filter
@@ -217,7 +237,7 @@ if $ARGS[0] = 'strip':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_erotomaniac'', ''eroto_strip''"><img src="images/pc/items/eroto/strip/<<i>>.jpg"	height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'looperoto_strip'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -235,11 +255,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing Erotomaniac shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'eroto_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -254,7 +280,7 @@ if $ARGS[0] = 'shoes':
 					end
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'looperoto_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -269,11 +295,17 @@ if $ARGS[0] = 'panties':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 2
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'eroto_panties'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looppantyquality_filter
@@ -285,7 +317,7 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_erotomaniac'', ''panties2''"><img src="images/pc/items/eroto/panties/<<i>>.jpg"	height="150" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'looperoto_panties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -307,11 +339,17 @@ if $ARGS[0] = 'bras':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_erotomaniac', 'start'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'eroto_bras'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbraquality_filter
@@ -323,7 +361,7 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_erotomaniac'', ''bras2''"><img src="images/pc/items/eroto/bras/<<i>>.jpg"	height="150" /></a> '
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'looperoto_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:

+ 47 - 17
locations/shop_exhibitionist.qsrc

@@ -14,7 +14,7 @@ if $ARGS[0] = 'start':
 	'<center><b><font color="maroon">Simply Salacious</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/pushkin/exhibitshop/shop.jpg"></center>'
 	'A shop in the most modern style who''s clothing is all very revealing and not nearly as classy as the store itself.'
-
+	
 	if hypnoClothes = 1 and exhibitionQW = 4:
 		act 'Look for Ksenya': gt 'shop_exhibitionist', 'ksenya_intro'
 	end
@@ -53,11 +53,17 @@ if $ARGS[0] = 'outfits':
 	'<center><b><font color="maroon">Salacious outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'salacious_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopsalacious_outfits_filter
@@ -72,7 +78,7 @@ if $ARGS[0] = 'outfits':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_exhibitionist'', ''salacious_outfits''"><img <<$set_imgh>> src="images/pc/items/salacious/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopsalacious_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -90,11 +96,17 @@ if $ARGS[0] = 'dresses':
 	'<center><b><font color="maroon">Salacious dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'salacious_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopsalacious_dress_filter
@@ -109,7 +121,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_exhibitionist'', ''salacious_dress''"><img <<$set_imgh>> src="images/pc/items/salacious/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopsalacious_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -124,11 +136,17 @@ if $ARGS[0] = 'panties':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+		step = 2
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'salacious_panties'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looppantyquality_filter
@@ -140,7 +158,7 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_exhibitionist'', ''panties2''"><img src="images/pc/items/salacious/panties/<<i>>.jpg" height="150" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopsalacious_panties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -162,11 +180,17 @@ if $ARGS[0] = 'bras':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+		step = 2
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'salacious_bras'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbraquality_filter
@@ -178,7 +202,7 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_exhibitionist'', ''bras2''"><img src="images/pc/items/salacious/bras/<<i>>.jpg" height="150" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopsalacious_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -200,11 +224,17 @@ if $ARGS[0] = 'bodysuit':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_exhibitionist', 'start'
+		step = 1
+	end
 
 	gs 'underwear_bodysuits', 'shop_filter_header'
 	gs 'underwear_bodysuits', 'totals', 'salacious_bodysuits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbodysuitquality_filter
@@ -216,8 +246,8 @@ if $ARGS[0] = 'bodysuit':
 					*p '<a href="exec: i = <<i>> & gt ''shop_exhibitionist'', ''bodysuit2''"><img src="images/pc/items/salacious/bodysuits/<<i>>.jpg"	 height="250" /></a> '
 				end
 			end
-			i += 1
-		if i <= 40: jump 'loopsalacious_bodysuit'
+			i += step
+		if i <= total: jump 'loopsalacious_bodysuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'loopbodysuitquality_filter'

+ 10 - 4
locations/shop_fancy_pancy.qsrc

@@ -17,7 +17,7 @@ if $ARGS[0] = 'start':
 	*nl
 
 	'The boutique sells designer winter coats, burlesque clothing, beautiful shoes and exquisite handbags.'
-
+	
 	act 'Leave the boutique': minut += 3 & gt 'pushkin_sq'
 	act 'View clothing': minut += 5 & gt 'shop_fancy_pancy', 'clothes'
 end
@@ -30,11 +30,17 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing Fancy Pancy outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_fancy_pancy', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fancy_pancy', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'fancy_burlesque'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopfancy_burlesque_filter
@@ -49,7 +55,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_fancy_pancy'', ''fancy_burlesque''"><img src="images/pc/items/fancy/burlesque/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopfancy_burlesque'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:

+ 57 - 22
locations/shop_fashionista.qsrc

@@ -13,7 +13,7 @@ if $ARGS[0] = 'start':
 	gs 'themes', 'indoors'
 
 	'<center><b><font color="maroon">Fashionista</font></b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/fashionista.jpg"</center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/fashionista.jpg"></center>'
 	'This shop features many big name brands and designer clothing. Even their bags look cool.'
 	'You can try on outfits via the changing room.'
 
@@ -28,7 +28,7 @@ if $ARGS[0] = 'start':
 	if $pantyworntype ! 'none':
 		act 'Enter changing room (strip to underwear)':
 			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/underwear.jpg"</center>'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/underwear.jpg"></center>'
 			gs 'clothing', 'strip'
 			changingroom_underwear = 1
 			gs 'shop_fashionista', 'changingroom', 1
@@ -37,13 +37,15 @@ if $ARGS[0] = 'start':
 
 	act 'Enter changing room (strip naked)':
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"</center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"></center>'
 		gs 'clothing', 'strip_all'
 		gs 'shop_fashionista', 'changingroom', 1
 	end
 end
 
 if $ARGS[0] = 'changingroom':
+	if intro_custom_shop_return = 1: gt 'shop_fashionista', 'intro_custom_changingroom'
+
 	$locclass = 'changingroom'
 	gs 'shortgs', 'setloc', 'shop_fancy_pancy', 'changingroom'
 	menu_off = 0
@@ -51,7 +53,7 @@ if $ARGS[0] = 'changingroom':
 
 	if $ARGS[1] = '':
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/changingroom.jpg"</center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/changingroom.jpg"></center>'
 		'You are in the changing rooms in Fashionista with several outfits available to try on.'
 	else
 		'As you walk through the store you notice that there''s nobody in the changing rooms. Feeling a bit bored, you go look at some clothes and grab several items to try on before heading into one of the changing rooms.'
@@ -61,7 +63,7 @@ if $ARGS[0] = 'changingroom':
 		*clr & cla
 		rimma['photo'] = 1
 		rimma['day'] = daystart
-		'<center><img <<$set_imgh>> src="images/characters/city/rimma/photo.jpg"</center>'
+		'<center><img <<$set_imgh>> src="images/characters/city/rimma/photo.jpg"></center>'
 		'While in the changing room you get a strange feeling like you are being watched, thinking nothing of it you pose like you are a model. Wait was that the sound of a phone camera? You can''t see anyone and you are not going to run out and look while naked, it was probably just your imagination.'
 
 		act 'Disregard':gt 'shop_fashionista', 'changingroom'
@@ -78,12 +80,12 @@ if $ARGS[0] = 'changingroom':
 	act 'Try on bra':
 		if NatbelQW['seethrough'] = 0 and NatbelQW['QWstage'] > 5 and NatbelQW['underwearShop'] = 0:
 			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"</center>'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"></center>'
 			'As you try on a particularly spicy set of see-through underwear, you notice that it doesn''t quite fit you.'
 			'"This should fit Natasha perfectly though. And it only costs 750 <b>₽</b>." You think to yourself, imagining the look on her face if you make her wear it.'
 			act 'Buy it':
 				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"</center>'
+				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"></center>'
 				'You put the underwear aside for now so that you can take it to the register with you.'
 				money -= 750
 				NatbelQW['seethrough'] = 1
@@ -92,7 +94,7 @@ if $ARGS[0] = 'changingroom':
 			end
 			act 'Don''t buy it':
 				*clr & cla
-				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"</center>'
+				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"></center>'
 				'Deciding against it, you look through the rest of the underwear for something that would fit you better.'
 				NatbelQW['underwearShop'] = 1
 				act 'Stay in the changing room': gt 'shop_fashionista', 'changingroom'
@@ -126,11 +128,17 @@ if $ARGS[0] = 'dressingclothes':
 	'<center><b><font color="maroon">Viewing shop_fashionista clothing</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+		step = 4
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'fashionista_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopfashionista_filter
@@ -145,7 +153,7 @@ if $ARGS[0] = 'dressingclothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_fashionista'', ''dressingclothes2''"><img src="images/pc/items/fashionista/dress/<<i>>.jpg"	 height="250" /></a>  '
 				end
 			end
-			i += 4
+			i += step
 		if i <= total: jump 'loopfashionista_dress'
 
 	clo_i += 1
@@ -172,10 +180,19 @@ if $ARGS[0] = 'dressingoutfit':
 	'<center><b><font color="maroon">Viewing shop_fashionista clothing</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'fashionista_outfits'
+	
+	step = 1
+	if intro_custom_step ! 0: step = intro_custom_step
 
 	!!To filter just this set
 	clo_i = 0
@@ -191,7 +208,7 @@ if $ARGS[0] = 'dressingoutfit':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_fashionista'', ''dressingoutfit2''"><img src="images/pc/items/fashionista/outfits/<<i>>.jpg"	 height="250" /></a>  '
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopfashionista_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -213,11 +230,17 @@ if $ARGS[0] = 'dressingbra':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'fashionista_bras'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbraquality_filter
@@ -229,7 +252,7 @@ if $ARGS[0] = 'dressingbra':
 					*p '<a href="exec: i = <<i>> & gt ''shop_fashionista'', ''dressingbras2''"><img src="images/pc/items/fashionista/bras/<<i>>.jpg"	height="150" /></a> '
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopfashionista_bras2'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -251,11 +274,17 @@ if $ARGS[0] = 'dressingpanties':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fashionista', 'changingroom'
+		step = 2
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'fashionista_panties'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looppantyquality_filter
@@ -267,7 +296,7 @@ if $ARGS[0] = 'dressingpanties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_fashionista'', ''dressingpanties2''"><img src="images/pc/items/fashionista/panties/<<i>>.jpg"	height="150" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopfashionista_panties2'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -304,14 +333,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 1
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_fashionista', 'start'
-
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_fashionista', 'start'
+		step = 1
+	end 
+	
 	gs 'purses', 'totals', 'fashionista_purses'
 
 	i = 1
 	:loopfashionista_purses
 		if fashionista_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_fashionista'', ''purses2''"><img src="images/pc/items/fashionista/purses/<<i>>.jpg"	 height="150" /></a> '
-		i += 1
+		i += step
 	if i <= total: jump 'loopfashionista_purses'
 end
 

+ 27 - 10
locations/shop_flamingos.qsrc

@@ -13,9 +13,8 @@ if $ARGS[0] = 'start':
 	'<center><img <<$set_imgh>> src="images/locations/city/island/flamingos/shop.jpg"></center>'
 	*nl
 	'Flamingos is trendy and modern while still keeping the prices low enough for the large student population on the Island. It mimics the latest fashions for young adults but cuts costs on material and manufacturing. This suits the clients who are likely to grow bored of an outfit before it falls apart and that''s why it''s always busy.'
-
+	
 	act 'Leave the flamingos': minut += 3 & gt 'pushkin_sq'
-
 	act 'View dresses': minut += 5 & gt 'shop_flamingos', 'dresses'
 	act 'View other clothing': minut += 5 & gt 'shop_flamingos', 'clothes'
 	act 'View purses': minut += 5 & gt 'shop_flamingos', 'purses'
@@ -29,11 +28,17 @@ if $ARGS[0] = 'dresses':
 	'<center><b><font color="maroon">Viewing Flamingo''s dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_flamingos', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_flamingos', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'flamingos_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopflamingos_dress_filter
@@ -48,7 +53,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_flamingos'', ''flamingos_dress''"><img src="images/pc/items/flamingos/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopflamingos_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -76,7 +81,13 @@ if $ARGS[0] = 'clothes':
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'flamingos_outfits'
 
-	act 'Return': minut += 1 & gt 'shop_flamingos', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_flamingos', 'start'
+		step = 2
+	end
 
 	!!To filter just this set
 	clo_i = 0
@@ -92,7 +103,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_flamingos'', ''flamingos_outfits''"><img src="images/pc/items/flamingos/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total:jump 'loopflamingos'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -114,14 +125,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 5 & gt 'shop_flamingos', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_flamingos', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'flamingos_purses'
-
+	
 	i = 1
 	:loopflamingos_purses
 		if flamingos_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_flamingos'', ''purses2''"><img src="images/pc/items/flamingos/purses/<<i>>.jpg" height="250" /></a>'
-		i += 1
+		i += step
 	if i <= total: jump 'loopflamingos_purses'
 end
 

+ 109 - 42
locations/shop_gm.qsrc

@@ -10,10 +10,9 @@ if $ARGS[0] = 'start':
 	gs 'themes', 'indoors'
 
 	'<center><b><font color="maroon">Welcome to G & M - Clothes for all your needs</font></b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/gandm/shop.jpg"</center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/gandm/shop.jpg"></center>'
 	'G&M is not fancy, it''s certainly not high fashion but it''s cheap and has specific work and school wear.'
 
-
 	act 'Leave the store':
 		$shoplocation = ''
 		if torg = 1:
@@ -23,7 +22,6 @@ if $ARGS[0] = 'start':
 			gt 'pav_industrial'
 		end
 	end
-
 	act 'Visit clothing department':
 		cla
 		menu_off = 1
@@ -37,12 +35,6 @@ if $ARGS[0] = 'start':
 		act 'View server uniforms': minut += 5 & gt 'shop_gm', 'gm_server'
 		act 'View school uniforms': minut += 5 & gt 'shop_gm', 'school'
 	end
-
-	act 'View regular shoes': minut += 5 & gt 'shop_gm', 'shoes'
-	act 'View panties': minut += 5 & gt 'shop_gm', 'panties'
-	act 'View bras': minut += 5 & gt 'shop_gm', 'bras'
-	act 'View purses': minut += 5 & gt 'shop_gm', 'purses'
-	act 'View coats': minut += 5 & gt 'shop_gm', 'coats'
 end
 
 if $ARGS[0] = 'clothes':
@@ -53,7 +45,13 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing G&M outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_outfits'
@@ -72,7 +70,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''gm_outfits''"><img src="images/pc/items/gm/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopgm_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -97,11 +95,17 @@ if $ARGS[0] = 'dresses':
 	'<center><b><font color="maroon">Viewing G&M dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopgm_dress_filter
@@ -116,7 +120,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''gm_dress''"><img src="images/pc/items/gm/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopgm_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -141,11 +145,20 @@ if $ARGS[0] = 'office':
 	'<center><b><font color="maroon">Viewing G&M office clothing</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_office'
 
+	step = 1
+	if intro_custom_step ! 0: step = intro_custom_step
+
 	!!To filter just this set
 	clo_i = 0
 	:loopoffice_filter
@@ -160,7 +173,7 @@ if $ARGS[0] = 'office':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''officeclo''"><img src="images/pc/items/gm/office/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopoffice'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -185,11 +198,17 @@ if $ARGS[0] = 'gm_maid':
 	'<center><b><font color="maroon">Viewing G&M maid outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_maid'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopgm_maid_filter
@@ -204,7 +223,7 @@ if $ARGS[0] = 'gm_maid':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''gm_maidclo''"><img src="images/pc/items/gm/maid/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopgm_maid'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -222,7 +241,13 @@ if $ARGS[0] = 'gm_server':
 	'<center><b><font color="maroon">Viewing G&M server uniforms</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_server'
@@ -242,7 +267,7 @@ if $ARGS[0] = 'gm_server':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''gm_serverclo''"><img src="images/pc/items/gm/server/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopgm_server'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -260,11 +285,17 @@ if $ARGS[0] = 'school':
 	'<center><b><font color="maroon">Viewing G&M school uniforms</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'gm_school'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopgm_school_filter
@@ -279,8 +310,10 @@ if $ARGS[0] = 'school':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''schoolclo''"><img src="images/pc/items/gm/school/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
-			if i = 6: i = 9
+			i += step
+			if intro_custom_noexcept = 0:
+				if i = 6: i = 9
+			end
 		if i <= total: jump 'loopschool'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -305,11 +338,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'gm_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -322,7 +361,7 @@ if $ARGS[0] = 'shoes':
 					if Shofilter['inc'] = 1 and Shofilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''shoes2''"><img src="images/pc/items/gm/shoes/<<i>>.jpg" height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopgm_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -337,14 +376,20 @@ if $ARGS[0] = 'coats':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'gm_coats'
-
+	
 	i = 1
 	:loopcoats
 		if gm_coats[i] = 0:*p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''coats2''"><img src="images/pc/items/gm/coats/<<i>>.jpg"	 height="250" /></a>'
-		i += 1
+		i += step
 	if i <= total: jump 'loopcoats'
 end
 
@@ -355,14 +400,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'gm_purses'
-
+	
 	i = 1
 	:looppurses
 		if gm_purses[i] = 0:*p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''purses2''"><img src="images/pc/items/gm/purses/<<i>>.jpg"	 height="250" /></a>'
-		i += 1
+		i += step
 	if i <= total: jump 'looppurses'
 end
 
@@ -375,7 +426,13 @@ if $ARGS[0] = 'panties':
 
 	'<center><b><font color="maroon">Viewing G&M panties</font></b></center>'
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'gm_panties'
@@ -391,9 +448,11 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''panties2''"><img src="images/pc/items/gm/panties/<<i>>.jpg"	 height="150" /></a>'
 				end
 			end
-			i += 1
-			if i = 7 or i = 9 or i = 21 or i = 37: i += 1
-		if i <= 37: jump 'looppanties'
+			i += step
+			if intro_custom_noexcept = 0:
+				if i = 7 or i = 9 or i = 21 or i = 37: i += 1
+			end
+		if i <= total: jump 'looppanties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'looppantyquality_filter'
@@ -410,11 +469,17 @@ if $ARGS[0] = 'bras':
 	'<center><b><font color="maroon">Viewing G&M bras</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_gm', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_gm', 'start'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'gm_bras'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbraquality_filter
@@ -426,8 +491,10 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_gm'', ''bras2''"><img src="images/pc/items/gm/bras/<<i>>.jpg"	 height="150" /></a>'
 				end
 			end
-			i += 1
-			if i = 11 or i = 16 or i = 18: i += 1
+			i += step
+			if intro_custom_noexcept = 0:
+				if i = 11 or i = 16 or i = 18: i += 1
+			end
 		if i <= total: jump 'loopgm_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:

+ 29 - 12
locations/shop_lusso.qsrc

@@ -14,9 +14,8 @@ if $ARGS[0] = 'start':
 	*nl
 	'The décor is bright and modern the flowers are real and the dressers made with expensive woods.'
 	'This is clearly a high end underwear shop. Just knowing you are wearing these will make you stand out more and they will feel so nice you might never want to go back to wearing the cheap ill fitting underwear you used to have to put up with. That is of course assuming you can afford the prices here.'
-
+	
 	act 'Leave': gt 'city_mall'
-
 	act 'View panties': minut += 5 & gt 'shop_lusso', 'panties'
 	act 'View bras': minut += 5 & gt 'shop_lusso', 'bras'
 	act 'View bodysuits': minut += 5 & gt 'shop_lusso', 'bodysuit'
@@ -26,8 +25,14 @@ if $ARGS[0] = 'panties':
 	gs 'shortgs', 'setloc', 'shop_lusso', 'panties'
 	menu_off = 0
 	gs 'stat'
-
-	act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+	
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+		step = 2
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'lusso_panties'
@@ -43,7 +48,7 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_lusso'', ''panties2''"><img src="images/pc/items/lusso/panties/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'looplusso_panties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -65,7 +70,13 @@ if $ARGS[0] = 'bras':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'lusso_bras'
@@ -81,8 +92,8 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_lusso'', ''bras2''"><img src="images/pc/items/lusso/bras/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 1
-		if i <= 33: jump 'looplusso_bras'
+			i += step
+		if i <= total: jump 'looplusso_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'loopbraquality_filter'
@@ -103,11 +114,17 @@ if $ARGS[0] = 'bodysuit':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_lusso', 'start'
+		step = 3
+	end
 
 	gs 'underwear_bodysuits', 'shop_filter_header'
 	gs 'underwear_bodysuits', 'totals', 'lusso_bodysuits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbodysuitquality_filter
@@ -120,8 +137,8 @@ if $ARGS[0] = 'bodysuit':
 					*p '<a href="exec: i = <<i>> & gt ''shop_lusso'', ''bodysuit2''"><img src="images/pc/items/lusso/bodysuits/<<i>>.jpg"	 height="250" /></a> '
 				end
 			end
-			i += 3
-		if i <= 90: jump 'looplusso_bodysuit'
+			i += step
+		if i <= total: jump 'looplusso_bodysuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'loopbodysuitquality_filter'

+ 10 - 5
locations/shop_materinstvo.qsrc

@@ -17,9 +17,8 @@ if $ARGS[0] = 'start':
 	'<center><img src="images/locations/city/citycenter/mall/mommy/shop.jpg"></center>'
 	*nl
 	'This is a shop dedicated to all things pregnancy related.  Here you can buy Pregnancy Clothing or items to aid the process of getting through the day.'
-
+	
 	act 'Leave the Shop': gt 'city_mall'
-
 	act 'View clothes': minut += 3 & gt 'shop_materinstvo', 'clothes'
 !!	act 'View items': minut += 3 & gt 'shop_materinstvo', 'items'
 end
@@ -52,11 +51,17 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing Mommy Style clothing</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_materinstvo', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_materinstvo', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'materinstvo_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopmaterinstvo_filter
@@ -71,7 +76,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_materinstvo'', ''materinstvo_dress''"><img src="images/pc/items/mommy/<<i>>.jpg" 	height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopmaterinstvo'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:

+ 60 - 21
locations/shop_moncheri.qsrc

@@ -15,6 +15,9 @@ if $ARGS[0] = 'start':
 	*nl
 	'You''re inside the boutique only a few seconds before a tall, slender brunette woman saunters up to you. Everything about her is poised and perfect, from the beautiful silver dress she''s wearing to her unblemished skin and pearly white teeth. "Welcome to Mon Chéri, dear. We sell only the most beautifully luxurious items here. Come, take a look! You won''t be disappointed," she smiles as she ushers you further inside with a small flourish. Everything in the boutique is high-end, definitely not for the average shopper, but the items on display are simply stunning.'
 	*nl
+
+	'The boutique sells designer winter coats, formal clothing, beautiful shoes and exquisite handbags.'
+
 	if RimmaSex > 0:
 		if rimmaday ! daystart:
 			'<a href="exec:gt ''RimmaSexQW''">Rima</a> smiles at you. She bites her lip and looks longingly in your direction.'
@@ -23,8 +26,6 @@ if $ARGS[0] = 'start':
 		end
 	end
 
-	'The boutique sells designer winter coats, formal clothing, beautiful shoes and exquisite handbags.'
-
 	act 'Leave the boutique': minut += 3 & gt 'city_mall'
 
 	act 'View shoes': minut += 5 & gt 'shop_moncheri', 'shoes'
@@ -34,7 +35,7 @@ if $ARGS[0] = 'start':
 	if $pantyworntype ! 'none':
 		act 'Enter changing room (strip to underwear)':
 			*clr & cla
-			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/underwear.jpg"</center>'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/underwear.jpg"></center>'
 			gs 'clothing', 'strip'
 			changingroom_underwear = 1
 			gs 'shop_moncheri', 'changingroom', 1
@@ -43,7 +44,7 @@ if $ARGS[0] = 'start':
 
 	act 'Enter changing room (strip naked)':
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"</center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/nude.jpg"></center>'
 		gs 'clothing', 'strip_all'
 		gs 'shop_moncheri', 'changingroom', 1
 	end
@@ -56,6 +57,8 @@ if $ARGS[0] = 'start':
 end
 
 if $ARGS[0] = 'changingroom':
+	if intro_custom_shop_return = 1: gt 'shop_moncheri', 'intro_custom_changingroom'
+
 	gs 'shortgs', 'setloc', 'shop_moncheri', 'changingroom'
 	$locclass = 'changingroom'
 	menu_off = 0
@@ -63,7 +66,7 @@ if $ARGS[0] = 'changingroom':
 
 	if $ARGS[1] = '':
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/changingroom.jpg"</center>'
+		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/mall/fashionista/changingroom.jpg"></center>'
 		'You are in the changing rooms in Mon Chéri with several outfits available to try on.'
 	else
 		'As you walk through the store you notice that there''s nobody in the changing rooms. Feeling a bit bored, you go look at some clothes and grab several items to try on before heading into one of the changing rooms.'
@@ -110,11 +113,17 @@ if $ARGS[0] = 'gowns':
 	'<center><b><font color="maroon">Viewing Mon Chéri outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'moncheri_gown'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopmoncheri_gown_filter
@@ -129,7 +138,7 @@ if $ARGS[0] = 'gowns':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_moncheri'', ''moncheri_gown''"><img src="images/pc/items/moncheri/gown/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total:jump 'loopmoncheri_gown'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -150,7 +159,13 @@ if $ARGS[0] = 'dresses':
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'moncheri_dress'
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+		step = 2
+	end
 
 	!!To filter just this set
 	clo_i = 0
@@ -166,7 +181,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_moncheri'', ''moncheri_dress''"><img src="images/pc/items/moncheri/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopmoncheri_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -181,11 +196,17 @@ if $ARGS[0] = 'bodysuit':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'changingroom'
+		step = 2
+	end
 
 	gs 'underwear_bodysuits', 'shop_filter_header'
 	gs 'underwear_bodysuits', 'totals', 'moncheri_bodysuits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbodysuitquality_filter
@@ -197,7 +218,7 @@ if $ARGS[0] = 'bodysuit':
 					*p '<a href="exec: i = <<i>> & gt ''shop_moncheri'', ''bodysuit2''"><img src="images/pc/items/moncheri/bodysuits/<<i>>.jpg"	 height="250" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopmoncheri_bodysuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
@@ -215,7 +236,13 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+		step = 3
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'moncheri_shoes'
@@ -234,7 +261,7 @@ if $ARGS[0] = 'shoes':
 					end
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopmoncheri_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -249,14 +276,20 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'moncheri_purses'
-
+	
 	i = 1
 	:loopmoncheri_purses
 		if moncheri_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_moncheri'', ''purses2''"><img src="images/pc/items/moncheri/purses/<<i>>.jpg"	 height="150" /></a> '
-		i += 1
+		i += step
 	if i <= total: jump 'loopmoncheri_purses'
 end
 
@@ -267,15 +300,21 @@ if $ARGS[0] = 'coats':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_moncheri', 'start'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'moncheri_coats'
 
 	i = 1
 	:loopmoncheri_coats
 		if moncheri_coats[i] = 0:*p '<a href="exec: i = <<i>> & gt ''shop_moncheri'', ''coats2''"><img src="images/pc/items/moncheri/coats/<<i>>.jpg"	 height="250" /></a> '
-		i += 1
-	if i <= 20: jump 'loopmoncheri_coats'
+		i += step
+	if i <= total: jump 'loopmoncheri_coats'
 end
 
 if $ARGS[0] = 'coats2': gt 'coats', 'view_coat_item', 'shop', 'moncheri', i, 4000

+ 45 - 16
locations/shop_nerdvana.qsrc

@@ -15,7 +15,6 @@ if $ARGS[0] = 'start':
 	'If you are happy to push through the tourists nerdvana has everything a young adult might like to wear. It''s a step up from G&M and unless you can afford the boutiques in Old Town you''ll be spending some time buying outfits here.'
 
 	act 'Leave the nerdvana': minut += 3 & gt 'city_island'
-
 	act 'View cosplay outfits': minut += 5 & gt 'shop_nerdvana', 'cosplay'
 	act 'View other outfits': minut += 5 & gt 'shop_nerdvana', 'outfits'
 	act 'View swimsuits': minut += 5 & gt 'shop_nerdvana', 'swim'
@@ -31,11 +30,17 @@ if $ARGS[0] = 'cosplay':
 	'<center><b><font color="maroon">Viewing Nerdvana Cosplay Outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'nerdvana_cosplay'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopnerdvana_cosplay_filter
@@ -50,7 +55,7 @@ if $ARGS[0] = 'cosplay':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_nerdvana'', ''nerdvana_cosplay''"><img src="images/pc/items/nerdvana/cosplay/<<i>>.jpg" 	height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopnerdvana_cosplay'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -75,7 +80,13 @@ if $ARGS[0] = 'outfits':
 	'<center><b><font color="maroon">Viewing Nerdvana outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'nerdvana_outfits'
@@ -94,7 +105,7 @@ if $ARGS[0] = 'outfits':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_nerdvana'', ''nerdvana_outfits''"><img src="images/pc/items/nerdvana/outfits/<<i>>.jpg" 	height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopnerdvana_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -119,11 +130,17 @@ if $ARGS[0] = 'swim':
 	'<center><b><font color="maroon">Swimsuits - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'nerdvana_swimsuit'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopnerdvana_swimsuit_filter
@@ -138,7 +155,7 @@ if $ARGS[0] = 'swim':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_nerdvana'', ''swim1''"><img src="images/pc/items/nerdvana/swim/one/<<i>>.jpg" 	height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopnerdvana_swimsuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -156,11 +173,17 @@ if $ARGS[0] = 'bikinis':
 	'<center><b><font color="maroon">Bikinis - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'nerdvana_bikinis'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopnerdvana_bikinis_filter
@@ -175,8 +198,8 @@ if $ARGS[0] = 'bikinis':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_nerdvana'', ''bikini1''"><img src="images/pc/items/nerdvana/swim/two/<<i>>.jpg" 	height="250" /></a>'
 				end
 			end
-			i += 1
-		if i <= 30: jump 'loopnerdvana_bikinis'
+			i += step
+		if i <= total: jump 'loopnerdvana_bikinis'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:
@@ -193,12 +216,18 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
-
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_nerdvana', 'start'
+		step = 2
+	end
+	
 	i = 1 + (Clothingstock / 4) mod 2
 	:loopnerdvana_purses
 		if nerdvana_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_nerdvana'', ''purses2''"><img src="images/pc/items/nerdvana/purses/<<i>>.jpg" 	height="150" /></a> '
-		i += 2
+		i += step
 	if i <= total: jump 'loopnerdvana_purses'
 end
 

+ 67 - 26
locations/shop_pussycats.qsrc

@@ -92,7 +92,6 @@ if $ARGS[0] = 'start':
 
 		act '<b>Get out of the shop</b>': minut += 3 & gt 'city_mall'
 	end
-
 	gs 'stat'
 end
 
@@ -105,11 +104,17 @@ if $ARGS[0] = 'dress':
 	'<center><b><font color="maroon">Viewing Pussy Kats dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'cats_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopcats_dress_filter
@@ -124,7 +129,7 @@ if $ARGS[0] = 'dress':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''yshopclo_dress''"><img <<$set_imgh>> src="images/pc/items/cats/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopcats_dress'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -142,11 +147,17 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing Pussy Kats outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'cats_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopcats_outfits_filter
@@ -161,7 +172,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''yshopclo_outfit''"><img <<$set_imgh>> src="images/pc/items/cats/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopcats_outfits'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -179,11 +190,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'pussycats_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -196,7 +213,7 @@ if $ARGS[0] = 'shoes':
 					if Shofilter['inc'] = 1 and Shofilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''cats_shoe''"><img src="images/pc/items/cats/shoes/<<i>>.jpg" height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopcats_shoe'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
@@ -211,11 +228,17 @@ if $ARGS[0] = 'panties':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 2
+	end
 
 	gs 'panties', 'shop_filter_header'
 	gs 'panties', 'totals', 'pussycats_panties'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:looppantyquality_filter
@@ -227,8 +250,8 @@ if $ARGS[0] = 'panties':
 					*p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''panties2''"><img src="images/pc/items/cats/panties/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 2
-		if i <= 72: jump 'loopcats_panties'
+			i += step
+		if i <= total: jump 'loopcats_panties'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'looppantyquality_filter'
@@ -249,11 +272,17 @@ if $ARGS[0] = 'bras':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 1
+	end
 
 	gs 'bras', 'shop_filter_header'
 	gs 'bras', 'totals', 'pussycats_bras'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbraquality_filter
@@ -265,8 +294,8 @@ if $ARGS[0] = 'bras':
 					*p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''bras2''"><img src="images/pc/items/cats/bras/<<i>>.jpg"	 height="150" /></a> '
 				end
 			end
-			i += 1
-		if i <= 41: jump 'loopcats_bras'
+			i += step
+		if i <= total: jump 'loopcats_bras'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:
 		jump 'loopbraquality_filter'
@@ -287,15 +316,21 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'pussycats_purses'
-
+	
 	i = 1
 	:loopcats_purses
 		if cats_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''purses2''"><img src="images/pc/items/cats/purses/<<i>>.jpg"	 height="250" /></a> '
-		i += 1
-	if i <= 20: jump 'loopcats_purses'
+		i += step
+	if i <= total: jump 'loopcats_purses'
 end
 
 if $ARGS[0] = 'purses2': gt 'purses', 'view_purse_item', 'shop', 'cats', i, 2000
@@ -305,15 +340,21 @@ if $ARGS[0] = 'coats':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_pussycats', 'start'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'pussycats_coats'
-
+	
 	i = 1
 	:loopcats_coats
 		if cats_coats[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_pussycats'', ''coats2''"><img src="images/pc/items/cats/coats/<<i>>.jpg"	 height="250" /></a> '
-		i += 1
-	if i <= 20: jump 'loopcats_coats'
+		i += step
+	if i <= total: jump 'loopcats_coats'
 end
 
 if $ARGS[0] = 'coats2': gt 'coats', 'view_coat_item', 'shop', 'cats', i, 2000

+ 55 - 20
locations/shop_scandalicious.qsrc

@@ -17,7 +17,6 @@ if $ARGS[0] = 'start':
 	*nl
 
 	act 'Leave': minut += 3 & gt 'city_mall'
-
 	act 'View clothing': minut += 5 & gt 'shop_scandalicious', 'clothes'
 	act 'View dresses': minut += 5 & gt 'shop_scandalicious', 'dresses'
 	act 'View shoes': minut += 5 & gt 'shop_scandalicious', 'shoes'
@@ -34,11 +33,17 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing Scandalicious outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 1
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'scandalicious_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopscandalicious_outfits_filter
@@ -53,7 +58,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''scandalicious_outfits''"><img src="images/pc/items/scandalicious/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 1
+			i += step
 		if i <= total: jump 'loopscandalicious_outfits'
 		clo_i += 1
 	if (clothingfilter['quality'] = 0 and clo_i <= 7) or (clothingfilter['inhibition'] = 0 and clo_i <= 50):
@@ -78,11 +83,17 @@ if $ARGS[0] = 'dresses':
 	'<center><b><font color="maroon">Viewing Scandalicious dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 3
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'scandalicious_dress'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopscandalicious_dress_filter
@@ -97,7 +108,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''scandalicious_dress''"><img src="images/pc/items/scandalicious/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 3
+			i += step
 		if i <= total: jump 'loopscandalicious_dress'
 		clo_i += 1
 	if (clothingfilter['quality'] = 0 and clo_i <= 7) or (clothingfilter['inhibition'] = 0 and clo_i <= 50):
@@ -122,11 +133,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 4
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'scandalicious_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -139,8 +156,8 @@ if $ARGS[0] = 'shoes':
 					if Shofilter['inc'] = 1 and Shofilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''shoes2''"><img src="images/pc/items/scandalicious/shoes/<<i>>.jpg" height="250" /></a>'
 				end
 			end
-			i += 4
-		if i <= 80: jump 'loopscandalicious_shoes'
+			i += step
+		if i <= total: jump 'loopscandalicious_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
 		jump 'loopshoequality_filter'
@@ -157,11 +174,17 @@ if $ARGS[0] = 'swim':
 	'<center><b><font color="maroon">Swimsuits - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'scandalicious_swimsuits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopscandalicious_swimsuit_filter
@@ -176,7 +199,7 @@ if $ARGS[0] = 'swim':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''swim1''"><img src="images/pc/items/scandalicious/swim/one/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopscandalicious_swimsuit'
 		clo_i += 1
 	if (clothingfilter['quality'] = 0 and clo_i <= 7) or (clothingfilter['inhibition'] = 0 and clo_i <= 50):
@@ -194,11 +217,17 @@ if $ARGS[0] = 'bikinis':
 	'<center><b><font color="maroon">Bikinis - one size fits all</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 4
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'scandalicious_bikinis'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopscandalicious_bikinis_filter
@@ -213,7 +242,7 @@ if $ARGS[0] = 'bikinis':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''bikini1''"><img src="images/pc/items/scandalicious/swim/two/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 4
+			i += step
 		if i <= total: jump 'loopscandalicious_bikinis'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -228,11 +257,17 @@ if $ARGS[0] = 'bodysuit':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_scandalicious', 'start'
+		step = 2
+	end
 
 	gs 'underwear_bodysuits', 'shop_filter_header'
 	gs 'underwear_bodysuits', 'totals', 'scandalicious_bodysuits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbodysuitquality_filter
@@ -244,7 +279,7 @@ if $ARGS[0] = 'bodysuit':
 					*p '<a href="exec: i = <<i>> & gt ''shop_scandalicious'', ''bodysuit1''"><img src="images/pc/items/scandalicious/bodysuits/<<i>>.jpg"	 height="250" /></a> '
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopscandalicious_bodysuit'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 6:

+ 49 - 19
locations/shop_tsar_bomba.qsrc

@@ -14,7 +14,7 @@ if $ARGS[0] = 'start':
 	*nl
 	'Tsar Bomba, a small clothing shop in the Okhlopkov Square. The shop is unique and used to be very cool with punk fashion. These days it is much more generic and alternative, it could easily be mistaken for an alt. fashion chain store.'
 	'Simply put this place is very cool and most of the clothes are strange and wonderful.'
-
+	
 	act 'Leave the bomba': minut += 3 & gt 'pushkin_sq'
 
 	act 'View dresses': minut += 5 & gt 'shop_tsar_bomba', 'dresses'
@@ -32,11 +32,17 @@ if $ARGS[0] = 'dresses':
 	'<center><b><font color="maroon">Viewing Tsar Bomba dresses</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'bomba_dresses'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbomba_dresses_filter
@@ -51,7 +57,7 @@ if $ARGS[0] = 'dresses':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_tsar_bomba'', ''bomba_dresses''"><img src="images/pc/items/bomba/dress/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopbomba_dresses'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -76,11 +82,17 @@ if $ARGS[0] = 'clothes':
 	'<center><b><font color="maroon">Viewing Tsar Bomba outfits</font></b></center>'
 	*nl
 
-	act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+		step = 2
+	end
 
 	gs 'clothing_QV', 'shop_filter_header'
 	gs 'clothing', 'totals', 'bomba_outfits'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopbomba_filter
@@ -95,7 +107,7 @@ if $ARGS[0] = 'clothes':
 					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_tsar_bomba'', ''bomba_outfits''"><img src="images/pc/items/bomba/outfits/<<i>>.jpg"	 height="250" /></a>'
 				end
 			end
-			i += 2
+			i += step
 		if i <= total: jump 'loopbomba'
 		clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7 or clothingfilter['inhibition'] = 0 and clo_i <= 50:
@@ -117,15 +129,21 @@ if $ARGS[0] = 'purses':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+		step = 1
+	end
 
 	gs 'purses', 'totals', 'bomba_purses'
-
+	
 	i = 1
 	:loopbomba_purses
 		if bomba_purses[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_tsar_bomba'', ''purses2''"><img src="images/pc/items/bomba/purses/<<i>>.jpg"	 height="250" /></a> '
-		i += 1
-	if i <= 20: jump 'loopbomba_purses'
+		i += step
+	if i <= total: jump 'loopbomba_purses'
 end
 
 if $ARGS[0] = 'purses2': gt 'purses', 'view_purse_item', 'shop', 'bomba', i, 2000
@@ -138,11 +156,17 @@ if $ARGS[0] = 'shoes':
 	'<center><b><font color="maroon">Viewing G&M shoes</font></b></center>'
 	*nl
 
-	act 'Return': minut += 5 & gt 'shop_tsar_bomba', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 5 & gt 'shop_tsar_bomba', 'start'
+		step = 1
+	end
 
 	gs 'shoes', 'shop_filter_header'
 	gs 'shoes', 'totals', 'bomba_shoes'
-
+	
 	!!To filter just this set
 	clo_i = 0
 	:loopshoequality_filter
@@ -155,8 +179,8 @@ if $ARGS[0] = 'shoes':
 					if Shofilter['inc'] = 1 and Shofilter['only'] = 1: *p '<a href="exec: i = <<i>> & gt ''shop_tsar_bomba'', ''bomba_shoes''"><img src="images/pc/items/bomba/shoes/<<i>>.jpg" height="250" /></a>'
 				end
 			end
-			i += 1
-		if i <= 40: jump 'loopbomba_shoes'
+			i += step
+		if i <= total: jump 'loopbomba_shoes'
 		clo_i += 1
 	if Shofilter['quality'] = 0 and clo_i <= 7:
 		jump 'loopshoequality_filter'
@@ -170,15 +194,21 @@ if $ARGS[0] = 'coats':
 	menu_off = 0
 	gs 'stat'
 
-	act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+	if intro_custom_shop_return = 1:
+		act 'Return': gt 'intro_customization', 'modclo'
+		step = intro_custom_step
+	else
+		act 'Return': minut += 1 & gt 'shop_tsar_bomba', 'start'
+		step = 1
+	end
 
 	gs 'coats', 'totals', 'bomba_coats'
-
+	
 	i = 1
 	:loopbomba_coats
 		if bomba_coats[i] = 0: *p '<a href="exec: i = <<i>> & gt ''shop_tsar_bomba'', ''coats2''"><img src="images/pc/items/bomba/coats/<<i>>.jpg"	 height="250" /></a> '
-		i += 1
-	if i <= 20: jump 'loopbomba_coats'
+		i += step
+	if i <= total: jump 'loopbomba_coats'
 end
 
 if $ARGS[0] = 'coats2': gt 'coats', 'view_coat_item', 'shop', 'bomba', i, 2000

+ 4 - 1
locations/shortgs.qsrc

@@ -131,8 +131,11 @@ end
 if $ARGS[0] = 'doy':
 	doy_N1 = 275 * ARGS[2] / 9
 	doy_N2 = (ARGS[2] + 9) / 12
-	doy_N3 = 1 + (ARGS[1] - 4 * (ARGS[1] / 4) + 2) / 3
+	doy_N3 = 1 + (ARGS[1] - (4 * (ARGS[1] / 4)) + 2) / 3
 	result = doy_N1 - (doy_N2 * doy_N3) + ARGS[3] - 30
+	killvar 'doy_N1'
+	killvar 'doy_N2'
+	killvar 'doy_N3'
 end
 
 if $ARGS[0] = 'mk1':

+ 17 - 17
locations/stat.qsrc

@@ -3,9 +3,6 @@
 !!This is error catching to prevent stat from running too early
 if opPRE > 0: exit
 
-if Enable_Android = 0: gs 'obj_din', 'old'
-
-
 if daystart_start < 100:
 	pl '<BR>Did you start at the <a href="exec:daystart_start = 239 & gs ''time'' & gs''stat''">end of August</a> or <a href="exec:daystart_start = 153 & gs ''time'' & gs''stat''">beginning of June</a>?'
 	exit
@@ -17,20 +14,6 @@ view
 rand1 = rand(0,100)
 $stat_msg[1] = ''
 
-if daystage = 1:
-	$daystage['desc'] = 'dawn'
-elseif daystage = 2:
-	$daystage['desc'] = 'mid_day'
-elseif daystage = 3:
-	$daystage['desc'] = 'sunset'
-elseif daystage = 4:
-	$daystage['desc'] = 'early_night'
-elseif daystage = 5:
-	$daystage['desc'] = 'mid_night'
-elseif daystage = 6:
-	$daystage['desc'] = 'pre_dawn'
-end
-
 if $start_type[1] ! 'nomagic': magik_exp = orgasm + magik_adj
 
 if insleep = 0: gs 'stat_sklattrib'
@@ -234,6 +217,21 @@ end
 
 gs 'time'
 
+if daystage = 1:
+	$daystage['desc'] = 'dawn'
+elseif daystage = 2:
+	$daystage['desc'] = 'mid_day'
+elseif daystage = 3:
+	$daystage['desc'] = 'sunset'
+elseif daystage = 4:
+	$daystage['desc'] = 'early_night'
+elseif daystage = 5:
+	$daystage['desc'] = 'mid_night'
+elseif daystage = 6:
+	$daystage['desc'] = 'pre_dawn'
+end
+
+
 ! Execute time based
 if prevtotmin ! totminut:
 	gs 'spellTimer', prevtotmin, totminut
@@ -945,5 +943,7 @@ if prevtotmin ! totminut:
 	gs 'telefon', 'IncomingSMSCheck'
 end
 
+if Enable_Android = 0: gs 'obj_din', 'old'
+
 
 --- stat ---------------------------------

+ 2 - 0
locations/stat_display.qsrc

@@ -933,6 +933,8 @@ if arrsize('$temp_clo_suffix') > 0:
 
 	killvar 'temp_sd_comma_flag'
 	killvar 'temp_sd_exhib_flag'
+
+	killvar '$temp_clo_suffix'
 end
 
 

+ 185 - 71
locations/time.qsrc

@@ -8,24 +8,28 @@ if $ARGS[0] = '':
 	! sync totminut with daystart, hour, and minut
 	totminut = minut + hour * 60 + (daystart - 1) * 1440
 
-	:time_time_loop
-		time_temp_jump_flag = 0
-		if minut >= 60:
-			!! Hourly Changes
-			hour += 1
-			minut -= 60
-			gs 'hourly_events'
-			time_temp_jump_flag = 1
-		end
-		if hour >= 24:
-			hour -= 24
-			daystart += 1
-			gs 'time', 'update_date'
-			gs 'cikl'
-			time_temp_jump_flag = 1
-		end
-	if time_temp_jump_flag = 1: jump 'time_time_loop'
-	killvar 'time_temp_jump_flag'
+	if totminut ! prevtotmin:
+		:time_time_loop
+			time_temp_jump_flag = 0
+			if minut >= 60:
+				!! Hourly Changes
+				hour += 1
+				minut -= 60
+				gs 'hourly_events'
+				time_temp_jump_flag = 1
+			end
+			if hour >= 24:
+				hour -= 24
+				daystart += 1
+				gs 'time', 'update_date'
+				gs 'cikl'
+				time_temp_jump_flag = 1
+			end
+		if time_temp_jump_flag = 1: jump 'time_time_loop'
+		killvar 'time_temp_jump_flag'
+
+		gs 'time', 'update_daystage', year, month, day, hour, minut
+	end
 end
 
 
@@ -44,82 +48,84 @@ end
 
 ! ARGS[1] = daystart
 if $ARGS[0] = 'to_date':
+	if arrsize('ARGS') = 1: ARGS[1] = daystart
+
 	!daystart = 1 -> 1 Jan 2016
 	!mod_daystart = 0 -> 1 Jan 2013
 
-	mod_daystart = ARGS[1] + 1094
+	temp_timeVars['mod_daystart'] = ARGS[1] + 1094
 
-	dateVars['week'] = (mod_daystart + 2) mod 7
+	dateVars['week'] = (temp_timeVars['mod_daystart'] + 2) mod 7
 	if dateVars['week'] = 0: dateVars['week'] = 7
 
 	dateVars['year'] = 2013
-	temp_4cycles = mod_daystart / 1461		& ! (cycle of 4 years)
-	dateVars['year'] += 4 * temp_4cycles
+	temp_timeVars['4cycles'] = temp_timeVars['mod_daystart'] / 1461		& ! (cycle of 4 years)
+	dateVars['year'] += 4 * temp_timeVars['4cycles']
 
 	! The remaining years in this cycle of 4 years
-	if mod_daystart mod 1461 >= 1095:
-		temp_inner_years = 3
-	elseif mod_daystart mod 1461 >= 730:
-		temp_inner_years = 2
-	elseif mod_daystart mod 1461 >= 365:
-		temp_inner_years = 1
+	if temp_timeVars['mod_daystart'] mod 1461 >= 1095:
+		temp_timeVars['inner_years'] = 3
+	elseif temp_timeVars['mod_daystart'] mod 1461 >= 730:
+		temp_timeVars['inner_years'] = 2
+	elseif temp_timeVars['mod_daystart'] mod 1461 >= 365:
+		temp_timeVars['inner_years'] = 1
 	else
-		temp_inner_years = 0
+		temp_timeVars['inner_years'] = 0
 	end
-	dateVars['year'] += temp_inner_years	& ! The remaining years in this cycle of 4 years
+	dateVars['year'] += temp_timeVars['inner_years']	& ! The remaining years in this cycle of 4 years
 
 
-	temp_inner_days = mod_daystart - 1461 * temp_4cycles - 365 * temp_inner_years
+	temp_timeVars['inner_days'] = temp_timeVars['mod_daystart'] - 1461 * temp_timeVars['4cycles'] - 365 * temp_timeVars['inner_years']
 
-	temp_leapyear = 0
+	temp_timeVars['leapyear'] = 0
 	if ((dateVars['year'] mod 4) = 0 and (dateVars['year'] mod 100) ! 0) or (dateVars['year'] mod 400 = 0):
-		if temp_inner_days > 59:
-			temp_inner_days -= 1
-			temp_leapyear = 1
+		if temp_timeVars['inner_days'] > 59:
+			temp_timeVars['inner_days'] -= 1
+			temp_timeVars['leapyear'] = 1
 		end
 	end
 
 	!temp_inner_days starts at 0!
-	if temp_inner_days < 31:
+	if temp_timeVars['inner_days'] < 31:
 		dateVars['month'] = 1
-	elseif temp_inner_days < 59:
+	elseif temp_timeVars['inner_days'] < 59:
 		dateVars['month'] = 2
-		temp_inner_days -= 31
-		temp_inner_days += temp_leapyear
-	elseif temp_inner_days < 90:
+		temp_timeVars['inner_days'] -= 31
+		temp_timeVars['inner_days'] += temp_timeVars['leapyear']
+	elseif temp_timeVars['inner_days'] < 90:
 		dateVars['month'] = 3
-		temp_inner_days -= 59
-	elseif temp_inner_days < 120:
+		temp_timeVars['inner_days'] -= 59
+	elseif temp_timeVars['inner_days'] < 120:
 		dateVars['month'] = 4
-		temp_inner_days -= 90
-	elseif temp_inner_days < 151:
+		temp_timeVars['inner_days'] -= 90
+	elseif temp_timeVars['inner_days'] < 151:
 		dateVars['month'] = 5
-		temp_inner_days -= 120
-	elseif temp_inner_days < 181:
+		temp_timeVars['inner_days'] -= 120
+	elseif temp_timeVars['inner_days'] < 181:
 		dateVars['month'] = 6
-		temp_inner_days -= 151
-	elseif temp_inner_days < 212:
+		temp_timeVars['inner_days'] -= 151
+	elseif temp_timeVars['inner_days'] < 212:
 		dateVars['month'] = 7
-		temp_inner_days -= 181
-	elseif temp_inner_days < 243:
+		temp_timeVars['inner_days'] -= 181
+	elseif temp_timeVars['inner_days'] < 243:
 		dateVars['month'] = 8
-		temp_inner_days -= 212
-	elseif temp_inner_days < 273:
+		temp_timeVars['inner_days'] -= 212
+	elseif temp_timeVars['inner_days'] < 273:
 		dateVars['month'] = 9
-		temp_inner_days -= 243
-	elseif temp_inner_days < 304:
+		temp_timeVars['inner_days'] -= 243
+	elseif temp_timeVars['inner_days'] < 304:
 		dateVars['month'] = 10
-		temp_inner_days -= 273
-	elseif temp_inner_days < 334:
+		temp_timeVars['inner_days'] -= 273
+	elseif temp_timeVars['inner_days'] < 334:
 		dateVars['month'] = 11
-		temp_inner_days -= 304
+		temp_timeVars['inner_days'] -= 304
 	else
 		dateVars['month'] = 12
-		temp_inner_days -= 334
+		temp_timeVars['inner_days'] -= 334
 	end
 	$dateVars['month_text'] = $monthName[dateVars['month']]
 
-	dateVars['day'] = 1 + temp_inner_days
+	dateVars['day'] = 1 + temp_timeVars['inner_days']
 
 	dateVars['odd_week'] = ((mod_daystart + 8) / 7) mod 2
 
@@ -143,18 +149,15 @@ if $ARGS[0] = 'to_date':
 		'new_week: <<dateVars[''week'']>> | old_week: <<week>>'
 		'new_odd_week: <<dateVars[''odd_week'']>> | old_odd_week: <<odd_week>>'
 		*nl
-		'mod_daystart: <<mod_daystart>>'
-		'temp_inner_days: <<temp_inner_days>>'
-		'temp_leapyear: <<temp_leapyear>>'
-		'temp_4cycles: <<temp_4cycles>>'
-		'temp_inner_years: <<temp_inner_years>>'
+		'Temp:'
+		'mod_daystart: <<temp_timeVars[''mod_daystart'']>>'
+		'inner_days: <<temp_timeVars[''inner_days'']>>'
+		'leapyear: <<temp_timeVars[''leapyear'']>>'
+		'4cycles: <<temp_timeVars[''4cycles'']>>'
+		'inner_years: <<temp_timeVars[''inner_years'']>>'
 	end
 
-	killvar 'temp_inner_days'
-	killvar 'temp_leapyear'
-	killvar 'temp_4cycles'
-	killvar 'temp_inner_years'
-	killvar 'mod_daystart'
+	killvar 'temp_timeVars'
 end
 
 
@@ -196,6 +199,115 @@ if $ARGS[0] = 'to_daystart':
 end
 
 
+if $ARGS[0] = 'update_daystage':
+	if arrsize('ARGS') = 1: ARGS[1] = year
+	if arrsize('ARGS') = 2: ARGS[2] = month
+	if arrsize('ARGS') = 3: ARGS[3] = day
+	if arrsize('ARGS') = 4: ARGS[4] = hour
+	if arrsize('ARGS') = 5: ARGS[5] = minut
+
+
+	DayLength = func('time', 'get_DayLength', ARGS[1], ARGS[2], ARGS[3])
+
+	CurTimeSun = func('time', 'get_CurTimeSun', ARGS[4], ARGS[5])
+
+	! 1 - dawn
+	! 2 - midday
+	! 3 - sunset
+	! 4 - the beginning of the night
+	! 5 - night
+	! 6 - the end of the night
+	!! phases 1, 3, 4 and 6 last for 64 minutes
+	if CurTimeSun < -DayLength - 64:
+		DayStage = 5
+
+		BColorBase = 0		& ! Black
+	elseif CurTimeSun < -DayLength:
+		DayStage = 6
+
+		! CurTimeSun - negative
+		! result = 128 - [64 -> 0] * 2
+		BColorBase = 128 + (DayLength + CurTimeSun) * 2
+	elseif CurTimeSun < -DayLength + 64:
+		DayStage = 1
+
+		! CurTimeSun - negative
+		! result = 128 + [0 -> 64] * 2
+		BColorBase = 128 + (DayLength + CurTimeSun) * 2
+	elseif CurTimeSun < DayLength - 64:
+		DayStage = 2
+
+		BColorBase = 255	& ! White
+	elseif CurTimeSun < DayLength:
+		DayStage = 3
+
+		! CurTimeSun - positive
+		! result = 128 + [64 -> 0] * 2
+		BColorBase = 128 + (DayLength - CurTimeSun) * 2
+	elseif CurTimeSun < DayLength + 64:
+		DayStage = 4
+
+		! CurTimeSun - positive
+		! result = 128 - [0 -> 64] * 2
+		BColorBase = 128 + (DayLength - CurTimeSun) * 2
+	else
+		DayStage = 5
+
+		BColorBase = 0		& ! Black
+	end
+end
+
+
+if $ARGS[0] = 'get_DayLength':
+	if arrsize('ARGS') = 1: ARGS[1] = year
+	if arrsize('ARGS') = 2: ARGS[2] = month
+	if arrsize('ARGS') = 3: ARGS[3] = day
+
+	!  half of daylight duration
+	!  used as an offset for solar noon
+	!  to get time when day starts and ends
+
+
+	temp_timeVars['doy_N1'] = 275 * ARGS[2] / 9
+	temp_timeVars['doy_N2'] = (ARGS[2] + 9) / 12
+	temp_timeVars['doy_N3'] = 1 + (ARGS[1] - 4 * (ARGS[1] / 4) + 2) / 3
+	temp_timeVars['DayInYear'] = temp_timeVars['doy_N1'] - (temp_timeVars['doy_N2'] * temp_timeVars['doy_N3']) + ARGS[3] - 30
+
+	temp_timeVars['DayLengthMin'] = 177		& ! Minutes from dawn to noon
+	temp_timeVars['DayLengthMax'] = 563
+
+	!! distance from summer solstice (longest day of the year)
+	if temp_timeVars['DayInYear'] < 172:
+		temp_timeVars['DayInYear2'] = 172 - temp_timeVars['DayInYear']
+	elseif temp_timeVars['DayInYear'] < 355:
+		temp_timeVars['DayInYear2'] = temp_timeVars['DayInYear'] - 172
+	else
+		temp_timeVars['DayInYear2'] = 536 - temp_timeVars['DayInYear']
+	end
+
+	result = temp_timeVars['DayLengthMax'] - ((temp_timeVars['DayLengthMax'] - temp_timeVars['DayLengthMin']) * temp_timeVars['DayInYear2']) / 182
+
+	killvar 'temp_timeVars'
+end
+
+
+if $ARGS[0] = 'get_CurTimeSun':
+	if arrsize('ARGS') = 1: ARGS[1] = hour
+	if arrsize('ARGS') = 2: ARGS[2] = minut
+
+	!  solar noon coincides with CurTimeSun of 0 which happens at 13:00
+	!! Solar Noon (13:00) minus DayLength - time when day starts
+	!! Solar Noon (13:00) plus DayLength - time when day ends
+
+	!! distance from 13:00 (Solar Noon) in minutes
+	!    at midnight its -780
+	!    0 is 13:00
+	!    1 minute before midnight (23:59) is 659
+
+	result = (ARGS[1] - 13) * 60 + ARGS[2]
+end
+
+
 if $ARGS[0] = 'get_time_string':
 	if arrsize('$ARGS') = 1: ARGS[1] = hour
 	if arrsize('$ARGS') = 2: ARGS[2] = minut
@@ -204,7 +316,6 @@ if $ARGS[0] = 'get_time_string':
 	if ARGS[3] = 0:
 		$result = '<<$mid(100 + ARGS[1], 2, 2)>>:<<$mid(100 + ARGS[2], 2, 2)>>'
 	else
-		$dateVars['period']
 		$dateVars['period'] = 'AM'
 		if ARGS[1] >= 12:
 			$dateVars['period'] = 'PM'
@@ -257,8 +368,10 @@ if $ARGS[0] = 'init_weeknames':
 end
 
 if $ARGS[0] = 'init_monthends':
+	if arrsize('ARGS') = 1: ARGS[1] = year
+
 	monthsend[1] = 31
-	if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0):
+	if ((ARGS[1] mod 4 = 0) and (ARGS[1] mod 100 ! 0)) or (ARGS[1] mod 400 = 0):
 		monthsend[2] = 29
 	else
 		monthsend[2] = 28
@@ -287,4 +400,5 @@ end
 
 if mid($ARGS[0], 1, 2) ! 'to': killvar 'dateVars'
 
+
 --- time ---------------------------------

+ 13 - 25
locations/uni_shop.qsrc

@@ -35,7 +35,9 @@ if $ARGS[0] = 'atm':
 	'<center><b><font color="maroon">ATM</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/shared/store/atm.jpg"></center>'
 
-	if bankAccount = 1:
+	if bankAccount = 0:
+		'You don''t have a bank account yet!'
+	else
 		if karta >= bankDebtLimit:
 			'You have <<karta - bankDebtLimit>> <b>₽</b> in your account.'
 			'You have an overdraft limit of <font color="blue"><<bankDebtLimit>></font>!'
@@ -46,52 +48,38 @@ if $ARGS[0] = 'atm':
 
 		'<br>ATM Deposit Fee: 100 <b>₽</b>'
 
-		if bankAccount = 1 and money > 0:
+		if money > 0:
 			act 'Deposit money into your bank account':
 				cla
 				menu_off = 1
 				minut += 5
-				gs 'stat'
 
-				gs 'bank', 'deposit_cash'
+				gs 'bank', 'deposit_cash', 100
 
+				gs 'stat'
 				'"Is there anything else I can do for you?"'
-
 				act 'Move away': gt 'uni_shop', 'start'
 			end
 		end
 
-		if karta > 0:
+		if karta <= 0:
+			'You have maxed out your overdraft.'
+		else
 			act 'Withdraw money from the ATM':
 				cla
+				menu_off = 1
 				minut += 5
 
-				kartaOUT = input ("How much money do you want to withdraw?")
-				if kartaOUT <= 0 or kartaOUT > karta:
-					'<br>Invalid operation.'
-				else
-					karta -= kartaOUT
-					money += kartaOUT
-					if karta > 0:
-						'<br>You withdraw <<kartaOUT>> <b>₽</b>. You have <<karta - bankDebtLimit>> <b>₽</b> left in your bank account.'
-					elseif karta = 0:
-						'<br>You withdraw <<kartaOUT>> <b>₽</b>. You have no money left in your bank account.'
-					else
-						'<br>You withdraw <<kartaOUT>> <b>₽</b>. <font color="red">Your bank account is overdrawn by <b><<karta>> ₽</b>.</font>'
-					end
-				end
+				gs 'bank', 'withdraw_cash', 0
 
 				gs 'stat'
+				'"Is there anything else I can do for you?"'
 				act 'Move away': gt 'uni_shop', 'start'
 			end
-		else
-			'You have maxed out your overdraft.'
 		end
-	else
-		'You don''t have a bank account yet!'
 	end
 
-	act 'Move away':gt 'uni_shop', 'start'
+	act 'Move away': gt 'uni_shop', 'start'
 end
 
 if $ARGS[0] = 'cart':

+ 0 - 0
tools/Parser/qsp_parser.exe


Some files were not shown because too many files changed in this diff