115 Commits 1b4fcc0970 ... 86077b106a

Author SHA1 Message Date
  DSX93459 86077b106a Merge branch 'master' into DSXClothingTweaks 5 months ago
  bgkjdgbizgblzdgbr 3c06924e5d [fixed] Outcommented meeting Albina until the file is ready and made sure you only meet Katja if you are studying to be a teacher. 5 months ago
  bgkjdgbizgblzdgbr d1214afce5 [chenged/added] Added a varible to check it the university is on break or not. 5 months ago
  Kevin_Smarts b362ec74dd Merge remote-tracking branch 'Hornguy6/master' 5 months ago
  Kevin_Smarts 6c25bba379 Merge remote-tracking branch 'Anjuna/master' 5 months ago
  hornguy6 7f7c7bf220 [fixed] something about cumming with condoms 5 months ago
  hornguy6 a89978af74 [added] the code to leave pc home if you hooked up with a guy at home 5 months ago
  hornguy6 4dd67073a9 [added] some failsafe options for condom conditions 5 months ago
  hornguy6 b28df615ec [fixed] a problem with detecting position 5 months ago
  hornguy6 54067c70b3 [fixed] some stuff 5 months ago
  hornguy6 874e8c449b [added] seeding for sex at home 5 months ago
  hornguy6 c0721d9bad [changed] streamline the code, make some text edits 5 months ago
  hornguy6 e9b4a5ef3f [changed] probability because sex_drive will tend to be lower now 5 months ago
  hornguy6 91e5a0586c [added] more code to streamline stat changes 5 months ago
  hornguy6 080e9b8e98 [fixed] added identifying array 5 months ago
  hornguy6 3ca02f9121 [fixed] some shower stuff 5 months ago
  hornguy6 c1ba3e2bd1 [fixed] boy shower getting cleared in the wrong place 5 months ago
  hornguy6 c0f1af7351 [fixed] added in an if to the else to make it mutually exclusive 5 months ago
  hornguy6 1719a13c2b [changed] text edits 5 months ago
  hornguy6 c893da89da [added] filmed sex will add to local sex fame 5 months ago
  hornguy6 0f2f5ecf27 [fixed] remove redundant call 5 months ago
  hornguy6 d70d7c6c04 [fixed] nonexistent location leading to blank actions 5 months ago
  hornguy6 3bbda6131e [fixed] sending to wrong location 5 months ago
  hornguy6 c3058f739c [changed] text edit 5 months ago
  hornguy6 f89f836164 [changed] dynamically changing dialogue option 5 months ago
  hornguy6 fa3040616e [changed] text edits 5 months ago
  hornguy6 2faa736d71 [fixed] this section wasn't working as intended 5 months ago
  hornguy6 8c047929aa [fixed] moved gosubs higher to stop them from showing up in certain events 5 months ago
  hornguy6 cd9a20ce17 [changed] forgot to remove the other part of where it was sent to 5 months ago
  hornguy6 601603b091 [changed] picture for future image pack 5 months ago
  hornguy6 8cbf707cf5 [fixed] missing $ 5 months ago
  anjuna krokus 8266a3753d [added] SMStext_builder. A much simpler to use method of building an SMS. No more screwing around with tons of variables and confusing names. Now packaged together for ease of use! 5 months ago
  hornguy6 3886d24cc3 [fixed] greater than, not less than 5 months ago
  hornguy6 0521295311 [fixed] no more endless cycle of eating pussy 5 months ago
  hornguy6 3c407996a4 [changed] moved shower option 5 months ago
  hornguy6 26a75faf5a [fixed] missing cla & *clr 5 months ago
  hornguy6 4ac3817cee [fixed] bad gs 5 months ago
  anjuna krokus 7b2c9800fe [fixed] forgotton closing bracket in body 5 months ago
  anjuna krokus bca61771b8 [added] functionality to "get_value" function in npc_set_preference to return the closest value name (potentially useful in case of comparisons). Implemented exceptions to body_skin values to remove it's capabilities as a preference (for now) 5 months ago
  LinaHirata cb8f082161 [added] more lorem ipsum 5 months ago
  LinaHirata 504dc46d1a [fixed] qsp analyzer says its an error, the code seemed to work fine anyway but oh well.... 5 months ago
  LinaHirata 8df56e63c0 [fixed] oops... 5 months ago
  anjuna krokus 6a3238e129 [fixed] random floating } left in npcgeneratec 5 months ago
  LinaHirata 34ae2d681d [changed] less garbage stat indicators 5 months ago
  LinaHirata e77677abbf [seeding] ui images to item_cart 5 months ago
  LinaHirata 5abb773a11 [added] user customizable theme 5 months ago
  LinaHirata d95a5a3765 [fixed] minor syntax errors and typos 5 months ago
  anjuna krokus 4ac552ba33 [added] more body parameters to the body parameters menu in the cheat menu 5 months ago
  anjuna krokus 138176f327 [added] BMI calculation now also takes the first decimal of weight into account, making it slightly more accurate 5 months ago
  anjuna krokus 22e7b207f0 [changed] slightly changed the calculation of the body weight to ensure that healthy body mass relates to a healthy BMI. Will need to monitor whether the starting mass values must addapt as well 5 months ago
  anjuna krokus 2891c176d1 [added] More body_strength and body_tits preferences 5 months ago
  anjuna krokus 15cdeb0f2a [changed] the way we check whether the max relative hotcat difference is filled or not, to allow (for some inexplicable reason) this difference to be 0. 5 months ago
  anjuna krokus 5ef34b6ba5 [added/changed] added two new preferences. Changed small update to some preference names 5 months ago
  anjuna krokus d6f545ce51 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  Kevin_Smarts 65915b3180 [reversed] Shouldn't have posted this part. Oops 5 months ago
  anjuna krokus b77e32190a Forgotten [$ARGS[0]] in set_npc_attraction 5 months ago
  anjuna krokus 1d3523e8cf Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  Kevin_Smarts 434c910c0d Merge remote-tracking branch 'Felix/master' 5 months ago
  Kevin_Smarts a3dd3964eb Merge remote-tracking branch 'Anjuna/master' 5 months ago
  Kevin_Smarts 9beb7216b8 [changed] Its Christmas and I'm doing maths, fml 5 months ago
  anjuna krokus f3143d0673 [fixed] spelling error in deodorant 5 months ago
  anjuna krokus ba902dba84 [fixed] Kevin's previous fix to clothing exposure, also suggested by Kevin. 5 months ago
  anjuna krokus a4ae312205 [changed] hair_[length] to hair_lenght_[length] naming in pcs_has_attr 5 months ago
  anjuna krokus 1529f95f4b [removed] needless check equal to 1 5 months ago
  anjuna krokus a528eb7817 [changed] better check for expoded assest, suggested by Kevin 5 months ago
  anjuna krokus 9a1184cb47 [changed] Use the new OR function for pcs_has_attr 5 months ago
  anjuna krokus aa6924a852 [added] some more preferences, and updated the related comments 5 months ago
  anjuna krokus 8f419c723d [added] better examples of how to use npc_set_preference 5 months ago
  anjuna krokus 0325ec255b [added] comment for the logic stuff in pcs_has_attr 5 months ago
  anjuna krokus 1dc2edc311 [added] AND and OR functionality to pcs_has_attr, and improved a comment 5 months ago
  anjuna krokus 6de7a323a6 [changed] improved explanation in npc_set_preference 5 months ago
  anjuna krokus 1c71dd7810 [fixed] body description not fully using BMI and incorrect information in intro_customization 5 months ago
  DSX93459 0a5e0f3342 Merge branch 'master' into DSXClothingTweaks 5 months ago
  anjuna krokus 5d2951a2a0 [fixed] wrong information in intro customization 5 months ago
  LinaHirata e2a9403871 [fixed] enema option appearing when it shouldnt... 5 months ago
  anjuna krokus 175d5b5160 [added] placeholders for browsing assbook and visiting your friends pages. 5 months ago
  anjuna krokus af879e34d4 [added] the option to upload selfies to the assbook website. It still looks shit, but it (should) work 5 months ago
  anjuna krokus 9761391750 [removed] the "fix clothing" call, since pcs_hips should now be unchanged 5 months ago
  anjuna krokus d0f749b01c Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  bgkjdgbizgblzdgbr 094f05b376 [fixed] Debit limit added to using the card at the clinics. 5 months ago
  anjuna krokus 66dd1357d0 [fixed] blank screen when accepting the smuggle questline 5 months ago
  Kevin_Smarts 19c90c730a [updated] Purses for full custom were so out of date many were missing 5 months ago
  anjuna krokus 1555c78353 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  Kevin_Smarts bdf0b98f9a Merge remote-tracking branch 'Anjuna/master' 5 months ago
  anjuna krokus 596d64bc8d Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  bgkjdgbizgblzdgbr 3f4089eb7b Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  bgkjdgbizgblzdgbr a51dd934cc [changed] The cost of willpower call using the force type is now scaled with the player characters persuasion. 5 months ago
  anjuna krokus bb7e0bd3e0 [removed] unneeded bodymass fixing in body, softreset now that everything is (hopefully) properly initialised 5 months ago
  anjuna krokus 9bc62a1dd6 [fixed] Instead of only setting your starting mass distribution to genetic (which works for the range of body mass >= 50 and body mass <= 60), or as determined by your starting weight (wich works better in every other case), we now use the appropriate value which should prevent any sudden changes at the start. 5 months ago
  anjuna krokus 5aceb5d517 [fixed] some more fixes in body to ensure that the starting mass distribution is truly as defined in the start 5 months ago
  anjuna krokus b17240bc5e [fixed] a typing error which caused genbsize to not update properly when loading an old save. Found due to testing by BBZ01. 5 months ago
  anjuna krokus 31cfeb3c17 [fixed] issues arround getting payed for the experimental trials, the table layout, and the hair extension not working. Credits to Felix for finding the payment issue and the noticing the problem with the table layout 5 months ago
  Kevin_Smarts fd36109ca7 [fixed] This one should be pink 5 months ago
  Kevin_Smarts 0c8dcb6fec [fixed] 𝑍𝑒𝑑𝑟𝑡🍮 — Today at 17:15 5 months ago
  bgkjdgbizgblzdgbr 984100dc67 [fixed] Some Katja uni bugs. 5 months ago
  LinaHirata 2e94519b48 [changed] a bit more readable code for shaving options, should also take couple cycles less to run 5 months ago
  Kevin_Smarts 7262091433 Revert "[fixed] added two styles back in" 5 months ago
  Kevin_Smarts 3d2e5a1639 Merge remote-tracking branch 'Netuttki/master' 5 months ago
  Kevin_Smarts 1a866fd650 Merge remote-tracking branch 'Anjuna/master' 5 months ago
  hornguy6 d4dfb6fc41 [added] seeding in preparation for boy falling asleep after sex 5 months ago
  hornguy6 364bfbadc2 [added] peeing after sex 5 months ago
  hornguy6 e8be9d705e [added] filming during sex 5 months ago
  hornguy6 a421a34970 [fixed] gosubbing wrong location 5 months ago
  hornguy6 06f1ab2392 [fixed] loc should be hotel_room 5 months ago
  hornguy6 459dbd4911 [fixed] 0 should be 1 5 months ago
  hornguy6 5dec8d693a [fixed] missing $ 5 months ago
  hornguy6 853f5b3514 [fixed] possible dead end 5 months ago
  anjuna krokus d82563be6b [change] split up listretrieve to support showing part of the total selfie catalogue (aka only the clothed, the non-nude, only nudes, etc). Added more options in the "select a selfie" section of phone_selfies_popup to better support sending/uploading selfies 5 months ago
  anjuna krokus 4551b7ac5e Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  anjuna krokus 8dc819ca19 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 5 months ago
  anjuna krokus 1f76298c4c [fixed] leftover use of func in phone_selfies_popup 5 months ago
  netuttki a0b6613e5b Merge remote-tracking branch 'Kevin-upstream/master' 5 months ago
  netuttki baa6351fea Old prostitution content set prostitution flag - see description 5 months ago
  netuttki f7b6461b4b Merge remote-tracking branch 'Kevin-upstream/master' 5 months ago
  netuttki b24220ab85 Merge remote-tracking branch 'Kevin-upstream/master' 6 months ago
67 changed files with 3071 additions and 1711 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. 31 10
      locations/body.qsrc
  8. 184 243
      locations/booty_call_sms.qsrc
  9. 6 1
      locations/cikl.qsrc
  10. 18 18
      locations/city_clinic.qsrc
  11. 2 2
      locations/city_experimental_trials_events.qsrc
  12. 14 11
      locations/city_experimental_trials_list.qsrc
  13. 1 0
      locations/city_trashplace.qsrc
  14. 4 6
      locations/clothing.qsrc
  15. 1 1
      locations/din_bad.qsrc
  16. 33 26
      locations/din_van.qsrc
  17. 1 1
      locations/gschool_events.qsrc
  18. 13 41
      locations/indiktab.qsrc
  19. 42 33
      locations/intro_customization.qsrc
  20. 7 7
      locations/item_cart.qsrc
  21. 1 1
      locations/journal.qsrc
  22. 3 3
      locations/katja_city.qsrc
  23. 2 2
      locations/katja_city_sex.qsrc
  24. 178 4
      locations/komp_assbook.qsrc
  25. 9 7
      locations/mother.qsrc
  26. 95 128
      locations/nerd_game_night.qsrc
  27. 6 6
      locations/npc_reactions.qsrc
  28. 145 70
      locations/npc_set_preference.qsrc
  29. 319 239
      locations/npc_standard_preferences.qsrc
  30. 9 6
      locations/npcgeneratec.qsrc
  31. 7 2
      locations/npcpreservec.qsrc
  32. 36 23
      locations/npcstatic1.qsrc
  33. 18 18
      locations/pav_clinic.qsrc
  34. 1 0
      locations/pav_hotelReception.qsrc
  35. 1 1
      locations/pav_train_market.qsrc
  36. 362 210
      locations/pcs_has_attr.qsrc
  37. 68 37
      locations/phone_selfies.qsrc
  38. 2 2
      locations/phone_selfies_popup.qsrc
  39. 5 4
      locations/saveupdater.qsrc
  40. 3 4
      locations/set_npc_attraction.qsrc
  41. 98 57
      locations/sex_ev_after.qsrc
  42. 38 21
      locations/sex_ev_condoms.qsrc
  43. 40 40
      locations/sex_ev_cum.qsrc
  44. 288 26
      locations/sex_ev_events.qsrc
  45. 4 1
      locations/sex_ev_foreplay.qsrc
  46. 1 1
      locations/sex_ev_hookup_leave.qsrc
  47. 6 1
      locations/sex_ev_leave.qsrc
  48. 3 2
      locations/sex_ev_miss.qsrc
  49. 1 1
      locations/sex_ev_morning.qsrc
  50. 141 91
      locations/sex_ev_pillow_talk.qsrc
  51. 0 1
      locations/sex_ev_pillow_talk2.qsrc
  52. 2 2
      locations/sex_ev_reactions.qsrc
  53. 6 2
      locations/sex_ev_reactions_creampie.qsrc
  54. 25 17
      locations/sex_ev_sex.qsrc
  55. 22 21
      locations/sex_ev_shower.qsrc
  56. 52 8
      locations/sex_ev_start.qsrc
  57. 44 1
      locations/sex_ev_stats.qsrc
  58. 8 10
      locations/sex_ev_talk.qsrc
  59. 1 1
      locations/sex_ev_wakeup.qsrc
  60. 1 1
      locations/sex_ev_work_talk1.qsrc
  61. 56 43
      locations/stat_display.qsrc
  62. 1 0
      locations/street_walker.qsrc
  63. 51 48
      locations/themes.qsrc
  64. 2 2
      locations/therapist_hotel.qsrc
  65. 6 0
      locations/uni_lessons.qsrc
  66. 4 4
      locations/uni_lessons1.qsrc
  67. 38 34
      locations/willpower.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 ---------------------------------
 

+ 31 - 10
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
@@ -759,6 +771,7 @@ if $ARGS[0] = 'Set_mass_distribution_using_body':
 	pcs_mass['bust_message'] = pcs_mass['bust']
 	pcs_mass['butt_message'] = pcs_mass['butt']
 	
+	bodyVars['vhips'] = (pcs_mass['body'] - 60 + pcs_mass['butt'] - pcs_mass['butt_gen']) / 2
 end
 
 
@@ -842,7 +855,9 @@ if $ARGS[0] = 'softreset':
 	bodyresetflag = 1
 	:resetloop
 	if pcs_mass['body'] ! salolast:
-		if gamestartflag = 1: salobustdo = 1
+		if gamestartflag = 1:
+			salobustdo = 1
+		end
 		gs 'body', 'Update_Body'
 		jump 'resetloop'
 	end
@@ -934,8 +949,14 @@ end
 if $ARGS[0] = 'initial':
 	!!	Sets the genetic bust size if it was not set in the start routines
 	if pcs_mass['bust_gen'] = 0: pcs_mass['bust_gen'] = 12
