1
0

32 Revīzijas dd9ac0e822 ... a40e36086b

Autors SHA1 Ziņojums Datums
  Kevin_Smarts a40e36086b Merge remote-tracking branch 'Hooded_Silence/master' 1 mēnesi atpakaļ
  Kevin_Smarts 4f887d7117 Merge remote-tracking branch 'Anjuna/master' 1 mēnesi atpakaļ
  Kevin_Smarts e255d2cf7b Merge remote-tracking branch 'Lusticon/master' 1 mēnesi atpakaļ
  Kevin_Smarts 9c4c79068b [text edit] Too many uses of "band" 1 mēnesi atpakaļ
  Kevin_Smarts 4da406a1d9 [fixed] Could leave Meynold house naked, fix from Sword 1 mēnesi atpakaļ
  Hooded Silence 56de7d2bd1 [Bug Fix] Fix broken image links due to changes in core_library set_stage function. Ballet content may be broken in places for events. 1 mēnesi atpakaļ
  Hooded Silence 5a2f614425 [Bug Fix] Image path incorrect in {mc} bedroom in gad due to changes in core_library, added new leave function to take you to the dacha instead of yard and allow {mc} to have sexy times. 1 mēnesi atpakaļ
  Hooded Silence a7420991a1 [Bug Fixes] Fixed bathroom shower bug and KorrPar command order. The correct order of execution should be init, file paths, game loc and then quest trackers. 1 mēnesi atpakaļ
  anjuna krokus a1703894c1 [Added] weight scaling due to pregnancy. Could not just depend on `pcs_mass['body']` due to the highly unequal distrubution of pregnancy mass. 1 mēnesi atpakaļ
  anjuna krokus d498750a70 [fixed] typo didn't properly count transparent shoots for the trans_persuasion event in the model questline 1 mēnesi atpakaļ
  anjuna krokus aaf186cc5b [fixed/changed] Moved even more `salocatnow` to either pcs_mass['body'] or pcs_bmi. Still cannot fully remove it due to dependencies in `figurboy` 1 mēnesi atpakaļ
  Lusticon 3297b1eefe [fixed] text edit 1 mēnesi atpakaļ
  Lusticon f5a470cb46 [fixed] rape day count 1 mēnesi atpakaļ
  Lusticon 635bce9fbd [added] elastigirl trait check 1 mēnesi atpakaļ
  Hooded Silence 8f6ffde18a [Bug Fix] Fix scene transitioning time as suggested by bgkjdgbizgblzdgbr. 1 mēnesi atpakaļ
  Kevin_Smarts 1f4ec2c967 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 mēnesi atpakaļ
  Kevin_Smarts 928b1a7aa9 [added] new spell to make Sveta using a strapon feel like its her penis during sex scenes. Spell from Key Master, arousal update from me 1 mēnesi atpakaļ
  bgkjdgbizgblzdgbr 3e69a8df87 [changed] Leaving Katja inte Meynold home will now alway put you in the hallway and not outside the house. 1 mēnesi atpakaļ
  Hooded Silence ad7de1b918 [Missed Files] Added missing files to previous commit. 1 mēnesi atpakaļ
  Hooded Silence a14c699b7c [Code Refactor] Move repeated header commands to a new module - home_family_init to help reduce code bloat and standardise locations in preparation for pet integration. Any commands that affects multiple rooms should be routed through the init file. Migrated to the set_stage function for location banners and have variables managing location for base images in home_family_init. 1 mēnesi atpakaļ
  Hooded Silence 2797a5eb6b [Data Corruption] Fix merge corruption 1 mēnesi atpakaļ
  Hooded Silence 34cd6a97ac Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 mēnesi atpakaļ
  Kevin_Smarts f05d95aa4f [changed] just trimmed the trailing spaces 1 mēnesi atpakaļ
  Kevin_Smarts 9bdd48967e Merge remote-tracking branch 'Hooded_Silence/master' 1 mēnesi atpakaļ
  Hooded Silence c108eb2f8f Revert "[Bug Fix] Remove errant comment breaks in npcstatic files" 1 mēnesi atpakaļ
  Kevin_Smarts 7bc5fccf56 [fixed] missing opening bracket for comment 1 mēnesi atpakaļ
  Kevin_Smarts ea3e027815 Merge remote-tracking branch 'Awesome/master' 1 mēnesi atpakaļ
  Kevin_Smarts 519b1271fd [fixed] use of imperial crap breaking our perfect metric world, or something. Idk 1 mēnesi atpakaļ
  Hooded Silence 297d845f88 [Bug Fix] Remove errant comment breaks in npcstatic files 1 mēnesi atpakaļ
  Awesome f81287568b [fixed] more typos 1 mēnesi atpakaļ
  Awesome b4f3791c5b [Fixed] Someone forgot to close the ' in comments also some copy/pasted typos 1 mēnesi atpakaļ
  Kevin_Smarts 4a077dbf27 [added] "all I did was add height, build, to all the school kids and hair color for the boys" - Nutluck 1 mēnesi atpakaļ
45 mainītis faili ar 916 papildinājumiem un 543 dzēšanām
  1. 1 0
      glife.qproj
  2. 2 2
      locations/AppearanceSystem.qsrc
  3. 33 16
      locations/Cheatmenu_din.qsrc
  4. 14 50
      locations/KatjaHomeTalk.qsrc
  5. 1 1
      locations/NikoEv2.qsrc
  6. 2 2
      locations/NikoWhore.qsrc
  7. 24 7
      locations/arousal.qsrc
  8. 27 3
      locations/ballet_npc.qsrc
  9. 10 10
      locations/ballet_secrets.qsrc
  10. 55 35
      locations/bedrPar.qsrc
  11. 41 27
      locations/bedrPar2.qsrc
  12. 68 19
      locations/body.qsrc
  13. 2 17
      locations/core_library.qsrc
  14. 2 2
      locations/din_van.qsrc
  15. 1 1
      locations/foto_shoot.qsrc
  16. 20 9
      locations/gadsarai.qsrc
  17. 1 1
      locations/gschool_lessons4.qsrc
  18. 46 0
      locations/home_family_init.qsrc
  19. 27 27
      locations/hotel_anna_sex.qsrc
  20. 7 4
      locations/journal_quests.qsrc
  21. 12 47
      locations/katjaEvDin.qsrc
  22. 41 19
      locations/korrPar.qsrc
  23. 37 28
      locations/kuhrPar.qsrc
  24. 11 3
      locations/mey_home.qsrc
  25. 1 1
      locations/mother.qsrc
  26. 110 31
      locations/npcstatic1.qsrc
  27. 37 14
      locations/npcstatic3.qsrc
  28. 47 0
      locations/npcstatic4.qsrc
  29. 1 1
      locations/npcstatic5.qsrc
  30. 1 1
      locations/pav_complex.qsrc
  31. 3 0
      locations/pav_residential.qsrc
  32. 6 6
      locations/pav_shared_nestor.qsrc
  33. 4 4
      locations/pav_shared_oleg.qsrc
  34. 4 4
      locations/pav_shared_yakov.qsrc
  35. 1 1
      locations/pav_station.qsrc
  36. 1 1
      locations/police_station.qsrc
  37. 1 1
      locations/pushkin_ballet_center.qsrc
  38. 35 41
      locations/pushkin_ballet_class.qsrc
  39. 34 29
      locations/pushkin_ballet_evt.qsrc
  40. 7 7
      locations/pushkin_ballet_init.qsrc
  41. 17 14
      locations/pushkin_ballet_res.qsrc
  42. 48 29
      locations/sitrPar.qsrc
  43. 16 0
      locations/spell.qsrc
  44. 9 1
      locations/spellList.qsrc
  45. 48 27
      locations/vanrPar.qsrc

+ 1 - 0
glife.qproj

@@ -466,6 +466,7 @@
 		<Location name="misha"/>
 	</Folder>
 	<Folder name="Home-Parent's Apartment">
+		<Location name="home_family_init"/>
 		<Location name="bedrPar"/>
 		<Location name="bedrPar2"/>
 		<Location name="sitrPar"/>

+ 2 - 2
locations/AppearanceSystem.qsrc

@@ -141,9 +141,9 @@ if $ARGS[0] = 'SetBodyShapeBonus':
 		tempBodyShapeBonus = func('body_structure', 'appearance_bonus')
 
 		!!This modifies bodykoef for high or low pcs_mass['body'] values
-		if salocatnow = 0 or salocatnow >= 7:
+		if pcs_mass['body'] < 8 or pcs_mass['body'] >= 98:
 			tempBodyShapeBonus -= 8
-		elseif salocatnow = 1 or salocatnow = 6:
+		elseif pcs_mass['body'] < 23 or pcs_mass['body'] >= 83:
 			tempBodyShapeBonus -= 4
 		end
 

+ 33 - 16
locations/Cheatmenu_din.qsrc

