Browse Source

Merge branch 'master' into DSXClothingTweaks

DSX93459 5 months ago
parent
commit
86077b106a
47 changed files with 2219 additions and 1415 deletions
  1. 1 0
      glife.qproj
  2. 316 17
      locations/Cheatmenu_din.qsrc
  3. 1 1
      locations/FedorMisc.qsrc
  4. 111 0
      locations/SMStext_builder.qsrc
  5. 1 2
      locations/artem_sex.qsrc
  6. 75 88
      locations/band_tour_anushka_SMS.qsrc
  7. 19 7
      locations/body.qsrc
  8. 184 243
      locations/booty_call_sms.qsrc
  9. 6 1
      locations/cikl.qsrc
  10. 4 6
      locations/clothing.qsrc
  11. 1 1
      locations/din_bad.qsrc
  12. 1 1
      locations/gschool_events.qsrc
  13. 13 41
      locations/indiktab.qsrc
  14. 29 29
      locations/intro_customization.qsrc
  15. 7 7
      locations/item_cart.qsrc
  16. 1 1
      locations/journal.qsrc
  17. 95 128
      locations/nerd_game_night.qsrc
  18. 6 6
      locations/npc_reactions.qsrc
  19. 145 70
      locations/npc_set_preference.qsrc
  20. 319 239
      locations/npc_standard_preferences.qsrc
  21. 1 1
      locations/npcgeneratec.qsrc
  22. 36 23
      locations/npcstatic1.qsrc
  23. 1 1
      locations/pav_train_market.qsrc
  24. 362 210
      locations/pcs_has_attr.qsrc
  25. 3 4
      locations/set_npc_attraction.qsrc
  26. 7 3
      locations/sex_ev_after.qsrc
  27. 38 21
      locations/sex_ev_condoms.qsrc
  28. 40 40
      locations/sex_ev_cum.qsrc
  29. 11 6
      locations/sex_ev_events.qsrc
  30. 4 1
      locations/sex_ev_foreplay.qsrc
  31. 1 1
      locations/sex_ev_hookup_leave.qsrc
  32. 1 1
      locations/sex_ev_morning.qsrc
  33. 139 89
      locations/sex_ev_pillow_talk.qsrc
  34. 0 1
      locations/sex_ev_pillow_talk2.qsrc
  35. 2 2
      locations/sex_ev_reactions.qsrc
  36. 6 2
      locations/sex_ev_reactions_creampie.qsrc
  37. 25 17
      locations/sex_ev_sex.qsrc
  38. 21 20
      locations/sex_ev_shower.qsrc
  39. 50 6
      locations/sex_ev_start.qsrc
  40. 39 1
      locations/sex_ev_stats.qsrc
  41. 8 10
      locations/sex_ev_talk.qsrc
  42. 1 1
      locations/sex_ev_wakeup.qsrc
  43. 25 12
      locations/stat_display.qsrc
  44. 51 48
      locations/themes.qsrc
  45. 2 2
      locations/therapist_hotel.qsrc
  46. 6 0
      locations/uni_lessons.qsrc
  47. 4 4
      locations/uni_lessons1.qsrc

+ 1 - 0
glife.qproj

@@ -239,6 +239,7 @@
 		<Location name="telefon"/>
 		<Location name="phone_selfies"/>
 		<Location name="phone_selfies_popup"/>
+		<Location name="SMStext_builder"/>
 	</Folder>
 	<Folder name="Prostitution">
 		<Location name="street_walker"/>

+ 316 - 17
locations/Cheatmenu_din.qsrc

@@ -782,8 +782,13 @@ $cheatmenu['setLooks'] = {
 }
 
 $cheatmenu['setLooksInput'] = {
-	temp_input = input("Set your <<$ARGS[1]>> level:")
-	gs 'shortgs', 'setStat', $ARGS[0], temp_input
+	$temp_input = $input("Set your <<$ARGS[1]>> level:")
+	if isnum($temp_input) ! 0:
+		gs 'shortgs', 'setStat', $ARGS[0], val($temp_input)
+	elseif $temp_input ! '':
+		msg 'invalid input'
+	end
+	killvar '$temp_input'
 	dynamic $cheatmenu['looks']
 }
 
@@ -836,6 +841,9 @@ $cheatmenu['looks'] = {
 	'<a href="exec:pcs_hgt = input(''Enter <<$pcs_nickname>>s height in centimetres<br><br>(default 170, min 100, max 200, values below 160 and above 180 will cause problems in the calculation of BMI/weight the more you deviate from the default 170)'') & dynamic $cheatmenu[''looks'']">Change <<$pcs_nickname>>''s height</a>'
 	*nl
 	*p 'Musculature (<<stren_plus_lvl>>): ' & dynamic $cheatmenu['printLooksLinks'], 'stren_plus', 'Musculature'
+	*pl '<font color="grey">Allows strength to go past 100'
+	*pl'<font color="red">Negatively</font> affects appearance</font>'
+	*nl
 	*p 'Toned Butt (<<butt_tr_lvl>>): ' & dynamic $cheatmenu['printLooksLinks'], 'butt_tr', 'Toned Butt'
 	*nl
 	'You have <<$titsize>> breasts'
@@ -1036,10 +1044,15 @@ $cheatmenu['parameters'] = {
 	'waist (pcs_waist) = <<pcs_waist>>'
 	'hips (pcs_hips) = <<pcs_hips>>'
 	'bust - band (pcs_cupsize) = <<pcs_cupsize>>'
-	'bodyVars[''bust_silicone''] = <<bodyVars[''bust_silicone'']>>'
 	'pcs_mass[''bust''] = <<pcs_mass[''bust'']>>'
-	'bodyVars[''bust_magic''] = <<bodyVars[''bust_magic'']>>'
 	'pcs_mass[''bust_gen''] = <<pcs_mass[''bust_gen'']>>'
+	'bodyVars[''bust_magic''] = <<bodyVars[''bust_magic'']>>'
+	'bodyVars[''bust_silicone''] = <<bodyVars[''bust_silicone'']>>'
+	'bodyVars[''bust_other''] = <<bodyVars[''bust_other'']>>'
+	'pcs_mass[''butt''] = <<pcs_mass[''butt'']>>'
+	'pcs_mass[''butt_gen''] = <<pcs_mass[''butt_gen'']>>'
+	'bodyVars[''butt_silicone''] = <<bodyVars[''butt_silicone'']>>'
+	'bodyVars[''butt_other''] = <<bodyVars[''butt_other'']>>'
 	'bodyVars[''vhips''] = <<bodyVars[''vhips'']>>'
 	'bodyVars[''wratio''] = <<bodyVars[''wratio'']>>'
 	'bodyVars[''bratio''] = <<bodyVars[''bratio'']>>'
@@ -1154,14 +1167,24 @@ $cheatmenu['setStat'] = {
 }
 
 $cheatmenu['setStatInput'] = {
-	temp_input = input("Set your <<$ARGS[1]>> level:")
-	gs 'shortgs', 'setStat', $ARGS[0], temp_input
+	$temp_input = $input("Set your <<$ARGS[1]>> level:")
+	if isnum($temp_input) ! 0:
+		gs 'shortgs', 'setStat', $ARGS[0], val($temp_input)
+	elseif $temp_input ! '':
+		msg 'invalid input'
+	end
+	killvar '$temp_input'
 	dynamic $cheatmenu['stats']
 }
 
 $cheatmenu['setStatInputInverted'] = {
-	temp_input = input("Set your <<$ARGS[1]>> level:")
-	gs 'shortgs', 'setStat', $ARGS[0], (100 - temp_input)
+	$temp_input = $input("Set your <<$ARGS[1]>> level:")
+	if isnum($temp_input) ! 0:
+		gs 'shortgs', 'setStat', $ARGS[0], (100 - val($temp_input))
+	elseif $temp_input ! '':
+		msg 'invalid input'
+	end
+	killvar '$temp_input'
 	dynamic $cheatmenu['stats']
 }
 
@@ -1673,7 +1696,7 @@ $cheatmenu['input_time'] = {
 
 $cheatmenu['time'] = {
 	if currtimecheck = 1:
-		if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0): 
+		if ((year mod 4 = 0) and (year mod 100 ! 0)) or (year mod 400 = 0):
 			monthsend[2] = 29
 		else
 			monthsend[2] = 28
@@ -1682,13 +1705,13 @@ $cheatmenu['time'] = {
 	gs 'daystart'
 	gs 'outdoors', 'temp_set'
 	gs 'stat'
-	
+
 	temp_daystart = (year - 2016) * 365
 	!! leap year correction
 	temp_daystart += (year - 2013) / 4
 
 	copyarr 'temp_monthsend', 'monthsend'
-	if ((temp_year mod 4 = 0) and (temp_year mod 100 ! 0)) or (temp_year mod 400 = 0): 
+	if ((temp_year mod 4 = 0) and (temp_year mod 100 ! 0)) or (temp_year mod 400 = 0):
 		temp_monthsend[2] = 29
 	else
 		temp_monthsend[2] = 28
@@ -2095,8 +2118,7 @@ $cheatmenu['display'] = {
 	*clr & cla
 	gs 'obj_din', 'settingtabs'
 	'<center><h1>Display Setting</h1></center>'
-	'<center><table cellspacing="0" cellpadding="20" valign="top"><tr>'
-	'<td cellspacing="0" cellpadding="20" valign="top">'
+	*p '<center><table cellspacing="0" cellpadding="20" valign="top"><tr><td cellspacing="0" cellpadding="20" valign="top">'
 	if usePopUps = 1:
 		'Allow Popup Pictures: Currently ON - <a href="exec:usePopUps = 0 & dynamic $cheatmenu[''display'']">Turn OFF</a>'
 	else
@@ -2130,7 +2152,7 @@ $cheatmenu['display'] = {
 
 	*p iif($theme['name'] = 'Custom', 'Custom&nbsp;', '<a href="exec:gs ''themes'', ''set_custom'' & gs ''$menu_obnovit'' & dynamic $cheatmenu[''display'']">Custom</a>&nbsp;')
 
-	*pl '<a href="exec:msg ''test''"><img src="images/system/image_needed.png" height="<<fsize+2>>"></a>'
+	*pl '<a href="exec:dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/preferences<<iif(theme[''is_dark''] = 0, ''_b'', ''_w'')>>.png" height="<<fsize*15/10>>"></a>'
 
 	'<font color="grey">Dynamic theme (default) will change colour based on the game hour.</font>'
 	*nl
@@ -2160,7 +2182,284 @@ $cheatmenu['display'] = {
 	else
 		'Show Debug window on save load: Currently ON - <a href="exec:loadg_show_debug = 0 & debug_warning_closed = 1 & showobjs 0 & dynamic $cheatmenu[''display'']">Turn OFF</a>'
 	end
-	'</tr></table></b></center>'
+	*p '</td></tr></table></center>'
+}
+
+$cheatmenu['theme_customize_input'] = {
+	if $ARGS[0] = 'fname':
+		$temp_input = $trim($input('Enter Font name:'))
+		if $temp_input ! '': $custom_theme['fname'] = $temp_input
+	elseif $ARGS[0] = 'fsize':
+		$temp_input = $trim($input('Enter Font size:'))
+		if $temp_input ! '':
+			if isnum($temp_input):
+				custom_theme['fsize'] = iif(val($temp_input) < 9, 9, val($temp_input))
+			else
+				msg 'invalid input'
+			end
+		end
+	elseif $ARGS[0] = 'rgb':
+		result = ARGS[2]
+		$temp_input = $ucase($trim($input('Enter <<$ARGS[1]>> color component in 0 - 255 or 00 - FF format')))
+		if $temp_input ! '':
+			if isnum($temp_input) ! 0:
+				if val($temp_input) < 0 or val($temp_input) > 255:
+					msg 'invalid input'
+				else
+					temp_result = val($temp_input)
+				end
+			else
+				if len($temp_input) > 2 or instr('0123456789ABCDEF', $mid($temp_input, 1, 1)) = 0 or instr('0123456789ABCDEF', $mid($temp_input, 2, 1)) = 0:
+					msg 'invalid input'
+				else
+					temp_result = func('shortgs', 'hex_str_to_int', $temp_input)
+				end
+			end
+		end
+		if arrsize('temp_result') = 1:
+			if $ARGS[1] = 'red':
+				result = ((ARGS[2] and (-256)) or temp_result)
+			elseif $ARGS[1] = 'green':
+				result = ((ARGS[2] and (-65281)) or (temp_result * 256))
+			elseif $ARGS[1] = 'blue':
+				result = ((ARGS[2] and (-16711681)) or (temp_result * 65536))
+			end
+		end
+		killvar 'temp_result'
+	elseif $ARGS[0] = 'hex':
+		result = ARGS[1]
+		$temp_input = $ucase($trim($input('Enter color in ABC or AABBCC format')))
+		if $temp_input ! '':
+			$temp_input = $replace($temp_input, '#')
+			temp_length = len($temp_input)
+			if temp_length = 3 or temp_length = 6:
+				temp_index = 1
+				:is_hex_loop
+					if instr('0123456789ABCDEF', $mid($temp_input, temp_index, 1)) = 0:
+						msg 'invalid input' & jump 'invalid_input_exit'
+					end
+				if temp_index < temp_length: temp_index += 1 & jump 'is_hex_loop'
+				killvar 'temp_index'
+
+				if temp_length = 3:
+					$temp_red = $mid($temp_input, 1, 1) & $temp_red = $temp_red + $temp_red
+					$temp_green = $mid($temp_input, 2, 1) & $temp_green = $temp_green + $temp_green
+					$temp_blue = $mid($temp_input, 3, 1) & $temp_blue = $temp_blue + $temp_blue
+				else
+					$temp_red = $mid($temp_input, 1, 2)
+					$temp_green = $mid($temp_input, 3, 2)
+					$temp_blue = $mid($temp_input, 5, 2)
+				end
+
+				result = rgb(func('shortgs', 'hex_str_to_int', $temp_red), func('shortgs', 'hex_str_to_int', $temp_green), func('shortgs', 'hex_str_to_int', $temp_blue))
+
+				killvar '$temp_red' & killvar '$temp_green' & killvar '$temp_blue'
+			else
+				msg 'invalid input'
+			end
+			:invalid_input_exit
+			killvar 'temp_length'
+		end
+	end
+	killvar '$temp_input'
+}
+
+$cheatmenu['extract_color_component'] = {
+	if $ARGS[0] = 'red':
+		result = (ARGS[1] and 255)
+	elseif $ARGS[0] = 'green':
+		result = ((ARGS[1] and 65280) / 256)
+	elseif $ARGS[0] = 'blue':
+		result = ((ARGS[1] and 16711680) / 65536)
+	end
+}
+
+$cheatmenu['theme_customize_increment'] = {
+	if $ARGS[0] = 'rgb':
+		result = dyneval($cheatmenu['extract_color_component'], $ARGS[1], ARGS[2]) + ARGS[3]
+		result = iif(result > 255, result - 256, iif(result < 0, 256 + result, result))
+		if $ARGS[1] = 'red':
+			result = ((ARGS[2] and (-256)) or result)
+		elseif $ARGS[1] = 'green':
+			result = ((ARGS[2] and (-65281)) or (result * 256))
+		elseif $ARGS[1] = 'blue':
+			result = ((ARGS[2] and (-16711681)) or (result * 65536))
+		else
+			result = ARGS[2]
+		end
+	end
+}
+
+$cheatmenu['theme_customize_print_color_line'] = {
+	$result = '<a href="exec: <<$ARGS[1]>> = dyneval($cheatmenu[''theme_customize_increment''], ''rgb'', ''<<$ARGS[0]>>'', <<$ARGS[1]>>, -custom_theme[''increment'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	$result += '&nbsp;<<dyneval($cheatmenu[''extract_color_component''], ''<<$ARGS[0]>>'', dyneval(''result = <<$ARGS[1]>>''))>>&nbsp;'
+	$result += '<a href="exec: <<$ARGS[1]>> = dyneval($cheatmenu[''theme_customize_increment''], ''rgb'', ''<<$ARGS[0]>>'', <<$ARGS[1]>>, custom_theme[''increment'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	$result += '&nbsp;'
+	$result += '<a href="exec: <<$ARGS[1]>> = dyneval($cheatmenu[''theme_customize_input''], ''rgb'', ''<<$ARGS[0]>>'', <<$ARGS[1]>>) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+}
+
+$cheatmenu['theme_customize'] = {
+	*clr
+	gs 'themes', 'check_custom_vars'
+	if $theme['name'] = 'Custom': gs 'themes', 'set_custom' & gs '$menu_obnovit'
+	menu_page = -1
+	gs 'obj_din', 'settingtabs'
+	cla
+	act 'Return': menu_page = 1 & dynamic $cheatmenu['display']
+	'<center><h1>Customize Theme</h1></center>'
+	*p '<center><table width="90%" cellspacing="0" cellpadding="20" valign="top"><tr><td bgcolor="black" width="50%" cellspacing="0" cellpadding="20" valign="top"><font face="Tahoma" size="4" color="white">'
+
+	$icon_selector = '_w'
+	icon_height = 13
+!!  --- FONT ---
+	*p 'Font Family: <<$custom_theme[''fname'']>>&nbsp;'
+	*pl '<a href="exec: dynamic $cheatmenu[''theme_customize_input''], ''fname'' & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'Font Size:&nbsp;'
+	*p '<a href="exec: custom_theme[''fsize''] = iif(custom_theme[''fsize''] <= 9, 9, custom_theme[''fsize''] - 1) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	*p '&nbsp;<<custom_theme[''fsize'']>>&nbsp;'
+	*p '<a href="exec: custom_theme[''fsize''] += 1 & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	*p '&nbsp;'
+	*pl '<a href="exec: dynamic $cheatmenu[''theme_customize_input''], ''fsize'' & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+!!  --- BCOLOR ---
+	*nl
+	*p 'BG Color: <<func(''shortgs'', ''rgb_to_hex'', custom_theme[''bcolor''])>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''bcolor''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''bcolor'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'R:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''bcolor'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'G:&nbsp;' + $dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''bcolor'']') + '&nbsp;|&nbsp;'
+
+	*p 'B:&nbsp;'
+	*pl dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''bcolor'']')
+
+!!  --- FCOLOR ---
+	*nl
+	*p 'FG (text) Color: <<func(''shortgs'', ''rgb_to_hex'', custom_theme[''fcolor''])>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''fcolor''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''fcolor'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'R:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''fcolor'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'G:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''fcolor'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'B:&nbsp;'
+	*pl dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''fcolor'']')
+
+!!  --- LCOLOR ---
+	*nl
+	*p 'Link Color: <<func(''shortgs'', ''rgb_to_hex'', custom_theme[''lcolor''])>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''lcolor''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''lcolor'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'R:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''lcolor'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'G:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''lcolor'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'B:&nbsp;'
+	*pl dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''lcolor'']')
+
+!!  --- TABLE BG ---
+	*nl
+	*p 'Table BG: <<func(''shortgs'', ''rgb_to_hex'', custom_theme[''table_bg''])>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''table_bg''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''table_bg'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'R:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''table_bg'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'G:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''table_bg'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'B:&nbsp;'
+	*pl dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''table_bg'']')
+
+!!  --- TABLE BG ALT ---
+	*nl
+	*p 'Alt Table BG: <<func(''shortgs'', ''rgb_to_hex'', custom_theme[''table_bg_alt''])>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''table_bg_alt''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''table_bg_alt'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p 'R:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''table_bg_alt'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'G:&nbsp;'
+	*p dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''table_bg_alt'']')
+	*p '&nbsp;|&nbsp;'
+
+	*p 'B:&nbsp;'
+	*pl dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''table_bg_alt'']')
+
+!!  --- DARK MODE ---
+	*nl
+	*p 'Dark Mode&nbsp;'
+	if $custom_theme['is_dark'] = '0':
+		*pl '<a href="exec: $custom_theme[''is_dark''] = ''1'' & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/box<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	else
+		*pl '<a href="exec: $custom_theme[''is_dark''] = ''0'' & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/check<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	end
+
+!!  --- INCREMENT ---
+	*nl
+	if custom_theme['increment'] = 0: custom_theme['increment'] = 16
+	*p 'Increment:&nbsp;'
+	*p '<a href="exec: custom_theme[''increment''] = iif(custom_theme[''increment''] < 2, 1, custom_theme[''increment''] - 1) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+	*p '&nbsp;<<custom_theme[''increment'']>>&nbsp;'
+	*pl '<a href="exec: custom_theme[''increment''] += 1 & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
+
+	*p '</font></td>'
+
+!!  --- LOREM IPSUM ---
+	$icon_selector = iif(theme['is_dark'] = 0, '_b', '_w')
+	icon_height = fsize * 15 / 10
+	*p '<td width="50%" cellspacing="0" cellpadding="20" valign="top">'
+
+	*p '"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."'
+
+	*p '<table width="100%" cellspacing="0" cellpadding="20">'
+	*p '<tr><td></td></tr>'
+	$temp_bgcolor = func('themes', 'alt_color', $temp_bgcolor)
+	*p '<tr bgcolor="<<$temp_bgcolor>>"><td>Table Color</td><td align="center" width="6%"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></td></tr>'
+
+	$temp_bgcolor = func('themes', 'alt_color', $temp_bgcolor)
+	*p '<tr bgcolor="<<$temp_bgcolor>>"><td>Alt Table Color</td><td align="center" width="6%"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></td></tr>'
+
+	$temp_bgcolor = func('themes', 'alt_color', $temp_bgcolor)
+	*p '<tr bgcolor="<<$temp_bgcolor>>"><td>Table Color</td><td align="center" width="6%"><img src="images/system/ui/preferences<<$icon_selector>>.png" height="<<icon_height>>"></td></tr>'
+	*p '</table>'
+
+	*p '</td></tr></table></center>'
+	killvar '$icon_selector' & killvar 'icon_height' & killvar '$temp_bgcolor'
+	*nl
+	'<b>The standard Lorem Ipsum passage, used since the 1500s</b>'
+	*nl
+	'"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."'
+	*nl
+	'<b>Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC</b>'
+	*nl
+	'"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"'
+	*nl
+	'<b>1914 translation by H. Rackham</b>'
+	*nl
+	'"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"'
+	*nl
+	'<b>Section 1.10.33 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC</b>'
+	*nl
+	'"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."'
+	*nl
+	'<b>1914 translation by H. Rackham</b>'
+	*nl
+	'"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."'
 }
 
 $cheatmenu['status'] = {
@@ -2445,7 +2744,7 @@ $cheatmenu['pain'] = {
 	'You may still have pain from gaping or having been spanked, you can clear these using "Cure all ailments." in "Cheat Menu - Character State Changes"'
 	'You currently have vaginal gaping of <<vgape>>'
 	'You currently have anal gaping of <<agape>>'
-	'You currently have spanked level <<spanked>>'	
+	'You currently have spanked level <<spanked>>'
 }
 
 $cheatmenu['DNA'] = {
@@ -3305,7 +3604,7 @@ $cheatmenu['items'] = {
 	if showPharmacyItems = 1:
 		'<a href = "exec: showPharmacyItems = 0 & dynamic $cheatmenu[''items'']">Hide Details </a>'
 		*pl 'Morning after pill: <a href="exec:mc_inventory[''morning_after_pill'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''morning_after_pill'']>> </b></a>'
-		*pl 'Condoms: <a href="exec:mc_inventory[''equipped_condoms'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''equipped_condoms'']>> </b></a>'
+		*pl 'Condoms: <a href="exec:mc_inventory[''normal_condoms'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''normal_condoms'']>> </b></a>'
 		*pl 'Pregnancy test: <a href="exec:mc_inventory[''pregnancy_test'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''pregnancy_test'']>> </b></a>'
 		*pl 'Birth control pills: <a href="exec:mc_inventory[''contraceptive_pill'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''contraceptive_pill'']>> </b></a>'
 		*pl 'Antibiotics: <a href="exec:mc_inventory[''antibiotics'']=input(''Set number'') & dynamic $cheatmenu[''items'']"><b> <<mc_inventory[''antibiotics'']>> </b></a>'

+ 1 - 1
locations/FedorMisc.qsrc

@@ -212,7 +212,7 @@ if $ARGS[0] = 'Locker Room 1':
 
 		act 'Vaginal':
 			*clr & cla
-			minut -= -5
+			minut += 5
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/fedor/school/lockerroom/lr3.jpg"></center>'
 			'After a few more seconds, Fedor lifts you up by your shoulders then lightly pushes you onto the bench then climbs up in front of you. You look down at Fedor''s penis as it slowly enters your vagina, giving you a jolt of pleasure which emits a moan from you. Fedor begins fucking you slowly while gradually increasing his pace. Fedor lifts one of your legs up, giving himself easier access to your vagina as he continues ramming his penis inside you. After a few minutes, Fedor looks down to you and says, "I''m ready to cum for you."'

+ 111 - 0
locations/SMStext_builder.qsrc