-	
-	gs 'body', 'Set_mass_distribution_using_body', pcs_mass['body']
+	if pcs_mass['butt_gen'] = 0: pcs_mass['butt_gen'] = 20
+
+	if pcs_mass['body'] >= 50 and pcs_mass['body'] <= 60:
+		pcs_mass['bust'] = pcs_mass['bust_gen']
+		pcs_mass['butt'] = pcs_mass['butt_gen']
+	else
+		gs 'body', 'Set_mass_distribution_using_body', pcs_mass['body']
+	end
 
 	agilbuf = pcs_agil
 	strenbuf = pcs_stren

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

+ 18 - 18
locations/city_clinic.qsrc

@@ -238,7 +238,7 @@ if $ARGS[0] = 'start':
 					'The dentist examinees you and says it will cost 4500 <b>₽</b> to straighten your teeth and that you''ll have to wear a brace for three months. However, he states that he can''t promise they will be completely straight after one treatment.'
 				end
 
-				if money < zubpay and karta < zubpay:
+				if money < zubpay and karta + bankDebtLimit < zubpay:
 					*nl
 					'You do not have enough money to fix your teeth.'
 				else
@@ -265,7 +265,7 @@ if $ARGS[0] = 'start':
 							act 'Leave the clinic': minut += 5 & gt 'city_residential'
 						end
 					end
-					if karta >= zubpay:
+					if karta + bankDebtLimit >= zubpay:
 						act 'Sort out your teeth (card)':
 							*clr & cla
 							karta -= zubpay
@@ -302,7 +302,7 @@ if $ARGS[0] = 'start':
 			gs'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/clinic/optometrist.jpg"></center>'
 			'The optometrist takes you through a series of tests to measure the condition of your eyes.'
-			'He looks at you as if he has bad news for you. "Well, you probably already expected this, but your vision has deteriorated significantly. You''re going to need glasses to be able to read. The prescription I''m writing for you is for a simple set of rimmed glasses which you can pick up at the front desk before you leave.' 
+			'He looks at you as if he has bad news for you. "Well, you probably already expected this, but your vision has deteriorated significantly. You''re going to need glasses to be able to read. The prescription I''m writing for you is for a simple set of rimmed glasses which you can pick up at the front desk before you leave."' 
 			'He hands you a piece of paper. "Of course you can get a different pair elsewhere if you want better looking ones, the details for which ones you need are on your prescription. You can also get laser vision correction if you really don''t want to use glasses, but I''m going to be honest with you: that''s a very expensive procedure."'
 			pcs_nerd += 1
 			glassqw = 2
@@ -325,7 +325,7 @@ if $ARGS[0] = 'start':
 			act 'Return to the entrance': gt 'city_clinic', 'start'
 
 			if glass = 1:
-				if money < 4500 and karta < 4500:
+				if money < 4500 and karta + bankDebtLimit < 4500:
 					*nl
 					'You can''t afford the more stylish glasses.'
 				else
@@ -342,7 +342,7 @@ if $ARGS[0] = 'start':
 							act 'Return to the entrance': gt 'city_clinic', 'start'
 						end
 					end
-					if karta >= 4500:
+					if karta + bankDebtLimit >= 4500:
 						act 'Buy glasses (4,500 <b>₽</b>) (card)':
 							cla
 							karta -= 4500
@@ -359,7 +359,7 @@ if $ARGS[0] = 'start':
 			end
 
 			if glass ! 0:
-				if money < 75000 and karta < 75000:
+				if money < 75000 and karta + bankDebtLimit < 75000:
 					*nl
 					'You can''t afford the laser eye correction surgery.'
 				else
@@ -376,7 +376,7 @@ if $ARGS[0] = 'start':
 							act 'Return to the entrance': gt 'city_clinic', 'start'
 						end
 					end
-					if karta >= 75000:
+					if karta + bankDebtLimit >= 75000:
 						act 'Pay for laser correction (75,000 <b>₽</b>) (card)':
 							cla
 							karta -= 75000
@@ -419,7 +419,7 @@ if $ARGS[0] = 'stdclinic':
 		end
 	end
 
-	if karta >= 1000:
+	if karta + bankDebtLimit >= 1000:
 		act 'Get tested for STDs (1,000 <b>₽</b>) (card)':
 			karta -= 1000
 			gs 'city_clinic', 'stdcheck'
@@ -427,7 +427,7 @@ if $ARGS[0] = 'stdclinic':
 	end
 
 	if GerpesNapr > 0 and GerpesUkolDay ! daystart:
-		if money < 450 and karta < 450: *nl & 'You can''t afford your herpes shot.'
+		if money < 450 and karta + bankDebtLimit < 450: *nl & 'You can''t afford your herpes shot.'
 
 		if money >= 450:
 			act 'Get herpes shot (450 <b>₽</b>) (cash) You need <<GerpesNapr>> more injections to complete the treatment':
@@ -436,7 +436,7 @@ if $ARGS[0] = 'stdclinic':
 			end
 		end
 
-		if karta >= 450:
+		if karta + bankDebtLimit >= 450:
 			act 'Get herpes shot (450 <b>₽</b>) (card) You need <<GerpesNapr>> more injections to complete the treatment':
 				karta -= 450
 				gs 'city_clinic', 'herpes_shot'
@@ -445,7 +445,7 @@ if $ARGS[0] = 'stdclinic':
 	end
 
 	if TriperNapr > 0 and TriperUkolDay ! daystart:
-		if money < 750 and karta < 750: *nl & 'You can''t afford your gonorrhea shot.'
+		if money < 750 and karta + bankDebtLimit < 750: *nl & 'You can''t afford your gonorrhea shot.'
 
 		if money >= 750:
 			act 'Get gonorrhea shot (750 <b>₽</b>) (cash) You need <<TriperNapr>> more injections to complete the treatment':
@@ -454,7 +454,7 @@ if $ARGS[0] = 'stdclinic':
 			end
 		end
 
-		if karta >= 750:
+		if karta + bankDebtLimit >= 750:
 			act 'Get gonorrhea shot (750 <b>₽</b>) (card) You need <<TriperNapr>> more injections to complete the treatment':
 				karta -= 750
 				gs 'city_clinic', 'gonorrhea_shot'
@@ -463,7 +463,7 @@ if $ARGS[0] = 'stdclinic':
 	end
 
 	if SifNapr = 1:
-		if money < 1000 and karta < 1000: *nl & 'You can''t afford your syphilis shot.'
+		if money < 1000 and karta + bankDebtLimit < 1000: *nl & 'You can''t afford your syphilis shot.'
 
 		if money >= 1000:
 			act 'Get syphilis shot (1,000 <b>₽</b>) (cash)':
@@ -472,7 +472,7 @@ if $ARGS[0] = 'stdclinic':
 			end
 		end
 
-		if karta >= 1000:
+		if karta + bankDebtLimit >= 1000:
 			act 'Get syphilis shot (1,000 <b>₽</b>) (card)':
 				karta -= 1000
 				gs 'city_clinic', 'syphilis_shot'
@@ -481,7 +481,7 @@ if $ARGS[0] = 'stdclinic':
 	end
 
 	if GerpesOnce = 1 and week = 1 and day <= 10:
-		if money < 45000 and karta < 45000: *nl & 'You to go to private clinic and completely cure your herpes.'
+		if money < 45000 and karta + bankDebtLimit < 45000: *nl & 'You to go to private clinic and completely cure your herpes.'
 
 		if money >= 45000:
 			act 'Go to private clinic and completely cure your herpes (45,000 <b>₽</b>) (cash)':
@@ -490,7 +490,7 @@ if $ARGS[0] = 'stdclinic':
 			end
 		end
 
-		if karta >= 45000:
+		if karta + bankDebtLimit >= 45000:
 			act 'Go to private clinic and completely cure your herpes (45,000 <b>₽</b>) (card)':
 				karta -= 45000
 				gs 'city_clinic', 'herpes_cure'
@@ -499,7 +499,7 @@ if $ARGS[0] = 'stdclinic':
 	end
 
 	if KandidozOnce = 1 and week = 1 and day <= 10:
-		if money < 15000 and karta < 15000: *nl & 'You can''t afford to go to the private clinic and completely cure your yeast infection.'
+		if money < 15000 and karta + bankDebtLimit < 15000: *nl & 'You can''t afford to go to the private clinic and completely cure your yeast infection.'
 
 		if money >= 15000:
 			act 'Go to private clinic and completely cure your yeast infection. (15,000 <b>₽</b>) (cash)':
@@ -508,7 +508,7 @@ if $ARGS[0] = 'stdclinic':
 			end
 		end
 
-		if karta >= 15000:
+		if karta + bankDebtLimit >= 15000:
 			act 'Go to private clinic and completely cure your yeast infection. (15,000 <b>₽</b>) (card)':
 				karta -= 15000
 				gs 'city_clinic', 'yeast_cure'

+ 2 - 2
locations/city_experimental_trials_events.qsrc

@@ -1,7 +1,7 @@
 # city_experimental_trials_events
 
 
-expadj = func('_difficulty','getexpadj')
+!!expadj = func('_difficulty','getexpadj')
 
 	!!=========================!!
 	!!                         !!
@@ -603,7 +603,7 @@ if experimentQW['trial_duration'] <= 0:
 	msg 'You should visit the clinical trial desk at the city clinic and report your experiences.'
 end
 
-killvar 'exppadj'
+!!killvar 'exppadj'
 
 gs 'stat'
 

+ 14 - 11
locations/city_experimental_trials_list.qsrc

@@ -67,7 +67,8 @@ if $ARGS[0] = 'see_trials':
 	'You look through the long list of various available clinical trials and the following stick out:'
 	*nl
 	*nl
-	*pl '<center><table align="center" width=80%>'
+	*p '<center><table align="center" width=80%>'
+
 	cetl_i = 0
 	:loop_start
 		$temp_bgcolor = func('themes', 'alt_color', $temp_bgcolor)
@@ -75,15 +76,15 @@ if $ARGS[0] = 'see_trials':
 		if trial_maxs[cetl_i] = -1 or experimentQW['times_participated_<<cetl_i>>'] < trial_maxs[cetl_i]:
 			$temp_text += '<tr><td bgcolor="<<$temp_bgcolor>>" align="center"><a href="exec: gt ''city_experimental_trials_list'', ''<<$trial_sections[cetl_i]>>''"><<$trial_names[cetl_i]>></a>'
 		else
-			$temp_text += '<tr><td bgcolor="<<$temp_bgcolor>>" align="center"><font color="black"><<$trial_names[cetl_i]>></font>'
+			$temp_text += '<tr><td bgcolor="<<$temp_bgcolor>>" align="center"><font color="<<$fcolor>>"><<$trial_names[cetl_i]>></font>'
 		end
-		$temp_text += '</td> <td bgcolor="<<$temp_bgcolor>>" align="right"><font color="black">₽<<trial_pays[cetl_i]>></font></td></tr>'
+		$temp_text += '</td> <td bgcolor="<<$temp_bgcolor>>" align="right"><font color="<<$fcolor>>">₽<<trial_pays[cetl_i]>></font></td></tr>'
 
-		*pl '<<$temp_text>>'
+		*p '<<$temp_text>>'
 
 		cetl_i += 1
 	if cetl_i < arrsize('$trial_names'): jump 'loop_start'
-	*pl '</table></center>'
+	*p '</table></center>'
 
 	killvar '$temp_bgcolor'
 	killvar 'loop_start'
@@ -282,11 +283,11 @@ elseif $ARGS[0] = $trial_sections[1]:
 
 
 !! Hair extension shampoo
-elseif $ARGS[0] = $trial_section[2]:
+elseif $ARGS[0] = $trial_sections[2]:
 	$menu_loc = 'city_experimental_trials_list'
-	$menu_arg = $trial_section[2]
+	$menu_arg = $trial_sections[2]
 	 menu_off = 0
-	$loc_arg = $trial_section[2]
+	$loc_arg = $trial_sections[2]
 
 	minut += 2
 	'We have developed a hair extension shampoo, which enhances your natural hair growth leading to longer, fuller and glossier hair.'
@@ -294,8 +295,8 @@ elseif $ARGS[0] = $trial_section[2]:
 
 	act 'Sign up':
 		 experimentQW['times_participated_2'] += 1
-		$experimentQW['trial_active']          = $trial_sections[2]
-		 experimentQW['trial_duration']        =  trial_duration[2]
+		$experimentQW['trial_active'] = $trial_sections[2]
+		 experimentQW['trial_duration'] = trial_durations[2]
 
 		menu_off = 1
 		minut += 2
@@ -492,8 +493,10 @@ if $ARGS[0] = 'act_go_back':
 end
 
 if $ARGS[0] = 'act_return':
+	temp_pay = ARGS[1]
 	act 'Return to the clinic':
-		money += ARGS[1]
+		money += temp_pay
+		killvar 'temp_pay'
 		gs 'city_experimental_trials_list', 'killvars'
 		gt 'city_clinic', 'start'
 	end

+ 1 - 0
locations/city_trashplace.qsrc

@@ -134,6 +134,7 @@ $bomzstartqwestdi = {
 								exit
 							else
 								'The manager takes your details and passport. "Remember. Come back here on Thursday."'
+								act 'Leave': bomzQW = 1 & gt 'city_industrial'
 							end
 						end
 						gs 'arousal', 'end'

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

+ 33 - 26
locations/din_van.qsrc

@@ -1730,11 +1730,19 @@ if $ARGS[0] = 'shave_options':
 	*p '<table border=0 cellspacing=<<shave_img_hgt/25>> cellpadding=5>'
 
 	!! ROW 1: IMAGES
-		*P '<TR><TD><center><a href="exec:view''images/pc/body/pussy/hair/pussy.jpg''"><img Height = <<shave_img_hgt>> src="images/pc/body/pussy/hair/pussy.jpg"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],2)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],2)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],3)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],3)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],4)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],4)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],5)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],5)>>"></a></center></TD></TR>'
+		*p '<TR><TD><center><a href="exec:view''images/pc/body/pussy/hair/pussy.jpg''"><img Height = <<shave_img_hgt>> src="images/pc/body/pussy/hair/pussy.jpg"></a></center></TD>'
+		
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 2)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 3)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 4)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 5)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD></TR>'
 
 	!! ROW 1: TEXT
 		*p '<TR><TD><center>'
@@ -1770,11 +1778,20 @@ if $ARGS[0] = 'shave_options':
 		*p '</center></TD></TR>'
 
 	!! ROW 2: IMAGES
-		*P '<TR><TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],6)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],6)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],7)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],7)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],8)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],8)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],9)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],9)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',26,pcs_pubecol[2],10)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',26,pcs_pubecol[2],10)>>"></a></center></TD></TR>'
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 6)
+		*p '<TR><TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 7)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 8)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 9)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 26, pcs_pubecol[2], 10)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD></TR>'
 	
 	!! ROW 2: TEXT
 		*p '<TR><TD><center>'
@@ -1810,10 +1827,11 @@ if $ARGS[0] = 'shave_options':
 		*p '</center></TD></TR>'
 
 	!! ROW 3: IMAGES
-		*P '<TR><TD><center><a href="exec:view''<<FUNC(''$pube_image'',5,pcs_pubecol[2],11)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',5,pcs_pubecol[2],11)>>"></a></center></TD>'
-		*P '<TD><center><a href="exec:view''<<FUNC(''$pube_image'',16,pcs_pubecol[2],12)>>''"><img Height = <<shave_img_hgt>> src="<<FUNC(''$pube_image'',16,pcs_pubecol[2],12)>>"></a></center></TD>
-		*P <TD><center><a href="exec:view''images/pc/body/pussy/shave/bstrip.jpg''"><img Height = <<shave_img_hgt>> src="images/pc/body/pussy/shave/bstrip.jpg"></a></center></TD>
-		*P <TD><center><a href="exec:view''images/pc/body/pussy/shave/rectangle.jpg''"><img Height = <<shave_img_hgt>> src="images/pc/body/pussy/shave/rectangle.jpg"></a></center></TD></TR>'
+		$temp_pube_image = FUNC('$pube_image', 5, pcs_pubecol[2], 11)
+		*p '<TR><TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD>'
+
+		$temp_pube_image = FUNC('$pube_image', 16, pcs_pubecol[2], 12)
+		*p '<TD><center><a href="exec:view''<<$temp_pube_image>>''"><img Height = <<shave_img_hgt>> src="<<$temp_pube_image>>"></a></center></TD></TR>'
 
 	!! ROW 3: TEXT
 		*p '<TR><TD><center>'
@@ -1828,22 +1846,11 @@ if $ARGS[0] = 'shave_options':
 		else
 			*p 'Mini Bush'
 		end
-		'</center></TD><TD><center>'
-		if pubestyle ! 13 and pcs_pubes >= 20:
-			'<a href="exec:pubestyle = 13 & shave_length = 20 & shave_trigger = 26 &  '+iif(shave_menu = 3,'shave_menu = 1', 'shave_menu = 2')+' & gt ''din_van'', ''shave_options''">Bushy Strip</a>'
-		else
-			'Bushy Strip'
-		end
-		'</center></TD><TD><center>'
-		if pubestyle ! 14 and pcs_pubes > 20:
-			'<a href="exec:pubestyle = 14 & shave_length = 20 & shave_trigger = 26 & '+iif(shave_menu = 3,'shave_menu = 1', 'shave_menu = 2')+' & gt ''din_van'', ''shave_options''">Rectangle</a>'
-		else
-			'Rectangle'
-		end
 
 	*p '</center></TD></TR></table>'
 	*p '<sub><small>Lazy - (don''t immediately shave stubble)</small></sub></center>'
 