@@ -226,39 +226,39 @@ $cheatmenu['bodyMod'] = {
 	''
 	if knowpreg = 1 or (preg = 1 and (thinkpreg = 1 or PregChem > 3600)):
 		if (pregchem < 2688) = 0:
-			'<a href="exec:pregchem = 100 & pregtime = 4 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 100)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 100"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 100)>></a>'
 			''
 		end
 		if (pregchem >= 2688 and pregchem < 3192) = 0:
-			'<a href="exec:pregchem = 2688 & pregtime = 112 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 2688)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 2688"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 2688)>></a>'
 			''
 		end
 		if (pregchem >= 3192 and pregchem < 3696) = 0:
-			'<a href="exec:pregchem = 3192 & pregtime = 133 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3192)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 3192"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3192)>></a>'
 			''
 		end
 		if (pregchem >= 3696 and pregchem < 4200) = 0:
-			'<a href="exec:pregchem = 3696 & pregtime = 154 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3696)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 3696"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 3696)>></a>'
 			''
 		end
 		if (pregchem >= 4200 and pregchem < 4704) = 0:
-			'<a href="exec:pregchem = 4200 & pregtime = 175 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4200)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 4200"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4200)>></a>'
 			''
 		end
 		if (pregchem >= 4704 and pregchem < 5208) = 0:
-			'<a href="exec:pregchem = 4704 & pregtime = 196 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4704)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 4704"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 4704)>></a>'
 			''
 		end
 		if (pregchem >= 5208 and pregchem < 5712) = 0:
-			'<a href="exec:pregchem = 5208 & pregtime = 217 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5208)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 5208"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5208)>></a>'
 			''
 		end
 		if (pregchem >= 5712 and pregchem < 6216) = 0:
-			'<a href="exec:pregchem = 5712 & pregtime = 238 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5712)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 5712"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 5712)>></a>'
 			''
 		end
 		if (pregchem >= 6216) = 0:
-			'<a href="exec:pregchem = 6216 & pregtime = 259 & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 6216)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_preg_body''], 6216"><<func(''body_structure'', ''body_desc'', pcs_bmi, strenbuf, 6216)>></a>'
 			''
 		end
 	else
@@ -266,31 +266,31 @@ $cheatmenu['bodyMod'] = {
 		'starving (No, you may not select ''starving'', it''s here to show where the scale starts)'
 		''
 		if (bs_temp_bs_class / 100) ! 1:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 170) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 17, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 170"><<func(''body_structure'', ''body_desc'', 17, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 2:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 200) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 20, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 200"><<func(''body_structure'', ''body_desc'', 20, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 3:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 230) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 23, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 230"><<func(''body_structure'', ''body_desc'', 23, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 4:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 270) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 27, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 270"><<func(''body_structure'', ''body_desc'', 27, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 5:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 320) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 32, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 320"><<func(''body_structure'', ''body_desc'', 32, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 6:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 370) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 37, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 370"><<func(''body_structure'', ''body_desc'', 37, strenbuf)>></a>'
 			''
 		end
 		if (bs_temp_bs_class / 100) ! 7:
-			'<a href="exec: pcs_mass[''body''] = func(''body'', ''CalcOptBodyMass'', 420) & gs ''body'', ''softreset'' & gs ''stat'' & dynamic $cheatmenu[''bodyMod'']"><<func(''body_structure'', ''body_desc'', 42, strenbuf)>></a>'
+			'<a href="exec: dynamic $cheatmenu[''set_body_class''], 420"><<func(''body_structure'', ''body_desc'', 42, strenbuf)>></a>'
 			''
 		end
 		killvar 'bs_temp_bs_class'
@@ -299,6 +299,23 @@ $cheatmenu['bodyMod'] = {
 	'</tr></table></b></center>'
 }
 
+$cheatmenu['set_preg_body'] = {
+	pregchem = ARGS[0]
+	pregtime = ARGS[0] / 24
+	gs 'body', 'reset_preg_mass'
+	gs 'body', 'softreset'
+	gs 'stat'
+	dynamic $cheatmenu['bodyMod']
+}
+
+$cheatmenu['set_body_class'] = {
+	pcs_mass['body'] = func('body', 'CalcOptBodyMass', ARGS[0])
+	gs 'body', 'softreset'
+	gs 'stat'
+	dynamic $cheatmenu['bodyMod']
+}
+
+
 $cheatmenu['addict'] = {
 	if drugVars['cheat_immune'] = 0:
 		drugVars['cheat_immune'] = 1

+ 14 - 50
locations/KatjaHomeTalk.qsrc

@@ -133,11 +133,7 @@ if $ARGS[0] = '':
 			end
 		end
 	end
-	if mey_vika['key'] = 1:
-		Act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 
@@ -430,11 +426,7 @@ if $ARGS[0] = 'chat':
 		act 'Tell Katja, that you have decided that boys are fun after all <br><font color="red">(Katja will start asking about sex with boys again)</font>': gt 'KatjaHomeTalk',  'boy_yes'
 	end
 
-	if mey_vika['key'] = 1:
-		Act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 if $ARGS[0] = 'shower':
@@ -785,11 +777,7 @@ if $ARGS[0] = 'homework':
 	'For half an hour you and Katja pour over your books, you fully learn the lessons and pretty well understand the material.'
 
 	act 'Finish': gt 'KatjaHomeTalk'
-	if mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
-	else
-		act 'Say goodbye and leave': minut += 5 & gt 'pav_residential'
-	end
+	act 'Leave the room': gt 'mey_home', 'start'
 end
 
 if $ARGS[0] = 'Sextalk':
@@ -1324,7 +1312,7 @@ if $ARGS[0] = 'bj_talk2':
 	
 	act'It''s boring':
 		cla & *nl
-		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you.'
+		'"It''s boring," you roll your eyes. "You have to keep sucking the whole time and after a while, my jaw just starts to ache with the motion. It''s a dick in your mouth, I don''t know what to tell you."'
 		'Katja seems taken aback, looking almost worried. You guess you just shattered some impressions she had about giving head.'
 		act 'Continue':
 			minut += 5
@@ -1445,10 +1433,8 @@ if $ARGS[0] = 'tender_kiss':
 					end
 					if $loc = 'katja_dorm':
 						act 'Stop talking': gt 'katja_dorm', 'start'
-					elseif mey_vika['key'] = 1:
-						Act 'Leave the room': gt 'mey_home', 'start'
 					else
-						act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+						act 'Leave the room': gt 'mey_home', 'start'
 					end
 				end
 			else
@@ -1493,10 +1479,8 @@ if $ARGS[0] = 'tender_kiss':
 					end
 					if $loc = 'katja_dorm':
 						act 'Stop talking': gt 'katja_dorm', 'start'
-					elseif mey_vika['key'] = 1:
-						act 'Leave the room': gt 'mey_home', 'start'
 					else
-						act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+						act 'Leave the room': gt 'mey_home', 'start'
 					end
 				end
 			else
@@ -1784,11 +1768,7 @@ if $ARGS[0] = 'boy_discussion':
 		'You smile. "Okay, I''ll try to dance with him at the disco, and see if I can test him for you."'
 		'"You are the bestest friend!" she says with a huge smile and gives you a tight hug.'
 		act 'Talk about something else': gt 'KatjaHomeTalk'
-		if mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
-		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-		end
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -1812,11 +1792,7 @@ if $ARGS[0] = 'anal_discussion':
 		'"He trains in the gym at the community center in the late afternoon. You might have luck talking with him there. I''ve also heard a rumor that he sometimes uses the women''s shower there," she tells you.'
 		'You smile. "Okay, I''ll try to see if he''s up for something there and try him out for you."'
 		act 'Talk about something else': gt 'KatjaHomeTalk'
-		if mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
-		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-		end
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -1839,10 +1815,8 @@ if $ARGS[0] = 'preventation_talk':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end	
 end
 
@@ -1871,11 +1845,7 @@ if $ARGS[0] = 'random_park_sex_talk':
 				act 'Tell Katja that you think she should use birth control': gt 'KatjaHomeTalk', 'preventation_talk'
 			end
 			act 'Talk about something else': gt 'KatjaHomeTalk'
-			if mey_vika['key'] = 1:
-				act 'Leave the room': gt 'mey_home', 'start'
-			else
-				act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
-			end
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -2076,10 +2046,8 @@ if $ARGS[0] = 'boy_no':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -2104,10 +2072,8 @@ if $ARGS[0] = 'boy_yes':
 	end
 	if $loc = 'katja_dorm':
 		act 'Stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		act 'Leave the room': gt 'mey_home', 'start'
 	else
-		act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+		act 'Leave the room': gt 'mey_home', 'start'
 	end
 end
 
@@ -2123,7 +2089,7 @@ if $ARGS[0] = 'fisting_ask':
 	'"But it does sound so hot!" she says. "Maybe... you could..." her voice trails off. After a moment, she continues. "Maybe you could show me..."' 
 	'"You want me to fist myself here in front of you?" you ask.' 
 	'"No, I want you... to..." her voice falters again.' 
-	'"You want me to fist you?" you ask. She doesn''t say anything, but slowly nods. "Right now?" Again she doesn''t say anything, but nods."'
+	'"You want me to fist you?" you ask. She doesn''t say anything, but slowly nods. "Right now?" Again she doesn''t say anything, but nods.'
 	act 'Show Katja how fisting is done': gt 'katja_sex', 'first_fisting'
 	act 'Say you will do it another time':
 		*clr & cla
@@ -2131,10 +2097,8 @@ if $ARGS[0] = 'fisting_ask':
 		'You tell Katja that you are not in the mood right now, but you might do it another time if she asks.'
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			act 'Leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and leave':minut += 5 & gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end	
 	end
 end

+ 1 - 1
locations/NikoEv2.qsrc

@@ -718,7 +718,7 @@ if $ARGS[0] = 'Diner 1':
 									'<center><img <<$set_imgh>> src="images/pc/body/cum/cumface/blonde/15.jpg"></center>'
 									'"Wow, she walks around like that?" one of the bikers asks.'
 									'"Well she''s obviously a slut looking for customers," another replies.'
-									if salocatnow >= 5:
+									if pcs_bmi >= 26:
 										'"A slut, huh?" a trucker asks. "She looks more like a cow to me."'
 										'"Yeah, she looks like my old lady," another biker says. "But a pussy''s a pussy, I guess."'
 									else

+ 2 - 2
locations/NikoWhore.qsrc

@@ -152,7 +152,7 @@ if $ARGS[0] = 'Locker Room':
 															'"I told you she was a freak! She loves getting fucked. She was basically begging me to fuck her ass!" Dan laughs.'
 															'"Come on guys, we already have Sonia. We don''t need <<$pcs_nickname>> too," Vasily responds.'
 															'"She might be Sonia 2.0! It would be wrong for us <i>not</i> to show her off. Now is the perfect time too. The boys are still on the stairwell," Dan adds.'
-															if hotcat >= 7 and salocatnow < 5:
+															if hotcat >= 7 and pcs_bmi <= 25:
 																'"That sounds like a great idea. <<$pcs_nickname>> is much hotter than Sonia anyway. Let''s do it," Vitek responds before pulling you to your feet. "You''re coming with us."'
 															else
 																'"That sounds like a great idea. She looks like an overgrown pig, but we can always fuck her from behind. Alright, let''s do it," Vitek responds before pulling you to your feet. "You''re coming with us."'
@@ -331,7 +331,7 @@ if $ARGS[0] = 'Exposed':
 	'"What the fuck was she thinking? Why would she do this to herself? Is she that desperate for dick?" Lariska asks.'
 	'"I always thought she was a nice girl, but I guess she was just a whore all along. She hid it well," Lina responds.'
 	'Christina laughs. "You''re both so stupid! I knew she was a fucking whore all along, you just have to look at how she acts. So weak and pathetic and eager to please any boy that paid any attention to her." You hear several of the other girls agree with her.'
-	if hotcat >= 6 and salocatnow < 5:
+	if hotcat >= 6 and pcs_bmi <= 25:
 		'"Fuck yeah! I''ve been wanting to fuck <<$pcs_nickname>> since I first saw her drop that chalk in math class!" Roman laughs.'
 	else
 		'"I always thought about what it would be like to fuck <<$pcs_firstname>> since I first saw her drop that chalk in math class. If only she wasn''t so ugly..." Roman laughs.'

+ 24 - 7
locations/arousal.qsrc

@@ -14,8 +14,8 @@ It can be when receiving any of the following
 'erotic_nudity' - being aroused by nudity of others
 'trib' - rubbing pussy against another pussy
 'massage' - rubbing your body, back, feet, etc. with their hands/arms
-'cuni' - stimulation of your pussy by someones toungue
-'rimming' - stimulation of your anus by someones toungue
+'cuni' - stimulation of your pussy by someones tongue
+'rimming' - stimulation of your anus by someones tongue
 'vaginal' 'vaginal_finger' 'vaginal_fist' 'vaginal_dildo' 'vaginal_strap' 'vaginal_vibe' - stimulation of your vagina with a penis and various others
 'self_fisting' - fisting your own vagina
 'anal' 'anal_finger' 'anal_fist' 'anal_dildo' 'anal_strap' 'anal_vibe' - stimulation of your anus with a penis and various others
@@ -27,8 +27,8 @@ also when giving any of the following:
 'flashlite' - flashing underwear
 'flash' - flashing naked breasts/arse/vagina
 'massage_give' - rubbing their body, back, feet, etc. with your hands/arms
-'cuni_give' - stimulating someones pussy with your toungue
-'rimming_give' - stimulating someones anus with your toungue
+'cuni_give' - stimulating someones pussy with your tongue
+'rimming_give' - stimulating someones anus with your tongue
 'vaginal_finger_give' 'vaginal_fist_give' 'vaginal_dildo_give' 'vaginal_strap_give' 'vaginal_vibe_give' - stimulating someones vagina in various ways
 'clit_finger_give' - stimulating someones clit
 'anal_finger_give' 'anal_fist_give' 'anal_dildo_give' 'anal_vibe_give' 'anal_strap_give' - stimulating someones anus in various ways
@@ -38,10 +38,11 @@ also when giving any of the following:
 'titjob' - using boobs to jerk off a guy
 'footjob' - using feet to jerk off a guy
 'BDSM_give' - giving candle wax, flogging, leash play, bondage etc
-'pee_give' - peeing on somone
+'pee_give' - peeing on someone
 finally
 'foreplay' - receiving other stuff
 'foreplay_give' - giving other stuff
+'magicd_anal' 'magicd_vaginal' 'magicd_hj' 'magicd_bj' - to experience sex as if Sveta has a penis due to strapon and magic spell effect
 
 ARGS[1] for time taken in minutes - it is use partly for arousal calculation and partly for moving time ahead. If you want to calculate just the arousal and do not move time (simultaneous stimulation), use negative value.
 
@@ -171,8 +172,8 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			end
 		end
 	end
-	!!	This is to allow a Succubus with the right skill level to handle any size then go back to original size
-	if succubusflag = 1 and sucskill >= 4:
+	!!	This is to allow a Succubus with the right skill level or elastigirl trait to handle any size then go back to original size
+	if (succubusflag = 1 and sucskill >= 4) or pcs_traits['elastigirl'] > 0:
 		if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
 			if temp_dick < pcs_vag - 5 or temp_dick > pcs_vag + 5: pcs_mood -= 10
 			if sucvagorg = 0: sucvagorg = pcs_vag
@@ -706,6 +707,18 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['pee_give'] = 1
 		stim['act'] = 10
 		last_pee = totminut
+	elseif $ARGS[0] = 'magicd_anal':
+		count['magicd_anal'] = 1
+		stim['act'] = 80
+	elseif $ARGS[0] = 'magicd_vaginal':
+		count['magicd_vaginal'] = 1
+		stim['act'] = 90
+	elseif $ARGS[0] = 'magicd_hj':
+		count['magicd_hj'] = 1
+		stim['act'] = 50
+	elseif $ARGS[0] = 'magicd_bj':
+		count['magicd_bj'] = 1
+		stim['act'] = 60
 	end
 
 	!! anal acts
@@ -1218,6 +1231,10 @@ if $ARGS[0] = 'end':
 	gs 'arousal', 'count', 'BDSM_give'
 	gs 'arousal', 'count', 'pee_give'
 	gs 'arousal', 'count', 'massage_give'
+	gs 'arousal', 'count', 'magicd_anal'
+	gs 'arousal', 'count', 'magicd_vaginal'
+	gs 'arousal', 'count', 'magicd_hj'
+	gs 'arousal', 'count', 'magicd_bj'
 
 	gs 'arousal', 'count2', 'flashlite'
 	gs 'arousal', 'count2', 'flash'

+ 27 - 3
locations/ballet_npc.qsrc

@@ -12,13 +12,15 @@ $npc_usedname['A<<npctemp>>'] = 'Maya'
 $npc_notes['A<<npctemp>>'] = 'Maya is the daughter of Anitchka a freelance coryphée, she was encouraged to dance from a young age until she was nine when she started doing gymnastics. This changed when she was eleven when her mother became ill and she was asked to carry on the family tradition. Maya is a naturally gifted dancer and after six years is tipped to become one of Russia''s leading stars in the future.'
 npc_dob['A<<npctemp>>'] = 19990502
 npc_gender['A<<npctemp>>'] = 1
-gs 'npcstaticdefaults', 'defaults'
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 75
 hotcat_rating['A<<npctemp>>'] = 8
+gs 'npcstaticdefaults', 'defaults'
+gs 'npcstaticdefaults', 'skills', 'dance', 'sport'
+gs 'npcstaticdefaults', 'body', 'model'
 
 !! mod appearance NPC settings, height in cm, weight in kg
-$npc_haircolour['A<<npctemp>>'] = 'blonde'
+$npc_haircolour['A<<npctemp>>'] = 'Blonde'
 $npc_eyecolour['A<<npctemp>>'] = 'blue'
 $npc_height['A<<npctemp>>'] = 160
 $npc_weight['A<<npctemp>>'] = 50 
@@ -44,6 +46,28 @@ $npc_weight['A<<npctemp>>'] = 50
 !! NPC temp: 3507 - Gasha
 !! Gasha Morozova - The youngest in the class at 15, close friend of Nikita as the grew up in the same village. Nikita and Galina are often seen in each others company in the local coffee shop and rarely seen alone leading to rumours. She''s a bit of a foodie, and love sweet things which conflicts with keeping in shape for her dance career.
 
+npctemp = 3507
+$npc_firstname['A<<npctemp>>'] = 'Gasha'
+$npc_nickname['A<<npctemp>>'] = 'Gasha'
+$npc_lastname['A<<npctemp>>'] = 'Morozova'
+$npc_usedname['A<<npctemp>>'] = 'Gasha'
+$npc_notes['A<<npctemp>>'] = 'The youngest in the class at 15, close friend of Nikita as the grew up in the same village. Nikita and Galina are often seen in each others company in the local coffee shop and rarely seen alone leading to rumours. She''s a bit of a foodie, and love sweet things which conflicts with keeping in shape for her dance career.'
+npc_dob['A<<npctemp>>'] = 20000705
+npc_gender['A<<npctemp>>'] = 1
+npc_bust['A<<npctemp>>'] = 9
+npc_intel['A<<npctemp>>'] = 50
+hotcat_rating['A<<npctemp>>'] = 6
+gs 'npcstaticdefaults', 'defaults'
+gs 'npcstaticdefaults', 'skills', 'dance', 'sport'
+gs 'npcstaticdefaults', 'body', 'model'
+
+!! mod appearance NPC settings, height in cm, weight in kg
+$npc_haircolour['A<<npctemp>>'] = 'Brunette'
+$npc_eyecolour['A<<npctemp>>'] = 'Blue'
+$npc_height['A<<npctemp>>'] = 145
+$npc_weight['A<<npctemp>>'] = 40 
+
+
 !! NPC temp: 3508 - Calina
 !! NPC temp: 3509 - Ruza
 !! Calina and Ruza Sokolova - Twin dancers. Not interested in ballet, but took the course to further their education into becoming dancers. Age 17. They also professional models with a Moscow agency. 
@@ -63,7 +87,7 @@ gs 'npcstaticdefaults', 'defaults'
 $npc_thdick['A<<npctemp>>'] = 'slim'
 npc_dick['A<<npctemp>>'] = 10
 npc_sexskill['A<<npctemp>>'] = 2
-npc_intel['A<<npctemp>>'] = 57
+npc_intel['A<<npctemp>>'] = 67
 hotcat_rating['A<<npctemp>>'] = 8
 npc_spermpot['A<<npctemp>>'] = 15000
 

+ 10 - 10
locations/ballet_secrets.qsrc

@@ -13,7 +13,7 @@ if $ARGS[0] = 'init':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets'
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet-shop-window'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet-shop-window.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -45,7 +45,7 @@ end
 if $ARGS[0] = 'first_visit':
 	balletqw['ballet_secrets_visit'] = 1
 	balletqw['shoe_order'] = daystart + 14
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet_secrets_fitting_1'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet_secrets_fitting_1.jpg'
 	minut += 60
 	gs 'core_library', 'stage_title'
 	gs 'stat'
@@ -71,7 +71,7 @@ if $ARGS[0] = 'reception':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Reception'
-	$setloc['StageImage'] =	'<<$default_img_path>>reception'
+	$setloc['StageImage'] =	'<<$default_img_path>>reception.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -195,7 +195,7 @@ if $ARGS[0] = 'physio':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Physio'
-	$setloc['StageImage'] =	'<<$default_img_path>>physio'
+	$setloc['StageImage'] =	'<<$default_img_path>>physio.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -210,7 +210,7 @@ if $ARGS[0] = 'gymnastics_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Gymnastics Class'
-	$setloc['StageImage'] =	'<<$default_img_path>>gymnastics'
+	$setloc['StageImage'] =	'<<$default_img_path>>gymnastics.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -224,7 +224,7 @@ if $ARGS[0] = 'ballet_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Courses'
-	$setloc['StageImage'] =	'<<$default_img_path>>ballet_class'
+	$setloc['StageImage'] =	'<<$default_img_path>>ballet_class.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -236,7 +236,7 @@ if $ARGS[0] = 'yoga_courses':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Yoga Class'
-	$setloc['StageImage'] =	'<<$default_img_path>>yoga_class'
+	$setloc['StageImage'] =	'<<$default_img_path>>yoga_class.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -282,7 +282,7 @@ if $ARGS[0] = 'clothing':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets - Dancewear'
-	$setloc['StageImage'] =	'<<$default_img_path>>sports_shop'
+	$setloc['StageImage'] =	'<<$default_img_path>>sports_shop.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -294,7 +294,7 @@ if $ARGS[0] = 'quest':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Ballet Secrets'
-	$setloc['StageImage'] =	'<<$default_img_path>>quest'
+	$setloc['StageImage'] =	'<<$default_img_path>>quest.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'
@@ -305,7 +305,7 @@ if $ARGS[0] = 'food':
 	gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Food Court'
-	$setloc['StageImage'] =	'<<$default_img_path>>food_court'
+	$setloc['StageImage'] =	'<<$default_img_path>>food_court.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	gs 'core_library', 'stage_title'

+ 55 - 35
locations/bedrPar.qsrc

@@ -1,26 +1,36 @@
 # bedrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: {MC} and sisters family bedroom links to family flat corridor
 
-*clr & cla
-fromoutside = iif($loc = 'bedrPar',0,1)
-menu_off = 0
-minut += 1
-!!day check so mom doesn''t think you have been out all night if you get up very early 
-motherworry[1] = daystart
-gs 'shortgs', 'setloc', 'bedrPar', $ARGS[0]
-$location_type = 'private'
-$locclass = 'bedr'
-gs 'themes', 'indoors'
-gs 'stat'
-gs 'family_schedule'
-!! ballet career
-gs 'core_library', 'init'
 
-!! This is runs only once, just to make sure that Sveta can sing from the start, does not have to wait a whole day for `cikl` to run.
-if ml_performance['max_perform_minutes'] = 0: ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
+!! Set up default image paths for npc and location:
+!! Start location initialisation
+!! Set location header - img path is set in init
+!! Paths are not set due to content structure
 
-if $ARGS[0] = '' or $ARGS[0] = 'start':
+
+!! Begin location content
+if $ARGS[0] = '' or $ARGS[0] = 'start':	
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+	!! Set location vars:
+	fromoutside = iif($loc = 'bedrPar',0,1)
+	
+	!!day check so mom doesn''t think you have been out all night if you get up very early 
+	motherworry[1] = daystart
+	!! This is runs only once, just to make sure that Sveta can sing from the start, does not have to wait a whole day for `cikl` to run.
+	if ml_performance['max_perform_minutes'] = 0: ml_performance['max_perform_minutes'] = pcs_instrmusic + pcs_vokal
+
+	!! Set up game location data
+	$locclass = 'bedr'
+	gs 'shortgs', 'setloc', 'bedrpar', $ARGS[0]
+	!! End location initialisation
 	if locat['Mother'] = 26 and fromoutside and func('homes_properties', 'can_live_here'):
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost1.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>prost1.jpg"></center>'
 		if mc_inventory['equipped_condoms'] > 0 and rand(1,3) = 1 and mom['condoms'] = 0:
 			gt 'mother', 'condom_find'
 		elseif mc_inventory['dildo_small'] + mc_inventory['dildo_normal'] + mc_inventory['dildo_big'] + mc_inventory['dildo_large'] + mc_inventory['dildo_huge'] + mc_inventory['dildo_enormous'] + mc_inventory['dildo_gigantic'] > 0 and motherQW['seen_dildos'] ! 1 and rand(1,3) = 1:
@@ -80,15 +90,20 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 		end
 		gs 'stat'
 
-		act 'Leave': gt 'korrPar'
+		act 'Leave': minut += 1 & gt 'korrPar'
 	else
 		if func('homes_properties', 'can_live_here'):
-			'<center><h1><font color="maroon">Your bedroom</font></h1></center>'
-		else
-			'<center><h1><font color="maroon">Your old bedroom</font></h1></center>'
+			$setloc['StageTitle'] = 'Your bedroom'
+		else		
+			$setloc['StageTitle'] = 'Your old bedroom'
+			
 		end
+		!! Display header and banner image
 		! WD: Correct Image path ~ "images/qwest/alter/<<$loc>>.jpg"
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/bedrpar.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/bedrpar.jpg'
+		gs 'core_library', 'stage_title'
+
+		!! Location default description:
 		*nl
 		if func('homes_properties', 'is_current_home'):
 			'This is the small bedroom you share with your sister, Anya. On one side of the room is a <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> where you can choose outfits and organise your clothing.'
@@ -98,6 +113,8 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 			'This small bedroom you used to share with your sister, Anya. The furniture is old and basic.'
 		end
 		*nl
+		*nl
+		!! End default Description
 		if $ml_guitar['location'] = $loc: 'Your guitar rests on its stand next to your bed.'
 
 		if ParrotQW['Owned2'] = 1 and func('homes_properties', 'is_current_home'):
@@ -311,13 +328,16 @@ end
 
 if $ARGS[0] = 'intro':
 	CLOSE ALL
+	$setloc['StageTitle'] = 'Your Bedroom'
+	$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+	gs 'shortgs', 'setloc', 'bedrpar', 'start'
 	grandmaQW['last_month_paid'] = month
 	menu_off = 1
 	hour = 6
 	gs 'stat'
 	music_loop = 0
-	'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+	!! Display the header text and banner image
+	gs 'core_library', 'stage_title'
 	'You sudenly hear a familiar voice yelling out. "<<$pcs_nickname>>, time to get up! You can''t spend the whole day laying around!"'
 	wait 1000
 	$temp_nickname = input('<center>What name do you address your mother by?<br>Mother (default), Mum, Mom, Mama, etc.</center>')
@@ -327,8 +347,8 @@ if $ARGS[0] = 'intro':
 		cla & *clr
 		minut += 2
 		gs 'stat'
-		'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+		$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+		gs 'core_library', 'stage_title'
 		'You tiredly open your eyes and see your mother standing over you. "Fifteen more minutes..." you mumble.'
 		'Your mother lets out a loud sigh. "No, up now!" she says as she yanks the covers off.'
 		'"<<$npc_nickname[''A29'']>>!" you exclaim as you feel a slightly cold breeze hit your body.'
@@ -337,24 +357,24 @@ if $ARGS[0] = 'intro':
 			cla & *clr
 			minut += 2
 			gs 'stat'
-			'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+			$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+			gs 'core_library', 'stage_title'
 			'As soon as you get off your now coverless bed, your mother is quick to resume her nagging, repeating what you already heard from her a few moments ago. "Summer is no excuse to laze around all day. You can''t sleep in anymore, not even for another fifteen minutes." She''s not even looking at you while she talks, but luckily for you that means she misses you rolling your eyes.'
 			'"What are you going to do when school starts, or when you get a job? You better get into the habit of setting your alarm so you can wake up bright and early."'
 			act 'Continue':
 				cla & *clr
 				minut += 2
 				gs 'stat'
-				'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+				$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+				gs 'core_library', 'stage_title'
 				'You let out an exasperated sigh. "Yeah yeah I know, you told me that already. So how early are we talking?"'
 				'Your mother shoots you a sharp look and you know to fix your attitude or else. "Well, that depends on what you plan to do in the morning. There''s breakfast, showering and brushing your teeth, doing your hair and then makeup and shaving if you really need to. If I remember right... Anya used to wake up at 06:00 for school."'
 				act 'Continue':
 					cla & *clr
 					minut += 2
 					gs 'stat'
-					'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost4.jpg"></center>'
+					$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost4.jpg'
+					gs 'core_library', 'stage_title'
 					'"You want me to wake up that early?!" you huff. "Can''t I wake up at like... 07:00?"'
 					'Your mother shrugs. "You could, but then you might have to cut corners or even end up running late to school, and I won''t be having any of that. Your teachers won''t either," she warns before making her way towards the kitchen.'
 					if stat['think_virgin'] = 1: '"Oh, don''t forget; you need to head down to the clinic and see the gynecologist for a check up. Not just once, but every month!" she adds quickly.'
@@ -363,8 +383,8 @@ if $ARGS[0] = 'intro':
 						cla & *clr
 						minut += 2
 						gs 'stat'
-						'<center><h1><font color="maroon">Your Bedroom</font></h1></center>'
-						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost5.jpg"></center>'
+						$setloc['StageImage'] = 'characters/pavlovsk/resident/mom/prost5.jpg'
+						gs 'core_library', 'stage_title'
 						'Before you can finish, she cuts you off. "I''m not going to have you running around town like so many of those other girls I see! Opening their legs for any boy that comes around..." She shakes her head in disgust. "I want a referral every month and it better tell me you''re still a virgin or else, understand?" she says before she storms out of the room without giving you a chance to respond.'
 						act 'I understand...':gt 'alarmclock', 'start'
 					end

+ 41 - 27
locations/bedrPar2.qsrc

@@ -1,23 +1,37 @@
 # bedrPar2
-!2021/04/26
-if $ARGS[0] = '':
-	CLOSE ALL
-	*clr & cla
-	$loc = 'bedrPar2'
-	$loc_arg = ''
-	$locclass = 'bedr'
-	$location_type = 'private'
-	$menu_loc = 'bedrPar2'
-	$menu_arg = ''
-	menu_off = 0
-	minut += 1
-	gs 'stat'
-	gs 'themes', 'indoors'
-	gs 'family_schedule'
-	'<center><h1><font color="maroon">Master bedroom</font></h1></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/bedrpar2.jpg"></center>'
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Paernts bedroom links to family flat corridor
+
+!! Call in location default actions
+gs 'home_family_init', 'init'
+
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Parents Bedroom'
+$setloc['StageImage'] = '<<$default_img_path>>/bedrpar2.jpg'
+
+!! Set location vars:
+
+
+!! Set up game location data
+$locclass = 'bedr'
+gs 'shortgs', 'setloc', 'bedrPar2', $ARGS[0]
+!! End location initialisation
+
+
+!! Begin location content
+
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+	!! Location default description:
 	*nl
 	'The room in which your parents sleep. Their large bed, <a href="exec: gt ''bedrPar2'',''parents_wardrobe''">wardrobe</a> and other closets take up most of the space.'
+	*nl
+	!! End default Description
 	if locat['Fam_inGad'] = 0:
 		if locat['Mother'] = 1 and locat['Stepdad'] = 1:
 			'Your mother and stepfather are sleeping on the bed.'
@@ -28,7 +42,7 @@ if $ARGS[0] = '':
 		end
 	end
 
-	act 'Return to the hallway':gt 'korrPar'
+	act 'Return to the hallway':minut += 1 & gt 'korrPar'
 
 	if locat['Fam_inGad'] = 1 or (locat['Fam_inGad'] = 0 and hour > 6 and hour < 21):
 		if kamasutra_day ! daystart:
@@ -60,7 +74,7 @@ if $ARGS[0] = 'kamasutra':
 	*clr & cla
 	menu_off = 1
 	minut += 1
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/book.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>book.jpg"></center>'
 	'The cover says "Kama Sutra"'
 	act 'Leave': gt $loc, $loc_arg
 	act 'Read': kamasutra_page = 0 & kamasutra_day = daystart & gt 'bedrPar2', 'read_book'
@@ -81,7 +95,7 @@ end
 ! parent''s wardrobe
 if $ARGS[0] = 'parents_wardrobe':
 	*clr & cla
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobe.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobe.jpg"></center>'
 	'An old looking wardrobe, probably from the Soviet times.'
 	act 'Leave ': gt $loc, $loc_arg
 	act 'Rummage': gt 'bedrPar2', 'wardrobe_search'
@@ -95,14 +109,14 @@ if $ARGS[0] = 'wardrobe_search':
 		exit
 	end
 	if rand(1,100) > 75:
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobesearch'+rand(1,4)+'.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobesearch'+rand(1,4)+'.jpg"></center>'
 		$failwords[0]= 'You don''t find anything interesting.'
 		$failwords[1]= 'You find some clothes and underwear.'
 		$failwords[2]= 'You dig through your mother''s closet, but find nothing interesting except underwear.'
 		*pl $failwords[rand(0,2)]
 		killvar '$failwords'
 	else
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/wardrobetoy.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$default_img_path>>wardrobetoy.jpg"></center>'
 		$findmomtoy[0]= 'Digging through the closet, you find a <a href="exec: gt ''bedrPar2'',''momtoy_play''">dildo</a>.'
 		$findmomtoy[1]= 'Rummaging through your mother''s lingerie, you find a small <a href="exec: gt ''bedrPar2'',''momtoy_play''">dildo</a>.'
 		$findmomtoy[2]= 'You find your mother''s <a href="exec: gt ''bedrPar2'',''momtoy_play''">toy</a>.'
@@ -131,7 +145,7 @@ if $ARGS[0] = 'peek':
 	parentsexday = daystart
 	minut += 2
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad1.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad1.jpg"></center>'
 	'You crack the door open just a little and you see your mother and Vladimir near their bed. "Stop! The kids are here," your mother says as Vlad starts running his hands over her body.'
 	'He doesn''t seem to care about what she says as he doesn''t stop. "Come on, they won''t hear us and you know you want it."'
 	act 'Leave': gt 'korrPar'
@@ -139,7 +153,7 @@ if $ARGS[0] = 'peek':
 	act 'Keep peeking':
 		cla & *clr
 		gs 'stat'
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad2.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad2.jpg"></center>'
 		'You mother seems to be loving the attention and doesn''t put up much of a fight as he starts to undress her. Once she''s mostly naked, he pushes her down on the bed so she''s sitting on it in front of him, her head about crotch height to him. Knowing what he wants, she opens the fly on his pants and pulls out his cock, stroking it a few times in her hand until he gets hard. She then takes his dick into her mouth and starts sucking it. He moans softly as she does. "Fuck, you''re the best cocksucker ever, Natasha."'
 		gs 'arousal', 'voyeur_sex', 3
 		gs 'stat'
@@ -149,7 +163,7 @@ if $ARGS[0] = 'peek':
 		act 'Keep peeking':
 			cla & *clr
 			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad3.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad3.jpg"></center>'
 			'After spending several minutes sucking Vlad''s cock, she helps him strip while continuing to suck his dick. Once he''s naked, he lies down on the bed and she straddles him and quickly starts riding his dick reverse cowgirl style.'
 			'Both of them start moaning as they fuck. "Oh god Vlad, your dick feels so good in my pussy! It''s so big!"'
 			gs 'arousal', 'voyeur_sex', 5
@@ -160,7 +174,7 @@ if $ARGS[0] = 'peek':
 			act 'Keep peeking':
 				cla & *clr
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad4.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad4.jpg"></center>'
 				'Vlad suddenly grabs her and throws her on her side on the bed. He turns on his side, lifting up her leg with one hand while using the other to guide his cock. He feels around until he places the head of his dick against her anus, then pushes it in, using only her pussy juices for lubrication. It slides in surprisingly easy and you can only guess that this is far from the first time your mother has had a dick in her ass. They both moan in pleasure and she rubs her clit as Vlad fucks her ass.'
 				gs 'arousal', 'voyeur_sex', 5
 				gs 'stat'
@@ -169,7 +183,7 @@ if $ARGS[0] = 'peek':
 				act 'Keep peeking':
 					cla & *clr
 					gs 'stat'
-					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/sex/momvlad5.jpg"></center>'
+					'<center><img <<$set_imgh>> src="<<$mother_img_path>>sex/momvlad5.jpg"></center>'
 					'They keep going for several more minutes until Vlad starts to pant and buries his dick balls deep in your mother''s ass and lets out a loud moan as he twitches. After a few seconds, he pulls out of her and rolls off the bed as she gets on her back and spreads her ass, giving both you and Vlad a good view of her asshole as his cum starts leaking out of it.'
 					'"You''re such a nasty bitch, Natasha!" he laughs.'
 					'She smiles at him. "That''s why you love me," she replies. They start getting cleaned up and you decide it''s time to go before you get caught.'

+ 68 - 19
locations/body.qsrc

@@ -32,6 +32,13 @@
 !! imgset6ovr[x] and imgset7ovr[x] = a flag to indicate that an image set (x) has its own image 6 and/or 7
 !! extended lash functionality; pcs_lashes = n are: {2, largest natural size}, {3, with temporary false lashes on or basic 2D lash extensions}, {4, with ornate false lashes on or lavish 4D extensions}, {5, with extremely ornate, 6D-style extensions} - xerya
 
+
+!! Pregnancy weight gain:
+!! Weight gain in the first 5 weeks (roughly pregChem < 800. -> Pregtime = pregchem / 24) is negligable
+!! Afterwards we approximate the weight gain as mass = ((pregChem - 800)^2 * 33 / (7000 - 800)^2) approx (pregChem - 800)^2 / (1080)^2
+
+
+
 if $ARGS[0] = 'RegularUpdate':
 	if dounspell = 0:
 		gs 'body', 'UpdateBodyMeasurement'
@@ -58,7 +65,7 @@ if $ARGS[0] = 'UpdateBodyMeasurement':
 	pcs_hips  = (pcs_hgt   * bodyVars['hratio']) / 100 + bodyVars['vhips']
 	pcs_waist = (pcs_hips  * bodyVars['wratio']) / 100 + bodyVars['vofat']
 	pcs_band  = (pcs_waist * bodyVars['bratio']) / 100 + bodyVars['vofat']
-	pcs_bust  = (pcs_waist * bodyVars['bratio']) / 100 + pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] + max(-10, min(bodyVars['bust_other'], 10))
+	pcs_bust  = (pcs_waist * bodyVars['bratio']) / 100 + pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] + max(-10, min(bodyVars['bust_other'], 10)) + pcs_mass['preg'] / 5
 	pcs_butt  = min(pcs_mass['butt'], 50) + bodyVars['butt_bonus'] + bodyVars['butt_silicone'] + bodyVars['butt_cheat'] + pcs_butt_tr + max(-10, min(bodyVars['butt_other'], 10))
 
 	!! pcs_cupsize = pcs_mass['bust'] + bodyVars['bust_magic'] + bodyVars['bust_silicone'] - bodyVars['vofat']
