Переглянути джерело

Merge remote-tracking branch 'Steuchs_bug_hunt/QSRC2TW'

Kevin_Smarts 3 місяців тому
батько
коміт
fca0e5692a

Різницю між файлами не показано, бо вона завелика
+ 233 - 155
locations/Cheatmenu_din.qsrc


+ 1 - 1
locations/_menu_setting.qsrc

@@ -1,7 +1,7 @@
 # $menu_setting
 
 gs 'Cheatmenu_din'
-dynamic $cheatmenu['setting']
+gs 'Cheatmenu_din', 'setting'
 
 --- $menu_setting ---------------------------------
 

+ 81 - 61
locations/din_bad.qsrc

@@ -1,6 +1,10 @@
 # din_bad
 !2021/05/02
-$mobile_check = {
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'din_bad', 'xxx'" instead of "dynamic $xxx").
+$mobile_check = "gs 'din_bad', 'mobile_check'"
+if $ARGS[0] = 'mobile_check':
 	if menu_off = 0:
 		gs 'stat'
 		if vladimirQW['day'] ! daystart and hour >= 15 and hour <= 17:
@@ -78,9 +82,10 @@ $mobile_check = {
 
 		killvar 'lover_number'
 	end
-}
+end
 
-$d_salf = {
+$d_salf = "gs 'din_bad', 'd_salf'"
+if $ARGS[0] = 'd_salf':
 	*clr & cla
 	'<center><h1>Tissues</h1></center>'
 	'<center><img <<$set_imgh>> src="<<FUNC(''$purse_image'',	$currentpursetype, currentpursenumber)>>"></center>'
@@ -95,9 +100,10 @@ $d_salf = {
 	if pcs_makeup ! 1 and cosmetic_tattoo = 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & pcs_makeup = 1 & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Remove your makeup</b></a>'
 	'<a href="exec:gs ''stat'' & gs ''din_bad'', ''d_bag''"><br><b>Put tissues away</b></a>'
 	'</td></tr></table></center>'
-}
-		
-$d_mouthwash =  {
+end
+
+$d_mouthwash = "gs 'din_bad', 'd_mouthwash'"
+if $ARGS[0] = 'd_mouthwash':
 	*clr & cla
 	'<center><h1>Mouth Wash</h1></center>'
 	'<center><img <<$set_imgh>> src="<<FUNC(''$purse_image'',	$currentpursetype, currentpursenumber)>>"></center>'
@@ -112,7 +118,7 @@ $d_mouthwash =  {
 	''
 	act 'Done':gs 'stat' & gs 'din_bad', 'd_bag'
 	'</td></tr></table></center>'
-}
+end
 
 if $ARGS[0] = 'd_bag':
 	*clr & cla
@@ -123,20 +129,20 @@ if $ARGS[0] = 'd_bag':
 	'<center><table cellspacing="0" cellpadding="20" valign="top"><tr>'
 	'<td cellspacing="0" cellpadding="0" valign="top">'
 	if mc_inventory['makeup_wipes'] > 0: 'You have <b><<mc_inventory[''makeup_wipes'']>></b> wet wipes left in your purse. <a href="exec:dynamic $d_salf">Use a tissue</a>'
-	if mc_inventory['painkillers'] > 0 and pain['total'] > 0 and pain['killer'] = 0: 
+	if mc_inventory['painkillers'] > 0 and pain['total'] > 0 and pain['killer'] = 0:
 		'You have <b><<mc_inventory[''painkillers'']>></b> painkiller'+iif(mc_inventory['painkillers'] > 1, 's ', ' ')+'left in your purse. <a href="exec: gs ''drugs'', ''painkiller'' & gs ''din_bad'', ''d_bag''">Take One</a>'
 	elseif mc_inventory['painkillers'] > 0 and (pain['total'] = 0 or pain['killer'] > 0):
 		'You have <b><<mc_inventory[''painkillers'']>></b> painkiller'+iif(mc_inventory['painkillers'] > 1, 's ', ' ')+'left in your purse.'
 	end
-	if mc_inventory['mouthwash'] > 0 and (pcs_breath = 0 or cumloc[12] = 1): 
+	if mc_inventory['mouthwash'] > 0 and (pcs_breath = 0 or cumloc[12] = 1):
 		'There''s mouthwash in your purse. <b><<mc_inventory[''mouthwash'']>></b> uses remaining. <a href="exec:dynamic $d_mouthwash">Use mouthwash</a>'
 	elseif mc_inventory['mouthwash'] > 0 and pcs_breath = 1 and cumloc[12] = 0:
 		'There''s mouthwash in your purse. <b><<mc_inventory[''mouthwash'']>></b> uses remaining.'
 	end
-	if mc_inventory['travel_mirror'] =  1: 
+	if mc_inventory['travel_mirror'] =  1:
 		'You have a <a href="exec: cla & gt ''mirror'', ''d_bag_mirror''">compact mirror</a> in your purse'+iif(mc_inventory['travel_makeup']  >0, ' and some portable makeup.', '.')
 		if mc_inventory['lipbalm']  > 0 and pcs_lipbalm <= 0:
-			'You can apply some <a href="exec: cls & gs ''mirror'', ''applyLipbalm'' & act ''Return'':gs ''din_bad'', ''d_bag''">lip balm</a>'			
+			'You can apply some <a href="exec: cls & gs ''mirror'', ''applyLipbalm'' & act ''Return'':gs ''din_bad'', ''d_bag''">lip balm</a>'
 		end
 	elseif mc_inventory['travel_mirror'] =  0 and mc_inventory['travel_makeup']  >0:
 		'You have some portable makeup in your purse, but you need a compact mirror to apply it.'
@@ -152,9 +158,9 @@ if $ARGS[0] = 'd_bag':
 	end
 !! Hair options
 	*nl
-	if (mc_inventory['travel_mirror'] =  1 or mc_inventory['comb'] =  1) and pcs_hairbsh = 0: 
+	if (mc_inventory['travel_mirror'] =  1 or mc_inventory['comb'] =  1) and pcs_hairbsh = 0:
 		'There''s a hairbrush in your purse. <a href="exec:pcs_hairbsh = 1 & gs ''stat'' & gs ''din_bad'', ''d_bag''">Brush your hair</a>'
-	elseif (mc_inventory['travel_mirror'] =  1 or mc_inventory['comb'] =  1) and pcs_hairbsh = 1: 
+	elseif (mc_inventory['travel_mirror'] =  1 or mc_inventory['comb'] =  1) and pcs_hairbsh = 1:
 		'There''s a hairbrush in your purse. Your hair doesn''t need brushing right now.'
 	end
 	if pcs_hairbsh > 0 and pcs_hairlng > 80 and hbraids = 0:
@@ -236,12 +242,12 @@ if $ARGS[0] = 'd_bag':
 	if mc_inventory['breastcream'] > 0:'<a href="exec: gs ''drugs'', ''breastcream'' & gs ''din_bad'', ''d_bag''">Apply breast cream.</a> You have <b><<mc_inventory[''breastcream'']>></b> cream left in your purse.'
 	if mc_inventory['aphrodisiac'] > 0:'<a href="exec: gs ''drugs'', ''aphrodisiac'' & gs ''din_bad'', ''d_bag'' & *pl $drugVars[''aphrodisiac_msg''] & *pl $min_arousal_msg & killvar ''$min_arousal_msg''">Chew aphrodisiac gum.</a> You have <b><<mc_inventory[''aphrodisiac'']>></b> gum left in your purse.'
 
-	if mc_inventory['refill_bottle_water'] = 4 and mc_inventory['refill_bottle'] >= 1: 
+	if mc_inventory['refill_bottle_water'] = 4 and mc_inventory['refill_bottle'] >= 1:
 		'You carry your sports water bottle in your purse. It''s still completely full. <a href="exec: mc_inventory[''refill_bottle_water''] = 3 & pcs_hydra += 75 & cumspclnt = 2 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''">Drink</a>'
 	elseif mc_inventory['refill_bottle_water'] = 3 and mc_inventory['refill_bottle'] >= 1:
 		'You carry your sports water bottle in your purse. It''s almost full. <a href="exec: mc_inventory[''refill_bottle_water''] = 2 & pcs_hydra += 75 & cumspclnt = 2 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''">Drink</a>'
 	elseif mc_inventory['refill_bottle_water'] = 2 and mc_inventory['refill_bottle'] >= 1:
-		'You carry your sports water bottle in your purse. It''s half full. <a href="exec: mc_inventory[''refill_bottle_water''] = 1 & pcs_hydra += 75 & cumspclnt = 2 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''">Drink</a>'	
+		'You carry your sports water bottle in your purse. It''s half full. <a href="exec: mc_inventory[''refill_bottle_water''] = 1 & pcs_hydra += 75 & cumspclnt = 2 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''">Drink</a>'
 	elseif mc_inventory['refill_bottle_water'] = 1 and mc_inventory['refill_bottle'] >= 1:
 		'You carry your sports water bottle in your purse. It''s almost empty. <a href="exec: mc_inventory[''refill_bottle_water''] = 0 & pcs_hydra += 75 & cumspclnt = 2 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''">Drink</a>'
 	elseif mc_inventory['refill_bottle_water'] = 0 and mc_inventory['refill_bottle'] >= 1:
@@ -268,7 +274,8 @@ if $ARGS[0] = 'd_bag':
 	'</td></tr></table></center>'
 end
 
-$dinalkowin1 = {
+$dinalkowin1 = "gs 'din_bad', 'dinalkowin1'"
+if $ARGS[0] = 'dinalkowin1':
 	*clr & cla
 	alkowine = 1
 	minut += 5
@@ -278,9 +285,10 @@ $dinalkowin1 = {
 	*nl
 	'You take the wine bottle out of your purse and slowly drink half of it. You struggle quite a lot to put the cork back before being able to make it.'
 	act 'Continue':gs 'din_bad', 'd_bag'
-}
+end
 
-$dinalkowin2 = {
+$dinalkowin2 = "gs 'din_bad', 'dinalkowin2'"
+if $ARGS[0] = 'dinalkowin2':
 	*clr & cla
 	alkowine = 0
 	mc_inventory['food_wine'] = 0
@@ -291,9 +299,10 @@ $dinalkowin2 = {
 	*nl
 	'You take out the remaining half wine bottle out of your purse, slowly drinking the rest of it. As you finish you throw the empty bottle away.'
 	act 'Continue':gs 'din_bad', 'd_bag'
-}
+end
 
-$din_Switch_Condom_Menu = {
+$din_Switch_Condom_Menu = "gs 'din_bad', 'din_Switch_Condom_Menu'"
+if $ARGS[0] = 'din_Switch_Condom_Menu':
 	dynamic $din_Update_Condom_Counts
 	*clr & cla
 	'<center><h1>Condoms</h1></center>'
@@ -318,9 +327,10 @@ $din_Switch_Condom_Menu = {
 	*nl
 	act 'Return':gs 'din_bad', 'd_bag'
 	'</td></tr></table></center>'
-}
+end
 
-$din_Table_Condom_Menu = {
+$din_Table_Condom_Menu = "gs 'din_bad', 'din_Table_Condom_Menu'"
+if $ARGS[0] = 'din_Table_Condom_Menu':
 	dynamic $din_Update_Condom_Counts
 	*clr & cla
 	'<center><h1>Condoms</h1></center>'
@@ -347,7 +357,7 @@ $din_Table_Condom_Menu = {
 	end
 	*nl
 	act 'Return':gt 'stol', 'bc'
-}
+end
 
 !! Condom System
 !! mc_inventory['equipped_condoms']: Total number of condoms sveta is using (normal or damaged).
@@ -356,7 +366,8 @@ $din_Table_Condom_Menu = {
 !! preziktype: 0 - Use condoms / 1 - don''t use condoms / 2 - use damaged condoms
 !! to check if sveta wants to use a condom use if mc_inventory['equipped_condoms'] > 0:
 
-$din_Do_Condom_Counts = {
+$din_Do_Condom_Counts = "gs 'din_bad', 'din_Do_Condom_Counts'"
+if $ARGS[0] = 'din_Do_Condom_Counts':
 	*clr & cla
 	'<center><h1>Condoms</h1></center>'
 	'<center><img <<$set_imgh>> src="<<FUNC(''$purse_image'',	$currentpursetype, currentpursenumber)>>"></center>'
@@ -399,9 +410,10 @@ $din_Do_Condom_Counts = {
 		dynamic $din_Table_Condom_Menu
 	end
 	'</td></tr></table></center>'
-}
+end
 
-$din_Update_Condom_Counts = {
+$din_Update_Condom_Counts = "gs 'din_bad', 'din_Update_Condom_Counts'"
+if $ARGS[0] = 'din_Update_Condom_Counts':
 	if mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0: prezikmsg = 1
 	if preziktype = 0:
 		if mc_inventory['normal_condoms'] > 0:
@@ -437,9 +449,10 @@ $din_Update_Condom_Counts = {
 			preziktype = 0
 		end
 	end
-}
+end
 
-$d_tabletkied = {
+$d_tabletkied = "gs 'din_bad', 'd_tabletkied'"
+if $ARGS[0] = 'd_tabletkied':
 	*clr & cla
 	'<center><h1>Birth Control</h1></center>'
 	'<center><img <<$set_imgh>> src="<<FUNC(''$purse_image'',	$currentpursetype, currentpursenumber)>>"></center>'
@@ -450,7 +463,7 @@ $d_tabletkied = {
 		if tabletkiday < daystart: '<a href="exec:dynamic $d_tabletkieda, 1 & dynamic $d_tabletkied">Take the birth control pill now.</a>'
 
 		if tabletkicheck = 0:
-			if birth_control['remind_hour'] = 0: 
+			if birth_control['remind_hour'] = 0:
 				'<a href="exec:gs ''din_bad'', ''set_bc_reminder''">Set a reminder to take your birth control pills.</a>'
 			else
 				'<a href="exec:gs ''din_bad'', ''set_bc_reminder''">Change your birth control reminder.</a>'
@@ -474,9 +487,10 @@ $d_tabletkied = {
 	end
 	act 'Return':gs 'din_bad', 'd_bag'
 	'</td></tr></table></center>'
-}
+end
 
-$d_tabletkiedt = {
+$d_tabletkiedt = "gs 'din_bad', 'd_tabletkiedt'"
+if $ARGS[0] = 'd_tabletkiedt':
 	*clr & cla
 	'<center><h1>Birth Control</h1></center>'
 	if mc_inventory['desk'] = 0:
@@ -488,9 +502,9 @@ $d_tabletkiedt = {
 	tabloc = 1
 	if thinkpreg = 0 and knowpreg = 0:
 		if tabletkiday < daystart: '<a href="exec:*clr & dynamic $d_tabletkieda, 1 & dynamic $d_tabletkiedt">Take the birth control pill now.</a>'
-		
+
 		if tabletkicheck = 0:
-			if birth_control['remind_hour'] = 0: 
+			if birth_control['remind_hour'] = 0:
 				'<a href="exec:gs ''din_bad'', ''set_bc_reminder''">Set a reminder to take your birth control pills.</a>'
 			else
 				'<a href="exec:gs ''din_bad'', ''set_bc_reminder''">Change your birth control reminder.</a>'
@@ -504,9 +518,10 @@ $d_tabletkiedt = {
 	'<a href="exec:*clr & dynamic $d_tabletkieda, 4">Examine the birth control pills.</a>'
 	if tabletkioddk = 1: '<a href="exec:*clr & dynamic $d_tabletkieda, 5 & dynamic $d_tabletkiedt">Dump the strange pills.</a>'
 	act 'Return':gt 'stol', 'bc'
-}
+end
 
-$d_tabletkieda = {
+$d_tabletkieda = "gs 'din_bad', 'd_tabletkieda'"
+if $ARGS[0] = 'd_tabletkieda':
 	if ARGS[0] = 1:
 		tabletkipd += tabletkipt
 		if tabletkiday ! daystart:
@@ -561,7 +576,7 @@ $d_tabletkieda = {
 		tabletkioddp = 0
 		gs 'stat'
 	end
-	
+
 	if mc_inventory['contraceptive_pill'] = 0 and pillsleft[ptype] = 0:
 		msg 'That was your last birth control pill. You need to buy some more.'
 	end
@@ -571,7 +586,7 @@ $d_tabletkieda = {
 	else
 		act 'Return':gt 'stol', 'bc'
 	end
-}
+end
 
 if $ARGS[0] = 'set_auto_bc':
 	:invalid_auto_bc_loop
@@ -616,7 +631,8 @@ if $ARGS[0] = 'turn_off_bc_reminder':
 	end
 end
 
-$d_cycreport_choice = {
+$d_cycreport_choice = "gs 'din_bad', 'd_cycreport_choice'"
+if $ARGS[0] = 'd_cycreport_choice':
 	*clr & cla
 	'<center><h1>Fertility Cycle</h1></center>'
 	'<center><table cellspacing="0" cellpadding="20" valign="top"><tr>'
@@ -663,9 +679,10 @@ $d_cycreport_choice = {
 	end
 	act 'Exit':gs 'stat' & gt $loc, $loc_arg
 	'</td></tr></table></center>'
-}
+end
 
-$d_cycreport_actor = {
+$d_cycreport_actor = "gs 'din_bad', 'd_cycreport_actor'"
+if $ARGS[0] = 'd_cycreport_actor':
 	!! Svetlana has decided she is not pregnant
 	if ARGS[0] = 1:
 		$cycreport_txt = 'It has been <<temp>> days since you last remember having a period.'
@@ -686,7 +703,7 @@ $d_cycreport_actor = {
 		dynamic $d_cycreport_update
 		gs 'stat'
 		dynamic $d_cycreport_choice
-	!! Svetlana is Menstrating. 
+	!! Svetlana is Menstrating.
 	elseif ARGS[0] = 3:
 		thinkpreg = 0
 		denypreg = 0
@@ -694,7 +711,7 @@ $d_cycreport_actor = {
 		dynamic $d_cycreport_update
 		gs 'stat'
 		dynamic $d_cycreport_choice
-	!! Svetlana is remembering her last period. 
+	!! Svetlana is remembering her last period.
 	elseif ARGS[0] = 4:
 		thinkpreg = 0
 		denypreg = 0
@@ -737,7 +754,7 @@ $d_cycreport_actor = {
 		'<center><h1>Fertility Cycle</h1></center>'
 		'<center><table cellspacing="0" cellpadding="20" valign="top"><tr>'
 		'<td width="500" cellspacing="0" cellpadding="0" valign="top">'
-		
+
 		potfather_temp[1] = arrsize('$wombpotfath')
 		if potfather_temp[1] > 0:
 			potfather_counter = 0
@@ -754,16 +771,16 @@ $d_cycreport_actor = {
 		else
 			'There are no potential fathers.'
 		end
-		
+
 		killvar 'potfather_counter'
 		killvar 'potfather_temp'
-		
+
 		'<br>  <a href="exec:dynamic $d_cycreport_choice & gs ''stat''">Accept</a>'
 		'</td></tr></table></center>'
-		
+
 		act 'Return':dynamic $d_cycreport_choice
 		act 'Exit':gs 'stat' & gt $loc, $loc_arg
-		
+
 		!! This is the old code that was broken, keeping it for now (julzor)
 		!! {
 		tempmax = arrsize('$cumfthname')-1
@@ -807,9 +824,10 @@ $d_cycreport_actor = {
 		$cycreport_txt = 'You are currently recovering from childbirth. You gave birth on <<monthkid[temp]>> / <<daykid[temp]>> / <<yearkid[temp]>>.'
 		gs 'stat'
 	end
-}
+end
 
-$d_cycreport_update = {
+$d_cycreport_update = "gs 'din_bad', 'd_cycreport_update'"
+if $ARGS[0] = 'd_cycreport_update':
 	killvar 'temp'
 	if thinkpreg = 1 or knowpreg = 1: dynamic $d_cycreport_upduedate
 	!! Vagblood in a future update to account for babydamage and miscarrages.
@@ -840,7 +858,7 @@ $d_cycreport_update = {
 				elseif birth_control['implant_status'] > 1 and pillcon2 >= 30000:
 					$cycreport_txt = 'It has been <<temp[1]>> days since the start of your last period. <font color=green>Your implant protects you from getting pregnant.</font>'
 				elseif birth_control['implant_status'] > 1 and pillcon2 < 30000:
-					$cycreport_txt = 'It has been <<temp[1]>> days since the start of your last period. <font color=red>Your implant is not yet effective.</font>'				
+					$cycreport_txt = 'It has been <<temp[1]>> days since the start of your last period. <font color=red>Your implant is not yet effective.</font>'
 				elseif pillcon2 > 0 and birth_control['think_safe'] = 1:
 					$cycreport_txt = 'It has been <<temp[1]>> days since the start of your last period. <font color=green>You are currently on the birth control pill.</font>'
 				elseif pillcon2 > 0 and ((FocH > (Foch_Max - 96)) or ovulate > 0) and birth_control['think_safe'] = 0 and birth_control['using_bc'] > 0:
@@ -929,24 +947,25 @@ $d_cycreport_update = {
 			end
 		end
 	end
-}
+end
 
 
-$d_cycreport_upduedate = {
+$d_cycreport_upduedate = "gs 'din_bad', 'd_cycreport_upduedate'"
+if $ARGS[0] = 'd_cycreport_upduedate':
 	!! implant_calc: Calculation of an implantation date in the uterus (Average is 5 days after ovulation)
 	implant_calc = daystart - lastovulation + 5
-	
+
 	!! Human gastation period: 280 days
 	gastation_time = 280 / (1 + cheatVars['preg_speed'])
-	
+
 	temp = gastation_time - implant_calc
 	pregdueday = day
 	pregduemonth = month
 	pregdueyear = year
-	
+
 	temp += pregdueday
 	pregdueday = 0
-	
+
 	:pregduedateloop
 	if pregduemonth = 1 and temp > 31:
 		pregduemonth += 1
@@ -1017,9 +1036,10 @@ $d_cycreport_upduedate = {
 		$pregduedate += 'Dec'
 	end
 	$pregduedate += ' <<pregdueyear>>'
-}
+end
 
-$d_pregmovement = {
+$d_pregmovement = "gs 'din_bad', 'd_pregmovement'"
+if $ARGS[0] = 'd_pregmovement':
 	if denypreg = 0 and pregchem > 0:
 		if thinkpreg > 0 and knowpreg = 0:
 			knowpreg = 1
@@ -1077,7 +1097,7 @@ $d_pregmovement = {
 			'You feel movement deep inside you. It''s probably just gas.'
 		end
 	end
-}
+end
 
 
 if $ARGS[0] = 'takepill':
@@ -1143,7 +1163,7 @@ if $ARGS[0] = 'takepill':
 			pcs_skin += 1
 			EggRH += rand(10,80)
 		end
-		
+
 		!!pillcon2 is the ideal state, PC considers this the believed pillcon value
 		pillcon2 += ((pillcon2 + 15000) / 25) + 4000
 		if pillcon2 > 40000: pillcon2 = 40000
@@ -1164,7 +1184,7 @@ if $ARGS[0] = 'quick_takepill':
 		pcs_health -= 1
 	end
 	pilldaychk = daystart
-	
+
 	if birth_control['message_skip'] ! daystart:
 		if mc_inventory['contraceptive_pill'] = 0 and pillsleft[ptype] = 0:
 			msg 'That was your last birth control pill. You need to buy some more.'

+ 102 - 85
locations/din_pav.qsrc

@@ -1,17 +1,22 @@
 # din_pav
 !!2021/04/15
-$pavserjil = {
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'din_pav', 'xxx'" instead of "dynamic $xxx").
+$pavserjil = "gs 'din_pav', 'pavserjil'"
+if $ARGS[0] = 'pavserjil':
 	menu_off = 1
 	*clr & cla
 	gs'stat'
-	
+
 	set pavserhom = 1
 	'<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil2.jpg" ></center>'
 	'It is not clear why you you are drawn to him, but you can barely take you eyes off him.'
 	act 'Overnutsya': gt 'pushkin_parks', 'lug'
-}
+end
 
-$koncepodos = {
+$koncepodos = "gs 'din_pav', 'koncepodos'"
+if $ARGS[0] = 'koncepodos':
 	*clr & cla
 	menu_off = 1
 	gs'stat'
@@ -29,11 +34,12 @@ $koncepodos = {
             '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/koncepod.jpg" ></center>'
             '"Kids, on the wall too, writing stuff everywhere" The old man says gesticulating.'
             act'Leave': gt 'dvor'
-        end              
+        end
     end
-}
+end
 
-$koncepodos1 = {
+$koncepodos1 = "gs 'din_pav', 'koncepodos1'"
+if $ARGS[0] = 'koncepodos1':
 	*clr & cla
 	menu_off = 1
     minut += 5
@@ -56,25 +62,27 @@ $koncepodos1 = {
     'You instinctively jerk your hand away at the touch of his dry, cold, almost deathly fingers. The concierge grabs your arm and breaks into a mad smile, revealing dark, rotten teeth.'
     '"So young and pretty...."'
     'You break his grip and run toward the stairs, hearing his laughter behind you. Echoing up the stairwell, it sounds like a thousand doors creaking.'
-    
+
     act 'Get out of here fast':pavserhom = 3 & psiha = 1 & gt'dvor'
     act 'View apartment':gt 'koncepod1', 'krr2x1'
-}
+end
 
-$pavser = {  
+$pavser = "gs 'din_pav', 'pavser'"
+if $ARGS[0] = 'pavser':
 	menu_off = 1
     if pcs_hairbsh = 1:pcs_hairbsh = 0
 	pcs_mood -= 10
     gs'stat'
-    'For some reason when you enter the room, you decide to bow before graduating  and bow, after graduating from a deep curtsy.' 
+    'For some reason when you enter the room, you decide to bow before graduating  and bow, after graduating from a deep curtsy.'
     'Shaking head, swept... hair... colors, came to the middle of the room and do a pirouette - slowly-slowly raised your hands in exaltation.'
     'You blinded sunny <<$pcs_nickname>> rained out of the window and the shade seemed to get closer.'
     'And then you notice him: a man sitting behind the couch against the wall, his face buried in his knees. You cry out and involuntarily raise your hand to your mouth, bit, fingers.'
 	act 'Look closer':dynamic $pavser1
 	act 'Run away':pavserhom = 3 & psiha = 1 & gt'dvor'
-}
+end
 
-$pavser2 = {
+$pavser2 = "gs 'din_pav', 'pavser2'"
+if $ARGS[0] = 'pavser2':
 	menu_off = 1
     psi1day = 0
     'Closing the gray door, you''re prepared to see, well, anything. You find yourself in a terribly narrow and gloomy hallway.'
@@ -85,10 +93,11 @@ $pavser2 = {
     '"Maybe not just that," you think. "Maybe someone died here."'
     '"No," you reassure yourself, "that''s just my imagination running wild."'
     'Still with all these thoughts still spinning in your head, you hesitate, unsure whether you want to further look around.'
-    act 'Leave':pavserhom = 3 & psiha = 1 & gt'dvor' 
-}
+    act 'Leave':pavserhom = 3 & psiha = 1 & gt'dvor'
+end
 
-$pavser1 = {
+$pavser1 = "gs 'din_pav', 'pavser1'"
+if $ARGS[0] = 'pavser1':
 	*clr & cla
 	menu_off = 1
     psiho = 1
@@ -97,7 +106,7 @@ $pavser1 = {
     '<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil.jpg" ></center>'
     'Before you, appeared no longer a young man. From him it emanated a savage force and evidence were the dimensions of his body, barely distinguishable from-a beige raincoat and crumpled.'
     act 'Who are you?':
-        *clr & cla        
+        *clr & cla
         pcs_mana -= 30
         gs'stat'
 		'<center><img <<$set_imgh>> src="'+FUNC('$face_image')+'"></center>'
@@ -105,7 +114,7 @@ $pavser1 = {
         'You exhale, slowly retreating to the door and trying to pull yourself together. "You scared me," you continue, trying to stop your voice from shaking. At this point, you have learned it:man in the park on the lawn - How did you get here? '
         '"Through the door" he replies, his voice was deep and sonorous. You stopped at the door. Paul did not move; you have only to leave, but why-then hesitated.'
         act 'I''m a fool Fool...':
-            *clr & cla            
+            *clr & cla
             gs'stat'
 			'<center><img <<$set_imgh>> src="'+FUNC('$face_image')+'"></center>'
             '<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil.jpg" ></center>'
@@ -127,7 +136,7 @@ $pavser1 = {
                     *clr & cla
                     pcs_hairbsh = 1
                     set psihb = 0
-                    
+
                     gs'stat'
 					'<center><img <<$set_imgh>> src="'+FUNC('$face_image')+'"></center>'
                     '<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil.jpg" ></center>'
@@ -137,14 +146,15 @@ $pavser1 = {
                     'Paul calmly turned without answering and began farming inspection apartments.'
                     'You both went to the bedroom, pretending, the apartment takes you more, than meeting.'
                     act 'In the bedroom':gt 'koncepod1', 'bdr2x'
- 
+
                 end
             end
         end
     end
-}
+end
 
-$pavser3 = {
+$pavser3 = "gs 'din_pav', 'pavser3'"
+if $ARGS[0] = 'pavser3':
 	menu_off = 1
     'Condition Bedrooms more you plunged into a stupor. Quite ragged room with awkward standing in the midst of her perfectly preserved ancient, plush ottoman.'
     act '- The chair would look good in a hall, - You dropped it withheld.':
@@ -172,25 +182,26 @@ $pavser3 = {
             psihc = 0
             gt 'koncepod1', 'krr2x'
         end
-    end   
-}
+    end
+end
 
-$pavser4 = {
+$pavser4 = "gs 'din_pav', 'pavser4'"
+if $ARGS[0] = 'pavser4':
     *clr & cla
 	menu_off = 1
     pcs_mana = pcs_mana + 60
     piss = piss + 1
-    
+
     gs'stat'
     '<center><img <<$set_imgh>> src="images/locations/shared/bathroom/sittingtoilet.jpg" ></center>'
     'You went into the corridor and headed to the bathroom, waiting, he will move after, but by the sound of steps realized, that he stayed in the kitchen. Scattered look you ran about the bathroom, listening to, he wanders in the other end of the apartment. The room was bathed in light, which fell through the glass window with glass.'
     'Finishing the old shell in harmony with frame oval mirror. You stayed in front of him to check his hair, Do not gone cosmetics.'
     'Then, instantly deciding, she lifted her skirt, he pulled down her panties and sat on the toilet. Do you understand, resultinge herself slo, not only locked, but not even closing the bathroom door, and that he may at any time enter, but this-then you and excited. You become terribly, that it can catch in this position, you, However, I, to make it happen.'
     'You were terribly, that it can catch in this position, you, However, I, to make it happen.'
-	
+
 	gs 'arousal', 'foreplay', 5, 'exhibitionism'
 	gs 'stat'
-	
+
     if pcs_horny >= 95:
         act 'Touch yourself':
             *clr & cla
@@ -200,10 +211,10 @@ $pavser4 = {
             '<center><video autoplay loop src="images/locations/pushkin/vacanthouse/11684312.mp4"></video></center>'
             'You koknulis his wet with excitement and urine pisichki.'
             'From that sensation, that you''re caught for such indecent occupation, you further podstёguet. And you barely contained, not to publish and sound.'
-			
+
 			gs 'arousal', 'clit_finger', 5, 'masturbate'
 			gs 'stat'
-			
+
             act 'Continue':
                 *clr & cla
 				pcs_mood = 100
@@ -213,18 +224,19 @@ $pavser4 = {
 				gs 'arousal', 'clit_finger', 5, 'masturbate'
 				gs 'arousal', 'end'
 				gs 'stat'
-				
+
                 act 'Freshen up':gt 'koncepod1', 'vnr2x'
             end
         end
     end
-    
+
     act 'Further':psihc = 1 & gt 'koncepod1', 'vnr2x'
-    
 
-}
 
-$pavser5 = {
+end
+
+$pavser5 = "gs 'din_pav', 'pavser5'"
+if $ARGS[0] = 'pavser5':
 	menu_off = 1
     'Putishestvuya the apartment you shocked assorted odtelki and its absence in the premises nekotoryz, And then there''s the kitchen. Well, at least clean.'
     act 'Further':
@@ -244,29 +256,31 @@ $pavser5 = {
             '<center><img <<$set_imgh>> src="images/characters/pushkin/pavser/pavserjil.jpg" ></center>'
             'Coming out of his reverie, Did you catch yourself at his greedy, scrutiny. Looking hunter looking at the prey. Closer, cheeky suggestive feeling, that you just-that stripped and fucked.'
             'You felt his eyes every cell of the body and chuvstvvuya awkward and at the same time as the-excitedly, if enjoy, that he have a little-just demeaning.'
-			
+
 			gs 'arousal', 'vaginal', 10, 'sub'
 			gs 'stat'
-			
+
             act 'In the corridor':gt 'koncepod1', 'krr2x'
         end
     end
-}
+end
 
 
-$pavser6 = {
+$pavser6 = "gs 'din_pav', 'pavser6'"
+if $ARGS[0] = 'pavser6':
 	menu_off = 1
     psihb = 1
     psiho = 3
-    
+
     'You are returned to the kitchen and missed, looking away from each other''s eyes, broke up into different rooms.'
     'Both understanding - tightening the inspection of the apartment, you increase the likelihood, between you that-something will happen.'
     'None of you especially do not wish to, and does not aspire to this, nevertheless he or, or you do not want to deviate from the chosen line of conduct.'
     'As if someone-it painted for you all the movements and you feel like breaking the spirit of the play or destroy the atmosphere of predestination, arose in the walls of the house.'
     *nl
-}
+end
 
-$pavser7 = {
+$pavser7 = "gs 'din_pav', 'pavser7'"
+if $ARGS[0] = 'pavser7':
 	menu_off = 1
     'Then the phone rang inappropriate.'
     act 'Answer':
@@ -280,9 +294,10 @@ $pavser7 = {
         *nl
         act 'Listen tube':dynamic $pavser8
     end
-}
+end
 
-$pavser8 = {
+$pavser8 = "gs 'din_pav', 'pavser8'"
+if $ARGS[0] = 'pavser8':
 	*clr & cla
 	menu_off = 1
 	'<center><img <<$set_imgh>> src="'+FUNC('$face_image')+'"></center>'
@@ -316,23 +331,24 @@ $pavser8 = {
         'You oyknula, but the words never sounded, they drowned in your own mind.'
         act 'Oh':dynamic $pavser9
     end
-}
+end
 
-$pavser9 = {
+$pavser9 = "gs 'din_pav', 'pavser9'"
+if $ARGS[0] = 'pavser9':
     *clr & cla
 	menu_off = 1
     pcs_mood -= 40
     gs'stat'
-    
+
     '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/kiss.jpg" ></center>'
     'He took in the palm of your face and stared with a kiss on the lips. '
     'In the living room all round stopped, Only in the sunlight dancing motes; dead silence broken only by their convulsive breathing.'
     'Suddenly he picked you up and carried her across the living room to the partition window, I suffered with such ease, if you were a small child. You hugged his neck, feels the same mighty and strong, like a tree trunk, and began stroking the muscles, which sparkled on his back under the cloak of a-the smooth material.'
     'From it was easy sour smell - sweat and then-else, that you could not recognize, - The smell of a man, male, none of your guys do not know the groin, and that smell strongly excites you.'
-    
+
 	gs 'arousal', 'kiss', 5, 'sub'
 	gs 'stat'
-	
+
 	act 'Further':
         *clr & cla
         gs'stat'
@@ -342,27 +358,27 @@ $pavser9 = {
         ''
 		gs 'arousal', 'foreplay', 5, 'sub'
 		gs 'stat'
-		
+
         act 'Further':
             *clr & cla
             gs'stat'
             '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/02.jpg" ></center>'
             'Picked up the chest, palms and thumbs had nipples. The rough skin on the balls of his fingers made her rush of desire, you clung to him.'
             'At the end-all he bared your breasts and hot lips touched your nipples and wild heat sladotnogo madness began to rise from the bottom to the top of your body.'
-			
+
 			gs 'arousal', 'foreplay', 5, 'sub'
 			gs 'stat'
-		
+
             act 'Further':
                 *clr & cla
                 gs'stat'
                 '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/03.jpg" ></center>'
                 'You neprozvolno cozero his pants and felt beneath the solid barrel member and frantically began to take off his pants while his cock did not seem near your face.'
                 'You smelled in the face of a mixture of smells: sour sweat and urine zpah...'
-                
+
 				gs 'arousal', 'foreplay', 5, 'sub'
 				gs 'stat'
-		
+
                 act 'Further':
                     *clr & cla
 			        pcs_mana = manamax
@@ -371,20 +387,20 @@ $pavser9 = {
                     'And while your brain is trying to digest what is happening, and you understand in general how do you take...'
                     'You stand in front of him on his knees, I began to caress the tongue of its elastic trunk.'
                     ''
-					
+
 					gs 'arousal', 'hj', 5, 'sub'
 					gs 'stat'
-					
+
                     act 'Further':
                         *clr & cla
                         gs'stat'
                         '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/04.jpg" ></center>'
                         'You were amazed to, what''s happening. You stand in front of a completely unfamiliar man half-naked, on his knees and his mouth furiously pleasuring, caressing his head tongue.'
                         ''
-						
+
 						gs 'arousal', 'bj', 5, 'sub'
 						gs 'stat'
-						
+
                         act 'Continue':
                             *clr & cla
 			                pcs_mana = manamax
@@ -393,11 +409,11 @@ $pavser9 = {
                             '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/06.jpg" ></center>'
                             'And the passion rolls, like the waves on the shore peschanny, raising you all to a new level of bliss and you have not thought about the true test of what is happening, its causes, you become important to the investigation.'
                             'And the result proved the presence of his grave, Hard, strong and rough fingers in their clitoris...'
-							
+
 							$orgasm_or = 'no'
 							gs 'arousal', 'vaginal_finger', 5, 'sub'
 							gs 'stat'
-							
+
                             act 'Continue':
                                 *clr & cla
                                 gs'stat'
@@ -408,20 +424,20 @@ $pavser9 = {
                                 '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/07.jpg" ></center>'
                                 'Your consciousness fades in and out in the wild passionate dance...'
                                 'He thrusts in you wildly, roughly, furiously. You feel like you are being skewered by the force and depth of his cock...'
-								
+
 								gs 'arousal', 'vaginal', 10, 'sub'
 								gs 'stat'
-								
+
                                 act 'Continue':
                                     *clr & cla
 			                        pcs_mana = manamax
                                     gs'stat'
                                     '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/08.jpg" ></center>'
                                     '...'
-									
+
 									$orgasm_or = 'yes'
 									gs 'stat'
-									
+
                                     act 'Continue':
                                         *clr & cla
                                         gs'stat'
@@ -429,10 +445,10 @@ $pavser9 = {
                                         'Another enlightened it, when he put you back on the chair and raise your legs voshol in you and you feel a sharp pain in the uterus of a member of the strike...'
                                         'Oh my pain...'
                                         'But the sharp pain was replaced, as sharp blast of bliss and a new wave washed over you...'
-										
+
 										gs 'arousal', 'anal', 10, 'sub'
 										gs 'stat'
-										
+
                                         act 'Continue':
                                             *clr & cla
                                             orgasm += 1
@@ -440,10 +456,10 @@ $pavser9 = {
 											pcs_mood = 100
                                             gs'stat'
                                             '<center><img <<$set_imgh>> src="images/locations/pushkin/vacanthouse/sex/10.jpg" ></center>'
-											
+
 											$orgasm_or = 'yes'
 											gs 'stat'
-									
+
                                             act 'Continue':
                                                 *clr & cla
                                                 gs'stat'
@@ -451,22 +467,23 @@ $pavser9 = {
                                                 'Woke. The next wave rolled back and you feel at home on his stomach warm, with a strange smell, though vaguely familiar, sperm.'
                                                 'You fell exhausted on the floor and you have some piece while lying close to each other. You''re lying and embracing in the eerie silence only hear your breathing.'
                                                 'He was silent and you are grateful to him for that'
-												
+
                                                 act 'Rollback':dynamic $pavser10
-                                            end    
-                                        end        
-                                    end        
-                                end        
-                            end    
-                        end        
-                    end            
-                end                
-            end                    
-        end                
-    end           
-}
-
-$pavser10 = {
+                                            end
+                                        end
+                                    end
+                                end
+                            end
+                        end
+                    end
+                end
+            end
+        end
+    end
+end
+
+$pavser10 = "gs 'din_pav', 'pavser10'"
+if $ARGS[0] = 'pavser10':
 	*clr & cla
 	menu_off = 1
     psi1day = 1
@@ -482,10 +499,10 @@ $pavser10 = {
 		if $clothingworntype = 'nude':gs 'clothing', 'wear_last_worn'
 		gs 'underwear', 'wear'
 		gt 'koncepod1', 'str2x'
-		
+
 		gs 'arousal', 'end'
 		gs 'stat'
 	end
-}
+end
 --- din_pav ---------------------------------
 

+ 106 - 68
locations/din_van.qsrc

@@ -1,5 +1,10 @@
 # din_van
 !2021/04/26
+
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'din_van', 'xxx'" instead of "dynamic $xxx").
+
 !!pcs_leghair = leg hair 0 - 3 for smooth <= 6 for stubble <= 9 for light after that hairy
 !!pcs_pubes = pubes 0 - 3 for smooth <= 10 for stubble <= 20 for light hair after that its hairy
 !!pubestyle = the style in which you have determined to shave your pubic hair
@@ -12,7 +17,24 @@ razors_to_use['all']   = min(3, max(1, (pcs_leghair*4 + max(0, pcs_pubes-shave_l
 razors_to_use['pussy'] = min(2, max(1, (max(0, pcs_pubes-shave_length))/20))
 razors_to_use['legs']  = min(3, max(1, (pcs_leghair*4)/20))
 
-$showerdin = {
+$showerdin = "gs 'din_van', 'showerdin'"
+$bteeth = "gs 'din_van', 'bteeth'"
+$dryOff = "gs 'din_van', 'dryOff'"
+$shower = "gs 'din_van', 'shower'"
+$bath = "gs 'din_van', 'bath'"
+$SkinCare = "gs 'din_van', 'SkinCare'"
+$brit = "gs 'din_van', 'brit'"
+$tampon = "gs 'din_van', 'tampon'"
+$quickwash = "gs 'din_van', 'quickwash'"
+$wearpan = "gs 'din_van', 'wearpan'"
+$removepan = "gs 'din_van', 'removepan'"
+$publicpan = "gs 'din_van', 'publicpan'"
+$basin = "gs 'din_van', 'basin'"
+$pirManage = "gs 'din_van', 'pirManage'"
+$enema = "gs 'din_van', 'enema'"
+$toymanage = "gs 'din_van', 'toymanage'"
+$palelady = "gs 'din_van', 'palelady'"
+if $ARGS[0] = 'showerdin':
 	menu_off = 1
 	if hypnoAddict = 0:
 		cumspclnt = 1
@@ -44,9 +66,10 @@ $showerdin = {
 			gs 'AppearanceSystem', 'UpdateBaseAppearance'
 		end
 	end
-}
+end
 
-$bteeth = {
+
+if $ARGS[0] = 'bteeth':
 	if pcs_breath ! 1 or cumloc[12] = 1:
 		act 'Brush your teeth (0:03)':
 			menu_off = 1
@@ -67,20 +90,22 @@ $bteeth = {
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-}
+end
 
-$dryOff = {
+
+if $ARGS[0] = 'dryOff':
 	act 'Get out and dry off': mirror_steam = hour & gt $loc, $loc_arg
-}
+end
 
-$shower = {
+
+if $ARGS[0] = 'shower':
 	act 'Take a shower (0:15)':
 		menu_off = 1
 		*clr & cla
 		minut += 15
 		if $loc = 'vanrPar' or $loc = 'tanvanr' or $loc = 'albinahome' or $loc = 'LariskaHome' or hotelmc_inventory['shampoo'] =  1: noshampoo = 1
 		noshampoo_tmp = noshampoo
-		dynamic $showerdin
+		gs 'din_van', 'showerdin'
 
 		'<center><video autoplay loop src="images/shared/home/bathroom/dush.mp4"></center>'
 		*nl
@@ -142,7 +167,7 @@ $shower = {
 			lactation['pc_aware'] = 1
 		end
 
-		dynamic $dryOff
+		gs 'din_van', 'dryOff'
 		if rapeday = daystart and rape_shower ! daystart:
 			act'Cry (react to rape)':
 				cla & *clr
@@ -158,7 +183,7 @@ $shower = {
 				'You grab the soap again and scrub yourself again, but it still feels like something is there, coating your skin. You scrub and scrub and scrub but it just won''t go away until you finally cry out, throwing it into the corner. Tremors begin coursing through your body and you slowly sink down onto the shower floor, where you remain, sobbing while the water continues raining down on you.'
 
 
-				dynamic $dryOff
+				gs 'din_van', 'dryOff'
 			end
 		elseif pcs_horny >= 40:
 			act 'Use the showerhead on your pussy':
@@ -186,7 +211,7 @@ $shower = {
 					gs 'cum_cleanup'
 				end
 
-				dynamic $dryOff
+				gs 'din_van', 'dryOff'
 			end
 		end
 
@@ -197,7 +222,7 @@ $shower = {
 		act 'Take a selfie':
 			gs 'telefon', 'Phone_selfie_image_bathing', 'shower'
 		end
-		dynamic $brit
+		gs 'din_van', 'brit'
 
 		if vanr_lock = 0 and $loc = 'vanrPar':
 			*nl
@@ -207,9 +232,10 @@ $shower = {
 		end
 	end
 	killvar 'noshampoo_tmp'
-}
+end
 
-$bath = {
+
+if $ARGS[0] = 'bath':
 	act 'Soak in the bath (0:30)':
 		menu_off = 1
 		*clr & cla
@@ -219,7 +245,7 @@ $bath = {
 		pcs_mood += 20
 		if $loc = 'vanrPar' or $loc = 'tanvanr' or $loc = 'LariskaHome' or hotelmc_inventory['shampoo'] =  1: noshampoo = 1
 		noshampoo_tmp = noshampoo
-		dynamic $showerdin
+		gs 'din_van', 'showerdin'
 
 		gs 'body', 'SkinGain', 'Bath'
 
@@ -262,7 +288,7 @@ $bath = {
 			act 'Examine yourself closer while drying off and getting dressed...': gt 'din_van', 'buffpick'
 		end
 
-		dynamic $dryOff
+		gs 'din_van', 'dryOff'
 
 		act '"Wash" your pussy':
 			menu_off = 1
@@ -283,7 +309,7 @@ $bath = {
 			$orgasm_or = 'yes'
 			gs 'arousal', 'clit_vibe', 10, 'masturbate'
 			gs 'arousal', 'end'
-			dynamic $dryOff
+			gs 'din_van', 'dryOff'
 		end
 
 
@@ -293,12 +319,13 @@ $bath = {
 			gs 'telefon', 'Phone_selfie_image_bathing', 'bath'
 		end
 
-		dynamic $brit
+		gs 'din_van', 'brit'
 	end
 	killvar 'noshampoo_tmp'
-}
+end
+
 
-$SkinCare = {
+if $ARGS[0] = 'SkinCare':
 	if mc_inventory['moisturiser']  > 0 and moisturiser_time <= totminut:
 		act 'Apply Moisturizer (0:05)':
 			mc_inventory['moisturiser'] -= 1
@@ -316,9 +343,10 @@ $SkinCare = {
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-}
+end
+
 
-$brit = {
+if $ARGS[0] = 'brit':
 	if lashair ! 1 and pcs_shave['free_razor'] + mc_inventory['razor'] > 0:
 		!! if shave_menu = 1: legs and pussy
 		if shave_menu = 1 and mc_inventory['razor'] >= razors_to_use['all']:
@@ -404,7 +432,7 @@ $brit = {
 							else
 								mc_inventory['razor'] -= razors_to_use['all']
 							end
-							dynamic $dryOff
+							gs 'din_van', 'dryOff'
 							gs 'selfplay', 'bathtub_dildo_check'
 							gs 'selfplay', 'shower_dildo_check'
 						end
@@ -486,7 +514,7 @@ $brit = {
 						'<<$shave_txt1>>'
 						*nl
 						'<<$shave_txt2>>'
-						dynamic $dryOff
+						gs 'din_van', 'dryOff'
 						gs 'selfplay', 'bathtub_dildo_check'
 						gs 'selfplay', 'shower_dildo_check'
 					end
@@ -522,16 +550,17 @@ $brit = {
 					else
 						'You lather your legs up with some soapy water and shave your legs. After a few swift movements, your legs are smooth as silk. The feeling of your smooth legs turns you on a little.'
 					end
-					dynamic $dryOff
+					gs 'din_van', 'dryOff'
 					gs 'selfplay', 'bathtub_dildo_check'
 					gs 'selfplay', 'shower_dildo_check'
 				end
 			end
 		end
 	end
-}
+end
+
 
-$tampon =  {
+if $ARGS[0] = 'tampon':
 	if mc_inventory['sanitary_pads'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and isprok = 0 and isprokp = 0 and knowpreg = 0 and $pantyworntype ! 'none':
 		act 'Use a sanitary pad (0:02)':
 			menu_off = 1
@@ -560,9 +589,10 @@ $tampon =  {
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-}
+end
+
 
-$quickwash = {
+if $ARGS[0] = 'quickwash':
 	if cumsumbod-cumsumvag-cumsumass > 0:
 		act 'Quick wash (0:15)':
 			menu_off = 1
@@ -600,9 +630,10 @@ $quickwash = {
 		end
 	end
 	gs 'din_van', 'pblc_pee'
-}
+end
+
 
-$wearpan = {
+if $ARGS[0] = 'wearpan':
 	if $pantyworntype = 'none':
 		act 'Wear panties (0:02)':
 			minut += 2
@@ -618,9 +649,10 @@ $wearpan = {
 			gt 'bras', 'view_bra_list', 'bathroom'
 		end
 	end
-}
+end
 
-$removepan = {
+
+if $ARGS[0] = 'removepan':
 	if $pantyworntype ! 'none' and $braworntype ! 'none':
 		act 'Remove underwear (0:02)':
 			minut += 2
@@ -647,11 +679,12 @@ $removepan = {
 			gt $loc, $loc_arg
 		end
 	end
-}
+end
 
 !! Meant for non-home bathrooms. If you have a bag stashes the underwear in there and enables putting it back on later.
 !! purse_____ variables get wiped in ''wardrobe'', ''clothing'', ''panties'' and ''bra'' so there isn''t a chance of duplication
-$publicpan = {
+
+if $ARGS[0] = 'publicpan':
 	if $pantyworntype ! 'none' and $braworntype ! 'none':
 		act 'Remove underwear'+iif(bag = 1, ' and put it in your purse ',' ') + '(0:02)':
 			minut += 2
@@ -720,7 +753,7 @@ $publicpan = {
 	end
 
 	!! Changing into a different outfit for prostitution
-	if prostitute['active'] = 1 and ARGS[1] ! 'no_prost' and $loc ! 'gschool_break':
+	if prostitute['active'] = 1 and $ARGS[1] ! 'no_prost' and $loc ! 'gschool_break':
 		gs 'prostitution_functions', 'work_clothes'
 		if  prostitute['work_clothes'] = 0 and prostitute['outfit_is_set']:
 			act 'Change into prostitute outfit': gt 'prostitution_functions', 'change_to_work', 'restroom'
@@ -728,9 +761,10 @@ $publicpan = {
 			act 'Change into your regular clothes': gt 'prostitution_functions', 'change_back', 'restroom'
 		end
 	end
-}
+end
 
-$basin = {
+
+if $ARGS[0] = 'basin':
 	if cumloc[12] = 1:
 		act 'Rinse your mouth (0:05)':
 			menu_off = 1
@@ -929,13 +963,15 @@ $basin = {
 			act 'Continue': menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-}
+end
 
-$pirManage = {
+
+if $ARGS[0] = 'pirManage':
 	gt 'piercing_management', 'main'
-}
+end
 
-$enema = {
+
+if $ARGS[0] = 'enema':
 	if mc_inventory['enema_kit'] = 1 and (klismaday ! daystart or arrpos('sparrloc', 3) > 0):
 		act 'Give yourself an enema (0:05)':
 			menu_off = 1
@@ -970,9 +1006,10 @@ $enema = {
 			end
 		end
 	end
-}
+end
 
-$toymanage = {
+
+if $ARGS[0] = 'toymanage':
 	if mc_inventory['buttplug'] = 1 and analplugin = 1:
 		act 'Remove your butt plug (0:05)':
 			menu_off = 1
@@ -1043,9 +1080,10 @@ $toymanage = {
 			act 'Finish':gt $loc, $loc_arg
 		end
 	end
-}
+end
 
-$palelady = {
+
+if $ARGS[0] = 'palelady':
 	if mc_inventory['cocaine'] > 0:'You have enough cocaine for <<mc_inventory[''cocaine'']>> ' + iif(mc_inventory['cocaine'] = 1, ' line.', ' lines.')
 
 	if mc_inventory['cocaine'] > 0 and drugVars['cocaine_day'] ! daystart:
@@ -1065,7 +1103,7 @@ $palelady = {
 			act 'Continue': menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-}
+end
 
 if $ARGS[0] = 'private':
 	menu_off = 0
@@ -1108,29 +1146,29 @@ if $ARGS[0] = 'private':
 
 
 	if $ARGS[1] = 'hotelroom':
-		dynamic $shower
-		if $ARGS[2] = 'bath': dynamic $bath
+		gs 'din_van', 'shower'
+		if $ARGS[2] = 'bath': gs 'din_van', 'bath'
 	elseif $loc = 'vanrPar':
 		'You can use your parent''s shampoo.'
-		dynamic $shower
-		dynamic $bath
+		gs 'din_van', 'shower'
+		gs 'din_van', 'bath'
 	elseif $loc = 'LariskaHome':
 		'You can use Lariska''s shampoo.'
-		dynamic $shower
-		dynamic $bath
+		gs 'din_van', 'shower'
+		gs 'din_van', 'bath'
 	elseif $loc = 'tanvanr':
 		'You can use Tanya''s shampoo.'
-		dynamic $shower
-		dynamic $bath
+		gs 'din_van', 'shower'
+		gs 'din_van', 'bath'
 	elseif mc_inventory['shampoo'] > 0:
 		'You have enough shampoo for <b><<mc_inventory[''shampoo'']>></b> uses.'
-		dynamic $shower
-		dynamic $bath
+		gs 'din_van', 'shower'
+		gs 'din_van', 'bath'
 	else
 		'<font color="red">You''ve run out of shampoo and will have to buy some more before you can wash yourself.</font>'
 	end
 
-	dynamic $SkinCare
+	gs 'din_van', 'SkinCare'
 
 	if mc_inventory['painkillers'] > 0:
 		'You have <b><<mc_inventory[''painkillers'']>></b> painkiller'+iif(mc_inventory['painkillers'] > 1, 's.', '.')
@@ -1160,7 +1198,7 @@ if $ARGS[0] = 'private':
 		'<a href="exec:gs ''drugs'', ''breastcream'' & gt $loc, $loc_arg">Apply breast cream.</a> Uses left: <<mc_inventory[''breastcream'']>>.'
 	end
 
-	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:*clr & cla & dynamic $pirManage">Manage your piercings</a>'
+	if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0:'<a href="exec:*clr & cla & gs ''din_van'', ''pirManage''">Manage your piercings</a>'
 
 	if fillimplant = 1:
 		if siliconeBag >= 1:
@@ -1171,17 +1209,17 @@ if $ARGS[0] = 'private':
 			'<a href="exec:cls & bodyVars[''bust_silicone''] -= 10 & gt $loc, $loc_arg">Drain silicone from your breast implants.</a>'
 		end
 	end
-	dynamic $bteeth
+	gs 'din_van', 'bteeth'
 
-	dynamic $tampon
+	gs 'din_van', 'tampon'
 
 	act 'Change clothes and toys':
 		cla
 
 		act 'Return':menu_off = 0 & gt $loc, $loc_arg
 
-		dynamic $wearpan
-		dynamic $removepan
+		gs 'din_van', 'wearpan'
+		gs 'din_van', 'removepan'
 
 		if $curloc = 'vanrPar' and $clothingworntype = 'nude':
 			act 'Wear clothes (0:05)':
@@ -1204,21 +1242,21 @@ if $ARGS[0] = 'private':
 				act 'Return': menu_off = 0 & gt $loc, $loc_arg
 			end
 		end
-		dynamic $toymanage
+		gs 'din_van', 'toymanage'
 	end
 
 	'<a href="exec:msg ''<center>Your weight is <<pcs_weight[0]>>.<<pcs_weight[1]>> kg<br>Your body mass index (BMI) is <<pcs_bmi[0]>>.<<pcs_bmi[1]>>.<br><<$bodyVars[''bmi_desc'']>></center>''">Check weight on the scales</a>'
 
 	gs 'din_van', 'prvt_pee'
 
-	dynamic $basin
+	gs 'din_van', 'basin'
 
-	dynamic $brit
+	gs 'din_van', 'brit'
 
-	dynamic $enema
+	gs 'din_van', 'enema'
 
 
-	dynamic $palelady
+	gs 'din_van', 'palelady'
 
 
 	if mc_inventory['chafing_cream'] > 0 and mosol > 0 and mosal_time <= totminut:

+ 34 - 20
locations/dina.qsrc

@@ -1,6 +1,11 @@
 # dina
 
-$brodila = {
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'dina', 'xxx'" instead of "dynamic $xxx").
+
+$brodila = "gs 'dina', 'brodila'"
+if $ARGS[0] = 'brodila':
 	sexpartkno = 0
 	if accessible_property['city_apartment'] > 0:
 		gt 'korr', 'start'
@@ -9,9 +14,10 @@ $brodila = {
 	else
 		gt'city_residential', 'start'
 	end
-}
+end
 
-$brodilr = {
+$brodilr = "gs 'dina', 'brodilr'"
+if $ARGS[0] = 'brodilr':
 	if mid($start_type,1,2) = 'sg' and accessible_property['parents_home'] = 4:
 		gt 'pav_residential'
 	elseif accessible_property['old_town_apartment'] = 1:
@@ -19,9 +25,10 @@ $brodilr = {
 	else
 		gt 'city_residential', 'start'
 	end
-}
+end
 
-$brodilk = {
+$brodilk = "gs 'dina', 'brodilk'"
+if $ARGS[0] = 'brodilk':
 	if accessible_property['city_apartment'] > 0:
 		gt 'kuhr', 'start'
 	elseif accessible_property['old_town_apartment']= 1:
@@ -29,9 +36,10 @@ $brodilk = {
 	else
 		gt'city_residential', 'start'
 	end
-}
+end
 
-$brodils = {
+$brodils = "gs 'dina', 'brodils'"
+if $ARGS[0] = 'brodils':
 	if accessible_property['city_apartment'] > 0:
 		gt 'sitr', 'start'
 	elseif accessible_property['old_town_apartment'] = 1:
@@ -41,7 +49,7 @@ $brodils = {
 	else
 		gt'city_residential', 'start'
 	end
-}
+end
 
 !!This sets the default descriptors and folder names for each default image set
 $bodimgsets[0] = 'starving'
@@ -106,15 +114,18 @@ $week[5] = 'Friday'
 $week[6] = 'Saturday'
 $week[7] = 'Sunday'
 
-$dogpot = {
+$dogpot = "gs 'dina', 'dogpot'"
+if $ARGS[0] = 'dogpot':
 	gs 'boyStat', 'A191'
-}
+end
 
-$rexpot = {
+$rexpot = "gs 'dina', 'rexpot'"
+if $ARGS[0] = 'rexpot':
 	gs 'boyStat', 'A166'
-}
+end
 
-$hypnoDaychange = {
+$hypnoDaychange = "gs 'dina', 'hypnoDaychange'"
+if $ARGS[0] = 'hypnoDaychange':
 	!!if for some reason hypnoTime is too high
 	if hypnoTime > 15:hypnoTime = 15
 	timeTresh = 76 - 4*hypnoTime
@@ -146,9 +157,10 @@ $hypnoDaychange = {
 			end
 		end
 	end
-}
+end
 
-$hypnoAddiction = {
+$hypnoAddiction = "gs 'dina', 'hypnoAddiction'"
+if $ARGS[0] = 'hypnoAddiction':
 	if cumloc[0] = 1 or cumloc[3] = 1:
 		killvar 'missCum'
 		if hypnoAddict = 1:
@@ -181,11 +193,12 @@ $hypnoAddiction = {
 			end
 		end
 	end
-}
+end
 
 !!---------------
 
-$prezik = {
+$prezik = "gs 'dina', 'prezik'"
+if $ARGS[0] = 'prezik':
 	if mc_inventory['equipped_condoms'] > 0:
 		if mc_inventory['bad_condoms'] > 0:
 			if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: mc_inventory['bad_condoms'] -= 1 & noprotect = 1
@@ -196,9 +209,10 @@ $prezik = {
 	elseif mc_inventory['equipped_condoms'] < 0:
 		mc_inventory['equipped_condoms'] = 0
 	end
-}
+end
 
-$ferteggfather = {
+$ferteggfather = "gs 'dina', 'ferteggfather'"
+if $ARGS[0] = 'ferteggfather':
 	if fertegg > 0:
 		if thinkpreg = 0 and knowpreg = 0 and sparrppt[sparrtemp] > 0:
 			if cumarrkno[cumarrtemp] = 1:
@@ -215,7 +229,7 @@ $ferteggfather = {
 			end
 		end
 	end
-}
+end
 
 --- dina ---------------------------------
 

+ 28 - 16
locations/dinmother.qsrc

@@ -1,6 +1,11 @@
 # dinmother
 
-$d_mother[1]={
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'dinmother', 'xxx'" instead of "dynamic $xxx").
+
+$d_mother[1] = "gs 'dinmother', 'd_mother[1]'"
+if $ARGS[0] = 'd_mother[1]':
 	!scandal with my mother
 	'You try having a talk with your mother, but she dislikes you way too much to even pretend to be interested in what you have to say. After a while, you give up and leave her alone. Maybe she''ll be in a better mood later.'
 	if mothersorryday!daystart:
@@ -14,8 +19,9 @@ $d_mother[1]={
 			act 'Move away from her':gt $loc, $loc_arg
 		end
 	end
-}
-$d_mother[2]={
+end
+$d_mother[2] = "gs 'dinmother', 'd_mother[2]'"
+if $ARGS[0] = 'd_mother[2]':
 	!strained relations
 	'You try to have a talk with your mother, but her answers are really short and she sounds kind of annoyed. After a few minutes she cuts the conversation short, saying she has other things to do now.'
 	if mothersorryday!daystart:
@@ -29,8 +35,9 @@ $d_mother[2]={
 			act 'Move away from her':gt $loc, $loc_arg
 		end
 	end
-}
-$d_mother[3]={
+end
+$d_mother[3] = "gs 'dinmother', 'd_mother[3]'"
+if $ARGS[0] = 'd_mother[3]':
 	!good relationship
 	motherTalk = rand (1,10)
 	if motherTalk = 1:
@@ -65,31 +72,36 @@ $d_mother[3]={
 	if motherTalk = 10:
 		'You have a chat with your <<$npc_nickname[''A29'']>>, and she tells you she had to go to the tailor at the garment factory to get some clothes adjusted after she had went up a few sizes. She proudly added that she had to go back and have them readjusted again when she lost the weight a few months later.'
 	end
-}
-$d_mother[4] = {
+end
+$d_mother[4] = "gs 'dinmother', 'd_mother[4]'"
+if $ARGS[0] = 'd_mother[4]':
 	*clr
 	$result = '<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/posuda'+rand(1,3)+'.jpg"></center><br>Your <a href="exec:gt ''mother''"><<$npc_nickname[''A29'']>></a> stands near the sink, washing dishes.'
-}
+end
 
-$d_mother[5] = {
+$d_mother[5] = "gs 'dinmother', 'd_mother[5]'"
+if $ARGS[0] = 'd_mother[5]':
 	*clr
 	$result = '<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/gotovka.jpg"></center><br>Your <a href="exec:gt ''mother''"><<$npc_nickname[''A29'']>></a> is preparing meals.'
-}
+end
 
-$d_mother[6] = {
+$d_mother[6] = "gs 'dinmother', 'd_mother[6]'"
+if $ARGS[0] = 'd_mother[6]':
 	*clr
 	$result = '<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/tea.jpg"></center><br>Your <a href="exec:gt ''mother''"><<$npc_nickname[''A29'']>></a> is drinking tea.'
-}
+end
 
-$d_mother[7] = {
+$d_mother[7] = "gs 'dinmother', 'd_mother[7]'"
+if $ARGS[0] = 'd_mother[7]':
 	*clr
 	$result = '<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/prost'+rand(1,11)+'.jpg"></center><br>Your <a href="exec:gt ''mother''"><<$npc_nickname[''A29'']>></a> is busy in the kitchen and unaware of your presence.'
-}
+end
 
-$d_mother[8] = {
+$d_mother[8] = "gs 'dinmother', 'd_mother[8]'"
+if $ARGS[0] = 'd_mother[8]':
 	*clr
 	$result = '<center><img <<$set_imgh>> src="images/characters/pavlovsk/resident/mom/uborka'+rand(1,3)+'.jpg"></center><br>Your <a href="exec:gt ''mother''"><<$npc_nickname[''A29'']>></a> is cleaning with a broom in her hand.'
-}
+end
 
 --- dinmother ---------------------------------
 

+ 27 - 21
locations/dinnpc.qsrc

@@ -1,7 +1,12 @@
 # dinnpc
 !2021/05/02
 
-$din_predlog_dima_bj = {
+!! Dynamic code has been translated to static code for performance and savegame size reasons.
+!! The dynamic variables still exist for compatibility reasons.
+!! Whenever possible, don''t use dynamic code (use "gs 'dinnpc', 'xxx'" instead of "dynamic $xxx").
+
+$din_predlog_dima_bj = "gs 'dinnpc', 'din_predlog_dima_bj'"
+if $ARGS[0] = 'din_predlog_dima_bj':
 	menu_off = 1
 	act 'Get down on your knees':
 		*clr & cla
@@ -24,7 +29,7 @@ $din_predlog_dima_bj = {
 
 			gs 'arousal', 'bj', 5, 'sub', 'rough'
 			gs 'stat'
-			
+
 			act 'Deepthroat him':
 				*clr & cla
 				pcs_throat += 2
@@ -37,17 +42,17 @@ $din_predlog_dima_bj = {
 				pcs_horny = 0
 				gs 'stat'
 				'<center><img <<$set_imgh>> src="images/shared/sex/blowjob/cocksucker3.jpg"></center>'
-				'Dimka firmly grabbed you by your hair and bucks his hips against you, causing his hard cock to go into your throat. Unprepared for his rough treatment, you choke and tears well up in your eyes but Dimka holds his member there for a few more seconds before he pulls back his member.' 
-				'Your throat finally clear, you cough and have to fight down a bout of nausea. He gives you short breather but that doesn''t last long and as soon as you stop coughing, he puts his hard cock back in your mouth, now with even less regard for you, if that''s even possible.' 
-				'He starts to literally fuck your mouth as hard as if it was a pussy and his cock goes deeper into your throat with every stroke. Snot flows from your nose, strands of saliva hang from your chin, tears keep streaming down your face - in short: You are a mess, and these various liquids drip and drip onto your clothes. Dimka does not let up, though, and fucks your mouth full force, treating you like his own personal sex toy. Your nose keeps hitting his crotch over and over, but then, when you hit it again, Dimka holds your face there, pressing it to his groin.' 
-				'You struggle to relax your throat which, after minutes of harsh treatment, feels like it''s on fire, but the lack of air doesn''t make it any easier.' 
+				'Dimka firmly grabbed you by your hair and bucks his hips against you, causing his hard cock to go into your throat. Unprepared for his rough treatment, you choke and tears well up in your eyes but Dimka holds his member there for a few more seconds before he pulls back his member.'
+				'Your throat finally clear, you cough and have to fight down a bout of nausea. He gives you short breather but that doesn''t last long and as soon as you stop coughing, he puts his hard cock back in your mouth, now with even less regard for you, if that''s even possible.'
+				'He starts to literally fuck your mouth as hard as if it was a pussy and his cock goes deeper into your throat with every stroke. Snot flows from your nose, strands of saliva hang from your chin, tears keep streaming down your face - in short: You are a mess, and these various liquids drip and drip onto your clothes. Dimka does not let up, though, and fucks your mouth full force, treating you like his own personal sex toy. Your nose keeps hitting his crotch over and over, but then, when you hit it again, Dimka holds your face there, pressing it to his groin.'
+				'You struggle to relax your throat which, after minutes of harsh treatment, feels like it''s on fire, but the lack of air doesn''t make it any easier.'
 				''
-				'"What do pigs like you like?", Dimka asks, tightening his grip on your hair. "Do you like getting fucked rough like that? You are my pig now - You''ll grunt and scream on my cock and take everything I have for you."' 
+				'"What do pigs like you like?", Dimka asks, tightening his grip on your hair. "Do you like getting fucked rough like that? You are my pig now - You''ll grunt and scream on my cock and take everything I have for you."'
 				'Without warning, he pulls his dick out of your mouth and furiously strokes it in front of your face.'
 
 				gs 'arousal', 'bj', 5, 'sub', 'rough', 'deepthroat'
 				gs 'stat'
-			
+
 				act 'Catch your breath':
 					*clr & cla
 					minut += 5
@@ -58,20 +63,21 @@ $din_predlog_dima_bj = {
 					dimasexday = daystart
 					gs 'stat'
 					'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/dimka/sex/cocksucker4.jpg"></center>'
-					'You fall back onto your haunches, panting, your face completely covered in snot, tears and drool, all but oblivious to what Dimka is doing until a jet of sperm erupts from his cock and hits your face, then another, and another. Your whole face is covered with a layer of mucus, a bizarre mix of four body fluids, and yet all you care about is catching your breath before Dimka has any other ideas. You seem to be in luck, though, because after he wipes his cock on your hair, he tucks it back into his pants.' 
+					'You fall back onto your haunches, panting, your face completely covered in snot, tears and drool, all but oblivious to what Dimka is doing until a jet of sperm erupts from his cock and hits your face, then another, and another. Your whole face is covered with a layer of mucus, a bizarre mix of four body fluids, and yet all you care about is catching your breath before Dimka has any other ideas. You seem to be in luck, though, because after he wipes his cock on your hair, he tucks it back into his pants.'
 					'"That wasn''t half bad - with a bit of guidance, you can suck some good dick. We have to do that again sometime." He gives you a strange, cold smile as he turns away. "Well, see you around." You watch as he walks back to the disco, leaving you in your pitiful state.'
 
 					gs 'arousal', 'end'
 					gs 'stat'
-					
+
 					act 'Leave as well':gt 'pav_commcenter'
 				end
 			end
 		end
 	end
-}
+end
 
-$din_dima_predlog = {
+$din_dima_predlog = "gs 'dinnpc', 'din_dima_predlog'"
+if $ARGS[0] = 'din_dima_predlog':
 	menu_off = 1
 	gs 'willpower', 'bj', 'self', 'medium'
 	if will_cost <= pcs_willpwr:
@@ -82,20 +88,20 @@ $din_dima_predlog = {
 			gs 'stat'
 			'<center><b><font color="maroon"><<$npc_firstname[''A1'']>> <<$npc_lastname[''A1'']>></font></b></center>'
 			'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big1.jpg"></center>'
-			'You give Dimka a good, hard, resounding slap that causes him to yelp like a girl as he clutched his red cheek. His immediate reaction only adds to your satisfaction, but the look he gives you is one of pure hatred - one that makes you wonder if he''s going to hit you back now.' 
-			'But instead, he backs away from you, looking like an animal trapped in a corner. His voice is more of an angry hiss:' 
+			'You give Dimka a good, hard, resounding slap that causes him to yelp like a girl as he clutched his red cheek. His immediate reaction only adds to your satisfaction, but the look he gives you is one of pure hatred - one that makes you wonder if he''s going to hit you back now.'
+			'But instead, he backs away from you, looking like an animal trapped in a corner. His voice is more of an angry hiss:'
 			'"You''ll pay for this, sooner or later. Don''t ever come near me again, bitch! Get the hell away from me!"'
 			act 'He doesn''t have to tell you twice - Leave at once':gt $loc, $loc_arg
 		end
 	else
 		act 'Who does he think you are?! - Slap him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-	end	
+	end
 	act '... is he serious? Think about what he said for a moment':
 		*clr & cla
 		gs 'stat'
 		'<center><b><font color="maroon"><<$npc_firstname[''A1'']>> <<$npc_lastname[''A1'']>></font></b></center>'
 		'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big1.jpg"></center>'
-		'Your eyes widen and you flush at his proposal - surely, he didn''t actually mean that you had to give him a blowjob right here, just so you could go out with him... right?' 
+		'Your eyes widen and you flush at his proposal - surely, he didn''t actually mean that you had to give him a blowjob right here, just so you could go out with him... right?'
 		'As if to answer your question, Dimka unbuttons his pants. "Come on, are you gonna keep me waiting all night long? Which is it? Are you brave and fun? Or just another prude?"'
 		gs 'willpower', 'bj', 'self', 'medium'
 		if will_cost <= pcs_willpwr:
@@ -106,20 +112,20 @@ $din_dima_predlog = {
 				gs 'stat'
 				'<center><b><font color="maroon"><<$npc_firstname[''A1'']>> <<$npc_lastname[''A1'']>></font></b></center>'
 				'<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big1.jpg"></center>'
-				'You give Dimka a good, hard, resounding slap that causes him to yelp like a girl as he clutched his red cheek. His immediate reaction only adds to your satisfaction, but the look he gives you is one of pure hatred - one that makes you wonder if he''s going to hit you back now.' 
-				'But instead, he backs away from you, looking like an animal trapped in a corner. His voice is more of an angry hiss:' 
+				'You give Dimka a good, hard, resounding slap that causes him to yelp like a girl as he clutched his red cheek. His immediate reaction only adds to your satisfaction, but the look he gives you is one of pure hatred - one that makes you wonder if he''s going to hit you back now.'
+				'But instead, he backs away from you, looking like an animal trapped in a corner. His voice is more of an angry hiss:'
 				'"You''ll pay for this, sooner or later. Don''t ever come near me again, bitch! Get the hell away from me!"'
 				act 'He doesn''t have to tell you twice - Leave at once':gt $loc, $loc_arg
 			end
 		else
 			act 'That does it! - Slap him (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-		end	
+		end
 		act '"And you promise not to tell anyone?"':
 			*clr & cla
 			gs 'stat'
 			'<center><b><font color="maroon"><<$npc_firstname[''A1'']>> <<$npc_lastname[''A1'']>></font></b></center>'
             '<center><img <<$set_imgh>> src="images/characters/shared/headshots_main/big1.jpg"></center>'
-			'You ask Dimka. You''re really not sure if you want to do this but you also don''t want him to think that you are a prude. You are fun... right? And as long as nobody finds out, as long as only he knows...' 
+			'You ask Dimka. You''re really not sure if you want to do this but you also don''t want him to think that you are a prude. You are fun... right? And as long as nobody finds out, as long as only he knows...'
 			''
 			'Dimka gives you a gentle smile and reassuringly touches your cheek. "No, of course I wouldn''t tell anybody. You''ll be my girlfriend - why would I tell somebody about what we are doing when we''re together?"'
 			dynamic $din_predlog_dima_bj
@@ -129,7 +135,7 @@ $din_dima_predlog = {
 	end
 
 	dynamic $din_predlog_dima_bj
-}
+end
 
 --- dinnpc ---------------------------------
 

+ 9 - 9
locations/hourly_events.qsrc

@@ -56,25 +56,25 @@ else
 
 	if pcs_sleep <= 0 and succublvl = 0:
 		pcs_condition['lack_of_sleep'] += 2
-		if pcs_mood['slpredcheck'] = 1: pcs_mood -= 5
-		pcs_mood['slpredcheck'] = 1
+		if pcs_mood_effects['slpredcheck'] = 1: pcs_mood -= 5
+		pcs_mood_effects['slpredcheck'] = 1
 	else
-		pcs_mood['slpredcheck'] = 0
+		pcs_mood_effects['slpredcheck'] = 0
 	end
 
 
 	if pcs_energy <= 0:
-		if pcs_mood['nrgredcheck'] = 1: pcs_mood -= 5
-		pcs_mood['nrgredcheck'] = 1
+		if pcs_mood_effects['nrgredcheck'] = 1: pcs_mood -= 5
+		pcs_mood_effects['nrgredcheck'] = 1
 	else
-		pcs_mood['nrgredcheck'] = 0
+		pcs_mood_effects['nrgredcheck'] = 0
 	end
 
 	if pcs_hydra <= 0:
-		if pcs_mood['hydredcheck'] = 1: pcs_mood -= 5
-		pcs_mood['hydredcheck'] = 1
+		if pcs_mood_effects['hydredcheck'] = 1: pcs_mood -= 5
+		pcs_mood_effects['hydredcheck'] = 1
 	else
-		pcs_mood['hydredcheck'] = 0
+		pcs_mood_effects['hydredcheck'] = 0
 	end
 
 

+ 2 - 2
locations/initg.qsrc

@@ -20,7 +20,7 @@ if $ARGS[0] = '':
 	dynamic $t
 	killvar '$t'
 	gs 'stat'
-	dynamic $cheatmenu['setting']
+	gs 'Cheatmenu_din', 'setting'
 end
 
 if $ARGS[0] = 'get_game_set':
@@ -76,7 +76,7 @@ if $ARGS[0] = 'get_game_set':
 		'set_statimgh = <<set_statimgh>>'
 		'set_statimgw = <<set_statimgw>>'
 
-		act 'Finish': dynamic $cheatmenu['setting']
+		act 'Finish': gs 'Cheatmenu_din', 'setting'
 	end
 end
 

+ 9 - 0
locations/saveupdater.qsrc

@@ -3565,6 +3565,15 @@ if temp_current_save_version < 00090303:
 	if $ivanko_water		! '':		$ivanko['water_txt']		= $ivanko_water			& killvar '$ivanko_water'
 	if $ivanko_sanw			! '':		$ivanko['sandwich_txt']		= $ivanko_sanw			& killvar '$ivanko_sanw'
 
+	!! Less dynamic code in dynamic code-files.
+	gs 'din_bad'
+	gs 'din_pav'
+	gs 'din_van'
+	gs 'dina'
+	gs 'dinmother'
+	gs 'dinnpc'
+	gs 'Cheatmenu_din'
+
 
 end
 

+ 1 - 1
qsrc2tw/README.md

@@ -8,4 +8,4 @@ Navigate to `.\tools\QSRC2TW` and run `npm i` there. Do this in the current fold
 
 If you change the grammar of the parser, you have to recompile it. If you change the lexer, you have to recompile the lexer and then the parser. The commands to do so are present in the respective files.
 
-You also need to recompile `QSPPARSER.js` by running `rpm run build` and update the version in `recources`.
+You also need to recompile `QSPPARSER.js` by running `npm run build` and update the version in `recources`.

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
qsrc2tw/tools/QSRC2TW/dist/QSPPARSER.js


+ 49 - 5
qsrc2tw/tools/QSRC2TW/index.js

@@ -22,6 +22,7 @@ program
   .option('-fs, --multiple-files-from-file <path>','only converts the files specified in the input file')
   .option('-outff, --failed-files-output-path <path>','path of the failed files file')
   .option('-sff, --skip-failedfiles-file','skips creation of the failed files file')
+  .option('-ve, --verbose-errors','prints out complete error messages where possible')
   ;
 
 program.parse(process.argv);
@@ -63,6 +64,37 @@ function baseFileName(fullpath){
 }
 
 
+let consoleActive = true;
+consoleOverwrite();
+function consoleOverwrite(){
+    //https://stackoverflow.com/a/30197438/7200161
+    // define a new console
+    var consoleOverwrite=(function(oldCons){
+        return {
+            log: function(text){
+                if(consoleActive)
+                    oldCons.log(text);
+            },
+            info: function (text) {
+                if(consoleActive)
+                    oldCons.info(text);
+            },
+            warn: function (text) {
+                if(consoleActive)
+                    oldCons.warn(text);
+            },
+            error: function (text) {
+                if(consoleActive)
+                    oldCons.error(text);
+            }
+        };
+    }(console));
+
+    //Then redefine the old console
+    console = consoleOverwrite;
+}
+
+
 async function convertFile(filePath){
     return new Promise((resolve, reject) => {
         fs.readFile(filePath, 'utf8', (err, data) => {
@@ -103,10 +135,20 @@ async function convertFile(filePath){
 
 
             try{
-                const twineCode = qsrc2tw(data, true)
-                                    .split('\n')
-                                    .toSpliced(1,0,`<!--qsrc2twResult={"version":${VERSION},"code":"${codeHash}","time":"${(new Date().toISOString())}"}-->`)
-                                    .join('\n');
+                let twineCode = "";
+                consoleActive = options.verboseErrors;
+                try{
+                    twineCode = qsrc2tw(data, true)
+                                        .split('\n')
+                                        .toSpliced(1,0,`<!--qsrc2twResult={"version":${VERSION},"code":"${codeHash}","time":"${(new Date().toISOString())}"}-->`)
+                                        .join('\n');
+                }
+                catch(e){
+                    throw e;
+                }
+                finally{
+                    consoleActive = true;
+                }
 
                 fs.writeFile(outFilePath, twineCode, err => {
                     if (err) {
@@ -153,7 +195,9 @@ if(!options.skipFailedfilesFile){
     });
 }
 
-fs.cpSync("./resources", path.join(outPath,resourcesFilesPrefix), {recursive: true});
+const resourcesPath = path.join(outPath,resourcesFilesPrefix);
+fs.rmSync(resourcesPath, { recursive: true, force: true });
+fs.cpSync("./resources", resourcesPath, {recursive: true});
 
 
 const executionTime =  (new Date()).getTime() - startTime;

+ 5 - 3
qsrc2tw/tools/QSRC2TW/resources/Interface/DebugTools.tw

@@ -10,9 +10,11 @@
 <<link 'Variable Space Usage'>>
     <<set _variableStorageUsage = setup.variableStorageUsage()>>
     <<append '.passage'>>
-        <<for _key, _value range _variableStorageUsage>>
-            <li>_key : _value>></li>
-        <</for>>
+        <ol>
+            <<for _key, _value range _variableStorageUsage>>
+                <li>_key : _value</li>
+            <</for>>
+        </ol>
     <</append>>
 <</link>>
 

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
qsrc2tw/tools/QSRC2TW/resources/QSPPARSER.js


+ 9 - 9
qsrc2tw/tools/QSRC2TW/src/antlr/qsrcLexer.g4

@@ -16,17 +16,17 @@ Done:
 	*P
 	PL
 	*PL
-TODO:	
+TODO:
 	ADDLIB
 	ADDOBJ
 	ADDQST
-	
+
 	ARRCOMP
 	ARRPOS
 	ARRSIZE
 	$BACKIMAGE
 	BCOLOR
-	
+
 	CMDCLEAR
 	CMDCLR
 	COPYARR
@@ -95,8 +95,8 @@ TODO:
 	$ONOBJSEL
 	OPENGAME
 	OPENQST
-	
-	
+
+
 	PLAY
 	QSPVER
 	RAND
@@ -130,7 +130,7 @@ TODO:
 	VIEW
 	WAIT
 	XGOTO
-	XGT 
+	XGT
  */
 
 lexer grammar qsrcLexer;
@@ -160,7 +160,7 @@ GOSUB: (G S) | (G O S U B);
 GOTO: (G T) | (G O T O);
 XGOTO: X GOTO;
 
-INPUT: I N P U T;
+INPUT: '$'? I N P U T;
 
 JUMP: J U M P;
 
@@ -265,7 +265,7 @@ EXCLAMATIONMARK: '!';
 CommentStart: '!!' -> pushMode (COMMENT);
 AttachedComment: '&' ' '* '!' -> pushMode(COMMENT);
 Multilinecomment: '!!' WHITESPACE? '{' .*? '}';
-	
+
 ARRAYBRACKOPEN: '[';
 ARRAYBRACKCLOSE: ']';
 BRACK_OPEN: '{' -> pushMode(MultiLine);
@@ -318,4 +318,4 @@ AnythingElseInMultiLine: .;
 
 mode COMMENT;
 COMMENNEWLINE: ('\r'? '\n' | '\r')+ -> type(NEWLINE), popMode;
-InComment: .;
+InComment: .;

Деякі файли не було показано, через те що забагато файлів було змінено