+	killvar '$temp_pube_image'
 	killvar '$temp_toggle'
 
 	act 'Return':menu_off = 0 & gt $loc, $loc_arg

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

+ 42 - 33
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
 
@@ -316,7 +316,7 @@ if $ARGS[0] = 'modpur':
 		:loopdanilovichpurses
 		*p '<a href="exec:gt ''intro_customization'', ''modpur'', ''danilovich'', <<i>>"><img src="images/pc/items/danilovich/purses/<<i>>.jpg" 	height="300" /></a>'
 		i += 1
-		if i <= 20:jump 'loopdanilovichpurses'
+		if i <= 60:jump 'loopdanilovichpurses'
 	end	
 	act 'Get Dolls':
 		*clr & cla
@@ -325,7 +325,7 @@ if $ARGS[0] = 'modpur':
 		:loopdollspurses
 		*p '<a href="exec:gt ''intro_customization'', ''modpur'', ''dolls'', <<i>>"><img src="images/pc/items/dolls/purses/<<i>>.jpg" 	height="300" /></a>'
 		i += 1
-		if i <= 20:jump 'loopdollspurses'
+		if i <= 40:jump 'loopdollspurses'
 	end
 	act 'Get Bomba':
 		*clr & cla
@@ -343,8 +343,17 @@ if $ARGS[0] = 'modpur':
 		:loopfashionistapurses
 		*p '<a href="exec:gt ''intro_customization'', ''modpur'', ''fashionista'', <<i>>"><img src="images/pc/items/fashionista/purses/<<i>>.jpg" 	height="300" /></a>'
 		i += 1
-		if i <= 20:jump 'loopfashionistapurses'
+		if i <= 40:jump 'loopfashionistapurses'
 	end
+	act 'Get Coco':
+		*clr & cla
+		'<center><img src="images/locations/pavlovsk/coco/shop_name.png"></center>'
+		i = 1
+		:loopcocopurses
+		*p '<a href="exec:gt ''intro_customization'', ''modpur'', ''coco'', <<i>>"><img src="images/pc/items/coco/purses/<<i>>.jpg" 	height="300" /></a>'
+		i += 1
+		if i <= 60:jump 'loopcocopurses'
+	end	
 	act 'Get Pussy_Cats':
 		*clr & cla
 		'<center><img src="images/locations/city/citycenter/mall/pussycat.png"></center>'
@@ -370,7 +379,7 @@ if $ARGS[0] = 'modpur':
 		:loopmoncheripurses
 		*p '<a href="exec:gt ''intro_customization'', ''modpur'', ''moncheri'', <<i>>"><img src="images/pc/items/moncheri/purses/<<i>>.jpg" 	height="300" /></a>'
 		i += 1
-		if i <= 20:jump 'loopmoncheripurses'
+		if i <= 40:jump 'loopmoncheripurses'
 	end
 	act 'I do not want a purse':
 		bag = 0
@@ -382,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:
@@ -445,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:

+ 3 - 3
locations/katja_city.qsrc

@@ -123,7 +123,7 @@ end
 if $ARGS[0] = 'clothes_start1':
 	katjaQW['shopping_day'] = daystart
 	gs 'npc_relationship', 'modify', 'A14', 'like'
-	!! This is just temporary so that only Pussy-Cats can be choosen until the others are added.
+	!! This is just temporary so that only Pussy-Cats can be chosen until the others are added.
 	if rand(1,5) = 0:
 		$store_choice = 'Fashionista'
 	elseif rand(1,4) = 0:
@@ -133,7 +133,7 @@ if $ARGS[0] = 'clothes_start1':
 	end
 	'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
 	'You suggest that you should try on some clothes while you''re here and Katja almost jumps with joy. "Yes, let''s! It will be so much fun!"'
-	if rand(0,1):
+	if rand(0,1) =1:
 		'"Let''s go to <<$store_choice>>," Katja says.'
 		act 'Go to <<$store_choice>>': gt 'katja_city', $store_choice
 	else
@@ -197,7 +197,7 @@ if $ARGS[0] = 'Pussy-Cats':
 		loop_counter += 1
 		if loop_counter = 600:
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big14.jpg"></center>'
-			'You try to put on what Katja brought you, but it''s ' + iif(pcs_mass['body'] < 45, 'way too loose and will fall off', 'so tight you can''t get into it') + ' so you give up. "I''m sorry, <<$pcs_nickname>>. I''ve miscalculated your size. Let me get something else," Katja says.'
+			'You try to put on what Katja brought you, but it''s ' + iif(pcs_bmi < 25, 'way too loose and will fall off', 'so tight you can''t get into it') + ' so you give up. "I''m sorry, <<$pcs_nickname>>. I''ve miscalculated your size. Let me get something else," Katja says.'
 			'You stop her before she runs out. "Hey don''t be sorry, it''s not your fault. Try what I picked out first."'
 			act 'Katja tries the clothes you picked': gt 'katja_city', 'pussy_cat_outfit<<rand(0,3)>>'
 		else

+ 2 - 2
locations/katja_city_sex.qsrc

@@ -917,7 +917,7 @@ end
 if $ARGS[0] =  'blindfold_sex2':
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/city/sex/blindfold_sex10.jpg"></center>'
 	'When you are free, <<$npc_nickname[$npclastgenerated]>> pushes your face to Katja''s pussy. You start to lick it and penetrate her vagina with your middle finger.'
-	'You then feel <<$npc_nickname[$npclastgenerated]>>''s <<dick>> cm <<$dick_girth>> entering your '+iif(pcs_vag <= dick, ' tight ', ' ')+' pussy, and he starts to pound you.'
+	'You then feel <<$npc_nickname[$npclastgenerated]>>''s <<dick>> cm <<$dick_girth>> entering your'+iif(pcs_vag <= dick, ' tight ', ' ')+'pussy, and he starts to pound you.'
 	katjaQW['horny'] += rand(10,20)
 	gs 'arousal', 'cuni_give', 3, 'group', 'lesbian'
 	gs 'arousal', 'vaginal_finger_give', -3, 'group', 'lesbian'
@@ -1497,7 +1497,7 @@ if $ARGS[0] = 'two_guys_cumming':
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/uni/city/walking_home_at_night.jpg"></center>'
 				'You leave the apartment and walk out into the streets, heading in the direction of the nearest metro station.'
 				'You keep walking and discussing the sex you just had. Soon you reach the metro station.'
-				act 'Enter the station': katjaQW['bondage_sex'] += 1 & gt 'katja_city', 'metro'
+				act 'Enter the station': gt 'katja_city', 'metro'
 			end
 		end
 	end

+ 178 - 4
locations/komp_assbook.qsrc

@@ -12,7 +12,7 @@ if $ARGS[0] = 'main' or $ARGS[0] = '':
 		'You have no internet access, ' + iif(access['metered'], ' you have to buy more minutes.', ' maybe you forgot to pay the internet bill?')
 		act '<B>Close the browser</B>': gt 'komp','start'
 	else
-		'<center><img <<$set_imgh>> src="images/system/image_needed.jpg"></center>'
+		'<center><img <<$set_imgh>> src="images/system/image_needed.png"></center>'
 		'You''re currently on Russia''s biggest social network site, "Assbook". Almost everyone has an account here'
 		*nl
 		if $assbook['account_name'] = '':
@@ -22,6 +22,9 @@ if $ARGS[0] = 'main' or $ARGS[0] = '':
 			act 'Go to your page': gt 'komp_assbook', 'login'
 		end
 		
+		act 'Browse assbook (0:20)': gt 'komp_assbook', 'browse'
+		act 'Look through your friends'' feeds': gt 'komp_assbook', 'friends'
+		
 		if shantfoto > 0: act 'Find the girl you took photos of in the park': gt 'komp_assbook', 'blackmail'
 		act 'Read more about Assbook': gt 'komp_assbook', 'mission_statements'
 	end
@@ -30,7 +33,7 @@ end
 
 if $ARGS[0] = 'signup':
 	'<center><b>Assbook</b></center>'
-	'<center><img <<$set_imgh>> src="images/system/image_needed.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/system/image_needed.png"></center>'
 	'You consider which name you''d like to register under.'
 	$assbook['account_name'] = input('Which name would you like to use? (Leave blank for <<$pcs_nickname>>)')
 	if $assbook['account_name'] = '': $assbook['account_name'] = '<<$pcs_nickname>>'
@@ -41,15 +44,186 @@ if $ARGS[0] = 'signup':
 	act 'Go back to the main page': gt 'komp_assbook', 'main'
 end
 
+if $ARGS[0] = 'browse':
+	minut += 20
+	elektro += 2
+	gs 'internet_mobile', 'use_internet', $subs, 20
+	gs 'stat'
+
+	'You spend some time browsing social media'
+
+	act 'Keep browsing assbook (0:20)': gt 'komp_assbook', 'browse'
+	act 'Go back to the main page': gt 'komp_assbook', 'main'
+end
+
+if $ARGS[0] = 'friends':
+	'You don''t know the account names of your friends :('
+	
+	'<font color="red">This content is WIP.</font>'
+	
+	act 'Go back to the main page': gt 'komp_assbook', 'main'
+end
+
+
+
+
+
 if $ARGS[0] = 'login':
-	'<center><img <<$set_imgh>> src="images/system/image_needed.jpg"></center>'
+	'<center><img <<$set_imgh>> src="images/system/image_needed.png"></center>'
 	
-	'This content is WIP.'
+	'<font color="red">This content is WIP.</font>'
+	*nl
+	'<a href="exec: gt ''komp_assbook'', ''upload_photo''">Upload a new photo</a>'
+	*nl
+	'Uploaded photos:'
+	gs 'phone_selfies', 'Phone_selfie_totals'
+
+	temp_locationCnt = 0
+	:LocationLoop
+		gs 'komp_assbook', 'showlocation', temp_locationCnt
+		temp_locationCnt += 1
+	if temp_locationCnt < arrsize('$selfieLoc'): jump'LocationLoop'
 	
 	act 'Go back to the main page': gt 'komp_assbook', 'main'
 end
 
 
+if $ARGS[0] = 'showlocation':
+	!'<center><h4><font color="maroon"><<$selfieLocDesc[ARGS[1]]>> selfies</font></h4></center>'
+	*nl
+	gs 'komp_assbook', 'listretrieve', ARGS[1], $selfieLoc[ARGS[1]]
+end
+
+
+if $ARGS[0] = 'listretrieve':
+	gs 'komp_assbook', 'retrieve_clothed_selfies',		ARGS[1], $ARGS[2]
+	gs 'komp_assbook', 'retrieve_swim_selfies',			ARGS[1], $ARGS[2]
+end
+
+!!  ARGS[1] is the index of the location in $selfieLoc[]
+!! $ARGS[2] is the selfie location
+if $ARGS[0] = 'retrieve_clothed_selfies':
+	!!Loop for clothed selfies, dynamics set variables as mixing them in loop instructions is bad
+	if selfieClotot[ARGS[1]] > 0:
+		!'<center><b>Clothed selfies</b></center>'
+		*nl
+		temp_clocnt = 1
+		:temp_loop
+			!!setting value to unmixed variable so it can be checked in the if below
+			dynamic 'assbook_locval = assbook_<<$ARGS[2]>>_clothed[<<temp_clocnt>>]'
+			if assbook_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'clothed', ARGS[1], temp_clocnt)
+			temp_clocnt += 1
+		if temp_clocnt <= selfieClotot[ARGS[1]]: jump 'temp_loop'
+	end
+end
+
+if $ARGS[0] = 'retrieve_swim_selfies':
+	if selfieSwimtot[ARGS[1]] > 0:
+		!'<center><b>Swimwear selfies</b></center>'
+		*nl
+		temp_clocnt = 1
+		:temp_loop1
+			!!setting value to unmixed variable so it can be checked in the if below
+			dynamic 'assbook_locval = assbook_<<$ARGS[2]>>_bikini[<<temp_clocnt>>]'
+			if assbook_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'bikini', ARGS[1], temp_clocnt)
+			temp_clocnt += 1
+		if temp_clocnt <= selfieSwimtot[ARGS[1]]: jump 'temp_loop1'
+	end
+end
+
+
+if $ARGS[0] = 'upload_photo':
+	menu_off = 1
+	temp_suppress_other_selfies = 1
+	$temp_ssh_ret_loc = 'komp_assbook'
+	$temp_ssh_ret_arg = 'upload_photo2'
+
+
+	gs 'phone_selfies', 'Phone_selfie_totals'
+
+	temp_locationCnt = 0
+	:LocationLoop
+		gs 'komp_assbook', 'showlocation2', temp_locationCnt
+		temp_locationCnt += 1
+	if temp_locationCnt < arrsize('$selfieLoc'): jump'LocationLoop'
+
+
+	act 'Go back to your page':
+		menu_off = 0
+		killvar 'temp_suppress_other_selfies'
+		killvar '$temp_ssh_ret_loc'
+		killvar '$temp_ssh_ret_arg'
+
+		minut += 1
+		gs 'internet_mobile', 'use_internet', $subs, 1
+
+		gt 'komp_assbook', 'login'
+	end
+end
+
+if $ARGS[0] = 'upload_photo2':
+	dynamic 'assbook_<<$ARGS[2]>>_<<$ARGS[3]>>[<<ARGS[5]>>] = 1'
+	menu_off = 0
+	killvar 'temp_suppress_other_selfies'
+	killvar '$temp_ssh_ret_loc'
+	killvar '$temp_ssh_ret_arg'
+
+	minut += 5
+	elektro += 1
+	gs 'internet_mobile', 'use_internet', $subs, 5
+
+	gt 'komp_assbook', 'login'
+end
+
+
+if $ARGS[0] = 'showlocation2':
+	'<center><h4><font color="maroon"><<$selfieLocDesc[ARGS[1]]>> selfies</font></h4></center>'
+	*nl
+	gs 'komp_assbook', 'listretrieve2', ARGS[1], $selfieLoc[ARGS[1]]
+end
+
+
+if $ARGS[0] = 'listretrieve2':
+	gs 'komp_assbook', 'upload_clothed_selfies',		ARGS[1], $ARGS[2]
+	gs 'komp_assbook', 'upload_swim_selfies',			ARGS[1], $ARGS[2]
+end
+
+
+!!  ARGS[1] is the index of the location in $selfieLoc[]
+!! $ARGS[2] is the selfie location
+if $ARGS[0] = 'upload_clothed_selfies':
+	!!Loop for clothed selfies, dynamics set variables as mixing them in loop instructions is bad
+	if selfieClotot[ARGS[1]] > 0:
+		!'<center><b>Clothed selfies</b></center>'
+		*nl
+		temp_clocnt = 1
+		:temp_loop
+			!!setting value to unmixed variable so it can be checked in the if below
+			dynamic 'assbook_locval = assbook_<<$ARGS[2]>>_clothed[<<temp_clocnt>>]'
+			dynamic 'phone_locval = <<$ARGS[2]>>_closelfie[<<temp_clocnt>>]'
+			if assbook_locval = 0 and phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'clothed', ARGS[1], temp_clocnt)
+			temp_clocnt += 1
+		if temp_clocnt <= selfieClotot[ARGS[1]]: jump 'temp_loop'
+	end
+end
+
+if $ARGS[0] = 'upload_swim_selfies':
+	if selfieSwimtot[ARGS[1]] > 0:
+		!'<center><b>Swimwear selfies</b></center>'
+		*nl
+		temp_clocnt = 1
+		:temp_loop1
+			!!setting value to unmixed variable so it can be checked in the if below
+			dynamic 'assbook_locval = assbook_<<$ARGS[2]>>_bikini[<<temp_clocnt>>]'
+			dynamic 'phone_locval = <<$ARGS[2]>>_swim[<<temp_clocnt>>]'
+			if assbook_locval = 0 and phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'bikini', ARGS[1], temp_clocnt)
+			temp_clocnt += 1
+		if temp_clocnt <= selfieSwimtot[ARGS[1]]: jump 'temp_loop1'
+	end
+end
+
+
+
 if $ARGS[0] = 'mission_statements':
 	'Introducing Assbook: Where Connections Speak Louder than Words!'
 	'Dive into the vibrant and dynamic world of Assbook, your passport to a digital realm filled with the rich tapestry of Russian culture, diverse communities, and unparalleled social interactions. Here''s why Assbook is the social media platform you''ve been waiting for:'

+ 9 - 7
locations/mother.qsrc

@@ -1165,18 +1165,20 @@ if $ARGS[0] = 'pregreact1':
 			act 'Continue':gt 'mother'
 		else
 			if (pcs_cp_safe_known + pcs_cp_notsafe_known + pcs_cp_risky_known) > 0:
-				if (pcs_cp_notsafe_known + pcs_cp_risky_known) > 1 and guy > 1:
-					act'I''m not sure':
+				if (pcs_cp_notsafe_known + pcs_cp_risky_known) = 0:
+					act'I don''t know (I used birth control)':
 						cla & *nl