@@ -71,7 +78,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 = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 70 * (pcs_hgt - 165)) / 100
+	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'] + pcs_mass['preg']) + 70 * (pcs_hgt - 165)) / 100
 
 	!{Do not remove (julzor)
 	This is the old more complex function, but it doesn''t work correctly.
@@ -83,7 +90,7 @@ end
 
 if $ARGS[0] = 'CalcWeight2':
 	!! weight2 = 10 * weight
-	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt']) + 70 * (pcs_hgt - 165)) / 10
+	result = (2820 + 33 * (pcs_mass['body'] + pcs_mass['bust'] + pcs_mass['butt'] + pcs_mass['preg']) + 70 * (pcs_hgt - 165)) / 10
 	!result = (pcs_hgt * 62 / 17) + (10 * (vhips + (bodyVars['vofat'] * 2))) / 4 + 10 * tits
 end
 
@@ -322,15 +329,44 @@ if $ARGS[0] = 'Update_Body':
 	if bodyresetflag = 1 or cheatNoFat = 1:
 		fat = 0
 	else
-		if fat > (17 + vitalbuf / 25):
-			pcs_mass['body'] += 1
-			fat = 0
-		elseif fat < -(2 + vitalbuf / 10):
-			pcs_mass['body'] -= 1
-			fat = 0
+		if pregChem >= 800 and (pregChem - 800)*(pregChem - 800) >= bodyVars['pchem_next']:
+			pcs_mass['preg'] += 1
+			bodyVars['pchem_next'] += 1166400	& !! 1080 * 1080
+		elseif bodyVars['pchem_next'] > 0 and bodyVars['pchem_next'] - 1166400 >= (pregChem - 800) * (pregChem - 800):
+			if pcs_mass['preg'] > 0:
+				pcs_mass['preg'] -= 1
+				bodyVars['pchem_next'] -= 1166400	& !! 1080 * 1080
+			else
+				pcs_mass['preg'] = 0
+				bodyVars['pchem_next'] = 0
+			end
+		end
+		if pregChem >= 800:
+			if fat > (12 + vitalbuf / 25):
+				pcs_mass['body'] += 1
+				fat = 0
+			elseif fat < -(7 + vitalbuf / 10):
+				pcs_mass['body'] -= 1
+				fat = 0
+			else
+				if fat < 0:
+					fat = fat / 2
+				else
+					fat = fat / 6
+				end
+			end
 		else
-			fat = fat / 4
+			if fat > (17 + vitalbuf / 25):
+				pcs_mass['body'] += 1
+				fat = 0
+			elseif fat < -(2 + vitalbuf / 10):
+				pcs_mass['body'] -= 1
+				fat = 0
+			else
+				fat = fat / 4
+			end
 		end
+
 	end
 
 	!!This is the pcs_mass['body'] cap for the weight approximation
@@ -379,9 +415,9 @@ if $ARGS[0] = 'Update_Body':
 
 	!!This will trigger the warning notices in the bathing code (the +/- 12 should always be +/- 11 + the max change to pcs_mass['body'] w/ fat)
 
-!	if salolast > pcs_mass['body'] and pcs_mass['body'] <= (20 * (salocatnow - 1)) + 12:
+!	if salolast > pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] <= (20 * (salocatnow - 1)) + 12:
 !		bodyVars['weight_warning'] = 1
-!	elseif salolast < pcs_mass['body'] and pcs_mass['body'] >= (20 * (salocatnow + 1)) - 12:
+!	elseif salolast < pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] >= (20 * (salocatnow + 1)) - 12:
 !		bodyVars['weight_warning'] = 2
 !	end
 
@@ -398,7 +434,7 @@ if $ARGS[0] = 'Update_Body':
 	!!This will trigger the dream for the option to use magic to increase bust
 	!!Three nos at the dream will lock it out (1 yes resets the count)
 	if pcs_magik >= 5 and MagikDostup = 0 and magf2bdo = 0:
-		if tits < 10 and salolast < pcs_mass['body'] and pcs_mass['body'] >= (20 * (salocatnow + 1)) - 11:
+		if tits < 10 and salolast < pcs_mass['body'] + pcs_mass['butt'] and pcs_mass['body'] + pcs_mass['butt'] >= (20 * (salocatnow + 1)) - 11:
 			if mgf2bnocnt < 3:
 				magf2bdo = 2
 			else
@@ -412,8 +448,8 @@ if $ARGS[0] = 'Update_Body':
 	if salocatnow > salocatlast: salocatlast += 1
 
 	!!This is for use in the warning code and as part of the reset routines
-	if salolast > pcs_mass['body']: salolast -= 1
-	if salolast < pcs_mass['body']: salolast += 1
+	if salolast > pcs_mass['body'] + pcs_mass['butt']: salolast -= 1
+	if salolast < pcs_mass['body'] + pcs_mass['butt']: salolast += 1
 
 	!!Setting the pcs_apprnc bonus based on fat and strength
 	temp_bmi = func('body', 'CalcBMI2')
@@ -750,6 +786,17 @@ if $ARGS[0] = 'Reset_mass_distribution':
 	gs 'body', 'Update_vhips'
 end
 
+if $ARGS[0] = 'Reset_preg_mass':
+	bodyVars['pchem_next'] = 0
+	pcs_mass['preg'] = 0
+	:set_preg_body_loop
+	if pregChem >= 800 and (pregChem - 800) * (pregChem - 800) >= bodyVars['pchem_next']:
+		bodyVars['pchem_next'] += 1166400	& 1080 * 1080
+		pcs_mass['preg'] += 1
+		jump 'set_preg_body_loop'
+	end
+end
+
 
 if $ARGS[0] = 'Set_mass_distribution_using_body':
 	pcs_mass['body'] = ARGS[1]
@@ -847,7 +894,7 @@ if $ARGS[0] = 'softreset':
 	!!This is for use in immediately updating shape if something has caused a large change in pcs_mass['body'], primarily fat burners and plastic surgery
 	bodyresetflag = 1
 	:resetloop
-	if pcs_mass['body'] ! salolast:
+	if pcs_mass['body'] + pcs_mass['butt'] ! salolast:
 		if gamestartflag = 1:
 			salobustdo = 1
 		end
@@ -884,14 +931,14 @@ if $ARGS[0] = 'hardreset':
 		gs 'body', 'Update_Body'
 
 		pcs_mass['body'] = 60 + (2 * pcs_hips) - (pcs_hgt * bodyVars['hratio']) / 50
-		if pcs_mass['body'] < 10:
+		if pcs_mass['body'] + pcs_mass['butt'] < 10:
 			salocatnow = 0
 		else
-			salocatnow = 1 + (pcs_mass['body'] - 10) / 20
+			salocatnow = 1 + (pcs_mass['body'] + pcs_mass['butt'] - 10) / 20
 		end
 
 		salocatlast = salocatnow
-		salolast = pcs_mass['body']
+		salolast = pcs_mass['body'] + pcs_mass['butt']
 
 		if pcs_mass['butt_gen'] = 0:
 			pcs_mass['butt_gen'] = 20
@@ -917,6 +964,8 @@ if $ARGS[0] = 'hardreset':
 		pcs_mass['bust_message'] = pcs_mass['bust']
 		pcs_mass['butt_message'] = pcs_mass['butt']
 
+		gs 'body', 'reset_preg_mass'
+
 		bodyresetflag = 0
 		normbuffpick = 0
 		bodyVars['weight_warning'] = 0

+ 2 - 17
locations/core_library.qsrc

@@ -14,7 +14,7 @@ if $ARGS[0] = 'init':
 
     !!  Summer School
     
-     !! $start_type['cat'] is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
+    !! $start_type['cat'] is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
     if $start_type['cat'] = 'dancer' or mod_ballet['beta'] = 1: 
         if daystart = 1:
             mod_ballet['blocker'] = 1
@@ -69,24 +69,9 @@ if $ARGS[0] = 'init':
 !! $setloc[''StageTitle'']: Var to set up $loc h1 header
 !! $setloc[''StageImage'']: Var to set up $loc image - set 1 to randomise
 if $ARGS[0] = 'stage_title':
-    if $ARGS[1] = '1': 
-        $temp_StageExt = 'gif'
-    elseif $ARGS[1] = '2':
-        $temp_StageExt = 'mp4'
-    else 
-        $temp_StageExt = 'jpg'
-    end
-    
-    if $ARGS[2] = '2':
-    !! Randomise header image	
-        !!dummyr
-    end
     *clr & cla
     '<center><h2><<$setloc[''StageTitle'']>></h2></center>'
-    '<center><img <<$set_imgh>> src="images/<<$setloc[''StageImage'']>>.<<$temp_StageExt>>"></center>'
-
-    !! Clean up
-    killvar '$temp_StageExt'
+    '<center><img <<$set_imgh>> src="images/<<$setloc[''StageImage'']>>"></center>'
 
     !! set indoor or outdoor location specific variables
 

+ 2 - 2
locations/din_van.qsrc

