Procházet zdrojové kódy

[changed] edited 'pirsingsalon' to use the generalized display loops

f95Lok před 1 týdnem
rodič
revize
79d1973ea1
1 změnil soubory, kde provedl 116 přidání a 1649 odebrání
  1. 116 1649
      locations/pirsingsalon.qsrc

+ 116 - 1649
locations/pirsingsalon.qsrc

@@ -74,9 +74,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['ears'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_ears''">Ear - 3,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_ears''">Ear - 3,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_ears''">Ear - 1,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_ears''">Ear - 1,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -90,9 +90,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['nose'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nose''">Nose - 5,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_nose''">Nose - 5,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nose''">Nose - 2,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_nose''">Nose - 2,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -106,9 +106,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['brow'] = 0:
-		$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 5,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 5,000 <b>₽</b></a>'
 	else
-		$temp_table +=			'<a href="exec: gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 2,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_brow''">Eyebrow - 2,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -122,9 +122,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['lip'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_lip''">Lip - 6,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_lip''">Lip - 6,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_lip''">Lip - 3,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_lip''">Lip - 3,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -138,9 +138,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['tongue'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 7,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 7,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 4,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_tongue''">Tongue - 4,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -154,9 +154,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['navel'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_navel''">Navel - 8,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_navel''">Navel - 8,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_navel''">Navel - 5,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_navel''">Navel - 5,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -170,9 +170,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['nipples'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 10,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 10,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 6,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_nipples''">Nipple - 6,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -186,9 +186,9 @@ if $ARGS[0] = 'shop_menu':
 	$temp_table +=		'</td>'
 	$temp_table +=		'<td>'
 	if pcs_piercings['pussy'] = 0:
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 25,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 0 & gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 25,000 <b>₽</b></a>'
 	else
-		$temp_table +=		'<a href="exec: gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 10,000 <b>₽</b></a>'
+		$temp_table +=		'<a href="exec: salon_temp_state = 1 & gt ''pirsingsalon'', ''piercing_pussy''">Pussy - 10,000 <b>₽</b></a>'
 	end
 	$temp_table +=		'</td>'
 	$temp_table +=	'</tr>'
@@ -222,749 +222,148 @@ end
 	!!----- Ears --------------------------------------------------
 
 if $ARGS[0] = 'piercing_ears':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_ears'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'ears')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:loopears_pir
-		*p '<a href="exec:gt ''pirsingsalon'', ''piercing_ears2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''ears_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'loopears_pir'
-end
-
-if $ARGS[0] = 'piercing_ears2':
-	'<center><img src="<<func(''piercing_management'', ''ears_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['ears_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_ears'
-
-	elseif pcs_piercings['ears'] = 0:
-		if max(money, karta) < 3000:
-			'You cannot afford to get your ears pierced with this piercing.'
-		else
-			if money >= 3000:
-				dynamic "
-					act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 3000:
-				dynamic "
-					act 'Get your ears pierced with these earrings for 3,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 1000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 1000:
-				dynamic "
-					act 'Buy this piercing for 1,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 1000:
-				dynamic "
-					act 'Buy this piercing for 1,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_ears3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_ears'
-end
-
-if $ARGS[0] = 'piercing_ears3':
-	if pcs_piercings['ears'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['ears'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
-
-		'<center><img src="<<func(''piercing_management'', ''ears_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your ears and inserts your chosen earrings.'
-
+		salon_temp_state = 1
 		gs 'pain', 1, 'ears', 'pierce'
-
-	else
-		'You buy the piercing.'
 	end
 
-	if $ARGS[2] = 'money': money -= 1000 else karta -= 1000
-	gs 'piercing_management', 'add', 'ears', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'ears', 1, 'ears_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Nose --------------------------------------------------
 
 if $ARGS[0] = 'piercing_nose':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_nose'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'nose')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:loopnose_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_nose2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''nose_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'loopnose_pir'
-end
-
-if $ARGS[0] = 'piercing_nose2':
-	'<center><img src="<<func(''piercing_management'', ''nose_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['nose_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_nose'
-
-	elseif pcs_piercings['nose'] = 0:
-		if max(money, karta) < 5000:
-			'You cannot afford to get your nose pierced with this piercing.'
-		else
-			if money >= 5000:
-				dynamic "
-					act 'Get your nose pierced with these earrings for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 5000:
-				dynamic "
-					act 'Get your nose pierced with these earrings for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 2000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 2000:
-				dynamic "
-					act 'Buy this piercing for 2,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 2000:
-				dynamic "
-					act 'Buy this piercing for 2,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nose3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_nose'
-end
-
-if $ARGS[0] = 'piercing_nose3':
-	if pcs_piercings['nose'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['nose'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-
-		'<center><img src="<<func(''piercing_management'', ''nose_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your nose and inserts your chosen piercing.'
-
-		gs 'pain', 2, 'nose', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'nose', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
-	gs 'piercing_management', 'add', 'nose', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'nose', 1, 'nose_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Brow --------------------------------------------------
 
 if $ARGS[0] = 'piercing_brow':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_brow'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'brow')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:loopbrow_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_brow2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''brow_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'loopbrow_pir'
-end
-
-if $ARGS[0] = 'piercing_brow2':
-	'<center><img src="<<func(''piercing_management'', ''brow_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['brow_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_brow'
-
-	elseif pcs_piercings['brow'] = 0:
-		if max(money, karta) < 5000:
-			'You cannot afford to get your brow pierced with this piercing.'
-		else
-			if money >= 5000:
-				dynamic "
-					act 'Get your brow pierced with these earrings for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 5000:
-				dynamic "
-					act 'Get your brow pierced with these earrings for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 2000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 2000:
-				dynamic "
-					act 'Buy this piercing for 2,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 2000:
-				dynamic "
-					act 'Buy this piercing for 2,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_brow3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return':gt 'pirsingsalon', 'piercing_brow'
-end
-
-if $ARGS[0] = 'piercing_brow3':
-	if pcs_piercings['brow'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['brow'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-
-		'<center><img src="<<func(''piercing_management'', ''brow_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your brow and inserts your chosen piercing.'
-
-		gs 'pain', 3, 'eyebrows', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'eyebrows', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 2000 else karta -= 2000
-	gs 'piercing_management', 'add', 'brow', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'brow', 1, 'brow_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Lip --------------------------------------------------
 
 if $ARGS[0] = 'piercing_lip':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_lip'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'lip')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	ps_i = 1
-	:looplip_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_lip2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''lip_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'looplip_pir'
-end
-
-if $ARGS[0] = 'piercing_lip2':
-	'<center><img src="<<func(''piercing_management'', ''lip_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['lip_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_lip'
-
-	elseif pcs_piercings['lip'] = 0:
-		if max(money, karta) < 6000:
-			'You cannot afford to get your lip pierced with this piercing.'
-		else
-			if money >= 6000:
-				dynamic "
-					act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 6000:
-				dynamic "
-					act 'Get your lip pierced with this piercing for 6,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 3000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 3000:
-				dynamic "
-					act 'Buy this piercing for 3,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 3000:
-				dynamic "
-					act 'Buy this piercing for 3,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_lip3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_lip'
-end
-
-if $ARGS[0] = 'piercing_lip3':
-	if pcs_piercings['lip'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['lip'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-
-		'<center><img src="images/locations/city/industrial/salon/pirsing2.jpg"></center>'
-		'The tattooist disinfects the area, pierces your lip and inserts your chosen piercing.'
-
-		gs 'pain', 2, 'lips', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'lips', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-	gs 'piercing_management', 'add', 'lip', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'lip', 1, 'lip_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Tongue --------------------------------------------------
 
 if $ARGS[0] = 'piercing_tongue':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_tongue'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'tongue')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:looptongue_pir
-		*pl '<a href="exec: gt ''pirsingsalon'', ''piercing_tongue2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''tongue_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'looptongue_pir'
-end
-
-if $ARGS[0] = 'piercing_tongue2':
-	menu_off = 1
-	gs 'stat'
-
-	'<center><img src="<<func(''piercing_management'', ''tongue_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['tongue_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_tongue'
-
-	elseif pcs_piercings['tongue'] = 0:
-		if max(money, karta) < 7000:
-			'You cannot afford to get your tongue pierced with this piercing.'
-		else
-			if money >= 7000:
-				dynamic "
-					act 'Get your tongue pierced with this piercing for 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 7000:
-				dynamic "
-					act 'Get your tongue pierced with this piercing for 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 4000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 4000:
-				dynamic "
-					act 'Buy this piercing for 4,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 4000:
-				dynamic "
-					act 'Buy this piercing for 4,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_tongue3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_tongue'
-end
-
-if $ARGS[0] = 'piercing_tongue3':
-	if pcs_piercings['tongue'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['tongue'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-
-		'<center><img src="images/locations/city/industrial/salon/pirsing.jpg"></center>'
-		'The tattooist disinfects the area, pierces your tongue and inserts your chosen piercing.'
-
-		gs 'pain', 5, 'tongue', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'tongue', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 4000 else karta -= 4000
-	gs 'piercing_management', 'add', 'tongue', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'tongue', 1, 'tongue_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Navel --------------------------------------------------
 
 if $ARGS[0] = 'piercing_navel':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_navel'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'navel')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:loopbelly_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_navel2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''navel_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'loopbelly_pir'
-end
-
-if $ARGS[0] = 'piercing_navel2':
-	'<center><img src="<<func(''piercing_management'', ''navel_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['navel_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_navel'
-
-	elseif pcs_piercings['navel'] = 0:
-		if max(money, karta) < 8000:
-			'You cannot afford to get your belly button pierced with this piercing.'
-		else
-			if money >= 8000:
-				dynamic "
-					act 'Get your belly button pierced with these earrings for 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 8000:
-				dynamic "
-					act 'Get your belly button pierced with these earrings for 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 5000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 5000:
-				dynamic "
-					act 'Buy this piercing for 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 5000:
-				dynamic "
-					act 'Buy this piercing for 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_navel3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_navel'
-end
-
-if $ARGS[0] = 'piercing_navel3':
-	if pcs_piercings['navel'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['navel'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 3000 else karta -= 3000
-
-		'<center><img src="<<func(''piercing_management'', ''navel_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your belly button and inserts your chosen piercing.'
+		salon_temp_state = 1
 		gs 'pain', 1, 'tummy', 'pierce'
-
-	else
-		'You buy the piercing.'
 	end
 
-	if $ARGS[2] = 'money': money -= 5000 else karta -= 5000
-	gs 'piercing_management', 'add', 'navel', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'navel', 1, 'navel_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Nipples --------------------------------------------------
 
 if $ARGS[0] = 'piercing_nipples':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_nipples'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'nipples')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:loopnip_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_nipples2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''nipples_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'loopnip_pir'
-end
-
-if $ARGS[0] = 'piercing_nipples2':
-	'<center><img src="<<func(''piercing_management'', ''nipples_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['nipples_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_brow'
-
-	elseif pcs_piercings['nipples'] = 0:
-		if max(money, karta) < 10000:
-			'You cannot afford to get your nipples pierced with this piercing.'
-		else
-			if money >= 10000:
-				dynamic "
-					act 'Get your nipples pierced with these earrings for 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 10000:
-				dynamic "
-					act 'Get your nipples pierced with these earrings for 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 6000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 6000:
-				dynamic "
-					act 'Buy this piercing for 6,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 6000:
-				dynamic "
-					act 'Buy this piercing for 6,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_nipples3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_nipples'
-end
-
-if $ARGS[0] = 'piercing_nipples3':
-	if pcs_piercings['nipples'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['nipples'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 4000 else karta -= 4000
-
-		'<center><img src="<<func(''piercing_management'', ''nipples_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your nipples and inserts your chosen piercings.'
-		gs 'pain', 7, 'nipples', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'nipples', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 6000 else karta -= 6000
-	gs 'piercing_management', 'add', 'nipples', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'nipples', 1, 'nipples_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Pussy --------------------------------------------------
 
 if $ARGS[0] = 'piercing_pussy':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'piercing_pussy'
 	menu_off = 1
 	gs 'stat'
 
-	ps_total = func('piercing_management', 'totals', 'pussy')
-	
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-	
-	ps_i = 1
-	:looppubic_pir
-		*p '<a href="exec: gt ''pirsingsalon'', ''piercing_pussy2'', <<ps_i>>"><img height="250" src="<<func(''piercing_management'', ''pussy_image'', ps_i)>>"></a>'
-		ps_i += step
-	if ps_i <= ps_total: jump 'looppubic_pir'
-end
-
-if $ARGS[0] = 'piercing_pussy2':
-	'<center><img src="<<func(''piercing_management'', ''pussy_image'', ARGS[1])>>"></center>'
-
-	if pcs_piercings['pussy_<<ARGS[1]>>_owned'] = 1:
-		'You already own this piercing.'
-		act 'Return': gt 'pirsingsalon', 'piercing_brow'
-
-	elseif pcs_piercings['pussy'] = 0:
-		if max(money, karta) < 25000:
-			'You cannot afford to get your pussy pierced with this piercing.'
-		else
-			if money >= 25000:
-				dynamic "
-					act 'Get your pussy pierced with these earrings for 25,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 25000:
-				dynamic "
-					act 'Get your pussy pierced with these earrings for 25,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-
-	else
-		if max(money, karta) < 10000:
-			'You don''t have enough money for this piercing.'
-		else
-			if money >= 10000:
-				dynamic "
-					act 'Buy this piercing for 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'money'
-				"
-			end
-			if karta >= 10000:
-				dynamic "
-					act 'Buy this piercing for 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'piercing_pussy3', <<ARGS[1]>>, 'karta'
-				"
-			end
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'piercing_pussy'
-end
-
-if $ARGS[0] = 'piercing_pussy3':
-	if pcs_piercings['pussy'] = 0:
-		*clr
+	if salon_temp_state = 0 and pcs_piercings['pussy'] ! 0:
 		minut += 30
-		if $ARGS[2] = 'money': money -= 15000 else karta -= 15000
-
-		'<center><img src="<<func(''piercing_management'', ''pussy_image'', ARGS[1])>>"></center>'
-		'The tattooist disinfects the area, pierces your pussy and inserts your chosen piercing.'
-		gs 'pain', 9, 'pubic', 'pierce'
-
-	else
-		'You buy the piercing.'
+		salon_temp_state = 1
+		gs 'pain', 1, 'pubic', 'pierce'
 	end
 
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'piercing_management', 'add', 'pussy', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'piercing_management', 'pussy', 1, 'pussy_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': killvar 'salon_temp_state' & gt 'pirsingsalon', 'start'
 end
 
 
-
-
 	!!========================================================================!!
 	!!                                                                        !!
 	!!                                TATTOOS                                 !!
@@ -975,1149 +374,217 @@ end
 	!!----- Ankle --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_ankle':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_ankle'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['ankle'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'ankle')
-		ps_i = 1
-		:looptatfoot
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_ankle2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''ankle_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatfoot'
-		*nl
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'ankle', 1, 'ankle_image', 'shop'
 
-	else
-		'<center><img src="<<func(''tattoo_management'', ''ankle_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_ankle2':
-	'<center><img src="<<func(''tattoo_management'', ''ankle_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ankle3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_ankle3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_ankle'
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_ankle3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
-	gs 'tattoo_management', 'add', 'ankle', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Arm --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_arm':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_arm'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['arm'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'arm')
-		ps_i = 1
-		:looptatarm
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_arm2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''arm_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatarm'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''arm_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_arm2':
-	'<center><img src="<<func(''tattoo_management'', ''arm_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_arm3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_arm3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_arm'
-end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'arm', 1, 'arm_image', 'shop'
 
-if $ARGS[0] = 'tattoo_arm3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
-	gs 'tattoo_management', 'add', 'arm', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Ass --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_ass':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_ass'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['ass'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'ass')
-		ps_i = 1
-		:looptatass
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_ass2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''ass_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatass'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''ass_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_ass2':
-	'<center><img src="<<func(''tattoo_management'', ''ass_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_ass3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'ass', 1, 'ass_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_ass'
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_ass3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'tattoo_management', 'add', 'ass', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Back --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_back':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_back'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['back'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'back')
-		ps_i = 1
-		:looptatback
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_back2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''back_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatback'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''back_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_back2':
-	'<center><img src="<<func(''tattoo_management'', ''back_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_back3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'back', 1, 'back_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_back'
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_back3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'tattoo_management', 'add', 'back', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Belly --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_belly':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_belly'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['belly'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'belly')
-		ps_i = 1
-		:looptatbelly
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_belly2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''belly_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatbelly'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''belly_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_belly2':
-	'<center><img src="<<func(''tattoo_management'', ''belly_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_belly3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_belly3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_belly'
-end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'belly', 1, 'belly_image', 'shop'
 
-if $ARGS[0] = 'tattoo_belly3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'tattoo_management', 'add', 'belly', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Breast --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_breast':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_breast'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['breast'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'breast')
-		ps_i = 1
-		:looptatbreast
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_breast2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''breast_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatbreast'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''breast_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_breast2':
-	'<center><img src="<<func(''tattoo_management'', ''breast_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 15000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 15000:
-			dynamic "
-				act 'Get this tattoo 15,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_breast3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 15000:
-			dynamic "
-				act 'Get this tattoo 15,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_breast3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_breast'
-end
-
-if $ARGS[0] = 'tattoo_breast3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 15000 else karta -= 15000
-	gs 'tattoo_management', 'add', 'breast', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'breast', 1, 'breast_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Chest --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_chest':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_chest'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'chest', 1, 'chest_image', 'shop'
 
-	if pcs_tattoos['chest'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'chest')
-		ps_i = 1
-		:looptatchest
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_chest2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''chest_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatchest'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''chest_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_chest2':
-	'<center><img src="<<func(''tattoo_management'', ''chest_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_chest3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_chest3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_chest'
-end
-
-if $ARGS[0] = 'tattoo_chest3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'chest', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Face --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_face':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_face'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'face', 1, 'face_image', 'shop'
 
-	if pcs_tattoos['face'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'face')
-		ps_i = 1
-		:looptatface
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_face2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''face_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatface'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''face_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_face2':
-	'<center><img src="<<func(''tattoo_management'', ''face_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_face3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_face3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_face'
-end
-
-if $ARGS[0] = 'tattoo_face3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'tattoo_management', 'add', 'face', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Hand --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_hand':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_hand'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['hand'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'hand')
-		ps_i = 1
-		:looptathand
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_hand2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''hand_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptathand'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''hand_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_hand2':
-	'<center><img src="<<func(''tattoo_management'', ''hand_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 7000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_hand3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_hand3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_hand'
-end
-
-if $ARGS[0] = 'tattoo_hand3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 7000 else karta -= 7000
-	gs 'tattoo_management', 'add', 'hand', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'hand', 1, 'hand_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Leg --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_leg':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_leg'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['leg'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'leg')
-		ps_i = 1
-		:looptatleg
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_leg2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''leg_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatleg'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''leg_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_leg2':
-	'<center><img src="<<func(''tattoo_management'', ''leg_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 10000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 10000:
-			dynamic "
-				act 'Get this tattoo 10,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_leg3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'leg', 1, 'leg_image', 'shop'
 
-	act 'Return': gt 'pirsingsalon', 'tattoo_leg'
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_leg3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 10000 else karta -= 10000
-	gs 'tattoo_management', 'add', 'leg', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Lip --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_lip':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_lip'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['lip'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'lip')
-		ps_i = 1
-		:looptatlip
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_lip2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''lip_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatlip'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'lip', 1, 'lip_image', 'shop'
 
-	else
-		'<center><img src="<<func(''tattoo_management'', ''lip_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_lip2':
-	'<center><img src="<<func(''tattoo_management'', ''lip_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 5000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 5000:
-			dynamic "
-				act 'Get this tattoo 5,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_lip3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 5000:
-			dynamic "
-				act 'Get this tattoo 5,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_lip3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_lip'
-end
-
-if $ARGS[0] = 'tattoo_lip3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 5000 else karta -= 5000
-	gs 'tattoo_management', 'add', 'lip', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Neck --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_neck':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_neck'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['neck'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'neck')
-		ps_i = 1
-		:looptatneck
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_neck2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''neck_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatneck'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''neck_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_neck2':
-	'<center><img src="<<func(''tattoo_management'', ''neck_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_neck3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_neck3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_neck'
-end
-
-if $ARGS[0] = 'tattoo_neck3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
-	gs 'tattoo_management', 'add', 'neck', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'neck', 1, 'neck_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Pussy --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_pussy':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_pussy'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['pussy'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'pussy')
-		ps_i = 1
-		:looptatvag
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_pussy2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''pussy_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatvag'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''pussy_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_pussy2':
-	'<center><img src="<<func(''tattoo_management'', ''pussy_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 20000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 20000:
-			dynamic "
-				act 'Get this tattoo 20,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_pussy3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 20000:
-			dynamic "
-				act 'Get this tattoo 20,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_pussy3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_pussy'
-end
-
-if $ARGS[0] = 'tattoo_pussy3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 20000 else karta -= 20000
-	gs 'tattoo_management', 'add', 'pussy', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'pussy', 1, 'pussy_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- shoulder --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_shoulder':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_shoulder'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'shoulder', 1, 'shoulder_image', 'shop'
 
-	if pcs_tattoos['shoulder'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'shoulder')
-		ps_i = 1
-		:looptatlech
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_shoulder2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''shoulder_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatlech'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''shoulder_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_shoulder2':
-	'<center><img src="<<func(''tattoo_management'', ''shoulder_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 8000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_shoulder3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 8000:
-			dynamic "
-				act 'Get this tattoo 8,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_shoulder3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_shoulder'
-end
-
-if $ARGS[0] = 'tattoo_shoulder3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 8000 else karta -= 8000
-	gs 'tattoo_management', 'add', 'shoulder', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Side --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_side':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_side'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['side'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'side')
-		ps_i = 1
-		:looptatside
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_side2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''side_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatside'
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''side_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_side2':
-	'<center><img src="<<func(''tattoo_management'', ''side_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_side3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_side3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_side'
-end
-
-if $ARGS[0] = 'tattoo_side3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'side', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'side', 1, 'side_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Tramp --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_tramp':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_tramp'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['tramp'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'tramp')
-		ps_i = 1
-		:looptatupb
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_tramp2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''tramp_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatupb'
-		*nl
-
-	else
-		'<center><img src="<<func(''tattoo_management'', ''tramp_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
-end
-
-if $ARGS[0] = 'tattoo_tramp2':
-	'<center><img src="<<func(''tattoo_management'', ''tramp_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_tramp3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_tramp3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_tramp'
-end
-
-if $ARGS[0] = 'tattoo_tramp3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'tramp', ARGS[1]
-	gs 'stat'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'tramp', 1, 'tramp_image', 'shop'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-
 	!!----- Under --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_under':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_under'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['under'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'under')
-		ps_i = 1
-		:looptatunder
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_under2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''under_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatunder'
-		*nl
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'under', 1, 'under_image', 'shop'
 
-	else
-		'<center><img src="<<func(''tattoo_management'', ''under_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_under2':
-	'<center><img src="<<func(''tattoo_management'', ''under_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 12000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_under3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 12000:
-			dynamic "
-				act 'Get this tattoo 12,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_under3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_under'
-end
-
-if $ARGS[0] = 'tattoo_under3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'under', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
 	!!----- Wrist --------------------------------------------------
 
 if $ARGS[0] = 'tattoo_wrist':
+	gs 'shortgs', 'setloc', 'pirsingsalon', 'tattoo_wrist'
 	menu_off = 1
 	gs 'stat'
 
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-		step = intro_custom_step
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-		step = 1
-	end
-
-	if pcs_tattoos['wrist'] <= 0:
-		ps_total = func('tattoo_management', 'totals', 'wrist')
-		ps_i = 1
-		:looptatwrist
-			*p '<a href="exec: gt ''pirsingsalon'', ''tattoo_wrist2'', <<ps_i>>"><img height="250" src="<<func(''tattoo_management'', ''wrist_image'', ps_i)>>"></a>'
-			ps_i += step
-		if ps_i <= ps_total: jump 'looptatwrist'
+	gs 'shop_utils', 'display_func_managed', 'tattoo_management', 'wrist', 1, 'wrist_image', 'shop'
 
-	else
-		'<center><img src="<<func(''tattoo_management'', ''wrist_image'')>>"></center>'
-		'You already have this tattoo here.'
-	end
+	act 'Return': gt 'pirsingsalon', 'start'
 end
 
-if $ARGS[0] = 'tattoo_wrist2':
-	'<center><img src="<<func(''tattoo_management'', ''wrist_image'', ARGS[1])>>"></center>'
-
-	if max(money, karta) < 7000:
-		'You cannot afford this tattoo.'
-	else
-		if money >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (cash)': xgt 'pirsingsalon', 'tattoo_wrist3', <<ARGS[1]>>, 'money'
-			"
-		end
-		if karta >= 7000:
-			dynamic "
-				act 'Get this tattoo 7,000 <b>₽</b> (card)': xgt 'pirsingsalon', 'tattoo_wrist3', <<ARGS[1]>>, 'karta'
-			"
-		end
-	end
-
-	act 'Return': gt 'pirsingsalon', 'tattoo_wrist'
-end
-
-if $ARGS[0] = 'tattoo_wrist3':
-	minut += 60
-	if $ARGS[2] = 'money': money -= 12000 else karta -= 12000
-	gs 'tattoo_management', 'add', 'wrist', ARGS[1]
-	gs 'stat'
-
-	if intro_custom_shop_return = 1:
-		act 'Return': gt 'intro_customization', 'modclo'
-	else
-		act 'Return': gt 'pirsingsalon', 'start'
-	end
-end
-
-
-
-! Cleanup
-
-killvar 'ps_i'
-killvar 'ps_total'
-
-
 --- pirsingsalon ---------------------------------