-						'"I''m... not sure..." you admit, shamefully. "I wasn''t very careful."'
-						'"Oh honey," your <<$npc_nickname[''A29'']>> whispers, hugging you tight against her breast. "This is all my fault. Maybe I should have taught you better... But I''ll help you now. You are not alone in this."'
+						'"I don''t know!" you say, distressedly. "I mean, I did have sex, but I was careful! I used birth control and everything! I was so careful..."'
+						'"Oh honey," your <<$npc_nickname[''A29'']>> whispers, hugging you tight against her breast. "These things fail sometimes. It can happen. Maybe I should have taught you better. This is all my fault... But I''ll help you now. You are not alone in this."'
 						act 'Continue':gt 'mother'
 					end
+				!!elseif (pcs_cp_notsafe_known + pcs_cp_risky_known) > 1 and guy > 1:
+				!! need to create an option for if Sveta has only ever slept with 1 guy
 				else
-					act'I don''t know (I used birth control)':
+					act'I''m not sure':
 						cla & *nl
-						'"I don''t know!" you say, distressedly. "I mean, I did have sex, but I was careful! I used birth control and everything! I was so careful..."'
-						'"Oh honey," your <<$npc_nickname[''A29'']>> whispers, hugging you tight against her breast. "These things fail sometimes. It can happen. Maybe I should have taught you better. This is all my fault... But I''ll help you now. You are not alone in this."'
+						'"I''m... not sure..." you admit, shamefully. "I wasn''t very careful."'
+						'"Oh honey," your <<$npc_nickname[''A29'']>> whispers, hugging you tight against her breast. "This is all my fault. Maybe I should have taught you better... But I''ll help you now. You are not alone in this."'
 						act 'Continue':gt 'mother'
 					end
 				end

+ 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


+ 9 - 6
locations/npcgeneratec.qsrc

@@ -836,23 +836,26 @@ $npc_dna[$npclastgenerated] = func('DNA','create')
 	end
 
 	!! npc_spanker determines whether or not they''re into spanking during sex
-	npc_sex_spanker[$npclastgenerated] = rand(-1,1)
+	if rand(1,3) = 1: npc_sex_spanker[$npclastgenerated] = 1
 	
 	!! npc_childfree determines that they never want to have kids and will react poorly to pregnancy related topics
-	npc_childfree[$npclastgenerated] = rand(-3,1)
+	if rand(1,5) = 1: npc_childfree[$npclastgenerated] = 1
 	
 	!! if npc_pussyeater = 1: they have a fetish for eating pussy
 	!! if npc_pussyeater = -1: they refuse to eat pussy
-	npc_pussyeater[$npclastgenerated] = rand(-1,1)
+	if rand(1,3) = 1: npc_pussyeater[$npclastgenerated] = 1
 	
 	!! if npc_cuddler = 1: the npc likes to cuddle
-	npc_cuddler[$npclastgenerated] = rand(-1,1)
+	if rand(1,3) = 1: npc_cuddler[$npclastgenerated] = 1
 	
 	!! if npc_cum_cannon = 1: the npc ejaculates particularly large loads
-	npc_cum_cannon[$npclastgenerated] = rand(-3,1)
+	if rand(1,5) = 1: npc_cum_cannon[$npclastgenerated] = 1
+	
+	!! if npc_sex_filmer = 1: the npc likes to make sex videos
+	if rand(1,5) = 1: npc_sex_filmer[$npclastgenerated] = 1
 	
 	!! if npc_two_pump = 1: the npc will always cum immediately in the first penetration act of sex
-	npc_two_pump[$npclastgenerated] = rand(-5,1)
+	if rand(1,6) = 1: npc_two_pump[$npclastgenerated] = 1
 	
 !! ------------------------- date preferences ----------------------------------
 	!! favorite kind of date

+ 7 - 2
locations/npcpreservec.qsrc

@@ -152,12 +152,17 @@ if mid($npctemp,1,1) = 'C':
 	npc_dislikes_facials[$npclastsaved]	= npc_dislikes_facials[$npctemp]
 	npc_tit_pref[$npclastsaved]		= npc_tit_pref[$npctemp]
 	npc_bush_pref[$npclastsaved]	= npc_bush_pref[$npctemp]
-	npc_cum_cannon[$npclastsaved]		= npc_cum_cannon[$npctemp]
 	npc_sex_spanker[$npclastsaved] 		= npc_sex_spanker[$npctemp]
 	npc_pussyeater[$npclastsaved]		= npc_pussyeater[$npctemp]
-
+	npc_cum_cannon[$npclastsaved]		= npc_cum_cannon[$npctemp]
+	npc_sex_filmer[$npclastsaved]		= npc_sex_filmer[$npctemp]
+	
+	!! This checks if you have had sex with this person before or not
+	npc_sex[$npclastsaved] = npc_sex[$npctemp]
 
 	$npc_index[$npclastsaved] = $npclastsaved
+	
+	
 
 	! {This checks the miscellanious arrays for the Entry and changes it to the new Array B.}
 	:npctempmloop

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

+ 18 - 18
locations/pav_clinic.qsrc

@@ -193,7 +193,7 @@ if $ARGS[0] = '':
 								act 'Leave the clinic': minut += 5 & gt 'pav_commercial'
 							end
 						end
-						if karta >= zubpay:
+						if karta + bankDebtLimit >= zubpay:
 							act 'Sort out your teeth (card)':
 								*clr & cla
 								karta -= zubpay
@@ -230,7 +230,7 @@ if $ARGS[0] = '':
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/clinic/optometrist.jpg"></center>'
 				'The optometrist takes you through a series of tests to measure the condition of your eyes.'
-				'He looks at you as if he has bad news for you. "Well, you probably already expected this, but your vision has deteriorated significantly. You''re going to need glasses to be able to read. The prescription I''m writing for you is for a simple set of rimmed glasses which you can pick up at the front desk before you leave.' 
+				'He looks at you as if he has bad news for you. "Well, you probably already expected this, but your vision has deteriorated significantly. You''re going to need glasses to be able to read. The prescription I''m writing for you is for a simple set of rimmed glasses which you can pick up at the front desk before you leave."' 
 				'He hands you a piece of paper. "Of course you can get a different pair elsewhere if you want better looking ones, the details for which ones you need are on your prescription. You can also get laser vision correction if you really don''t want to use glasses, but I''m going to be honest with you: that''s a very expensive procedure."'
 				pcs_nerd += 1
 				glassqw = 2
@@ -269,7 +269,7 @@ if $ARGS[0] = '':
 								act 'Return to the entrance': gt 'pav_clinic'
 							end
 						end
-						if karta >= 4500:
+						if karta + bankDebtLimit >= 4500:
 							act 'Buy glasses (4,500 <b>₽</b>) (card)':
 								cla
 								karta -= 4500
@@ -301,7 +301,7 @@ if $ARGS[0] = '':
 								act 'Return to the entrance': gt 'pav_clinic'
 							end
 						end
-						if karta >= 75000:
+						if karta + bankDebtLimit >= 75000:
 							act 'Pay for laser correction (75,000 <b>₽</b>) (card)':
 								cla
 								karta -= 75000
@@ -706,7 +706,7 @@ if $ARGS[0] = 'sexual_health':
 		end
 	end
 
-	if karta >= 1000:
+	if karta + bankDebtLimit >= 1000:
 		act 'Get tested for STDs (1,000 <b>₽</b>) (card)':
 			karta -= 1000
 			gs 'pav_clinic', 'std_test'
@@ -723,7 +723,7 @@ if $ARGS[0] = 'sexual_health':
 			end
 		end
 
-		if karta >= 450:
+		if karta + bankDebtLimit >= 450:
 			act 'Get herpes shot (450 <b>₽</b>) (card) You need <<GerpesNapr>> more injections to complete the treatment':
 				karta -= 450
 				gs 'pav_clinic', 'herpes_shot'
@@ -732,7 +732,7 @@ if $ARGS[0] = 'sexual_health':
 	end
 
 	if TriperNapr > 0 and TriperUkolDay ! daystart:
-		if money < 750 and karta < 750: *nl & 'You can''t afford your gonorrhea shot.'
+		if money < 750 and karta + bankDebtLimit < 750: *nl & 'You can''t afford your gonorrhea shot.'
 
 		if money >= 750:
 			act 'Get gonorrhea shot (750 <b>₽</b>) (cash) You need <<TriperNapr>> more injections to complete the treatment':
@@ -741,7 +741,7 @@ if $ARGS[0] = 'sexual_health':
 			end
 		end
 
-		if karta >= 750:
+		if karta + bankDebtLimit >= 750:
 			act 'Get gonorrhea shot (750 <b>₽</b>) (card) You need <<TriperNapr>> more injections to complete the treatment':
 				karta -= 750
 				gs 'pav_clinic', 'gonorrhea_shot'
@@ -750,7 +750,7 @@ if $ARGS[0] = 'sexual_health':
 	end
 
 	if SifNapr = 1:
-		if money < 1000 and karta < 1000: *nl & 'You can''t afford your syphilis shot.'
+		if money < 1000 and karta + bankDebtLimit < 1000: *nl & 'You can''t afford your syphilis shot.'
 
 		if money >= 1000:
 			act 'Get syphilis shot (1,000 <b>₽</b>) (cash)':
@@ -759,7 +759,7 @@ if $ARGS[0] = 'sexual_health':
 			end
 		end
 
-		if karta >= 1000:
+		if karta + bankDebtLimit >= 1000:
 			act 'Get syphilis shot (1,000 <b>₽</b>) (card)':
 				karta -= 1000
 				gs 'pav_clinic', 'syphilis_shot'
@@ -1226,7 +1226,7 @@ if $ARGS[0] = 'spravka_money':
 				act 'Leave':gt 'pav_clinic'
 			end
 		end
-		if karta >= 2000:
+		if karta + bankDebtLimit >= 2000:
 			act 'Pay him the 2,000 <b>₽</b> (card)':
 				*clr & cla
 				minut += 5
@@ -1275,7 +1275,7 @@ if $ARGS[0] = 'spravka_money_pale':
 				gs 'pav_clinic', 'spravka_money_pale2'
 			end
 		end
-		if karta >= 2000:
+		if karta + bankDebtLimit >= 2000:
 			act 'Pay him the 2,000 <b>₽</b> (card)':
 				*clr & cla
 				minut += 5
@@ -1625,7 +1625,7 @@ if $ARGS[0] = 'maternity_ward':
 							'The nurse looks up at you with a caring expression. "No worries, this can happen from time to time."'
 							'You''re still surprised and perplexed by what you''re seeing. "I''m lactating!"'
 							'The nurse takes a small wet wipe and cleans your breasts, then signals that you can cover yourself up.'
-							'""We always need breast milk here. You should think about donating your milk. We will even compensate you for your efforts."'
+							'"We always need breast milk here. You should think about donating your milk. We will even compensate you for your efforts."'
 							'She cleans her hands. "But I think you should leave for now, so you can get used to your new ability."'
 							'She opens the door to let you out of the room.'
 							act 'Leave': gt 'pav_clinic'
@@ -1681,7 +1681,7 @@ if $ARGS[0] = 'maternity_ward':
 										'"You''re able to produce a good amount of milk. You could breastfeed a baby with no issue."'
 									elseif lact_ev['gpoli_milkedvolume'] >= 500 and lact_ev['gpoli_milkedvolume'] < 1000:
 										'Your breasts aren''t able to fill both small bottles and the nurse raises an eyebrow at you.'
-										'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly.'
+										'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly."'
 									else
 										'You have trouble filling the bottles to the first mark and the nurse shakes her head.'
 										'"Mhmm... Your breasts don''t seem to produce enough milk. You can still come here and get yourself pumped, but we need at least 50ml for a valid donation."'
@@ -1758,7 +1758,7 @@ if $ARGS[0] = 'maternity_ward':
 										'"You''re able to produce a good amount of milk. You could breastfeed a baby with no issue."'
 									elseif lact_ev['gpoli_milkedvolume'] >= 500 and lact_ev['gpoli_milkedvolume'] < 1000:
 										'Your breasts aren''t able to fill both small bottles and the nurse raises an eyebrow at you.'
-										'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly.'
+										'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly."'
 									else
 										'You have trouble filling the bottles to the first mark and the nurse shakes her head.'
 										'"Mhmm... Your breasts don''t seem to produce enough milk. You can still come here and get yourself pumped, but we need at least 50ml for a valid donation."'
@@ -1840,7 +1840,7 @@ if $ARGS[0] = 'maternity_ward':
 							'"You''re able to produce a good amount of milk. You could breastfeed a baby with no issue."'
 						elseif lact_ev['gpoli_milkedvolume'] >= 50 and lact_ev['gpoli_milkedvolume'] < 1000:
 							'Your breasts aren''t able to fill both small bottles and the nurse raises an eyebrow at you.'
-							'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly.'
+							'"You''re able to produce enough milk for a 50ml donation, but you might have trouble breastfeeding a baby properly."'
 						else
 							'You have trouble filling the bottles to the first mark and the nurse shakes her head.'
 							'"Mhmm... Your breasts don''t seem to produce enough milk. You can still come here and get yourself pumped, but we need at least 50ml for a valid donation."'
@@ -1935,7 +1935,7 @@ if $ARGS[0] = 'maternity_ward_donation':
 				end
 			elseif lact_ev['gpoli_milkedvolume'] < 50000 and lact_ev['gpoli_milkedvolume'] > 0:
 				'She looks at you in disappointment.'
-				'"Mhmm... I''m sorry, but this isn''t enough milk for a valid donation. You only provided <<lact_ev[''gpoli_milkedvolume'']/1000>>ml of breast milk.'
+				'"Mhmm... I''m sorry, but this isn''t enough milk for a valid donation. You only provided <<lact_ev[''gpoli_milkedvolume'']/1000>>ml of breast milk."'
 			else
 				'She looks at you in disappointment.'
 				'"Mhmm... I''m sorry, but this isn''t enough milk for a valid donation. You provided no breast milk at all."'
@@ -1997,7 +1997,7 @@ if $ARGS[0] = 'std_check':
 
 	if SifacOnce = 1:
 		sifNapr = 1
-		'"You have syphilis. The cure for this disease used to be expensive. However, this deadly disease can now be with a single shot. The injection will cost 1,000 <b>₽</b>.'
+		'"You have syphilis. The cure for this disease used to be expensive. However, this deadly disease can now be with a single shot. The injection will cost 1,000 <b>₽</b>."'
 	end
 
 	if TriperOnce = 1:

+ 1 - 0
locations/pav_hotelReception.qsrc

@@ -56,6 +56,7 @@ if $ARGS[0] = '':
 			if pavhotprosQW = 6:
 				pavhotprosQW = 7
 				PavlinQW = 1
+				prostitute['active'] = 1
 			end
 			gs'stat'
 

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

+ 68 - 37
locations/phone_selfies.qsrc

@@ -248,17 +248,31 @@ end
 if $ARGS[0] = 'showlocation':
 	'<center><h4><font color="maroon"><<$selfieLocDesc[ARGS[1]]>> selfies</font></h4></center>'
 	*nl
-	gs 'phone_selfies', 'listretrieve', ARGS[1]
+	gs 'phone_selfies', 'listretrieve', ARGS[1], $selfieLoc[ARGS[1]]
 	
 	act 'Back': gt 'phone_selfies', 'selfies'
 	gs 'phone_selfies', 'act_exit'
 end
 
 
-!! ARGS[1] is the index of the location in $selfieLoc[]
+!!  ARGS[1] is the index of the location in $selfieLoc[]
+!! $ARGS[2] is the selfie location (park, home, etc)
 if $ARGS[0] = 'listretrieve':
-	$temp_selfie_loc = $selfieLoc[ARGS[1]]
+	gs 'phone_selfies', 'retrieve_clothed_selfies',		ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_swim_selfies',		ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_underwear_selfies',	ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_nude_selfies',		ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_bath_selfies',		ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_shower_selfies',		ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_titflash_selfies',	ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_assflash_selfies',	ARGS[1], $ARGS[2]
+	gs 'phone_selfies', 'retrieve_pussyflash_selfies',	ARGS[1], $ARGS[2]
+end
 
+
+!!  ARGS[1] is the index of the location in $selfieLoc[]
+!! $ARGS[2] is the selfie location
+if $ARGS[0] = 'retrieve_clothed_selfies':
 	!!Loop for clothed selfies, dynamics set variables as mixing them in loop instructions is bad
 	if selfieClotot[ARGS[1]] > 0:
 		'<center><b>Clothed selfies</b></center>'