@@ -583,7 +583,7 @@ $quickwash = {
 				minut += 10
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
-				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of your.'
 
 				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 			end
@@ -833,7 +833,7 @@ $basin = {
 				minut += 10
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
-				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of your.'
 
 				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 			end

+ 1 - 1
locations/foto_shoot.qsrc

@@ -228,7 +228,7 @@ if $ARGS[0] = 'glamour_shoot':
 	act 'Sexy clothing':
 		*clr & cla
 		$modelfoto['shoot_type'] = 'sexy_clo'
-		if modelfoto['sexy'] >= 10 and modelfoto['trans_ling'] + modelfoto['trans_ling'] < 1 and modelfoto['nip'] < 1 and modelfoto['nude'] < 1: gt'foto_events','trans_persuasion'
+		if modelfoto['sexy'] >= 10 and modelfoto['transparent'] + modelfoto['trans_ling'] < 1 and modelfoto['nip'] < 1 and modelfoto['nude'] < 1: gt'foto_events','trans_persuasion'
 		if pcs_inhib < 30:
 			if modelfoto['sexy'] > 0:
 				'You think about asking to do this shoot but hesitate. You''ve done it before but still... Are you really comfortable with <i>more</i> of these kinds of pictures of you floating around?'

+ 20 - 9
locations/gadsarai.qsrc

@@ -301,8 +301,7 @@ end
 if $ARGS[0] = 'barn_room':
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Guest Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>village/gad_room'
-	minut += 5
+	$setloc['StageImage'] =   '<<$default_img_path>>village/gad_room.jpg'
 	gs 'shortgs', 'setloc', 'gadsarai', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -311,24 +310,36 @@ if $ARGS[0] = 'barn_room':
 	gs 'core_library', 'stage_title'
 	act '<b>Leave and go to the yard</b>':
 		if $clothingworntype ! 'nude':
+			minut += 5
 			gt 'gaddvor'
 		else
 			msg'<b><font color = red>You need to get dressed.</font></b>'
 			gt $loc, $loc_arg
 		end
 	end
+	act '<b>Leave and enter the dacha</b>':
+		if $clothingworntype ! 'nude':
+			minut += 5
+			gt 'gadhouse', 'start'
+		else
+			msg'<b><font color = red>You need to get dressed.</font></b>'
+			gt $loc, $loc_arg
+		end
+	end
 	
 	'A small rustic loft space converted from your grandparents barn. A pair of sleeping pallets of dubious comfort is laid out for guests. The room walls are whitewashed with some clothes lines to dry your clothes with some farming tools. It''s not much to look at but it''s somewhere you can call home and have some privacy.'
 
-
 	!! Activities - basic only. There is no internet so laptop is consigned to grandparents only. Room is too small for exercise, use yard or forest meadow.
-
-
 	gs 'events', 'read'
+	act 'Relax on your bed': gt 'bed', 'start'
+	if pcs_horny >= 50:
+		act 'Masturbate':gt 'selfplay', 'start'
+	end
+	if vcard > 0: act 'View your vintage porn cards':card_deck = 0 & gt 'card'
+	if card > 0: act 'View your new porn cards':card_deck = 1 & gt 'card'
 	gs 'music_actions', 'music_icon'
-
 	!! Activities End
-	act 'Relax on your bed': gt 'bed', 'start'
+	!! TODO: if winter create task for chopping wood for log stove.
 	!! act 'light log stove': gt  'gadsarai', 'log_stove' 
 
 	!! Game functions
@@ -337,9 +348,9 @@ if $ARGS[0] = 'barn_room':
 	'<table><tr><td valign="top">Your <a href="exec:gt ''alarmclock'', ''start''">alarm clock</a> is set to <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerH''], alarmVars[''timerM''])>> during the week and <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerEndH''], alarmVars[''timerEndM''])>> during the weekend. It is currently turned ' + iif(alarmVars['alarmOn'] = 0, '<a href="exec: alarmVars[''alarmOn''] = 1 & gt $loc, $loc_arg">OFF</a>.', '<a href="exec: alarmVars[''alarmOn''] = 0 & gt $loc, $loc_arg">ON</a>.')
 
 	if mc_inventory['contraceptive_pill'] > 0 and mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
-		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in one of your desk drawers, as are your <a href="exec:gt ''stol'', ''bc''">condoms</a>.'
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> are hidden a small nook, as are your <a href="exec:gt ''stol'', ''bc''">condoms</a>.'
 	elseif mc_inventory['contraceptive_pill'] > 0:
-		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in a small box under your pallet.'
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> are hidden in a small box under your pallet.'
 	elseif mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
 		'Your <a href="exec:gt ''stol'', ''bc''">condoms</a> are hidden behind a loose brick.'
 	end

+ 1 - 1
locations/gschool_lessons4.qsrc

@@ -225,7 +225,7 @@ if $ARGS[0] = 'math':
 			gs'stat'
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/classroom/phone.jpg"></center>'
 			'The day seems to be dragging in and you find yourself constantly staring at the clock, waiting for the class to finally be over. You decide to play on your phone to pass the time.'
-		    if VK = 1 and (christinaQW['fight'] = -1 or christinaQW['subpath'] >= 2) and salocatnow >= 5:
+		    if VK = 1 and (christinaQW['fight'] = -1 or christinaQW['subpath'] >= 2) and pcs_bmi >= 25:
 				gs 'npc_relationship', 'modify', 'A18', 'loathe'
 				'As you''re browsing the web, you receive a text message from Christina reading; "Hey there piggy, are you looking up discounts on Peremech so that you can shove them down your throat? Why don''t you lose some weight before the teachers decide to add bovine etiquette to the curriculum because they may feel it necessary to teach the students how to talk to a cow like you?" You can feel your face flushing in embarrassment while reading Christina''s hurtful comments. You quickly turn off your phone and try not to make eye contact with Christina for the rest of the lesson.'
 				act 'Wait for the end of the lesson': gt 'gschool_lessons', 'short_break'

+ 46 - 0
locations/home_family_init.qsrc

@@ -0,0 +1,46 @@
+# home_family_init
+!! Date Created: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial release
+!! 
+!! Desc: Initialisation file for family residence in Pavlosk, default functions, tasks and misc for all internal rooms.
+!! Related files: 
+!! Internal rooms to location: BedrPar, BedrPar2, korrPar, kuhrPar, sitrPar, vanrPar
+!! External links to location: pav_residential, pod_ezd
+
+if $ARGS[0] = '' or $ARGS[0] = 'init':
+    !! Set up default image paths for npc and location:
+
+    $default_img_path = 'locations/pavlovsk/resident/apartment/home'
+    $mother_img_path = 'images/characters/pavlovsk/resident/mom/'
+
+    !! clear and initialise location for content:
+    *clr & cla
+    CLOSE ALL	
+    music_loop = 0
+    !! enable sidebar menu for locations
+    menu_off = 0
+    !! set internal location type
+    $location_type = 'private'
+    gs 'themes', 'indoors'
+    !! Update all initial stats for location
+    gs 'stat'
+    !! Display the header text and banner image
+    gs 'core_library', 'stage_title'
+    !! Now track quests, NPCs and any pets:
+    gs 'home_family_init', 'trackers'
+end
+
+!! Pull Quest trackers
+
+if $ARGS[0] = 'trackers':
+    !! Pull the family tracker
+    gs 'family_schedule'
+    !! TODO: Finish pet tracker. 
+    !! Pull pet schedule:
+    !! gs 'pet_init', 'init', 'mc'
+    !! Init ballet career quest tracker
+    gs 'core_library', 'init'
+end
+--- home_family_init ---------------------------------

+ 27 - 27
locations/hotel_anna_sex.qsrc

@@ -31,7 +31,7 @@ if $ARGS[0] = 'les_sex':
 		act 'Agree':
 			*clr & cla
 			gs 'stat'
-			AnnaQW['sub'] + = 1
+			AnnaQW['sub'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract08a.jpg"></center>'
 			'You were told not to interact in the session but Anna directly asked you a question so you have to say something.'
 			'You decide to play along and not upset the session so you meekly agree.'
@@ -194,7 +194,7 @@ if $ARGS[0] = 'dresscontest':
 		act'The way Jeanine obey your orders was...amusing':
 			*clr & cla
 			gs 'stat'
-			AnnaQW['sub'] + = 1
+			AnnaQW['sub'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract12.jpg"></center>'
 			'<font color = blue>"...I assure you that it wasn''t her best performance. Nonetheless I think it was really useful for our chit chat: practice is a way to learn more faster than theory at this point; anyway that doesn''t mean we have to rush...and as anyone else you have to have the most clear way of thougt about that matter, and that require its amount of time."</font><br><font color = #DC143C>"I can figure that she has to have a deep bond with you...i don''t know if ... i mean... "</font>.....<br><font color = blue>"...And you cannot be much more wrong. Uh? So "love" is supposed to have a role in that story uh? Let''s see if there''s something about a 24/7..."</font> Anna doesn''t lose the chance to teach yo something, but she continue to put a sight on the film...<br><font color = #DC143C>"...Mmmm...what do you mean?"</font>'
 			act 'Listen': gt'hotel_anna_sex','dresscontest1'
@@ -202,7 +202,7 @@ if $ARGS[0] = 'dresscontest':
 		act'I''m not really sure':
 			*clr & cla
 			gs 'stat'
-			AnnaQW['switch'] + = 1
+			AnnaQW['switch'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract12.jpg"></center>'
 			'<font color = blue>"...To be honest I think it was really useful for our chit chat: practice is a way to learn more faster than theory at this point; that doesn''t mean we have to rush...and as anyone else you have to have the most clear way of thougt about that matter, and that require its amount of time."</font><br><font color = #DC143C>"Well this is a little disappointg if i can. I mean, i''m not really sure if there''s something i like more than something else about BDSM lifestyle...and if practice is the only way..."</font>.....<br><font color = blue>"First of all: there''s nothing to be disappointed. You have to speak freely with me. Second... you cannot be much more wrong. Uh? So "love" is supposed to have a role in that story uh? Let''s see if there''s something about a 24/7..."</font> Anna doesn''t lose the chance to teach yo something, but she continue to put a sight on the film...<br><font color = #DC143C>"...Mmmm...what do you mean?"</font>'
 			act 'Listen': gt'hotel_anna_sex','dresscontest1'
@@ -226,7 +226,7 @@ if $ARGS[0] = 'dresscontest':
 		act'I-i...was a little embarassed...but...we...all woman...(lower your head in shame)...':
 			*clr & cla
 			gs 'stat'
-			AnnaQW['sub'] + = 1
+			AnnaQW['sub'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract12a.jpg"></center>'
 			'<font color = blue>"...My dear...i was referring to Jeanine session: our wasn''t a session but a deal. I could not break the treatment with Jeanine without lowering my influence on her. Anyway I think it was really useful for our chit chat: practice is a way to learn more faster than theory at this point; that doesn''t mean we have to rush...and as anyone else you have to have the most clear way of thougt about that matter, and that require its amount of time."</font><br><font color = #DC143C>"I''m not sure i can...i mean...maybe...with more..."</font>.....<br><font color = blue>"...And you cannot be much more wrong. Uh? So "love" is supposed to have a role in that story uh? Let''s see if there''s something about a 24/7..."</font> Anna doesn''t lose the chance to teach yo something, but she continue to put a sight on the film...<br><font color = #DC143C>"....what do you mean?"</font>'
 			act 'Listen': gt'hotel_anna_sex','dresscontest1'
@@ -234,7 +234,7 @@ if $ARGS[0] = 'dresscontest':
 		act'...Well...':
 			*clr & cla
 			gs 'stat'
-			AnnaQW['switch'] + = 1
+			AnnaQW['switch'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract12a.jpg"></center>'
 			'<font color = blue>"...See? I think it was really useful for our chit chat: practice is a way to learn more faster than theory at this point; that doesn''t mean we have to rush...and as anyone else you have to have the most clear way of thougt about that matter, and that require its amount of time."</font><br><font color = #DC143C>"Do you mean i have to assist you in a lot of session? I mean as a spectator? "</font>.....<br><font color = blue>"...That''s depend entirely on you. Uh? So "love" is supposed to have a role in that story uh? Let''s see if there''s something about a 24/7..."</font> Anna doesn''t lose the chance to teach yo something, but she continue to put a sight on the film...<br><font color = #DC143C>"...Mmmm...what do you mean?"</font>'
 			act 'Listen': gt'hotel_anna_sex','dresscontest1'
@@ -330,7 +330,7 @@ if $ARGS[0] = 'dresscontest2':
 	act'I cannot deny, i''ve thought what should be being at Jeanine''s place':
 		*clr & cla 
 		gs 'stat'
-		AnnaQW['sub'] + = 1
+		AnnaQW['sub'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract15.jpg"></center>'
 		if IgorevnaBDSM_harness_b = 1:
 			'As your words escape from your mouth you feel like the strap of your dress are going to find a way through your intimate...'
@@ -356,7 +356,7 @@ if $ARGS[0] = 'dresscontest2':
 	act'I''m not really sure...i''ve thought both being in your and her position, but...well...i don''t know...':
 		*clr & cla
 		gs 'stat'
-		AnnaQW['switch'] + = 1
+		AnnaQW['switch'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract15b.jpg"></center>'
 		'<font color = blue>"...At the end you are showing some kind of interest..."</font> You try to not seems too much interested, focusing on not giving Anna the "wrong" imagine of yourself...<br><font color = #DC143C>"Well...i mean...it''s not that i had something else to do...and imagination flow...and..."</font><br><font color = blue>"...Hey sweety! I''m the last person on the world who will judge you about your BDSM impression: and do not forget you will be the last one with the last word on that matter eventually..."</font><br><font color = #DC143C>"...Mmmm...well...i assume you are right..."</font>'
 		act 'Listen': gt'hotel_anna_sex','dresscontest3'
@@ -380,7 +380,7 @@ if $ARGS[0] = 'dresscontest2':
 			act'...':
 				*clr & cla
 				gs 'stat'
-				AnnaQW['trust'] + = 1
+				AnnaQW['trust'] += 1
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract15b.jpg"></center>'
 				'<font color = blue>"...Uh? Is everything fine <<$pcs_nickname>>?..."</font><br><font color = #DC143C>"I''m not sure...you made me spank by Jeanine, and now i''m wearing this dress...i feel like i''m taking part of a session..."</font><br><font color = blue>"But it''s not. I told you it was a deal, but i won''t stop you from thinking that if that''s what you like... . To be honest it''s only a dress contest...but feel free: you are pretty sure with me..."</font><br><font color = #DC143C>"...Well...i ...probably you are right..."</font>'
 				act 'Listen': gt'hotel_anna_sex','dresscontest3'
@@ -389,7 +389,7 @@ if $ARGS[0] = 'dresscontest2':
 			act'...':
 				*clr & cla
 				gs 'stat'
-				AnnaQW['trust'] + = 1
+				AnnaQW['trust'] += 1
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract15.jpg"></center>'
 				'<font color = blue>"...Uh? Is everything fine <<$pcs_nickname>>?..."</font><br><font color = #DC143C>"I''m not sure...you made me spank by Jeanine; i think i''ve just played the game..."</font><br><font color = blue>"But it''s not. I told you it was a deal, but i won''t stop you from thinking you are playing it if that''s what you like... . Anyway, feel free to think that: you are pretty sure with me..."</font><br><font color = #DC143C>"...Well...i ...probably you are right..."</font>'
 				act 'Listen': gt'hotel_anna_sex','dresscontest3'
@@ -419,9 +419,9 @@ if $ARGS[0] = 'dresscontest3':
 				gs 'stat'
 				IgorevnaBDSM_statusdress_a = 1
 				if IgorevnaBDSM_harness_b = 1:
-					AnnaQW['switch'] + = 1
+					AnnaQW['switch'] += 1
 				else
-					AnnaQW['sub'] + = 1
+					AnnaQW['sub'] += 1
 				end
 				'<center><img <<$set_imgh>> src="images/pc/clothing/8fetish/49.jpg"></center>'
 				'<font color = #DC143C>"I didn''t thought i could do that... . It seems more difficult to remove them, but as i put them on without keys, i should be able to put them off the same way..."</font><br><font color = blue>"...##@@*****#@++!!!..."</font>You hear Anna yelling from the distance...'
@@ -441,7 +441,7 @@ if $ARGS[0] = 'dresscontest3':
 			gs 'stat'
 			IgorevnaBDSM_statusdress_b = 1
 			if IgorevnaBDSM_harness_a = 1:
-				AnnaQW['switch'] + = 1
+				AnnaQW['switch'] += 1
 			else
 				AnnaQW['dom'] += 1
 			end
@@ -520,7 +520,7 @@ if $ARGS[0] = 'dresscontest_end':
 			act'I...i dont know what to say...you mean "Me and You"...for real?':
 				*clr & cla
 				gs 'stat'
-				AnnaQW['trust'] + = 1
+				AnnaQW['trust'] += 1
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract18b.jpg"></center>'
 				'<font color = blue>"Oh my dear... i don''t know if i''m more flattered by considering me to be your mentor, or to be hitted by you..."</font> Anna''s word lets your heart to skip a beat...<br><font color = #DC143C>"I...i..."</font> You are blushing...do you really fell something for Anna? You don''t know right now, but Anna seems to deal with that with the right experience; then she look at you with a subtle smile... . <br><font color = blue>"...<<$pcs_nickname>>...i promise: i won''t let what could be an infatuation, to overburst your limits if you''ll eventually decide to take part on a session. I''ll think about something to do for our next session...and you''ll take your choice next time...''k? Just remember: there won''t be role restriction, look through your soul and find your own path."</font> You listen Anna till she leads you to the exit giving you a big kiss on the cheeck...only the cheeck...'
 				act 'Thanks Anna see you soon': gt'HotelHole'
@@ -578,7 +578,7 @@ if $ARGS[0] = 'dresscontest_video_end':
 	act'I...i dont know what to say...you mean "Me and You"...for real?':
 		*clr & cla
 		gs 'stat'
-		AnnaQW['trust'] + = 1
+		AnnaQW['trust'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract18b.jpg"></center>'
 		'<font color = blue>"Oh my dear... i don''t know if i''m more flattered by considering me to be your mentor, or to be hitted by you..."</font> Anna''s word lets your heart to skip a beat...<br><font color = #DC143C>"I...i..."</font> You are blushing...do you really fell something for Anna? You don''t know right now, but Anna seems to deal with that with the right experience; then she look at you with a subtle smile... . <br><font color = blue>"...<<$pcs_nickname>>...i promise: i won''t let what could be an infatuation, to overburst your limits if you''ll eventually decide to take part on a session. I''ll think about something to do for our next session...and you''ll take your choice next time...''k? Just remember: there won''t be role restriction, look through your soul and find your own path."</font> You listen Anna till she leads you to the exit giving you a big kiss on the cheeck...only the cheeck...'
 		act 'Thanks Anna see you soon': gt'HotelHole'
@@ -635,7 +635,7 @@ if $ARGS[0] = 'scanning_path':
 				*clr & cla
 				gs 'stat'
 				IgorevnaBDSM_session_librarian = 1
-				AnnaQW['sub'] + = 1
+				AnnaQW['sub'] += 1
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract18.jpg"></center>'
 				'<font color = blue>"It will not be a big stuff, that''s true, but knowing that you trust me enough to accept the work with me fill my heart of joy."</font><br><font color = #DC143C>"Well..it''s ...i...think...i''m safe with you..."</font><br><font color = blue>"Hehe...don''t flatter me...you will make me blush. Just think to take this work seriously...a little punishment will wait for you otherwise... . Or maybe you are looking for that...hehehe"</font>...Anna smiles...<font color = blue>"Then it''s settled, our verbal agreement will be sufficient, i''m pretty sure of that. Let me lead to the exit"</font>'
 				act 'S-see you...Anna...': gt'HotelHole'
@@ -643,7 +643,7 @@ if $ARGS[0] = 'scanning_path':
 			act'I-i''ll see next time Anna...it sound...scary...':
 				*clr & cla
 				gs 'stat'
-				AnnaQW['switch'] + = 1
+				AnnaQW['switch'] += 1
 				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpractic1/Annapract18.jpg"></center>'
 				'<font color = blue>"Hehehe...that doesn''t means we''ll not have fun! Do not worry about missing this chance, you probably has to look better inside your self and that''s understandable, even auspicable to be honest."</font><br><font color = #DC143C>"Thanks for your understanding Anna..."</font><br><font color = blue>"Hehe...don''t flatter me...you will make me blush...hehehe"</font>...Anna smiles...<font color = blue>"Then it''s settled, we''ll see next time... . Let me lead to the exit"</font>'
 				act 'See you...Anna...': gt'HotelHole'
@@ -688,7 +688,7 @@ if $ARGS[0] = 'Anna_path_choice':
 		act'Wait Anna...(penitent)': 
 			*clr & cla
 			gs 'stat'
-			AnnaQW['trust'] + = 1
+			AnnaQW['trust'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/Annahurt.jpg"></center>'
 			'<font color = #DC143C> "...You...you''ve done nothing wrong. It''s my fault, i trust you but doing a session was a bit of a shock for me..."</font>...Anna let you speak...<font color = #DC143C>"...Is there something i could do, to run things between us as nothing happened? I mean before i ruined everything with my stupid answer..."</font><br><font color = blue> "As i said, and as you know, trust is the basic. There''s no better way than a session to see the trust we have on each other. It cannot be with you on the Dom side this time..." </font>'
 			act'I understand, and your frienship has a great value for me. I''m ready to start if you agree.': gt'hotel_anna','Anna_sub_hurt'
@@ -756,7 +756,7 @@ if $ARGS[0] = 'slaveM':
 	*clr & cla
 	gs 'stat'
 	AnnaQW['dom'] += 1
-	AnnaQW['trust'] + = 1
+	AnnaQW['trust'] += 1
 	BDSM_Knowledge += 1
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/male/slaveM0.jpg"></center>'
 	'<font color = blue> "...You look good <<$pcs_nickname>>..." </font><br><font color = #DC143C> "...Oh thanks. Do you think that pink doesn''t suit with the session?"</font><br><font color = blue> "...Absolutely not: if another color could make you more confident with your self you could use it as a little help. Honestly it doesn''t matter: you could be dress as a farie and nonetheless subs have to obey; no matter what." </font><br><font color = #DC143C> "Got it."</font><br><font color = blue> "Before presentation <<$pcs_nickname>...is there something you would like to ask? Something you may want to improve ... or a last minutes tip?"</font>'
@@ -976,7 +976,7 @@ if $ARGS[0] = 'slaveF':
 	*clr & cla
 	gs 'stat'
 	AnnaQW['dom'] += 1
-	AnnaQW['trust'] + = 1
+	AnnaQW['trust'] += 1
 	BDSM_Knowledge += 1
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/female/slaveF0.jpg"></center>'
 	'You both changes into your clothes... . Anna is pratically naked, but it''s not a big news at this point... .<font color = blue> "...Here...light this...it will help creating a good environment..." </font><br><font color = #DC143C> "...It can help...thanks Anna. You know, i was hoping for Jeanine...and now i cannot see her in the face neither...it''s kind of making me nervous..."</font><br><font color = blue>"Don''t worry my dear everything will go smooth i assure you; the mask is for the roleplay...you''ll eventually see her again in the future... . Ok let''s start...do you want to speak first? You know presentation, how much fun we''ll have today...and so on..."</font>'
@@ -1180,8 +1180,8 @@ end
 if $ARGS[0] = 'librarian':
 	*clr & cla
 	gs 'stat'
-	AnnaQW['sub'] + = 1
-	AnnaQW['trust'] + = 1
+	AnnaQW['sub'] += 1
+	AnnaQW['trust'] += 1
 	BDSM_Knowledge += 1
 	Anna_librarian_brat = 0
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/librarian/Annalibrarian0.jpg"></center>'
@@ -1235,7 +1235,7 @@ if $ARGS[0] = 'librarian1':
 	act'Better be careful...': 
 		*clr & cla
 		gs 'stat'
-		AnnaQW['trust'] + = 1
+		AnnaQW['trust'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/librarian/Annalibrarian3a.jpg"></center>'
 		if Anna_librarian_brat = 1:
 			'<font color = blue>"Leave them on the desk and go sit and study or read or whatever...i don''t need you right now."</font>'
@@ -1275,7 +1275,7 @@ if $ARGS[0] = 'librarian2':
 	act'...''...Well...it doesn''t hurt...''...': 
 		*clr & cla
 		gs 'stat'
-		AnnaQW['trust'] + = 1
+		AnnaQW['trust'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/librarian/Annalibrarian5.jpg"></center>'
 		!if storyline...:
 		'You spen some times doing some math exercise...<font color = blue> "...<<$pcs_nickname>>! Come here...."</font>'
@@ -1321,7 +1321,7 @@ if $ARGS[0] = 'librarian3':
 	act'I''m a good girl.': 
 		*clr & cla
 		gs 'stat'
-		AnnaQW['trust'] + = 1
+		AnnaQW['trust'] += 1
 		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/librarian/Annalibrarian7.jpg"></center>'
 		'You sit on the floor bounded with ropes trying to find a comfortable position; it''s not easy but you have to endure...<font color = blue> "Good girl, i see you find a good place. Wait for me to finish." </font>'
 		if Anna_librarian_brat = 0:
@@ -1389,7 +1389,7 @@ if $ARGS[0] = 'librarian5':
 				act'...Sorry Ma''am...': 
 					*clr & cla
 					gs 'stat'
-					AnnaQW['sub'] + = 1
+					AnnaQW['sub'] += 1
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/librarian/Annalibrarian8b.jpg"></center>'
 					'You do your best to not disappoint Anna and eagerly clean her boots till they are shiny...<font color = blue> "...That''s it. Follow me." </font>'
 					act'...': gt'hotel_anna_sex','librarian_brat_end'
@@ -1615,7 +1615,7 @@ end
 if $ARGS[0] = 'Anna_dom_session':
 	*clr & cla
 	gs 'stat'
-	AnnaQW['trust'] + = 1
+	AnnaQW['trust'] += 1
 	AnnaQW['dom'] += 1
 	BDSM_Knowledge += 1
 	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/dom/dom0.jpg"></center>'
@@ -1809,7 +1809,7 @@ if $ARGS[0] = 'Anna_dom_session4':
 		act'Listen to Anna''s words...': 
 			*clr & cla
 			gs 'stat'
-			AnnaQW['trust'] + = 1
+			AnnaQW['trust'] += 1
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/Anna/sessionpracticend/dom/latch1a.jpg"></center>'
 			'You wonder what could be happened if you didn''t followed Anna''s advice, but you think it could be inappropriate at the end and try to make your work without complain.<font color = #DC143C>"I''m a little disappointed Anna, it''s not that i have a lot of freedom doing stuff you are telling me to do."</font><br><font color = blue> "I can understand, but we should stay within limits and that''s one i don''t want to pass right now. It could sound like i''m topping from the bottom, but it''s not: you are new to this, and you shouldn''t overstep. It''s better for both...believe me..i''m not...easy...if angry... "</font>You would never say that looking at her, but that''s it and you continue tightening some of the latch<br><font color = #DC143C>"Done."</font><br><font color = blue>"Pass the last couple of latch on my breast, and end with the gag... "</font>'
 			act'...Oh! Sure!...': 

+ 7 - 4
locations/journal_quests.qsrc

@@ -639,18 +639,21 @@ if $start_type['cat'] = 'dancer' or (mod_ballet['letter'] > 0 or balletqw['schoo
 	'<center><h3>Pushkin Ballet School</h3></center>'
 	'<center><h4>Introit</h4></center>'
 	if mod_ballet['letter'] ! 1 and balletqw['school'] < 1:
-		'You have been a ballerina since a child and you have excelled in your dance class. Your name was put forward for the yearly entrance assessments for the Pushkin Ballet School which are being held during the summer and you are hoping for a invitation to the prestigious Pushkin Ballet Academy to your dream of being a ballerina.'
+		'You have been a ballerina since a child and you have excelled in your dance class. Your name was put forward by your dance teacher to the yearly entrance assessments for the Pushkin Ballet School which are being held during the summer and you are hoping for an invitation to the prestigious Pushkin Ballet Academy to fulfil your dream of being a ballerina.'
+		*nl
 	end
 	if 	mod_ballet['letter'] = 1 and balletqw['school'] < 1:
-		'You have accepted the opportunity at the Pushkin Ballet Academy. Transport is provided for the week long course from the Pavlosk Community Center. '
-		'Departure: 3rd July between 1600 and 1700.'
+		'You have accepted the invitation to the Pushkin Ballet Academy. Transport is provided to all students to the week long course from the Pavlosk Community Center. '
+		'Departure: Sunday, 3rd July between 1600 and 1700.'
+		*nl
 		'Ensure you have sufficient toiletries and work on your appearance, physical and dance skills. Note this is a residental school in Pushkin and has strict rules, ensure you have wrapped up any unfinished business before departing.'
+		*nl
 	end
 	if balletqw['school'] > 1:
 		'<center><h4>Act 1: Dreaming of stars.</h4></center>'
 	end
 	if balletqw['school'] > 1:
-		!! 'You failed the course, there may be other opportunities if you want to achieve your ambition of being a ballerina.'
+		!! 'You failed the course, there may be other opportunities if you want to achieve your ambition of being a ballerina.s'
 		'You have been accepted into the Pushkin Ballet School. End of Quest at present.'
 	elseif balletqw['school'] = 2:
 		'You was accepted into the without any noticeable distinction.'

+ 12 - 47
locations/katjaEvDin.qsrc

@@ -94,7 +94,7 @@ if $ARGS[0] = 'kiss':
 						gs 'stat'
 						'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/sex/school/grab.jpg"></center>'
 						'You grab Katja firmly so she can''t back away.'
-!!{
+!{
 						if pcs_dom < KatjaQW['dom']:
 							gs 'arousal', 'end'
 							gs 'stat'
@@ -195,10 +195,8 @@ if $ARGS[0] = 'kiss':
 		end
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			Act 'Smile and leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and leave':gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -252,14 +250,9 @@ if $ARGS[0] = 'strapon_main':
 	end
 	if $loc = 'katja_dorm':
 		act 'Get dressed and stop talking': gt 'katja_dorm', 'start'
-	elseif mey_vika['key'] = 1:
-		Act 'Smile and leave the room': 
-			gt 'mey_home', 'start'
-		end
 	else
-		act 'Say goodbye and leave':
-			minut += 5
-			gt 'pav_residential'
+		act 'Smile and leave the room': 
+			gt 'mey_home', 'start'
 		end
 	end
 end
@@ -442,14 +435,10 @@ if $ARGS[0] = 'sex':
 			end
 			if $loc = 'katja_dorm':
 				act 'Stop talking': gt 'katja_dorm', 'start'
-			elseif mey_vika['key'] = 1:
+			else
 				act 'Leave the room': 
 					gt 'mey_home', 'start'
 				end
-			else
-				act 'Say goodbye and go home':
-					gt 'pav_residential'
-				end
 			end
 		end
 	end
@@ -485,16 +474,11 @@ if $ARGS[0] = 'sex':
 					gs 'arousal', 'end'
 					gt 'katja_dorm', 'start'
 				end
-			elseif mey_vika['key'] = 1:
+			else
 				act 'Leave the room': 
 					gs 'arousal', 'end'
 					gt 'mey_home', 'start'
 				end
-			else
-				act 'Say goodbye and go home':
-					gs 'arousal', 'end'
-					gt 'pav_residential'
-				end
 			end
 		end
 	end
@@ -545,16 +529,11 @@ if $ARGS[0] = 'kuni':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -595,16 +574,11 @@ if $ARGS[0] = 'fisting':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -643,16 +617,11 @@ if $ARGS[0] = 'kuni_p':
 				gs 'arousal', 'end'
 				gt 'katja_dorm', 'start'
 			end
-		elseif mey_vika['key'] = 1:
+		else
 			act 'Leave the room': 
 				gs 'arousal', 'end'
 				gt 'mey_home', 'start'
 			end
-		else
-			act 'Say goodbye and go home':
-				gs 'arousal', 'end'
-				gt 'pav_residential'
-			end
 		end
 	end
 end
@@ -813,10 +782,8 @@ if $ARGS[0] = 'kuni_dom':
 								end
 								if $loc = 'katja_dorm':
 									act 'Stop talking': gt 'katja_dorm', 'start'
-								elseif mey_vika['key'] = 1:
-									Act 'Leave the room': gt 'mey_home', 'start'
 								else
-									act 'Say goodbye and go home':gt 'pav_residential'
+									act 'Leave the room': gt 'mey_home', 'start'
 								end
 							end
 						end
@@ -828,10 +795,8 @@ if $ARGS[0] = 'kuni_dom':
 		gs 'arousal', 'end'
 		if $loc = 'katja_dorm':
 			act 'Stop talking': gt 'katja_dorm', 'start'
-		elseif mey_vika['key'] = 1:
-			Act 'Leave the room': gt 'mey_home', 'start'
 		else
-			act 'Say goodbye and go home':gt 'pav_residential'
+			act 'Leave the room': gt 'mey_home', 'start'
 		end
 	end
 end
@@ -893,7 +858,7 @@ if $ARGS[0] = 'moron':
 			gs 'stat'
 
 			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/katja/frenchkiss.jpg"></center>'
-			'Looking at Ivan, then at this idiot, it seems that Ivan didn''t notice him. You sigh. "Is that really necessary? She is my best friend and we want to kiss. You just seem jealous!'
+			'Looking at Ivan, then at this idiot, it seems that Ivan didn''t notice him. You sigh. "Is that really necessary? She is my best friend and we want to kiss. You just seem jealous!"'
 			'"Lesbians! Lesbians!" He continues to scream like a freak so much so that people begin to gather around to find out what''s happening. Ivan steps over next to you and puts his hand on your shoulder, giving the idiot a glare as well. Boosted by Ivan''s support, you continue. "We like boys, just not assholes like you!" With those words, you stand on your tiptoes and, clasping Ivan''s head in your hands, give him a long passionate kiss with lots of tongue.'
 
 			act 'Kiss again':

+ 41 - 19
locations/korrPar.qsrc

@@ -1,35 +1,48 @@
 # korrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home kitchen links to family flat corridor
 
-music_loop = 0
-CLOSE ALL
-menu_off = 0
+!! Call in location default actions
+gs 'home_family_init', 'init'
 
-if sound = 0 and pavhome_enter = 1:
-	PLAY 'sound/korr.mp3',30
-	pavhome_enter = 0
-end
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Corridor'
+$setloc['StageImage'] = '<<$default_img_path>>/korrpar.jpg'
 
-gs 'shortgs', 'setloc', 'korrPar', $ARGS[0]
+!! Set location vars:
 killvar '$locclass'
-clr
+!! Unique vars - unknown status, legacy code
+!! TODO: Follow up and determine what these do and if they can be removed.
 popolaini = 0
 saunaYouRoom = 0
 boycherdaksex = 0
-minut += 1
 bonusZ = 0
 display_bb = 0
-$location_type = 'private'
-gs 'themes', 'indoors'
-gs 'family_schedule'
-gs 'stat'
-'<center><h1><font color="maroon">Corridor</font></h1></center>'
-'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/korrpar.jpg"></center>'
+!! Set up game location data
+gs 'shortgs', 'setloc', 'korrPar', $ARGS[0]
+
+!! Set up location trackers
+gs 'home_family_init', 'trackers'
+
+!! Enable location audio
+if sound = 0 and pavhome_enter = 1:
+	PLAY 'sound/korr.mp3',30
+	pavhome_enter = 0
+end
+
+!! Location default description:
 *nl
 'The corridor of your parent''s apartment. There are several doors which lead to the other rooms of the apartment, as well as the front door which leads outside to the stairwell.'
 *nl
 'A <a href="exec:gt ''mirror'', ''start''">mirror</a> hangs on the wall near the front door.'
 *nl
+!! End default Description
 
+!! Additional location content:
 if locat['Fam_inGad'] = 1:'With your parents away visiting your grandparents, the apartment seems quiet and empty.'
 
 gs 'courtletter'
@@ -40,6 +53,9 @@ if locat['Mother'] = 1 and hour = 22 and minut < 30 and motherQW['con_steal_talk
 
 act '<b>Leave and go to the stairwell</b>':
 	if $clothingworntype ! 'nude':
+		$default_img_path = 'reset'
+		killvar '$mother_img_path'
+		minut += 5
 		gt'pod_ezd','etaj_2'
 	else
 		msg'<b><font color = red>You need to get dressed.</font></b>'
@@ -54,11 +70,17 @@ act '<b>Leave and go to the courtyard</b>':
 			cla
 			act '<font color=red><b>Yes, go outside</b></font>': 
 				minut += 5 
+				!! Reset vars - temp until other parts of game migrated
+				killvar '$default_img_path'
+				killvar '$mother_img_path'
 				gt'pav_complex', 'start'
 			end
 			act 'No, stay inside':gt 'korrPar'
 		else
 			minut += 5
+			!! Reset vars - temp until other parts of game migrated
+			killvar '$default_img_path'
+			killvar '$mother_img_path'
 			gt'pav_complex', 'start'
 		end
 	else
@@ -129,7 +151,7 @@ elseif locat['Kolka'] = 10:
 elseif locat['Anya'] = 5:
 	act 'Go to the bathroom':msg'You try to open the bathroom door, but it immediately stops and bangs against the latch. You hear the water running and your sister yell "I''ll be done in a few minutes!"'
 else
-	act 'Go to the bathroom':minut += 1 & gt 'vanrPar'
+	act 'Go to the bathroom':minut += 1 & gt 'vanrPar', 'start'
 end
 
 if motherQW['bathroom_dildos'] > 0 and locat['Mom_athome'] = 1: gt'mother_sextalk','bathroom_dildos1'
@@ -169,7 +191,7 @@ else
 	end
 end
 
-$korrParMomHeader = '<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center><center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/mother.jpg"></center><br />'
+$korrParMomHeader = '<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center><center><img <<$set_imgh>> src="<<$mother_img_path>>mother.jpg"></center><br />'
 
 if hour >= 16 and hour <= 20 and locat['Fam_inGad'] = 0:
 	if artemvbrosvid = 1 and artemhakday ! daystart and npc_QW['A29'] < 2 and mothervideotalk = 0 or BrotherNo = 1 and BrotherNoDay ! daystart and BJvideoPublic = 0:
@@ -203,7 +225,7 @@ if hour >= 16 and hour <= 20 and locat['Fam_inGad'] = 0:
 			gs 'pain', 5, 'asscheeks', 'spank'
 			gs 'stat'
 			'<center><h1><font color="maroon"><<$npc_nickname[''A29'']>></font></h1></center>'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/spank.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>spank.jpg"></center>'
 			*nl
 			'You stand in the hallway staring at the floor, too embarrassed to say anything.'
 			'Your mother grabs you by the arm and pulls you into the living room. "Take off your pants and bend over!" You shake your head, not liking where this is going at all. Getting even angrier by your refusal, she shouts, "Vladimir, come and hold her down!"'

+ 37 - 28
locations/kuhrPar.qsrc

@@ -1,10 +1,34 @@
 # kuhrPar
-CLOSE ALL
-*clr & cla
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home kitchen links to family flat corridor
+
+!! Start location initialisation
+!! Call in location default actions
+gs 'home_family_init', 'init'
+!! Set location header - img path is set in init
+$setloc['StageTitle'] = 'Parents Kitchen'
+$setloc['StageImage'] = '<<$default_img_path>>/kuhrpar.jpg'
+
+!! Set location vars:
+
+!! Call in kitchen library:
+gs 'kit_din'
+
+!! Set up game location data
+gs 'shortgs', 'setloc', 'kuhrpar', $ARGS[0]
+!! End location initialisation
+
+
+!! Begin location content
+
 if fullmorrout = 1:
 	minut += 2
 	act '<font color = maroon><b>Leave the apartment and go outside</b></font>':
-		minut +=1
+		minut += 1
 		killvar 'fullmorrout'
 		gs 'korrPar'
 		gt'pav_residential'
@@ -13,27 +37,9 @@ end
 
 act 'Return to the hallway':
 	killvar 'fullmorrout'
+	minut += 1
 	gt 'korrPar'
 end
-
-$loc = 'kuhrPar'
-$loc_arg = ''
-$locclass = 'kitr'
-$menu_loc = 'kuhrPar'
-$menu_arg = ''
-menu_off = 0
-minut += 1
-gs 'stat'
-gs 'kit_din'
-gs 'themes', 'indoors'
-gs 'family_schedule'
-
-!! ballet career
-gs 'core_library', 'init'
-
-'<center><b><font color="maroon">Kitchen</font></b></center>'
-'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/kuhrpar.jpg"></center>'
-
 if func('homes_properties', 'can_live_here'):
 	if locat['Mother'] = 4:
 		if locat['Mom_kitchen_action'] = 1:
@@ -43,7 +49,7 @@ if func('homes_properties', 'can_live_here'):
 			cla & *clr
 			minut += 5
 			gs'stat'
-			'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/gotovka.jpg"></center>'
+			'<center><img <<$set_imgh>> src="<<$mother_img_path>>gotovka.jpg"></center>'
 			'Your <<$npc_nickname[''A29'']>> turns to you. "<<$pcs_nickname>>, please set the table for breakfast." You sigh and grab the dishes.'
 			act 'Set the table for breakfast': gt 'kuhrPar'
 			exit
@@ -88,7 +94,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat breakfast with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost6.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$mother_img_path>>prost6.jpg"></center>'
 				'Your <<$npc_nickname[''A29'']>> catches you just before you sit down.'
 				'Your Mum glares at you and you realize you haven''t washed the cum stains off which makes you feel terrible.'
 				'"I''m so ashamed of you! Go and clean it off now! Get out of my sight you whore!"'
@@ -102,7 +108,7 @@ if func('homes_properties', 'can_live_here'):
 				npc_rel['A29'] += 1
 				breakfast_day = daystart
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/breakfasthome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/breakfasthome.jpg"></center>'
 				'As you sit down and join your family for breakfast, your stepfather engages you in conversation. "How are you doing in school <<$pcs_nickname>>?"'
 				if kanikuli = 0 and mid($start_type,1,2) = 'sg' and $home['current'] = 'parents_home' and SchoolBlock = 0:
 					if class['school_grade_average'] >= 80:
@@ -127,7 +133,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat breakfast with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/breakfasthome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/breakfasthome.jpg"></center>'
 				'Everyone stares at you as you sit down for breakfast. "What?" you exclaim.'
 				*nl
 				'Your mother stands up from her seat, nearly knocking her chair over in the process. "What on God''s earth are you doing <<$pcs_nickname>>?! Have you have no shame? Get dressed immediately young lady!"'
@@ -145,7 +151,7 @@ if func('homes_properties', 'can_live_here'):
 				npc_rel['A29'] += 1
 				dinner_day = daystart
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/dinnerhome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/dinnerhome.jpg"></center>'
 				'You sit down and join your family for dinner and your stepfather starts teasing you. "So, do you have a boyfriend yet <<$pcs_nickname>>?"'
 				if fame['pav_slut'] > 150 and motherKnowSpravka = 0:
 					'You''re about to respond when your mother interrupts you. "Of course not! She''s still too young to be thinking about boys!"'
@@ -179,7 +185,7 @@ if func('homes_properties', 'can_live_here'):
 			act 'Eat dinner with your family':
 				*clr & cla
 				gs 'stat'
-				'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/dinnerhome.jpg"></center>'
+				'<center><img <<$set_imgh>> src="<<$default_img_path>>/dinnerhome.jpg"></center>'
 				'Everyone stares at you as you sit down for dinner.  "What?" you exclaim.'
 				*nl
 				'Your mother stands up from her seat, nearly knocking her chair over in the process. "What on God''s earth are you doing <<$pcs_nickname>>?! Have you have no shame? Get dressed immediately young lady!"'
@@ -208,6 +214,9 @@ if func('homes_properties', 'can_live_here'):
 		act 'Eat a light meal (0:10)':gs 'food', 's_meal'
 	end
 
+
+	!! Call in meal and pill functions for location:
+
 	dynamic $edasnack
 	dynamic $sandwich
 	dynamic $driwater

+ 11 - 3
locations/mey_home.qsrc

@@ -78,7 +78,15 @@ if $ARGS[0] = 'start':
 	'A large and bright hall, this "hallway" stretches for quite a bit. You''ve never seen anything like this before! There is a mirror covering half of one of the walls. You see the kitchen from the hallway. There''s a big oval dining table.'
 	'There are stairs leading to the second floor. You can also see two doors where the signs say "Toilet" and "Bathroom".'
 
-	act 'Leave the house': minut += 5 & gt 'pav_residential'
+	act 'Leave the house':
+		if $clothingworntype ! 'nude':
+			minut += 5
+			gt 'pav_residential'
+		else
+			msg'<b><font color = red>You need to get dressed.</font></b>'
+			gt 'mey_home', 'start'
+		end
+	end
 
 	if mey_vika['mey_vika_qw'] = 30 and mey_vika['qw_day'] ! daystart and locat['Vicky'] = 15: gs 'mey_vika_events', 'case_gift'
 	if mey_vika['mey_vika_qw'] >= 32 and mey_vika['gym_day'] ! daystart and locat['Vicky'] = 12: gs 'mey_vika_events', 'gym0'
@@ -125,13 +133,13 @@ if $ARGS[0] = 'start':
 	end
 	act 'Kitchen': minut += 1 & gt 'mey_home', 'kitchen'
 	act 'Bathroom': minut += 1 & gt 'mey_home', 'bathroom'
-	act 'Guest room': minut += 1 & gt 'mey_home', 'guest_bedroom'
+	if mey_vika['mey_vika_qw'] >= 30: act 'Guest room': minut += 1 & gt 'mey_home', 'guest_bedroom'
 	act 'Lounge': minut += 1 & gt 'mey_home', 'lounge'
 	act 'Katja''s room': minut += 1 & gt 'mey_home', 'katja_bedroom'
 	act 'Vicky''s room': minut += 1 & gt 'mey_home', 'vicky_bedroom'
 	act 'Tamara Meynold''s room': minut += 1 & gt 'mey_home', 'tamara_bedroom'
 	act 'Garden': minut += 1 & gt 'mey_home', 'garden'
-	if func('homes_properties', 'is_current_home') = 0 and func('homes_properties', 'can_live_here'):
+	if func('homes_properties', 'is_current_home') = 0 and func('homes_properties', 'can_live_here') and mey_vika['mey_vika_qw'] >= 30:
 		act 'Set this household as your main home':gs 'homes_properties', 'set_home' & gt 'mey_home', 'start'
 	end
 

+ 1 - 1
locations/mother.qsrc

@@ -288,7 +288,7 @@ if $ARGS[0] = '':
 		end
       
 		!!Tell mother that you were raped and skip mother being angry at you for being sexualy active event
-		if rape_day+7 > daystart:
+		if rape_count > 0 and rape_day+7 > daystart:
 			act 'Tell her about your rape':
 				gt 'mother_chats', 'rape_talk'
 			end

+ 110 - 31
locations/npcstatic1.qsrc

@@ -1,6 +1,28 @@
 # npcstatic1
 
-!2023/09/25 Preference update
+!!2024/03/29
+
+!!boys body_builds
+!!skinny - low body fat and muscles
+!!wiry - low body fat, average muscles
+!!average - average body fat and muscles
+!!toned/athletic - low body fat and above average muscles
+!!muscular - average body fat and well above average muscles
+!!bodybuilder - average body fat and high amount of muscles
+!!chubby - a bit overweight
+!!fat - overweight
+!!obese - very overweight
+
+!!Girl body_builds
+!!skinny - low body fat and muscles
+!!petite - low body fat, average muscles
+!!average - average body fat and muscles
+!!toned/athletic - low body fat and above average muscles
+!!muscular - average body fat and well above average muscles
+!!bodybuilder - average body fat and high amount of muscles
+!!chubby - a bit fat
+!!fat - fat
+!!obese - very fat
 
 !2022/01/03
 !{
@@ -50,7 +72,7 @@ $npc_selfie['A<<npctemp>>'] = '<a href="exec:numnpc = 1 & gt ''phone_selfies'',
 !!	It is advisable to start an NPC with a call to reset all their preferences.
 !!		gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
 !!		gs 'npc_standard_preferences', 'A<<npctemp>>'
-!!	
+!!
 !!	It should not matter, but it ensures that the npc is reset to the factory settings
 !!	Any later additions will be removed this way.
 
@@ -156,7 +178,10 @@ npc_sexskill['A<<npctemp>>'] =  1
 npc_rep['A<<npctemp>>'] = 260
 npc_intel['A<<npctemp>>'] = 57
 hotcat_rating['A<<npctemp>>'] =  8
-
+!!height_metric = 180cm
+!!height_imperial = 5ft 11in
+!!body_build = average
+!!hair = brown
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
 gs 'npc_standard_preferences', 'A<<npctemp>>'
@@ -183,6 +208,10 @@ npc_dick['A<<npctemp>>'] = 16
 npc_rep['A<<npctemp>>'] = 30
 npc_intel['A<<npctemp>>'] = 84
 hotcat_rating['A<<npctemp>>'] = 6
+!!height_metric = 177cm
+!!height_imperial = 5ft 10in
+!!body_build = average
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -209,6 +238,10 @@ npc_dick['A<<npctemp>>'] = 17
 npc_rep['A<<npctemp>>'] = 190
 npc_intel['A<<npctemp>>'] = 30
 hotcat_rating['A<<npctemp>>'] =  7
+!!height_metric = 181cm
+!!height_imperial = 5ft 11in
+!!body_build = muscular
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -237,6 +270,10 @@ npc_rep['A<<npctemp>>'] = 60
 npc_sexskill['A<<npctemp>>'] = 1
 npc_intel['A<<npctemp>>'] = 47
 hotcat_rating['A<<npctemp>>'] = 5
+!!height_metric = 170cm
+!!height_imperial = 5ft 6in
+!!body_build = skinny
+!!hair = blond
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -264,6 +301,10 @@ npc_dick['A<<npctemp>>'] = 17
 npc_rep['A<<npctemp>>'] = 160
 npc_intel['A<<npctemp>>'] = 41
 hotcat_rating['A<<npctemp>>'] = 7
+!!height_metric = 175cm
+!!height_imperial = 5ft 9in
+!!body_build = toned/athletic
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -290,6 +331,10 @@ npc_dick['A<<npctemp>>'] = 12
 npc_rep['A<<npctemp>>'] = 10
 npc_intel['A<<npctemp>>'] = 67
 hotcat_rating['A<<npctemp>>'] = 4
+!!height_metric = 172cm
+!!height_imperial = 5ft 8in
+!!body_build = skinny
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -316,6 +361,10 @@ npc_dick['A<<npctemp>>'] = 16
 npc_rep['A<<npctemp>>'] = 0
 npc_intel['A<<npctemp>>'] = 55
 hotcat_rating['A<<npctemp>>'] = 1
+!!height_metric = 174cm
+!!height_imperial = 5ft 9in
+!!body_build = skinny
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -342,6 +391,10 @@ npc_dick['A<<npctemp>>'] = 18
 npc_rep['A<<npctemp>>'] = 170
 npc_intel['A<<npctemp>>'] = 52
 hotcat_rating['A<<npctemp>>'] =  7
+!!height_metric = 179cm
+!!height_imperial = 5ft 10in
+!!body_build = muscular
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -369,6 +422,10 @@ npc_rep['A<<npctemp>>'] = 270
 npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 31
 hotcat_rating['A<<npctemp>>'] = 5
+!!height_metric = 189cm
+!!height_imperial = 6ft 2in
+!!body_build = muscular
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -396,6 +453,10 @@ npc_rep['A<<npctemp>>'] = 230
 npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 48
 hotcat_rating['A<<npctemp>>'] = 6
+!!height_metric = 184cm
+!!height_imperial = 6ft 1in
+!!body_build = wiry
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -423,6 +484,10 @@ npc_rep['A<<npctemp>>'] = 180
 npc_sexskill['A<<npctemp>>'] = rand(0,2)
 npc_intel['A<<npctemp>>'] = 33
 hotcat_rating['A<<npctemp>>'] =  4
+!!height_metric = 174cm
+!!height_imperial = 5ft 9in
+!!body_build = toned/athletic
+!!hair = blond
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -448,9 +513,10 @@ gs 'npcstaticdefaults', 'uni_type', 'science'
 npc_bust['A<<npctemp>>'] = 23
 npc_rep['A<<npctemp>>'] = 10
 npc_intel['A<<npctemp>>'] = 80
-!!$npc_body['A<<npctemp>>'] = 's5'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 170cm
+!!height_imperial = 5ft 7in
+!!body_build = average
 !!hair = long brown hair just past her shoulders.
 !!pubic hair = Neatly trimmed landing strip
 
@@ -479,9 +545,10 @@ npc_sexskill['A<<npctemp>>'] = 2
 npc_intel['A<<npctemp>>'] = 45
 npc_bust['A<<npctemp>>'] = 8
 npc_rep['A<<npctemp>>'] = 40
-!!$npc_body['A<<npctemp>>'] = 'l2'
 hotcat_rating['A<<npctemp>>'] = 6
-
+!!height_metric = 161cm
+!!height_imperial = 5ft 3in
+!!body_build = toned/athletic
 !!hair = short blonde hair.
 !!pubic hair = neatly trimmed small V
 
@@ -509,9 +576,10 @@ gs 'npcstaticdefaults', 'uni_type', 'teaching'
 npc_bust['A<<npctemp>>'] = 20
 npc_rep['A<<npctemp>>'] = 20
 npc_intel['A<<npctemp>>'] = 77
-!!$npc_body['A<<npctemp>>'] = 's3'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 162cm
+!!height_imperial = 5ft 4in
+!!body_build = average
 !!hair = very long red hair reaching half way down her back.
 !!pubic hair = shaved
 
@@ -539,9 +607,10 @@ gs 'npcstaticdefaults', 'uni_type', 'science'
 npc_bust['A<<npctemp>>'] = 18
 npc_intel['A<<npctemp>>'] = 52
 npc_rep['A<<npctemp>>'] = 90
-!!$npc_body['A<<npctemp>>'] = 's3'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 160cm
+!!height_imperial = 5ft 3in
+!!body_build = average
 !!hair = long red hair just past her shoulders.
 !!pubic hair = neatly trimmed triangle
 
@@ -569,9 +638,10 @@ gs 'npcstaticdefaults', 'uni_type', 'fashion'
 npc_bust['A<<npctemp>>'] = 26
 npc_intel['A<<npctemp>>'] = 73
 npc_rep['A<<npctemp>>'] = 30
-!!$npc_body['A<<npctemp>>'] = 'm3'
 hotcat_rating['A<<npctemp>>'] = 6
-
+!!height_metric = 166cm
+!!height_imperial = 5ft 5in
+!!body_build = average
 !!hair = very long light brown hair reaching half way down her back.
 !!pubic hair = neatly trimmed triangle
 
@@ -599,9 +669,10 @@ gs 'npcstaticdefaults', 'uni_type', 'other'
 npc_bust['A<<npctemp>>'] = 24
 npc_intel['A<<npctemp>>'] = 44
 npc_rep['A<<npctemp>>'] = 60
-!!$npc_body['A<<npctemp>>'] = 'm3'
 hotcat_rating['A<<npctemp>>'] = 8
-
+!!height_metric = 167cm
+!!height_imperial = 5ft 6in
+!!body_build = petite
 !!hair = long blonde hair just past her shoulders.
 !!pubic hair = neatly trimmed landing strip
 
@@ -630,9 +701,10 @@ npc_sexskill['A<<npctemp>>'] = 1
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 32
 npc_rep['A<<npctemp>>'] = 80
-!!$npc_body['A<<npctemp>>'] = 'l3'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 163cm
+!!height_imperial = 5ft 4in
+!!body_build = muscular
 !!hair = long blonde hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = neatly trimmed landing strip
 
@@ -660,9 +732,10 @@ gs 'npcstaticdefaults', 'uni_type', 'other'
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 30
 npc_rep['A<<npctemp>>'] = 60
-!!$npc_body['A<<npctemp>>'] = 'l1'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 165cm
+!!height_imperial = 5ft 5in
+!!body_build = toned/athletic
 !!hair = long brown hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = neatly trimmed landing strip
 
@@ -691,8 +764,9 @@ npc_bust['A<<npctemp>>'] = 22
 npc_intel['A<<npctemp>>'] = 33
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 30
-!!$npc_body['A<<npctemp>>'] = 'l1'
-
+!!height_metric = 173cm
+!!height_imperial = 5ft 8in
+!!body_build = toned/athletic
 !!hair = long dyed red hair just past her shoulders.
 !!pubic hair = neatly trimmed landing strip
 
@@ -721,8 +795,9 @@ npc_bust['A<<npctemp>>'] = 18
 npc_intel['A<<npctemp>>'] = 24
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 80
-!!$npc_body['A<<npctemp>>'] = 'm4'
-
+!!height_metric = 162cm
+!!height_imperial = 5ft 4in
+!!body_build = average
 !!hair = long brown hair almost always kept in a ponytail.
 !!pubic hair = neatly trimmed small V
 
@@ -750,9 +825,10 @@ gs 'npcstaticdefaults', 'uni_type', 'other'
 npc_bust['A<<npctemp>>'] = 22
 npc_intel['A<<npctemp>>'] = 36
 npc_rep['A<<npctemp>>'] = 90
-!!$npc_body['A<<npctemp>>'] = 'm4'
 hotcat_rating['A<<npctemp>>'] = 9
-
+!!height_metric = 174cm
+!!height_imperial = 5ft 9in
+!!body_build = skinny
 !!hair = very long light brown hair reaching half way down her back.
 !!pubic hair = shaved
 
@@ -781,9 +857,10 @@ npc_sexskill['A<<npctemp>>'] = 2
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 46
 npc_rep['A<<npctemp>>'] = 70
-!!$npc_body['A<<npctemp>>'] = 'l2'
 hotcat_rating['A<<npctemp>>'] = 8
-
+!!height_metric = 154cm
+!!height_imperial = 5ft 1in
+!!body_build = toned/athletic
 !!hair = very long dark brown hair reaching half way down her back.
 !!pubic hair = shaved
 
@@ -811,9 +888,10 @@ npc_sexskill['A<<npctemp>>'] = 1
 npc_bust['A<<npctemp>>'] = 20
 npc_intel['A<<npctemp>>'] = 42
 npc_rep['A<<npctemp>>'] = 90
-!!$npc_body['A<<npctemp>>'] = 'l2'
 hotcat_rating['A<<npctemp>>'] = 5
-
+!!height_metric = 165cm
+!!height_imperial = 5ft 5in
+!!body_build = toned/athletic
 !!hair = long black hair just past her shoulders.
 !!pubic hair = neatly trimmed triangle
 
@@ -851,9 +929,10 @@ gs 'npcstaticdefaults', 'uni_type', 'fashion'
 
 npc_bust['A<<npctemp>>'] = 9
 npc_intel['A<<npctemp>>']   = 54
-!!$npc_body['A<<npctemp>>']  = 'm2'
 hotcat_rating['A<<npctemp>>'] = 6
-
+!!height_metric = 163cm
+!!height_imperial = 5ft 4in
+!!body_build = petite
 !!hair = long brown hair just past her shoulders.
 !!pubic hair = Neatly trimmed triangle
 

+ 37 - 14
locations/npcstatic3.qsrc

@@ -727,9 +727,10 @@ gs 'npcstaticdefaults', 'uni_type', 'other'
 npc_bust['A<<npctemp>>'] = 18
 npc_intel['A<<npctemp>>'] = 38
 npc_rep['A<<npctemp>>'] = 60
-!!$npc_body['A<<npctemp>>'] = 's3'
 hotcat_rating['A<<npctemp>>'] = 6
-
+!!height_metric = 171cm
+!!height_imperial = 5foot 7inch
+!!body_build = average
 !!hair = long black hair just past her shoulders.
 !!pubic hair = shaved
 
@@ -757,9 +758,10 @@ gs 'npcstaticdefaults', 'uni_type', 'psychology'
 npc_bust['A<<npctemp>>'] = 13
 npc_intel['A<<npctemp>>'] = 63
 npc_rep['A<<npctemp>>'] = 60
-!!$npc_body['A<<npctemp>>'] = 's2'
 hotcat_rating['A<<npctemp>>'] = 7
-
+!!height_metric = 164cm
+!!height_imperial = 5foot 5inch
+!!body_build = petite
 !!hair = long redish brown hair just past her shoulders.
 !!pubic hair = Neatly trimmed triangle
 
@@ -787,8 +789,9 @@ npc_bust['A<<npctemp>>'] = 20
 npc_intel['A<<npctemp>>'] = 49
 hotcat_rating['A<<npctemp>>'] = 7
 npc_rep['A<<npctemp>>'] = 0
-!!$npc_body['A<<npctemp>>'] = 'm2'
-
+!!height_metric = 170cm
+!!height_imperial = 5feet 7inches
+!!body_build = toned/athletic
 !!hair = long dirty blonde hair just past her shoulders, almost always kept in a ponytail.
 !!pubic hair = Neatly trimmed triangle
 
@@ -816,9 +819,10 @@ gs 'npcstaticdefaults', 'uni_type', 'programming'
 npc_bust['A<<npctemp>>'] = 13
 npc_intel['A<<npctemp>>'] = 86
 npc_rep['A<<npctemp>>'] = 10
-!!$npc_body['A<<npctemp>>'] = 's4'
 hotcat_rating['A<<npctemp>>'] = 5
-
+!!height_metric = 152cm
+!!height_imperial = 5foot
+!!body_build = petite
 !!hair = long brown hair just past her shoulders, almost always kept up in a bun.
 !!pubic hair = untrimmed bush
 
@@ -847,8 +851,9 @@ npc_intel['A<<npctemp>>'] = 30
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 120
 
-!!$npc_body['A<<npctemp>>'] = 'm1'
-
+!!height_metric = 168cm
+!!height_imperial = 5foot 6inch
+!!body_build = average
 !!hair = long black hair just past her shoulders.
 !!pubic hair = neatly trimmed landing strip
 
@@ -876,9 +881,10 @@ gs 'npcstaticdefaults', 'uni_type', 'other'
 npc_bust['A<<npctemp>>'] = 14
 npc_intel['A<<npctemp>>'] = 76
 npc_rep['A<<npctemp>>'] = 220
-!!$npc_body['A<<npctemp>>'] = 'l3'
 hotcat_rating['A<<npctemp>>'] = 8
-
+!!height_metric = 159cm
+!!height_imperial = 5foot 3inch
+!!body_build = petite
 !!hair = medium length black hair just past her chin.
 !!pubic hair = shaved
 
@@ -906,8 +912,9 @@ npc_bust['A<<npctemp>>'] = 4
 npc_intel['A<<npctemp>>'] = 28
 hotcat_rating['A<<npctemp>>'] = 4
 npc_rep['A<<npctemp>>'] = 70
-!!$npc_body['A<<npctemp>>'] = 'l4'
-
+!!height_metric = 178cm
+!!height_imperial = 5foot 10inch
+!!body_build = muscular
 !!hair = long brown hair just past her shoulders.
 !!pubic hair = untrimmed bush
 
@@ -937,6 +944,10 @@ npc_dick['A<<npctemp>>'] = 20
 npc_intel['A<<npctemp>>'] = 47
 npc_rep['A<<npctemp>>'] = 220
 hotcat_rating['A<<npctemp>>'] = 8
+!!height_metric = 185cm
+!height_imperial = 6foot 1inch
+!!body_build = toned/athletic
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -964,6 +975,10 @@ npc_dick['A<<npctemp>>'] = 19
 npc_intel['A<<npctemp>>'] = 37
 npc_rep['A<<npctemp>>'] = 210
 hotcat_rating['A<<npctemp>>'] = 8
+!!height_metric = 175cm
+!!height_imperial = 5foot 9inch
+!!body_build = average
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -990,6 +1005,10 @@ npc_dick['A<<npctemp>>'] = 20
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 130
 npc_intel['A<<npctemp>>'] = 44
+!!height_metric = 177cm
+!!height_imperial = 5foot 10inch
+!!body_build = average
+!!hair = brown
 
 
 
@@ -1013,6 +1032,10 @@ npc_dick['A<<npctemp>>'] = 23
 npc_intel['A<<npctemp>>'] = 40
 npc_rep['A<<npctemp>>'] = 320
 hotcat_rating['A<<npctemp>>'] = 7
+!!height_metric = 182cm
+!!height_imperial = 6foot
+!!body_build = toned/athletic
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'

+ 47 - 0
locations/npcstatic4.qsrc

@@ -22,6 +22,9 @@ npc_dick['A<<npctemp>>'] = 14
 hotcat_rating['A<<npctemp>>'] = 4
 npc_rep['A<<npctemp>>'] = 110
 npc_intel['A<<npctemp>>'] = 26
+!!height_metric = 196cm
+!!height_imperial = 6foot 5inch!!body_build = bodybuilder
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -48,6 +51,10 @@ npc_dick['A<<npctemp>>'] = 16
 hotcat_rating['A<<npctemp>>'] = 3
 npc_rep['A<<npctemp>>'] = 0
 npc_intel['A<<npctemp>>'] = 87
+!!height_metric = 173cm
+!!height_imperial = 5foot 8inch
+!!body_build = average
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -75,6 +82,10 @@ npc_dick['A<<npctemp>>'] = 19
 npc_intel['A<<npctemp>>'] = 70
 npc_rep['A<<npctemp>>'] = 60
 hotcat_rating['A<<npctemp>>'] = 6
+!!height_metric = 182cm
+!!height_imperial = 6foot
+!!body_build = skinny
+!!hair = redish/brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -102,6 +113,10 @@ npc_dick['A<<npctemp>>'] = 17
 npc_intel['A<<npctemp>>'] = 92
 npc_rep['A<<npctemp>>'] = 20
 hotcat_rating['A<<npctemp>>'] = 4
+!!height_metric = 176cm
+!!height_imperial = 5foot 10inch
+!!body_build = average
+!!hair = blond
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -128,6 +143,10 @@ npc_dick['A<<npctemp>>'] = 20
 hotcat_rating['A<<npctemp>>'] = 7
 npc_rep['A<<npctemp>>'] = 370
 npc_intel['A<<npctemp>>'] = 51
+!!height_metric = 179cm
+!!height_imperial = 5foot 10inch
+!!body_build = average
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -155,6 +174,10 @@ npc_dick['A<<npctemp>>'] = 25
 npc_intel['A<<npctemp>>'] = 51
 npc_rep['A<<npctemp>>'] = 240
 hotcat_rating['A<<npctemp>>'] = 7
+!!height_metric = 178cm
+!!height_imperial = 5foot 10inch
+!!body_build = average
+!!hair = blond
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -181,6 +204,10 @@ npc_dick['A<<npctemp>>'] = 16
 hotcat_rating['A<<npctemp>>'] = 5
 npc_rep['A<<npctemp>>'] = 260
 npc_intel['A<<npctemp>>'] = 42
+!!height_metric = 178cm
+!!height_imperial = 5foot 10inch
+!!body_build = toned/athletic
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -207,6 +234,10 @@ npc_dick['A<<npctemp>>'] = 18
 hotcat_rating['A<<npctemp>>'] = 5
 npc_rep['A<<npctemp>>'] = 170
 npc_intel['A<<npctemp>>'] = 34
+!!height_metric = 168cm
+!!height_imperial = 5foot 6inch
+!!body_build = muscular
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -233,6 +264,10 @@ npc_dick['A<<npctemp>>'] = 22
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 280
 npc_intel['A<<npctemp>>'] = 44
+!!height_metric = 183cm
+!!height_imperial = 6foot
+!!body_build = average
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -260,6 +295,10 @@ npc_dick['A<<npctemp>>'] = 12
 npc_intel['A<<npctemp>>'] = 28
 npc_rep['A<<npctemp>>'] = 0
 hotcat_rating['A<<npctemp>>'] = 1
+!!height_metric = 188cm
+!!height_imperial = 6foot 2inch
+!!body_build = obese
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -366,6 +405,10 @@ npc_dick['A<<npctemp>>'] = 15
 npc_intel['A<<npctemp>>'] = 36
 npc_rep['A<<npctemp>>'] = 120
 hotcat_rating['A<<npctemp>>'] = 5
+!!height_metric = 173cm
+!!height_imperial = 5foot 8inch
+!!body_build = toned/athletic
+!!hair = brown
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'
@@ -787,6 +830,10 @@ npc_sexskill['A<<npctemp>>'] = 2
 hotcat_rating['A<<npctemp>>'] = 6
 npc_rep['A<<npctemp>>'] = 140
 npc_intel['A<<npctemp>>'] = 64
+!!height_metric = 183cm
+!!height_imperial = 6foot
+!!body_build = wiry
+!!hair = black
 
 
 gs 'npc_set_preference', 'reset', 'A<<npctemp>>'

+ 1 - 1
locations/npcstatic5.qsrc

@@ -375,7 +375,7 @@ npc_spermpot['A<<npctemp>>'] = 15000
 
 
 npctemp = 218
-$npc_dna['A<<npctemp>>'] = '5202110092 7845565703 6464348916 9732666365 5079835231 5694584637 6691107840' 
+$npc_dna['A<<npctemp>>'] = '5202110092 7845565703 6464348916 9732666365 5079835231 5694584637 6691107840'
 !! Her dads DNA: 6464348916 5694584637 6691107840 5573828639 2708900987 2978548641 1067638646
 $npc_firstname['A<<npctemp>>'] = 'Tanya'
 $npc_nickname['A<<npctemp>>'] = 'Tanya'

+ 1 - 1
locations/pav_complex.qsrc

@@ -161,7 +161,7 @@ if $ARGS[0] = 'garages':
 	'Along the back street is a row of garages available for the residents of the apartments to rent. The weather in Pavlovsk can be brutal, especially in the winter, so people who own a car often have a garage to put it away safely. Between the garages and the courtyard is a series of smaller storage buildings that can be rented, as well as the complex''s maintenance and laundry buildings. The layout of the buildings leaves a maze of walkways between them, which are a popular place for kids to play or for teenagers to hang out.'
 	*nl
 	if mid($start_type,1,2) = 'sg':'Your <a href="exec:minut += 5 & gt ''gargazel''">stepfather''s garage</a> is around here somewhere.'
-	if gopnikbandQW['practice_invite'] = 1:'The converted <a href="exec:minut += 5 & gt ''praiders_garage'', ''band_garage''">band garage</a> the band uses to practice in is around here.'
+	if gopnikbandQW['practice_invite'] = 1:'The converted <a href="exec:minut += 5 & gt ''praiders_garage'', ''band_garage''">garage</a> the band uses to practice in is around here.'
 	if gopnik_initiation = 1 and gopnik_initiation_day = daystart and hour = 20: act '<b>Meet Lena and Lera</b>': gt 'gopnik_initiation','initiation'
 	if ((week < 6 and hour => 18 and hour < 22) or (week >= 6 and hour >= 15 and hour < 22)) and ed_event_day ! daystart:
 		if anushkaQw['seen_ed'] = 0:

+ 3 - 0
locations/pav_residential.qsrc

@@ -54,14 +54,17 @@ gs'street_event','pav_residential', 'extras'
 if flag_rape_1 = 1:
 	flag_rape_1 = 0
 	rape_count = rape
+	rape_day = daystart
 	'You stop under the dim light of a streetlight. Breathing heavy, you occasionally stop to wince from the pain coming from your pussy. You convince yourself not to tell anyone, and to just get home, clean up and go to bed as soon as possible. The sooner you do that, the sooner you can forget this ever happened.'
 elseif flag_rape_1 = 2:
 	flag_rape_1 = 0
 	rape_count = rape
+	rape_day = daystart
 	'Coming out of your daze, you find you''ve walked into the center of town without even realizing it. You feel a bit strange as you stop to think about why you aren''t upset about having been raped. Replaying the encounter in your head, you realize you actually enjoyed it a little. All in all, you''re not too worried about what happened.'
 elseif rape > rape_count:
 	!for normal rape. differ display with bimbolevel
 	rape_count = rape
+	rape_day = daystart
 	if bimbolevel > 2:
 		'You feel great after having sex, and don''t understand why they didn''t just ask. Silly man.'
 	elseif bimbolevel > 0:

+ 6 - 6
locations/pav_shared_nestor.qsrc

@@ -128,18 +128,18 @@ if $ARGS[0] = 'nestor_Chat':
 		if say = 1:
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is scanning your nude body with his eyes.'
-				if salocatnow <= 2:
+				if pcs_bmi <= 18:
 					'He obviously enjoys the sight: <font color=#<<$nestor_font>>>"Nice body <<$pcs_firstname>>. Are you here to offer it?"</font>'
-				elseif salocatnow > 2 and salocatnow <= 4:
+				elseif pcs_bmi <= 25:
 					'He is not very content with the sight: <font color=#<<$nestor_font>>>"You should lose some weight, <<$pcs_firstname>>, you are getting fat."</font>'
 				else
 					'He seems almost disgusted by the sight: <font color=#<<$nestor_font>>>"Jeezus <<$pcs_firstname>>, stop eating you are beginning to look like an elephant!"</font>'
 				end
 				!panties on
-				if salocatnow <= 4 and $pantyworntype ! 'none':
+				if pcs_bmi <= 25 and $pantyworntype ! 'none':
 					'<font color=#<<$nestor_font>>>"Why did you leave those panties on <<$pcs_firstname>>? Such a shame."</font>'
 				!panties off, anal plug
-				elseif salocatnow <= 4 and $pantyworntype = 'none' and analplugIN = 1:
+				elseif pcs_bmi <= 25 and $pantyworntype = 'none' and analplugIN = 1:
 					'As you accidentally turn around, he gazes between your asscheeks on the plug stuck in your ass.'
 					'<font color=#<<$nestor_font>>>"Wow, you just can''t be a second without something filling your holes, do you?"</font>'
 					if rand(0, 100) < 30:
@@ -149,14 +149,14 @@ if $ARGS[0] = 'nestor_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is scanning your outfit with his eyes.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$nestor_font>>>"You know I like when you dress like a mindless bimbo. Not that you aren''t, but anyway, good job!"</font>'
 				else
 					'<font color=#<<$nestor_font>>>"I like girls dressed like bimbos, but they should have the body shape for it. Waste of good clothes on you."</font>'
 				end
 			elseif CloStyle = 4:
 				'<<$npc_firstname[$boy]>> is scanning your outfit with his eyes.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$nestor_font>>>"Only thing that I like more than stupid bimbos are whores. I won''t pay you anyway, but good job!"</font>'
 				else
 					'<font color=#<<$nestor_font>>>"I literally love whores, but with your body shape you won''t be earning much money, darling."</font>'

+ 4 - 4
locations/pav_shared_oleg.qsrc

@@ -56,9 +56,9 @@ if $ARGS[0] = 'oleg_Chat':
 			!clothing and bodyshape reactions
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is looking at your nude body with obvious shame, blurring.'
-				if salocatnow <= 1:
+				if pcs_bmi <= 15:
 					'He is not very content with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you should eat more, it is unhealthy to be too thin."</font>'
-				elseif salocatnow > 1 and salocatnow <= 4:
+				elseif pcs_bmi <= 25:
 					'Even though he is ashamed, he is obviously pleased with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you have a beautiful body you know... But please, put on some clothes!"</font>'
 				else
 					'He is not very content with the sight: <font color=#<<$oleg_font>>>"<<$pcs_firstname>>, you should eat less, it is unhealthy to be too fat."</font>'
@@ -79,14 +79,14 @@ if $ARGS[0] = 'oleg_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow >= 1 and salocatnow <= 4:
+				if pcs_bmi >= 12 and pcs_bmi <= 25:
 					'<font color=#<<$oleg_font>>>"You know nice girls like you should not wear so skimpy dresses. Some people can''t hold themselves, you know?"</font>'
 				else
 					'<font color=#<<$oleg_font>>>"Girls should not wear so skimpy dresses, it may be offending to other people, you know?"</font>'
 				end
 			elseif CloBimbo = 4:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$oleg_font>>>"You know nice girls like you should not dress like whores. Some people can''t know that they actually are not, you know?"</font>'
 				else
 					'<font color=#<<$oleg_font>>>"Girls should not dress like a whores when they aren''t."</font>'

+ 4 - 4
locations/pav_shared_yakov.qsrc

@@ -56,9 +56,9 @@ if $ARGS[0] = 'yakov_Chat':
 			!clothing and bodyshape reactions
 			if $clothingworntype = 'nude':
 				'<<$npc_firstname[$boy]>> is looking at your nude body wondering...'
-				if salocatnow <= 1:
+				if pcs_bmi <= 15:
 					'He is not very content with the sight: <font color=#<<$yakov_font>>>"<<$pcs_firstname>>, are you not anorexic? Better not, it is a terrible thing."</font>'
-				elseif salocatnow > 1 and salocatnow <= 3:
+				elseif pcs_bmi >= 15 and pcs_bmi <= 20:
 					'<font color=#<<$yakov_font>>>"<<$pcs_firstname>>, you have nice bodyshape you know. Do you exercise or are you mp4ten from nature?"</font>'
 				else
 					'He is not very content with the sight: <font color=#<<$yakov_font>>>"<<$pcs_firstname>>, you should eat less, too much body fat is bad for your sports performance."</font>'
@@ -83,14 +83,14 @@ if $ARGS[0] = 'yakov_Chat':
 				end
 			elseif CloBimbo = 1:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow >= 1 and salocatnow <= 4:
+				if pcs_bmi >= 12 and pcs_bmi <= 25:
 					'<font color=#<<$yakov_font>>>"What a sexy dress are you wearing! Aren''t you afraid it is too sexy for some people in the town, though?"</font>'
 				else
 					'<font color=#<<$yakov_font>>>"Nice dress sweetie, but it would look better if you lost some fat, you know..."</font>'
 				end
 			elseif CloStyle = 4:
 				'<<$npc_firstname[$boy]>> is looking at your outfit with suspicion.'
-				if salocatnow <= 4:
+				if pcs_bmi <= 25:
 					'<font color=#<<$yakov_font>>>"I love sexy dresses on you sweetie, but this one makes you look like a... playgirl if you know what I mean."</font>'
 				else
 					'<font color=#<<$yakov_font>>>"Sweetie this dress one makes you look like a... playgirl if you know what I mean."</font>'

+ 1 - 1
locations/pav_station.qsrc

@@ -54,7 +54,7 @@ if $ARGS[0] = 'reception':
 		act 'Walk away from the clerk': minut += 2 & gt 'pav_station', 'station_inside'
 	end
 
-	if rape_day+2 > daystart: act 'Report a rape': gt 'pav_station', 'rape_report'
+	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt 'pav_station', 'rape_report'
 end
 
 temp_tot_booked_pav = policeQW['shoplift_booked_pav'] + policeQW['prostitution_booked_pav']

+ 1 - 1
locations/police_station.qsrc

@@ -23,7 +23,7 @@ if $ARGS[0] = 'reception':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/police/cityrec.jpg"></center>'
 	'Upon entering the station you''re welcomed by a reception desk. The officers sitting here are protected by thick glass and you see several monitors and computers keeping an eye on everything that''s happening inside and outside the building.'
 	
-	if rape_day+2 > daystart: act 'Report a rape': gt'police_station','rape_report'
+	if rape_count > 0 and rape_day+2 > daystart: act 'Report a rape': gt'police_station','rape_report'
 	act 'Return to the center': gt 'city_center'
 end
 

+ 1 - 1
locations/pushkin_ballet_center.qsrc

@@ -8,7 +8,7 @@ if $ARGS[0] = '' or $ARGS[0] = 'start':
 	gs 'shortgs', 'setloc', 'ballet_pushkin_center', $ARGS[0]
 	$region = 'puskin'
 	$setloc['StageTitle'] = 'Pushkin Residential School'
-	$setloc['StageImage'] =  'pushkin/residence/residence'
+	$setloc['StageImage'] =  'pushkin/residence/residence.jpg'
 	menu_off = 0
 	if sound = 0:PLAY 'sound/street.mp3',30
 	gs'stat'

+ 35 - 41
locations/pushkin_ballet_class.qsrc

@@ -24,7 +24,7 @@ if $ARGS[0] = 'start':
 	*clr & cla
 	$location_type = 'public_indoors'
 	$setloc['StageTitle'] = 'Terpsichore Wing'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall.jpg'
 
 	!! clear switch vars
 	killvar 'sharedmeal' 
@@ -69,7 +69,7 @@ if $ARGS[0] = 'start':
 	elseif balletqw['school'] ! 1 and ballet_day = 1:
 		'You are chaperoned to your school by Bronya. After a short journey, you were standing outside a classroom and told to wait by Bronya. You look around you at various photographs and artwork of dancers and performances.'
 		'You look at the girls you are with, with a few of them trying to catch your attention, but before you can talk to them, Bronya has come back from the classroom. "You can enter now, girls."'
-		 act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
+		act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
 	elseif balletqw['school'] ! 1 and ballet_day > 1:
 		'You head to school with your group, and you can see a few of your classmates gossiping up front, but you are left to your own thoughts. Before you realise it, you''re standing at the doors to your first lesson.'
 		act 'Attend class': gt 'pushkin_ballet_class', 'pilates'
@@ -82,7 +82,7 @@ if $ARGS[0] = 'pilates':
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	$setloc['StageTitle'] = 'Pilates'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/pilates_2'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/pilates_2.jpg'
 	nclass = 1
 	if ballet_day = 1:
 
@@ -153,7 +153,7 @@ if $ARGS[0] = 'first_lesson':
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	$setloc['StageTitle'] = 'Dance Class'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_002'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_002.jpg'
 	nclass = 2
 	gs 'stat'
 
@@ -211,7 +211,7 @@ if $ARGS[0] = 'first_lesson':
 		gs 'sweat', 'add', 30
 		gs 'pushkin_ballet_init', 'daily_assessment'
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_003'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_003.jpg'
 		gs 'core_library', 'stage_title'
 
 		'As you enter the classroom, there''s an air of excitement this morning. You''re halfway through the week, and anticipation and nervousness are creeping in for the upcoming assessment.'
@@ -266,7 +266,7 @@ if $ARGS[0] = 'first_lesson':
 		gs 'sweat', 'add', 30
 		gs 'pushkin_ballet_init', 'daily_assessment'
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_005'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_005.jpg'
 		gs 'core_library', 'stage_title'
 		'You''ve just finished the Pilates class, and enter your classroom dressed in Ballet Blanc. It''s the first time you''ve seen the group dressed as if you''re part of the Corp, which brings a sense of pride for being here.'
 		'<<$npc_firstname[''A3501'']>> grabs your attention, "Hey, <<$pcs_nickname>>, let''s check you over quickly.". <<$npc_firstname[''A3501'']>> quickly goes over your outfit and hair, ensuring that your presentation is perfect and you do the same for her.'
@@ -277,21 +277,21 @@ if $ARGS[0] = 'first_lesson':
 			'"Well done, class, you have done me proud. You have done exactly what I asked." It was rare praise from Biserka. "Now I want you to give me your best. I want you to dance like you never danced."'
 			'With that, she claps her hands. "Take your positions." Sofia starts to play. You lose yourself in the performance of all the lessons coming together from the last week, and you flow through the performance.'
 			'Biserka watches all the girls'' performances critically, taking notes as she goes. The minutes fly by, and before you know it, the first rehearsal is over. "And again," she calls out.'
-			 act 'Continue rehearsals':
+			act 'Continue rehearsals':
 				*clr & cla
-				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_teach_1'
+				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_teach_1.jpg'
 				gs 'core_library', 'stage_title'
 				'You rehearse several times before she''s happy, and then she hands critique notes to all the girls. When she gives you yours, she compliments you before gathering Maya and Kima aside for a private talk.'
 				'"Tomorrow your assessment will start at 09:00. You will enter the room in First Position and wait for the examiners'' instructions. Once you have performed the Entrance of the Swans, you will be asked to perform a Pas de Deux with your dance partner."'
 				'"Your final examination is a solo divertissement lasting no more than five minutes. This performance shows your ability to the judges and will be freeform."'
 				'"Any questions? If you have any tonight or need assistance, contact Bronya, and she will advise or help as needed."'
-					act 'Reverence':		
-						*clr & cla
-						$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/events/reverance'
-						gs 'core_library', 'stage_title'
-						'You and the girls all look at each other and start to perform a deep curtsy as part of the great reverence you agreed to the previous evening with the girls to pay respect to Biserka and Sofia for their teaching this week. '
-						'Both teachers look taken aback and have a smile on their faces. "Thank you, class. It''s been a pleasure to teach you this week," Biserka says, with Sofia nodding her agreement and repeating her words.'						   
-						act 'Go to the showers' : gt 'pushkin_ballet_class', 'shower'
+				act 'Reverence':		
+					*clr & cla
+					$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/events/reverance.jpg'
+					gs 'core_library', 'stage_title'
+					'You and the girls all look at each other and start to perform a deep curtsy as part of the great reverence you agreed to the previous evening with the girls to pay respect to Biserka and Sofia for their teaching this week. '
+					'Both teachers look taken aback and have a smile on their faces. "Thank you, class. It''s been a pleasure to teach you this week," Biserka says, with Sofia nodding her agreement and repeating her words.'						   
+					act 'Go to the showers' : gt 'pushkin_ballet_class', 'shower'
 				end
 			end
 		end
@@ -316,7 +316,6 @@ if $ARGS[0] = 'shower':
 			act 'Go to next lesson' : gt 'pushkin_ballet_class', 'music_theory'
 		end
 		gs 'core_library', 'bathroom'
-			 
 		'You enter the school showers after your lesson. You and your classmates don''t have much time to talk to each other, with you having little time until your next lesson.'
 		*nl
 	else 
@@ -335,7 +334,6 @@ if $ARGS[0] = 'shower':
 			end
 		end
 		gs 'core_library', 'bathroom'  
-
 	end
 end
 
@@ -348,7 +346,7 @@ if $ARGS[0] = 'makeup':
 		minut = 0
 	end
 	$setloc['StageTitle'] = 'Theatre Make Up'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/first_mua'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/first_mua.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	! set stats for make up gain - makupskl_lvl
@@ -368,13 +366,13 @@ if $ARGS[0] = 'makeup':
 		'<<$npc_firstname[''A3501'']>> slides in beside you and whispers, "A lot to take in?" You nod your head in agreement. She gives a quick wink before turning back to listen to the lesson.'
 	
 	elseif ballet_day = 2:
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/second_mua'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/second_mua.jpg'
 		gs 'core_library', 'stage_title'
 		'Another day and your teacher still hasn''t introduced herself, instead telling the students to focus. "Did you read through the books I gave you last night?" she asks.'
 		'Everyone in the class looks at each other. "But Miss, you never told us to," Gasha replies.'
 		'"Do I have to tell you to study everything? You''re girls. You should have been learning make-up from your parents as a child!" the teacher snappishly replies.'
 		'"Fine, you''re to practice this look for the next hour, and you will show me the results of your practice tomorrow." She reaches for a remote. A projector lights up the wall of the make-up you''re to replicate.'
-   
+
 	elseif ballet_day = 3:
 		gs 'core_library', 'stage_title'
 		'"Today, I''m going to assess the results of your homework. You have 30 minutes to achieve this look." She then points to the make-up chart on the wall covering the details and colours required.'
@@ -386,7 +384,7 @@ if $ARGS[0] = 'makeup':
 		'Today, you''re learning hairstyles, and you''re all given small red tins. "This is your emergency box. Keep it with you at all times." You look inside and see a small comb, brush, spare hair bands, grips, slides, pins and kirby pins. There''s even a small sewing kit for the inevitable tears.'
 		'"When you do your exams and assessments, you must always look after your appearance. That''s why you always take this with you. You will be marked down if you aren''t presentable."'
 		'The rest of the lesson teaches professional basic hair care, styling, and tips and tricks to get the best results. It''s a surprisingly fun lesson and time flies by.'
-   
+
 	elseif ballet_day = 5:
 		gs 'core_library', 'stage_title'
 		'"Today, we''ll be going over how you present yourself for your assessment on Saturday. The assessors will judge your abilities as a dancer and how well you apply makeup and care for your hair."'
@@ -403,7 +401,7 @@ if $ARGS[0] = 'lunch':
 	*clr & cla
 	gs 'shortgs', 'setloc', 'pushkin_ballet_class', $ARGS[0]
 	$setloc['StageTitle'] = 'School Cafeteria'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/cafeteria'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/cafeteria.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	!! gs lunch events
@@ -420,8 +418,6 @@ if $ARGS[0] = 'lunch':
 		'You quickly fill your plate with a moderate portion and wolf down your dinner.'		
 		gs 'food', 'm_meal'  
 	end
-	
-	
 end
 
 if $ARGS[0] = 'second_lesson':
@@ -439,10 +435,9 @@ if $ARGS[0] = 'second_lesson':
 	gs 'stat'
 	$setloc['StageTitle'] = 'Dance Practice'
 	if mayaqw['grave'] = 4:
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/mirror_ballet'
-
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/mirror_ballet.jpg'
 	else
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/class_three'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/class_three.jpg'
 	end
 	gs 'core_library', 'stage_title'
 	if ballet_day = 1 :
@@ -459,7 +454,7 @@ if $ARGS[0] = 'second_lesson':
 		'"Thanks, <<$pcs_nickname>>." She''s slightly out of breath from the grand allegro and pirouettes she''s just performed."'
 		'"Well done, <<$npc_firstname[''A3501'']>>, that was a wonderful performance." Birserka sounds impressed with <<$npc_firstname[''A3501'']>>''s performance. "You will go far with talent like that."'
 		'You momentarily look over the rest of the class and see Tanis'' face frowning, you think with jealousy.'
-	
+
 	elseif ballet_day = 2 :
 		'You stand next to <<$npc_firstname[''A3501'']>>  as you work through your barre exercises. Biserka leaves you alone today after yesterday''s impromptu performance. You and <<$npc_firstname[''A3501'']>> quickly finish your warm up and start to work through your pas de deux routine for your assessment.'
 		'"Remember <<$pcs_nickname>>, when doing your plié, your butt should be over your heels and you should balance your weight on the second toe.", <<$npc_firstname[''A3501'']>> chides you.'
@@ -499,10 +494,10 @@ if $ARGS[0] = 'second_lesson':
 	end
 	*nl
 	act 'Finish lesson': 
-		 *clr & cla
-		 $setloc['StageTitle'] = 'Reverance'
-		 $setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_006'
-		 gs 'core_library', 'stage_title'
+		*clr & cla
+		$setloc['StageTitle'] = 'Reverance'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_006.jpg'
+		gs 'core_library', 'stage_title'
 		'You perform a reverence to Maya in thanks for her help, she returns the curtsey, and you head to the showers together.'
 
 		nclass = 4
@@ -517,7 +512,7 @@ if $ARGS[0] = 'music_theory':
 		minut = 0
 	end
 	$setloc['StageTitle'] = 'Music Theory'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_004'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/ballet_class_004.jpg'
 	$location_type = 'public_indoors'
 	gs 'themes', 'indoors'
 	killvar 'nclass'
@@ -530,7 +525,6 @@ if $ARGS[0] = 'music_theory':
 	gs 'core_library', 'stage_title'
 	!! set stats for performance, music production and inst. music.
 
-
 	if ballet_day = 1 :
 		'You enter the classroom, and you see Sofia standing beside the door. "Welcome, girls. It''s a pleasure to see you all again. I hope you''ve enjoyed your first day?" She greets you in a warm and rich voice.'
 		'You and your classmates murmur a yes, unsure how to react. Sofia ignores the half-hearted response. "You''re probably wondering why you are here, as you''re not musicians. However, as a dancer, it''s essential to'
@@ -597,7 +591,7 @@ if $ARGS[0] = 'assessment':
 		minut = 0
 	end
 
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/daily/hall.jpg'
 	gs 'core_library', 'stage_title'
 
 	'You arrive at the ballet school and can sense an air of anticipation and nervousness among your classmates. <<$npc_firstname[''A3501'']>> is standing close to you.'
@@ -613,20 +607,20 @@ if $ARGS[0] = 'assessment':
 		*clr & cla
 		minut += 20
 		gs 'stat'
-		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_1'
+		$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_1.jpg'
 		gs 'core_library', 'stage_title'
 
 		'You all file into the room and assume the first position. An examiner is at the door checking each girl as they enter for any flaws in their outfits or their appearance.'
 		'"Welcome, students. You have been shortlisted for this year''s apprenticeship intake. Three of you will be allowed to join our school, you have been told what we expect of you today, and we will assess all aspects of your appearance, conduct and the elegance of your performance." An elderly man sits at the table continues to list the assessment requirements.'
 		'You recognise Biserka, two other teachers you''ve not seen before, and <<$npc_firstname[''A3502'']>>, all assessing you. <<$npc_firstname[''A3502'']>>  seems to have his eyes mostly on yourself, but you think you are imagining it.'
 		'"Excellent. Shall we start? Then take your positions and at a count of three, and begin!" At those words, you feel a sense of calmness, and your nerves fall away as you concentrate on your performance. The minutes fly by so quickly that the performance is over before you even realise it.'
-		'"Thank you, that was a most wonderful performance from you all," one of the female teachers says to the class. "Now we shall see how you perform a Pas de Deux with your partner. Please wait outside, and we will call you in."'
+		'"Thank you, that was a most wonderfful performance from you all," one of the female teachers says to the class. "Now we shall see how you perform a Pas de Deux with your partner. Please wait outside, and we will call you in."'
 
 		act 'Perform pas de deux': 
 			*clr & cla
 			minut += 60			
 			gs 'stat'
-			$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_2'
+			$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/exam_2.jpg'
 			gs 'core_library', 'stage_title'
 
 			'You wait outside the classroom. You''ve put on your feet warmers to ensure they remain pliable and take the opportunity to drink some water and eat an energy bar. <<$npc_firstname[''A3501'']>> sits down beside you, lost in thought.'
@@ -643,20 +637,20 @@ if $ARGS[0] = 'assessment':
 				*clr & cla
 				minut += 120
 				gs 'stat'
-				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/solo_2'
+				$setloc['StageImage'] =  '<<$default_img_path>>ballet_school/exams/solo_2.jpg'
 				gs 'core_library', 'stage_title'
 				'Back outside, you and <<$npc_firstname[''A3501'']>> do checks on your outfits. You notice a small tear on <<$npc_firstname[''A3501'']>>''s tights and get your needle and thread out to repair it. You then check each other''s hair and makeup, with <<$npc_firstname[''A3501'']>> applying some hairspray to tame your flyaway hairs.'
 				'There''s some fruit juice and some snacks on a table to eat whilst you wait for your examination performance. Then, you start doing some light exercises with <<$npc_firstname[''A3501'']>> to remain supple.'
 				'Shortly after you finish your snacks and stretches, you''re called in before <<$npc_firstname[''A3501'']>> .'
 				*nl
-				'"<<$pcs_firstname>> <<$pcs_lastname>>, this is your solo performance. You understand what is required of you?" You realise it''s the school''s Ballet Mistress attending the solo performances. Thankfully, <<$npc_firstname[''A3502'']>> isn''t assessing the solo exams.'
+				'"<<$pcs_firstname>> <<$pcs_lastname>>, this is your solo performance. You understand what is required of you?" You realise it''s the school''s Ballet Mistress attending the solo performances. Thankfully, <<$npc_firstname[''A3510'']>> isn''t assessing the solo exams.'
 				'You curtsy and reply, "Yes, Mistress, I''m ready."'
 				*nl
 				'"Very well, let us begin." With that, she taps the table with something you can''t see. Then, on the count of three, you start your performance. As the music starts, you perform the movements you have learned by rote over the last week. You feel you''ve never performed so well in your life, and everything flows together in a way it never has before.'
 				*nl
 				'At the end of the performance, you feel a sense of loss of something extraordinary. You realise the emotional high you''ve been riding has come to a crashing end, and you barely retain your sense of poise and perform the great reverence to your examiners before you are given permission to leave.'
 				
-			   !! gs 'pushkin_ballet_init', 'daily_assessment', 'grade'
+				!! gs 'pushkin_ballet_init', 'daily_assessment', 'grade'
 				act 'Finalé' : gt 'pushkin_ballet_class', 'start'
 			end
 		end

+ 34 - 29
locations/pushkin_ballet_evt.qsrc

@@ -113,7 +113,7 @@ if $ARGS[0] = 'res_events':
 	if $ARGS[1] = 'introductions':
 		!! Sunday night meet some of your classmates.
 
-		'You enter the communal area and are greeted by a gaggle of excited girls who immediately call out and surround you. You spot a small group sitting down and taking a selfie with a tablet and you look around and see Ms <<$npc_lastname[''A3513'']>> watching over the proceedings.'
+        'You enter the communal area and are greeted by a gaggle of excited girls who immediately call out and surround you. You spot a small group sitting down and taking a selfie with a tablet and you look around and see Madam <<$npc_lastname[''A3513'']>> watching over the proceedings.'
 
 		killvar '$mod_student_table'
 		killvar 'mod_table_count'
@@ -184,18 +184,18 @@ if $ARGS[0] = 'res_events':
 
 	if $ARGS[1] = 'homesick':
 
-		'You enter the communal area and see Gasha holding a study book with a sad expression. "Hello Gasha, everything okay?" you ask.'
-		'She looks up to you from the book, "I''m okay, <<$pcs_nickname>>, I''m just not used to being away from home or being in the city."'
-		'"You''re a friend of Nikita?" you ask her, trying to distract her.'
-		'"Yeah, we grew up in the same village and attended the same school until a few years ago when her mother got a job here. We''ve kept in touch, but it''s been difficult as I''ve been stuck in the village."'
-		'"I know what village life is like," you pause to remember your time in Gadukino, "I spent my summers in Gadukino with my grandparents."'
-		'Gasha looks at you with more interest, and you start to gossip and trade stories about your lives in rural Russia. After a while, she''s laughing at your own escapades and local mishaps.'
-		'"Thank you, <<$pcs_nickname>>, for telling me your stories and cheering me up. I''m glad I''m not the only one!" Gasha says with a broad smile on her face.'
-		'"Anytime, Gasha, if you''re feeling down, let me know."'
-	
-		act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
-	end
-	
+        'You enter the communal area and see Gasha holding a study book with a sad expression. "Hello Gasha, everything okay?" you ask.'
+        'She looks up to you from the book, "I''m okay, <<$pcs_nickname>>, I''m just not used to being away from home or being in the city."'
+        '"You''re a friend of Nikita?" you ask her, trying to distract her.'
+        '"Yeah, we grew up in the same village and attended the same school until a few years ago when her mother got a job here. We''ve kept in touch, but it''s been difficult as I''ve been stuck in the village."'
+        '"I know what village life is like," you pause to remember your time in Gadukino, "I spent my summers in Gadukino with my grandparents."'
+        'Gasha looks at you with more interest, and you start to gossip and trade stories about your lives in rural Russia. After a while, she''s laughing at your own escapades and local mishaps.'
+        '"Thank you, <<$pcs_nickname>>, for telling me your stories and cheering me up. I''m glad I''m not the only one!" Gasha says with a broad grin on her face.'
+        '"Anytime, Gasha, if you''re feeling down, let me know."'
+    
+        act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
+    end
+    
 
 	if $ARGS[1] = 'tanis_bully':
 		! Tanis tries to bully Sveta
@@ -219,23 +219,28 @@ if $ARGS[0] = 'res_events':
 	
 	!! Communal random events
 
-	if $ARGS[1] = '1':
-		 ! Chess game between Calina and Ruza
-		 'WIP - tbc'
-	end
-	if $ARGS[1] = '2':
-		! TV with Gasha and munchies
-		'WIP - tbc'
-	end
-	if $ARGS[1] = '3':
-		! Random girls doing barre training.
-		'WIP - tbc'
-	end
-	if $ARGS[1] = '4':
-		! Random girls doing yoga.
-		'WIP - tbc'
+    if $ARGS[1] = '1':
+		! Chess game between Calina and Ruza
+		$setloc['StageTitle'] = 'The Chess Match'
+		$setloc['StageImage'] =   '<<$default_img_path>>ballet_events/chess.jpg'
+		gs 'core_library', 'stage_title'
+		
+		'You enter the communal room you see the twins Calina and Ruza sitting in the corner intently staring at a chess board. You notice the game has just started and a few of the other residents had settled down to watch them.'
+		act 'Leave room': gt 'pushkin_ballet_res', 'communal_area'
 	end
-	if $ARGS[1] = '5':
+    if $ARGS[1] = '2':
+        ! TV with Gasha and munchies
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '3':
+        ! Random girls doing barre training.
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '4':
+        ! Random girls doing yoga.
+        'WIP - tbc'
+    end
+    if $ARGS[1] = '5':
 
 		'You enter the communal room and see Gasha at her favorite place watching TV. She looks at you nervously as you enter, you ask if you could join her.'
 		'"Are you going to bully me too?", she asks, her voice trembling..'

+ 7 - 7
locations/pushkin_ballet_init.qsrc

@@ -122,7 +122,7 @@ if $ARGS[0] = 'daily_assessment':
 		if pubestyle = 10: mod_grade_appearance[week] -= 1
 		if alko > 1: mod_grade_discipline[week] -= 1 
 		!!mod_daily_score[week] = mod_grade_mua[week] + mod_grade_attendance[week] + mod_grade_appearance[week] - mod_grade_discipline[week] 
-	   !! msg 'Attend: <<mod_grade_attendance[week]>>, MUA:<<mod_grade_mua[week]>>, Appear: <<mod_grade_appearance[week]>>, Discipline <<mod_grade_disciple[week]>>, <<pcs_hairbsh>>'
+		!! msg 'Attend: <<mod_grade_attendance[week]>>, MUA:<<mod_grade_mua[week]>>, Appear: <<mod_grade_appearance[week]>>, Discipline <<mod_grade_disciple[week]>>, <<pcs_hairbsh>>'
 	end
 	if nclass = 5 and  school_daily_check ! daystart:
 		mod_daily_score[week] = mod_grade_attendance[week] + mod_grade_mua[week] + mod_grade_appearance[week] + mod_homework[week] - mod_grade_discipline[week] 
@@ -134,17 +134,17 @@ if $ARGS[0] = 'daily_assessment':
 
 		!! Three score levels, fail, pass and merit. Fail is one route for corruption path, pass is either low or no pay, merit is low to low +10%. 
 		if final_score <= 40:
-			 balletqw[school] = 5
+			balletqw[school] = 5
 		elseif final_score >=41 and final_score < 60:
 			!! Interim pass until quest lines are created for Maya/Rudolph
 			balletqw[school] = 1
 			balletqw[rank] = 1
 		elseif final_score >= 61 and final_score <= 90:
-			 balletqw[school] = 1
-			 balletqw[rank] = 1
+			balletqw[school] = 1
+			balletqw[rank] = 1
 		elseif final_score >= 91:
-			 balletqw[school] = 4
-			 balletqw[rank] = 1
+			balletqw[school] = 4
+			balletqw[rank] = 1
 		end
 
 		if final_score > 60: gs 'pushkin_ballet_init', 'famemodifier', final_Score
@@ -209,7 +209,7 @@ end
 
 if $ARGS[0] = 'score_debug':   
 	debug_day = 1
-   :jmp_debug_score
+	:jmp_debug_score
 		'Day: <<debug_day>>' 
 		'Make-up Score: <<mod_grade_mua[debug_day]>>'
 		'Appearance: <<mod_grade_appearance[debug_day]>>'

+ 17 - 14
locations/pushkin_ballet_res.qsrc

@@ -42,7 +42,7 @@ if $ARGS[0] = 'bedroom':
 	*clr & cla
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Residential Bedroom'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/bedroom'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/bedroom.jpg'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -66,7 +66,8 @@ if $ARGS[0] = 'bedroom':
 		if komp = 1: 'Your <a href="exec: gt ''Komp'',''start''">computer</a> is on your desk.'
 		'<table><tr><td valign="top">Your <a href="exec:gt ''alarmclock'', ''start''">alarm clock</a> is set to <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerH''], alarmVars[''timerM''])>> during the week and <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerEndH''], alarmVars[''timerEndM''])>> during the weekend. It is currently turned ' + iif(alarmVars['alarmOn'] = 0, '<a href="exec: alarmVars[''alarmOn''] = 1 & gt $loc, $loc_arg">OFF</a>.', '<a href="exec: alarmVars[''alarmOn''] = 0 & gt $loc, $loc_arg">ON</a>.')
 		
-		if $clothingworntype ! 'nude':
+		gs 'core_library', 'clothing_status'
+		if $apparel['status'] ! 'nude':
 			act 'Go to the hallway': minut += 5 & gt 'pushkin_ballet_res', 'hallway'
 		else
 			act 'Go to the hallway':
@@ -105,7 +106,7 @@ end
 if $ARGS[0] = 'hallway':	
 	*clr & cla
 	$setloc['StageTitle'] = 'Residental Hallway'
-	$setloc['StageImage'] =  '<<$default_img_path>>/ballet_residence/hall'
+	$setloc['StageImage'] =  '<<$default_img_path>>/ballet_residence/hall.jpg'
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'core_library', 'corridor'
@@ -119,8 +120,8 @@ if $ARGS[0] = 'hallway':
 		ballet_day = week
 	end
 	nclass = 0
-
-	if $clothingworntype ! 'nude':
+	gs 'core_library', 'clothing_status'
+	if $apparel['status'] ! 'nude' and ($apparel['status'] = 'sport' or $apparel['status'] = 'dance'):
 		if hour = 6 or (hour  = 7 and minut <=  30):
 			act 'Attend Ballet Classes': gt 'pushkin_ballet_class', 'start'
 		elseif hour = 7 and (minut > 30 and minut <= 59):
@@ -130,7 +131,7 @@ if $ARGS[0] = 'hallway':
 			act 'Leave Residence': minut += 5 & ballet_awol = 1 & gt 'pushkin_ballet_center', 'start'
 		end
 	else	   
-		msg '<b><font color = red>Whilst as a dancer you have less worries about showing yourself off Bronya would likely have a few choice words about your behaviour.</font></b>'
+		msg '<b><font color = red>Whilst as a dancer you have less inhibition than most, Bronya would likely have a few choice words about your clothing choices or lack thereof.</font></b>'
 		gt $loc, $loc_arg	
 	end
 
@@ -165,14 +166,16 @@ if $ARGS[0] = 'hallway':
 				'You hear someone playing the piano in the communal room. You don''t recognize the piece being played, but its soothing melody relaxes you.'
 			end
 		end
+		killvar 'amb_event'
 	end
+	
 end
 
 if $ARGS[0] = 'maya_room':
 	*clr & cla
 	$location_type = 'private'	
 	$setloc['StageTitle'] = 'Maya Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/maya_room'
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/maya_room.jpg'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
 	gs 'stat'
@@ -187,7 +190,7 @@ if $ARGS[0] = 'communal_area':
 	*clr & cla
 
 	$setloc['StageTitle'] = 'Communal Room'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/communal'
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/communal.jpg'
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -215,7 +218,7 @@ if $ARGS[0] = 'kitchen':
 	*clr & cla
 	
 	$setloc['StageTitle'] = 'Residental Kitchen'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/kitchen'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/kitchen.jpg'
 	$location_type = 'private'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -286,7 +289,7 @@ if $ARGS[0] = 'warden_room':
 	
 	$location_type = 'private'
 	$setloc['StageTitle'] = 'Wardens Residence'
-	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/warden' 
+	$setloc['StageImage'] =   '<<$default_img_path>>/ballet_residence/warden.jpg' 
 	$location_type = 'public_indoors'
 	gs 'shortgs', 'setloc', 'pushkin_ballet_res', $ARGS[0]
 	gs 'themes', 'indoors'
@@ -337,7 +340,7 @@ if $ARGS[0] = 'radio':
 		mod_daily_score[week] += 1
 	end
 	$setloc['StageTitle'] = 'Radio'
-	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/russian_radio'
+	$setloc['StageImage'] =   '<<$default_img_path>>ballet_residence/russian_radio.jpg'
 	gs 'stat'
 	gs 'core_library', 'stage_title'
 
@@ -364,7 +367,7 @@ if $ARGS[0] = 'feetcare':
 	feet_track = daystart
 	gs 'stat'
 	$setloc['StageTitle'] = 'Feet Care'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_events/feet_soak'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_events/feet_soak.jpg'
 	gs 'core_library', 'stage_title'
 
 	'After the long day at the ballet class, you diligently inspect your calves and feet for injuries, gently massaging Arnica Gel onto your calves and ankles to alleviate stiffness and swelling. Next, you carefully examine your calluses and check for any blisters.'
@@ -385,7 +388,7 @@ if $ARGS[0] = 'study':
 	mod_homework[week] += 1 
 	mod_daily_score[week] += 1
 	$setloc['StageTitle'] = 'Ballet Studies'
-	$setloc['StageImage'] =  '<<$default_img_path>>ballet_residence/study'
+	$setloc['StageImage'] =  '<<$default_img_path>>ballet_residence/study.jpg'
 	gs 'stat'
 	gs 'core_library', 'stage_title'
 	 'You gather your school books and notebook to begin studying ballet movements, history, and musical theory, diligently taking notes as you progress. After an hour of reading, you notice your eyes beginning to glaze over. Recognizing the need for a break, you decide to stand up and stretch.'
@@ -411,7 +414,7 @@ if $ARGS[0] = 'make_up':
 		end
 		gs 'stat'
 		$setloc['StageTitle'] = 'Make Up Practice'
-		$setloc['StageImage'] =  '<<$default_img_path>>/ballet_events/make-up'
+		$setloc['StageImage'] =  '<<$default_img_path>>/ballet_events/make-up.jpg'
 		gs 'core_library', 'stage_title'
 
 		if pcs_makupskl <= 30:

+ 48 - 29
locations/sitrPar.qsrc

@@ -1,37 +1,56 @@
 # sitrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family living room and Kolka''s bedroom links to family corridor
 
-if $ARGS[0] = '':
-	CLOSE ALL
-	$loc_arg = ''
-	$loc = 'sitrPar'
-	$menu_loc = 'sitrPar'
-	$menu_arg = ''
-	menu_off = 0
-	$location_type = 'private'
-	$locclass = 'livingr'
-	locat['Fam_livingroom'] = 0
-	minut += 1
-	gs 'stat'
-	gs 'themes', 'indoors'
-	gs 'family_schedule'
-	gs 'sitrPar', 'occupied'
-	*clr & cla
-	'<center><b><font color="maroon">Living Room</font></b></center>'
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+	!! Start location initialisation
+
+	!! Set location header - img path is set in init
+	$setloc['StageTitle'] = 'Parents Living Room'
 	if locat['Mother'] = 19 and locat['Stepdad'] = 10:
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/momvladtv.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/momvladtv.jpg'
 	else
-		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/sitrpar.jpg"></center>'
+		$setloc['StageImage'] = '<<$default_img_path>>/sitrpar.jpg'
 	end
-	act 'Leave the room': gt 'korrPar'
-	act 'Sit on the sofa': gt 'sitrPar', 'sofa'
-	''
+	!! Sitting room variables:
+	$locclass = 'livingr'
+	locat['Fam_livingroom'] = 0
+
+	!! Set location vars:
+
+
+
+	
+	!! Check if anyone is in the room
+	gs 'sitrPar', 'occupied'
+
+
+	!! Set up game location data
+	gs 'shortgs', 'setloc', 'sitrPar', $ARGS[0]
+	!! End location initialisation
+
+	!! Begin location content
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+
+	!! Location default description:
 	'The living room has a <a href="exec:gt ''TV'',''pav''">TV</a> near the window. In front of the TV is a <a href="exec:gt ''sitrPar'',''sofa''">sofa bed</a> on which your brother sleeps at night. A large tapestry covers one wall, while the other wall has several shelves on it, stocked with books and other things.'
 	*nl
+	!! End default Description
 	if locat['Fam_livingroom'] = 0 and locat['Mother'] ! 24 and locat['Mother'] ! 19:
 		'No one else is here right now, so you''re free to use the room how you like.'
 		gs 'exercise','start'
 	end
 
+	act 'Leave the room': minut += 1 & gt 'korrPar'
+	act 'Sit on the sofa': gt 'sitrPar', 'sofa'
+
 	if locat['Kolka'] = 2 and brothermorningsex = daystart:
 		'<a href="exec:gt ''brother'', ''start''">Kolka</a> is getting ready for school.'
 	elseif locat['Kolka'] = 1:
@@ -65,7 +84,7 @@ if $ARGS[0] = '':
 			'You sit at the festive table laid in front of the TV and celebrate the New Year with your family, the TV providing some background noise. At the table, people strike up a conversation and common problems are forgotten as everyone is has fun talking to each other. At midnight, everyone wishes one another a happy New Year and enjoys the champagne and fireworks outside as your mother gives you an envelope with a greeting card and 5000 <b>₽</b>.' 
 			'You continue to watch TV and enjoy the champagne and company of your family, but everyone eventually grows tired and they go to bed, one by one.'
 
-			act 'Leave': gt 'korrPar'
+			act 'Leave': 	minut += 1 & gt 'korrPar'
 		end
 	elseif month = 1 and day = 1:
 		act 'Eat some leftovers at the festive table':
@@ -92,7 +111,7 @@ if $ARGS[0] = '':
 		end
 	elseif locat['Mother'] = 24:
 		*clr & cla
-		'<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/uborka1.jpg"></center>'
+		'<center><img <<$set_imgh>> src="<<$mother_img_path>>uborka1.jpg"></center>'
 		if kanikuli = 0 and mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and SchoolBlock = 0 and week < 6:
 			if CloStyle2 = 4:
 				'As you walk into the living room, you see your mother sweeping the floor. She looks up and gives you a disappointed look. "What are you still doing here? Go to school, now!" She practically pushes you out of the apartment and closes the door.' 
@@ -109,7 +128,7 @@ if $ARGS[0] = '':
 		exit
 	elseif locat['Mother'] = 19 and locat['Stepdad'] = 10:
 		!! Watches TV with Vladimir
-		!!'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/momvladtv.jpg"></center>'
+		!!'<center><img <<$set_imgh>> src="<<$default_img_path>>/momvladtv.jpg"></center>'
 		'As you walk into the living room, you see your mother and Vladimir sitting on the couch watching TV.'
 		act 'Leave':gt 'korrPar'
 		
@@ -121,7 +140,7 @@ if $ARGS[0] = '':
 			npc_rel['A29'] += 1
 			npc_rel['A34'] += 1
 			gs 'stat'
-			!!'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+			!!'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 			'You move over to join them, and your mother scoots away from Vladimir and pats the spot between her and him. You take a seat between them and Vlad barely even glances at you with a brief smile before he goes back to watching TV. Your mother pats you on the shoulder before returning her attention to the TV, apparently happy the family is spending time together.'
 			act 'Leave':gt 'korrPar'
 			
@@ -163,7 +182,7 @@ if $ARGS[0]= 'sofa':
 	gs 'family_schedule'
 	gs 'sitrPar', 'occupied'
 	*clr & cla
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/sofa.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/sofa.jpg"></center>'
 	*nl
 	'<center>A small sofa bed, when not folded out into a bed, is just big enough for you to curl up on and take a nap.</center>'
 
@@ -203,7 +222,7 @@ if $ARGS[0] = 'TVfam':
 	minut += 30
 	gs 'family_schedule'
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 	'You continue to watch TV with the family. Everyone seems very engrossed in the program and almost never says anything, though Kolka occasionally makes a crack about what is happening, often getting shushed by Vlad or your mother.'
 	if locat['Mother'] = 19: act 'Keep watching TV with your family': gt 'sitrPar', 'TVfam'
 	act 'Finish watching':gt 'sitrPar', 'TVend'
@@ -213,7 +232,7 @@ if $ARGS[0] = 'TVend':
 	cla & *clr
 	gs 'family_schedule'
 	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/familytv.jpg"></center>'
+	'<center><img <<$set_imgh>> src="<<$default_img_path>>/familytv.jpg"></center>'
 	'Once the show is over, Vladimir picks up the remote and turns the TV off. He gets up and stretches before he turns and walks out of the room, likely heading to bed. Your mother also gets up. "You should go to bed or at least go to your room so your brother can get his rest." She then turns to Kolka. "Don''t stay up, go to bed." She then ushers you out of the room. As you walk out, you see Kolka putting his pillow and sheet on the couch.'
 	act 'Leave': gt 'korrPar'
 end

+ 16 - 0
locations/spell.qsrc

@@ -444,6 +444,22 @@ if $ARGS[0] = 'cosmetica':
 	end
 end
 
+if $ARGS[0] = 'penisenvy':
+	if SuccessValue > 0:
+		! Set the variable to use real penis
+		penisEnvyVariable = 1
+		! Add Timer to remove Live Penis bonus after 30 minutes
+		!	spellName = 'penisenvy'
+		!	duration  = 30
+		!	CompCode = 'penisEnvyVariable = 0' Remove penis
+		!	TickCode = ''  Do nothing
+		gs 'spellTimer', 'add', 'penisenvy', 30, 'penisEnvyVariable = 0', ''
+		msg '<b><font color = <<$SplTxtColGood>>>You feel the strapon meld into your body. It feels wonderful.</font></b>'
+	else
+		msg '<b><font color="red">The spell fizzles. Nothing seems to happen.</b>'
+	end
+end
+
 !!!!!!!!!!!!!!!!!
 !! Combat Spells
 !!!!!!!!!!!!!!!!!

+ 9 - 1
locations/spellList.qsrc

@@ -425,6 +425,13 @@ spellDiff['greatflood'] = 10
 $spellName['greatflood'] = 'Great Flood'
 $spellDesc['greatflood'] = 'A huge flood of water fills the area, absorbing mana from the enemy and giving you additional protection.'
 $spellTarget['greatflood'] = 'enemy'
+!penisenvy
+spellMana['penisenvy'] = 1000
+spellTime['penisenvy'] = 1
+spellDiff['penisenvy'] = 50
+$spellName['penisenvy'] = 'Penis Envy'
+$spellDesc['penisenvy'] = 'Temporarily animate a strapon dildo, the casters experiences sexual sensations from the dildo, as if it was a real penis.'
+$spellTarget['penisenvy'] = 'self'
 
 
 !-------------------------------------------------------------------------------------------
@@ -514,7 +521,8 @@ $librarySpells[1] = 'shower'
 $librarySpells[2] = 'makeup'
 $librarySpells[3] = 'cosmetica'
 $librarySpells[4] = 'glamour'
-!$librarySpells[5] = 'alterself'
+$librarySpells[5] = 'penisenvy'
+!$librarySpells[6] = 'alterself'
 
 
 ! Elemental Spell Groups

+ 48 - 27
locations/vanrPar.qsrc

@@ -1,26 +1,43 @@
 # vanrPar
+!! Date refactored: 31st March, 2024
+!! Author: Myles
+!!
+!! Version: .01 - initial refactoring
+!! 
+!! Desc: Family home bathroom links to family flat corridor
 
-if $ARGS[0] = '':
-	CLOSE ALL
-	$locM = 'vanrPar'
-	$locM_arg = ''
-	$loc = 'vanrPar'
-	$loc_arg = ''
-	$menu_loc = 'vanrPar'
-	$menu_arg = ''
-	menu_off = 0
+
+if $ARGS[0] = '' or $ARGS[0] = 'start':
+	!! Start location initialisation
+
+	!! Call in location default actions
+	gs 'home_family_init', 'init'
+
+	!! Set location header - img path is set in init
+	$setloc['StageTitle'] = 'Parents Bathroom'
+	$setloc['StageImage'] = '<<$default_img_path>>/vanrpar.jpg'
+
+	!! Set location vars:
+
+	!! Set up game location data
 	$location_type = 'bathroom'
 	$bathtype = 'bathtub shower'
-	*clr & cla
-	gs 'stat'
-	gs 'family_schedule'
-	gs 'themes', 'indoors'
-	'<center><b><font color="maroon">Bathroom</font></b></center>'
-	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/home/vanrpar.jpg"></center>'
+
+	!! End location initialisation
+
+	!! prevent peek scene setting $loc_arg
+	gs 'shortgs', 'setloc', 'vanrPar', 'start'
+	!! Display header and banner image
+	gs 'core_library', 'stage_title'
+
+	!! Begin location content
+	
+	!! Location default description:
 	'The bathroom is very small and unimpressive. Nevertheless, it has everything you need.'
 	*nl
 	'There is a shower, toilet, sink, <a href="exec:gt ''mirror'',''start''">mirror</a> where you can ' + iif(pcs_hairbsh = 0,'<a href="exec:gt ''mirror'',''brush''">brush</a>','brush') + ' your hair, and even a bath tub.'
-
+	*nl
+	!! End default Description
 	if vanr_lock = 0:
 		'The door is not locked and does not close properly. <a href="exec:gt ''vanrPar'',''latch''">Latch the door</a> or <a href="exec:gt ''vanrPar'',''perm_latch''">Always latch the door</a>.'
 	elseif vanr_lock = 2:
@@ -44,12 +61,16 @@ if $ARGS[0] = '':
 
 	if vanr_lock = 0 or vanr_lock = 2:
 		if fullmorrout = 1:
-			act '<b>Finish and go to the kitchen</b>':gt 'kuhrPar'
+			act '<b>Finish and go to the kitchen</b>': minut += 1 & gt 'kuhrPar'
 		else
-			act '<b>Return to the hallway</b>': gt 'korrPar'
+			act '<b>Return to the hallway</b>':minut += 1 & gt 'korrPar'
 		end
 	elseif vanr_lock = 1:
-		act 'Unlatch the door and leave': vanr_lock = 0 & gt 'korrPar'
+		act 'Unlatch the door and leave': 
+			minut += 1 
+			vanr_lock = 0
+			gt 'korrPar'
+		end
 	end
 
 	gs 'din_van', 'private'
@@ -57,17 +78,17 @@ end
 
 if $ARGS[0] = 'latch':
 	vanr_lock = 1
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'unlatch':
 	vanr_lock = 0
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'perm_latch':
 	vanr_lock = 2
-	gt 'vanrPar'
+	gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'peek':
@@ -80,7 +101,7 @@ if $ARGS[0] = 'peek':
 			'<center><video autoplay loop src="images/characters/pavlovsk/resident/vladimir/sex/bath_voyer_0.mp4"></video></center>'
 			'As luck would have it, you hear footsteps at the door. Turning around, you catch a glimpse of your stepfather through the gap in the door right before he moves away, muttering something about the door. Once again alone, you find yourself feeling confused, and with a rapidly beating heart.'
 			stepdadqw += 1
-			act 'Finish': gt 'vanrPar'
+			act 'Finish': gt 'vanrPar', 'start'
 		else
 			if npc_sex['A28'] = 0 or stepdadqw < 5 or mesec > 0 or locat['Mom_athome'] = 1:
 				gs 'vanrPar', 'stepdad_nosex'
@@ -131,7 +152,7 @@ if $ARGS[0] = 'stepdad_nosex':
 	'<center><video autoplay loop src="images/characters/pavlovsk/resident/vladimir/sex/bath_voyer_2.mp4"></video></center>'
 	'You hear movement at the door and turn around. It''s your stepfather. It looks like he passed by and accidentally peeked in. Catching his glance, you feel mischievous and excited, so you blow him a kiss. Without a word, he disappears, yet you can''t help smiling and giggling as you continue drying your hair.'
 	stepdadqw += 1
-	act 'Finish': gt 'vanrPar'
+	act 'Finish': gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'stepdad_sex_no':
@@ -141,7 +162,7 @@ if $ARGS[0] = 'stepdad_sex_no':
 	'<center><img <<$set_imgh>> src="images/shared/home/bathroom/shower_coverup.jpg"></center>'
 	'He stands at the threshold for a moment, staring at you and nervously licking his lips. They way he is looking at your makes you feel exposed and you quickly cover yourself up. "Oh my god what you are doing? Get out and close the door." He looks surprised by your outburst, he looks like he is about to say something, but then he just shakes his head and walks out pulling the door closed behind him, letting you finish your shower in peace.'
 	stepdadqw -= 2
-	act 'Finish': gt 'vanrPar'
+	act 'Finish': gt 'vanrPar', 'start'
 end
 
 if $ARGS[0] = 'stepdad_sex':
@@ -326,7 +347,7 @@ if $ARGS[0] = 'stepdad_sex_end':
 		noshampoo = 1
 		dynamic $showerdin
 		gs 'stat'
-		gt 'vanrPar'
+		gt 'vanrPar', 'start'
 	end
 end
 
@@ -342,7 +363,7 @@ if $ARGS[0] = 'stepdad_sex_analend':
 		noshampoo = 1
 		dynamic $showerdin
 		gs 'stat'
-		gt 'vanrPar'
+		gt 'vanrPar', 'start'
 	end
 end