@@ -0,0 +1,111 @@
+# SMStext_builder
+
+!	How to use SMStext_builder:
+!	
+!	Start with:
+!		gs 'SMStext_builder', 'start'
+!	Then add your content through "send" and "receive":
+!		gs 'SMStext_builder', 'send', [$text]
+!		gs 'SMStext_builder', 'receive', [$text]
+!		...
+!		...
+!	
+!	If you want Sveta to reply to this (and thus the player potentially having a choice):
+!		gs 'SMStext_builder', 'add_reply', [$text], [$file_name], [$file_args0], [$file_args1], ...
+!		gs 'SMStext_builder', 'add_reply', [$text], [$file_name], [$file_args0], [$file_args1], ...
+!	
+!	Finally, if this is a new sms-chain, use:
+!		gs 'SMStext_builder', 'add_sms', [$npc_code]
+!	
+!	If you are updating an ongoing sms-chain (usually in reponse to a choice made in the replies), use:
+!		gs 'SMStext_builder', 'show_sms', ARGS[{n}]
+!				where {n} is one more than the number of args you passed to the choice.
+!				So if you are used:
+!					gs 'SMStext_builder', 'add_reply', [$text], [$file_name], [$file_args0], [$file_args1].
+!				Then you would pass ARGS[2] (since you used $ARGS[0] and $ARGS[1]):
+!				gs 'SMStext_builder', 'add_sms', ARGS[2]
+!	
+!	Finally after the player has made a choice, you want to rebuild the SMS-history again (to get rid of the replies).
+!	Starting fresh or having done your final update (even if you never updated it anyway)
+!	End it with:
+!		gs 'SMStext_builder', 'end'
+
+
+
+
+if $ARGS[0] = 'start':
+	$temp_SMStext = ''
+
+elseif $ARGS[0] = 'end':
+	killvar '$temp_SMStext'
+	killvar '$temp_SMSreplies'
+	killvar 'stb_i'
+	killvar 'stb_maxi'
+end
+
+if $ARGS[0] = 'send':
+	$temp_SMStext += '<table width=80%><tr><td width=10%></td><td collspan=2 bgcolor=pink><font color=black>'
+	$temp_SMStext += $ARGS[1]
+	$temp_SMStext += '</font></td></tr></table>'
+
+elseif $ARGS[0] = 'receive':
+	$temp_SMStext += '<table width=80%><tr><td collspan=2 bgcolor="#D4CEF9"><font color=black>'
+	$temp_SMStext += $ARGS[1]
+	$temp_SMStext += '</font></td><td width=10%></td></tr></table>'
+end
+
+
+!	How to use 'add_reply':
+!		gs 'SMStext_builder', 'add_reply', $reply_text, $file_loc, $file_arg1, $file_arg2, $file_args2, ...
+!		gs 'SMStext_builder', 'add_reply', 'Hello', 'band_tour_anushka_SMS', 'week1', 'choice_a'
+if $ARGS[0] = 'add_reply':
+	$temp_reply_str = '<a href="exec: gs '
+
+	stb_n_args = arrsize('$ARGS')
+	stb_i = 2
+	:SMS_build_reply_loop
+		$temp_reply_str += '''<<$ARGS[stb_i]>>'', '
+		stb_i += 1
+	if stb_i < stb_n_args: jump 'SMS_build_reply_loop'
+
+	$temp_reply_str += 'telefon[''SMSid'']">' + $ARGS[1] + '</a>'
+	$temp_SMSreplies[] = $temp_reply_str
+
+	killvar 'temp_reply_str'
+	killvar 'stb_i'
+	killvar 'stb_n_args'
+
+elseif $ARGS[0] = 'set_replies':
+	$temp_SMStext += '<table><tr><th> Reply</th></tr><tr><td>'
+
+	stb_maxi = arrsize('temp_SMSreplies')
+	stb_i = 0
+	if stb_maxi >= 2:
+		:SMS_reply_loop
+			$temp_SMStext += $temp_SMSreplies[stb_i]
+			$temp_SMStext += '</td></tr><tr><td>'
+			stb_i += 1
+		if stb_i < stb_maxi - 1: jump 'SMS_reply_loop'
+	end
+	$temp_SMStext += $temp_SMSreplies[stb_i]
+	$temp_SMStext += '</td></tr></table>'
+
+	killvar '$temp_SMSreplies'
+	killvar 'stb_i'
+	killvar 'stb_maxi'
+end
+
+if $ARGS[0] = 'add_sms':
+	if arrsize('temp_SMSreplies') > 0: gs 'SMStext_builder', 'set_replies'
+	gs 'telefon', 'add_sms', $ARGS[1], $temp_SMStext, $ARGS[2], $ARGS[3], $ARGS[4], $ARGS[5]
+
+elseif $ARGS[0] = 'show_sms':
+	if arrsize('temp_SMSreplies') > 0: gs 'SMStext_builder', 'set_replies'
+	$SMSMessage[ARGS[1]] = $temp_SMStext
+	gs 'telefon', 'show_sms', ARGS[1], $ARGS[2], $ARGS[3], $ARGS[4], $ARGS[5]
+end
+
+
+
+
+--- SMStext_builder ---------------------------------

+ 1 - 2
locations/artem_sex.qsrc

@@ -722,9 +722,8 @@ if $ARGS[0] = 'anushka_3some_anal':
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/artemhome/artemroom/sex/nush3some13.jpg"></center>'
 		'You lower your head between Anushka''s legs and start lapping at her clit, and she does the same to you as Artem continues fucking your ass. You know a part of him is trying to get out, to be rough and dominant, and you want to help him feel that way.'
 		gs 'arousal', 'anal', 2
-		gs 'arousal', 'cuni', +2, 'lesbian'
+		gs 'arousal', 'cuni', -2, 'lesbian'
 		gs 'arousal', 'cuni_give', -2, 'lesbian'
-		minut -2
 		gs 'stat'
 		act 'Bend her over': gt 'artem_sex', 'anushka_3some_doggy'
 	end

+ 75 - 88
locations/band_tour_anushka_SMS.qsrc

@@ -16,50 +16,29 @@
 
 
 
-!!=====   Layout stuff   =====================================================================================!!
-!! Open and close receiving text
-$SMS_open_receiving = '<table width=80%><tr><td collspan=2 bgcolor="#D4CEF9"><font color=black>'
-$SMS_close_receiving = '</font></td><td width=10%></td></tr></table>'
+!=====   Reply example here ==================================================================================!
 
-!! Open and close sending text
-$SMS_open_sending = '<table width=80%><tr><td width=10%></td><td collspan=2 bgcolor=pink><font color=black>'
-$SMS_close_sending = '</font></td></tr></table>'
+!	gs 'SMStext_builder', 'add_reply', [$text], [$location], [$args0], [$args1], [$args2], ...
+!	examples:
+!		gs 'SMStext_builder', 'add_reply', 'No, I do''t want to come over', 'booty_call_sms', 'Choice_a', $ARGS[1], $ARGS[2]
+!		gs 'SMStext_builder', 'add_reply', 'Good luck!', 'band_tour_anushka_SMS', 'Week1', 'Choice_a'
 
-!! Start reply
-$SMS_open_replies = '<table><tr><th> Reply</th></tr><tr><td>'
-$SMS_next_reply = '</td></tr><tr><td>'
-$SMS_close_replies = '</td></tr></table>'
-!!=====   Layout stuff   =====================================================================================!!
+!=============================================================================================================!
 
 
+!=====   Adding Images to SMS ================================================================================!
 
-!!=====   Reply example here =================================================================================!!
-
-!!   $temp_SMStext += $SMS_open_replies
-!!   $temp_SMStext += '<a href="exec: gs ''>>Name of the location<<'', ''>>Name of the SMS Branch<<'', ''>>Name of the Choice<<'', telefon[''SMSid'']">' + 'TEXT' + '</a>'
-!!   $temp_SMStext += $SMS_next_reply
-!!   $temp_SMStext += '<a href="exec: gs ''>>Name of the location<<'', ''>>Name of the SMS Branch<<'', ''>>Name of the Choice<<'', telefon[''SMSid'']">' + 'TEXT' + '</a>'
-!!   ....
-!!   $temp_SMStext += $SMS_close_replies
-
-!!=====   Reply example here =================================================================================!!
-
-!!=====   Adding Images to SMS ===============================================================================!!
-
-!!    You can add images at the end by manually setting:
-!!    $SMSPicture1[telefon['SMSid']] = Path to picture 1
-!!    $SMSPicture2[telefon['SMSid']] = Path to picture 2
-!!    $SMSPicture3[telefon['SMSid']] = Path to picture 3
-!!    $SMSPicture4[telefon['SMSid']] = Path to picture 4
+!	You can add images at the end of the text by using:
+!	gs 'SMStext_builder', 'add_sms', $npc_code, $imagepath1, $imagepath2, $imagepath3, $imagepath4
+!	gs 'SMStext_builder', 'add_sms', SMSid, $imagepath1, $imagepath2, $imagepath3, $imagepath4
+!			SMSid is the final ARGS passed to this file (here ARGS[2])
 
 ! You can also always add a picture to the text, scaling is an issue though
 
+!=============================================================================================================!
 
-!!=====   Adding Images to SMS ===============================================================================!!
 
 
-$temp_SMStext = ''
-
 
 if $ARGS[0] = 'start':
 	anushkaQW['num_tour_SMS_send'] += 1
@@ -113,19 +92,15 @@ if $ARGS[0] = 'Week1':
 	
 	!!Add the SMS to the phone
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		
-		!!replies
-		$temp_SMStext += $SMS_open_replies
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
 		
-		$temp_SMStext += '<a href="exec: gs ''band_tour_anushka_SMS'', ''Week1'', ''Choice_a'', telefon[''SMSid'']">' + 'Good luck!' + '</a>'
-		$temp_SMStext += $SMS_close_replies
-
-		!!$temp_SMStext += $SMS_next_reply
-		!!$temp_SMStext += '<a href="exec: gs ''band_tour_anushka_SMS'', ''Week1'', ''Choice_b'', telefon[''SMSid'']">' + 'Reply2' + '</a>'
-		!!$temp_SMStext += $SMS_close_replies
+			!replies
+			gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'band_tour_anushka_SMS', 'Week1', 'Choice_a'
+			!	gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'band_tour_anushka_SMS', 'Week1', 'Choice_b'
 
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 
 
 	!!===   Choice a   ===!!
@@ -135,11 +110,12 @@ if $ARGS[0] = 'Week1':
 		!! Is here to add it after reading the text.
 		if arrpos('$contact', 'A144') = -1: gs 'telefon', 'AddContact', 'A144', 'images/characters/shared/headshots_main/big144.jpg', "", "1 = 0", "", "", 0
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0']  + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['a1'] + $SMS_close_sending
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['a1']
+
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -148,10 +124,10 @@ elseif $ARGS[0] = 'Week2':
 	$SMSTree[ '0'] = '"Got to Smolensk, been playing most nights in local clubs. Going to do a little site seeing today, the boys are all out still. Was a hell of a party last night, so many bitches just throwing themselves at the boys and boy do they love it." Her text is followed by emojis aligned in a lewd way.'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
-
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -161,12 +137,15 @@ elseif $ARGS[0] = 'Week3':
 	$SMSTree[ '0'] = '"We got to Minsk just in time for Рок За Бобров festival, it was amazing. We camped out all four days. So many bands, so much good music, we got to get up on stage as well. Not the main stage but one of the side stages. So fucking cool, I want to come back next year and do it again." A string of excited emojis follow the text'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		
-		!! Insert image path here ---- $SMSPicture1[ARGS[2]] = 'images/pc/glare.jpg'
-		$temp_imagepath1 = ''
-		
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext, $temp_imagepath1
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+
+			!! Insert image path here ---- $SMSPicture1[ARGS[2]] = 'images/pc/glare.jpg'
+			$temp_imagepath1 = ''
+			gs 'SMStext_builder', 'add_sms', 'A144', $temp_imagepath1
+		gs 'SMStext_builder', 'end'
+
+		killvar '$temp_imagepath1'
 	end
 
 
@@ -175,9 +154,10 @@ elseif $ARGS[0] = 'Week4':
 	$SMSTree[ '0'] = '"We made Kyiv in time for Atlas music festival, they also had a beer festival and a lot of tattoo artists. I was going to get a new tattoo, but the wait was too long. Val got so drunk we had to carry him back to the hotel."'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -187,12 +167,15 @@ elseif $ARGS[0] = 'Week5':
 	$SMSTree[ '0'] = '"Third festival in a row, we made the Маяк Fest here in Odessa. So cool, I am loving this trip. Spent a lot of time at the music festival, played some gigs, but spent a lot of the time at the beach. I wish another girl had come, hanging out with just the boys is getting old." emoji of a gun to head.'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		
-		!! Insert image path here ---- $SMSPicture1[ARGS[2]] = 'images/pc/glare.jpg'
-		$temp_imagepath1 = ''
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+
+			!! Insert image path here ---- $SMSPicture1[ARGS[2]] = 'images/pc/glare.jpg'
+			$temp_imagepath1 = ''
+			gs 'SMStext_builder', 'add_sms', 'A144', $temp_imagepath1
+		gs 'SMStext_builder', 'end'
 
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext, $temp_imagepath1
+		killvar '$temp_imagepath1'
 	end
 
 
@@ -201,9 +184,10 @@ elseif $ARGS[0] = 'Week6':
 	$SMSTree[ '0'] = '"There was some watermelon festival going on here at Rostov, Arkadi entered into the eating contest and lost, we took some with us for our next drive. Played at a lot of small clubs while here."'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -212,9 +196,10 @@ elseif $ARGS[0] = 'Week7':
 	$SMSTree[ '0'] = '"Had some big gigs in Volgograd, followed by a two day party at some girls place. I don''t remember half of it, but I woke up in the van, somehow we picked up two bitches who are now with us, the guys take turns fucking them in the back, as we drive." Followed by several lewd emojis for sex'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -223,9 +208,10 @@ elseif $ARGS[0] = 'Week8':
 	$SMSTree[ '0'] = '"Had some great gigs here in Voronezh, one of the bitches took off, getting a bus ride home. Anna stayed, she seems to love it when I drive, so the boys can triple team her. The rest of the time she spends passed out from drinking too much, she is starting to get on my nerves."'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -234,9 +220,10 @@ elseif $ARGS[0] = 'Week9':
 	$SMSTree[ '0'] = '"Moscow is huge and amazing, had a blast here. Getting sick of the boys, after two months with them I am ready to strangle them. At least we ditched the bitch, we just left her passed out in the hotel room."'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 
@@ -245,9 +232,10 @@ elseif $ARGS[0] = 'Week10':
 	$SMSTree[ '0'] = '"On the way to Novgorod I almost jumped out of the van. We stopped at some diner and the boys all had this bean stew. Within an hour the van was like a toxic gas zone. they made a game out of who could fart the loudest, I almost threw up several times. Spent most of the time with my head hanging out the window." emoji of a vomiting face.'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 !!11th text
@@ -255,16 +243,15 @@ elseif $ARGS[0] = 'Week11':
 	$SMSTree[ '0'] = '"Back home, can''t believe it but I actually missed this place. Got to start packing tomorrow to move to the city and get ready for Uni."'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		gosub 'telefon', 'add_sms', 'A144', $temp_SMStext
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'add_sms', 'A144'
+		gs 'SMStext_builder', 'end'
 	end
 
 end
 
-killvar '$temp_SMStext'
-killvar 'SMSTree'
-
+killvar '$SMSTree'
 
 --- band_tour_anushka_SMS ---------------------------------
 

+ 19 - 7
locations/body.qsrc

@@ -71,7 +71,7 @@ if $ARGS[0] = 'CalcWeight':
 	This is an approximation, so that a sveta with a different height has the same BMI for the same pcs_mass['body'] values.
 	The default height of 170 cm is used as a starting point. The bmi deviates by 0.06 for a deviation of 10cm and 0.4 for a deviation of 20cm.}
 
-	result = 30 + (2 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'])) / 5 + (pcs_hgt - 170) * 7 / 10
+	result = (600 + 7 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 14 * (pcs_hgt - 170)) / 20
 
 	!{Do not remove (julzor)
 	This is the old more complex function, but it doesn''t work correctly.
@@ -83,18 +83,18 @@ end
 
 if $ARGS[0] = 'CalcWeight2':
 	!! weight2 = 10 * weight
-	result = 300 + (20 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'])) / 5 + (pcs_hgt - 170) * 7
+	result = (600 + 7 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 14 * (pcs_hgt - 170)) / 2
 	!result = (pcs_hgt * 62 / 17) + (10 * (vhips + (bodyVars['vofat'] * 2))) / 4 + 10 * tits
 end
 
 if $ARGS[0] = 'CalcBMI':
 	!! BMI = weight [kg] / (height [m])^2 = 100^2 * weight [kg] / (height [cm])^2
-	result = (10000 * pcs_weight) / (pcs_hgt * pcs_hgt)
+	result = (1000 * (10 * pcs_weight[0] + pcs_weight[1])) / (pcs_hgt * pcs_hgt)
 end
 
 if $ARGS[0] = 'CalcBMI2':
 	!! BMI2 = 10 * BMI
-	result = (100000 * pcs_weight) / (pcs_hgt * pcs_hgt)
+	result = (10000 * (10 * pcs_weight[0] + pcs_weight[1])) / (pcs_hgt * pcs_hgt)
 end
 
 
@@ -128,6 +128,7 @@ if $ARGS[0] = 'DailyUpdate':
 		gs 'body', 'Update_StatBuffs'
 	end
 
+	gs 'body', 'RegularUpdate'
 	gs 'body', 'UpdateBodyImage'
 
 
@@ -293,9 +294,20 @@ if $ARGS[0] = 'UpdateBodyImage':
 		else
 			$body = $bodimgsets[bodset * 10 + (PregChem - 2688) / 504 + 1]
 		end
-
-	elseif salocatnow <= 7:
-		$body = $bodimgsets[bodset * 10 + salocatnow]
+	elseif pcs_bmi < 15 or (pcs_bmi = 15 and pcs_bmi[1] <= 1):
+		$body = $bodimgsets[bodset * 10 + 0]
+	elseif pcs_bmi < 19 or (pcs_bmi = 19 and pcs_bmi[1] = 0):
+		$body = $bodimgsets[bodset * 10 + 1]
+	elseif pcs_bmi < 22 or (pcs_bmi = 22 and pcs_bmi[1] < 5):
+		$body = $bodimgsets[bodset * 10 + 2]
+	elseif pcs_bmi < 26:
+		$body = $bodimgsets[bodset * 10 + 3]
+	elseif pcs_bmi < 29 or (pcs_bmi = 29 and pcs_bmi[1] < 5):
+		$body = $bodimgsets[bodset * 10 + 4]
+	elseif pcs_bmi < 32 or (pcs_bmi = 32 and pcs_bmi[1] < 9):
+		$body = $bodimgsets[bodset * 10 + 5]
+	elseif pcs_bmi < 36 or (pcs_bmi = 36 and pcs_bmi[1] < 4):
+		$body = $bodimgsets[bodset * 10 + 6]
 	else
 		$body = $bodimgsets[bodset * 10 + 7]
 	end

+ 184 - 243
locations/booty_call_sms.qsrc

@@ -1,47 +1,25 @@
 # booty_call_sms
 
-!!=====   Layout stuff   =====================================================================================!!
-!! Open and close receiving text
-$SMS_open_receiving = '<table width=80%><tr><td collspan=2 bgcolor="#D4CEF9"><font color=black>'
-$SMS_close_receiving = '</font></td><td width=10%></td></tr></table>'
+!=====   Reply example here ==================================================================================!
 
-!! Open and close sending text
-$SMS_open_sending = '<table width=80%><tr><td width=10%></td><td collspan=2 bgcolor=pink><font color=black>'
-$SMS_close_sending = '</font></td></tr></table>'
+!	gs 'SMStext_builder', 'add_reply', [$text], [$location], [$args0], [$args1], [$args2], ...
+!	examples:
+!		gs 'SMStext_builder', 'add_reply', 'No, I do''t want to come over', 'booty_call_sms', 'Choice_a', $ARGS[1], $ARGS[2]
+!		gs 'SMStext_builder', 'add_reply', 'Good luck!', 'band_tour_anushka_SMS', 'Week1', 'Choice_a'
 
-!! Start reply
-$SMS_open_replies = '<table><tr><th> Reply</th></tr><tr><td>'
-$SMS_next_reply = '</td></tr><tr><td>'
-$SMS_close_replies = '</td></tr></table>'
-!!=====   END Layout stuff   =====================================================================================!!
+!=============================================================================================================!
 
 
+!=====   Adding Images to SMS ================================================================================!
 
-
-!!=====   Reply example here =================================================================================!!
-
-!!  $temp_SMStext += $SMS_open_replies
-!!  	$temp_SMStext += '<a href="exec: gs ''>>Name of the location<<'', ''>>Name of the SMS Branch<<'', ''>>Name of the Choice<<'', telefon[''SMSid'']">' + 'TEXT' + '</a>'
-!!  	$temp_SMStext += $SMS_next_reply
-!!  	$temp_SMStext += '<a href="exec: gs ''>>Name of the location<<'', ''>>Name of the SMS Branch<<'', ''>>Name of the Choice<<'', telefon[''SMSid'']">' + 'TEXT' + '</a>'
-!!  	....
-!!  $temp_SMStext += $SMS_close_replies
-
-!!=====   END Reply example here =================================================================================!!
-
-
-!!=====   Adding Images to SMS ===============================================================================!!
-
-!!    You can add images at the end by manually setting:
-!!    $SMSPicture1[telefon['SMSid']] = Path to picture 1
-!!    $SMSPicture2[telefon['SMSid']] = Path to picture 2
-!!    $SMSPicture3[telefon['SMSid']] = Path to picture 3
-!!    $SMSPicture4[telefon['SMSid']] = Path to picture 4
+!	You can add images at the end of the text by using:
+!	gs 'SMStext_builder', 'add_sms', $npc_code, $imagepath1, $imagepath2, $imagepath3, $imagepath4
+!	gs 'SMStext_builder', 'add_sms', SMSid, $imagepath1, $imagepath2, $imagepath3, $imagepath4
+!			SMSid is the final ARGS passed to this file (here ARGS[3])
 
 ! You can also always add a picture to the text, scaling is an issue though
 
-
-!!=====   END Adding Images to SMS ===============================================================================!!
+!=============================================================================================================!
 
 
 
@@ -72,7 +50,7 @@ if $ARGS[0] = 'default_booty_call':
 
 				!! player response 1 option 1
 				$SMSTree['a3'] = 'what were you thinking about?'
-	
+
 					!! boy response 1
 					if npc_finance[$ARGS[1]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[1]] >= 3:
 						$SMSTree['a4'] = 'i booked a hotel room in Pav. why dont you come by?'
@@ -231,22 +209,22 @@ end
 if $ARGS[0] = 'std_free':
 	!! boy
 	$SMSTree['0'] = dyneval('$result=''hey <<$pcs_nickname>>'' ')
-	
+
 		!! player
 		$SMSTree['1'] = dyneval('$result=''hey <<$npc_nickname[$ARGS[1]]>>'' ')
-	
+
 			!! boy
 			$SMSTree['2'] = 'got some good news'
-	
+
 				!! player response 1 option 1
 				$SMSTree['a3'] = 'oh?'
-	
+
 					!! boy response 1
 					$SMSTree['a4'] = 'my std test came back clean. why dont we celebrate tog'
-	
+
 				!! player response 1 option 2
 				$SMSTree['b3'] = 'what is it?'
-	
+
 					!! boy response 2
 					$SMSTree['b4'] = 'my std test came back clean'
 
@@ -259,15 +237,15 @@ if $ARGS[0] = 'std_free':
 							$SMSTree['aa5'] = 'its late. text me sooner if you want me to come over.'
 							$SMSTree['ba5'] = $SMSTree['aa5']
 						end
-	
+
 							!! boy response 2 option 1
 							$SMSTree['aa6'] = 'shit, maybe next time then'
 							$SMSTree['ba6'] = $SMSTree['aa6']
-	
+
 						!! player response 2 option 2
 						$SMSTree['ab5'] = 'ill come right now ;)'
 						$SMSTree['bb5'] = $SMSTree['ab5']
-	
+
 							!! boy response 2 option 2
 							if npc_humor[$ARGS[1]] <= 1 and rand(0,1) = 1:
 								$SMSTree['ab6'] = 'im already hard'
@@ -290,16 +268,16 @@ if $ARGS[0] = 'std_free':
 end
 
 
-if $ARGS[0] = 'sugar_daddy_booty_call':	
+if $ARGS[0] = 'sugar_daddy_booty_call':
 	!! boy
 	$SMSTree['0'] = dyneval('$result=''hey <<$pcs_nickname>>'' ')
-		
+
 		!! player
 		$SMSTree['1'] = dyneval('$result=''hey <<$npc_nickname[$ARGS[1]]>>'' ')
-	
+
 			!! boy
 			$SMSTree['2'] = 'ive been thinking about you'
-	
+
 				!! player response 1 option 1
 				$SMSTree['a3'] = 'what were you thinking about?'
 
@@ -333,7 +311,7 @@ if $ARGS[0] = 'sugar_daddy_booty_call':
 						!! player response 2 option 2
 						$SMSTree['ab5'] = 'ill come right now ;)'
 						$SMSTree['bb5'] = $SMSTree['ab5']
-							
+
 							!! boy response 2 option 2
 							if ($home['current'] = 'parents_home' or $home['current'] = 'meynold_household' or $home['current'] = 'shared_apartment') and npc_residence[$ARGS[1]] >= 3:
 								$SMSTree['ab6'] = 'room <<rand(1,3)>><<rand(10,19)>>'
@@ -360,12 +338,11 @@ end
 if $ARGS[0] = 'Add SMS':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''SMS_Base'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['1'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-
-	gs 'telefon', 'add_sms', $ARGS[2], $temp_SMStext
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['1'], 'booty_call_sms', 'SMS_Base', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_sms', $ARGS[2]
+	gs 'SMStext_builder', 'end'
 end
 
 
@@ -373,96 +350,81 @@ if $ARGS[0] = 'SMS_Base':
 !if $ARGS[0] = 'V0':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
-
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_a'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['a3'] + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_b'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['b3'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-	gs 'telefon', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 500
+
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a3'], 'booty_call_sms', 'Choice_a', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b3'], 'booty_call_sms', 'Choice_b', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 end
 
 
 if $ARGS[0] = 'Choice_a':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['a3'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
-
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['a4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_aa'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['aa5'] + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_ab'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['ab5'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-end
-
-if $ARGS[0] = 'Choice_aa':
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['a3']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 500
+
+		gs 'SMStext_builder', 'receive', $SMSTree['a4']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['aa5'], 'booty_call_sms', 'Choice_aa', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['ab5'], 'booty_call_sms', 'Choice_ab', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
+
+elseif $ARGS[0] = 'Choice_aa':
 	!! booty call is declined
 	
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['a3'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['a4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['aa5'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-
-	if sugar_daddy_call[$ARGS[2]] = 1:
-		npc_rel[$ARGS[2]] -= 2
-		sugar_daddy_call[$ARGS[2]] = 0
-	end
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['a3']
+		gs 'SMStext_builder', 'receive', $SMSTree['a4']
+		gs 'SMStext_builder', 'send', $SMSTree['aa5']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-	wait 500
+		if sugar_daddy_call[$ARGS[2]] = 1:
+			npc_rel[$ARGS[2]] -= 2
+			sugar_daddy_call[$ARGS[2]] = 0
+		end
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['aa6'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+		wait 500
 
-	gs 'telefon', 'show_sms', ARGS[3]
-end
+		gs 'SMStext_builder', 'receive', $SMSTree['aa6']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-if $ARGS[0] = 'Choice_ab':
+elseif $ARGS[0] = 'Choice_ab':
 	!! booty call is accepted
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['a3'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['a4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['ab5'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['a3']
+		gs 'SMStext_builder', 'receive', $SMSTree['a4']
+		gs 'SMStext_builder', 'send', $SMSTree['ab5']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['ab6'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+		wait 500
 
-	gs 'telefon', 'show_sms', ARGS[3]
+		gs 'SMStext_builder', 'receive', $SMSTree['ab6']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
 	booty_call_invite[$ARGS[2]] = daystart
 	if npc_finance[$ARGS[2]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[2]] >= 3:
@@ -478,76 +440,65 @@ end
 if $ARGS[0] = 'Choice_b':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b3'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
-
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_ba'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['ba5'] + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice_bb'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['bb5'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-end
-
-
-
-if $ARGS[0] = 'Choice_ba':
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['b3']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+		wait 500
+
+		gs 'SMStext_builder', 'receive', $SMSTree['b4']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['ba5'], 'booty_call_sms', 'Choice_ba', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['bb5'], 'booty_call_sms', 'Choice_bb', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
+
+elseif $ARGS[0] = 'Choice_ba':
 	!! booty call is declined
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b3'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['ba5'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	if sugar_daddy_call[$ARGS[2]] = 1:
-		npc_rel[$ARGS[2]] -= 2
-		sugar_daddy_call[$ARGS[2]] = 0
-	end
-	wait 500
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['b3']
+		gs 'SMStext_builder', 'receive', $SMSTree['b4']
+		gs 'SMStext_builder', 'send', $SMSTree['ba5']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
+		if sugar_daddy_call[$ARGS[2]] = 1:
+			npc_rel[$ARGS[2]] -= 2
+			sugar_daddy_call[$ARGS[2]] = 0
+		end
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['ba6'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+		wait 500
 
-	gs 'telefon', 'show_sms', ARGS[3]
-end
+		gs 'SMStext_builder', 'receive', $SMSTree['ba6']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-if $ARGS[0] = 'Choice_bb':
+elseif $ARGS[0] = 'Choice_bb':
 	!! booty call is accepted
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b3'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b4'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['bb5'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['1']
+		gs 'SMStext_builder', 'receive', $SMSTree['2']
+		gs 'SMStext_builder', 'send', $SMSTree['b3']
+		gs 'SMStext_builder', 'receive', $SMSTree['b4']
+		gs 'SMStext_builder', 'send', $SMSTree['bb5']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
-	
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['bb6'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+		wait 500
 
+		gs 'SMStext_builder', 'receive', $SMSTree['bb6']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-	gs 'telefon', 'show_sms', ARGS[3]
 	booty_call_invite[$ARGS[2]] = daystart
 !!	if ($home['current'] = 'parents_home' or $home['current'] = 'meynold_household' or $home['current'] = 'shared_apartment') and npc_residence[$SMSContact[ARGS[1]]] >= 3: 
 	if npc_finance[$ARGS[2]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[2]] >= 3:
@@ -565,25 +516,23 @@ end
 if $ARGS[0] = 'Add SMS2':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice2_a'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['a1'] + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice2_b'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['b1'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-
-	gs 'telefon', 'add_sms', $ARGS[2], $temp_SMStext
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['a1'], 'booty_call_sms', 'Choice2_a', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['b1'], 'booty_call_sms', 'Choice2_b', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_sms', $ARGS[2]
+	gs 'SMStext_builder', 'end'
 end
 
 
 if $ARGS[0] = 'Choice2_a':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['a1'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['a1']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 end
 
 
@@ -591,69 +540,63 @@ end
 if $ARGS[0] = 'Choice2_b':
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b1'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['b1']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice2_ba'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['ba3'] + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''booty_call_sms'', ''Choice2_bb'', ''<<$ARGS[1]>>'', ''<<$ARGS[2]>>'', telefon[''SMSid'']">' + $SMSTree['bb3'] + '</a>'
-	$temp_SMStext += $SMS_close_replies
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-end
+		wait 500
 
+		gs 'SMStext_builder', 'receive', $SMSTree['b2']
+		gs 'SMStext_builder', 'add_reply', $SMSTree['ba3'], 'booty_call_sms', 'Choice2_ba', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'add_reply', $SMSTree['bb3'], 'booty_call_sms', 'Choice2_bb', $ARGS[1], $ARGS[2]
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-
-if $ARGS[0] = 'Choice2_ba':
+elseif $ARGS[0] = 'Choice2_ba':
 	!! booty call is declined
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
 
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['ba3'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	if sugar_daddy_call[$ARGS[2]] = 1:
-		npc_rel[$ARGS[2]] -= 2
-		sugar_daddy_call[$ARGS[2]] = 0
-	end
-	wait 500
-
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['b1']
+		gs 'SMStext_builder', 'receive', $SMSTree['b2']
+		gs 'SMStext_builder', 'send', $SMSTree['ba3']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
 
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['ba4'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
+		if sugar_daddy_call[$ARGS[2]] = 1:
+			npc_rel[$ARGS[2]] -= 2
+			sugar_daddy_call[$ARGS[2]] = 0
+		end
+		wait 500
 
-	gs 'telefon', 'show_sms', ARGS[3]
-end
+		gs 'SMStext_builder', 'receive', $SMSTree['ba4']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-if $ARGS[0] = 'Choice2_bb':
+elseif $ARGS[0] = 'Choice2_bb':
 	!! booty call is accepted
 
 	gs 'booty_call_sms', $ARGS[1], $ARGS[2]
-	$temp_SMStext  = $SMS_open_receiving + $SMSTree['0'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['b1'] + $SMS_close_sending
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['b2'] + $SMS_close_receiving
-	$temp_SMStext += $SMS_open_sending + $SMSTree['bb3'] + $SMS_close_sending
-	$SMSMessage[ARGS[3]] = $temp_SMStext
-
-	gs 'telefon', 'show_sms', ARGS[3]
-	wait 500
-	
-	$temp_SMStext += $SMS_open_receiving + $SMSTree['bb4'] + $SMS_close_receiving
-	$SMSMessage[ARGS[3]] = $temp_SMStext
 
+	gs 'SMStext_builder', 'start'
+		gs 'SMStext_builder', 'receive', $SMSTree['0']
+		gs 'SMStext_builder', 'send', $SMSTree['b1']
+		gs 'SMStext_builder', 'receive', $SMSTree['b2']
+		gs 'SMStext_builder', 'send', $SMSTree['bb3']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+
+		if sugar_daddy_call[$ARGS[2]] = 1:
+			npc_rel[$ARGS[2]] -= 2
+			sugar_daddy_call[$ARGS[2]] = 0
+		end
+		wait 500
+
+		gs 'SMStext_builder', 'receive', $SMSTree['bb4']
+		gs 'SMStext_builder', 'show_sms', ARGS[3]
+	gs 'SMStext_builder', 'end'
 
-	gs 'telefon', 'show_sms', ARGS[3]
 	booty_call_invite[$ARGS[2]] = daystart
 !!	if ($home['current'] = 'parents_home' or $home['current'] = 'meynold_household' or $home['current'] = 'shared_apartment') and npc_residence[$SMSContact[ARGS[1]]] >= 3: 
 	if npc_finance[$ARGS[2]] = 2 and func('homes_properties_attr', 'get_property_attribute', '$town', $home['current']) ! 'city' and npc_residence[$ARGS[2]] >= 3:
@@ -666,9 +609,7 @@ end
 
 
 if $ARGS[0] ! 'default_booty_call' and $ARGS[0] ! 'pre_planned_booty_call' and $ARGS[0] ! 'std_free' and $ARGS[0] ! 'sugar_daddy_booty_call':
-	killvar '$trialSMS'
 	killvar '$SMSTree'
-	killvar '$temp_SMStext'
 end
 
 --- hookup_sms ---------------------------------

+ 6 - 1
locations/cikl.qsrc

@@ -720,7 +720,12 @@ if shantbog > 0:
 end
 
 petersexday = 0
-klismaday1 = 0
+if cheatKlisma = 0:
+	klismaday = daystart
+	klismaday1 = 1
+else
+	klismaday1 = 0
+end
 
 !!ugly duckling start becoming a swan
 if uglyduck_flag = 1 and hotcat >= 5:

+ 4 - 6
locations/clothing.qsrc

@@ -1,5 +1,6 @@
 # clothing
 !!2021/05/06
+
 menu_off = 1
 
 $clothing_list_line = {
@@ -1926,16 +1927,13 @@ if $ARGS[0] = 'wear':
 end
 
 if $ARGS[0] = 'exposure_calc':
-	CoverTop = (PCloCoverTop + PBraCover)
-	CoverTop = CoverTop - 4
+	CoverTop = (PCloCoverTop + PBraCover) - 4
 	if CoverTop < 0: CoverTop = 0
 
-	CoverBack = (PCloCoverBack + PPanCoverBack)
-	CoverBack = CoverBack - 4
+	CoverBack = (PCloCoverBack + PPanCoverBack) - 4
 	if CoverBack < 0: CoverBack = 0
 
-	CoverFront = (PCloCoverFront + PPanCoverFront)
-	CoverFront = CoverFront - 4
+	CoverFront = (PCloCoverFront + PPanCoverFront) - 4
 	if CoverFront < 0: CoverFront = 0
 end
 

+ 1 - 1
locations/din_bad.qsrc

@@ -333,7 +333,7 @@ $din_Table_Condom_Menu = {
 !! mc_inventory['equipped_condoms']: Total number of condoms sveta is using (normal or damaged).
 !! mc_inventory['normal_condoms']: Number of normal condoms sveta isn''t using.
 !! mc_inventory['sabotaged_condoms']: Number of damaged condoms seveta isn''t using.
-!! preziktyp: 0 - Use condoms / 1 - don''t use condoms / 2 - use damaged condoms
+!! preziktype: 0 - Use condoms / 1 - don''t use condoms / 2 - use damaged condoms
 !! to check if sveta wants to use a condom use if mc_inventory['equipped_condoms'] > 0:
 
 $din_Do_Condom_Counts = {

+ 1 - 1
locations/gschool_events.qsrc

@@ -601,7 +601,7 @@ if $ARGS[0] = 'break_events':
 	elseif break_rand = 12 and hotcat > 5 and PCloSkirt > 0:
 		cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/events/skirtpulledup.jpg"></center>'
-		if func('pcs_has_attr', 'body_ass_big') or func('pcs_has_attr', 'body_ass_bubble'):
+		if func('pcs_has_attr', 'OR', 'body_ass_big', 'body_ass_bubble'):
 			'As you walk down the hallway, you feel someone moving in behind you and quickly pulling your skirt up. Your skirt is barely in the air before you feel a hand firmly squeezing your ass. As you move to turn around, the hand quickly pulls away. You can tell from his admiring expression that Lazar was the one groping your ass. All the workouts you''ve been doing have made your ass big and firm enough to impress him.'
 		else
 			'As you walk down the hallway, you feel someone moving in behind you and quickly pulling your skirt up. Your skirt is barely in the air before you feel hands pawing at your ass. As you move to turn around, the hand quickly pulls away. You can tell from his disappointed expression that Lazar was the one groping your ass. Perhaps he was expecting something firmer after hanging out with the athletic girls so much? Maybe you should work out more...'

+ 13 - 41
locations/indiktab.qsrc

@@ -15,8 +15,7 @@ if Enable_Android = 1:
 else
 	$vbcolor = '#d0d0d0'
 end
-
-$vfcolor='rgb(<<(16777216 + bcolor) mod 256>>,<<(16777216 + bcolor)/256 mod 256>>,<<(16777216 + bcolor)/65536>>)'
+$vbcolor = $bcolor
 
 if $ARGS[0] = '1':
 	if Enable_Android = 1:
@@ -42,9 +41,6 @@ if $ARGS[0] = '1':
 			$vcolor = 'red'
 		end
 	end
-	if ap = 0: $vcolor = $vbcolor
-	if ap = 100: $vbcolor = $vcolor
-	$result = '<TABLE  cellpadding="0" cellspacing="0" width="220"><TR><TD bgcolor="<<$vcolor>>" width="<<apc>>%"></TD><TD bgcolor="<<$vbcolor>>" width="<<apg>>%"></TD><TD width="40" align="right"><<ar>></TD></TR></TABLE>'
 end
 
 if $ARGS[0] = '2':
@@ -83,49 +79,25 @@ if $ARGS[0] = '2':
 			$vcolor = '#998080'
 		end
 	end
-	if ap = 0: $vcolor = $vbcolor
-	if ap = 100: $vbcolor = $vcolor
-	$result = '<font color="<<$vfcolor>>"><TABLE  cellpadding="0" cellspacing="0" width="220"><TR><TD bgcolor="<<$vcolor>>" width="<<apc>>%"></TD><TD bgcolor="<<$vbcolor>>" width="<<apg>>%"></TD><TD width="40" align="right"><<ar>></TD></TR></TABLE></font>'
 end
-if $ARGS[0] = '3':
-	ap = ar
-	if Enable_Android = 1:
-		if ap  >= 130:
-			$vcolor = 'green'
-		elseif ap >= 70:
-			$vcolor = 'blue'
-		else
-			$vcolor = 'red'
-		end
-	else
-		if ap < 20:
-			$vcolor = '#b3b300'
-		elseif ap < 60:
-			$vcolor = '#00CED1'
-		elseif ap <= 140:
-			$vcolor = 'blue'
-		elseif ap <= 180:
-			$vcolor = '#00CED1'
-		else
-			$vcolor = '#b3b300'
-		end
-	end
-	if ap < 100:
-		ap = (100-ap)/2
-		apg = 50 - ap
-		$result = '<TABLE  cellpadding="0" cellspacing="0" width="220"><TR><TD bgcolor="<<$vbcolor>>" width="<<apg>>%"></TD><TD bgcolor="<<$vcolor>>" width="<<ap>>%"></TD><TD bgcolor="<<$vbcolor>>" width="50%"><<$ARGS[3]>></TD><TD width="40" align="right">-<<100-ar>></TD></TR></TABLE>'
-	else
-		ap = (ap - 100)/2
-		apg = 50 - ap
-		$result = '<TABLE  cellpadding="0" cellspacing="0" width="220"><TR><TD bgcolor="<<$vbcolor>>" width="50%"><<$ARGS[3]>></TD><TD bgcolor="<<$vcolor>>" width="<<ap>>%"></TD><TD bgcolor="<<$vbcolor>>" width="<<apg>>%"></TD><TD width="40" align="right"><<ar-100>></TD></TR></TABLE>'
-	end
+
+if ap = 0: $vcolor = $vbcolor
+if ap = 100: $vbcolor = $vcolor
+$result = '<TABLE  cellpadding="1" cellspacing="0" width="255"><TR>'
+if ap > 20:
+	$result += '<TD bgcolor="<<$vcolor>>" width="<<apc>>%" align="right"><font color ="<<$fcolor>>"><<ar>></font>&nbsp;</TD>'
+	$result += '<TD bgcolor="<<$vbcolor>>" width="<<apg>>%"></font></TD>'
+else
+	$result += '<TD bgcolor="<<$vcolor>>" width="<<apc>>%"></TD>'
+	$result += '<TD bgcolor="<<$vbcolor>>" width="<<apg>>%" align="left">&nbsp;<font color ="<<$fcolor>>"><<ar>></TD>'
 end
+$result += '</TR></TABLE>'
+
 killvar 'ap'
 killvar 'ar'
 killvar 'apg'
 killvar 'apc'
 killvar '$vcolor'
-killvar '$vfcolor'
 
 --- indiktab ---------------------------------
 

+ 29 - 29
locations/intro_customization.qsrc

@@ -35,79 +35,79 @@ if $ARGS[0] = 'modapp':
 	if pcs_mass['bust_gen'] = 2:
 		'Very small - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 2 & gt ''intro_customization'',''modapp''">Very small</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 2 & gt ''intro_customization'', ''modapp''">Very small</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 7:
 		'Below average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 7 & gt ''intro_customization'',''modapp''">Below average</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 7 & gt ''intro_customization'', ''modapp''">Below average</a>'
 	end
 	
 	if pcs_mass['bust_gen'] = 12:
 		'Average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 12 & gt ''intro_customization'',''modapp''">Average</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 12 & gt ''intro_customization'', ''modapp''">Average</a>'
 	end
 	
 	if pcs_mass['bust_gen'] = 17:
 		'Above average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 17 & gt ''intro_customization'',''modapp''">Above average</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 17 & gt ''intro_customization'', ''modapp''">Above average</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 22:
 		'Large - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 22 & gt ''intro_customization'',''modapp''">Large</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 22 & gt ''intro_customization'', ''modapp''">Large</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 27:
 		'Extra large - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 27 & gt ''intro_customization'',''modapp''">Extra large</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 27 & gt ''intro_customization'', ''modapp''">Extra large</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 32:
 		'Really big - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 32 & gt ''intro_customization'',''modapp''">Really big</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 32 & gt ''intro_customization'', ''modapp''">Really big</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 37:
 		'Massive - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 37 & gt ''intro_customization'',''modapp''">Massive</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 37 & gt ''intro_customization'', ''modapp''">Massive</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 42:
 		'Getting silly - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 42 & gt ''intro_customization'',''modapp''">Getting silly</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 42 & gt ''intro_customization'', ''modapp''">Getting silly</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 47:
 		'Crazy big - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 47 & gt ''intro_customization'',''modapp''">Crazy big</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 47 & gt ''intro_customization'', ''modapp''">Crazy big</a>'
 	end
 
 	if pcs_mass['bust_gen'] = 57:
 		'Freakishly big - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 57 & gt ''intro_customization'',''modapp''">Freakishly big</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 57 & gt ''intro_customization'', ''modapp''">Freakishly big</a>'
 	end
 	
 	if pcs_mass['bust_gen'] = 67:
 		'Will struggle to open doors or see the ground big - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 67 & gt ''intro_customization'',''modapp''">Will struggle to open doors or see the ground big</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 67 & gt ''intro_customization'', ''modapp''">Will struggle to open doors or see the ground big</a>'
 	end
 	
 	if pcs_mass['bust_gen'] = 87:
 		'You''ve been eclipsed by 2 small moons - Currently set'
 	else
-		'<a href="exec:pcs_mass[''bust_gen''] = 87 & gt ''intro_customization'',''modapp''">You''ve been eclipsed by 2 small moons</a>'
+		'<a href="exec:pcs_mass[''bust_gen''] = 87 & gt ''intro_customization'', ''modapp''">You''ve been eclipsed by 2 small moons</a>'
 	end
 	*nl
 	*nl
@@ -116,53 +116,53 @@ if $ARGS[0] = 'modapp':
 	if pcs_mass['butt_gen'] = 2:
 		'Flat - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 2 & gt ''intro_customization'',''modapp''">Flat</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 2 & gt ''intro_customization'', ''modapp''">Flat</a>'
 	end
 
 	if pcs_mass['butt_gen'] = 7:
 		'Mostly Flat - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 7 & gt ''intro_customization'',''modapp''">Mostly Flat</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 7 & gt ''intro_customization'', ''modapp''">Mostly Flat</a>'
 	end
 	
 	if pcs_mass['butt_gen'] = 12:
 		'Small - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 12 & gt ''intro_customization'',''modapp''">Small</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 12 & gt ''intro_customization'', ''modapp''">Small</a>'
 	end
 	
 	if pcs_mass['butt_gen'] = 17:
 		'Below Average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 17 & gt ''intro_customization'',''modapp''">Below Average</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 17 & gt ''intro_customization'', ''modapp''">Below Average</a>'
 	end
 
 	if pcs_mass['butt_gen'] = 22:
 		'Average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 22 & gt ''intro_customization'',''modapp''">Average</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 22 & gt ''intro_customization'', ''modapp''">Average</a>'
 	end
 
 	if pcs_mass['butt_gen'] = 27:
 		'Above Average - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 27 & gt ''intro_customization'',''modapp''">Above Average</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 27 & gt ''intro_customization'', ''modapp''">Above Average</a>'
 	end
 
 	if pcs_mass['butt_gen'] = 32:
 		'Big - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 32 & gt ''intro_customization'',''modapp''">Big</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 32 & gt ''intro_customization'', ''modapp''">Big</a>'
 	end
 
 	if pcs_mass['butt_gen'] = 37:
 		'Massive - Currently set'
 	else
-		'<a href="exec:pcs_mass[''butt_gen''] = 37 & gt ''intro_customization'',''modapp''">Massive</a>'
+		'<a href="exec:pcs_mass[''butt_gen''] = 37 & gt ''intro_customization'', ''modapp''">Massive</a>'
 	end
 
 
-	act 'Body fat (<<pcs_mass[''body'']>>/200)':  gs 'intro_customization','setbodymass' & pcs_mass['body'] = nstat & gt 'intro_customization','modapp'
+	act 'Body fat (<<pcs_mass[''body'']>>/200)':  gs 'intro_customization', 'setbodymass' & pcs_mass['body'] = nstat & gt 'intro_customization', 'modapp'
 	act 'Return': gt'intro_customization','start'
 end
 
@@ -391,11 +391,11 @@ end
 !!This is used to set value, is used to avoid any values that go below 5.
 if $ARGS[0] = 'setval':
 	nstat = 0
-	nstat = input 'Enter value in multiples of 5. For example, 5, 10, 15 etc.'
-	if nstat > 100:
+	nstat = input 'Enter value in multiples of 5, between 10 and 150. For example, 10, 15, 60 etc.'
+	if nstat > 150:
 		msg 'Please enter a value less than or equal to 100'
 		gs 'intro_customization', 'setval'
-	elseif nstat < 5:
+	elseif nstat < 10:
 		msg 'Please enter a value greater than or equal to 5'
 		gs 'intro_customization', 'setval'
 	elseif nstat mod 5 ! 0:
@@ -454,15 +454,15 @@ if $ARGS[0] = 'setbodymass':
 	'105 = fat, heavy set'
 
 	nstat = pcs_mass['body']
-	nstat = input 'Enter value in multiples of 5, between 15 and 150. For example, 15, 20, 60 etc.'
+	nstat = input 'Enter value in multiples of 5, between 10 and 150. For example, 10, 15, 60 etc.'
 	if nstat > 150:
 		msg 'Please enter a value less than 150'
 		gs 'intro_customization', 'setval'
-	elseif nstat < 15:
-		msg 'Please enter a value greater than 15'
+	elseif nstat < 10:
+		msg 'Please enter a value greater than 10'
 		gs 'intro_customization', 'setval'
 	elseif nstat mod 5 ! 0:
-		msg 'Please enter a value in multiples of 20'
+		msg 'Please enter a value in multiples of 5'
 		gs 'intro_customization', 'setval'
 	else
 		exit

+ 7 - 7
locations/item_cart.qsrc

@@ -13,7 +13,8 @@ if $ARGS[0] = 'shoppping_aisle':
 	*p '<center><table border=5 cellspacing=0 cellpadding=5 bgcolor='+$bcolor+' width="80%"><TR><TH>Item</TH><TH>You own</TH><TH>Units/pack</TH><TH>Cost in <b>₽</b></TH><TH colspan="2" width="12%">Remove 10/1</TH><TH width="8%">In cart</TH><TH colspan="2" width="12%">Add 1/10</TH></TR>'
 
 	!! Table Rows
-	$temp_image_color = iif(theme['is_dark'] = 1, '_w', '_b')
+	$icon_selector = iif(theme['is_dark'] = 0, '_b', '_w')
+	icon_height = fsize * 15 / 10
 	i = 1
 	:loopshopping_cart
 		!! if item is uninitialized (has blank name) - skip it
@@ -27,15 +28,15 @@ if $ARGS[0] = 'shoppping_aisle':
 		$item_line += '<TD><<quantity_curr_aisle[''<<i>>'']>></TD>'
 		$item_line += '<TD><<cost_curr_aisle[''<<i>>'']>></TD>'
 		if cart_curr_quantity['<<i>>'] > 0:
-			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''remove'', <<i>>, 10"><img src="images/system/image_needed.png" height="<<fsize+2>>"></a></TD>'
-			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''remove'', <<i>>, 1"><img src="images/system/image_needed.png" height="<<fsize+2>>"></a></TD>'
+			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''remove'', <<i>>, 10"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></a></TD>'
+			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''remove'', <<i>>, 1"><img src="images/system/ui/less<<$icon_selector>>.png" height="<<icon_height>>"></a></TD>'
 		else
 			$item_line += '<TD></TD><TD></TD>'
 		end
 		$item_line += '<TD align="center"><<cart_curr_quantity[''<<i>>'']>></TD>'
 		if max_curr_aisle['<<i>>'] > cart_curr_quantity['<<i>>'] + mc_inventory['<<$cart_tmp>>'] or max_curr_aisle['<<i>>'] = 0:
-			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''add'', <<i>>, 1"><img src="images/system/image_needed.png" height="<<fsize+2>>"></a></TD>'
-			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''add'', <<i>>, 10"><img src="images/system/image_needed.png" height="<<fsize+2>>"></a></TD>'
+			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''add'', <<i>>, 1"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></a></TD>'
+			$item_line += '<TD align="center" width="6%"><a href="exec:gt ''item_cart'', ''add'', <<i>>, 10"><img src="images/system/ui/more<<$icon_selector>>.png" height="<<icon_height>>"></a></TD>'
 		else
 			$item_line += '<TD align="center" colspan="2" width="6%">Max</TD>'
 		end
@@ -45,8 +46,7 @@ if $ARGS[0] = 'shoppping_aisle':
 	if i <= item_idx:jump 'loopshopping_cart'
 	'</table></center>'
 	
-	killvar '$temp_bcolor'
-	killvar '$temp_image_color'
+	killvar '$temp_bcolor' & killvar '$icon_selector' & killvar 'icon_height'
 
 	!! Checkout
 	gs 'item_cart', 'cart_total'

+ 1 - 1
locations/journal.qsrc

@@ -618,7 +618,7 @@ if $ARGS[0] = 'uni':
 		*nl
 		'You need to register for your next semester at the university administration'
 
-	elseif university['semester_week'] <= 0 and university['exam_week'] = 0:
+	elseif university['break'] = 1:
 		*nl
 		'You currently have a break between semesters.'
 		if university['semester_week'] = -1:

+ 95 - 128
locations/nerd_game_night.qsrc

@@ -1468,57 +1468,43 @@ end
 
 
 if $ARGS[0] = 'summer_invite_sms':
-	$SMS_open_receiving = '<table width=80%><tr><td collspan=2 bgcolor="#D4CEF9"><font color=black>'
-	$SMS_close_receiving = '</font></td><td width=10%></td></tr></table>'
-
-	!! Open and close sending text
-	$SMS_open_sending = '<table width=80%><tr><td width=10%></td><td collspan=2 bgcolor=pink><font color=black>'
-	$SMS_close_sending = '</font></td></tr></table>'
-
-	!! Start reply
-	$SMS_open_replies = '<table><tr><th> Reply</th></tr><tr><td>'
-	$SMS_next_reply = '</td></tr><tr><td>'
-	$SMS_close_replies = '</td></tr></table>'
-	
-	$temp_SMStext = ''
 
 	if $ARGS[1] = 'Add SMS':
 		nerd_game['lot'] = func('shortgs', 'rand_pick', '', 12, 13, 14, 23, 24, 34)
-		nerd_game['invite_day'] = daystart
 	end
 
 	$temp_start_text = ''
 	if nerd_game['first_SMS_received'] = 0:
-		$temp_start_text = 'Hey <<$pcs_nickname>> this is Feofan. We do a weekly game night, mostly playing Dungeons and Dragons and board games. I was talking to the others and we were wondering if you would like to join us? We have a few nights free this week and were wondering which one works best for you. We can do it either on <<$week[val(mid(nerd_game[''lot''],1,1))]>> or <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
+		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>> this is Feofan. We do a weekly game night, mostly playing Dungeons and Dragons and board games. I was talking to the others and we were wondering if you would like to join us? We have a few nights free this week and were wondering which one works best for you. We can do it either on <<$week[val(mid(nerd_game[''lot''],1,1))]>> or <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
 	else
-		$temp_start_text = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night? We have a few nights free this week and were wondering which one works best for you. We can do it either on <<$week[val(mid(nerd_game[''lot''],1,1))]>> or <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
+		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night? We have a few nights free this week and were wondering which one works best for you. We can do it either on <<$week[val(mid(nerd_game[''lot''],1,1))]>> or <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
 	end
-	
-	$SMSTree[ '0'] = $temp_start_text
 
-		$SMSTree['a1'] = 'Sorry, but I''m just not interested in stuff like that. Thanks for the invite though.'
-			$SMSTree['a2'] = ':-( Oh... okay yeah I get it. Guess we''ll see you around.'
+		$SMSTree['ca1'] = 'Not interested'
+			$SMSTree['a1'] = 'Sorry, but I''m just not interested in stuff like that. Thanks for the invite though.'
+				$SMSTree['a2'] = ':-( Oh... okay yeah I get it. Guess we''ll see you around.'
+
+		$SMSTree['cb1'] = '<<$week[val(mid(nerd_game[''lot''],1,1))]>>'
+			$SMSTree['b1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],1,1))]>>.'
+				$SMSTree['b2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],1,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+
+		$SMSTree['cc1'] = '<<$week[val(mid(nerd_game[''lot''],2,1))]>>'
+			$SMSTree['c1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
+				$SMSTree['c2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],2,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
-		$SMSTree['b1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],1,1))]>>.'
-			$SMSTree['b2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],1,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
-		$SMSTree['c1'] = 'Sure, I can make it on <<$week[val(mid(nerd_game[''lot''],2,1))]>>.'
-			$SMSTree['c2'] = ':-) Great! I''ll see you on <<$week[val(mid(nerd_game[''lot''],2,1))]>> at 20:00 in the library then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
-	
-	killvar '$temp_start_text'
-	
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-
-		$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer_invite_sms'', ''Choice_a'', telefon[''SMSid'']">' + 'Not interested' + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer_invite_sms'', ''Choice_b'', telefon[''SMSid'']">' + '<<$week[val(mid(nerd_game[''lot''],1,1))]>>' + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer_invite_sms'', ''Choice_c'', telefon[''SMSid'']">' + '<<$week[val(mid(nerd_game[''lot''],2,1))]>>' + '</a>'
-		$temp_SMStext += $SMS_close_replies
-		
-		gs 'telefon', 'add_sms', 'A152', $temp_SMStext
+		nerd_game['invite_day'] = daystart
+
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			
+			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'summer_invite_sms', 'Choice_a'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'summer_invite_sms', 'Choice_b'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'summer_invite_sms', 'Choice_c'
+
+			gs 'SMStext_builder', 'add_sms', 'A152'
+		gs 'SMStext_builder', 'end'
 	
 	elseif $ARGS[1] = 'Choice_a':
 		!! Add Feofan to the contact list if he isn''t in it yet.
@@ -1528,17 +1514,15 @@ if $ARGS[0] = 'summer_invite_sms':
 			nerd_game['first_SMS_received'] = 1
 		end
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['a1'] + $SMS_close_sending
-
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['a1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['a2'] + $SMS_close_receiving
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+			gs 'SMStext_builder', 'receive', $SMSTree['a2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 !!		nerd_game['invite_day'] = 2147483647 & ! block the event
 	
 	elseif $ARGS[1] = 'Choice_b':
@@ -1551,17 +1535,15 @@ if $ARGS[0] = 'summer_invite_sms':
 
 		nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'],1,1))
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['b1'] + $SMS_close_sending
-
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['b1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['b2'] + $SMS_close_receiving
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+			gs 'SMStext_builder', 'receive', $SMSTree['b2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 
 	elseif $ARGS[1] = 'Choice_c':
 		!! Add Feofan to the contact list if he isn''t in it yet.
@@ -1573,21 +1555,17 @@ if $ARGS[0] = 'summer_invite_sms':
 
 		nerd_game['game_day'] = daystart - week + val(mid(nerd_game['lot'],2,1))
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['c1'] + $SMS_close_sending
-
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
-
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['c2'] + $SMS_close_receiving
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['c1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
 
+			gs 'SMStext_builder', 'receive', $SMSTree['c2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 	end
 
-	killvar '$temp_SMStext'
 	killvar '$SMSTree'
 end
 
@@ -1607,39 +1585,36 @@ if $ARGS[0] = 'summer2_invite_sms':
 	$temp_SMStext = ''
 
 
-	if $ARGS[1] = 'Add SMS':
-		nerd_game['invite_day'] = daystart
-	end
-
 	if nerd_game['first_SMS_received'] = 0:
-		$temp_start_text = 'Hey <<$pcs_nickname>> this is Feofan. We are doing our weekly game night at the Coffee Hole, coffee shop now. We will mostly be playing Dungeons and Dragons and board games. I was talking to the others and we were wondering if you was going to keep playing with us? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
+		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>> this is Feofan. We are doing our weekly game night at the Coffee Hole, coffee shop now. We will mostly be playing Dungeons and Dragons and board games. I was talking to the others and we were wondering if you was going to keep playing with us? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
 	else
-		$temp_start_text = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night at the Coffee Hole? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
+		$SMSTree[ '0'] = 'Hey <<$pcs_nickname>>, would you like to join us for our weekly game night at the Coffee Hole? We have a few nights free this week and were wondering which night works best for you. We can do it either on Tuesday or Thursday.'
 	end
 
-	$SMSTree[ '0'] = $temp_start_text
-
-		$SMSTree['a1']  = 'Sorry, but I''m just not interested in stuff like that anymore. Thanks for the invite though.'
-			$SMSTree['a2'] = ':-( Oh... Okay, yeah I get it. Guess we''ll see you around.'
+		$SMSTree['ca1'] = 'Not interested'
+			$SMSTree['a1']  = 'Sorry, but I''m just not interested in stuff like that anymore. Thanks for the invite though.'
+				$SMSTree['a2'] = ':-( Oh... Okay, yeah I get it. Guess we''ll see you around.'
 
-		$SMSTree['b1'] = 'Sure, I can make it on Tuesday.'
-			$SMSTree['b2'] = ':-) Great! I''ll see you on Tuesday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+		$SMSTree['cb1'] = 'Tuesday'
+			$SMSTree['b1'] = 'Sure, I can make it on Tuesday.'
+				$SMSTree['b2'] = ':-) Great! I''ll see you on Tuesday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
-		$SMSTree['c1'] = 'Sure, I can make it on Thursday.'
-			$SMSTree['c2'] = ':-) Great! I''ll see you on Thursday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
+		$SMSTree['cc1'] = 'Thursday'
+			$SMSTree['c1'] = 'Sure, I can make it on Thursday.'
+				$SMSTree['c2'] = ':-) Great! I''ll see you on Thursday at 18:00 at the Coffee Hole then! Be ready to get your nerd on, because we''re going to rock it so hard! We also meet for board games on Saturday and Sunday if you want to show up for those.'
 
 	if $ARGS[1] = 'Add SMS':
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		
-		$temp_SMStext += $SMS_open_replies
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer2_invite_sms'', ''Choice_a'', telefon[''SMSid'']">' + 'Not interested' + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer2_invite_sms'', ''Choice_b'', telefon[''SMSid'']">' + 'Tuesday' + '</a>'
-		$temp_SMStext += $SMS_next_reply
-		$temp_SMStext += '<a href="exec: gs ''nerd_game_night'', ''summer2_invite_sms'', ''Choice_c'', telefon[''SMSid'']">' + 'Thursday' + '</a>'
-		$temp_SMStext += $SMS_close_replies
-		
-		gs 'telefon', 'add_sms', 'A152', $temp_SMStext
+		nerd_game['invite_day'] = daystart
+
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			
+			gs 'SMStext_builder', 'add_reply', $SMSTree['ca1'], 'summer_invite_sms', 'Choice_a'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cb1'], 'summer_invite_sms', 'Choice_b'
+			gs 'SMStext_builder', 'add_reply', $SMSTree['cc1'], 'summer_invite_sms', 'Choice_c'
+
+			gs 'SMStext_builder', 'add_sms', 'A152'
+		gs 'SMStext_builder', 'end'
 
 	elseif $ARGS[1] = 'Choice_a':
 		!! Add Feofan to the contact list if he isn''t in it yet.
@@ -1649,17 +1624,15 @@ if $ARGS[0] = 'summer2_invite_sms':
 			nerd_game['first_SMS_received'] = 1
 		end
 
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['a1'] + $SMS_close_sending
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
-		
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['a2'] + $SMS_close_receiving
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['a1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
 
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+			gs 'SMStext_builder', 'receive', $SMSTree['a2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 !!		nerd_game['invite_day'] = 2147483647 & ! block the event
 
 	elseif $ARGS[1] = 'Choice_b':
@@ -1672,17 +1645,15 @@ if $ARGS[0] = 'summer2_invite_sms':
 
 		nerd_game['fixed_uni_day'] = 2
 		
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['b1'] + $SMS_close_sending
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
-		
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['b2'] + $SMS_close_receiving
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['b1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
 
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
+			gs 'SMStext_builder', 'receive', $SMSTree['b2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 
 	elseif $ARGS[1] = 'Choice_c':
 		!! Add Feofan to the contact list if he isn''t in it yet.
@@ -1694,21 +1665,17 @@ if $ARGS[0] = 'summer2_invite_sms':
 
 		nerd_game['fixed_uni_day'] = 4
 		
-		$temp_SMStext += $SMS_open_receiving + $SMSTree[ '0'] + $SMS_close_receiving
-		$temp_SMStext += $SMS_open_sending   + $SMSTree['c1'] + $SMS_close_sending
-		
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-		wait 1000
-		
-		$temp_SMStext += $SMS_open_receiving + $SMSTree['c2'] + $SMS_close_receiving
-
-		$SMSMessage[ARGS[2]] = $temp_SMStext
-		gs 'telefon', 'show_sms', ARGS[2]
-
+		gs 'SMStext_builder', 'start'
+			gs 'SMStext_builder', 'receive', $SMSTree[ '0']
+			gs 'SMStext_builder', 'send', $SMSTree['c1']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+			wait 1000
+
+			gs 'SMStext_builder', 'receive', $SMSTree['c2']
+			gs 'SMStext_builder', 'show_sms', ARGS[2]
+		gs 'SMStext_builder', 'end'
 	end
 
-	killvar '$temp_SMStext'
 	killvar '$SMSTree'
 end
 

+ 6 - 6
locations/npc_reactions.qsrc

@@ -219,7 +219,7 @@ if $ARGS[0] = 'bimbo_look':
 	!!	!!Special text for Katja
 	!!	$result = func('katja_procedural', 'bimbo')
 	!!else
-		if npc_trait_values['clothes_bimbo'] > 0 or npc_reactions_temp_preferences['bimbo'] = 1:
+		if npc_trait_values['clothes_style_bimbo'] > 0 or npc_reactions_temp_preferences['bimbo'] = 1:
 			!!text if the npc likes the bimbo look
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				!!if the npc likes the bimbo looks and love the player character
@@ -237,7 +237,7 @@ if $ARGS[0] = 'bimbo_look':
 				!!if the npc like the bimbo looks and hates the player character
 				$result = '"That outfit is really wasted on a slut like you!" '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says'
 			end
-		elseif npc_trait_values['clothes_bimbo'] < 0 or npc_reactions_temp_preferences['bimbo'] = -1:
+		elseif npc_trait_values['clothes_style_bimbo'] < 0 or npc_reactions_temp_preferences['bimbo'] = -1:
 			!!text if the npc dislikes the bimbo look
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				!!if the npc dislikes the bimbo looks and love the player character
@@ -287,7 +287,7 @@ if $ARGS[0] = 'goth_look':
 	!!	!!Special text for Katja
 	!!	$result = func('katja_procedural', 'bimbo')
 	!!else
-		if npc_trait_values['clothes_goth'] > 0 or npc_reactions_temp_preferences['goth'] = 1:
+		if npc_trait_values['clothes_style_goth'] > 0 or npc_reactions_temp_preferences['goth'] = 1:
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				$result = '"Wow, <<$pcs_nickname>>, you really pull off the goth look well!" '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says while looking you up and down.'
 			elseif npc_rel[$ARGS[1]] > 60 or $ARGS[2] = 'like':
@@ -299,7 +299,7 @@ if $ARGS[0] = 'goth_look':
 			else
 				$result = '"You look like a wet dog, <<$pcs_nickname>>! The goth style isn''t for wannabe losers like you!" '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says, sneering at you.'
 			end
-		elseif npc_trait_values['clothes_goth'] < 0 or npc_reactions_temp_preferences['goth'] = -1:
+		elseif npc_trait_values['clothes_style_goth'] < 0 or npc_reactions_temp_preferences['goth'] = -1:
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				$result = '"Even on you, <<$pcs_nickname>>, I''m just not a fan of this goth thing," '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says, looking over your outfit.'
 			elseif npc_rel[$ARGS[1]] > 60 or $ARGS[2] = 'like':
@@ -330,7 +330,7 @@ end
 if $ARGS[0] = 'punk_look':
 	dynamic 'npc_reaction_weekly[''<<$ARGS[1]>>_punk''] = 1'
 	!!else
-		if npc_trait_values['clothes_punk'] > 0 or npc_reactions_temp_preferences['punk'] = 1:
+		if npc_trait_values['clothes_style_punk'] > 0 or npc_reactions_temp_preferences['punk'] = 1:
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				$result = '"Wow, I love your style! You have such a cool edge to you, I admire it." '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says'
 			elseif npc_rel[$ARGS[1]] > 60 or $ARGS[2] = 'like':
@@ -342,7 +342,7 @@ if $ARGS[0] = 'punk_look':
 			else
 				$result = ' "I can''t stand people like you who try to act tough with that punk style. It''s just a front for insecurity." '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says'
 			end
-		elseif npc_trait_values['clothes_punk'] < 0 or npc_reactions_temp_preferences['punk'] = -1:
+		elseif npc_trait_values['clothes_style_punk'] < 0 or npc_reactions_temp_preferences['punk'] = -1:
 			if npc_rel[$ARGS[1]] > 80 or $ARGS[2] = 'love':
 				$result = '"I''m not a fan of the punk style, but I love you anyway. You''re such a kind person." '+iif(mid($ARGS[1],1,1) = 'A', '<<$npc_firstname[$ARGS[1]]>>', '<<$ARGS[1]>>')+' says'
 			elseif npc_rel[$ARGS[1]] > 60 or $ARGS[2] = 'like':

+ 145 - 70
locations/npc_set_preference.qsrc

@@ -6,12 +6,17 @@
 !!		gs 'npc_set_preference', 'reset', npc_code
 !!
 !!	Add a preference to an npc:
-!!		gs 'npc_set_preference', npc_code, trait, amount
-!!		trait: = 'strong', 'cum_on_face', 'tits_big', 'ass_bubble', etc.
+!!		gs 'npc_set_preference', $npc_code, $trait, [$amount/amount]
+!!		npc_code = 'A12', 'A51', 'B13', 'C1', etc
+!!		trait: = 'body_strong', 'cum_face', 'body_tits_big', 'body_ass_bubble', etc.
 !!
-!!		amount = 'hate', 'dislike', 'neutral', 'like', 'love'
-!!		or amount is a number.
-
+!!		you can either use a string or number for amount:
+!!		$amount = 'hate', 'dislike', 'neutral', 'like', 'love'
+!!		amount is the change in appearance that this preference causes.
+!!
+!!		examples:
+!!			gs 'npc_set_preference', 'A12', 'body_tits_big', 'like'
+!!			gs 'npc_set_preference', 'B1', 'body_bmi_overweight', -50
 
 
 
@@ -170,7 +175,7 @@ end
 
 
 !!	gs 'npc_set_preference', 'get_value', $PREFERENCE, $VALUE
-!!		$PREFERENCE: body_fit, clothes_bimbo, etc.
+!!		$PREFERENCE: body_fit, clothes_style_bimbo, etc.
 !!		$VALUE: 'love', 'like', 'neutral', 'dislike', or 'hate'
 
 if $ARGS[0] = 'get_value':
@@ -209,78 +214,148 @@ if $ARGS[0] = 'get_value':
 		temp_pref_values['like']    = 40
 		temp_pref_values['dislike'] = -5
 		temp_pref_values['hate']    = -10
+
+	elseif $ARGS[1] = 'body_skin_bad':
+		temp_pref_values['love']    = 2
+		temp_pref_values['like']    = 1
+		temp_pref_values['dislike'] = -1
+		temp_pref_values['hate']    = -2
+	
+	elseif $ARGS[1] = 'body_skin_normal':
+		temp_pref_values['love']    = 2
+		temp_pref_values['like']    = 1
+		temp_pref_values['dislike'] = -1
+		temp_pref_values['hate']    = -2
+	
+	elseif $ARGS[1] = 'body_skin_good':
+		temp_pref_values['love']    = 2
+		temp_pref_values['like']    = 1
+		temp_pref_values['dislike'] = -1
+		temp_pref_values['hate']    = -2
 	end
 
-	result = temp_pref_values[$ARGS[2]]
+	if $ARGS[2] ! '':
+		result = temp_pref_values[$ARGS[2]]
+	else
+		if ARGS[2] = temp_pref_values['neutral']:
+			$result = 'neutral'
+		elseif ARGS[2] < (temp_pref_values['hate'] + temp_pref_values['dislike']) / 2:
+			$result = 'hate'
+		elseif ARGS[2] > (temp_pref_values['love'] + temp_pref_values['like']) / 2:
+			$result = 'love'
+		elseif ARGS[2] < (temp_pref_values['dislike'] + temp_pref_values['neutral']) / 2:
+			$result = 'dislike'
+		elseif ARGS[2] > (temp_pref_values['like'] + temp_pref_values['neutral']) / 2:
+			$result = 'like'
+		else
+			$result = 'neutral'
+		end
+	end
 
 	killvar 'temp_pref_values'
 end
 
 
 
+!!		Preferences:
+!!		
+!!		body:
+!!			ass:
+!!				body_ass_flat
+!!				body_ass_average
+!!				body_ass_big
+!!				body_ass_bubble
+!!			bmi:
+!!				body_bmi_starving
+!!				body_bmi_underweight
+!!				body_bmi_normal
+!!				body_bmi_overweight
+!!				body_bmi_obese
+!!			eyes:
+!!				body_eyes_brown
+!!				body_eyes_grey
+!!				body_eyes_green
+!!				body_eyes_blue
+!!			lips:
+!!				body_lips_thin
+!!				body_lips_normal
+!!				body_lips_plump
+!!				body_lips_big
+!!				body_lips_pillowy
+!!			skin:
+!!				body_skin_bad
+!!				body_skin_normal
+!!				body_skin_good
+!!			strength:
+!!				body_strength_weak
+!!				body_strenght_normal
+!!				body_strenght_athletic
+!!				body_strenght_strong
+!!				body_strenght_manly
+!!			sweat:
+!!				body_sweat_none
+!!				body_sweat_sweaty
+!!				body_sweat_stinky
+!!			tits:
+!!				body_tits_small
+!!				body_tits_average
+!!				body_tits_big
+!!				body_tits_huge
+!!			body_fit
+!!			body_pregnant
+!!			body_tan
+!!			body_tan_not
+!!		
+!!		clothes:
+!!			exposed:
+!!				clothes_exposed_ass
+!!				clothes_exposed_bra
+!!				clothes_exposed_panties
+!!				clothes_exposed_pussy
+!!				clothes_exposed_tits
+!!			skirt:
+!!				clothes_skirt_long
+!!				clothes_skirt_normal
+!!				clothes_skirt_short
+!!			style:
+!!				clothes_style_bimbo
+!!				clothes_style_goth
+!!				clothes_style_punk
+!!			clothes_thin
+!!		
+!!		cosmetics:
+!!			cosmetics_deodorant
+!!			cosmetics_makeup
+!!			cosmetics_piercing
+!!			cosmetics_tattoo
+!!		
+!!		cum:
+!!			cum_clothes
+!!			cum_face
+!!		
+!!		hair:
+!!			color:
+!!				hair_color_black
+!!				hair_color_brown
+!!				hair_color_red
+!!				hair_color_blonde
+!!				hair_color_dyed
+!!			length:
+!!				hair_length_veryshort
+!!				hair_length_short
+!!				hair_length_chin
+!!				hair_length_shoulder
+!!				hair_length_bra
+!!				hair_length_long
+!!			pubes:
+!!				hair_pubes_shaven
+!!				hair_pubes_grown
+!!				hair_pubes_styled
+!!			hair_leg
+!!			hair_leg_not
+!!			hair_curly
+!!			hair_straight
+
 
-!!	Body
-!!		'body_ass_bubble'
-!!		'body_ass_big'
-!!		'body_ass_average'
-!!		'body_ass_flat'
-!!		'body_bmi_starving'
-!!		'body_bmi_underweight'
-!!		'body_bmi_normal'
-!!		'body_bmi_overweight'
-!!		'body_bmi_obese'
-!!		'body_fit'
-!!		'body_lips_thin'
-!!		'body_lips_normal'
-!!		'body_lips_plump'
-!!		'body_lips_big'
-!!		'body_lips_pillowy'
-!!		'body_pregnant'
-!!		'body_tan'
-!!		'body_tan_not'
-!!		'body_tits_big'
-!!		'body_tits_average'
-!!		'body_tits_small'
-!!		'body_strong'
-!!		'body_weak'
-!!		'body_sweaty'
-!!		'body_stinky'
-!!	
-!!	Clothes
-!!		'clothes_bimbo'
-!!		'clothes_goth'
-!!		'clothes_punk'
-!!		'clothes_thin'
-!!		'clothes_skirt_long'
-!!		'clothes_skirt_short'
-!!		'clothes_exposed_ass'
-!!		'clothes_exposed_bra'
-!!		'clothes_exposed_panties'
-!!		'clothes_exposed_pussy'
-!!		'clothes_exposed_tits'
-!!	
-!!	Cosmetics
-!!		'cosmetics_deodorant'
-!!		'cosmetics_makeup'
-!!		'cosmetics_piercing'
-!!		'cosmetics_tattoo'
-!!	
-!!	Cum
-!!		'cum_face'
-!!		'cum_clothes'
-!!	
-!!	Hair
-!!		'hair_pubes_shaven'
-!!		'hair_pubes_grown'
-!!		'hair_pubes_style_...' & !! not yet implemented.
-!!		'hair_leg'
-!!		'hair_leg_not'
-!!		'hair_short'
-!!		'hair_average'
-!!		'hair_long'
-!!		'hair_curly'
-!!		'hair_straight'
-!!		'hair_color_black'
-!!		'hair_color_....' & !! not yet implemented.
 
 --- npc_set_preference ---------------------------------

File diff suppressed because it is too large
+ 319 - 239
locations/npc_standard_preferences.qsrc


+ 1 - 1
locations/npcgeneratec.qsrc

@@ -833,7 +833,7 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	else
 		!!failsafe
 		npc_sex_stamina[$npclastgenerated] = rand(1,10)
-	end}
+	end
 
 	!! npc_spanker determines whether or not they''re into spanking during sex
 	if rand(1,3) = 1: npc_sex_spanker[$npclastgenerated] = 1

+ 36 - 23
locations/npcstatic1.qsrc

@@ -58,43 +58,49 @@ $npc_selfie['A<<npctemp>>'] = '<a href="exec:numnpc = 1 & gt ''phone_selfies'',
 !{
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
 
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_bubble', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_big', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_average', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_flat', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_average', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_big', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_ass_bubble', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_bmi_starving', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_bmi_underweight', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_bmi_normal', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_bmi_overweight', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_bmi_obese', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_fit', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_lips_thin', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_lips_normal', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_lips_plump', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_lips_big', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_lips_pillowy', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_strength_weak', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_strength_normal', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_strength_athletic', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_strength_strong', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_strength_manly', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_sweat_none', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_sweat_sweaty', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_sweat_stinky', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_small', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_average', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_big', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_huge', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'body_fit', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_pregnant', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_tan', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'body_tan_not', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_big', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_average', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_tits_small', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_strong', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_weak', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_sweaty', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'body_stinky', 'neutral'
-
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_bimbo', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_punk', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_goth', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_thin', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_skirt_long', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_skirt_short', 'neutral'
+
 gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_exposed_ass', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_exposed_bra', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_exposed_panties', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_exposed_pussy', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_exposed_tits', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_skirt_long', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_skirt_normal', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_skirt_short', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_style_bimbo', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_style_punk', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_style_goth', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'clothes_thin', 'neutral'
 
 gs 'npc_set_preference', 'A<<npctemp>>', 'cosmetics_deodorant', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'cosmetics_makeup', 'neutral'
@@ -106,16 +112,23 @@ gs 'npc_set_preference', 'A<<npctemp>>', 'cum_clothes', 'neutral'
 
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_pubes_shaven', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_pubes_grown', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_pubes_styled', 'neutral'
 
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_black', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_brown', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_red', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_blonde', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_dyed', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_veryshort', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_short', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_chin', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_shoulder', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_bra', 'neutral'
+gs 'npc_set_preference', 'A<<npctemp>>', 'hair_length_long', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_leg', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_leg_not', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'hair_short', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'hair_average', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'hair_long', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_curly', 'neutral'
 gs 'npc_set_preference', 'A<<npctemp>>', 'hair_straight', 'neutral'
-gs 'npc_set_preference', 'A<<npctemp>>', 'hair_color_black', 'neutral'
-
 }
 
 

+ 1 - 1
locations/pav_train_market.qsrc

@@ -71,7 +71,7 @@ if $ARGS[0] = 'start':
 		end
 
 		if gobelen > 0 and gobQW = 0:
-			act'Sell ​​tapestry':
+			act'Sell tapestry':
 				menu_off = 1
 				*clr & cla
 				gobQW = 1

+ 362 - 210
locations/pcs_has_attr.qsrc

@@ -3,89 +3,108 @@
 
 !!		Preferences:
 !!		
-!!		body_
-!!			ass_
-!!				bubble
-!!				big
-!!				average
-!!				flat
-!!			bmi_
-!!				starving
-!!				underweight
-!!				normal
-!!				overweight
-!!				obese
-!!			fit
-!!			lips_
-!!				thin
-!!				normal
-!!				plump
-!!				big
-!!				pillowy
-!!			pregnant
-!!			skin_
-!!				bad
-!!				normal
-!!				good
-!!			tan
-!!			tan_not
-!!			tits_
-!!				big
-!!				average
-!!				small
-!!			no_sweat
-!!			sweaty
-!!			stinky
-!!			strong
-!!			weak
+!!		body:
+!!			ass:
+!!				body_ass_flat
+!!				body_ass_average
+!!				body_ass_big
+!!				body_ass_bubble
+!!			bmi:
+!!				body_bmi_starving
+!!				body_bmi_underweight
+!!				body_bmi_normal
+!!				body_bmi_overweight
+!!				body_bmi_obese
+!!			eyes:
+!!				body_eyes_brown
+!!				body_eyes_grey
+!!				body_eyes_green
+!!				body_eyes_blue
+!!			lips:
+!!				body_lips_thin
+!!				body_lips_normal
+!!				body_lips_plump
+!!				body_lips_big
+!!				body_lips_pillowy
+!!			skin:
+!!				body_skin_bad
+!!				body_skin_normal
+!!				body_skin_good
+!!			strength:
+!!				body_strength_weak
+!!				body_strenght_normal
+!!				body_strenght_athletic
+!!				body_strenght_strong
+!!				body_strenght_manly
+!!			sweat:
+!!				body_sweat_none
+!!				body_sweat_sweaty
+!!				body_sweat_stinky
+!!			tits:
+!!				body_tits_small
+!!				body_tits_average
+!!				body_tits_big
+!!				body_tits_huge
+!!			body_fit
+!!			body_pregnant
+!!			body_tan
+!!			body_tan_not
 !!		
-!!		clothes_
-!!			bimbo
-!!			goth
-!!			punk
-!!			thin
-!!			skirt_
-!!				long
-!!				short
-!!			exposed_
-!!				ass
-!!				bra
-!!				panties
-!!				pussy
-!!				tits
+!!		clothes:
+!!			exposed:
+!!				clothes_exposed_ass
+!!				clothes_exposed_bra
+!!				clothes_exposed_panties
+!!				clothes_exposed_pussy
+!!				clothes_exposed_tits
+!!			skirt:
+!!				clothes_skirt_long
+!!				clothes_skirt_normal
+!!				clothes_skirt_short
+!!			style:
+!!				clothes_style_bimbo
+!!				clothes_style_goth
+!!				clothes_style_punk
+!!			clothes_thin
 !!		
-!!		cosmetics_
-!!			deodorant
-!!			makeup
-!!			piercing
-!!			tattoo
+!!		cosmetics:
+!!			cosmetics_deodorant
+!!			cosmetics_makeup
+!!			cosmetics_piercing
+!!			cosmetics_tattoo
 !!		
-!!		cum_
-!!			clothes
-!!			face
+!!		cum:
+!!			cum_clothes
+!!			cum_face
 !!		
-!!		hair_
-!!			pubes_
-!!				shaven
-!!				grown
-!!				style_
-!!					...
-!!			leg
-!!			leg_not
-!!			short
-!!			average
-!!			long
-!!			curly
-!!			straight
-!!			color_
-!!				black
-!!				...
+!!		hair:
+!!			color:
+!!				hair_color_black
+!!				hair_color_brown
+!!				hair_color_red
+!!				hair_color_blonde
+!!				hair_color_dyed
+!!			length:
+!!				hair_length_veryshort
+!!				hair_length_short
+!!				hair_length_chin
+!!				hair_length_shoulder
+!!				hair_length_bra
+!!				hair_length_long
+!!			pubes:
+!!				hair_pubes_shaven
+!!				hair_pubes_grown
+!!				hair_pubes_styled
+!!			hair_leg
+!!			hair_leg_not
+!!			hair_curly
+!!			hair_straight
 
 
 !!		How to use.
 !!		
-!!		gs 'pcs_has_attr', 'clothes_bimbo'
-!!		gs 'pcs_has_attr', 'cosmetics_tattoo'
+!!		func('pcs_has_attr', 'clothes_style_bimbo')
+!!		func('pcs_has_attr', 'cosmetics_tattoo')
 !!		
 
 
@@ -107,7 +126,7 @@
 !!			tits_big
 !!			tits_average
 !!			tits_small
-!!			hair_long
+!!			hair_length_long
 
 
 
@@ -115,6 +134,62 @@
 !! $npc_reaction_choice[] = 'NAME' adds 'NAME' to the end of the list.
 
 
+	!!-------------------------------------------------------------------!!
+	!!                                                                   !!
+	!!                               LOGIC                               !!
+	!!                                                                   !!
+	!!-------------------------------------------------------------------!!
+
+!! How to use: func('pcs_has_attr', 'AND', $ARGS[1], $ARGS[2], ...)
+!!		func('pcs_has_attr', 'AND', 'body_tits_average', 'body_bmi_normal', 'hair_color_black')
+
+
+if $ARGS[0] = 'AND':
+	pha_AND_maxi = arrsize('ARGS')
+
+	if pha_AND_maxi = 1:
+		result = 0
+		jump 'pha_AND_killvar'
+	end
+
+	pha_AND_i = 1
+	:pha_AND_loop
+		if func('pcs_has_attr', $ARGS[pha_AND_i]) = 0:
+			result = 0
+			jump 'pha_AND_killvar'
+		end
+		pha_AND_i += 1
+	if pha_AND_i < pha_AND_maxi: jump 'pha_AND_loop'
+	result = 1
+
+
+	:pha_AND_killvar
+	killvar 'pha_AND_maxi'
+	killvar 'pha_AND_i'
+
+elseif $ARGS[0] = 'OR':
+	pha_OR_maxi = arrsize('ARGS')
+
+	if pha_OR_maxi = 1:
+		result = 0
+		jump 'pha_OR_killvar'
+	end
+
+	pha_OR_i = 1
+	:pha_OR_loop
+		if func('pcs_has_attr', $ARGS[pha_OR_i]) = 1:
+			result = 1
+			jump 'pha_OR_killvar'
+		end
+		pha_OR_i += 1
+	if pha_OR_i < pha_OR_maxi: jump 'pha_OR_loop'
+	result = 0
+
+	:pha_OR_killvar
+	killvar 'pha_OR_maxi'
+	killvar 'pha_OR_i'
+end
+
 
 
 	!!-------------------------------------------------------------------!!
@@ -125,33 +200,33 @@
 
 
 !!To be checked
-if $ARGS[0] = 'body_ass_bubble':
-	!! Bubble butt
-	if pcs_butt >= 13:
+if $ARGS[0] = 'body_ass_flat':
+	!! flat butt
+	if pcs_butt <= 4:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_ass_big':
-	!! Big round butt
-	if pcs_butt >= 8 and pcs_butt <= 12:
+elseif $ARGS[0] = 'body_ass_average':
+	!! average feminine butt
+	if pcs_butt >= 5 and pcs_butt <= 7:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_ass_average':
-	!! average feminine butt
-	if pcs_butt >= 5 and pcs_butt <= 7:
+elseif $ARGS[0] = 'body_ass_big':
+	!! Big round butt
+	if pcs_butt >= 8 and pcs_butt =< 12:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_ass_flat':
-	!! flat butt
-	if pcs_butt <= 4:
+elseif $ARGS[0] = 'body_ass_bubble':
+	!! Bubble butt
+	if pcs_butt >= 13:
 		result = 1
 	else
 		result = 0
@@ -159,7 +234,6 @@ elseif $ARGS[0] = 'body_ass_flat':
 end
 
 
-
 !! To be checked
 if $ARGS[0] = 'body_bmi_starving':
 	if pcs_bmi <= 15:
@@ -198,30 +272,30 @@ elseif $ARGS[0] = 'body_bmi_obese':
 end
 
 
-
-if $ARGS[0] = 'body_fit':
-	if pcs_bmi >= 19 and pcs_bmi < 25 and (pcs_vital*2 + pcs_agil + pcs_stren)/4 >= 60:
+!!To be checked
+if $ARGS[0] = 'body_eyes_brown':
+	if pcs_eyecol = 0:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_pregnant':
-	if func('body_din', 'pregnancyVisibility') = 1:
+elseif $ARGS[0] = 'body_eyes_grey':
+	if pcs_eyecol = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_tan':
-	if pcs_tan > 5:
+elseif $ARGS[0] = 'body_eyes_green':
+	if pcs_eyecol = 2:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_tan_not':
-	if pcs_tan <= 5:
+elseif $ARGS[0] = 'body_eyes_blue':
+	if pcs_eyecol = 3:
 		result = 1
 	else
 		result = 0
@@ -229,44 +303,37 @@ elseif $ARGS[0] = 'body_tan_not':
 end
 
 
-
-if $ARGS[0] = 'body_strong':
-	if strenbuf >= 100 and stren_plus_lvl > 0:
+!!To be checked
+if $ARGS[0] = 'body_lips_thin':
+	if pcs_lips <= 0:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_weak':
-	if strenbuf <= 20 and stren_plus_lvl <= 0:
+elseif $ARGS[0] = 'body_lips_normal':
+	if pcs_lips = 1:
 		result = 1
 	else
 		result = 0
 	end
-end
 
-
-
-!!To be checked
-if $ARGS[0] = 'body_tits_big':
-	!! E-cup and bigger
-	if pcs_cupsize >= 26:
+elseif $ARGS[0] = 'body_lips_plump':
+	if pcs_lips = 2:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_tits_average':
-	!! B- to D-cup
-	if pcs_cupsize >= 11 and pcs_cupsize <= 25:
+elseif $ARGS[0] = 'body_lips_big':
+	if pcs_lips = 3:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_tits_small':
-	!! flat to A-cup
-	if pcs_cupsize <= 10:
+elseif $ARGS[0] = 'body_lips_pillowy':
+	if pcs_lips >= 4:
 		result = 1
 	else
 		result = 0
@@ -274,49 +341,59 @@ elseif $ARGS[0] = 'body_tits_small':
 end
 
 
-
 !!To be checked
-if $ARGS[0] = 'body_no_sweat':
-	if pcs-sweat < 22:
+if $ARGS[0] = 'body_skin_bad':
+	if pcs_skin <= 399:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_sweaty':
-	if pcs_sweat >= 22 and pcs_sweat <=39:
+elseif $ARGS[0] = 'body_skin_normal':
+	if pcs_skin >= 400 and pcs_skin <= 599:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_stinks':
-	if pcs_sweat >= 40:
+elseif $ARGS[0] = 'body_skin_good':
+	if pcs_skin >= 600:
 		result = 1
 	else
 		result = 0
 	end
 end
 
+if $ARGS[0] = 'body_strength_weak':
+	if stren_plus_lvl <= 0 and strenbuf <= 20:
+		result = 1
+	else
+		result = 0
+	end
+	
+elseif $ARGS[0] = 'body_strength_normal':
+	if stren_plus_lvl <= 0 and strenbuf >= 21 and strenbuf <= 60:
+		result = 1
+	else
+		result = 0
+	end
 
-
-!!To be checked
-if $ARGS[0] = 'body_skin_bad':
-	if pcs_skin < 400:
+elseif $ARGS[0] = 'body_strength_athletic':
+	if stren_plus_lvl <= 0 and strenbuf >= 61 and strenbuf <= 100:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_skin_normal':
-	if pcs_skin >= 400 and pcs_skin < 600:
+elseif $ARGS[0] = 'body_strength_strong':
+	if stren_plus_lvl > 0 and strenbuf >= 100 and strenbuf <= 150:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_skin_good':
-	if pcs_skin >= 600:
+elseif $ARGS[0] = 'body_strength_manly':
+	if stren_plus_lvl > 0 and strenbuf >= 151:
 		result = 1
 	else
 		result = 0
@@ -326,68 +403,87 @@ end
 
 
 !!To be checked
-if $ARGS[0] = 'body_lips_thin':
-	if pcs_lips <= 0:
+if $ARGS[0] = 'body_sweat_none':
+	if pcs_sweat <= 21:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_lips_normal':
-	if pcs_lips = 1:
+elseif $ARGS[0] = 'body_sweat_sweaty':
+	if pcs_sweat >= 22 and pcs_sweat <= 39:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_lips_plump':
-	if pcs_lips = 2:
+elseif $ARGS[0] = 'body_sweat_stinky':
+	if pcs_sweat >= 40:
 		result = 1
 	else
 		result = 0
 	end
+end
 
-elseif $ARGS[0] = 'body_lips_big':
-	if pcs_lips = 3:
+
+!!To be checked
+if $ARGS[0] = 'body_tits_small':
+	!! flat to A-cup
+	if pcs_cupsize <= 10:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_lips_pillowy':
-	if pcs_lips >= 4:
+elseif $ARGS[0] = 'body_tits_average':
+	!! B- to D-cup
+	if pcs_cupsize >= 11 and pcs_cupsize <= 25:
 		result = 1
 	else
 		result = 0
 	end
-end
 
+elseif $ARGS[0] = 'body_tits_big':
+	!! E- to G-cup
+	if pcs_cupsize >= 26 and pcs_cupsize <= 40:
+		result = 1
+	else
+		result = 0
+	end
 
+elseif $ARGS[0] = 'body_tits_huge':
+	!! H-cup and bigger
+	if pcs_cupsize >= 41:
+		result = 1
+	else
+		result = 0
+	end
+end
 
-!!To be checked
-if $ARGS[0] = 'body_eyes_brown':
-	if pcs_eyecol = 0:
+
+if $ARGS[0] = 'body_fit':
+	if pcs_bmi >= 19 and pcs_bmi <= 24 and (pcs_vital*2 + pcs_agil + pcs_stren)/4 >= 60:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_eyes_grey':
-	if pcs_eyecol = 1:
+elseif $ARGS[0] = 'body_pregnant':
+	if func('body_din', 'pregnancyVisibility'):
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_eyes_green':
-	if pcs_eyecol = 2:
+elseif $ARGS[0] = 'body_tan':
+	if pcs_tan >= 5:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'body_eyes_blue':
-	if pcs_eyecol = 3:
+elseif $ARGS[0] = 'body_tan_not':
+	if pcs_tan <= 5:
 		result = 1
 	else
 		result = 0
@@ -396,90 +492,99 @@ end
 
 
 
-
-
 	!!-------------------------------------------------------------------!!
 	!!                                                                   !!
-	!!                              Cothes                               !!
+	!!                             Clothes                               !!
 	!!                                                                   !!
 	!!-------------------------------------------------------------------!!
 
 
-if $ARGS[0] = 'clothes_bimbo':
-	if bimbo_flag = 1:
+if $ARGS[0] = 'clothes_exposed_ass':
+!!	if $pantyworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5 or PCloCoverBack >= 1):
+	if CoverBack >= 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_goth':
-	if goth_flag = 1:
+elseif $ARGS[0] = 'clothes_exposed_bra':
+!!	if $braworntype ! 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or CloTopCut >= 3):
+	if $braworntype ! 'none' and PBraCover >= 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_punk':
-	if punk_flag = 1:
+elseif $ARGS[0] = 'clothes_exposed_panties':
+!!	if $pantyworntype ! 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5):
+	if $pantyworntype ! 'none' and (PCloCoverBack >= 1 or PCloCoverFront >= 1):
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_skirt_long':
-	if CloSkirtShortness <= 2:
+elseif $ARGS[0] = 'clothes_exposed_pussy':
+!!	if $pantyworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5 or PCloCoverFront >= 1):
+	if CoverFront >= 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_skirt_short':
-	if CloSkirtShortness >= 5:
+elseif $ARGS[0] = 'clothes_exposed_tits':
+!!	if $braworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or CloTopCut >= 3 or PCloCoverTop >= 1):
+	if CoverTop >= 1:
 		result = 1
 	else
 		result = 0
 	end
+end
 
-elseif $ARGS[0] = 'clothes_thin':
-	if CloThinness >= 5:
+
+if $ARGS[0] = 'clothes_skirt_long':
+	if CloSkirtShortness <= 2:
 		result = 1
 	else
 		result = 0
 	end
-end
-
 
+elseif $ARGS[0] = 'clothes_skirt_normal':
+	if CloSkirtShortness >= 3 and CloSkirtShortness <= 4:
+		result = 1
+	else
+		result = 0
+	end
 
-if $ARGS[0] = 'clothes_exposed_ass':
-	if $pantyworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5 or PCloCoverBack >= 1):
+elseif $ARGS[0] = 'clothes_skirt_short':
+	if CloSkirtShortness >= 5:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_exposed_bra':
-	if $braworntype ! 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or CloTopCut >= 3):
+elseif $ARGS[0] = 'clothes_style_bimbo':
+	if bimbo_flag = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_exposed_panties':
-	if $pantyworntype ! 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5):
+elseif $ARGS[0] = 'clothes_style_goth':
+	if goth_flag = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_exposed_pussy':
-	if $pantyworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or PCloPants = 6 or PCloSkirt => 5 or PCloCoverFront >= 1):
+elseif $ARGS[0] = 'clothes_style_punk':
+	if punk_flag = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'clothes_exposed_tits':
-	if $braworntype = 'none' and ($clothingworntype = 'nude' or PCloThinness >= 5 or CloTopCut >= 3 or PCloCoverTop >= 1):
+elseif $ARGS[0] = 'clothes_thin':
+	if CloThinness >= 5:
 		result = 1
 	else
 		result = 0
@@ -488,7 +593,6 @@ end
 
 
 
-
 	!!-------------------------------------------------------------------!!
 	!!                                                                   !!
 	!!                            Cosmetics                              !!
@@ -497,15 +601,14 @@ end
 
 
 !! To be checked
-if $ARGS[0] = 'cosmetics_deoderant':
+if $ARGS[0] = 'cosmetics_deodorant':
 	if deodorant_on ! 0:
 		result = 1
 	else
 		result = 0
 	end
-end
 
-if $ARGS[0] = 'cosmetics_makeup':
+elseif $ARGS[0] = 'cosmetics_makeup':
 	if pcs_makeup > 1:
 		result = 1
 	else
@@ -562,64 +665,80 @@ end
 	!!-------------------------------------------------------------------!!
 
 
-if $ARGS[0] = 'hair_pubes_shaven':
-	if pcs_pubes <= 10 or lashair = 1:
+if $ARGS[0] = 'hair_color_black':
+	if pcs_haircol = 0:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'hair_pubes_grown':
-	if pcs_pubes > 11 and lashair = 0:
+elseif $ARGS[0] = 'hair_color_brown':
+	if pcs_haircol = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-end
+elseif $ARGS[0] = 'hair_color_red':
+	if pcs_haircol = 2:
+		result = 1
+	else
+		result = 0
+	end
 
+elseif $ARGS[0] = 'hair_color_blonde':
+	if pcs_haircol = 3:
+		result = 1
+	else
+		result = 0
+	end
 
-if $ARGS[0] = 'hair_pubes_style_':
-	result = 0
-	if pcs_pubes > 16 and pcs_pubes <= 25 and lashair = 0 and func('pcs_has_attr', 'clothes_exposed_pussy'):
-		if pubestyle=0:
-			result = 1
-		end
+elseif $ARGS[0] = 'hair_color_dyed':
+	if pcs_haircol >= 4:
+		result = 1
+	else
+		result = 0
 	end
 end
 
-if $ARGS[0] = 'hair_leg':
-	if pcs_leghair >= 4:
+
+if $ARGS[0] = 'hair_length_veryshort':
+	if pcs_hairlng <= 30:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'hair_leg_not':
-	if pcs_leghair <= 3:
+elseif $ARGS[0] = 'hair_length_short':
+	if pcs_hairlng >= 31 and pcs_hairlng <= 80:
 		result = 1
 	else
 		result = 0
 	end
-end
 
+elseif $ARGS[0] = 'hair_length_chin':
+	if pcs_hairlng >= 81 and pcs_hairlng <= 160:
+		result = 1
+	else
+		result = 0
+	end
 
-if $ARGS[0] = 'hair_short':
-	if pcs_hairlng <= 80:
+elseif $ARGS[0] = 'hair_length_shoulder':
+	if pcs_hairlng >= 161 and pcs_hairlng <= 260:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'hair_average':
-	if pcs_hairlng > 80 and pcs_hairlng <= 260:
+elseif $ARGS[0] = 'hair_length_bra':
+	if pcs_hairlng >= 261 and pcs_hairlng <= 400:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'hair_long':
-	if pcs_hairlng > 260:
+elseif $ARGS[0] = 'hair_length_long':
+	if pcs_hairlng >= 401:
 		result = 1
 	else
 		result = 0
@@ -627,24 +746,54 @@ elseif $ARGS[0] = 'hair_long':
 end
 
 
-if $ARGS[0] = 'hair_curly':
-	if curly > 0:
+if $ARGS[0] = 'hair_pubes_shaven':
+	if pcs_pubes <= 10 or lashair = 1:
 		result = 1
 	else
 		result = 0
 	end
 
-elseif $ARGS[0] = 'hair_straight':
-	if curly <= 0:
+elseif $ARGS[0] = 'hair_pubes_grown':
+	if pcs_pubes >= 11 and lashair = 0:
 		result = 1
 	else
 		result = 0
 	end
+
+!! needs to be finished
+elseif $ARGS[0] = 'hair_pubes_styled':
+	result = 0
+	if pcs_pubes >= 17 and pcs_pubes <= 25 and lashair = 0 and func('pcs_has_attr', 'clothes_exposed_pussy'):
+		if (pubestyle >= 2 and pubestyle <= 9) or (pubestyle >= 12 and pubestyle <= 14):
+			result = 1
+		end
+	end
 end
 
 
-if $ARGS[0] = 'hair_color_black':
-	if pcs_haircol = 0:
+if $ARGS[0] = 'hair_leg':
+	if pcs_leghair >= 4:
+		result = 1
+	else
+		result = 0
+	end
+
+elseif $ARGS[0] = 'hair_leg_not':
+	if pcs_leghair <= 3:
+		result = 1
+	else
+		result = 0
+	end
+
+elseif $ARGS[0] = 'hair_curly':
+	if curly >= 1:
+		result = 1
+	else
+		result = 0
+	end
+
+elseif $ARGS[0] = 'hair_straight':
+	if curly <= 0:
 		result = 1
 	else
 		result = 0
@@ -656,4 +805,7 @@ end
 
 
 
+
+
+
 --- pcs_has_attr ---------------------------------

+ 3 - 4
locations/set_npc_attraction.qsrc

@@ -71,11 +71,11 @@ else
 	npc_rel_hotcat[$ARGS[0]] = 10
 end
 
-if ARGS[1] = 0: ARGS[1] = 2
-if ARGS[1] > 0:
+if arrsize('ARGS') = 1: ARGS[1] = 2
+if ARGS[1] >= 0:
 	if npc_rel_hotcat[$ARGS[0]] - hotcat > ARGS[1]:
 		npc_rel_hotcat[$ARGS[0]] = hotcat + ARGS[1]
-	elseif hotcat - npc_rel_hotcat > ARGS[1]:
+	elseif hotcat - npc_rel_hotcat[$ARGS[0]] > ARGS[1]:
 		npc_rel_hotcat[$ARGS[0]] = hotcat - ARGS[1]
 	end
 end
@@ -83,7 +83,6 @@ end
 
 
 
-
 --- set_npc_attraction ---------------------------------
 
 

+ 7 - 3
locations/sex_ev_after.qsrc

@@ -1356,10 +1356,14 @@ if $ARGS[0] = 'after_sex2':
 			act'Sleep':gt'sex_ev_after', 'sleep_function'
 		end
 	else
-		if $sex_ev['type'] = 'hookup':
-			gs'sex_ev_hookup_leave', 'gotta_go'
+		if $sex_ev['loc'] = 'pc_home':
+			gs'sex_ev_leave', 'npc_leave'
 		else
-			act'Get dressed':gt'sex_ev_leave', 'dressing1'
+			if $sex_ev['type'] = 'hookup':
+				gs'sex_ev_hookup_leave', 'gotta_go'
+			else
+				act'Get dressed':gt'sex_ev_leave', 'dressing1'
+			end
 		end
 	end
 	if sex_ev['boy_asleep'] = 0:

+ 38 - 21
locations/sex_ev_condoms.qsrc

@@ -26,7 +26,7 @@ end
 
 if $ARGS[0] = 'check_count':
 	if sex_ev['condoms_used'] >= sex_ev['condom_count'] and sex_ev['condom_count'] > 0: 
-		sex_ev['out_of_condoms'] = 1
+		sex_ev['npc_used_all_condoms'] = 1
 	end
 end
 
@@ -105,6 +105,17 @@ if $ARGS[0] = 'condoms':
 				act'Continue':gs 'sex_ev_condoms', 'npc_condom_use'
 			end
 		end
+	elseif sex_ev['pc_out_of_condoms'] = 1 and sex_ev['npc_used_all_condoms'] = 0:
+		if sex_ev['sleepover'] > 0:
+			'You''re about to get into position when you suddenly remember you ran out of condoms last night.'
+			'"Uhm... do you have any condoms?"'
+			gs'sex_ev_condoms', 'pc_no_condoms_left2'
+		else
+			'"I think that was my last condom..." you say.'
+			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'
 	end
 end
 
@@ -278,27 +289,31 @@ if $ARGS[0] = 'pc_no_condoms_left':
 		else
 			'"But I''m not ready to stop," you say. "Have you got any?"'
 		end
-		if npc_condom_conscious[$boy] = 1:
-			'"I always have condoms," <<$npc_firstname[$boy]>> says. "You don''t have to keep buying them if you don''t want to, you know. I order in bulk."'
-			gs'sex_ev_sex', 'reset'
-			gs'sex_ev_condoms', 'bulk_condoms'
-			
-			
-		elseif sex_ev['condom_count'] > 0 and sex_ev['condoms_used'] < sex_ev['condom_count']:
-			'"Yeah, I have some," <<$npc_firstname[$boy]>> says.'
-			gs'sex_ev_sex', 'reset'
-			act'Continue':gs 'sex_ev_condoms', 'npc_condom_use'
+		gs'sex_ev_condoms', 'pc_no_condoms_left2'
+	end
+end
+
+if $ARGS[0] = 'pc_no_condoms_left2':
+	if npc_condom_conscious[$boy] = 1:
+		'"I always have condoms," <<$npc_firstname[$boy]>> says. "You don''t have to keep buying them if you don''t want to, you know. I order in bulk."'
+		gs'sex_ev_sex', 'reset'
+		gs'sex_ev_condoms', 'bulk_condoms'
+		
+		
+	elseif sex_ev['condom_count'] > 0 and sex_ev['condoms_used'] < sex_ev['condom_count']:
+		'"Yeah, I have some," <<$npc_firstname[$boy]>> says.'
+		gs'sex_ev_sex', 'reset'
+		act'Continue':gs 'sex_ev_condoms', 'npc_condom_use'
+	else
+		if npc_no_condoms_know[$boy] = 1:
+			'"Come on," <<$npc_firstname[$boy]>> says, rolling his eyes. "You know I hate using condoms. Lucky you can even talk me into using yours."'
 		else
-			if npc_no_condoms_know[$boy] = 1:
-				'"Come on," <<$npc_firstname[$boy]>> says, rolling his eyes. "You know I hate using condoms. Lucky you can even talk me into using yours."'
-			else
-				'<<$npc_firstname[$boy]>> shakes his head.'
-				'"I don''t."'
-			end
-			gs'sex_ev_after', 'no_condom_end'
-			gs'sex_ev_condoms', 'pc_skip_the_condom'
-			gs'sex_ev_condoms', 'no_sex_only'
+			'<<$npc_firstname[$boy]>> shakes his head.'
+			'"I don''t."'
 		end
+		gs'sex_ev_after', 'no_condom_end'
+		gs'sex_ev_condoms', 'pc_skip_the_condom'
+		gs'sex_ev_condoms', 'no_sex_only'
 	end
 end
 
@@ -2093,7 +2108,7 @@ if $ARGS[0] = 'pc_dangerous_day_condom_insist2':
 			gs'sex_ev_after', 'no_condom_end'
 			gs'sex_ev_condoms', 'no_sex_only'
 		else
-			gs 'sex_ev_condoms', 'pc_condoms'
+			gs 'sex_ev_condoms', 'pc_use_condoms'
 		end
 	elseif npc_no_condoms[$boy] > 0:
 		'"Come on, do we really have to? I promise I won''t come inside."'
@@ -2352,6 +2367,7 @@ if $ARGS[0] = 'started_bc1':
 			cla & *nl
 			npc_bareback[$boy] = 1
 			sex_ev['no_condom'] = 1
+			sex_ev['creampie_allowance'] = 1
 			gs 'sex_ev_stats', 'birth_control_know'
 			if sex_ev['pullout_game'] = 1:
 				'"Why bother?" you ask in a mischievous tone. ' + iif(tabletkishot > 0, '"I''m on the shot now."', '"I''m on the pill now."')
@@ -2367,6 +2383,7 @@ if $ARGS[0] = 'started_bc1':
 			cla & *nl
 			npc_bareback[$boy] = 1
 			sex_ev['no_condom'] = 1
+			sex_ev['creampie_allowance'] = 1
 			if sex_ev['pullout_game'] = 1:
 				'"You better not," you say in a mischievous tone. ' + iif(tabletkishot > 0, '"I''m on the shot now."', '"I''m on the pill now."')
 			else

+ 40 - 40
locations/sex_ev_cum.qsrc

@@ -2758,6 +2758,7 @@ if $ARGS[0] = 'cum_condom':
 		'<<$npc_firstname[$boy]>> buries his cock inside your pussy. Even through the condom, you feel him <i>swell</i> inside you. And then, <i>release</i>.'
 		*nl
 		'He throbs inside you like a heartbeat and it''s all you need to come as well. You shudder, pussy clamping down hard on his cock and milking it for every last drop of cum into the condom, as you ride out your orgasms together.'
+		gs 'sex_ev_sex', 'sex_end'
 	else
 		if $sex_ev['position'] = 'miss':
 			'<center><video autoplay loop src="images/shared/sex/cum/vagcreampie/creampie1.mp4"></video></center>'
@@ -2770,36 +2771,9 @@ if $ARGS[0] = 'cum_condom':
 			$sex_ev['cum_describe2'] = 'settling your self down onto his rubber encased cock'
 		end
 		'<<$npc_firstname[$boy]>> buries his cock inside your pussy and you can feel it pulse inside you, straining against the rubber coat around it.'
-	end
-	
-	act'Ride it out':
-		cla & *nl
-		'You wait patiently, letting <<$npc_firstname[$boy]>> empty himself into the condom, until you no longer feel him twitching inside you.'
-		if condom_break > 0:
-			gs'sex_ev_cum', 'broken_condom0'
-		else
-			sex_ev['cum_condom'] += 1
-			gs 'sex_ev_sex', 'sex_end'
-		end
-	end
-	
-	if hypnoHardToCum = 0:
-		act'Come together':
-			cla & *clr
-			if $sex_ev['position'] = 'miss':
-				'<center><video autoplay loop src="images/shared/sex/cum/vagcreampie/creampie1.mp4"></video></center>'
-			elseif $sex_ev['position'] = 'doggy':
-				'<center><video autoplay loop src="images/shared/sex/vag/doggy/orgasm2.mp4"></video></center>'
-			elseif $sex_ev['position'] = 'cowgirl':
-				'<center><video autoplay loop src="images/shared/sex/vag/cowgirl/orgasm1.mp4"></video></center>'
-			end
-			$orgasm_or = 'yes'
-			gs 'sex_ev_sex', 'fuck_arousal_cum_code'
-			gs'stat'
-			sex_ev['came_together'] = 1
-			sex_ev['orgasm_count'] += 1
-			sex_ev['simultaneous_orgasm_count'] += 1
-			'<<$npc_firstname[$boy]>>''s pulsing cock is the final straw and a dam breaks inside you as your climax erupts. The two of come together, each of your orgasms fueling the other''s until eventually they''ve run their course and both of you lay there panting.'
+		act'Ride it out':
+			cla & *nl
+			'You wait patiently, letting <<$npc_firstname[$boy]>> empty himself into the condom, until you no longer feel him twitching inside you.'
 			if condom_break > 0:
 				gs'sex_ev_cum', 'broken_condom0'
 			else
@@ -2807,17 +2781,43 @@ if $ARGS[0] = 'cum_condom':
 				gs 'sex_ev_sex', 'sex_end'
 			end
 		end
-	end
-	
-	act'Tolerate it (disgust)':
-		cla & *nl
-		'You lay there, trying not to squirm as <<$npc_firstname[$boy]>> orgasm pumps load after load into your womb. Despite the condom safely encasing his cock, the idea of him filling you up is enough to fill you with disgust and you don''t move, waiting until you no longer feel him twitching inside you.'
 		
-		if condom_break > 0:
-			gs'sex_ev_cum', 'broken_condom0'
-		else
-			sex_ev['cum_condom'] += 1
-			gs 'sex_ev_sex', 'sex_end'
+		if hypnoHardToCum = 0:
+			act'Come together':
+				cla & *clr
+				if $sex_ev['position'] = 'miss':
+					'<center><video autoplay loop src="images/shared/sex/cum/vagcreampie/creampie1.mp4"></video></center>'
+				elseif $sex_ev['position'] = 'doggy':
+					'<center><video autoplay loop src="images/shared/sex/vag/doggy/orgasm2.mp4"></video></center>'
+				elseif $sex_ev['position'] = 'cowgirl':
+					'<center><video autoplay loop src="images/shared/sex/vag/cowgirl/orgasm1.mp4"></video></center>'
+				end
+				$orgasm_or = 'yes'
+				gs 'sex_ev_sex', 'fuck_arousal_cum_code'
+				gs'stat'
+				sex_ev['came_together'] = 1
+				sex_ev['orgasm_count'] += 1
+				sex_ev['simultaneous_orgasm_count'] += 1
+				'<<$npc_firstname[$boy]>>''s pulsing cock is the final straw and a dam breaks inside you as your climax erupts. The two of come together, each of your orgasms fueling the other''s until eventually they''ve run their course and both of you lay there panting.'
+				if condom_break > 0:
+					gs'sex_ev_cum', 'broken_condom0'
+				else
+					sex_ev['cum_condom'] += 1
+					gs 'sex_ev_sex', 'sex_end'
+				end
+			end
+		end
+		
+		act'Tolerate it (disgust)':
+			cla & *nl
+			'You lay there, trying not to squirm as <<$npc_firstname[$boy]>> orgasm pumps load after load into your womb. Despite the condom safely encasing his cock, the idea of him filling you up is enough to fill you with disgust and you don''t move, waiting until you no longer feel him twitching inside you.'
+			
+			if condom_break > 0:
+				gs'sex_ev_cum', 'broken_condom0'
+			else
+				sex_ev['cum_condom'] += 1
+				gs 'sex_ev_sex', 'sex_end'
+			end
 		end
 	end
 end

+ 11 - 6
locations/sex_ev_events.qsrc

@@ -36,7 +36,7 @@ if $ARGS[0] = 'sex_film_protest':
 				'With great reluctance, you silence your protests and let <<$npc_firstname[$boy]>> film you getting fucked by him. Though you still can''t stop yourself from shamefully (and ineffectively) trying to cover your face.'
 				*nl
 				'You can''t help but breathe a sigh of relief when he finally puts the phone away. But only after getting a decently long video...'
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			
 			act'Keep protesting':
@@ -58,7 +58,7 @@ if $ARGS[0] = 'sex_film_protest':
 					*nl
 					'Your weak protests do nothing to sway him and he takes a decently long video of you getting railed before he finally puts the phone away.'
 				end
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			
 			gs 'sex_ev_events', 'sex_film_force_stop'
@@ -77,7 +77,7 @@ if $ARGS[0] = 'sex_film_protest':
 				'With great reluctance, you silence your protests and let <<$npc_firstname[$boy]>> film you getting fucked by him. Though you still can''t stop yourself from shamefully (and ineffectively) trying to cover your face.'
 				*nl
 				'You can''t help but breathe a sigh of relief when he finally puts the phone away. But only after getting a decently long video...'
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			
 			act'Keep protesting':
@@ -103,7 +103,7 @@ if $ARGS[0] = 'sex_film_protest':
 					*nl
 					'Your irritation with <<$npc_firstname[$boy]>> do nothing to sway him and he takes a decently long video of you getting railed before he finally puts the phone away.'
 				end
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			gs 'sex_ev_events', 'sex_film_force_stop'
 		end
@@ -121,7 +121,7 @@ if $ARGS[0] = 'sex_film_protest':
 				'You let <<$npc_firstname[$boy]>> film you getting fucked by him, fuming in silence, occasionally turning to cover your face just to spite him.'
 				*nl
 				'You can''t help but breathe a sigh of relief when he finally puts the phone away. But only after getting a decently long video...'
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			
 			act'Keep protesting':
@@ -147,7 +147,7 @@ if $ARGS[0] = 'sex_film_protest':
 					*nl
 					'He takes a decently long video of you getting railed, screaming in rage the whole time, before he finally puts the phone away.'
 				end
-				gs 'sex_ev_cum', 'fuck_cum'
+				gs 'sex_ev_events', 'sex_film_end'
 			end
 			gs 'sex_ev_events', 'sex_film_force_stop'
 		end
@@ -236,6 +236,11 @@ if $ARGS[0] = 'sex_film_accept':
 	end
 end
 
+if $ARGS[0] = 'sex_film_end':
+	if (npc_abusive[$boy] = 1 or rand(1,3) = 1) and npc_caretaker[$boy] > 1 and sex_ev['phone_film'] ! -1:gs 'fame', 'sex', $region, 5
+	gs 'sex_ev_cum', 'fuck_cum'
+end
+
 if $ARGS[0] = 'offer_ciga1':
 	*nl
 	'"You want one?" he asks, holding the open packet towards you.'

+ 4 - 1
locations/sex_ev_foreplay.qsrc

@@ -8,8 +8,8 @@ if $ARGS[0] = 'cock_react':
 end
 
 if $ARGS[0] = 'bed_start':
+	cla
 	sex_ev['start_time'] = totminut
-	gs 'sex_ev_start', 'undress_function'
 	!! $sex_ev['bed_room']
 	if rand(0,1) = 1:
 		!! he wins initiative
@@ -44,6 +44,8 @@ if $ARGS[0] = 'generous_initiative':
 			'<<$npc_firstname[$boy]>> shoves you backwards onto onto the bed begins laying a trail of kisses, heading down between your legs.'
 		end
 		gs 'sex_ev_foreplay', 'kuni_start'
+	elseif sex_ev['sensitive_cuni'] = 1:
+		act'Continue':gs 'sex_ev_foreplay', 'selfish_fuck_start'
 	else
 		!! nipple play
 		if sex_ev['start_shower'] = 1:
@@ -511,6 +513,7 @@ end
 
 if $ARGS[0] = 'cuni_too_sensitive':
 	act'Stop him (too sensitive)':
+		sex_ev['sensitive_cuni'] = 1
 		cla & *clr
 		!! IMAGE HERE
 		$sex_ev['bed_room']

+ 1 - 1
locations/sex_ev_hookup_leave.qsrc

@@ -383,7 +383,7 @@ if $ARGS[0] = 'npc_sugar_daddy_offer2':
 	'"How about we do this again?" <<$npc_firstname[$boy]>> says.'
 	'"Do what?" you ask back, <<$sex_ev[''dress_describe'']>>.'
 	if sex_ev['prostitution'] > 0:
-		'"This," he says again, gesturing vaguely around the room. "I you can keep me company and I can get you some... compensation."'
+		'"This," he says again, gesturing vaguely around the room. "You can keep me company and I can get you some... compensation."'
 	else
 		'"This," he says again, gesturing vaguely around the room. "And maybe for your time and your company I could find you some... compensation."'
 	end

+ 1 - 1
locations/sex_ev_morning.qsrc

@@ -49,7 +49,7 @@ if $ARGS[0] = 'morning_menu1':
 		
 		if npc_earlyriser[$boy] = 1 and sex_ev['npc_morning_shower'] = 1 and sex_ev['morning_shower'] = 0:
 			if npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3 or $sex_ev['loc'] = 'hotel_room':
-				act'Join <<$npc_firstname[$boy]>> in the shower':gt'sex_ev_shower', 'morning_shower_join1'
+				act'Join <<$npc_firstname[$boy]>> in the shower':gt'sex_ev_shower', 'shower_join1'
 			else
 				act'Look for <<$npc_firstname[$boy]>>':gt'sex_ev_shower', 'morning_look1'
 			end

+ 139 - 89
locations/sex_ev_pillow_talk.qsrc

@@ -66,13 +66,14 @@ if $ARGS[0] = 'topics':
 			end
 			gs'sex_ev_talk', 'ma_pill_money'
 		end
+		gs'sex_ev_pillow_talk2', 'talk_late_for_school'
+		gs'sex_ev_pillow_talk2', 'take_a_shower'
 		if sex_ev['boy_pillow_talk'] > 0:
 			sex_ev['boy_pillow_talk'] = 0
 			gs'sex_ev_boy_pillow_talk', 'boy_talk'
 		else
 			sex_ev['boy_pillow_talk'] += 1
 		end
-		gs'sex_ev_pillow_talk2', 'talk_late_for_school'
 	end
 end
 
@@ -117,7 +118,7 @@ if $ARGS[0] = 'cum_talk':
 	gs'sex_ev_pillow_talk', 'broken_creampie_rule'
 	gs'sex_ev_pillow_talk', 'plastered'
 	gs'sex_ev_pillow_talk', 'thank_no_creampie'
-	gs'sex_ev_pillow_talk', 'mess_for_maids'
+	gs'sex_ev_pillow_talk', 'sex_mess'
 	if sex_ev['creampie_count'] > 0 and npc_free_creampies[$boy] < 1: gs'sex_ev_pillow_talk', 'free_creampies'
 	if sex_ev['pullout_count'] > 0 and sex_ev['creampie_count'] = 0 and npc_creampie_permission[$boy] = 0 and npc_free_creampies[$boy] < 1: gs'sex_ev_talk', 'creampie_permission1'
 end
@@ -833,80 +834,92 @@ if $ARGS[0] = 'wish_no_condoms1':
 end
 
 if $ARGS[0] = 'wish_no_condoms2':
-	if daystart < npc_bc_promise[$boy] and npc_know_bc[$boy] ! 1:
-		'"But you said you were gonna start birth control, didn''t you?"'
-		act'Eventually...':
-			cla & *nl
-			!!npc_bc_eventually[$boy] += 1
-			'"Yeah, yeah," you say. "I''ll get to it eventually."'
-			'<<$npc_firstname[$boy]>> gives you a look but doesn''t say anything.'
-			gs'sex_ev_pillow_talk', 'topic_route'
-		end
-		if npc_bc_promise[$boy] = daystart or npc_bc_promise[$boy] = daystart - 1:
-			act'Give me some time (laugh)':
-				cla & *nl
-				iif(npc_bc_promise[$boy] = daystart, '"Yeah, maybe <i>later</i>," you giggle. "I only just told you today. Give me a few days at least."', '"Yeah, maybe in a few days," you giggle. "I only just told you <i>yesterday!</i> Give me a little time."')
-				gs'sex_ev_pillow_talk', 'topic_route'
-			end
-			
-			act'Give me some time (annoyed)':
+	if daystart > npc_bc_promise[$boy] and npc_bc_promise[$boy] > 0 and npc_know_bc[$boy] ! 1:
+		if pillcon2 = 0:
+			'"But you said you were gonna start birth control, didn''t you?"'
+			act'Eventually...':
 				cla & *nl
-				iif(npc_bc_promise[$boy] = daystart, '"Yeah, maybe <i>later</i>," you scowl. "I only just told you <i>today</i>. At least give me a few days before you start hounding me. Sheesh."', '"Yeah, maybe <i>later</i>," you scowl. "I only just told you <i>yesterday</i>. At least give me a few days before you start hounding me. Sheesh."')
+				!!npc_bc_eventually[$boy] += 1
+				'"Yeah, yeah," you say. "I''ll get to it eventually."'
+				'<<$npc_firstname[$boy]>> gives you a look but doesn''t say anything.'
 				gs'sex_ev_pillow_talk', 'topic_route'
 			end
-		else
-			act'Oops, forgot':
-				cla & *nl
-				'You blink.'
-				'"Oh. Yeah. I forgot about that..." You smile sheepishly.'
-				'"Are you sure this is a good idea?" <<$npc_firstname[$boy]>> asks, looking concerned.'
-				'"What? Why?"'
-				'"You know that birth control usually involves remembering to take a pill, right?"'
-				act'Reconsider':
-					cla & *clr
-					$sex_ev['bed_room']
-					'You stop to consider the question.'
-					'<i>Is</i> this a good idea?'
-					iif(age < 20, 'Forgetfulness could be the difference between a happy sex life and becoming a teen mom. And it''s a lot harder to forget to put on a condom.','Forgetfulness could be the difference between a happy sex life and suddenly finding yourself a mom. And it''s a lot harder to forget to put on a condom.')
-					act'Maybe stick to condoms':
-						npc_bc_promise[$boy] = 0
-						cla & *clr
-						'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
-						'"Maybe..." you say slowly. "... we should just stick to condoms..."'
-						'<<$npc_firstname[$boy]>> smiles at you, but also breathes a sigh, looking relieved.'
-						gs'sex_ev_pillow_talk', 'topic_route'
-					end
-					
-					act'No, you''ll follow through':
-						cla & *clr
-						'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
-						'"No," you shake your head and look into <<$npc_firstname[$boy]>>''s eyes. "I''ll be good, I promise. I won''t mess up with my future on the line."'
-						iif(npc_childfree[$boy] = 0, 'He stares back at you, looking concerned but doesn''t say anything further and lets the matter drop.','"It''s not just your future on the line you know..." he replies, looking serious.')
-						gs'sex_ev_pillow_talk', 'topic_route'
-					end
-				end
-				
-				act'It''ll be fine':
+			if npc_bc_promise[$boy] = daystart or npc_bc_promise[$boy] = daystart - 1:
+				act'Give me some time (laugh)':
 					cla & *nl
-					'"It''ll be fine," you say, smiling gently. "Just trust me."'
-					'He gives you a look but doesn''t say anything further and lets the matter drop.'
+					iif(npc_bc_promise[$boy] = daystart, '"Yeah, maybe <i>later</i>," you giggle. "I only just told you today. Give me a few days at least."', '"Yeah, maybe in a few days," you giggle. "I only just told you <i>yesterday!</i> Give me a little time."')
 					gs'sex_ev_pillow_talk', 'topic_route'
 				end
 				
-				act'It''ll be <i>fiiiiine</i>':
+				act'Give me some time (annoyed)':
 					cla & *nl
-					'"Don''t worry about it," you say, casually brushing it off. "It''ll be <i>fiiiiine</i>."'
-					'He stares back at you, looking concerned but doesn''t say anything further and lets the matter drop.'
+					iif(npc_bc_promise[$boy] = daystart, '"Yeah, maybe <i>later</i>," you scowl. "I only just told you <i>today</i>. At least give me a few days before you start hounding me. Sheesh."', '"Yeah, maybe <i>later</i>," you scowl. "I only just told you <i>yesterday</i>. At least give me a few days before you start hounding me. Sheesh."')
 					gs'sex_ev_pillow_talk', 'topic_route'
 				end
-				
-				act'Not if you get the shot':
+			else
+				act'Oops, forgot':
 					cla & *nl
-					'"I don''t need to remember anything if I get the shot," you grin back.'
-					'"Except when you need to renew it." Despite the jab, he smiles back looking nearly excited.'
-					gs'sex_ev_pillow_talk', 'topic_route'
+					'You blink.'
+					'"Oh. Yeah. I forgot about that..." You smile sheepishly.'
+					'"Are you sure this is a good idea?" <<$npc_firstname[$boy]>> asks, looking concerned.'
+					'"What? Why?"'
+					'"You know that birth control usually involves remembering to take a pill, right?"'
+					act'Reconsider':
+						cla & *clr
+						$sex_ev['bed_room']
+						'You stop to consider the question.'
+						'<i>Is</i> this a good idea?'
+						iif(age < 20, 'Forgetfulness could be the difference between a happy sex life and becoming a teen mom. And it''s a lot harder to forget to put on a condom.','Forgetfulness could be the difference between a happy sex life and suddenly finding yourself a mom. And it''s a lot harder to forget to put on a condom.')
+						act'Maybe stick to condoms':
+							npc_bc_promise[$boy] = 0
+							cla & *clr
+							'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+							'"Maybe..." you say slowly. "... we should just stick to condoms..."'
+							'<<$npc_firstname[$boy]>> smiles at you, but also breathes a sigh, looking relieved.'
+							gs'sex_ev_pillow_talk', 'topic_route'
+						end
+						
+						act'No, you''ll follow through':
+							cla & *clr
+							'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk2.jpg"></center>'
+							'"No," you shake your head and look into <<$npc_firstname[$boy]>>''s eyes. "I''ll be good, I promise. I won''t mess up with my future on the line."'
+							iif(npc_childfree[$boy] = 0, 'He stares back at you, looking concerned but doesn''t say anything further and lets the matter drop.','"It''s not just your future on the line you know..." he replies, looking serious.')
+							gs'sex_ev_pillow_talk', 'topic_route'
+						end
+					end
+					
+					act'It''ll be fine':
+						cla & *nl
+						'"It''ll be fine," you say, smiling gently. "Just trust me."'
+						'He gives you a look but doesn''t say anything further and lets the matter drop.'
+						gs'sex_ev_pillow_talk', 'topic_route'
+					end
+					
+					act'It''ll be <i>fiiiiine</i>':
+						cla & *nl
+						'"Don''t worry about it," you say, casually brushing it off. "It''ll be <i>fiiiiine</i>."'
+						'He stares back at you, looking concerned but doesn''t say anything further and lets the matter drop.'
+						gs'sex_ev_pillow_talk', 'topic_route'
+					end
+					
+					act'Not if you get the shot':
+						cla & *nl
+						'"I don''t need to remember anything if I get the shot," you grin back.'
+						'"Except when you need to renew it." Despite the jab, he smiles back looking nearly excited.'
+						gs'sex_ev_pillow_talk', 'topic_route'
+					end
 				end
 			end
+		elseif npc_know_bc_not_effective[$boy] = 1:
+			'"I can''t wait until your birth control is ready," <<$npc_firstname[$boy]>> says.'
+			'"Me either," you agree.'
+			gs'sex_ev_pillow_talk', 'topic_route'
+		else
+			npc_know_bc_not_effective[$boy] = 1
+			'"But you said you were gonna start birth control, didn''t you?"'
+			'"I did," you smile. "I''m on the pill now. But it''s not ready yet. Still going to be a while longer until it''s safe."'
+			'"Can''t come soon enough," he smiles back.'
+			gs'sex_ev_pillow_talk', 'topic_route'
 		end
 	elseif npc_condom_conscious[$boy] > 0:
 		if $npc_cum_pref[$boy] = 'creampie' and sex_ev['want_creampie_talk'] = 1:
@@ -1285,9 +1298,9 @@ if $ARGS[0] = 'thank_no_creampie':
 							act'Birth control hasn''t kicked in':
 								npc_know_start_bc[$boy] = 1
 								cla & *nl
-								'"I just started the pill," you say. "But it hasn''t kicked in yet."'
+								'"Probably," you smile wryly. "My birth control hasn''t kicked in yet."'
 								if $npc_cum_pref[$boy] = 'creampie':
-									'"Tell me when it does," he says. "I can''t wait to pump you full of cum."'
+									'"Tell me when it does," he says. "I''ll come to pump you full of cum."'
 									
 									act'We''ll see':
 										cla & *nl
@@ -1625,47 +1638,84 @@ if $ARGS[0] = 'plastered':
 	end
 end
 
-if $ARGS[0] = 'mess_for_maids':
+if $ARGS[0] = 'mess_text':
 	if $sex_ev['loc'] = 'hotel_room' and sex_ev['mess_for_maid_talk'] = 0 and sex_ev['cum_count'] >= 5 and sex_ev['cum_count'] - (sex_ev['cum_mouth'] - sex_ev['facial_count']) >= 4:
-		act'A real mess for the maids':
-			sex_ev['mess_for_maid_talk'] = 1
+		$sex_ev['mess_act'] = 'A real mess for the maids'
+		$sex_ev['mess_dialogue1'] = 'We made a real mess for the maids to clean up,'
+	elseif $sex_ev['loc'] = 'pc_home' and sex_ev['wash_sheets_talk'] = 0 and $sex_ev['bed_choice'] = 'anya_bed':
+		$sex_ev['mess_act'] = 'My sister''s gonna kill me'
+		$sex_ev['mess_dialogue1'] = 'Oh man...'
+	elseif $sex_ev['loc'] = 'pc_home' and sex_ev['wash_sheets_talk'] = 0:
+		$sex_ev['mess_act'] = 'Need to wash my sheets'
+		$sex_ev['mess_dialogue1'] = 'I''m gonna have to wash my sheets after this,'
+	end
+end
+
+if $ARGS[0] = 'sex_mess':
+	gs'sex_ev_pillow_talk', 'mess_text'
+	if (($sex_ev['loc'] = 'hotel_room' and sex_ev['mess_for_maid_talk'] = 0) or ($sex_ev['loc'] = 'pc_home' and sex_ev['wash_sheets_talk'] = 0)) and sex_ev['cum_count'] >= 5 and sex_ev['cum_count'] - (sex_ev['cum_mouth'] - sex_ev['facial_count']) >= 4:
+		act'<<$sex_ev[''mess_act'']>>':
 			cla & *clr
+			sex_ev['wash_sheets_talk'] = 1
+			sex_ev['mess_for_maid_talk'] = 1
 			'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
 			if sex_ev['virgin'] = 1 and sex_ev['fuck_count'] > 0:
 				if sex_ev['cum_count'] - sex_ev['cum_condom'] > 1 and sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the cum on the bed and the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the light pink blots of blood from your lost virginity.', ' As well as the light pink blots of blood from your lost virginity.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the cum on the bed and the used condoms scattered across the room,' + iif(sex_ev['orgasm_count'] >= 3, ' wet spots of pussy juice soaking into the sheets and light pink blots of blood from your lost virginity.', ' As well as the light pink blots of blood from your lost virginity.')
 				elseif sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the light pink blots of blood from your lost virginity.', ' As well as the light pink blots of blood from your lost virginity.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the light pink blots of blood from your lost virginity.', ' As well as the light pink blots of blood from your lost virginity.')
 				else
-					'"We made a real mess for the maids to clean up," you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress, tinged pink by the blood of your virginity mixing in.', ' As well as the light pink blots of blood from your lost virginity.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress, tinged pink by the blood of your virginity mixing in.', ' As well as the light pink blots of blood from your lost virginity.')
 				end
 			elseif mesec > 0 and sex_ev['fuck_count'] > 0:
 				if sex_ev['cum_count'] - sex_ev['cum_condom'] > 1 and sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the cum on the bed and the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the dark red stains streaking across the sheets from your period.', ' As well as the dark red stains streaking across the sheets from your period.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the cum on the bed and the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the dark red stains streaking across the sheets from your period.', ' As well as the dark red stains streaking across the sheets from your period.')
 				elseif sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the dark red stains streaking across the sheets from your period.', ' As well as the dark red stains streaking across the sheets from your period.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets, as well as the dark red stains streaking across the sheets from your period.', ' As well as the dark red stains streaking across the sheets from your period.')
 				else
-					'"We made a real mess for the maids to clean up," you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress, tinged pink by the blood of your period mixing in.', ' As well as the dark red stains streaking across the sheets from your period.')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress, tinged pink by the blood of your period mixing in.', ' As well as the dark red stains streaking across the sheets from your period.')
 				end
 			else
 				if sex_ev['cum_count'] - sex_ev['cum_condom'] > 1 and sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the cum on the bed and the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets.', ' ')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the cum on the bed and the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets.', ' ')
 				elseif sex_ev['cum_condom'] >= 4:
-					'"We made a real mess for the maids to clean up," you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets.', ' ')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the used condoms scattered across the room.' + iif(sex_ev['orgasm_count'] >= 3, ' Not to mention the large wet spots of your own pussy juice soaking into the sheets.', ' ')
 				else
-					'"We made a real mess for the maids to clean up," you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress.', ' ')
+					'"<<$sex_ev[''mess_dialogue1'']>>" you say, looking at all of the ' + iif(sex_ev['orgasm_count'] >= 3, 'cum and pussy juice leftover from your lovemaking currently soaking into the bedsheets.', 'cum spattered across the bedsheets.') + iif($cum_loc['vagina'] >= 0, ' Not to mention <<$npc_firstname[$boy]>>''s load still oozing from your pussy into the mattress.', ' ')
 				end
 			end
-			
-			if npc_wife[$boy] = 1 and $npc_fidelity[$npclastgenerated] = 'cheater' and rand(1,2) = 1:
-				npc_has_wife_know[$boy] = 1
-				'"This is a bigger mess than I made with my wife on my first honeymoon," he chuckles.'
-			else
-				if rand(1,2) = 1:
-					'"I''m sure they''ve seen worse," he chuckles.'
+			if $sex_ev['bed_choice'] = 'anya_bed':
+				*nl
+				iif(sisterQW['sex_bed_count'] = 1,'"My sister is gonna kill me for fucking a guy in her bed," you smile ruefully at <<$npc_firstname[$boy]>>.', '"My sister is gonna kill me for fucking another guy in her bed," you smile ruefully at <<$npc_firstname[$boy]>>.')
+			end
+			if $sex_ev['mess_act'] = 'A real mess for the maids':
+				sex_ev['mess_for_maid_talk'] = 1
+				if npc_wife[$boy] = 1 and $npc_fidelity[$npclastgenerated] = 'cheater' and rand(1,2) = 1:
+					npc_has_wife_know[$boy] = 1
+					'"This is a bigger mess than I made with my wife on my first honeymoon," he chuckles.'
 				else
-					'"At least we don''t have to do it," he chuckles.'
+					if rand(1,2) = 1:
+						'"I''m sure they''ve seen worse," he chuckles.'
+					else
+						'"At least we don''t have to do it," he chuckles.'
+					end
+				end
+				!!gs'sex_ev_pillow_talk', 'topic_route'
+			elseif $sex_ev['mess_act'] = 'My sister''s gonna kill me':
+				
+				if $npc_humor[$boy] = 'perverted':
+					'"Maybe she''ll like the cum stains," he grins back.'
+				else
+					if rand(1,2) = 1:
+						'"Maybe she won''t notice," he chuckles.'
+					else
+						'"Maybe you can wash the sheets before she gets home," he chuckles.'
+					end
 				end
+				
+			elseif $sex_ev['mess_act'] = 'Need to wash my sheets':
+				if $npc_humor[$boy] = 'perverted': '"You don''t like your sheets cum-stained?" he grins back.'
+				!!gs'sex_ev_pillow_talk', 'topic_route'
 			end
 			gs'sex_ev_pillow_talk', 'topic_route'
 		end
@@ -1912,14 +1962,14 @@ if $ARGS[0] = 'free_creampies2':
 		'"I assume that means no more condoms then?" he asks.'
 		if npc_free_creampies[$boy] = 2:
 			'"No more condoms," you smile back.'
-			gs'sex_ev_talk', 'free_creampies_exit'
+			gs'sex_ev_talk', 'topic_exit'
 		else
 			act'No more condoms':
 				cla & *nl
 				npc_free_creampies[$boy] = 2
 				npc_bareback[$boy] = 1
 				'"No more condoms," you smile back.'
-				gs'sex_ev_talk', 'free_creampies_exit'
+				gs'sex_ev_talk', 'topic_exit'
 			end
 			
 			if birth_control['think_safe'] = 0:
@@ -1928,7 +1978,7 @@ if $ARGS[0] = 'free_creampies2':
 					npc_bareback[$boy] = 1
 					cla & *nl
 					'"Just remember to pull out when I''m ovulating," you smirk in reply.'
-					gs'sex_ev_talk', 'free_creampies_exit'
+					gs'sex_ev_talk', 'topic_exit'
 				end
 				
 				act'Condoms on danger days':
@@ -1937,7 +1987,7 @@ if $ARGS[0] = 'free_creampies2':
 					gs'sex_ev_stats', 'no_birth_control_know'
 					cla & *nl
 					'"Only when it''s safe," you reply. "I''m not on birth control so we''ll still need to use them when I''m fertile."'
-					gs'sex_ev_talk', 'free_creampies_exit'
+					gs'sex_ev_talk', 'topic_exit'
 				end
 			end
 		end

+ 0 - 1
locations/sex_ev_pillow_talk2.qsrc

@@ -8,7 +8,6 @@ if $ARGS[0] = 'small_talk':
 	gs'sex_ev_pillow_talk2', 'plans_later'
 	gs'sex_ev_pillow_talk2', 'weather_talk'
 	gs'sex_ev_pillow_talk2', 'fav_body_part'
-	gs'sex_ev_pillow_talk2', 'take_a_shower'
 !!	gs'sex_ev_work_talk1', 'job_talk'
 
 	if sex_ev['sleepover'] = 1:gs'sex_ev_talk', 'morning_talk'

+ 2 - 2
locations/sex_ev_reactions.qsrc

@@ -446,7 +446,7 @@ if $ARGS[0] = 'bask_external_cum2':
 		iif(sex_ev['catch_breath'] = 1, 'You lay back, panting hard to catch your breath, the warm glaze of <<$npc_firstname[$boy]>>''s cum across your chest already beginning to cool. It''s several minutes before your breathing finally calms.', 'You lay back, panting as you wind down, the warm glaze of <<$npc_firstname[$boy]>>''s cum across your chest already beginning to cool. You didn''t come, but that was <i>good</i>...')
 	elseif $sex_ev['last_cum'] = 'pullout':
 		if $sex_ev['position'] = 'miss' or $sex_ev['position'] = 'cowgirl':
-			'<center><img <<$set_imgh>> src="images/shared/sex/cum/stomach/sleep1.jpg"></center>'
+			'<center><img <<$set_imgh>> src="images/shared/sex/cum/after2.jpg"></center>'
 			iif(sex_ev['catch_breath'] = 1, 'You lay back, panting hard to catch your breath, feeling the warm cum on your belly already beginning to cool. It''s several minutes before your breathing finally calms.', 'You lay back, panting as you wind down, feeling the warm cum on your belly already beginning to cool. You didn''t come, but that was <i>good</i>...')
 		elseif $sex_ev['position'] = 'doggy':
 			'<center><img <<$set_imgh>> src="images/shared/sex/cum/back1.jpg"></center>'
@@ -518,7 +518,7 @@ end
 
 if $ARGS[0] = 'why_not_inside':
 	!!if sex_ev['no_condom'] = 1 and (sex_ev['promise_no_creampie'] ! 1 or sex_ev['creampie_allowance'] = 1) and sex_ev['not_inside'] ! 1 and sex_ev['pullout_ask'] ! 1 and sex_ev['creampie_ask'] < 1 and sex_ev['last_cum'] = 'pullout':
-	if sex_ev['no_condom'] = 1 and sex_ev['promise_no_creampie'] ! 1 and sex_ev['not_inside'] ! 1 and sex_ev['pullout_ask'] ! 1 and sex_ev['creampie_ask'] < 1 and sex_ev['last_cum'] = 'pullout':
+	if sex_ev['no_condom'] = 1 and sex_ev['promise_no_creampie'] ! 1 and sex_ev['not_inside'] ! 1 and sex_ev['pullout_ask'] ! 1 and sex_ev['creampie_ask'] < 1 and $sex_ev['last_cum'] = 'pullout':
 		act'Why didn''t you come inside me?':
 			cla & *clr
 			if $sex_ev['position'] = 'miss':

+ 6 - 2
locations/sex_ev_reactions_creampie.qsrc

@@ -1531,7 +1531,11 @@ if $ARGS[0] = 'creampie_apologize':
 				'"Sorry," you tease as you unlock your legs from behind <<$npc_firstname[$boy]>>. "I couldn''t resist."'
 			elseif $sex_ev['position'] = 'cowgirl':
 				'<center><img <<$set_imgh>> src="images/shared/sex/vag/cowgirl/smile1.jpg"></center>'
-				'"Sorry," you tease, sitting back on your haunches and taking extreme pleasure in the way it <i>squeezes</i> <<$npc_firstname[$boy]>>''s cum around his cock inside you. "I couldn''t resist."'
+				if sex_ev['came_together']:
+					'"Sorry," you pant, coming down from your own orgasm and sitting back on <<$npc_firstname[$boy]>>''s cock, taking extreme pleasure in the way the movement <i>squeezes</i> cum around it inside you. "I couldn''t resist."'
+				else
+					'"Sorry," you tease, sitting back on <<$npc_firstname[$boy]>>''s cock, taking extreme pleasure in the way the movement <i>squeezes</i> cum around it inside you. "I couldn''t resist."'
+				end
 			end
 			
 			gs 'sex_ev_sex', 'sex_end'
@@ -2797,7 +2801,7 @@ if $ARGS[0] = 'creampie_accident_birth_control':
 			'"Does... does that mean I can come inside you in the future?"'
 			gs 'sex_ev_talk', 'creampie_permission2'
 		end
-	else
+	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...'

+ 25 - 17
locations/sex_ev_sex.qsrc

@@ -27,23 +27,31 @@ if $ARGS[0] = 'sex_start':
 			else
 !!					cla & *nl
 				cla
-				$sex_ev['reset_pos'] = $sex_ev['position']
-!!					minut += rand(1,2)
-!!					'"Wanna keep going?" you ask, flexing your pussy around his cock. It twitches inside in response, feeling a little stiffer than before, causing you to grin. "That feels like a yes."'
-				act'Stay in the same position':
-					cla
-					gs 'sex_ev_sex', 'reset'
-					if sex_ev['no_condom'] ! 1:
-						gs 'sex_ev_condoms', 'condoms'
-					else
-						gt 'sex_ev_<<$sex_ev[''reset_pos'']>>', $sex_ev['pos_speed']
+				if $sex_ev['position'] ! '':
+					$sex_ev['reset_pos'] = $sex_ev['position']
+	!!					minut += rand(1,2)
+	!!					'"Wanna keep going?" you ask, flexing your pussy around his cock. It twitches inside in response, feeling a little stiffer than before, causing you to grin. "That feels like a yes."'
+					act'Stay in the same position':
+						cla
+						gs 'sex_ev_sex', 'reset'
+						if sex_ev['no_condom'] ! 1:
+							gs 'sex_ev_condoms', 'condoms'
+						else
+							gt 'sex_ev_<<$sex_ev[''reset_pos'']>>', $sex_ev['pos_speed']
+						end
 					end
-				end
-				
-				act'Change positions':
-					sex_ev['force_initiative'] = 1
-					sex_ev['change_pos'] = 1
-					cla
+					
+					act'Change positions':
+						sex_ev['force_initiative'] = 1
+						sex_ev['change_pos'] = 1
+						cla
+						if sex_ev['no_condom'] ! 1:
+							gs 'sex_ev_condoms', 'condoms'
+						else
+							gs 'sex_ev_sex', 'position_choose'
+						end
+					end
+				else
 					if sex_ev['no_condom'] ! 1:
 						gs 'sex_ev_condoms', 'condoms'
 					else
@@ -1427,6 +1435,7 @@ if $ARGS[0] = 'session_reset':
 	!!sex_ev['start_time'] = totminut
 	sex_ev['force_harden'] = 0
 	sex_ev['not_done'] = 0
+	sex_ev['boy_shower'] = 0
 	gs 'sex_ev_sex', 'reset'
 end
 
@@ -1506,7 +1515,6 @@ if $ARGS[0] = 'reset':
 	sex_ev['cant_hold_cum'] = 0
 	sex_ev['condom_check'] = 0
 	sex_ev['fuck_pos'] = 0
-	sex_ev['boy_shower'] = 0
 	$sex_ev['end_comment'] = ''
 	$sex_ev['cum_together_dialogue1'] = ''
 	sex_ev['hypno_came_together'] = 0

+ 21 - 20
locations/sex_ev_shower.qsrc

@@ -139,7 +139,7 @@ if $ARGS[0] = 'after_alone':
 				'You masturbate to get one more orgasm.'
 			end
 		end
-		gs 'sex_ev_foreplay', 'after_alone_towel'
+		gs 'sex_ev_shower', 'after_alone_towel'
 	end
 end
 
@@ -164,6 +164,7 @@ if $ARGS[0] = 'after_alone_towel':
 		gs'sex_ev_after', 'after_sex2'
 	end
 	act'Skip the towel':
+		cla & *clr
 		'<center><img <<$set_imgh>> src="images/shared/romance/lovers/misc/no_towel.jpg"></center>'
 		'You give your hair a quick wipe with <<$npc_firstname[$boy]>>''s towel to leave it merely damp instead of soaked and exit the bathroom.'
 		'His eyes light up as you step into his bedroom, naked, and still wet from the shower.'
@@ -232,6 +233,7 @@ if $ARGS[0] = 'shower_join1':
 	cla & *clr
 	sex_ev['join_shower'] = 1
 	sex_ev['boy_shower'] = 1
+	sex_ev['orgasm'] = orgasm
 	'<center><video autoplay loop src="images/shared/sex/shower/join1.mp4"></video></center>'
 	'A blast of steam hits you in the face as you open the bathroom door. You pad your way inside and open the shower to find <<$npc_firstname[$boy]>> under the faucet.'
 	gs 'sex_ev_shower', 'shower_join2'
@@ -425,7 +427,7 @@ if $ARGS[0] = 'shower_together_jerkoff1':
 		'You and <<$npc_firstname[$boy]>> face each other, staring into one another''s eyes as you fondle your most intimate parts. His cock is alive in your hand, twitching, stiffening, and pulsing as you work it with fervor. His fingers are on your clit, flicking your bean with intensity, occasionally slipping past to worm their way into your dripping snatch.'
 		*nl
 		'It feels as though the steam should be coming from your heavy breaths instead of the water.'
-		gs'sex_ev_shower', 'shower_together_jerkoff_cum1'
+		act'Make him cum':gs'sex_ev_shower', 'shower_together_jerkoff_cum'
 		gs'sex_ev_shower', 'together_bj1'
 		gs'sex_ev_shower', 'together_fuck_menu'
 	end
@@ -709,38 +711,37 @@ if $ARGS[0] = 'shower_together_jerkoff_cum':
 		'"Not inside me!" you yelp.'
 		*nl
 		'You practically jump off of his cock and begin furiously working it with your hand. Not even a second later, cum explodes from the tip, spattering across your stomach.'
-	else
-		$orgasm_or = 'yes'
+	elseif sex_ev['orgasm'] < orgasm:
 		gs'arousal', 'hj',-1
 		'Tension builds up inside you to bursting. You feel <<$npc_firstname[$boy]>>''s cock throb in your hand and you know he''s about to burst too.'
 		*nl
 		'You work him even harder, trying to finish him with one final sprint. <<$npc_firstname[$boy]>> grunts and cum explodes from his tip. The feel of his cum spattering across your stomach is the last thing you need and you come as well, moaning loudly even as you continue to finish him off.'
+	else
+		gs'arousal', 'hj',-1
+		'Tension builds up inside you to bursting. You feel <<$npc_firstname[$boy]>>''s cock throb in your hand and you can tell he''s about to burst.'
+		*nl
+		'You work him even harder, trying to finish him with one final sprint. <<$npc_firstname[$boy]>> grunts and cum explodes from his tip. It spatters across your belly, his cock pulsing in your hand, and you milk him for every last drop.'
 	end
 	gs 'sex_ev_shower', 'shower_together_end'
 end
 
 if $ARGS[0] = 'shower_cum_mouth1':
-	act'Make him come':
-		gs 'cum_call', 'mouth_swallow', $boy, 1
-		sex_ev['cum_count'] += 1
-		gs 'stat'
-		cla & *clr
-		'<center><video autoplay loop src="images/shared/sex/shower/deepthroat1.mp4"></video></center>'
-		if $sex_ev['position'] ! 'blowjob':'With extreme urgency, you hop off of <<$npc_firstname[$boy]>>''s cock and kneel down on the porcelain floor of the shower, wrapping his cock in your mouth.'
-		'"That''s it-!" <<$npc_firstname[$boy]>> grunts when you swallow it whole, lips kissing the base of his shaft. "I''m gonna-!"'
-		'He doesn''t even manage to finish his warning before he groans loudly and his cock pulses on your tongue. <<$npc_firstname[$boy]>> pulls you further down with his hand and hot salty liquid pours into the back of your throat, your only choice to swallow or choke.'
-		*nl
-		'Eventually his dick stops throbbing and you gently release him from your lips, looking up at him with seductive eyes.'
-		gs'sex_ev_shower', 'shower_together_end'
-	end
+	gs 'cum_call', 'mouth_swallow', $boy, 1
+	sex_ev['cum_count'] += 1
+	gs 'stat'
+	cla & *clr
+	'<center><video autoplay loop src="images/shared/sex/shower/deepthroat1.mp4"></video></center>'
+	if $sex_ev['position'] ! 'blowjob':'With extreme urgency, you hop off of <<$npc_firstname[$boy]>>''s cock and kneel down on the porcelain floor of the shower, wrapping his cock in your mouth.'
+	'"That''s it-!" <<$npc_firstname[$boy]>> grunts when you swallow it whole, lips kissing the base of his shaft. "I''m gonna-!"'
+	'He doesn''t even manage to finish his warning before he groans loudly and his cock pulses on your tongue. <<$npc_firstname[$boy]>> pulls you further down with his hand and hot salty liquid pours into the back of your throat, your only choice to swallow or choke.'
+	*nl
+	'Eventually his dick stops throbbing and you gently release him from your lips, looking up at him with seductive eyes.'
+	gs'sex_ev_shower', 'shower_cum_mouth2'
 end
 
 if $ARGS[0] = 'shower_cum_mouth2':
 	sex_ev['cum_mouth'] += 1
 	$sex_ev['last_cum'] = 'mouth'
-	cla & *clr
-	'<center><video autoplay loop src="images/shared/sex/shower/deepthroat1.mp4"></video></center>'
-	'<<$npc_firstname[$boy]>> cums in your mouth.'
 	act'Spit it out':
 		gs'cum_call', 'mouth',$boy,1
 		sex_ev['spit_count'] += 1

+ 50 - 6
locations/sex_ev_start.qsrc

@@ -168,6 +168,17 @@ if $ARGS[0] = 'hookup_initiate':
 	stat['hookup'] += 1
 end
 
+if $ARGS[0] = 'pc_home_img_init':
+	$sex_ev['loc'] = 'pc_home'
+	if $loc = 'korrPar' or $home['current'] = 'parents_home':
+		$sex_ev['bed_room'] = '<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/bedrpar.jpg"></center>'
+		$sex_ev['bath_room'] = '<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/vanrpar.jpg"></center>'
+		$sex_ev['kitchen_room'] = '<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/kuhrpar.jpg"></center>'
+		$sex_ev['living_room'] = '<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/sitrpar.jpg"></center>'
+		$sex_ev['hall_way'] = '<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/korrpar.jpg"></center>'
+	end
+end
+
 if $ARGS[0] = 'lover_home_img_init':
 	$sex_ev['loc'] = 'npc_home'
 	$sex_ev['bed_room'] = $npc_apt_bedroom[$boy]
@@ -200,6 +211,12 @@ if $ARGS[0] = 'fb_npc_home_start':
 	end
 end
 
+if $ARGS[0] = 'hookup_pc_home_start':
+	gs 'sex_ev_start', 'hookup_initiate'
+	gs 'sex_ev_start', 'pc_home_img_init'
+	gs 'sex_ev_start', 'begin'
+	gs 'sex_ev_start', 'undress'
+end
 if $ARGS[0] = 'hookup_npc_home_start':
 	gs 'sex_ev_start', 'hookup_initiate'
 	gs 'sex_ev_start', 'lover_home_img_init'
@@ -237,6 +254,7 @@ if $ARGS[0] = 'unique_npc_bed_start':
 	sex_ev['unique_npc'] = 1
 	gs 'sex_ev_start', 'lover_home_img_init'
 	gs 'sex_ev_start', 'begin'
+	gs 'sex_ev_start', 'undress_function'
 	gs 'sex_ev_foreplay', 'bed_start'
 end
 
@@ -468,6 +486,7 @@ if $ARGS[0] = 'fb_invited_start':
 		
 		if birth_control['think_safe'] = 1 and npc_know_bc[$boy] = 0:
 			act'Tell him you''re on birth control':
+				gs 'sex_ev_stats', 'birth_control_know'
 				cla & *clr
 				$sex_ev['bed_room']
 				'You step inside and draw close to <<$npc_firstname[$boy]>>. You lean in and whisper in his ear...'
@@ -480,20 +499,39 @@ if $ARGS[0] = 'fb_invited_start':
 					else
 						'"<i>I''m on birth control now. Let''s go bareback today.</i>"'
 					end
-					gs 'sex_ev_stats', 'birth_control_know'
 					act'Undress':gt 'sex_ev_start', 'undress'
 				end
 				
-				act'Come inside me':
+				act'Creampies are okay today':
 					sex_ev['creampie_allowance'] = 1
 					cla & *clr
 					$sex_ev['bed_room']
 					if npc_know_bc_not_effective[$boy] = 1 or npc_bc_promise[$boy] = 1:
-						'"<i>My birth control is ready. Pump me full of cum.</i>"'
+						'"<i>My birth control is ready. You can come inside me.</i>"'
 					else
-						'"<i>I''m on birth control now. Pump me full of cum.</i>"'
+						'"<i>I''m on birth control now. You can come inside me.</i>"'
 					end
-					gs 'sex_ev_stats', 'birth_control_know'
+					act'Undress':gt 'sex_ev_start', 'undress'
+				end
+			end
+		elseif mesec > 0:
+			act'"I''m on my period"':
+				cla & *clr
+				$sex_ev['bed_room']
+				'You step inside and draw close to <<$npc_firstname[$boy]>>. You lean in and whisper in his ear...'
+				*nl
+				act'No condoms':
+					cla & *clr
+					$sex_ev['bed_room']
+					'"<i>I''m on my period right now. Let''s go bareback today.</i>"'
+					act'Undress':gt 'sex_ev_start', 'undress'
+				end
+				
+				act'Come inside me':
+					sex_ev['creampie_allowance'] = 1
+					cla & *clr
+					$sex_ev['bed_room']
+					'"<i>I''m on my period right now. You can come inside me.</i>"'
 					act'Undress':gt 'sex_ev_start', 'undress'
 				end
 			end
@@ -674,7 +712,13 @@ if $ARGS[0] = 'undress':
 			'You tear each other''s clothes off, leaving a trail of discarded fabrics.'
 		end
 	end
-	gs 'sex_ev_foreplay', 'bed_start'
+	if $sex_ev['loc'] ! 'pc_home' or $home['current'] ! 'parents_home':
+		gs 'sex_ev_foreplay', 'bed_start'
+	else
+		act'Go to your bed':gs 'sex_ev_foreplay', 'bed_start'
+		
+		act'Go to Anya''s bed':$sex_ev['bed_choice'] = 'anya_bed' & sisterQW['sex_bed_count'] += 1 & sisterQW['sex_bed'] = daystart & gs 'sex_ev_foreplay', 'bed_start'
+	end
 end
 
 if $ARGS[0] = 'undress_function':

+ 39 - 1
locations/sex_ev_stats.qsrc

@@ -6,6 +6,7 @@ if $ARGS[0] = 'npc_update':
 	gs 'boy_updater', 'stamina_update'
 	gs 'boy_updater', 'humor_update'
 	gs 'boy_updater', 'schedule_update'
+	gs 'boy_updater', 'trait_updates'
 end
 
 if $ARGS[0] = 'starting_stats':
@@ -119,7 +120,7 @@ if $ARGS[0] = 'save_stats':
 	!! if your lover takes your virginity without consent
 	npc_virgin_rapist[$boy] += sex_ev['virgin_rape']
 	
-	if sex_ev['sleep_fuck'] > 0: npc_sleep_fuck += 1
+	if sex_ev['sleep_fuck'] > 0: npc_sleep_fuck[$boy] += 1
 	
 	if hour >= 8 and hour < 14 and week < 6 and mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and kanikuli = 0 and schoolProgulDay ! daystart:
 		!!absence from school
@@ -170,11 +171,48 @@ if $ARGS[0] = 'bareback_risk_deactive':
 	npc_bareback_risk[$boy] = 0
 end
 
+if $ARGS[0] = 'prostitution_pay_code':
+	if $npc_rel_type[$boy] = 'sugar_daddy' and sex_ev['sugar_daddy_paid'] = 0:
+		sex_ev['sugar_daddy_paid'] = 1
+		sex_ev['prostitution_paid'] = 1
+		money += npc_sugar_daddy_price[$boy] + sex_ev['prostitution_bonus']
+	elseif $npc_rel_type[$boy] = 'p_customer' and sex_ev['prostitution_paid'] = 0:
+		sex_ev['prostitution_paid'] = 1
+		money += npc_prostitution_price[$boy] + sex_ev['prostitution_bonus']
+	end
+end
+
 if $ARGS[0] = 'single_know':
+	!! the npc knows player is single
 	npc_know_have_boyfriend[$boy] = 0
 	npc_know_have_girlfriend[$boy] = 0
 end
 
+if $ARGS[0] = 'dating_boy_know':
+	!! the npc knows player is single
+	npc_know_have_boyfriend[$boy] = 1
+end
+
+if $ARGS[0] = 'dating_girl_know':
+	!! the npc knows player is single
+	npc_know_have_girlfriend[$boy] = 1
+end
+
+if $ARGS[0] = 'npc_is_single':
+	know_npc_girlfriend[$boy] = 0
+	know_npc_single[$boy] = 1
+end
+
+if $ARGS[0] = 'npc_is_dating':
+	know_npc_girlfriend[$boy] = 1
+	know_npc_single[$boy] = 0
+end
+
+if $ARGS[0] = 'npc_is_married':
+	know_npc_wife[$boy] = 1
+	know_npc_single[$boy] = 0
+end
+
 if $ARGS[0] = 'sleep_check':
 	sex_ev['sleep_cum_vagina'] = cum_loc['vagina']
 	sex_ev['sleep_cum_butt'] = cum_loc['butt']

+ 8 - 10
locations/sex_ev_talk.qsrc

@@ -1538,15 +1538,14 @@ end
 if $ARGS[0] = 'prostitution_payment':
 	if $npc_rel_type[$boy] = 'sugar_daddy' and sex_ev['sugar_daddy_paid'] = 0 and sex_ev['sex_over'] = 1:
 		act'Ask for your sugar money':
-			sex_ev['sugar_daddy_paid'] = 1
-			money += npc_sugar_daddy_price[$boy]
+			gs 'sex_ev_stats', 'prostitution_pay_code'
 			cla
 			act'Demurely':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk4.jpg"></center>'
 				'"Now that we''ve had our fun..." you smile sweetly. "And I did something for you... Don''t you have something for me...?"'
 				'You pout cutely, making doe eyes at <<$npc_firstname[$boy]>> who smiles back and reaches over to his wallet.'
-				'"Sure do," he says, pulling out <<npc_sugar_daddy_price[$boy]>><b>₽‎</b> in cash and handing it over to you. "There you go baby girl."'
+				'"Sure do," he says, pulling out <<npc_sugar_daddy_price[$boy] + sex_ev[''prostitution_bonus'']>><b>₽‎</b> in cash and handing it over to you. "There you go baby girl."'
 				'"Thank you daddy," you smile back and put the money away into your purse.'
 				gs 'sex_ev_after', 'relax_together'
 			end
@@ -1556,9 +1555,9 @@ if $ARGS[0] = 'prostitution_payment':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
 				if sex_ev['fuck_count'] > 0:
-					'"Okay, we''ve fucked. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_sugar_daddy_price[$boy]>><b>₽‎</b>.'
+					'"Okay, we''ve fucked. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_sugar_daddy_price[$boy] + sex_ev[''prostitution_bonus'']>><b>₽‎</b>.'
 				else
-					'"Okay, I got you off. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_sugar_daddy_price[$boy]>><b>₽‎</b>.'
+					'"Okay, I got you off. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_sugar_daddy_price[$boy] + sex_ev[''prostitution_bonus'']>><b>₽‎</b>.'
 				end
 				'"Here," he says. He offers it towards you and you snatch it out of his hand.'
 				'"Thanks," you reply absent-mindedly as you stuff the money into your purse.'
@@ -1567,15 +1566,14 @@ if $ARGS[0] = 'prostitution_payment':
 		end
 	elseif sex_ev['prostitution'] = 1 and sex_ev['prostitution_paid'] = 0:
 		act'Ask for your money':
-			sex_ev['prostitution_paid'] = 1
-			money += npc_prostitution_price[$boy]
+			gs 'sex_ev_stats', 'prostitution_pay_code'
 			cla
 			act'Demurely':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk4.jpg"></center>'
 				'"Now that we''ve had our fun..." you say, smiling sweetly at <<$npc_firstname[$boy]>>. "And I did something for you... Don''t you have something for me...?"'
 				'You pout cutely, making doe eyes at <<$npc_firstname[$boy]>> who smiles back and reaches over to his wallet.'
-				'"Yeah," he says, pulling out <<npc_prostitution_price[$boy]>><b>₽‎</b> in cash and handing it over to you. "Worth every ruble."'
+				'"Yeah," he says, pulling out <<npc_prostitution_price[$boy] + sex_ev[''prostitution_bonus'']>>]>><b>₽‎</b> in cash and handing it over to you. "Worth every ruble."'
 				'"Thank you very much," you smile back and put the money away into your purse.'
 				gs 'sex_ev_after', 'relax_together'
 			end
@@ -1584,9 +1582,9 @@ if $ARGS[0] = 'prostitution_payment':
 				cla & *clr
 				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk3.jpg"></center>'
 				if sex_ev['fuck_count'] > 0:
-					'"Okay, we''ve fucked. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_prostitution_price[$boy]>><b>₽‎</b>.'
+					'"Okay, we''ve fucked. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_prostitution_price[$boy] + sex_ev[''prostitution_bonus'']>><b>₽‎</b>.'
 				else
-					'"Okay, I got you off. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_prostitution_price[$boy]>><b>₽‎</b>.'
+					'"Okay, I got you off. Can I get paid now?" you ask bluntly. <<$npc_firstname[$boy]>> gives you a look but reaches over to his wallet and pulls out <<npc_prostitution_price[$boy] + sex_ev[''prostitution_bonus'']>><b>₽‎</b>.'
 				end
 				'"Here," he says. He offers it towards you and you snatch it out of his hand.'
 				'"Thanks," you reply absent-mindedly as you stuff the money into your purse.'

+ 1 - 1
locations/sex_ev_wakeup.qsrc

@@ -4,7 +4,7 @@ if $ARGS[0] = 'start':
 	sex_ev['morning_after'] = 1
 	if sex_ev['lover_left'] = 1:gt'sex_ev_wakeup', 'wake_alone'
 	if sex_ev['sleep_fuck'] = 1:gt'sex_ev_wakeup', 'sleep_fuck_wake'
-	if (npc_earlyriser[$boy] = 1 or hour >= 7) and (rand(1,10) < npc_sexdrive[$boy]/3):
+	if (npc_earlyriser[$boy] = 1 or hour >= 7) and (rand(1,10) < npc_sexdrive[$boy]):
 !!		if ($npc_cum_pref[$boy] = 'facial' or npc_humor[$boy] = 2) and rand(1,2) = 2:
 			gs'sex_ev_wakeup', 'cumshot_wakeup1'
 !!		else

+ 25 - 12
locations/stat_display.qsrc

@@ -1500,13 +1500,18 @@ if enable_show_status = 0:
 		if cheatNoDrink = 0: $stat_extra_msg += '<BR><b><<$pcs_hydra>></b>'
 		if cheatNoSleep = 0: $stat_extra_msg += '<BR><b><<$pcs_sleep>></b>'
 	elseif Enable_scalepic = 2:
-		$st_temp='rgb(<<(16777216 + fcolor) mod 256>>,<<(16777216 + fcolor)/256 mod 256>>,<<(16777216 + fcolor)/65536>>)'
-		$stat_extra_msg += '<p><font color="<<$st_temp>>"><TABLE width="300" cellpadding="1" cellspacing="0"><TR><TD width="85%">'+FUNC('indiktab', '2', pcs_horny, pcs_horny)+'</TD><TD> Arousal</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '2', pain['total'], pain['total'])+'</TD><TD> Pain</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_health * 100 / healthmax, pcs_health)+'</TD><TD> Health</TD></TR>'
-		if $start_type[1] ! 'nomagic': $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_mana * 100 / manamax, pcs_mana)+'</TD><TD> Mana</TD></TR>'
-		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_willpwr * 100 / willpowermax, pcs_willpwr)+'</TD><TD> Willpower</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_stam * 100 / stammax, pcs_stam)+'</TD><TD> Stamina</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_mood, pcs_mood)+'</TD><TD> Mood</TD></TR>'
-		if cheatNoEat = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_energy, pcs_energy)+'</TD><TD> Hunger</TD></TR>'
-		if cheatNoDrink = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_hydra, pcs_hydra)+'</TD><TD> Thirst</TD></TR>'
-		if cheatNoSleep = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_sleep, pcs_sleep)+'</TD><TD> Sleep</TD></TR></TABLE></font></p>'
+		$stat_extra_msg += '<font color="<<$fcolor>>"><TABLE cellpadding="1" cellspacing="0" width="300">'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '2', pcs_horny, pcs_horny)+'</TD><TD>&nbsp;Arousal</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '2', pain['total'], pain['total'])+'</TD><TD>&nbsp;Pain</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_health * 100 / healthmax, pcs_health)+'</TD><TD>&nbsp;Health</TD></TR>'
+		if $start_type[1] ! 'nomagic': $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_mana * 100 / manamax, pcs_mana)+'</TD><TD>&nbsp;Mana</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_willpwr * 100 / willpowermax, pcs_willpwr)+'</TD><TD>&nbsp;Willpower</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_stam * 100 / stammax, pcs_stam)+'</TD><TD>&nbsp;Stamina</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_mood, pcs_mood)+'</TD><TD>&nbsp;Mood</TD></TR>'
+		if cheatNoEat = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_energy, pcs_energy)+'</TD><TD>&nbsp;Hunger</TD></TR>'
+		if cheatNoDrink = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_hydra, pcs_hydra)+'</TD><TD>&nbsp;Thirst</TD></TR>'
+		if cheatNoSleep = 0: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_sleep, pcs_sleep)+'</TD><TD>&nbsp;Sleep</TD></TR>'
+		$stat_extra_msg += '</TABLE></font>'
 	else
 		gs 'indik', '2', pcs_horny, pcs_horny
 		$stat_extra_msg += '<BR><<$ind>> Arousal'
@@ -1558,10 +1563,19 @@ else
 	!skip if this is first message
 	if $stat_extra_msg ! '': $stat_extra_msg += '<br><a href="exec:Enable_showattr = 0 & gs ''$menu_obnovit''">▲Attributes:</a>'
 	if Enable_scalepic = 2:
-		$stat_extra_msg += '<font color="<<$st_temp>>"><TABLE cellpadding="1" cellspacing="0" width="300"><TR><TD width="85%">'+FUNC('indiktab', '1', 100 - pcs_inhib, 100 - pcs_inhib)+'</TD><TD> Inhibition</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_stren, pcs_stren)+'</TD><TD> Strength</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_agil, pcs_agil)+'</TD><TD> Agility</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_vital, pcs_vital)+'</TD><TD> Endurance</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_intel, pcs_intel)+'</TD><TD> Intelligence</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_sprt, pcs_sprt)+'</TD><TD> Spirit</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_react, pcs_react)+'</TD><TD nowrap> Reaction</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_chrsm, pcs_chrsm)+'</TD><TD> Charisma</TD></TR><TR><TD width="85%">'+FUNC('indiktab', '1', pcs_prcptn, pcs_prcptn)+'</TD><TD> Perception</TD></TR>'
-		if $start_type[1] ! 'nomagic': $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_magik, pcs_magik)+'</TD><TD> Magic</TD></TR>'
-		if succubusflag = 1: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', sucexcess, sucexcess)+'</TD><TD> Succubus Energy</TD></TR>'
-		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_apprnc / 2, pcs_apprnc)+'</TD><TD> Attractiveness</TD></TR>'
+		$stat_extra_msg += '<font color="<<$fcolor>>"><TABLE cellpadding="1" cellspacing="0" width="300">'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', 100 - pcs_inhib, 100 - pcs_inhib)+'</TD><TD>&nbsp;Inhibition</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_stren, pcs_stren)+'</TD><TD>&nbsp;Strength</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_agil, pcs_agil)+'</TD><TD>&nbsp;Agility</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_vital, pcs_vital)+'</TD><TD>&nbsp;Endurance</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_intel, pcs_intel)+'</TD><TD>&nbsp;Intelligence</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_sprt, pcs_sprt)+'</TD><TD>&nbsp;Spirit</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_react, pcs_react)+'</TD><TD>&nbsp;Reaction</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_chrsm, pcs_chrsm)+'</TD><TD>&nbsp;Charisma</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_prcptn, pcs_prcptn)+'</TD><TD>&nbsp;Perception</TD></TR>'
+		if $start_type[1] ! 'nomagic': $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_magik, pcs_magik)+'</TD><TD>&nbsp;Magic</TD></TR>'
+		if succubusflag = 1: $stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', sucexcess, sucexcess)+'</TD><TD>&nbsp;Succubus Energy</TD></TR>'
+		$stat_extra_msg += '<TR><TD width="85%">'+FUNC('indiktab', '1', pcs_apprnc / 2, pcs_apprnc)+'</TD><TD>&nbsp;Attractiveness</TD></TR>'
 		$stat_extra_msg += '</TABLE></font>'
 	else
 		gs 'indik', '1', 100 - pcs_inhib, 100 - pcs_inhib
@@ -1596,7 +1610,6 @@ else
 		$stat_extra_msg += '<BR>'
 	end
 end
-killvar '$st_temp'
 
 !!----------------▽Skills--------------------------
 

+ 51 - 48
locations/themes.qsrc

@@ -5,10 +5,19 @@ if $theme['name'] = '': $theme['name'] = 'Dynamic' & gs 'themes', 'set_dynamic'
 !! ------------------------------------------------------------------------------
 !! ---------------------------------- Helpers -----------------------------------
 !! ------------------------------------------------------------------------------
+
+!! picks an alternating color between table_bg and table_bg_alt
+!    use: $temp_bcolor = func('themes', 'alt_color', $temp_bcolor)
+
+!    when you pass blank $temp_bcolor ('') it will return table_bg
+!    when you pass $temp_bcolor again it will return table_bg_alt
 if $ARGS[0] = 'alt_color':
 	$result = iif($ARGS[1] = $theme['table_bg'], $theme['table_bg_alt'], $theme['table_bg'])
 end
 
+!! wrapper for above func to use with wardrobe system
+!! does the same thing but it sets $temp_bcolor instead of returning a value
+!    use: gs 'themes', 'clothing'
 if $ARGS[0] = 'clothing':
 	$temp_bcolor = func('themes', 'alt_color', $temp_bcolor)
 end
@@ -17,10 +26,16 @@ end
 !! ---------------------------------- Routing -----------------------------------
 !! ------------------------------------------------------------------------------
 if $ARGS[0] = 'outdoors':
-	gs 'themes', 'apply_'+$theme['type'], $ARGS[0]
+	gs 'themes', 'apply', $ARGS[0]
 elseif $ARGS[0] = 'indoors':
-	gs 'themes', 'apply_'+$theme['type'], $ARGS[0]
+	gs 'themes', 'apply', $ARGS[0]
 	gs 'indoors'
+elseif $ARGS[0] = 'apply':
+	if $theme['type'] = 'dynamic':
+		gs 'themes', 'apply_dynamic', $ARGS[1]
+	else
+		gs 'themes', 'apply_static', $ARGS[1]
+	end
 end
 
 !! ------------------------------------------------------------------------------
@@ -132,6 +147,7 @@ end
 !! ----------------------------------- Themes -----------------------------------
 !! ------------------------------------------------------------------------------
 if $ARGS[0] = 'set_dynamic':
+	gs 'themes', 'reset'
 	$theme['name'] = 'Dynamic'
 	$theme['type'] = 'dynamic'
 
@@ -141,6 +157,7 @@ if $ARGS[0] = 'set_dynamic':
 	$theme['fname'] = 'Tahoma'
 
 elseif $ARGS[0] = 'set_white':
+	gs 'themes', 'reset'
 	$theme['name'] = 'White'
 	$theme['type'] = 'static'
 	theme['is_dark'] = 0
@@ -162,6 +179,7 @@ elseif $ARGS[0] = 'set_white':
 	$theme['table_bg_alt'] = "#e6f2ff"
 
 elseif $ARGS[0] = 'set_black':
+	gs 'themes', 'reset'
 	$theme['name'] = 'Black'
 	$theme['type'] = 'static'
 	theme['is_dark'] = 1
@@ -183,6 +201,7 @@ elseif $ARGS[0] = 'set_black':
 	$theme['table_bg_alt'] = "#303030"
 
 elseif $ARGS[0] = 'set_gray':
+	gs 'themes', 'reset'
 	$theme['name'] = 'Modern Grey'
 	$theme['type'] = 'static'
 	theme['is_dark'] = 1
@@ -204,60 +223,44 @@ elseif $ARGS[0] = 'set_gray':
 	$theme['table_bg_alt'] = "#303030"
 
 elseif $ARGS[0] = 'set_custom':
+	gs 'themes', 'reset'
+	gs 'themes', 'check_custom_vars'
 	$theme['name'] = 'Custom'
-	$theme['type'] = 'static'
-	theme['is_dark'] = 1
-
-	theme['base03']  = rgb(0, 43, 54)
-	theme['base02']  = rgb(7, 54, 66)
-	theme['base01']  = rgb(88, 110, 117)
-	theme['base00']  = rgb(101, 123, 131)
-	theme['base0']   = rgb(131, 148, 150)
-	theme['base1']   = rgb(147, 161, 161)
-	theme['base2']   = rgb(238, 232, 213)
-	theme['base3']   = rgb(253, 246, 227)
-	theme['yellow']  = rgb(181, 137, 0)
-	theme['orange']  = rgb(203, 75, 22)
-	theme['red']     = rgb(220, 50, 47)
-	theme['magenta'] = rgb(211, 54, 130)
-	theme['violet']  = rgb(108, 113, 196)
-	theme['blue']    = rgb(38, 139, 210)
-	theme['cyan']    = rgb(42, 161, 152)
-	theme['green']   = rgb(133, 153, 0)
-
-	$theme['base03']  = "#002b36"
-	$theme['base02']  = "#073642"
-	$theme['base01']  = "#586e75"
-	$theme['base00']  = "#657b83"
-	$theme['base0']   = "#839496"
-	$theme['base1']   = "#93a1a1"
-	$theme['base2']   = "#eee8d5"
-	$theme['base3']   = "#fdf6e3"
-	$theme['yellow']  = "#b58900"
-	$theme['orange']  = "#cb4b16"
-	$theme['red']     = "#dc322f"
-	$theme['magenta'] = "#d33682"
-	$theme['violet']  = "#6c71c4"
-	$theme['blue']    = "#268bd2"
-	$theme['cyan']    = "#2aa198"
-	$theme['green']   = "#859900"
+	$theme['type'] = $custom_theme['type']
+	theme['is_dark'] = val($custom_theme['is_dark'])
+
+	theme['bcolor'] = custom_theme['bcolor']
+	theme['fcolor'] = custom_theme['fcolor']
+	theme['lcolor'] = custom_theme['lcolor']
+
+	$theme['bcolor'] = func('shortgs', 'rgb_to_hex', theme['bcolor'])
+	$theme['fcolor'] = func('shortgs', 'rgb_to_hex', theme['fcolor'])
+	$theme['lcolor'] = func('shortgs', 'rgb_to_hex', theme['lcolor'])
+
+	theme['fsize'] = custom_theme['fsize']
+	$theme['fname'] = $custom_theme['fname']
+	
+	$theme['table_bg'] = func('shortgs', 'rgb_to_hex', custom_theme['table_bg'])
+	$theme['table_bg_alt'] = func('shortgs', 'rgb_to_hex', custom_theme['table_bg_alt'])
+end
 
-	theme['bcolor'] = theme['base03']
-	theme['fcolor'] = theme['base2']
-	theme['lcolor'] = theme['blue']
+if $ARGS[0] = 'check_custom_vars':
+	if $custom_theme['type'] = '': $custom_theme['type'] = 'static'
+	if $custom_theme['is_dark'] = '': $custom_theme['is_dark'] = str(1)
 
-	$theme['bcolor'] = $theme['base03']
-	$theme['fcolor'] = $theme['base2']
-	$theme['lcolor'] = $theme['blue']
+	if custom_theme['bcolor'] = 0: custom_theme['bcolor'] = rgb(20, 20, 20)
+	if custom_theme['fcolor'] = 0: custom_theme['fcolor'] = rgb(255, 255, 255)
+	if custom_theme['lcolor'] = 0: custom_theme['lcolor'] = rgb(90, 180, 200)
 
-	theme['fsize'] = 16
-	$theme['fname'] = 'Roboto'
+	if custom_theme['fsize'] = 0: custom_theme['fsize'] = 12
+	if $custom_theme['fname'] = '': $custom_theme['fname'] = 'Tahoma'
 
-	$theme['table_bg'] = $theme['base03']
-	$theme['table_bg_alt'] = $theme['base02']
+	if custom_theme['table_bg'] = '': custom_theme['table_bg'] = rgb(32, 32, 32)
+	if custom_theme['table_bg_alt'] = '': custom_theme['table_bg_alt'] = rgb(48, 48, 48)
 end
 
 if $ARGS[0] = 'default_palette':
+	exit
 	theme['base03']  = rgb(0, 43, 54)
 	theme['base02']  = rgb(7, 54, 66)
 	theme['base01']  = rgb(88, 110, 117)

+ 2 - 2
locations/therapist_hotel.qsrc

@@ -187,7 +187,7 @@ if $ARGS[0] = 'event2':
 			act 'Go take a shower':
 				*clr & cla
 				minut += 5
-				if func('pcs_has_attr', 'body_tits_big'):
+				if func('pcs_has_attr', 'OR', 'body_tits_big', 'body_tits_huge'):
 					'He spends a lot of time fondling your breasts in a gentle manner. "These will make feeding our children a wonderful sight" he says and pulls you into the shower.'
 				else
 					'"Have you ever thought about getting work done? While your current size is nice, they could be larger" he says and pulls you into the shower.'
@@ -320,7 +320,7 @@ if $ARGS[0] = 'event3':
 		lastwornbranumber['therapist'] = brawornnumber
 		gs 'clothing', 'strip'
 
-		if func('pcs_has_attr', 'body_tits_big'):
+		if func('pcs_has_attr', 'OR', 'body_tits_big', 'body_tits_huge'):
 			'You sense his eyes on you the whole time. "I love watching your body move" he says and this compliment makes you feel happy. You feel like you might love this man, and he''s helped you so much with all your issues. "Thank you, I like to keep my body in healthy shape, I want you to be happy when looking at me" You tell him.'
 		else
 			'You feel his eyes on you the entire time. "So, I have a friend in St. Petersberg that sells a cream that can make your breasts grow larger. I want you to go there and buy some and use it" he suggests. "It will help you relax and help you with that issue you told me about while you were under hypnosis a few weeks back" he lies and you nod your head. "If you think it will help." You tell him.'

+ 6 - 0
locations/uni_lessons.qsrc

@@ -64,6 +64,12 @@ if $ARGS[0] = 'cikl':
 			end
 		end
 	end
+	!! Sets the variable university['break'] to 1 if it is in the break between semesters, 0 otherwise.
+	if university['exam_week'] > 0 or university['semester_week'] > 0:
+		university['break'] = 0
+	else
+		university['break'] = 1
+	end
 end
 
 if $ARGS[0] = 'short_break':

+ 4 - 4
locations/uni_lessons1.qsrc

@@ -10,15 +10,15 @@ close all
 !!uni students studying to be teachers - Igor Kruglov, Christina Zvereva, Vanya Yanka, Ekaterina "Katja" Meynold, Lebogang "Lebo" Kayode
 !!uni students studying nursing - Albina Barlovskaya, Lariska Gruzdeva, Viktoriya "Vicky" Meynold, Mia Radimova, Yana Radimova, Sofia 
 
-if katjaQW['meet_uni_class'] = 0:
+if katjaQW['meet_uni_class'] = 0 and $university['enrolled_in']= 'teaching_studies':
 	!!For running into Katja at the first class you both attend
 	gt 'katja_uni', 'first_in_class_meet', $ARGS[0]
 end
 
-if AlbinaQW['meet_uni_class'] = 0:
+!!if AlbinaQW['meet_uni_class'] = 0 and $university['enrolled_in']= 'nursing':
 	!!For running into Albina at the first class you both attend
-	gt 'albina_uni', 'first_in_class_meet', $ARGS[0]
-end
+	!!gt 'albina_uni', 'first_in_class_meet', $ARGS[0]
+!!end
 
 if $ARGS[0] = 'general_education_101':
 	menu_off = 1

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