@@ -266,113 +280,126 @@ if $ARGS[0] = 'listretrieve':
 		temp_clocnt = 1
 		:temp_loop
 			!!setting value to unmixed variable so it can be checked in the if below
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_closelfie[<<temp_clocnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'clothed', ARGS[1], temp_clocnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_closelfie[<<temp_clocnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'clothed', ARGS[1], temp_clocnt)
 			temp_clocnt += 1
 		if temp_clocnt <= selfieClotot[ARGS[1]]: jump 'temp_loop'
 	end
-	
-	!!Loop for swimwear selfies, dynamics set variables as mixing them in loop instructions is bad
+end
+
+if $ARGS[0] = 'retrieve_swim_selfies':
 	if selfieSwimtot[ARGS[1]] > 0:
 		'<center><b>Swimwear selfies</b></center>'
 		*nl
 		temp_clocnt = 1
 		:temp_loop1
 			!!setting value to unmixed variable so it can be checked in the if below
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_swim[<<temp_clocnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'bikini', ARGS[1], temp_clocnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_swim[<<temp_clocnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'bikini', ARGS[1], temp_clocnt)
 			temp_clocnt += 1
 		if temp_clocnt <= selfieSwimtot[ARGS[1]]: jump 'temp_loop1'
 	end
-		
-	!!loop for underwear selfies
+end
+
+if $ARGS[0] = 'retrieve_underwear_selfies':
 	if selfieUndtot[ARGS[1]] > 0:
 		'<center><b>Underwear selfies</b></center>'
 		*nl
 		temp_undcnt = 1
 		:temp_loop2
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_undselfie[<<temp_undcnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'underwear', ARGS[1], temp_undcnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_undselfie[<<temp_undcnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'underwear', ARGS[1], temp_undcnt)
 			temp_undcnt += 1
 		if temp_undcnt <= selfieUndtot[ARGS[1]]: jump 'temp_loop2'
 	end
+end
 
-	!!loop for nude selfies
+if $ARGS[0] = 'retrieve_nude_selfies':
 	if selfieNudtot[ARGS[1]] > 0:
 		'<center><b>Nude selfies</b></center>'
 		*nl
 		temp_nudcnt = 1
 		:temp_loop3
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_nudselfie[<<temp_nudcnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'nude', ARGS[1], temp_nudcnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_nudselfie[<<temp_nudcnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'nude', ARGS[1], temp_nudcnt)
 			temp_nudcnt += 1
 		if temp_nudcnt <= selfieNudtot[ARGS[1]]: jump 'temp_loop3'
 	end
-	
+end
+
+if $ARGS[0] = 'retrieve_bath_selfies':
 	!!loop for bath selfies
 	if selfieBathtot[ARGS[1]] > 0:
 		'<center><b>Bath selfies</b></center>'
 		*nl
 		temp_bathcnt = 1
 		:temp_loop4
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_bathselfie[<<temp_bathcnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'bath', ARGS[1], temp_bathcnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_bathselfie[<<temp_bathcnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'bath', ARGS[1], temp_bathcnt)
 			temp_bathcnt += 1
 		if temp_bathcnt <= selfieBathtot[ARGS[1]]: jump 'temp_loop4'
 	end
-	
+end
+
+if $ARGS[0] = 'retrieve_shower_selfies':
 	!!loop for shower selfies
 	if selfieShowertot[ARGS[1]] > 0:
 		'<center><b>Shower selfies</b></center>'
 		*nl
 		temp_showercnt = 1
 		:temp_loop5
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_showerselfie[<<temp_showercnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'shower', ARGS[1], temp_showercnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_showerselfie[<<temp_showercnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'shower', ARGS[1], temp_showercnt)
 			temp_showercnt += 1
 		if temp_showercnt <= selfieShowertot[ARGS[1]]: jump 'temp_loop5'
 	end
-	
+end
+
+if $ARGS[0] = 'retrieve_titflash_selfies':
 	!!loop for flashing tits selfies
 	if selfieTitflash[ARGS[1]] > 0:
 		'<center><b>Flashing tits selfies</b></center>'
 		*nl
 		temp_flashtitscnt = 1
 		:temp_loop6
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_titflash[<<temp_flashtitscnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'titflash', ARGS[1], temp_flashtitscnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_titflash[<<temp_flashtitscnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'titflash', ARGS[1], temp_flashtitscnt)
 			temp_flashtitscnt += 1
 		if temp_flashtitscnt <= selfieTitflash[ARGS[1]]: jump 'temp_loop6'
 	end
-	
+end
+
+if $ARGS[0] = 'retrieve_assflash_selfies':
 	!!loop for flashing ass selfies
 	if selfieAssflash[ARGS[1]] > 0:
 		'<center><b>Flashing ass selfies</b></center>'
 		*nl
 		temp_flashasscnt = 1
 		:temp_loop7
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_assflash[<<temp_flashasscnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'assflash', ARGS[1], temp_flashasscnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_assflash[<<temp_flashasscnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'assflash', ARGS[1], temp_flashasscnt)
 			temp_flashasscnt += 1
 		if temp_flashasscnt <= selfieAssflash[ARGS[1]]: jump 'temp_loop7'
 	end
-	
+end
+
+if $ARGS[0] = 'retrieve_pussyflash_selfies':
 	!!loop for flashing pussy selfies
 	if selfiePussyflash[ARGS[1]] > 0:
 		'<center><b>Flashing pussy selfies</b></center>'
 		*nl
 		temp_flashpussycnt = 1
 		:temp_loop8
-			dynamic 'phone_locval = <<$selfieLoc[ARGS[1]]>>_pussyflash[<<temp_flashpussycnt>>]'
-			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $temp_selfie_loc, 'pussyflash', ARGS[1], temp_flashpussycnt)
+			dynamic 'phone_locval = <<$ARGS[2]>>_pussyflash[<<temp_flashpussycnt>>]'
+			if phone_locval = 1: *p func('phone_selfies_popup', 'set_selfie', $ARGS[2], 'pussyflash', ARGS[1], temp_flashpussycnt)
 			temp_flashpussycnt += 1
 		if temp_flashpussycnt <= selfiePussyflash[ARGS[1]]: jump 'temp_loop8'
 	end
-	
-	killvar 'temp_selfie_loc'
 end
 
 
+
+
 !! Sets up a list of selfies taken by category
 !! loops through the arrays of selfie flags (1 means that se;lfie has been taken by the player)
 !! adds the image path for each taken selfie to the relevant array
@@ -470,6 +497,7 @@ if $ARGS[0] = 'populateClothesType':
 end
 
 
+
 if $ARGS[0] = 'listretrieve2':
 	if numnpc = 1:
 		'<center><h4><font color="maroon">Dimka pictures</font></h4></center>'
@@ -1114,7 +1142,7 @@ if $ARGS[0] = 'listretrieve2':
 		i = 1
 		:temp_loopev
 			dynamic '$selfie = <<$selfienpc>>photo[<<i>>]'
-			if $selfie = 1: *p '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$photoloc>>'', ''<<i>>''"><img src="<<$photoloc>><<i>>.jpg"	 height="150" /></a>  '
+			if $selfie = 1: *p func('phone_selfies_popup', 'set_selfie2', $photoloc, i)
 			i += 1
 		if i <= loopmax: jump 'temp_loopev'
 	end
@@ -1127,7 +1155,7 @@ if $ARGS[0] = 'listretrieve2':
 		i = 1
 		:temp_loopselfies
 			dynamic '$selfie = <<$selfienpc>>[<<i>>]'
-			if $selfie = 1: *p '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$imgloc>>'', ''<<i>>''"><img src="<<$imgloc>><<i>>.jpg"	 height="150" /></a>  '
+			if $selfie = 1: *p func('phone_selfies_popup', 'set_selfie2', $imgloc, i)
 			i += 1
 		if i <= loopmax: jump 'temp_loopselfies'
 	end
@@ -1140,7 +1168,7 @@ if $ARGS[0] = 'listretrieve2':
 		i = 1
 		:temp_loopselfiessveta
 			dynamic '$selfie = <<$selfienpc>>sveta[<<i>>]'
-			if $selfie = 1: *p '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$imgloc>>sveta/'', ''<<i>>''"><img src="<<$imgloc>>sveta/<<i>>.jpg"	 height="150" /></a>  '
+			if $selfie = 1: *p func('phone_selfies_popup', 'set_selfie2', '<<$imgloc>>sveta/', i)
 			i += 1
 		if i <= loopmaxsveta: jump 'temp_loopselfiessveta'
 	end
@@ -1153,7 +1181,7 @@ if $ARGS[0] = 'listretrieve2':
 		i = 1
 		:temp_loopselfiessex
 			dynamic '$selfie = <<$selfienpc>>sex[<<i>>]'
-			if $selfie = 1: *p '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$imgloc>>sex/'', ''<<i>>''"><img src="<<$imgloc>>sex/<<i>>.jpg"	 height="150" /></a>  '
+			if $selfie = 1: *p func('phone_selfies_popup', 'set_selfie2', '<<$imgloc>>sex/', i)
 			i += 1
 		if i <= loopmaxsex: jump 'temp_loopselfiessex'
 	end
@@ -1162,6 +1190,9 @@ if $ARGS[0] = 'listretrieve2':
 	gs 'phone_selfies', 'act_exit'
 end
 
+
+
+
 if $ARGS[0] = 'family':
 	'<center><h4><font color="maroon">Family members</font></h4></center>'
 	$textgrup = ''

+ 2 - 2
locations/phone_selfies_popup.qsrc

@@ -25,13 +25,13 @@ if $ARGS[0] = 'show':
 		$selfie_last_chosen['location'] = $ARGS[1]
 		$selfie_last_chosen['type']     = $ARGS[2]
 		killvar 'temp_suppress_other_selfies'
-		gt $temp_ssh_ret_loc, $temp_ssh_ret_arg, 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/<<$ARGS[2]>>/<<$selfieFilePrefix[ARGS[3]]>><<ARGS[4]>>.jpg', $ARGS[1], $ARGS[2]
+		gt $temp_ssh_ret_loc, $temp_ssh_ret_arg, 'images/pc/activities/phone/selfies/<<$ARGS[1]>>/<<$ARGS[2]>>/<<$selfieFilePrefix[ARGS[3]]>><<ARGS[4]>>.jpg', $ARGS[1], $ARGS[2], ARGS[3], ARGS[4]
 	end
 end
 
 
 if $ARGS[0] = 'set_selfie2':
-	$result = '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$ARGS[1]>>'', ARGS[2]"><img src="<<func(''phone_selfies_popup'', ''get_imloc2'', $ARGS[1])>>'', <<ARGS[2]>>.jpg" height="150" /></a>'
+	$result = '<a href="exec: gs ''phone_selfies_popup'', ''show2'', ''<<$ARGS[1]>>'', ARGS[2]"><img src="<$ARGS[1]>><<ARGS[2]>>.jpg" height="150" /></a>'
 end
 
 if $ARGS[0] = 'show2':

+ 5 - 4
locations/saveupdater.qsrc

@@ -2373,12 +2373,12 @@ end
 if temp_current_save_version < 00090200:
 
 	! Body update -- By Anjuna
-	if gensize			! 0:		pcs_mass['bust_gen']		= genbsize		& killvar 'genbsize'
+	if genbsize			! 0:		pcs_mass['bust_gen']		= genbsize		& killvar 'genbsize'
 	if nbsize			! 0:		pcs_mass['bust']			= nbsize		& killvar 'nbsize'
 
 	if pcs_mass['butt_gen'] = 0:
-		pcs_mass['butt_gen']		= 20
-		pcs_mass['butt']			= (20 * salo) / 60
+		pcs_mass['butt_gen']	= 20
+		pcs_mass['butt']		= (20 * salo) / 60
 	end
 	if salo ! 0:
 		pcs_mass['body'] = salo - pcs_mass['butt']
@@ -2399,7 +2399,8 @@ if temp_current_save_version < 00090200:
 	if pcs_mass['butt_message'] = 0: pcs_mass['butt_message'] = pcs_mass['butt']
 
 	!!update_clothing
-	gs 'tailor2'
+	!! Do not think we need this anymore. Since pcs_hips should now be basically unchanged.
+	!!gs 'tailor2'
 end
 
 

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

+ 98 - 57
locations/sex_ev_after.qsrc

@@ -1118,7 +1118,7 @@ if $ARGS[0] = 'cum_clean':
 			cla
 			act'Never mind': cla & gs 'sex_ev_sex', 'sex_end'
 			
-			if sex_ev['boy_in_shower'] ! 1:
+			if sex_ev['boy_in_shower'] ! 1 and sex_ev['boy_asleep'] = 0:
 				act'Ask him if he has any wipes':
 					sex_ev['cock_inserted'] = 0
 					if hypnoAddict = 0:
@@ -1169,7 +1169,7 @@ if $ARGS[0] = 'cum_clean':
 						$sex_ev['bed_room']
 						'Leaning down off the bed, you dig around with a clean hand, grab a bag of wipes, and start cleaning yourself off.'
 						*nl
-						'Feeling nice, you also take a moment to clean <<$npc_firstname[$boy]>>''s cock for him at the same time. Once you''re both all wiped down off, you toss it into the wastebasket by his bed.'
+						if sex_ev['boy_asleep'] = 0: 'Feeling nice, you also take a moment to clean <<$npc_firstname[$boy]>>''s cock for him at the same time. Once you''re both all wiped down off, you toss it into the wastebasket by his bed.'
 						if sex_ev['sex_over'] = 1:
 							gs'sex_ev_after', 'after_sex1'
 						else
@@ -1187,7 +1187,7 @@ if $ARGS[0] = 'cum_clean':
 					stat['swallow'] += 1
 					cla & *clr
 					'<center><img <<$set_imgh>> src="images/shared/sex/cum/lick_fingers.jpg"></center>'
-					if sex_ev['boy_in_shower'] ! 1:
+					if sex_ev['boy_in_shower'] ! 1 and sex_ev['boy_asleep'] = 0:
 						'Briefly making eye contact with <<$npc_firstname[$boy]>>, you use your fingers to gather up all the loose cum on you and stick out your tongue, running it up your hand, licking every drop from it and into your mouth. You give your hand a thorough tongue bath, sucking your fingers clean at the end. Once finished, you smack your lips, smiling at <<$npc_firstname[$boy]>> who stared at you the whole time.'
 						if sex_ev['he_cleaned'] = 0:
 							'"Any chance I could get one of those?" he gestures towards his cock.'
@@ -1236,7 +1236,7 @@ if $ARGS[0] = 'cum_clean':
 end
 
 if $ARGS[0] = 'facial_mouth_clean':
-	if ($sex_ev['last_cum'] = 'facial' or $sex_ev['last_cum'] = 'face_mouth') and sex_ev['boy_in_shower'] ! 1:
+	if ($sex_ev['last_cum'] = 'facial' or $sex_ev['last_cum'] = 'face_mouth') and sex_ev['boy_in_shower'] ! 1 and sex_ev['boy_asleep'] = 0:
 		act'Clean him off with your mouth':
 			sex_ev['react'] = 1
 			gs'stat'
@@ -1356,29 +1356,38 @@ 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['npc_late'] ! 1 and $clothingworntype = 'nude' and sex_ev['boy_in_shower'] ! 1:
-		act'Relax together':
-			cla & *clr
-			if sex_ev['get_up'] = 1:
-				sex_ev['get_up'] = 0
-				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
-				'You climb back into bed with <<$npc_firstname[$boy]>>, snuggling up with him to relax.'
-			elseif npc_smoker[$boy] < 1 or sex_ev['boy_smoked'] = 1:
-				'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
-				'You and <<$npc_firstname[$boy]>> both lay back, quietly relaxing together in the still bliss of your love-making.'
-			else
-				'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke2.jpg"></center>'
-				'You lay back, quietly relaxing beside <<$npc_firstname[$boy]>> in the still bliss of your love-making as he puffs away on his cigarette.'
-				sex_ev['boy_smoked'] = 1
+	if sex_ev['boy_asleep'] = 0:
+		if sex_ev['npc_late'] ! 1 and $clothingworntype = 'nude' and sex_ev['boy_in_shower'] ! 1:
+			act'Relax together':
+				cla & *clr
+				if sex_ev['get_up'] = 1:
+					sex_ev['get_up'] = 0
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+					'You climb back into bed with <<$npc_firstname[$boy]>>, snuggling up with him to relax.'
+				elseif npc_smoker[$boy] < 1 or sex_ev['boy_smoked'] = 1:
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/pillow_talk1.jpg"></center>'
+					'You and <<$npc_firstname[$boy]>> both lay back, quietly relaxing together in the still bliss of your love-making.'
+				else
+					'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke2.jpg"></center>'
+					'You lay back, quietly relaxing beside <<$npc_firstname[$boy]>> in the still bliss of your love-making as he puffs away on his cigarette.'
+					sex_ev['boy_smoked'] = 1
+				end
+				gs'sex_ev_after', 'relax_together'
 			end
-			gs'sex_ev_after', 'relax_together'
 		end
+	else
+		'<<$npc_firstname[$boy]>> is asleep, snoring softly beside you.'
+		gs'sex_ev_after', 'cuddle_up2'
 	end
 	if $sex_ev['loc'] ! 'house_party':
 		if sex_ev['boy_in_shower'] ! 1:
@@ -1401,13 +1410,7 @@ if $ARGS[0] = 'after_sex2':
 			
 			act'Join him in the shower':gs'sex_ev_shower', 'shower_join1'
 			
-			if sex_ev['drawer_rummage'] = 0 and $sex_ev['loc'] ! 'pc_home':
-				if  $sex_ev['loc'] = 'hotel_room':
-					'<<$npc_firstname[$boy]>>''s <a href="exec:gs ''sex_ev_events'',''sneak_phone''">phone</a> lays on top of the hotel room <a href="exec:gs ''sex_ev_events'',''rummage_drawers_start''">dresser</a> unattended.'
-				else
-					'<<$npc_firstname[$boy]>>''s <a href="exec:gs ''sex_ev_events'',''sneak_phone''">phone</a> lays on top of his <a href="exec:gs ''sex_ev_events'',''rummage_drawers_start''">dresser</a> unattended.'
-				end
-			end
+			gs'sex_ev_events', 'rummage_drawers_link'
 		end
 	end
 		
@@ -1415,12 +1418,12 @@ if $ARGS[0] = 'after_sex2':
 		act'Smoke a cigarette':cla & gs'sex_ev_after', 'smoke_ciga1'
 	end
 
-!!	gs'sex_ev_after', 'post_sex_pee1'
+	gs'sex_ev_after', 'post_sex_pee1'
 	gs'sex_ev_after', 'cum_clean'
 	gs'sex_ev_after', 'cock_clean'
 	gs'sex_ev_after', 'plan_b'
 	gs'sex_ev_after', 'birth_control_pill_take'
-	if $sex_ev['loc'] ! 'house_party': gs'sex_ev_after', 'spend_night_ask'
+	if $sex_ev['loc'] ! 'house_party' and sex_ev['boy_asleep'] = 0: gs'sex_ev_after', 'spend_night_ask'
 	
 !!{	if sex_ev['boy_in_shower'] = 1:
 		if $sex_ev['loc'] = 'hotel_room':
@@ -1595,28 +1598,35 @@ if $ARGS[0] = 'post_sex_pee1':
 		act'Go pee':
 			cla & *clr
 			$sex_ev['bed_room']
-			if cum_loc['vagina'] > 0:
-				'As you throw your legs over the side of the bed, you feel more of <<$npc_firstname[$boy]>>''s cum spill from your pussy.'
-				act'Try not to make a mess':
-					cla & *nl
-					sex_ev['cum_wobble'] = 1
-					'You stand carefully, awkwardly holding your hand over your dripping snatch and begin making your way towards the bathroom.'
-					'"Hey, where you going?" <<$npc_firstname[$boy]>> asks.'
-					gs'sex_ev_after', 'post_sex_pee2'
-				end
-				
-				act'Walk normally':
-					cla & *nl
-					'You don''t give it a second thought and stand up to stride straight for the bathroom, letting the cum run down your legs and trail across the floor behind you.'
-!!					if npc_neat[$boy] = 1 and $sex_ev['loc'] = 'npc_home':
-!!						'"Hey!" <<$npc_firstname[$boy]>> calls out. "Do you have to get it all over the floor? Couldn''t you at least put your hand under it or something?"'
-!!					else
+			if sex_ev['boy_asleep'] = 0:
+				if cum_loc['vagina'] > 0:
+					'You throw your legs over the side of the bed and as you prepare to stand up, you feel a sudden gush of <<$npc_firstname[$boy]>>''s cum threaten to spill from your pussy.'
+					act'Try not to make a mess':
+						cla & *nl
+						sex_ev['cum_wobble'] = 1
+						'You stand carefully, awkwardly holding your hand over your dripping snatch and begin making your way towards the bathroom.'
 						'"Hey, where you going?" <<$npc_firstname[$boy]>> asks.'
 						gs'sex_ev_after', 'post_sex_pee2'
-!!					end
+					end
+					
+					act'Walk normally':
+						cla & *nl
+						'You don''t give it a second thought and stand up to stride straight for the bathroom, letting the cum run down your legs and trail across the floor behind you.'
+	!!					if npc_neat[$boy] = 1 and $sex_ev['loc'] = 'npc_home':
+	!!						'"Hey!" <<$npc_firstname[$boy]>> calls out. "Do you have to get it all over the floor? Couldn''t you at least put your hand under it or something?"'
+	!!					else
+							'"Hey, where you going?" <<$npc_firstname[$boy]>> asks.'
+							gs'sex_ev_after', 'post_sex_pee2'
+	!!					end
+					end
+				else
+					'You throw your legs over the side of the bed and get up to use the toilet.'
+					'"Hey, where you going?" <<$npc_firstname[$boy]>> asks.'
+					gs'sex_ev_after', 'post_sex_pee2'
 				end
 			else
-			
+				'You throw your legs over the side of the bed, leaving <<$npc_firstname[$boy]>> asleep in the bed alone as you pad your way into the bathroom.'
+				gs'sex_ev_after', 'post_sex_pee3'
 			end
 		end
 	end
@@ -1674,9 +1684,9 @@ if $ARGS[0] = 'post_sex_pee3':
 		'<center><img <<$set_imgh>> src="images/shared/sex/after/toilet_after.jpg"></center>'
 		if sex_ev['desperate_pee'] = 0:
 			if cum_loc['vagina'] > 0:
-				'You sit down on the porcelain throne and let out a sigh as you unclench your muscles. Warmth trickles out from your snatch and you feel it flush some of the cum from inside as well. You sit there patiently until you and your bladder feel nice and empty.'
+				'You sit down on the toilet and let out a sigh as you unclench your muscles. Warmth trickles out from your snatch and you feel it flush some of the cum from inside as well. You sit there patiently until you and your bladder feel nice and empty.'
 			else
-				'You sit down on the porcelain throne and let out a sigh as you unclench your muscles. Warmth trickles out from your snatch and you can almost feel it flushing the excess bacteria from your urinary tract. You wait patiently until you and your bladder feel nice and empty and pull some squares from the toilet roll.'
+				'You sit down on the toilet and let out a sigh as you unclench your muscles. Warmth trickles out from your snatch and you can almost feel it flushing the excess bacteria from your urinary tract. You wait patiently until you and your bladder feel nice and empty and pull some squares from the toilet roll.'
 			end
 			*nl
 			'<i>No UTI''s for this girl!</i> you think to yourself as you fold the soft fabric to wipe yourself.'
@@ -1715,7 +1725,7 @@ if $ARGS[0] = 'relax_together':
 end
 
 if $ARGS[0] = 'cock_clean':
-	if sex_ev['cock_cleanup'] ! 1 and sex_ev['fuck'] > 0 and sex_ev['get_up'] ! 1 and sex_ev['boy_in_shower'] ! 1 and sex_ev['boy_shower'] = 0:
+	if sex_ev['cock_cleanup'] ! 1 and sex_ev['fuck'] > 0 and sex_ev['get_up'] ! 1 and sex_ev['boy_in_shower'] ! 1 and sex_ev['boy_shower'] = 0 and sex_ev['boy_asleep'] = 0:
 		act'Clean his cock':
 			sex_ev['cock_cleanup'] = 1
 			cla & *clr
@@ -1826,7 +1836,12 @@ if $ARGS[0] = 'plan_b':
 end
 
 if $ARGS[0] = 'plan_b2':
-	if sex_ev['ma_pill'] = 1:
+	if sex_ev['boy_asleep'] = 1:
+		act'Continue':
+			gs 'medical_din', 'morning_after_pill_function'
+			gs'sex_ev_after', 'after_sex2'
+		end
+	elseif sex_ev['ma_pill'] = 1:
 		gs'sex_ev_after', 'plan_b3'
 	else
 		act'Don''t say anything':
@@ -1933,7 +1948,11 @@ if $ARGS[0] = 'birth_control_pill_take':
 					'Right, you need to take your birth control pill for the day.'
 				end
 			end
-			gs 'sex_ev_after', 'birth_control_pill_take2'
+			if sex_ev['boy_asleep'] = 1:
+				iif(cum_loc['vagina'] > 0, 'With <<$npc_firstname[$boy]>> snoring softly beside you and his cum leaking from your snatch, you dig into your purse and pull out your birth control, gulping the pill with a dry swallow.', 'With <<$npc_firstname[$boy]>> snoring softly beside you, you dig into your purse and pull out your birth control, gulping the pill with a dry swallow.')
+			else
+				gs 'sex_ev_after', 'birth_control_pill_take2'
+			end
 		end
 	end
 end
@@ -2142,9 +2161,9 @@ if $ARGS[0] = 'smoke_ciga_act':
 		else
 			'<center><img <<$set_imgh>> src="images/shared/sex/after/bed_smoke1.jpg"></center>'
 			if sex_ev['cigarette'] = 1:
-				'Smoke fills your lungs and you hold it there, savouring it, before exhaling slowly. The smoke trails hazily around the room as you enjoy another cigarette.'
+				'Smoke fills your lungs and you hold it there, savouring it, before exhaling slowly. The smoke trails hazily around the room as you enjoy another cigarette' + iif(sex_ev['boy_asleep'] = 0, '.', ' while <<$npc_firstname[$boy]>> snores softly beside you.')
 			else
-				'Smoke fills your lungs and you hold it there, savouring it, before exhaling slowly. As the smoke blows past your lips, it''s like all your stress goes with it and you sigh happily, relaxing into the bed.'
+				'Smoke fills your lungs and you hold it there, savouring it, before exhaling slowly. As the smoke blows past your lips, it''s like all your stress goes with it and you sigh happily, relaxing into the bed' + iif(sex_ev['boy_asleep'] = 0, '.', ' while <<$npc_firstname[$boy]>> snores softly beside you.')
 			end
 			gs'sex_ev_after', 'after_sex2'
 		end
@@ -2342,7 +2361,29 @@ if $ARGS[0] = 'cuddle_up':
 				'"What are you doing?" you ask stiffly.'
 				'"Just getting close," he murmurs, pressing his body up against yours.'
 				*nl
-				'Uncomfortably, you turn away, stiffling deep sighs of exasperation and try to fall asleep. <<$npc_firstname[$boy]>> pressing into your back with his flaccid member right between your ass cheeks make it a challenge, but <i>eventually</i> you manage to drift off into sleep.'
+				'Uncomfortably, you turn away, stifling deep sighs of exasperation and try to fall asleep. <<$npc_firstname[$boy]>> pressing into your back with his flaccid member right between your ass cheeks make it a challenge, but <i>eventually</i> you manage to drift off into sleep.'
+				act'. . .':gt'sex_ev_after', 'sleep_function'
+			end
+		end
+	end
+end
+
+if $ARGS[0] = 'cuddle_up2':
+	if sex_ev['boy_asleep'] = 1 and $sex_ev['loc'] ! 'house_party':
+		act'Sleep with <<$npc_firstname[$boy]>>':
+			cla
+			act'Nevermind':gt'sex_ev_after', 'after_sex2_w_picture'
+			act'Cuddle up':
+				cla & *clr
+				'<center><img <<$set_imgh>> src="images/shared/sex/after/cuddle1.jpg"></center>'
+				'With your eyelids growing heavy, you snuggle up with <<$npc_firstname[$boy]>>, sharing in his warmth and close your eyes. Moments later, sleep takes you.'
+				act'. . .':gt'sex_ev_after', 'sleep_function'
+			end
+			
+			act'Get under the covers':
+				cla & *clr
+				$sex_ev['bed_room']
+				'With your eyelids growing heavy, you decide to get under the covers, snuggling into their warmth and close your eyes. Moments later, sleep takes you.'
 				act'. . .':gt'sex_ev_after', 'sleep_function'
 			end
 		end

+ 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

+ 288 - 26
locations/sex_ev_events.qsrc

@@ -1,6 +1,246 @@
 # sex_ev_events
 !! for special events
 
+if $ARGS[0] = 'sex_film_code':
+	if sex_ev['phone_film'] = 0 and npc_sex_filmer[$boy] = 1 and rand(1,20) < npc_sexdrive[$boy]: gt 'sex_ev_events', 'sex_film1'
+end
+
+if $ARGS[0] = 'sex_film1':
+	sex_ev['phone_film'] = 1
+	cla & *clr
+	'<center><video autoplay loop src="images/shared/sex/vag/miss/hard5.mp4"></video></center>'
+	'You''re panting in time with <<$npc_firstname[$boy]>>''s thrusts on top of you when you suddenly become aware of a glow coming from above you. <<$npc_firstname[$boy]>> has his phone out. And it''s pointed directly at you.'
+	gs 'sex_ev_events', 'sex_film_protest'
+	gs 'sex_ev_events', 'sex_film_accept'
+end
+
+if $ARGS[0] = 'sex_film_protest':
+	act'Cover your face':
+		cla
+		$sex_video[$boy] = '<center><video autoplay loop src="images/shared/sex/vag/miss/hard3.mp4"></video></center>'
+		act'Shy':
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/hard3.mp4"></video></center>'
+			'"Hngh~! Ungh~! <<$npc_firstname[$boy]>>, nooo~!" you protest weakly. A flush of total embarrassment burns through your cheeks and you hold your hand up in a futile attempt to block the view of your quickly reddening face.'
+			if npc_arrogant[$boy] > 0 or npc_assertive[$boy] > 0 or npc_abusive[$boy] > 0:
+				'"Smile for the camera," <<$npc_firstname[$boy]>> grins, still fucking you as he holds the camera right up to you.'
+			else
+				'"Fuck, you look so hot," <<$npc_firstname[$boy]>> grins, still fucking you as he holds the camera right up to you.'
+			end
+			
+			act'Let him film you (reluctant)':
+				sex_ev['phone_film'] = 2
+				$sex_video_dialogue[$boy] = 'Hngh~! Ungh~! <<$npc_firstname[$boy]>>, nooo~!'
+				cla & *clr
+				'<center><video autoplay loop src="images/shared/sex/vag/miss/hard2.mp4"></video></center>'
+				'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_events', 'sex_film_end'
+			end
+			
+			act'Keep protesting':
+				$sex_video_dialogue[$boy] = 'Please~! Mmph~! I don''t want to be filmed~!'
+				if npc_caretaker[$boy] > 0:
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/vag/miss/3.jpg"></center>'
+					'"Please~! Mmph~! I don''t want to be filmed~!" you whine as cold panic fills your chest.'
+					'The look on <<$npc_firstname[$boy]>>''s face changes with your continued protests and he blinks, as if only just now aware of what he''s doing.'
+					'"Oh. Er... sorry," he mumbles. You sigh in relief as he pauses fucking you to put away the phone.'
+					'"You''ll delete it later, right?" you ask.'
+					'"I will," he promises with a smile.'
+					!! if npc_abusive[$boy] > 0: he doesn''t delete it
+				else
+					sex_ev['phone_film'] = 2
+					cla & *nl
+					'"Please~! Mmph~! I don''t want to be filmed~!" you whimper again, feeling cold panic fill your chest.'
+					'"Come on, don''t be like that," <<$npc_firstname[$boy]>> says, ignoring your pleas. "This is great. You look so sexy."'
+					*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_events', 'sex_film_end'
+			end
+			
+			gs 'sex_ev_events', 'sex_film_force_stop'
+		end
+		
+		act'Annoyed':
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/hard3.mp4"></video></center>'
+			'"Ungh~! Hmph~! Hey! What do you think you''re doing?" you grunt as he pushes the camera towards your face and you immediately try to cover up with your hand.'
+			'"Don''t worry, you look great," <<$npc_firstname[$boy]>> grins, still fucking you as he films.'
+			act'Let him film you (reluctant)':
+				$sex_video_dialogue[$boy] = 'Ungh~! Hmph~! Hey! What do you think you''re doing?'
+				sex_ev['phone_film'] = 2
+				cla & *clr
+				'<center><video autoplay loop src="images/shared/sex/vag/miss/hard2.mp4"></video></center>'
+				'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_events', 'sex_film_end'
+			end
+			
+			act'Keep protesting':
+				if npc_caretaker[$boy] > 0:
+					$sex_video_dialogue[$boy] = 'Seriously~! Nngh~! Stop it~!'
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/vag/miss/3.jpg"></center>'
+					'"Seriously~! Nngh~! Stop it~!" you complain loudly, feeling hot with self consciousness and annoyance.'
+					'The look on <<$npc_firstname[$boy]>>''s face changes with your continued protests and he blinks, as if only just now aware of what he''s doing.'
+					'"Oh. Er... sorry," he mumbles. You sigh in relief as he pauses fucking you to put away the phone.'
+					'"Make sure to delete it later," you tell him sternly.'
+					'"I will," he promises with a smile.'
+					!! if npc_abusive[$boy] > 0: he doesn''t delete it
+				else
+					sex_ev['phone_film'] = 2
+					cla & *nl
+					'"Seriously~! Nngh~! Stop it~!" you keep protesting, face hot with self consciousness and annoyance.'
+					if npc_arrogant[$boy] > 0 or npc_assertive[$boy] > 0 or npc_abusive[$boy] > 0:
+						'"You''re so hot when you''re mad," <<$npc_firstname[$boy]>> says, grin growing wider while ignoring your pleas.'
+					else
+						'"Come on, don''t be that way," <<$npc_firstname[$boy]>> says, ignoring your pleas. "This is great. You look so sexy."'
+					end
+					*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_events', 'sex_film_end'
+			end
+			gs 'sex_ev_events', 'sex_film_force_stop'
+		end
+		
+		act'Angry':
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/hard3.mp4"></video></center>'
+			'"Ungh~! Hmph~! What the fuck!" you scream as you realize what he''s doing and immediately try to cover up with your hand.'
+			'"Don''t worry, you look great," <<$npc_firstname[$boy]>> grins, still fucking you as he films.'
+			act'Let him film you (reluctant)':
+				sex_ev['phone_film'] = 2
+				$sex_video_dialogue[$boy] = 'Ungh~! Hmph~! What the fuck!'
+				cla & *clr
+				'<center><video autoplay loop src="images/shared/sex/vag/miss/hard2.mp4"></video></center>'
+				'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_events', 'sex_film_end'
+			end
+			
+			act'Keep protesting':
+				if npc_caretaker[$boy] > 0:
+					$sex_video_dialogue[$boy] = 'Fuck off~! Put that thing away~!'
+					cla & *clr
+					'<center><img <<$set_imgh>> src="images/shared/sex/vag/miss/3.jpg"></center>'
+					'"Fuck off~! Put that thing away~!" you shout, steaming hot with anger.'
+					'The look on <<$npc_firstname[$boy]>>''s face changes with your continued protests and he blinks, as if only just now aware of what he''s doing.'
+					'"Oh. Er... sorry," he mumbles. You sigh in relief as he pauses fucking you to put away the phone.'
+					'"Make sure to delete it later," you tell him sternly.'
+					'"I will," he promises with a smile.'
+					!! if npc_abusive[$boy] > 0: he doesn''t delete it
+				else
+					sex_ev['phone_film'] = 2
+					cla & *nl
+					'"Fuck off~! Put that thing away~!" you shout, steaming hot with anger.'
+					if npc_arrogant[$boy] > 0 or npc_assertive[$boy] > 0 or npc_abusive[$boy] > 0:
+						'"You''re so hot when you''re mad," <<$npc_firstname[$boy]>> says, grin growing wider while ignoring your pleas.'
+					else
+						'"Come on, don''t be that way," <<$npc_firstname[$boy]>> says, ignoring your pleas. "This is great. You look so sexy."'
+					end
+					*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_events', 'sex_film_end'
+			end
+			gs 'sex_ev_events', 'sex_film_force_stop'
+		end
+	end
+end
+
+if $ARGS[0] = 'sex_film_force_stop':
+	gs 'willpower', 'misc', 'force'
+	if will_cost <= pcs_willpwr:
+		act 'Make him put the phone away (<<will_cost>> Willpower)':
+			sex_ev['phone_film'] = -1
+			cla & *clr
+			gs 'willpower', 'pay', 'self'
+			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/shared/sex/vag/miss1.jpg"></center>'
+			'"Seriously, knock it off!" you snap, practically slapping the phone out of his hand as you grab it. You stop the recording and immediately hit the gallery button to delete the video. "Asshole..." you mutter as you toss the phone far away from the bed as well, all without removing <<$npc_firstname[$boy]>> from inside you.'
+			act'"Way to kill the mood"':
+				cla & *clr
+				$sex_ev['bed_room']
+				sex_ev['cock_inserted'] = 0
+				'"Way to kill the mood, asshole," you scowl at <<$npc_firstname[$boy]>> as you push him off and out of you. "I''m done here."'
+				gs'sex_ev_after', 'quit2'
+			end
+			
+			act'Keep going':
+				cla & *clr
+				'<center><img <<$set_imgh>> src="images/shared/sex/vag/4.jpg"></center>'
+				'"Finally," you sigh in relief. "Don''t do that again. Now get back to fucking me already."'
+				gs'sex_ev_sex', 'fuck_continue'
+			end
+		end
+	else
+		act 'Make him put the phone away (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
+	end
+end
+
+if $ARGS[0] = 'sex_film_accept':
+	act'Let him film':
+		sex_ev['phone_film'] = 2
+		$sex_video[$boy] = '<center><video autoplay loop src="images/shared/sex/vag/miss/enjoy1.mp4"></video></center>'
+		!!if pcs_traits['exhibitionism'] > 0:
+		if Exhibitionist_lvl > 0: gs 'arousal', 'vaginal', -5, 'no_orgasm_msg', 'exhibitionism'
+		cla
+		act'Blush':
+			$sex_video_dialogue[$boy] = 'Mmph~! Mmph~! Mmm~! Nnn~!'
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/enjoy1.mp4"></video></center>'
+			'Your cheeks flush with warmth as you realize what <<$npc_firstname[$boy]>>''s doing and turn your face in embarrassment but don''t make any complaints.'
+			'"Mmph~! Mmph~! Mmm~! Nnn~!" Each pump of his cock inside you forces sheepish squeaks from your lips as you get caught between self-consciousness and pleasure. <<$npc_firstname[$boy]>> grins the whole time.'
+			*nl
+			'After a few minutes of filming, he puts his phone away.'
+			gs 'sex_ev_sex', 'fuck_continue'
+		end
+		
+		act'Ignore the camera':
+			$sex_video_dialogue[$boy] = 'Hah~! Haa~! Ah~! Haa~!'
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/enjoy1.mp4"></video></center>'
+			'"Hah~! Haa~! Ah~! Haa~!" You ignore the camera completely, focusing on <<$npc_firstname[$boy]>>''s cock pumping inside you and just try to stay the moment, letting moans escape your lips as they come. If he wants to film it, he can do what he wants.'
+			*nl
+			'After a few minutes of filming, he puts his phone away.'
+			gs 'sex_ev_sex', 'fuck_continue'
+		end
+		
+		act'Put on a show':
+			$sex_video_dialogue[$boy] = 'Aaah~! I''m so wet~! Ungh~! Your cock is so good inside me~!'
+			cla & *clr
+			'<center><video autoplay loop src="images/shared/sex/vag/miss/enjoy1.mp4"></video></center>'
+			'"Aaah~! I''m so wet~! Ungh~! Your cock is so good inside me~!"'
+			if sex_ev['fuck_enjoyment'] = 1:
+				'Unable to resist putting on a show, you turn up the volume on your moaning and dirty talk. You shake your tits and arch your back, putting extra emphasis on your pleasure.'
+			else
+				'Unable to resist putting on a show, you turn on the moaning and the dirty talk. You shake your tits and arch your back with pleasure you aren''t really feeling.'
+			end
+			'For his part, <<$npc_firstname[$boy]>> seems extra excited by this and makes sure to capture every moment of it, sending the lens up and down your body from where he fucks your pussy back up to your flushed face.'
+			*nl
+			'After a few minutes of filming, he puts his phone away.'
+			gs 'sex_ev_sex', 'fuck_continue'
+		end
+		
+		!!{if sex_ev['prostituion_flag'] > 0:
+			act'This costs extra':
+				
+			end
+		end}
+	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.'
@@ -92,6 +332,16 @@ if $ARGS[0] = 'sneak_phone':
 	msg'Placeholder - Event is WIP'
 end
 
+if $ARGS[0] = 'rummage_drawers_link':
+	if sex_ev['drawer_rummage'] = 0 and $sex_ev['loc'] ! 'pc_home' and $sex_ev['loc'] ! 'house_party':
+		if  $sex_ev['loc'] = 'hotel_room':
+			'<<$npc_firstname[$boy]>>''s <a href="exec:gs ''sex_ev_events'',''sneak_phone''">phone</a> lays on top of the hotel room <a href="exec:gs ''sex_ev_events'',''rummage_drawers_start''">dresser</a> unattended.'
+		else
+			'<<$npc_firstname[$boy]>>''s <a href="exec:gs ''sex_ev_events'',''sneak_phone''">phone</a> lays on top of his <a href="exec:gs ''sex_ev_events'',''rummage_drawers_start''">dresser</a> unattended.'
+		end
+	end
+end
+
 if $ARGS[0] = 'rummage_drawers_start':
 	cla
 	act'Go back':gs 'sex_ev_after', 'after_sex2_w_picture'
@@ -122,47 +372,59 @@ if $ARGS[0] = 'rummage_drawers1':
 			cla & *clr
 			$sex_ev['bed_room']
 			sex_ev['stole_money'] = 1
-			if rand(1,2) = 1:
-				if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
-					'You take a wary glance at the bathroom door. Right as you do, you hear the water shut off. Realizing there''s only seconds, you take your chance and grab the cash out of the drawer and running back to your things to stuff it into your bag.'
-				else
-					'You take a wary glance at the door. Seems like <<$npc_firstname[$boy]>> is still showering so it should be safe. But right as you pick up the cash, you hear footsteps in the hall. Panic shoots through you as you run back to stuff it into your bag.'
-				end
-				act'Hide the money!':gs'sex_ev_events', 'rummage_drawers_end_route'
+			if sex_ev['boy_in_shower'] = 1:
+				gs'sex_ev_events', 'rummage_drawers_shower_route'
 			else
-				if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
-					'You take a wary glance at the bathroom door. The water''s still running. It doesn''t seem like he''s going to come out any time soon. You decide to take your chance and grab the cash, closing the drawer and stuffing it into your purse.'
-				else
-					'You take a wary glance at the door. You don''t hear <<$npc_firstname[$boy]>> coming so you decide to take your chance and grab the cash, closing the drawer and stuffing it into your purse.'
-				end
-				act'Wait for <<$npc_firstname[$boy]>> to finish':
-					cla & *clr
-					$sex_ev['bed_room']
-					if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
-						'After hiding the money, you sit back on the bed and act natural. It''s only a couple minutes before you hear the water shut off and <<$npc_firstname[$boy]>> comes out with wet hair and a towel wrapped around his waist.'
-					else
-						'After hiding the money, you sit back on the bed and act natural. It''s only a couple minutes before <<$npc_firstname[$boy]>> comes strolling back into the bedroom with wet hair and a towel wrapped around his waist.'
-					end
-					gs'sex_ev_shower', 'boy_shower_finish_acts'
-				end
-				act'Join him in the shower':gt'sex_ev_shower', 'shower_join1'
+				gs'sex_ev_events', 'rummage_drawers_sleeping_route'
 			end
 		end
 	end
 end
 
+if $ARGS[0] = 'rummage_drawers_sleeping_route':
+	'You take another cautious glance at <<$npc_firstname[$boy]>> but he is still slumbering away. You decide to take your chance and grab the money, carefully close the drawer with minimal noise, and quietly stuff your stolen goods into your purse.'
+	act'Continue':gs'sex_ev_events', 'rummage_drawers_end_route'
+end
+
+if $ARGS[0] = 'rummage_drawers_shower_route':
+	if rand(1,2) = 1:
+		if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
+			'You take a wary glance at the bathroom door. Right as you do, you hear the water shut off. Realizing there''s only seconds, you take your chance and grab the cash out of the drawer and running back to your things to stuff it into your bag.'
+		else
+			'You take a wary glance at the door. Seems like <<$npc_firstname[$boy]>> is still showering so it should be safe. But right as you pick up the cash, you hear footsteps in the hall. Panic shoots through you as you run back to stuff it into your bag.'
+		end
+		act'Hide the money!':gs'sex_ev_events', 'rummage_drawers_end_route'
+	else
+		if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
+			'You take a wary glance at the bathroom door. The water''s still running. It doesn''t seem like he''s going to come out any time soon. You decide to take your chance and grab the cash, closing the drawer and stuffing it into your purse.'
+		else
+			'You take a wary glance at the door. You don''t hear <<$npc_firstname[$boy]>> coming so you decide to take your chance and grab the cash, closing the drawer and stuffing it into your purse.'
+		end
+		act'Wait for <<$npc_firstname[$boy]>> to finish':
+			cla & *clr
+			$sex_ev['bed_room']
+			if $sex_ev['loc'] = 'hotel_room' or npc_apt_type[$boy] = 2 or npc_apt_type[$boy] = 3:
+				'After hiding the money, you sit back on the bed and act natural. It''s only a couple minutes before you hear the water shut off and <<$npc_firstname[$boy]>> comes out with wet hair and a towel wrapped around his waist.'
+			else
+				'After hiding the money, you sit back on the bed and act natural. It''s only a couple minutes before <<$npc_firstname[$boy]>> comes strolling back into the bedroom with wet hair and a towel wrapped around his waist.'
+			end
+			gs'sex_ev_shower', 'boy_shower_finish_acts'
+		end
+		act'Join him in the shower':gt'sex_ev_shower', 'shower_join1'
+	end
+end
+
 if $ARGS[0] = 'rummage_drawers_end_route':
-	cla & *clr
 	if sex_ev['boy_in_shower'] = 1:
 		gs'sex_ev_events', 'rummage_drawers_shower_end'
 	else
-	
+		gs'sex_ev_after', 'after_sex2_w_picture'
 	end
 end
 
 if $ARGS[0] = 'rummage_drawers_shower_end':
+	cla & *clr
 	$sex_ev['bed_room']
-	
 	!! if rand(1,3) = 1: he catches you
 	if sex_ev['stole_money'] = 1:
 		money += sex_ev['boy_money'] * 100

+ 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

+ 6 - 1
locations/sex_ev_leave.qsrc

@@ -792,10 +792,15 @@ if $ARGS[0] = 'prostitution_wakeup1':
 				$sex_ev['bed_room']
 				'Gently, you shake <<$npc_firstname[$boy]>>''s shoulder until he starts awake.'
 				'"Huh-?" He looks around, blinking in confusion.'
-				iif($npc_rel_type[$boy] = 'sugar_daddy', '"Hey," you smile softly. "I had a great time last night but I really need to get going. Can your baby girl get her sugar?"', '"Hey," you smile softly. "I had a great time last night but I really need to get going. Can I uhm... get the money for it...?"')
+				if sex_ev['sleepover'] = 1:
+					iif($npc_rel_type[$boy] = 'sugar_daddy', '"Hey," you smile softly. "I had a great time last night but I really need to get going. Can your baby girl get her sugar?"', '"Hey," you smile softly. "I had a great time last night but I really need to get going. Can I uhm... get the money for it...?"')
+				else
+					iif($npc_rel_type[$boy] = 'sugar_daddy', '"Hey," you smile softly. "I had a great time but I really need to get going. Can your baby girl get her sugar?"', '"Hey," you smile softly. "I had a great time but I really need to get going. Can I uhm... get the money for it...?"')
+				end
 				'"Oh. Yeah," he mumbles, sitting up slowly. "Just lemme..."'
 				*nl
 				'Very slowly, he pulls out some notes from his wallet, needing to recount several times before getting the right amount of <<npc_sugar_daddy_price[$boy]>><b>₽‎</b>.'
+				gs'sex_ev_leave', 'prostitution_wakeup2'
 			end
 			
 			act'Be transactional':

+ 3 - 2
locations/sex_ev_miss.qsrc

@@ -585,9 +585,9 @@ if $ARGS[0] = 'miss1.2':
 	$sex_ev['position'] = 'miss'
 	$sex_ev['pos_speed'] = 'miss1'
 	sex_ev['speed'] = 1
-	
 	sex_ev['kiss'] = 0
 	gs 'sex_ev_sex', 'fuck_arousal_code'
+	gs 'sex_ev_events', 'sex_film_code'
 	cla & *clr
 	'<center><video autoplay loop src="images/shared/sex/vag/miss/slow2.mp4"></video></center>'
 	if sex_ev['fuck_enjoyment'] = -1:
@@ -840,6 +840,7 @@ if $ARGS[0] = 'miss2.2':
 	sex_ev['speed'] = 2
 	sex_ev['kiss'] = 0
 	gs 'sex_ev_sex', 'fuck_arousal_code'
+	gs 'sex_ev_events', 'sex_film_code'
 	cla & *clr
 	'<center><video autoplay loop src="images/shared/sex/vag/miss/med<<rand(1,3)>>.mp4"></video></center>'
 	if sex_ev['fuck_enjoyment'] = -1:
@@ -1146,7 +1147,7 @@ if $ARGS[0] = 'miss3.2':
 	$sex_ev['pos_speed'] = 'miss3'
 	sex_ev['speed'] = 3
 	sex_ev['kiss'] = 0
-	
+	gs 'sex_ev_events', 'sex_film_code'
 	cla & *clr
 	'<center><video autoplay loop src="images/shared/sex/vag/miss/hard<<rand(1,3)>>.mp4"></video></center>'
 	if sex_ev['fuck_enjoyment'] = -1:

+ 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

+ 141 - 91
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
@@ -1686,14 +1736,14 @@ if $ARGS[0] = 'ruined_makeup':
 				'"Holy shit!" you exclaim. "You fucked me so hard you ruined my makeup!"'
 				'"You could always go out like that," he snickers.'
 				'"So <i>everyone</i> can see how hard you fucked me?" you giggle.'
-				gs 'sex_ev_sex', 'sex_end'
+				gs'sex_ev_pillow_talk', 'topic_route'
 			end
 			
 			act'Annoyed':
 				cla & *nl
 				'"Ugh, did you have to ruin my makeup?" you complain. "It took me forever to get it just right!"'
 				'"You could always go out like that," he snickers.'
-				gs 'sex_ev_sex', 'sex_end'
+				gs'sex_ev_pillow_talk', 'topic_route'
 			end
 		end
 	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

+ 22 - 21
locations/sex_ev_shower.qsrc

@@ -127,7 +127,7 @@ if $ARGS[0] = 'after_alone':
 	act'Rub one out':
 		cla & *clr
 		'<center><video autoplay loop src="images/shared/sex/shower/mast1.mp4"></video></center>'
-		if hypnoHardToCum = 0:
+		if hypnoHardToCum = 1:
 			gs 'arousal', 'clit_finger', 10, 'no_orgasm_msg', 'masturbate'
 			'You try as hard as you can to get an orgasm, but you just can''t. Finally, you shut off the water in frustration and step out, annoyed and dripping.'
 		else
@@ -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

+ 52 - 8
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
@@ -548,9 +586,9 @@ if $ARGS[0] = 'fb_uninvited_start':
 		end
 		
 		if rand(1,10) < npc_sexdrive[$boy]:
-			if npc_humor[$boy] = 2 and npc_cum_pref[$boy] = 'creampie':
+			if npc_humor[$boy] = 2 and $npc_cum_pref[$boy] = 'creampie':
 				'"I''m the only one who''s gonna be coming inside," he says, leering at your ass as he steps aside to let you in.'
-			elseif npc_humor[$boy] = 2 and npc_cum_pref[$boy] = 'mouth':
+			elseif npc_humor[$boy] = 2 and $npc_cum_pref[$boy] = 'mouth':
 				'"I''m the only one who''s gonna be coming inside," he says, leering at your ass as he steps aside to let you in. "In your mouth that is."'
 			elseif npc_booty_call_date[$boy] = daystart:
 				'"As long as those clothes are coming off in the next 10 seconds," he says, leering at your ass as he steps aside to let you in.'
@@ -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':

+ 44 - 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
@@ -138,6 +139,11 @@ if $ARGS[0] = 'save_stats':
 	end
 	
 	if sex_ev['prostitution_freebie'] = 1: stat['prostitution_freebies'] += 1
+	
+	if sex_ev['phone_film'] = 2 or (sex_ev['phone_film'] = 1 and npc_abusive[$boy] > 0):
+		npc_sex_video_count[$boy] += 1
+		!!npc_sex_video<<npc_sex_video_count[$boy]>> = 1
+	end
 end
 
 
@@ -165,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

+ 1 - 1
locations/sex_ev_work_talk1.qsrc

@@ -294,7 +294,7 @@ if $ARGS[0] = 'whats_your_job':
 			elseif $sex_ev['loc'] = 'pc_home':
 				'"I work for one of the big banks here in the city," <<$npc_firstname[$boy]>> says.'
 				'"And you come over to my place instead of inviting me over to yours?" you smirk. "So if I''m looking to start a career in finance I should come to you?"'
-			elseif $sex_ev['loc'] = 'hotel':
+			elseif $sex_ev['loc'] = 'hotel_room':
 				if $region = 'pav':
 					'"I work for one of the big banks in the city," <<$npc_firstname[$boy]>> says.'
 					'"Oh wow. Impressive. Explains this fancy hotel room," you smirk sarcastically at the cheap decor of the motel. "So if I''m looking to start a career in finance I should come to you?"'

+ 56 - 43
locations/stat_display.qsrc

@@ -475,7 +475,7 @@ $stat_bra_text = ''
 if $clothingworntype ! 'nude':
 	if PCloThinness = 6 and $braworntype ! 'none':
 		$stat_bra_msg = 'Your bra is clearly showing through your transparent top.'
-		$stat_bra_text = '<BR><font color = #FF00FF><<$stat_bra_msg>></font>'
+		$stat_bra_text = '<BR><font color = #FF0000><<$stat_bra_msg>></font>'
 	elseif PCloThinness = 5 and $braworntype ! 'none':
 		if PCloDress = 1:
 			$stat_bra_msg = 'The outline of your bra is visible through your dress.'
@@ -529,13 +529,13 @@ if $clothingworntype ! 'nude':
 	end
 	if PCloCoverTop = 4:
 		$stat_bra_msg = 'Your <<$pcdesc_breasts>> breasts are completely exposed.'
-		$stat_bra_text = '<BR><font color = #FF00FF><<$stat_bra_msg>></font>'
+		$stat_bra_text = '<BR><font color = #FF0000><<$stat_bra_msg>></font>'
 	elseif PCloCoverTop = 3:
 		$stat_bra_msg = 'Your <<$pcdesc_breasts>> breasts are clearly visible through your clothing.'
-		$stat_bra_text = '<BR><font color = #FF00FF><<$stat_bra_msg>></font>'
+		$stat_bra_text = '<BR><font color = #FF0000><<$stat_bra_msg>></font>'
 	elseif PCloCoverTop = 2:
 		$stat_bra_msg = 'Your <<$pcdesc_breasts>> breasts are visible through your clothing.'
-		$stat_bra_text = '<BR><font color = #FF00FF><<$stat_bra_msg>></font>'
+		$stat_bra_text = '<BR><font color = #FF0000><<$stat_bra_msg>></font>'
 	elseif PCloCoverTop = 1:
 		$stat_bra_msg = 'Your <<$pcdesc_breasts>> breasts are barely visible through your clothing.'
 		$stat_bra_text = '<BR><font color = #0064FF><<$stat_bra_msg>></font>'
@@ -550,24 +550,24 @@ if $clothingworntype ! 'nude':
 		if $pantyworntype ! 'none':
 			if PCloSkirt = 6:
 				$stat_panty_msg = 'Your dress is so short that your panties clearly visible.'
-				$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+				$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 			elseif PCloSkirt = 5:
 				if PCloDress = 1:
 					$stat_panty_msg = 'Your dress is short and transparent so anyone can see your panties.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				else
 					$stat_panty_msg = 'Your skirt is short and transparent so anyone can see your panties.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				end
 			elseif PCloDress = 1:
 				$stat_panty_msg = 'Your panties are clearly showing through your transparent dress.'
-				$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+				$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 			elseif PCloSkirt > 0:
 				$stat_panty_msg = 'Your panties are clearly showing through your transparent skirt.'
-				$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+				$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 			else
 				$stat_panty_msg = 'Your panties are clearly showing through your transparent pants.'
-				$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+				$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 			end
 		end
 	elseif PCloThinness = 5:
@@ -575,18 +575,18 @@ if $clothingworntype ! 'nude':
 			if PCloSkirt = 6:
 				if PCloDress = 1:
 					$stat_panty_msg = 'Your dress is so short that your panties clearly visible.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				else
 					$stat_panty_msg = 'Your skirt is so short that your panties clearly visible.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				end
 			elseif PCloSkirt = 5:
 				if PCloDress = 1:
 					$stat_panty_msg = 'The outline of your panties can be seen and often exposed by your short dress.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				else
 					$stat_panty_msg = 'The outline of your panties can be seen and often exposed by your short skirt.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				end
 			elseif PCloDress = 1:
 				$stat_panty_msg = 'The outline of your panties is visible through your dress.'
@@ -597,7 +597,7 @@ if $clothingworntype ! 'nude':
 			else
 				if PCloPants = 6:
 					$stat_panty_msg = 'Your short shorts expose your panties and are so thin the outline of the rest of your panties can be seen.'
-					$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+					$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 				else
 					$stat_panty_msg = 'The outline of your panties is visible through your pants.'
 					$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -606,16 +606,16 @@ if $clothingworntype ! 'nude':
 		end
 	elseif PCloSkirt = 6:
 		$stat_panty_msg = 'Your dress is so short that your panties clearly visible.'
-		$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+		$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 	elseif PCloSkirt = 5:
 		$stat_panty_msg = 'Your dress is short and your panties can often be seen.'
-		$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+		$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 	elseif PCloSkirt = 4:
 		$stat_panty_msg = 'Your dress is short enough that and your panties can be seen when you bend over.'
 		$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
 	elseif PCloPants = 6:
 		$stat_panty_msg = 'Your short shorts expose your panties.'
-		$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+		$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 	end
 
 	if PCloPanties = 1:
@@ -624,7 +624,7 @@ if $clothingworntype ! 'nude':
 	elseif $pantyworntype = 'none':
 		if pcs_inhib < 30:
 			$stat_panty_msg = 'You are not wearing panties.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif pcs_inhib < 70:
 			$stat_panty_msg = 'You are not wearing panties.'
 			$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -637,13 +637,13 @@ if $clothingworntype ! 'nude':
 	if PCloCoverBack = 4:
 		if PCloCoverFront = 4:
 			$stat_panty_msg = 'Your pussy and butt are completely exposed.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 3:
 			$stat_panty_msg = 'Your pussy is clearly visible and your butt completely exposed through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 2:
 			$stat_panty_msg = 'Your pussy is visible and your butt completely exposed through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 1:
 			$stat_panty_msg = 'Your pussy is barely visible and your butt completely exposed through your clothing.'
 			$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -651,13 +651,13 @@ if $clothingworntype ! 'nude':
 	elseif PCloCoverBack = 3:
 		if PCloCoverFront = 4:
 			$stat_panty_msg = 'Your butt is clearly visible and your pussy completely exposed.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 3:
 			$stat_panty_msg = 'Your pussy and your butt are clearly visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 2:
 			$stat_panty_msg = 'Your pussy is visible and your butt clearly visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 1:
 			$stat_panty_msg = 'Your pussy is barely visible and your butt clearly visible through your clothing.'
 			$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -665,13 +665,13 @@ if $clothingworntype ! 'nude':
 	elseif PCloCoverBack = 2:
 		if PCloCoverFront = 4:
 			$stat_panty_msg = 'Your butt is visible and your pussy completely exposed.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 3:
 			$stat_panty_msg = 'Your pussy is clearly visible and your butt visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 2:
 			$stat_panty_msg = 'Your pussy and butt are visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 1:
 			$stat_panty_msg = 'Your pussy is barely visible and your butt visible through your clothing.'
 			$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -679,13 +679,13 @@ if $clothingworntype ! 'nude':
 	elseif PCloCoverBack = 1:
 		if PCloCoverFront = 4:
 			$stat_panty_msg = 'Your butt is barely visible and your pussy completely exposed.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 3:
 			$stat_panty_msg = 'Your pussy is clearly visible and your butt barely visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 2:
 			$stat_panty_msg = 'Your pussy is visible and your butt barely visible through your clothing.'
-			$stat_panty_text = '<BR><font color = #FF00FF><<$stat_panty_msg>></font>'
+			$stat_panty_text = '<BR><font color = #FF0000><<$stat_panty_msg>></font>'
 		elseif PCloCoverFront = 1:
 			$stat_panty_msg = 'Your pussy and your butt are barely visible through your clothing.'
 			$stat_panty_text = '<BR><font color = #0064FF><<$stat_panty_msg>></font>'
@@ -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--------------------------
 

+ 1 - 0
locations/street_walker.qsrc

@@ -89,6 +89,7 @@ if $ARGS[0] = 'work':
 	elseif $loc = 'city_residential':
 		prst_loc = 2
 	end
+	if prostitute['active'] = 0: prostitute['active'] = 1
 	gs 'street_walker', 'start'
 	'You check your reflection in a store window, doing a last minute check of your outfit and makeup before making your way down the sidewalk looking for a customer.'
 	act 'Work the street': gt 'street_walker', 'event1'

+ 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

+ 38 - 34
locations/willpower.qsrc

@@ -33,7 +33,7 @@
 !!After Sveta has taken the willpower action the cost must be paid with: gs 'willpower', 'pay', 'type'
 !!Example: Sveta has to pay for resisting to do a blowjob: gs 'willpower', 'pay', 'resist'
 
-!!WARNING: When adding new options include gs 'willpower', 'difficulty', '<<$ARGS[2]>>' at the end of the ARGS to apply easy or hard.
+!!WARNING: When adding new options include gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>' at the end of the ARGS to apply easy or hard.
 !!WARNING: If you have two or more actions that need willpower at the same time, you have to recalculate the willpower cost before the costs are payed (see Code Example 2)
 
 !{ Code Example 1 (one action needs willpower)
@@ -168,7 +168,7 @@ if $ARGS[0] = 'voyeur':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'flash':
@@ -193,7 +193,7 @@ if $ARGS[0] = 'flash':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'mast':
@@ -218,7 +218,7 @@ if $ARGS[0] = 'mast':
 			will_cost = (100 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'hj':
@@ -245,7 +245,7 @@ if $ARGS[0] = 'hj':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'bj':
@@ -272,7 +272,7 @@ if $ARGS[0] = 'bj':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cuni':
@@ -301,7 +301,7 @@ if $ARGS[0] = 'cuni':
 	end	
 	
 	killvar 'cuni_check'
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
@@ -328,7 +328,7 @@ if $ARGS[0] = 'sex' or $ARGS[0] = 'vaginal':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'anal':
@@ -355,7 +355,7 @@ if $ARGS[0] = 'anal':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
@@ -382,7 +382,7 @@ if $ARGS[0] = 'gangbang' or $ARGS[0] = 'group':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 	
 if $ARGS[0] = 'prostitution':
@@ -411,7 +411,7 @@ if $ARGS[0] = 'prostitution':
 		end
 		killvar 'prost_will'
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'humiliation':
@@ -434,7 +434,7 @@ if $ARGS[0] = 'humiliation':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'footjob':
@@ -459,7 +459,7 @@ if $ARGS[0] = 'footjob':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'titjob':
@@ -484,7 +484,7 @@ if $ARGS[0] = 'titjob':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'trib':
@@ -509,7 +509,7 @@ if $ARGS[0] = 'trib':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'rimming':
@@ -536,7 +536,7 @@ if $ARGS[0] = 'rimming':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'BDSM':
@@ -565,7 +565,7 @@ if $ARGS[0] = 'BDSM':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 ! For things like facials and other non-internal cum-receiving
@@ -591,7 +591,7 @@ if $ARGS[0] = 'cum_outside':
 			will_cost = (10 + cum_check + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'swallow':
@@ -614,7 +614,7 @@ if $ARGS[0] = 'swallow':
 			will_cost = (10 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cum_inside':
@@ -639,7 +639,7 @@ if $ARGS[0] = 'cum_inside':
 			will_cost = (10 + creampie_count + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'cum_inside_anal':
@@ -662,7 +662,7 @@ if $ARGS[0] = 'cum_inside_anal':
 			will_cost = (10 + pcs_acp_known + will_calc + will_arousal_mod)/10	
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'kiss':
@@ -687,7 +687,7 @@ if $ARGS[0] = 'kiss':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'foreplay':
@@ -712,7 +712,7 @@ if $ARGS[0] = 'foreplay':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'pee':
@@ -739,7 +739,7 @@ if $ARGS[0] = 'pee':
 			will_cost = (100 + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !! requires the skill to be named with the _lvl postfix
@@ -759,7 +759,7 @@ if $ARGS[0] = 'skill':
 		else
 			dynamic 'will_cost = (100 - <<$ARGS[1]>> + will_calc)/10'
 		end
-		gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+		gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 	end
 end
 
@@ -779,7 +779,7 @@ if $ARGS[0] = 'rape':
 			will_cost = (100 + rape + will_calc + will_arousal_mod)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'drink':
@@ -800,7 +800,7 @@ if $ARGS[0] = 'drink':
 			will_cost = (10 + alcohol_exp * 20 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!Drug needs already included in the will_calc so just a small base cost here
@@ -818,7 +818,7 @@ if $ARGS[0] = 'drugs':
 			will_cost = (10 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'crime':
@@ -829,7 +829,7 @@ if $ARGS[0] = 'crime':
 	else
 		will_cost = (60 + will_calc)/10
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 if $ARGS[0] = 'exhib':
@@ -842,7 +842,7 @@ if $ARGS[0] = 'exhib':
 	else
 		will_cost = (Exhibitionist_lvl * 25 + pcs_inhib/4 + will_calc)/10
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!this is to force you to stay wake so will cost nothing if you have more than 5 sleep, it has no base cost as there will always be a sleep cost in calc
@@ -851,7 +851,7 @@ if $ARGS[0] = 'sleep':
 	will_cost = 0
 	if pcs_sleep <= 5: will_cost = will_calc/10
 !! Not sure if this one belongs. It doesn''t look like it''s used anywhere.
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!Choose this if nothing else fits and for chore which is same thing but without gains for max willpower
@@ -875,7 +875,7 @@ if $ARGS[0] = 'misc' or $ARGS[0] = 'chore':
 			will_cost = (20 + will_calc)/10
 		end
 	end
-	gs 'willpower', 'difficulty', '<<$ARGS[2]>>'
+	gs 'willpower', 'difficulty', '<<$ATGS[1]>>', '<<$ARGS[2]>>'
 end
 
 !!modifiers for drink an drugs
@@ -917,15 +917,18 @@ if $ARGS[0] = 'difficulty':
 !!Multiplier to make willpower cost more. Use if all total costs need adjusting.
 	will_cost = will_cost * 3 / 2
 
-	if $ARGS[1] = 'easy':
+	if $ARGS[2] = 'easy':
 		will_cost = will_cost * 2/3
 		if will_cost < 5: will_cost = 5
-	elseif $ARGS[1] = 'hard':
+	elseif $ARGS[2] = 'hard':
 		will_cost = will_cost * 3/2
 		if will_cost < 7: will_cost = 7
 	else
 		if will_cost < 6: will_cost = 6
 	end
+	if $ARGS[1] = 'force':
+		will_cost = will_cost*(200-pcs_persuas)/100
+	end
 	if cheatWillpower = 1: will_cost = 0
 end
 
@@ -937,6 +940,7 @@ if $ARGS[0] = 'pay':
 			will_counter += 10
 		end
 		if will_enforced < 20: will_enforced += 1
+		gs 'exp_gain', 'persuas', rand(1,2)
 	elseif $ARGS[1] ! 'chore':
 		if willpowermax < 150:
 			will_counter += 1

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