1
0

13 Incheckningar ee5df0a3ef ... 8598ce3f1e

Upphovsman SHA1 Meddelande Datum
  3xpurt 8598ce3f1e [fixed] incorrect exit location for 'vasily_home_sex' 1 år sedan
  3xpurt be7001e0d7 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 år sedan
  Kevin_Smarts 85886ee2b0 [added] Attributes for underwear now produces description much like clothing system and pairs for bras and panties shown for all stores now. 1 år sedan
  Kevin_Smarts 3a09896313 Merge remote-tracking branch 'hornguy6/master' 1 år sedan
  Kevin_Smarts db9789e025 Merge remote-tracking branch 'origin/master' 1 år sedan
  Kevin_Smarts fce7059904 Merge remote-tracking branch 'Hooded_Silence/master' 1 år sedan
  Kevin_Smarts 719a022a5a Merge remote-tracking branch 'Expurt/master' 1 år sedan
  bgkjdgbizgblzdgbr 40ff99962a [chnged/added] Fixed image calls and Natalia shower peek. By BBZ01 adn nutluck. 1 år sedan
  3xpurt 3229c1a843 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 1 år sedan
  hornguy6 bcaef530ff [fixed] should be blocked for virgins 1 år sedan
  hornguy6 23fa1743c9 [added] you can now tell Albina you're a model 1 år sedan
  Hooded Silence 09ab46e83e New event system implementation, initial code base 1 år sedan
  Kevin_Smarts cf4587e351 [added] Attributes for Salacious underwear 1 år sedan

+ 2 - 1
glife.qproj

@@ -204,7 +204,8 @@
 		<Location name="$attributes_lusso_bodysuit"/>
 		<Location name="$attributes_lusso_bra"/>
 		<Location name="$attributes_lusso_panties"/>
-		<Location name="$attributes_moncheri_bodysuit"/>
+		<Location name="$attributes_salacious_panties"/>
+		<Location name="$attributes_salacious_bra"/>
 		<Location name="$attributes_salacious_bodysuit"/>
 		<Location name="$attributes_scandalicious_bodysuit"/>
 	</Folder>

+ 327 - 0
locations/_attributes_salacious_bra.qsrc

@@ -0,0 +1,327 @@
+# $attributes_salacious_bra
+
+
+if ARGS[1] = 1:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 1
+
+elseif ARGS[1] = 2:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 3
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 2
+
+elseif ARGS[1] = 3:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 3
+
+elseif ARGS[1] = 4:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 2
+	underwear['pair'] = 4
+
+elseif ARGS[1] = 5:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 5
+
+elseif ARGS[1] = 6:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 6
+
+elseif ARGS[1] = 7:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 7
+
+elseif ARGS[1] = 8:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 8
+
+elseif ARGS[1] = 9:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 9
+
+elseif ARGS[1] = 10:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 2
+	underwear['pair'] = 10
+
+elseif ARGS[1] = 11:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 11
+
+elseif ARGS[1] = 12:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 1
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 12
+
+elseif ARGS[1] = 13:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 9
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 13
+
+elseif ARGS[1] = 14:
+	BraQuality = 3
+	BraType = 5
+	BraFun = 1
+	BraThinness = 2
+	underwear['pair'] = 14
+
+elseif ARGS[1] = 15:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 1
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 15
+
+elseif ARGS[1] = 16:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 2
+	underwear['pair'] = 16
+
+elseif ARGS[1] = 17:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 1
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 17
+
+elseif ARGS[1] = 18:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 3
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 18
+
+elseif ARGS[1] = 19:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 4
+	underwear['pair'] = 19
+
+elseif ARGS[1] = 20:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 20
+
+elseif ARGS[1] = 21:
+	BraQuality = 3
+	BraType = 8
+	BraFun = 1
+	BraThinness = 2
+	BraCover = 4
+	underwear['pair'] = 21
+
+elseif ARGS[1] = 22:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 8
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 4
+	underwear['pair'] = 22
+
+elseif ARGS[1] = 23:
+	BraQuality = 3
+	BraType = 8
+	BraFun = 1
+	BraThinness = 6
+	BraCover = 4
+	underwear['pair'] = 23
+
+elseif ARGS[1] = 24:
+	BraQuality = 3
+	BraMaterial = 3
+	BraType = 9
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 24
+
+elseif ARGS[1] = 25:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 25
+
+elseif ARGS[1] = 26:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 26
+
+elseif ARGS[1] = 27:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 27
+
+elseif ARGS[1] = 28:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 28
+
+elseif ARGS[1] = 29:
+	BraQuality = 3
+	BraMaterial = 3
+	BraType = 1
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 29
+
+elseif ARGS[1] = 30:
+	BraQuality = 3
+	BraMaterial = 6
+	BraType = 7
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 2
+	underwear['pair'] = 30
+
+elseif ARGS[1] = 31:
+	BraQuality = 3
+	BraMaterial = 3
+	BraType = 9
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 3
+	underwear['pair'] = 31
+
+elseif ARGS[1] = 32:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 3
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 3
+	underwear['pair'] = 32
+
+elseif ARGS[1] = 33:
+	BraQuality = 3
+	BraMaterial = 3
+	BraType = 5
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 3
+	underwear['pair'] = 33
+
+elseif ARGS[1] = 34:
+	BraQuality = 4
+	BraMaterial = 3
+	BraType = 5
+	BraFun = 1
+	BraThinness = 5
+	BraCover = 3
+	underwear['pair'] = 34
+
+elseif ARGS[1] = 35:
+	BraQuality = 4
+	BraMaterial = 3
+	BraType = 10
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 35
+
+elseif ARGS[1] = 36:
+	BraQuality = 4
+	BraMaterial = 6
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 36
+
+elseif ARGS[1] = 37:
+	BraQuality = 3
+	BraMaterial = 3
+	BraType = 5
+	BraFun = 1
+	BraThinness = 4
+	BraCover = 1
+	underwear['pair'] = 37
+
+end
+
+--- $attributes_salacious_bra ---------------------------------
+

+ 507 - 0
locations/_attributes_salacious_panties.qsrc

@@ -0,0 +1,507 @@
+# $attributes_salacious_panties
+
+
+if ARGS[1] = 1:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 1
+
+elseif ARGS[1] = 2:
+	PanType = 2
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 2
+
+elseif ARGS[1] = 3:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 3
+
+elseif ARGS[1] = 4:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 4
+
+elseif ARGS[1] = 5:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 5
+
+elseif ARGS[1] = 6:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	underwear['pair'] = 6
+
+elseif ARGS[1] = 7:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 7
+
+elseif ARGS[1] = 8:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	underwear['pair'] = 8
+
+elseif ARGS[1] = 9:
+	PanType = 2
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 9
+
+elseif ARGS[1] = 10:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 10
+
+elseif ARGS[1] = 11:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 11
+
+elseif ARGS[1] = 12:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	underwear['pair'] = 12
+
+elseif ARGS[1] = 13:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+	underwear['pair'] = 13
+
+elseif ARGS[1] = 14:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 2
+	PanCoverBack = 4
+	underwear['pair'] = 14
+
+elseif ARGS[1] = 15:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 15
+
+elseif ARGS[1] = 16:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 16
+
+elseif ARGS[1] = 17:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 4
+	underwear['pair'] = 17
+
+elseif ARGS[1] = 18:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverFront = 1
+	PanCoverBack = 4
+	underwear['pair'] = 18
+
+elseif ARGS[1] = 19:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 2
+	underwear['pair'] = 19
+
+elseif ARGS[1] = 20:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 5
+	PanCoverBack = 3
+	underwear['pair'] = 20
+
+elseif ARGS[1] = 21:
+	PanType = 1
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 4
+	underwear['pair'] = 21
+
+elseif ARGS[1] = 22:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 3
+	PanCoverBack = 1
+	underwear['pair'] = 22
+
+elseif ARGS[1] = 23:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 4
+	PanThinness = 2
+	PanCoverBack = 4
+	underwear['pair'] = 23
+
+elseif ARGS[1] = 24:
+	PanType = 1
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 24
+
+elseif ARGS[1] = 25:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 25
+
+elseif ARGS[1] = 26:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 26
+
+elseif ARGS[1] = 27:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 27
+
+elseif ARGS[1] = 28:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 28
+
+elseif ARGS[1] = 29:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverFront = 1
+	PanCoverBack = 1
+	underwear['pair'] = 29
+
+elseif ARGS[1] = 30:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 2
+	underwear['pair'] = 30
+
+elseif ARGS[1] = 31:
+	PanType = 2
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 3
+	underwear['pair'] = 31
+
+elseif ARGS[1] = 32:
+	PanType = 2
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 4
+	PanThinness = 5
+	PanCoverFront = 3
+	PanCoverBack = 3
+	underwear['pair'] = 32
+
+elseif ARGS[1] = 33:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 2
+	PanCoverFront = 2
+	PanCoverBack = 4
+	underwear['pair'] = 33
+
+elseif ARGS[1] = 34:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 5
+	PanCoverBack = 2
+	underwear['pair'] = 34
+
+elseif ARGS[1] = 35:
+	PanType = 1
+	PanFun = 1
+	PanQuality = 4
+	PanThinness = 2
+	underwear['pair'] = 35
+
+elseif ARGS[1] = 36:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverFront = 1
+	PanCoverBack = 4
+	underwear['pair'] = 36
+
+elseif ARGS[1] = 37:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverFront = 1
+	PanCoverBack = 4
+	underwear['pair'] = 37
+
+elseif ARGS[1] = 38:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 2
+	PanCoverFront = 2
+
+elseif ARGS[1] = 39:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 4
+
+elseif ARGS[1] = 40:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 4
+	PanCoverFront = 4
+
+elseif ARGS[1] = 41:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 2
+
+elseif ARGS[1] = 42:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 3
+	PanCoverBack = 4
+
+elseif ARGS[1] = 43:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 2
+	PanCoverFront = 2
+	PanCoverBack = 4
+
+elseif ARGS[1] = 44:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverFront = 2
+	PanCoverBack = 4
+
+elseif ARGS[1] = 45:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 2
+	PanCoverFront = 2
+	PanCoverBack = 4
+
+elseif ARGS[1] = 46:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverFront = 2
+	PanCoverBack = 4
+
+elseif ARGS[1] = 47:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverFront = 3
+	PanCoverBack = 3
+
+elseif ARGS[1] = 48:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 4
+	PanThinness = 5
+	PanCoverBack = 3
+
+elseif ARGS[1] = 49:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+
+elseif ARGS[1] = 50:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+	PanCoverBack = 1
+
+elseif ARGS[1] = 51:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 2
+	PanCoverFront = 2
+	PanCoverBack = 2
+
+elseif ARGS[1] = 52:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 3
+	PanThinness = 4
+	PanCoverBack = 4
+
+elseif ARGS[1] = 53:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 6
+	PanCoverBack = 4
+
+elseif ARGS[1] = 54:
+	PanType = 3
+	PanFun = 1
+	PanQuality = 3
+	PanThinness = 3
+	PanCoverFront = 2
+	PanCoverBack = 4
+
+elseif ARGS[1] = 55:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 4
+	PanThinness = 5
+	PanCoverBack = 2
+
+elseif ARGS[1] = 56:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+
+elseif ARGS[1] = 57:
+	PanType = 3
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 3
+	PanCoverBack = 4
+
+elseif ARGS[1] = 58:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 3
+	PanQuality = 3
+	PanThinness = 5
+	PanCoverFront = 2
+	PanCoverBack = 2
+
+elseif ARGS[1] = 59:
+	PanType = 1
+	PanFun = 1
+	PanMaterial = 6
+	PanQuality = 4
+	PanThinness = 4
+end
+
+--- $attributes_salacious_panties ---------------------------------
+

+ 5 - 5
locations/_bra_image.qsrc

@@ -3,19 +3,19 @@
 !! ARGS 0 - bra shop name
 !! ARGS 1 - bra index
 
-if $ARGS[0] = 'cheap':
+if $ARGS[0] = 'gm':
 	$RESULT = 'images/pc/items/gm/bras/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'boutique':
+elseif $ARGS[0] = 'lusso':
 	$RESULT = 'images/pc/items/lusso/bras/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'exhibitionist':
+elseif $ARGS[0] = 'salacious':
 	$RESULT = 'images/pc/items/salacious/bras/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'fashionista':
 	$RESULT = 'images/pc/items/fashionista/bras/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'cats':
 	$RESULT = 'images/pc/items/cats/bras/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'sexshop':
+elseif $ARGS[0] = 'eroto':
 	$RESULT = 'images/pc/items/eroto/bras/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'sport':
+elseif $ARGS[0] = 'danilovich':
 	$RESULT = 'images/pc/items/danilovich/bras/<<ARGS[1]>>.jpg'
 end
 

+ 5 - 5
locations/_panty_image.qsrc

@@ -3,19 +3,19 @@
 !! ARGS 0 - panty shop name
 !! ARGS 1 - panty index
 
-if $ARGS[0] = 'cheap':
+if $ARGS[0] = 'gm':
 	$RESULT = 'images/pc/items/gm/panties/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'boutique':
+elseif $ARGS[0] = 'lusso':
 	$RESULT = 'images/pc/items/lusso/panties/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'exhibitionist':
+elseif $ARGS[0] = 'salacious':
 	$RESULT = 'images/pc/items/salacious/panties/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'fashionista':
 	$RESULT = 'images/pc/items/fashionista/panties/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'cats':
 	$RESULT = 'images/pc/items/cats/panties/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'sexshop':
+elseif $ARGS[0] = 'eroto':
 	$RESULT = 'images/pc/items/eroto/panties/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'sport':
+elseif $ARGS[0] = 'danilovich':
 	$RESULT = 'images/pc/items/danilovich/panties/<<ARGS[1]>>.jpg'
 end
 

+ 4 - 12
locations/albina_chat.qsrc

@@ -40,19 +40,11 @@ if $ARGS[0] = 'small_talk2':
 			'"I don''t want to <i>work</i> for a living," she says, sending both of you into giggles.'
 			gs 'albina_chat','small_talk'
 		end
-		!! variable for being a model here
-		!!act 'I do modelling':
-			!!cla & *nl
-			
-			!!gs 'albina_chat','model_talk1'
-		!!end
-		!! {
+		
+		gs 'albina_chat2','first_model_talk1'
+		
 		if film > 0:
-			act 'I do porn':
-				cla & *nl
-			
-				gs 'albina_chat','pornstar_talk1'
-			end
+			act 'Tell her you''ve shot porn': cla & gs 'albina_chat','pornstar_talk1'
 		end
 			
 		!!if masseuse['jobtype'] ! 0:

+ 9 - 8
locations/booty_call_shower.qsrc

@@ -1355,14 +1355,15 @@ if $ARGS[0] = 'morning_together1':
 						'Your hand creeps up behind your ass and grabs hold of <<$npc_firstname[$boy]>>''s shaft. He''s already rock hard and you begin to work it sensuously with long hard pulls.'
 						act'Jerk him off':gt'booty_call_shower', 'morning_jerkoff1'
 					end
-					
-					act'Well...':
-						cla & *nl
-						gs'arousal', 'massage',5,'no_orgasm_msg'
-						gs'stat'
-						'"Well..." Your breath hitches as he gives your nipples a light squeeze. You feel warm and wet and it''s <i>not</i> just the shower. "I suppose..."'
-!!						if stat['think_virgin'] = 0 and booty_call['virgin'] ! 1:
-						act'Bend over':gt'booty_call_shower', 'morning_shower_fuck1'
+					if stat['think_virgin'] ! 1 or booty_call['fuck_count'] > 0:
+						act'Well...':
+							cla & *nl
+							gs'arousal', 'massage',5,'no_orgasm_msg'
+							gs'stat'
+							'"Well..." Your breath hitches as he gives your nipples a light squeeze. You feel warm and wet and it''s <i>not</i> just the shower. "I suppose..."'
+	!!						if stat['think_virgin'] = 0 and booty_call['virgin'] ! 1:
+							act'Bend over':gt'booty_call_shower', 'morning_shower_fuck1'
+						end
 					end
 					
 !!{						if booty_call['condom'] > 0:

+ 23 - 43
locations/bras.qsrc

@@ -44,26 +44,26 @@ if $ARGS[0] = 'view_bra_list':
 	'<center><img src="images/locations/city/citycenter/mall/gm.png"></center>'
 
 	i = 1
-	:loopcheapbras
-	if cheap_brasS[i] = metka_bras and cheap_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''cheap'', <<i>>"><img src="images/pc/items/gm/bras/<<i>>.jpg" 	height="150" /></a>'
+	:loopgmbras
+	if gm_brasS[i] = metka_bras and gm_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''gm'', <<i>>"><img src="images/pc/items/gm/bras/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('cheap_bras'):jump 'loopcheapbras'
+	if i <= ARRSIZE('gm_bras'):jump 'loopgmbras'
 
 	'<center><img src="images/locations/city/citycenter/mall/Lusso.png"></center>'
 
 	i = 1
-	:loopboutiquebras 
-	if boutique_brasS[i] = metka_bras and boutique_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''boutique'', <<i>>"><img src="images/pc/items/lusso/bras/<<i>>.jpg" 	height="150" /></a>'
+	:looplussobras 
+	if lusso_brasS[i] = metka_bras and lusso_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''lusso'', <<i>>"><img src="images/pc/items/lusso/bras/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('boutique_bras'):jump 'loopboutiquebras'
+	if i <= ARRSIZE('lusso_bras'):jump 'looplussobras'
 
 	'<center><img src="images/locations/pushkin/exhibitshop/shop_name.png"></center>'
 
 	i = 1
-	:loopexhibitionistbras 
-	if exhibitionist_brasS[i] = metka_bras and exhibitionist_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''exhibitionist'', <<i>>"><img src="images/pc/items/salacious/bras/<<i>>.jpg" 	height="150" /></a>'
+	:loopsalaciousbras 
+	if salacious_brasS[i] = metka_bras and salacious_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''salacious'', <<i>>"><img src="images/pc/items/salacious/bras/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('exhibitionist_bras'):jump 'loopexhibitionistbras'
+	if i <= ARRSIZE('salacious_bras'):jump 'loopsalaciousbras'
 
 	'<center><img src="images/locations/city/citycenter/mall/fashionista.png"></center>'
 
@@ -84,18 +84,18 @@ if $ARGS[0] = 'view_bra_list':
 	'<center><img src="images/locations/city/redlight/erotomaniac/shop_name.png"></center>'
 
 	i = 1
-	:loopsexshopbras 
-	if sexshop_brasS[i] = metka_bras and sexshop_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''sexshop'', <<i>>"><img src="images/pc/items/eroto/bras/<<i>>.jpg" 	height="150" /></a>'
+	:looperotobras 
+	if eroto_brasS[i] = metka_bras and eroto_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''eroto'', <<i>>"><img src="images/pc/items/eroto/bras/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('sexshop_bras'):jump 'loopsexshopbras'
+	if i <= ARRSIZE('eroto_bras'):jump 'looperotobras'
 
 	'<center><img src="images/locations/city/citycenter/mall/sports.png"></center>'
 
 	i = 1
-	:loopsportbras 
-	if sport_brasS[i] = metka_bras and sport_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''sport'', <<i>>"><img src="images/pc/items/danilovich/bras/<<i>>.jpg" 	height="150" /></a>'
+	:loopdanilovichbras 
+	if danilovich_brasS[i] = metka_bras and danilovich_bras[i] = 1:*p '<a href="exec:gt ''bras'', ''view_bra_item'', ''<<$ARGS[1]>>'', ''danilovich'', <<i>>"><img src="images/pc/items/danilovich/bras/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('sport_bras'):jump 'loopsportbras'
+	if i <= ARRSIZE('danilovich_bras'):jump 'loopdanilovichbras'
 end
 
 if $ARGS[0] = 'view_bra_item':
@@ -111,12 +111,9 @@ if $ARGS[0] = 'view_bra_item':
 !!	$RESULT = FUNC('$short_description', $ARGS[2], CloStyle2)
 !!	$RESULT += '<<ARGS[3]>>'
 !!	'<<$RESULT>>'
-	if BraQuality > 0:
-		gs 'underwear_descriptions', 'bras'
-		'This bra forms a set with panty #<<underwear[''pair'']>>.'
-	else
-		gs 'bras', 'descriptions', $ARGS[2]
-	end
+	
+	gs 'underwear_descriptions', 'bras'
+	if underwear['pair'] > 0: 'This bra forms a set with panty #<<underwear[''pair'']>>.'
 
 	if $ARGS[1] = 'shop':
 		if dyneval('RESULT = <<$ARGS[2]>>_bras[<<ARGS[3]>>]') = 1:
@@ -374,32 +371,15 @@ if $ARGS[0] = 'dest2':
 	gt 'bras', 'view_bra_item', $ARGS[1], $ARGS[2], ARGS[3]
 end
 
-if $ARGS[0] = 'descriptions':
-	if $ARGS[1] = 'cheap':
-		'Cheap bra with no redeeming features.'
-	elseif $ARGS[1] = 'boutique':
-		'This bra is so beautifully made that your posture and confidence is improved wearing it boosting your appearance even when fully clothed.'
-	elseif $ARGS[1] = 'exhibitionist':
-		'This bra is so revealing that it is more exciting than not wearing one and you''ll always feel horny wearing it.'
-	elseif $ARGS[1] = 'fashionista':
-		'This bra is well made improving your posture and confidence and slightly boosting your appearance even when fully clothed.'
-	elseif $ARGS[1] = 'cats':
-		'This bra feels reassuring and wear it gives your mood a lift.'
-	elseif $ARGS[1] = 'sexshop':
-		'Tacky and cheap this bra makes you look like a hooker, this could be a bonus if working as one.'
-	elseif $ARGS[1] = 'sport':
-		'This bra is designed for physical exercises to make them less tiring.'
-	end
-end
 
 if $ARGS[0] = 'sum':
-	$t[0] = 'boutique'
+	$t[0] = 'lusso'
 	$t[1] = 'cats'
-	$t[2] = 'exhibitionist'
+	$t[2] = 'salacious'
 	$t[3] = 'fashionista'
-	$t[4] = 'cheap'
-	$t[5] = 'sexshop'
-	$t[6] = 'sport'
+	$t[4] = 'gm'
+	$t[5] = 'eroto'
+	$t[6] = 'danilovich'
 	result = 0
 	i = 0
 	:loopsumbras_i

+ 4 - 0
locations/cikl.qsrc

@@ -1199,5 +1199,9 @@ prostitute['customer_day'] = 0
 !! Moves time for the rented properties
 gs 'homes_properties', 'progress_property_rent_time'
 
+!!------------- Check for Daily Events for event generator, sets evt_chk variable  ------------------------------------------
+gs 'emp_functions', 'evt_day_chk'
+
+
 --- cikl ---------------------------------
 

+ 4 - 0
locations/city_industrial.qsrc

@@ -51,6 +51,10 @@ if $ARGS[0] = '':
 	if hour >= 4 and hour <= 23:
 		act 'Walk to the Metro': minut += 5 & gt 'metro', 'start'
 	end
+	if evt_chk = '1':
+		!! We've got an event today, check it's location:
+		gs 'emp_functions', 'disp_evt', 3
+	end
 
 	act 'Wait':gs 'obj_din', 'wait'
 

+ 4 - 0
locations/city_residential.qsrc

@@ -93,6 +93,10 @@ end
 
 act 'Walk to the central park (0:20)': minut += 20 & gt 'city_park', 'start'
 act 'Walk to the lake': minut += 40 & gt 'city_lake', 'start'
+if evt_chk = '1':
+	!! We've got an event today, check it's location:
+	gs 'emp_functions', 'disp_evt', 3
+end
 
 act 'Wait':gs 'obj_din', 'wait'
 

+ 148 - 60
locations/emp_functions.qsrc

@@ -179,66 +179,125 @@ end
 !! v. 02 - UI improvements and feature feedback
 !! V. 03 - Initial integration into mainline code
 
-if $ARGS[0] = 'evt_init':
-
-!! Placeholder, pending integration
-
+if $ARGS[0] = 'evt_init' :
+	!! Placeholder, pending integration
+	gt $loc, $loc_arg
 end
 
 
 if $ARGS[0] = 'disp_evt':
-	*clr & cla
-
 	if ARGS[1] = '1':
 		gs 'emp_functions','evt_day_suffix'
 
-		'Hi <<$pcs_nickname>>, I have this job for you do you want to acccept it?'
+		'I have this job for you do you want to acccept it?'
 		*nl
-		'Event Scheduled for: ' + transient_evt_day + $evt_suffix + ', '+ $monthName[transient_evt_month] +' '+ ' 20' + transient_evt_year
+		'Event Scheduled for: ' + transient_evt_day + $evt_suffix + ', '+ $monthName[transient_evt_month] +' '+ '20' + transient_evt_year
 		'Job: ' + $evt_job[transient_evt_type]
 		'Pay: ' + transient_evt_wages
 		'Time: ' + transient_evt_hour + ':' +  iif(transient_evt_minutes  >= 0 and transient_evt_minutes <= 4, '00',  '30')
-		'Duration: ' + transient_evt_duration  + iif(transient_evt_duration	 = 1, ' hour',	' hours')
-		'location reminder: ' + $transient_mc_locat
+		'Duration: ' + transient_evt_duration  + iif(transient_evt_duration  = 1, ' hour',  ' hours')
+		'Location reminder: ' + $transient_mc_locat
+		'Job Details: ' + $transient_desc
 
 		act 'Accept the job' : gs 'emp_functions', 'cat_evt'
 		act 'Decline the job':
-			gs 'emp_functions',	 'del_evt', 1
-			gt 'emp_functions', 'init'
+			gs 'emp_functions',  'del_evt', 1
+			gt 'emp_functions', 'evt_init'
 		end
 	end
 
 
-	! create table for all jobs:
+	!! create table for all jobs:
 	if ARGS[1] = 2:
 
-	if evt_event[0] ! '':
-
-		killvar '$tablebody'
-		job_idx = 0
-		'<center><h2>Current Task List</h2></center>'
-		*nl
-		:jmp_list_create
-
+		if evt_event[0] ! '':
+			killvar '$evtbody'
+			job_idx = 0
+			*nl
+			:jmp_list_create
+				if evt_silent[job_idx] = 1:
+					$evtbody += '<tr><td>' +$week[evt_dow[job_idx]]+' '+ evt_day[job_idx] + $evt_suffix + ', '+ $monthName[evt_month[job_idx]] +' 20'+ evt_year[job_idx] + '</td><td>' + $evt_job[evt_event[job_idx]] + '</td>'
+					$evtbody += '<td>' + evt_wages[job_idx] + '₽</td><td>' + evt_hour[job_idx] + ':' +  iif(evt_minutes[job_idx] >= 0 and evt_minutes[job_idx] <= 4, '00', '30') + '</td>'
+					$evtbody += '<td>' + evt_duration[job_idx] + iif(evt_duration[job_idx]  = 1, ' hour',  ' hours') + '</td><td>' + $evt_mc_locat[job_idx] + '</td>'
+					$evtbody += '<td><a  href="exec: gs ''emp_functions'',''del_evt'', 2, <<job_idx>>"><img src="images\system\icons\evt_del.png"></a></a></td></tr>'
+				end
+				job_idx += 1
+				if job_idx < arrsize('evt_event') : jump 'jmp_list_create'
+				if evt_silent[job_idx] = 1:
+					'<center><h2>Current Task List</h2></center>'
+					$evtheader = '<tr><th>Date</th><th>Task</th><th>Pay</th><th>Time</th><th>Duration</th><th>Location</th><th>Cancel Job</th></tr>'
+					'<center><table width="90%" align="center" width="90%" cellspacing="5" cellpadding="5" valign="top"><tr><<$evtheader>><<$evtbody>></tr></table></center>'
+				end
+				killvar '$evtbody'
+				killvar '$evtheader'
+			else
+				'You haven''t taken on any jobs yet.'
+			end
+	end
+	!! Display the location acts
+
+	if ARGS[1] = 3 and evt_chk = '1':
+		act_idx = 0
+		act_tracker = 0
+		act_found = 0
+		:jmp_act_create
+			 if evt_hour[act_tracker] = hour or evt_hour[act_tracker] = (hour -1):
+				act_found = 1
+				act_idx = act_tracker
+			 end
+			 act_tracker +=1
+		if act_tracker < arrsize('evt_event') or act_found = 0: jump 'jmp_act_create'
+		if ((evt_hour[act_idx] = hour and evt_minutes[act_idx] <= minut) or evt_hour[act_idx] = (hour - 1)) and $loc = $evt_loc[act_idx]:
+			act 'Attend your ' + $evt_job[evt_event[act_idx]] + ' event':
+				gs 'emp_functions', 'array_init'
+				gt $evt_loc[act_idx], $evt_loc_arg[act_idx]
+				killvar 'act_tracker'
+				killvar 'act_found'
+			end
+		end
+	end
+end
 
-			$tablebody += '<tr><td>' +$week[evt_dow[job_idx]]+' '+ evt_day[job_idx] + $evt_suffix + ', '+ $monthName[evt_month[job_idx]] +' 20'+ evt_year[job_idx] + '</td><td>' + $evt_job[evt_event[job_idx]] + '</td>'
-			$tablebody += '<td>' + evt_wages[job_idx] + '</td><td>' + evt_hour[job_idx] + ':' +	 iif(evt_minutes[job_idx]  >= 0 and evt_minutes[job_idx] <= 4, '00',  '30') + '</td>'
-			$tablebody += '<td>' + evt_duration[job_idx] + iif(evt_duration[job_idx]  = 1, ' hour',	 ' hours') + '</td><td>' + $transient_mc_locat + '</td>'
-			$tablebody += '<td><a  href="exec: gs ''emp_functions'',''del_evt'', 2, <<job_idx>>"><img src="images\system\icons\evt_del.png"></a></a></td></tr>'
+if $ARGS[0] = 'gen_evt':
+	!! Get the current year - remove 2000 to get the right year for search function.
+	transient_evt_year = year - 2000
 
-			job_idx += 1
-			if job_idx < arrsize('evt_event') : jump 'jmp_list_create'
+	!! Figure out the month for the seed and ensure it rolls over into new calendar year.
+	if month = 12:
+		evt_mseed = 1
+		transient_evt_year += 1
+	else
+		evt_mseed = month + 1
+	end
 
-			$tableheader = '<tr><th>Date</th><th>Task</th><th>Pay</th><th>Time</th><th>Duration</th><th>Location</th><th>Cancel Job</th></tr>'
-			'<center><table width="90%" align="center" width="90%" cellspacing="5" cellpadding="5" valign="top"><tr><<$tableheader>><<$tablebody>></tr></table></center>'
-			act 'Return' : killvar '$tablebody' & gt 'emp_functions', 'init'
+	!! randomise the month and month + 1
+	transient_evt_month = rand(month,  evt_mseed)
+	:jmp_job_create
+		if transient_evt_month = month:
+			if (day + 7) > monthsend[transient_evt_month]:
+				transient_evt_month += 1
+				evt_dseed = 1
+			end
 		else
-			'You haven''t taken on any jobs yet.'
+			evt_dseed = day + 1
 		end
-	end
-end
+		rnd_day = rand(evt_dseed, monthsend[transient_evt_month])
+	if transient_evt_month  = month and rnd_day <= day: jump 'jmp_job_create'
 
-if $ARGS[0] = 'gen_evt':
+	!! Set event transients - will be deleted upon completion
+	transient_evt_hour = rand(9, 20)
+
+	!! For simplicity sake make minutes on the hour or at half hour intervals, store as a single int.
+	transient_evt_minutes = rand(0, 9)
+
+	!! Set as multiples of 60
+	transient_evt_duration = rand(1,8)
+
+	!! logic check for when randomising event duration
+
+	if transient_evt_duration + transient_evt_hour >= 22:
+		transient_evt_hour = 22 - transient_evt_duration
+	end
 
 	!! find a suitable date
 
@@ -251,18 +310,15 @@ if $ARGS[0] = 'gen_evt':
 	end
 
 	:setdayloop
-	gs 'shortgs', 'dow',  transient_evt_year, transient_evt_month,	srch_day_l
-	! 'idx day: ' + srch_day_l
-	if result =	 transient_evt_dow:
+	gs 'shortgs', 'dow',  transient_evt_year, transient_evt_month,  srch_day_l
+	if result =  transient_evt_dow:
 		transient_evt_day = srch_day_l
-		!'Day of week <<transient_evt_day>> : <<$week[result]>> '
 	srch_day_l = 99
 	else
 	srch_day_l += 1
 	end
 
 	if srch_day_l <= srch_day_u: jump 'setdayloop'
-
 end
 
 ! ------ Helper Functions ------
@@ -281,9 +337,10 @@ if $ARGS[0] = 'job_evt':
 end
 
 if $ARGS[0] = 'wage_evt':
-!! calculate wages
-!! Assume you''ll never earn less than 100 roubles
-!! 0 for none, 1 - for a small payment (100-500),  2 - moderate payment (500-1000) or 3 - large payment (1000-2000)
+	!! calculate wages
+	!! Assume you''ll never earn less than 100 roubles
+	!! 0 for none, 1 - for a small payment (100-500),  2 - moderate payment (500-1000), 3 - large payment (1000-2000),  4 - huge payment (2000-4000)
+	!! 5 is for custom payments
 
 	if ARGS[1] = 0:
 		transient_evt_wages = 0
@@ -293,42 +350,64 @@ if $ARGS[0] = 'wage_evt':
 		transient_evt_wages =  func('shortgs','round_tool',rand(500,1000), 50)
 	elseif ARGS[1] = 3:
 		transient_evt_wages =  func('shortgs','round_tool',rand(1000,2000), 50)
-	elseif ARGS[1] > 4:
-	transient_evt_wages	 = ARGS[2]
+	elseif ARGS[1] = 4:
+		transient_evt_wages =  func('shortgs','round_tool',rand(2000,4000), 50)
+	elseif ARGS[1] = 5:
+		transient_evt_wages  = ARGS[2]
 	end
 end
 
 if $ARGS[0] = 'cat_evt':
+	!! Construct Array Table  and clear transients when an event is created and accepted.
 
-!! Construct Array Table  and clear transients when an event is created and accepted.
+	!! Create global variables for the current live event.
 
-!! Create global variables for the current live event.
+	!! Use 0 to create hidden events, 1 to show in journal
 	evt_silent[] = transient_evt_silent
+	!! Event type used in Journal
 	evt_event[] = transient_evt_type
+	!! Additional ID if required
+	evt_event_sub[] = transient_evt_sub_type
+	!! Day of Week used in Journal and content areas
 	evt_dow[] = transient_evt_dow
+	!! Event Date to check against current date & used in Journal and content areas
 	evt_day[] = transient_evt_day
+	!! Event month to check against current month & used in Journal and content areas
 	evt_month[] =  transient_evt_month
+	!! Event Year to check against year & used in Journal and content areas
 	evt_year[] = transient_evt_year
+	!! Event hour to check against hour & used in Journal and content areas
 	evt_hour[] = transient_evt_hour
+	!! Event minutes to check against minut & used in Journal and content areas
 	evt_minutes[] = transient_evt_minutes
+	!! How long the event is to last
 	evt_duration[] = transient_evt_duration
+	!! How much wages, generated or manual using function
 	evt_wages[] = transient_evt_wages
+	!! Journal location as reminder
 	$evt_mc_locat[] = $transient_mc_locat
+	!! The following are event location triggers to allow the content to appear in areas such as community centre but host their content elsewhere such as Photography shop
+	!! 	Event area triggers such as city_residential
 	$evt_loc[] = $transient_loc
 	$evt_loc_arg[] = $transient_arg
-	$evt_exec[] = $transient_trigger
-	$evt_media[] = $transient_img
-
-
-	'Job accepted, you currently have ' + arrsize('evt_event') + ' jobs assigned to you. Please look at your journal for more information.'
-	gs 'emp_functions',	 'del_evt', 1
-	act 'Return': gt 'emp_functions', 'evt_init'
+	!! Content location - optional
+	$evt_trigger_exec = $transient_evt_exec
+	$evt_trigger[] = $transient_trigger
+	!! Journal and event description
+	$evt_desc[] = $transient_desc
+
+	if transient_evt_silent = 1:
+		*clr & cla
+		'Job accepted, you currently have ' + arrsize('evt_event') + ' jobs assigned to you. Please look at your journal for more information.'
+		gs 'emp_functions',  'del_evt', 1
+		act 'Return': gt 'emp_functions', 'evt_init'
+	end
 end
 
 !! delete event after firing or cancelled
 
 if $ARGS[0] = 'del_evt':
-! Delete transients
+	!! Delete transients
 	if ARGS[1] = 1:
 		killvar 'transient_evt_silent'
 		killvar 'transient_event_type'
@@ -342,6 +421,7 @@ if $ARGS[0] = 'del_evt':
 		killvar '$transient_arg'
 		killvar '$transient_trigger'
 		killvar '$transient_img'
+		killvar '$transient_desc'
 		killvar 'rnd_min'
 		killvar 'mseed'
 		killvar 'dseed'
@@ -378,6 +458,8 @@ if $ARGS[0] = 'del_evt':
 					killvar '$evt_loc_arg', evt_idx
 					killvar '$evt_exec', evt_idx
 					killvar '$evt_media', evt_idx
+					killvar '$evt_desc', evt_idx
+
 					act 'Return': gt 'emp_functions', 'init'
 				end
 				act 'Cancel': gt 'emp_functions', 'init'
@@ -418,6 +500,18 @@ if $ARGS[0] = 'evt_day_suffix':
 	killvar 'query_day'
 end
 
+if $ARGS[0] = 'evt_day_chk':
+	!! Daily event trigger to check if there is an event at currently location to reduce calls/overheads
+	evt_chk = 0
+	if evt_daily_chk ! daystart:
+		evt_daily_chk = daystart
+		job_idx = 1
+		:evt_day_chk
+			if month = evt_month and day = evt_day: evt_chk = '1'
+		if job_idx < arrsize('evt_event') : jump 'evt_day_chk'
+	end
+end
+
 !! --------------------- End Event Generator
 
 !! --------------------- Job management system
@@ -510,9 +604,3 @@ if $ARGS[0] = 'loop_configure':
 end
 --- emp_functions ---------------------------------
 
-
-
-
-
-
-

+ 10 - 11
locations/gschool_lessons4.qsrc

@@ -1332,13 +1332,13 @@ end
 if $ARGS[0] = 'whore_bully':
 	memories['school_shower_bully_whore'] = daystart
 	school_shower_bully_whore += 1
-	!! IMAGE HERE
-	'You pick one of the empty shower heads at random and head over.'
+	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/bully_slap1.jpg"></center>'
+	'You pick one of the empty shower heads which is near the other end of the shower.'
 	*nl
 	'Without warning, you suddenly feel a hard sting on your ass.'
 	act'Yelp':
 		cla & *clr
-		!! IMAGE HERE
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/bully_slap2.jpg"></center>'
 		'You yelp in pain, swiftly turning to see Irina casually turn back to her shower. Keeping an eye on her, you take another step towards your chosen faucet when another hand whips across your backside. You whirl, seeing Stasya with an expression on her face that says, <i>What? Why are you looking at me like that?</i> You take another step when another girl reaches out and spanks your ass.'
 		'"Ow! What the fuck is your problem?!" you finally shout, looking around at everyone in bewilderment.'
 		*nl
@@ -1357,8 +1357,8 @@ if $ARGS[0] = 'whore_bully':
 		
 		act'Fume':
 			cla & *clr
-			!! IMAGE HERE
-			'Caught in the midddle, you have no choice to but to keep heading towards the shower you chose. The other girls, seemingly egged on by Bella, also reach out to swat your ass along the way. Some of them giggle as they do, but what hurts more are the ones that don''t. They clap your cheeks with movements so casual they might as well have been giving a high five in the hallway. Like it''s just how they greet you.'
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/bully_slap1.jpg"></center>'
+			'Caught in the middle, you have no choice to but to keep heading towards the shower you chose. The other girls, seemingly egged on by Bella, also reach out to swat your ass along the way. Some of them giggle as they do, but what hurts more are the ones that don''t. They clap your cheeks with movements so casual they might as well have been giving a high five in the hallway. Like it''s just how they greet you.'
 			*nl
 			'You finally reach the shower head and turn the faucet on, dousing your face. Hopefully, that way nobody will notice your tears...'
 			gs'gschool_lessons4','shower_options'
@@ -1367,12 +1367,11 @@ if $ARGS[0] = 'whore_bully':
 	
 	act'Ignore it':
 		cla & *clr
-		!! IMAGE HERE
-		if school_shower_bully_whore < 5:
-			
-		else
-		
-		end
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/bully_slap2.jpg"></center>'
+		'You do your best to ignore it and keep heading towards the shower you chose. The other girls, seemingly egged on by Bella, also reach out to swat your ass along the way. Some of them giggle as they do, but what hurts more are the ones that don''t. They clap your cheeks with movements so casual they might as well have been giving a high five in the hallway. Like it''s just how they greet you.'
+		*nl
+		'You finally reach the shower head and turn the faucet on, dousing your face. Hopefully, that way nobody will notice your tears...'
+		gs'gschool_lessons4','shower_options'
 	end
 end
 

+ 92 - 12
locations/gschool_post_shower.qsrc

@@ -187,7 +187,7 @@ if $ARGS[0] = 'post_shower':
 				if rand (1,4) = 1:
 					if christinaQW['fight'] = 1 or christinaQW['blackmail'] = 2:
 						'You look a bit too long and she seems to realize that she''s being watched and turns to face you. You give her a look and she reluctantly turns back to her locker, not saying anything.'
-					elseif fame['pav_slut'] >= 225:
+					elseif fame['pav_slut'] >= 250:
 						sveta_dyke_rumor += 1
 						'She catches you looking at her and angrily glares at you. "No, bitch! I won''t fuck you."'
 						'The girls around you look up to figure out what''s happening and start laughing at you. You decide it''s time to get dressed and leave.'
@@ -372,7 +372,7 @@ if $ARGS[0] = 'post_shower':
 					if LariskaQW['story'] >= 8:
 						'Feeling you watching her, she looks in your direction. Seeing you, she gives you a sweet smile and a wink before turning a little red. You wink back with your own smile.'
 						'You think it''s probably time to get dressed before somebody else notices the two of you silently flirting with each other.'
-					elseif fame['pav_slut'] >= 225 or grupTipe = 5:
+					elseif fame['pav_slut'] >= 250 or grupTipe = 5:
 						'Feeling somebody watching her, she looks around until she sees you. Turning red, she gives you a strange look before going back to getting dressed.'
 						'You should get dressed before somebody else notices you staring at her.'
 					elseif npc_rel['A13'] >= 50:
@@ -492,7 +492,7 @@ if $ARGS[0] = 'post_shower':
 					if avelinaQW['encourage'] >= 1:
 						'Feeling your eyes on her, she looks in your direction. Seeing you staring, she gives you a warm smile before going back to getting dressed.'
 						'You should get back to getting dressed before others notice you staring.'
-					elseif fame['pav_slut'] >= 225:
+					elseif fame['pav_slut'] >= 250:
 						'Feeling your eyes on her, she looks in your direction. Seeing you staring, she covers her breasts with her arm and makes a rude gesture at you.'
 						'Taking the hint, you get back to getting dressed before she starts a scene.'
 					elseif grupTipe = 5:
@@ -522,7 +522,7 @@ if $ARGS[0] = 'post_shower':
 		act 'Check out Lizaveta':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/locker/lizpeek.jpg"></center>'
-			'Lizaveta has reddish-brown hair that goes just past her shoulders. Allowing your eyes to wander, you see she has a neatly trimmed triangle of pubic hair.'
+			'You take a peek at Lizaveta as she starts to get dressed. She has reddish-brown hair that goes just past her shoulders. Allowing your eyes to wander, you see she has a neatly trimmed triangle of pubic hair.'
 			if tits < 2:
 				'Looking further, you notice her breasts are a little small, but have a nice firm shape to them. Her bust is bigger than yours, but smaller than most of your classmates.'
 			elseif tits = 2:
@@ -539,7 +539,7 @@ if $ARGS[0] = 'post_shower':
 					gs 'fame', 'pav', 'sex', 10
 					sveta_dyke_rumor += 1
 					'She is constantly chatting with other girls walking past. Her mouth never seems to stop moving.'
-					if fame['pav_slut'] >= 200:
+					if fame['pav_slut'] >= 225:
 						'Noticing you checking her out, she covers her breasts. "Oh my god, slut! Quit staring at me!"'
 						'The other girls look up to see what''s happening. When they see who she''s talking to, they start covering themselves and bitching at you or giving you dirty looks.'
 						'Now would be a good time to get dressed and get out of here, before this gets even more awkward.'
@@ -573,10 +573,51 @@ if $ARGS[0] = 'post_shower':
 				end
 			end
 		end
+		act 'Check out Natalia':
+			*clr & cla
+			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/locker/natapeek.jpg"></center>'
+			'You take a peek at Natalia as she starts to get dressed. Her body is slim, while her brown hair hangs part way down her back. Allowing your eyes to wander, you see she her pubic hair is neatly trimmed. She has that cute girl next door level of looks.'
+			if tits < 3:
+				'Upon inspection, you notice her breasts are about average, but have a nice firm shape to them. Her bust is bigger than yours, but about average sized compared to the rest of your classmates.'
+			elseif tits = 3:
+				'Upon inspection, you notice her breasts are the same size as your own, with a nice firm shape to them. However, compared to the other girls, her breasts are about average sized.'
+			else
+				'Upon inspection, you notice her breasts have a nice firm shape to them. However, compared to you and your classmates, her breasts are about average sized.'
+			end
+			*nl
+			gs'arousal','erotic_nudity', 3
+			gs 'stat'
+			act 'Get dressed':gs 'arousal', 'end' & gt 'gschool_lessons4', 'dress'
+			act 'Keep checking her out':
+				cla
+				sveta_dyke_rumor += 1
+				if rand (1,4) = 1:
+					if fame['pav_slut'] >= 175:
+						'After finishing her shower and returning to the changing room she opens her locker and starts getting dressed when she seems to realize someone is looking at her and suddenly turns and looks in your direction. Seeing you looking at her, she gives you an icy glare and turns away covering herself up as best she can. You''re embarrassed that you got caught but are glad that she didn''t say anything as that would have been awkward for you. You turn away and finish dressing yourself before leaving.'
+					elseif grupTipe = 5:
+						'After finishing her shower and returning to the changing room she opens her locker and starts getting dressed when she seems to realize someone is looking at her and suddenly turns and looks in your direction. Seeing you looking at her, she glares at you and is obviously unhappy that you were staring at her so she turns away covering herself up as best she can. You''re embarrassed at your actions and thankful that she didn''t say anything as that wouldn''t have helped in your efforts to make friends with your classmates. You turn away and finish dressing yourself before leaving.'
+					elseif npc_rel['A240'] >= 60:
+						'After finishing her shower and returning to the changing room she opens her locker and starts getting dressed when she seems to realize someone is looking at her and suddenly turns and looks in your direction. Seeing you looking at her, she gives you a fleeting shy smile then immediately blushes but quickly winks at you before turning away a little embarrassed by your actions and probably at her own reaction as well. You smile inwardly and are glad that she didn''t say anything as that would have been awkward for you. as you finish getting dressed before leaving.'
+					elseif npc_rel['A240'] <= 20:
+						'After finishing her shower and returning to the changing room she opens her locker and starts getting dressed when she seems to realize someone is looking at her and suddenly turns and looks in your direction. Seeing you looking at her, she gives you an icy glare and turns away covering herself up as best she can. For a moment it looked as though she''d call you out but for some reason she didn''t. You''re thankful for that as it was embarrassing enough that you got caught without her adding to it! You turn away and finish dressing yourself before leaving.'
+					else
+						'After finishing her shower and returning to the changing room she opens her locker and starts getting dressed when she seems to realize someone is looking at her and suddenly turns and looks in your direction. Seeing you looking at her, she shakes her head and is obviously disappointed in you then turns away and continuers dressing. You''re embarrassed that you got caught and turn away before you cause her any further discomfort and finish dressing yourself before leaving.'
+					end
+					gs'arousal','erotic_nudity', 3
+					gs 'stat'
+					act 'Get dressed':gs 'arousal', 'end' & gt 'gschool_lessons4', 'dress'
+				else
+					'After a few minutes, you look away, not wanting to get caught staring and sucked into an awkward conversation.'
+					gs'arousal','erotic_nudity', 3
+					gs 'stat'
+					act 'Get dressed':gs 'arousal', 'end' & gt 'gschool_lessons4', 'dress'
+				end
+			end
+		end
 		act 'Check out Natasha':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/locker/natpeek.jpg"></center>'
-			'Natasha has very long light brown hair reaching half way down her back. Allowing your eyes to wander, you see she has a neatly trimmed triangle of pubic hair. She has that cute girl next door level of looks.'
+			'You take a peek at Natasha as she starts to get dressed. She has very long light brown hair reaching half way down her back. Allowing your eyes to wander, you see she has a neatly trimmed triangle of pubic hair. She has that cute girl next door level of looks.'
 			if tits < 5:
 				'Looking closer, you notice her breasts are large, but have a nice firm shape to them. She has the biggest breasts in the entire class, although the popular girls would never admit their jealousy.'
 			elseif tits = 5:
@@ -597,7 +638,7 @@ if $ARGS[0] = 'post_shower':
 					elseif npc_rel['A16'] >= 50:
 						'She is standing in front of her locker with the door open, apparently deciding on something. Seeing you staring, she covers herself as best she can and turns away, her face red.'
 						'You should probably get dressed and leave before this gets more awkward.'
-					elseif npc_rel['A16'] <= 20 or grupTipe = 5 or fame['pav_slut'] >= 200:
+					elseif npc_rel['A16'] <= 20 or grupTipe = 5 or fame['pav_slut'] >= 175:
 						'She is standing in front of her locker with the door open, apparently deciding on something. Seeing you staring, she covers herself as best she can and turns away, her face red with anger.'
 						'You should probably get dressed and leave before this gets more awkward.'
 					else
@@ -1024,7 +1065,7 @@ if $ARGS[0] = 'post_shower2':
 			if rand (1,4) = 1:
 				if christinaQW['fight'] = 1 or christinaQW['blackmail'] = 2:
 					'After a few minutes, she feels your gaze and looks in your direction. You give her a look and she reluctantly goes back to her shower, occasionally stealing looks your way to see if you''re still watching her.'
-				elseif fame['pav_slut'] >= 225:
+				elseif fame['pav_slut'] >= 250:
 					sveta_dyke_rumor += 1
 					'She catches you looking at her and angrily glares at you. "No, bitch! I won''t fuck you!"'
 					'The girls around you look up, figure out what''s happening, and start laughing at you. You think now might be a good time to end your shower.'
@@ -1212,7 +1253,7 @@ if $ARGS[0] = 'post_shower2':
 				if LariskaQW['story'] >= 8:
 					'Almost as if she knew you were looking, she turns her naked body towards you. Her eyes are closed, but a flush starts creeping up her neck. She starts to cup her perky little breasts but stops, seemingly remembering she is in a public place.'
 					'Smiling to yourself, you think you should probably finish your shower before somebody notices you oggling her naked body.'
-				elseif fame['pav_slut'] >= 225 or grupTipe = 5:
+				elseif fame['pav_slut'] >= 250 or grupTipe = 5:
 					'Feeling somebody watching her, she looks around until she sees you. Turning red, she gives you a strange look before going back to showering.'
 					'You should finish your shower before somebody else notices you staring at her.'
 				elseif npc_rel['A13'] >= 50:
@@ -1332,7 +1373,7 @@ if $ARGS[0] = 'post_shower2':
 				if avelinaQW['encourage'] >= 1:
 					'She seems to be enjoying her shower when she suddenly stops and looks at you. Seeing you staring, she gives you a warm smile before continuing her shower.'
 					'You should get back to your own shower before others notice you staring.'
-				elseif fame['pav_slut'] >= 225:
+				elseif fame['pav_slut'] >= 250:
 					'She seems to be enjoying her shower when she suddenly stops and looks at you. Seeing you staring, she sneers and mutters "lesbo slut" loud enough for you to hear. She then goes back to her shower and ignores you.'
 					'You should get back to your own shower before others notice you staring.'
 				elseif grupTipe = 5:
@@ -1378,7 +1419,7 @@ if $ARGS[0] = 'post_shower2':
 			if rand (1,4) = 1:
 				gs 'fame', 'pav', 'sex', 10
 				sveta_dyke_rumor += 1
-				if fame['pav_slut'] >= 200:
+				if fame['pav_slut'] >= 225:
 					'She seems to be enjoying her shower when she looks in your direction and notices you staring at her. "What do you want, slut? Can''t get enough cock to satisfy you?"'
 					'Startled, you look away, but the damage is already done. You can hear her telling the others that you were staring at her while she showered.'
 					'It would be best for you to finish your shower and leave before things get worse.'
@@ -1410,6 +1451,45 @@ if $ARGS[0] = 'post_shower2':
 			end
 		end
 	end
+	act 'Check out Natalia':
+		*clr & cla
+		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/watchnata.jpg"></center>'
+		'Your attention focuses in on Natalia, who lets the water from the shower run over her head while appearing to cradle her body as she rinsing herself. Her body is slim. Her brown hair hangs part way down her back, allowing your eyes to wander, you see she her pubic hair is neatly trimmed. She has that cute girl next door level of looks.'
+		if tits < 3:
+			'Upon inspection, you notice her breasts are about average, but have a nice firm shape to them. Her bust is bigger than yours, but about average sized compared to the rest of your classmates.'
+		elseif tits = 3:
+			'Upon inspection, you notice her breasts are the same size as your own, with a nice firm shape to them. However, compared to the other girls, her breasts are about average sized.'
+		else
+			'Upon inspection, you notice her breasts have a nice firm shape to them. However, compared to you and your classmates, her breasts are about average sized.'
+		end
+		gs'arousal','erotic_nudity', 3
+		gs 'stat'
+		act 'Stop peeping':gs 'arousal', 'end' & gs 'gschool_lessons4','shower_watch_end'
+		act 'Keep checking her out':
+			cla
+			if rand (1,4) = 1:
+				if fame['pav_slut'] >= 175:
+					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you looking at her, she glares at you as she turns away covering herself up as best she can. You''re a little embarrassed that you got caught but are glad that she didn''t say anything as that would have been awkward for you. You turn away and finish your shower before leaving.'
+				elseif grupTipe = 5:
+					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you looking at her, she immediately turns away covering herself up as best she can. You''re embarrassed that she caught you but glad she didn''t say anything as that wouldn''t have helped you in your efforts to make friends with your classmates. You turn away and finish your shower before leaving.'
+				elseif npc_rel['A240'] >= 60:
+					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you looking at her, she smiles shyly and blushes then winks at you before turning away clearly somewhat embarrassed. You smile inwardly but are glad that she didn''t say anything as that would have been awkward while finishing your shower and leaving.'
+				elseif npc_rel['A240'] <= 20:
+					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you looking at her, she glares at you giving you an icy look before immediately turning away covering herself up as best she can. You''re embarrassed that she caught you and you feel that you need to respect her privacy going forward. You turn away and finish your shower before leaving.'
+				else
+					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you looking at her, she turns away covering herself up as best she can. You feel that your actions have caused embarrassment for both of you. You turn away and finish your shower before leaving.'
+				end
+				gs'arousal','erotic_nudity', 3
+				gs 'stat'
+				act 'Get dressed':gs 'arousal', 'end' & gt 'gschool_lessons4', 'dress'
+			else
+				'After watching her a little longer, you decide you''ve looked enough and turn back to your shower to turn the faucet off. Grabbing a towel, you start drying off as you pad your way back to your locker.'
+				gs'arousal','erotic_nudity', 3
+				gs 'stat'
+				act 'Go to the locker room':gs 'arousal', 'end' & gt 'gschool_lessons4','dress'
+			end
+		end
+	end
 	act 'Check out Natasha':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/gym/shower/watchnat.jpg"></center>'
@@ -1434,7 +1514,7 @@ if $ARGS[0] = 'post_shower2':
 				elseif npc_rel['A16'] >= 50:
 					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you staring, she covers herself as best she can and turns away, her face red.'
 					'You should finish your shower and leave before this gets more awkward.'
-				elseif npc_rel['A16'] <= 20 or grupTipe = 5 or fame['pav_slut'] >= 200:
+				elseif npc_rel['A16'] <= 20 or grupTipe = 5 or fame['pav_slut'] >= 175:
 					'She seems to be enjoying her shower when she suddenly stops and looks in your direction. Seeing you staring, she covers herself as best she can and turns away, her face red with anger.'
 					'You should finish your shower and leave before this gets more awkward.'
 				else

+ 7 - 2
locations/journal_work.qsrc

@@ -5,7 +5,7 @@
 !! Game Character work section. This is the container file for all work roles in game. Used to track income, work days and other relevant data.
 !! V .01 Refactored code from Journal section into it''s own section to make legibility easier.
 !! V. 02 New job schedule system integrated
-!!
+!! V. 03 New Ad Hoc management interface integration - ongoing
 
 if $ARGS[0] = 'start':
 
@@ -14,13 +14,18 @@ if $ARGS[0] = 'start':
 	act 'Return to top journal page': gt 'journal', 'records'
 	$jumploc = 'worktab'
 	gs 'journal', 'journalmenu'
+	
 	'<center><h2>Work</h2></center>'
 	if emp_job[active] < 1:
 		'You need to find a job or get training to develop your career. Check the Quests or Information section.'
 	else
 		function_sw = 2
 		gs 'emp_functions', 'gen_schedule'
-	end
+		
+	end	
+	!! Show any ad hoc events or contracts
+	
+	if arrsize('evt_event') ! 0: gs 'emp_functions', 'disp_evt', 2
 	
 	if workPTU > 2:'You work as a teacher at the Lycée and your schedule is Monday to Saturday, teaching between 14:00 and 16:00. Your salary is 300 <b>₽</b> per day.'
 	if (work = 1 or cheatWork = 1) and workKafe['job'] > 0:'You are working as a waitress at The Roadhouse cafe. You need to come to work between 11:00-12:00 while your working days are: Tuesday, Wednesday, and Thursday. At work, you can receive tips from customers and your wages are received on 25th of each month.'

+ 12 - 12
locations/lusso.qsrc

@@ -39,21 +39,21 @@ if $ARGS[0] = 'panties':
 
 	i = 1
 
-	:loopboutique_panties
-		if boutique_panties[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''panties2''"><img src="images/pc/items/lusso/panties/<<i>>.jpg" 	height="150" /></a> '
+	:looplusso_panties
+		if lusso_panties[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''panties2''"><img src="images/pc/items/lusso/panties/<<i>>.jpg" 	height="150" /></a> '
 		i += 1
-	if i <= 82:jump 'loopboutique_panties'
+	if i <= 82:jump 'looplusso_panties'
 end
 
 if $ARGS[0] = 'panties2':
 	cla
 	menu_off = 1
-	if boutique_panties[i] ! 0:
+	if lusso_panties[i] ! 0:
 		msg 'You already own these panties.'
 		gt 'lusso', 'panties'
 	end
 
-	gt 'panties', 'view_panty_item', 'shop', 'boutique',i, 1000
+	gt 'panties', 'view_panty_item', 'shop', 'lusso',i, 1000
 
 end
 
@@ -70,21 +70,21 @@ if $ARGS[0] = 'bras':
 
 	i = 1
 
-	:loopboutique_bras
-		if boutique_bras[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''bras2''"><img src="images/pc/items/lusso/bras/<<i>>.jpg" 	height="150" /></a> '
+	:looplusso_bras
+		if lusso_bras[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''bras2''"><img src="images/pc/items/lusso/bras/<<i>>.jpg" 	height="150" /></a> '
 		i += 1
-	if i <= 33:jump 'loopboutique_bras'
+	if i <= 33:jump 'looplusso_bras'
 end
 
 if $ARGS[0] = 'bras2':
 	cla
 	menu_off = 1
-	if boutique_bras[i] ! 0:
+	if lusso_bras[i] ! 0:
 		msg 'You already own these bras.'
 		gt 'lusso', 'bras'
 	end
 
-	gt 'bras', 'view_bra_item', 'shop', 'boutique',i, 1000
+	gt 'bras', 'view_bra_item', 'shop', 'lusso',i, 1000
 
 end
 
@@ -102,7 +102,7 @@ if $ARGS[0] = 'bodysuit':
 	i = 1
 
 	:looplusso_bodysuit
-		if boutique_bodysuit[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''bodysuit2''"><img src="images/pc/items/lusso/bodysuits/<<i>>.jpg" 	height="250" /></a> '
+		if lusso_bodysuit[i] = 0:*p '<a href="exec: i = <<i>> & gt ''lusso'', ''bodysuit2''"><img src="images/pc/items/lusso/bodysuits/<<i>>.jpg" 	height="250" /></a> '
 		i += 1
 	if i <= 90:jump 'looplusso_bodysuit'
 end
@@ -110,7 +110,7 @@ end
 if $ARGS[0] = 'bodysuit2':
 	cla
 	menu_off = 1
-	if boutique_bodysuit[i] ! 0:
+	if lusso_bodysuit[i] ! 0:
 		msg 'You already own this bodysuit.'
 		gt 'lusso', 'bodysuit'
 	end

+ 23 - 44
locations/panties.qsrc

@@ -49,26 +49,26 @@ if $ARGS[0] = 'view_panty_list':
 	'<center><img src="images/locations/city/citycenter/mall/gm.png"></center>'
 
 	i = 1
-	:loopcheappanties 
-	if cheap_pantiesS[i] = metka_panties and cheap_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''cheap'', <<i>>"><img src="images/pc/items/gm/panties/<<i>>.jpg" 	height="150" /></a>'
+	:loopgmpanties 
+	if gm_pantiesS[i] = metka_panties and gm_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''gm'', <<i>>"><img src="images/pc/items/gm/panties/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('cheap_panties'):jump 'loopcheappanties'
+	if i <= ARRSIZE('gm_panties'):jump 'loopgmpanties'
 
 	'<center><img src="images/locations/city/citycenter/mall/Lusso.png"></center>'
 
 	i = 1
-	:loopboutiquepanties 
-	if boutique_pantiesS[i] = metka_panties and boutique_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''boutique'', <<i>>"><img src="images/pc/items/lusso/panties/<<i>>.jpg" 	height="150" /></a>'
+	:looplussopanties 
+	if lusso_pantiesS[i] = metka_panties and lusso_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''lusso'', <<i>>"><img src="images/pc/items/lusso/panties/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('boutique_panties'):jump 'loopboutiquepanties'
+	if i <= ARRSIZE('lusso_panties'):jump 'looplussopanties'
 
 	'<center><img src="images/locations/pushkin/exhibitshop/shop_name.png"></center>'
 
 	i = 1
-	:loopexhibitionistpanties 
-	if exhibitionist_pantiesS[i] = metka_panties and exhibitionist_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''exhibitionist'', <<i>>"><img src="images/pc/items/salacious/panties/<<i>>.jpg" 	height="150" /></a>'
+	:loopsalaciouspanties 
+	if salacious_pantiesS[i] = metka_panties and salacious_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''salacious'', <<i>>"><img src="images/pc/items/salacious/panties/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('exhibitionist_panties'):jump 'loopexhibitionistpanties'
+	if i <= ARRSIZE('salacious_panties'):jump 'loopsalaciouspanties'
 
 	'<center><img src="images/locations/city/citycenter/mall/fashionista.png"></center>'
 
@@ -89,18 +89,18 @@ if $ARGS[0] = 'view_panty_list':
 	'<center><img src="images/locations/city/redlight/erotomaniac/shop_name.png"></center>'
 
 	i = 1
-	:loopsexshoppanties 
-	if sexshop_pantiesS[i] = metka_panties and sexshop_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''sexshop'', <<i>>"><img src="images/pc/items/eroto/panties/<<i>>.jpg" 	height="150" /></a>'
+	:looperotopanties 
+	if eroto_pantiesS[i] = metka_panties and eroto_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''eroto'', <<i>>"><img src="images/pc/items/eroto/panties/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('sexshop_panties'):jump 'loopsexshoppanties'
+	if i <= ARRSIZE('eroto_panties'):jump 'looperotopanties'
 
 	'<center><img src="images/locations/city/citycenter/mall/sports.png"></center>'
 
 	i = 1
-	:loopsportpanties 
-	if sport_pantiesS[i] = metka_panties and sport_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''sport'', <<i>>"><img src="images/pc/items/danilovich/panties/<<i>>.jpg" 	height="150" /></a>'
+	:loopdanilovichpanties 
+	if danilovich_pantiesS[i] = metka_panties and danilovich_panties[i] = 1:*p '<a href="exec:gt ''panties'', ''view_panty_item'', ''<<$ARGS[1]>>'', ''danilovich'', <<i>>"><img src="images/pc/items/danilovich/panties/<<i>>.jpg" 	height="150" /></a>'
 	i += 1
-	if i <= ARRSIZE('sport_panties'):jump 'loopsportpanties'
+	if i <= ARRSIZE('danilovich_panties'):jump 'loopdanilovichpanties'
 end
 
 if $ARGS[0] = 'view_panty_item':
@@ -115,12 +115,9 @@ if $ARGS[0] = 'view_panty_item':
 !!	$RESULT = FUNC('$short_description', $ARGS[2], CloStyle2)
 !!	$RESULT += '<<ARGS[3]>>'
 !!	'<<$RESULT>>'
-	if BraQuality > 0:
-		gs 'underwear_descriptions', 'panties'
-		'These panties form a set with bra #<<underwear[''pair'']>>.'
-	else
-		gs 'panties', 'descriptions', $ARGS[2]
-	end
+
+	gs 'underwear_descriptions', 'panties'
+	if underwear['pair'] > 0: 'These panties form a set with bra #<<underwear[''pair'']>>.'
 
 	if $ARGS[1] = 'shop':
 		if dyneval('RESULT = <<$ARGS[2]>>_panties[<<ARGS[3]>>]') = 1:
@@ -378,32 +375,14 @@ if $ARGS[0] = 'dest2':
 	gt 'panties', 'view_panty_item', $ARGS[1], $ARGS[2], ARGS[3]
 end
 
-if $ARGS[0] = 'descriptions':
-	if $ARGS[1] = 'cheap':
-		'Cheap panties with no redeeming features.'
-	elseif $ARGS[1] = 'boutique':
-		'These panties are so beautifully made that your posture and confidence is improved wearing them boosting your appearance even when fully clothed.'
-	elseif $ARGS[1] = 'exhibitionist':
-		'These panties are so revealing that they are more exciting than not wearing any and you''ll always feel horny wearing them.'
-	elseif $ARGS[1] = 'fashionista':
-		'These panties are well made improving your posture and confidence and slightly boosting your appearance even when fully clothed.'
-	elseif $ARGS[1] = 'cats':
-		'These panties feel reassuring and wear them gives your mood a lift.'
-	elseif $ARGS[1] = 'sexshop':
-		'Tacky and cheap these panties make you look like a hooker, this could be a bonus if working as one.'
-	elseif $ARGS[1] = 'sport':
-		'These panties are designed for physical exercises to make them less tiring.'
-	end
-end
-
 if $ARGS[0] = 'sum':
-	$t[0] = 'boutique'
+	$t[0] = 'lusso'
 	$t[1] = 'cats'
-	$t[2] = 'exhibitionist'
+	$t[2] = 'salacious'
 	$t[3] = 'fashionista'
-	$t[4] = 'cheap'
-	$t[5] = 'sexshop'
-	$t[6] = 'sport'
+	$t[4] = 'gm'
+	$t[5] = 'eroto'
+	$t[6] = 'danilovich'
 	result = 0
 	i = 0
 	:loopsumpanties_i

+ 75 - 0
locations/saveupdater.qsrc

@@ -1551,6 +1551,81 @@ if ((100*version_major +version_minor)*100+version_revision)*100+version_patch <
 		killvar 'nichTanyaPropSex'
 		killvar 'nichTanyaPropDate'
 	end
+
+	i = 1
+	:loopboutiquepanties 
+	if boutique_panties[i] = 1: lusso_panties[i] = 1 & lusso_pantiesS[i] = boutique_pantiesS[i]
+	i += 1
+	if i <= ARRSIZE('boutique_panties'):jump 'loopboutiquepanties'
+	killvar 'boutique_panties'
+
+	i = 1
+	:loopboutiquebra
+	if boutique_bra[i] = 1: lusso_bra[i] = 1 & lusso_braS[i] = boutique_braS[i]
+	i += 1
+	if i <= ARRSIZE('boutique_bra'):jump 'loopboutiquebra'
+	killvar 'boutique_bra'
+
+	i = 1
+	:loopcheappanties 
+	if cheap_panties[i] = 1: gm_panties[i] = 1 & gm_pantiesS[i] = cheap_pantiesS[i]
+	i += 1
+	if i <= ARRSIZE('cheap_panties'):jump 'loopcheappanties'
+	killvar 'cheap_panties'
+
+	i = 1
+	:loopcheapbra
+	if boutique_bra[i] = 1: gm_bra[i] = 1 & gm_braS[i] = cheap_braS[i]
+	i += 1
+	if i <= ARRSIZE('cheap_bra'):jump 'loopcheapbra'
+	killvar 'cheap_bra'
+
+	i = 1
+	:loopexhibitionistpanties 
+	if exhibitionist_panties[i] = 1: salacious_panties[i] = 1 & salacious_pantiesS[i] = exhibitionist_pantiesS[i]
+	i += 1
+	if i <= ARRSIZE('exhibitionist_panties'):jump 'loopexhibitionistpanties'
+	killvar 'exhibitionist_panties'
+
+	i = 1
+	:loopexhibitionistbra
+	if exhibitionist_bra[i] = 1: salacious_bra[i] = 1 & salacious_braS[i] = exhibitionist_braS[i]
+	i += 1
+	if i <= ARRSIZE('exhibitionist_bra'):jump 'loopexhibitionistbra'
+	killvar 'exhibitionist_bra'
+
+	i = 1
+	:loopsexshoppanties 
+	if sexshop_panties[i] = 1: eroto_panties[i] = 1 & eroto_pantiesS[i] = sexshop_pantiesS[i]
+	i += 1
+	if i <= ARRSIZE('sexshop_panties'):jump 'loopsexshoppanties'
+	killvar 'sexshop_panties'
+
+	i = 1
+	:loopsexshopbra
+	if sexshop_bra[i] = 1: eroto_bra[i] = 1 & eroto_braS[i] = sexshop_braS[i]
+	i += 1
+	if i <= ARRSIZE('sexshop_bra'):jump 'loopsexshopbra'
+	killvar 'sexshop_bra'
+
+	i = 1
+	:loopsportpanties 
+	if sport_panties[i] = 1: danilovich_panties[i] = 1 & danilovich_pantiesS[i] = sport_pantiesS[i]
+	i += 1
+	if i <= ARRSIZE('sport_panties'):jump 'loopsportpanties'
+	killvar 'sport_panties'
+
+	i = 1
+	:loopsportbra
+	if sport_bra[i] = 1: danilovich_bra[i] = 1 & danilovich_braS[i] = sport_braS[i]
+	i += 1
+	if i <= ARRSIZE('sport_bra'):jump 'loopsportbra'
+	killvar 'sport_bra'
+end
+
+	
+	
+	
 end
 
 if traits > 0 or trait > 0:

+ 90 - 88
locations/shop_photography.qsrc

@@ -1,5 +1,4 @@
 # shop_photography
-
 !! Photography shop in the City Center Mall
 !! Variables used:
 !! photographyEv = Track shop progression through buying a camera
@@ -24,55 +23,25 @@ if $ARGS[0] = 'start':
 	'<center><img src="images/locations/city/citycenter/mall/photoshop/shop.jpg"></center>'
 	'The shop is dedicated to cameras and is celebrating this fact by displaying a myriad of them along every wall. A singular counter sits just off the adjacent wall with the shopkeeper standing behind it, clearly eager for some trade to enter his shop.'
 
-	if photography_job >= 1 and week >= 6:
-		act 'Ask about work':
+	if photography_start = 1 and week >= 6:
+		act 'Ask about work':		
 			*clr & cla
 			minut += 10
 			gs 'stat'
 			'<center><img src="images/locations/city/citycenter/mall/photoshop/owner.jpg"></center>'
-			if photography_job = 1:
-				dynamic $photojob[1]
+			if photography_start = 1:
+				dynamic $photojob[evt_PhotoID]
 				'You walk up to Branko. "Excuse me Branko, but you said you might have some work for me. Would you happen to have anything?"'
-				'He smiles at you. "Yes yes, I remember. Let me check." He opens a laptop sitting on the counter next to him and taps on the keys before he looks up at you. "Yes I do have a job, the Tank and <<$photojob_description>>. I will pay you two thousand rubles, with a bonus if you do very good work. It has to be done today, if you are interested."'
-				act 'Decline the assignment':
-					*clr & cla
-					gs 'stat'
-					'<center><img src="images/locations/city/citycenter/mall/photoshop/owner.jpg"></center>'
-					'You shake your head. "Sorry I can''t, I have other things already planned this weekend. Maybe next weekend?"'
-					'He nods in understanding. "I understand, but I''m afraid that won''t be happening next week. Check with me next weekend and I might have something else."'
-					'You smile at him. "Okay, thanks." With that, you leave the store.'
-					act 'Leave':
-						cla
-						minut += 3
-						gt 'torgcentr'
-					end
-				end
-				act 'Take the assignment':
-					*clr & cla
-					gs 'stat'
-					'<center><img src="images/locations/city/citycenter/mall/photoshop/owner.jpg"></center>'
-					'You can''t help but smile and feel excited. Your first paying gig as a photographer! "Yes, I would love to! Just tell me where I have to go."'
-					'He smiles. "Excellent!" He prints out a page and hands it to you. "Okay, here''s where it is and a list of the photos I need. When you finish, come back here to give the representative the SD card. I''ll then transfer your pay to your account."'
-					'You smile at him. "Thank you, I will go there now." With that, you leave the store.'
-					act 'Go to work': gt 'shop_photography' , 'photojob'
-				end
-			else
-				'You walk up to Branko. "Excuse me Branko, do you have more work for me?"'
-				if photography_job < ARRSIZE('$photojob'):
-					'He smiles at you. "Let me check." He opens a laptop sitting on the counter next to him and taps on the keys before he looks up at you. "Yes I do have a job, the pay will be the same as before. It has to be done today, if you are interested."'
-					act 'What''s the assignment': gt 'shop_photography' , 'work'
-				else
-					'He smiles at you. "Let me check." He opens a laptop sitting on the counter next to him and taps on the keys before he looks up at you with a frown. "Sorry, I don''t have any work for you right now. Try again next weekend."'
-					act 'Leave':
-						cla
-						minut += 3
-						gt 'torgcentr'
-					end
-				end
+				'He smiles at you. "Yes yes, I remember. You''re <<$pcs_nickname>>,  Let me check." He opens a laptop sitting on the counter next to him and taps on the keys before he looks up at you.'
+				
+				!! Init Job Array
+				gs 'shop_photography', 'job_init'
+				gs 'emp_functions', 'disp_evt', 1
+				
 			end
 		end
 	end
-	if photographyEv = 2 and photography_job = 0:
+	if photographyEv = 2 and photography_start = 0:
 		act 'Show portfolio': gt 'shop_photography' , 'showportfolio'
 	end
 	act 'Talk to the shop owner':
@@ -182,19 +151,19 @@ if $ARGS[0] = 'showportfolio':
 		'"Yes yes, when you get more experience I might have a fantastic business opportunity for you! You see, in addition to the shop you see before you, I also have a side business in commissioned photography and from what I''ve seen, you might just be the person I''m looking for; you''ll be paid of course! But first practice, practice practice!"'
 		'You frown a little. At least he likes your work. "Okay, I will. I''ll keep practicing and when I feel I''ve improved, I''ll return."'
 	elseif pcs_photoskl <= 50:
-		photography_job = 1
+		photography_start = 1
 		'"Ah, your portfolio, by all means I would love to peruse through it!"'
 		'"Mmmm.... these photographs are good. You have a real eye! With a little more practice, you will become a very skilled photographer."'
 		'"You can call me Branko. I have a fantastic business opportunity for you! You see, in addition to the shop you see before you, I also have a side business in commissioned photography and from what I''ve seen, you''re the perfect person to help me with some additional work. There will be no pressure, just visit my beautiful shop at the weekend and I''ll let you know if there''s any photography jobs you can do for me; you''ll be paid of course!"'
 		'"Wow, that sounds interesting. I''ll visit when I can."'
 	elseif pcs_photoskl <= 75:
-		photography_job = 1
+		photography_start = 1
 		'"Ah, your portfolio, by all means I would love to peruse through it!"'
 		'"Mmmm.... these photographs are terrific. Sensational, absolutely sensational."'
 		'"You can call me Branko. I have a fantastic business opportunity for you! You see, in addition to the shop you see before you, I also have a side business in commissioned photography and from what I''ve seen, you''re the perfect person to help me with some additional work. There will be no pressure, just visit my beautiful shop and I''ll let you know if there''s any photography jobs you can do for me; cash in hand of course!"'
 		'"Wow, that sounds interesting. I''ll visit when I can."'
 	else
-		photography_job = 1
+		photography_start = 1
 		'"Ah, your portfolio, by all means I would love to peruse through it!"'
 		'"Mmmm.... My god... These are simply breathtaking my dear, just breathtaking! I don''t think I''ve ever meet anyone with as much potential as you in my life! With a little more seasoning, you could become one of the greatest photographers of our time!"'
 		'"You can call me Branko. I have a fantastic business opportunity for you! You see, in addition to the shop you see before you, I also have a side business in commissioned photography and from what I''ve seen, you''re the perfect person to help me with some additional work. There will be no pressure, just visit my beautiful shop and I''ll let you know if there''s any photography jobs you can do for me; you''ll be paid of course!"'
@@ -208,91 +177,125 @@ if $ARGS[0] = 'work':
 	minut += 10
 	gs 'stat'
 	'<center><img src="images/locations/city/citycenter/mall/photoshop/owner.jpg"></center>'
-	dynamic $photojob[photography_job]
 	'You can''t help but smile and feel excited. Yet another paying job as a photographer! "Yes I would love to, just tell me what you have."'
-	'He smiles. "Excellent! I need photos of <<$photojob_description>>" He prints out a page and hands it to you. "Okay, here''s where it is and a list of the photos I need. When you finish, come back here to give me the photos and get paid."'
+	'He smiles. "Excellent! I need photos of <<$transient_desc>>" He prints out a page and hands it to you. "Okay, here''s where it is and a list of the photos I need. When you finish, come back here to give me the photos and get paid."'
 	'You smile at him. "Thank you, I''ll go there now." With that, you leave the store.'
 	act 'Go to work': gt 'shop_photography' , 'photojob'
 end
 
 if $ARGS[0] = 'photojob':
 	*clr & cla
+	gs 'exp_gain', 'photoskl', rand(1,50)
+	gs 'stat'
 	photography_job += 1
 	photojob_daystart = daystart
 	! Prevent taking a new job on the sunday following today
 	if week = 6: photojob_daystart += 1
 	minut += rand(1,2)
 	gs 'stat'
-	$loc = $photojob_loc
+	$loc =$transient_mc_locat
 	$loc_arg = $photojob_loc_arg
-	gt 'shop_photography', $photojob_ev
-end
-
-! Call at the end of each photo job event to tidy up
-if $ARGS[0] = 'photojob_cleanup':
-	KILLVAR '$photojob_shortname'
-	KILLVAR '$photojob_description'
-	KILLVAR '$photojob_loc'
-	KILLVAR '$photojob_loc_arg'
-	KILLVAR '$photojob_ev'
+	gt 'shop_photography', $transient_trigger
 end
 
 if $ARGS[0] = 'photojob_pay':
-	gs 'exp_gain', 'photoskl', rand(1,50)
-	gs 'stat'
-	photopay = 2000
 	if pcs_photoskl > 125:
-		photopay += 4000
+		gs 'emp_functions', 'wage_evt', 4
 	elseif pcs_photoskl > 100:
-		photopay += 2500
+		gs 'emp_functions', 'wage_evt', 3
 	elseif pcs_photoskl > 75:
-		photopay += 1500
+		gs 'emp_functions', 'wage_evt', 2
 	elseif pcs_photoskl > 50:
-		photopay += 1000
+		gs 'emp_functions', 'wage_evt', 1
+	else
+		gs 'emp_functions', 'wage_evt', 5, 50
 	end
-	money += photopay
-	gs 'stat'
 end
 
+!! Photography jobs functions
+
+if $ARGS[0] = 'job_init':
+	!! Set up arrays if not initialised
+	if $evt_job[1] = '' :  gs 'emp_functions', 'job_evt'
+	array_len = ARRSIZE('$photojob')
+	array_len = array_len -1	
+	evt_PhotoID = rand(1, array_len)
+	dynamic $photojob[evt_PhotoID]
+	!! set Day of Week for job to appear on	
+	transient_evt_dow = 6
+	!! evt_silent - hide event from player  in journal (or other locations) - 1 to enable.
+	transient_evt_silent = 0 
+    !! Now set up the event date
+    gs 'shop_photography' , 'photojob_pay'
+    gs 'emp_functions', 'gen_evt'
+end
+
+
 ! Array of photography jobs - additional events should be easy to wire up
 $photojob[1] = {
+	!!Ensure the event is visible in journal:
+	transient_evt_silent = 1
+	!! Set the job type as per list
+	transient_evt_type = 1
+	transient_evt_sub_type = 1
 	$photojob_shortname = 'Tank'
-	$photojob_description = 'Tank and Bazooka Experience Day in Levingrad Oblast'
-	$photojob_loc = 'city_industrial'
-	$photojob_loc_arg = ''
-	$photojob_ev = 'phototank'
+	$transient_desc = 'Tank and Bazooka Experience Day in Levingrad Oblast'
+	!! Field for trigger location
+	$transient_loc = 'city_industrial'
+	$transient_arg = ''
+	!! Journal loc description
+	$transient_mc_locat = 'St Petersburg Industrial Area'
+	!! Event content location
+	$transient_evt_exec=  'shop_photography'
+	$transient_trigger = 'phototank'
 }
 
 $photojob[2] = {
+	transient_evt_silent = 1
+	transient_evt_type = 1
+	transient_evt_sub_type = 2
 	$photojob_shortname = 'Model'
-	$photojob_description = 'Newspaper Commission at Petrovskaya Akvatoria'
-	$photojob_loc = 'shop_photography'
-	$photojob_loc_arg = 'start'
-	$photojob_ev = 'photomodel'
+	$transient_desc = 'Newspaper Commission at Petrovskaya Akvatoria'
+	$transient_loc = 'shop_photography'
+	$transient_arg = 'start'
+	$transient_mc_locat = 'Meet Branko at the Photography Shop'
+	$transient_trigger = 'photomodel'
 }
 
 $photojob[3] = {
+	transient_evt_silent = 1
+	transient_evt_type = 1
+	transient_evt_sub_type = 3
 	$photojob_shortname = 'Wedding'
-	$photojob_description = 'Wedding at Yelagin Palace'
-	$photojob_loc = 'city_residential'
-	$photojob_loc_arg = ''
-	$photojob_ev = 'photowedding'
+	$transient_desc = 'Wedding at Yelagin Palace'
+	$transient_loc = 'city_residential'
+	$transient_arg = ''
+	$transient_mc_locat = 'St Petersburg Residential Area'
+	$transient_trigger = 'photowedding'
 }
 
 $photojob[4] = {
+	transient_evt_silent = 1
+	transient_evt_type = 1
+	transient_evt_sub_type = 4
 	$photojob_shortname = 'Motorsport'
-	$photojob_description = 'Russian Touring Car Championship Event at St. Petersburg Autodrome'
-	$photojob_loc = 'city_industrial'
-	$photojob_loc_arg = ''
-	$photojob_ev = 'photomotorsport'
+	$transient_desc = 'Russian Touring Car Championship Event at St. Petersburg Autodrome'
+	$transient_loc = 'city_industrial'
+	$transient_arg = ''
+	$transient_mc_locat = 'St Petersburg Industrial Area'
+	$transient_trigger = 'photomotorsport'
 }
 
 $photojob[5] = {
+	transient_evt_silent = 1
+	transient_evt_type = 1
+	transient_evt_sub_type = 5
 	$photojob_shortname = 'Court'
-	$photojob_description = 'Press Event at City Courthouse'
-	$photojob_loc = 'shop_photography'
-	$photojob_loc_arg = 'start'
-	$photojob_ev = 'photocourt'
+	$transient_desc = 'Press Event at City Courthouse'
+	$transient_loc = 'shop_photography'
+	$transient_arg = 'start'
+	$transient_mc_locat = 'Meet Branko at the Photography Shop'
+	$transient_trigger = 'photocourt'
 }
 
 if $ARGS[0] = 'phototank':
@@ -395,6 +398,5 @@ if $ARGS[0] = 'photocourt':
 	act 'Return' : gt $loc, $loc_arg
 end
 
-
 --- shop_photography ---------------------------------
 

+ 33 - 6
locations/underwear_attributes.qsrc

@@ -30,7 +30,7 @@
 !!							7 - shelf
 !!							8 - open
 !!							9 - under wire
-!!							9 - bikini top
+!!							10 - bikini top
 !!
 !! BraType					Used for description of bodysuit with same variable that bra uses, could be useful for specific reactions
 !!							1 - Full
@@ -93,15 +93,42 @@ BraCover = 0
 underwear['pair'] = 0
 
 
-if $ARGS[0] = 'lusso_bodysuits':
+if $ARGS[0] = 'lusso_bodysuit':
 	*P FUNC('$attributes_lusso_bodysuit', $ARGS[0], ARGS[1])
-end
-if $ARGS[0] = 'boutique_panties':
+elseif $ARGS[0] = 'lusso_panties':
 	*P FUNC('$attributes_lusso_panties', $ARGS[0], ARGS[1])
-end
-if $ARGS[0] = 'boutique_bras':
+elseif $ARGS[0] = 'lusso_bras':
 	*P FUNC('$attributes_lusso_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'scandalicious_bodysuit':
+	*P FUNC('$attributes_scandalicious_bodysuit', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'salacious_bodysuit':
+	*P FUNC('$attributes_salacious_bodysuit', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'salacious_panties':
+	*P FUNC('$attributes_salacious_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'salacious_bras':
+	*P FUNC('$attributes_salacious_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'fashionista_panties':
+	*P FUNC('$attributes_fashionista_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'fashionista_bras':
+	*P FUNC('$attributes_fashionista_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'danilovich_panties':
+	*P FUNC('$attributes_danilovich_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'danilovich_bras':
+	*P FUNC('$attributes_danilovich_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'eroto_panties':
+	*P FUNC('$attributes_eroto_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'eroto_bras':
+	*P FUNC('$attributes_eroto_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'cats_panties':
+	*P FUNC('$attributes_cats_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'cats_bras':
+	*P FUNC('$attributes_cats_bra', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'gm_panties':
+	*P FUNC('$attributes_gm_panties', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'gm_bras':
+	*P FUNC('$attributes_gm_bra', $ARGS[0], ARGS[1])
 end
 
+
 --- underwear_attributes ---------------------------------
 

+ 1 - 7
locations/underwear_bodysuits.qsrc

@@ -55,12 +55,6 @@ if $ARGS[0] = 'view_bodysuit_list':
 	i += 1
 	if i <= ARRSIZE('lusso_bodysuits'):jump 'looplussobodysuits'
 	
-	i = 1
-	:loopmoncheribodysuits 
-	if moncheri_bodysuits_s[i] = metka_bodysuits and moncheri_bodysuits[i] = 1:*p '<a href="exec:gt ''underwear_bodysuits'', ''view_bodysuit_item'', ''<<$ARGS[1]>>'', ''moncheri'', <<i>>"><img src="images/pc/items/moncheri/bodysuits/<<i>>.jpg" 	height="150" /></a>'
-	i += 1
-	if i <= ARRSIZE('moncheri_bodysuits'):jump 'loopmoncheribodysuits'
-	
 	i = 1
 	:loopsalaciousbodysuits 
 	if salacious_bodysuits_s[i] = metka_bodysuits and salacious_bodysuit[i] = 1:*p '<a href="exec:gt ''underwear_bodysuits'', ''view_bodysuit_item'', ''<<$ARGS[1]>>'', ''salacious'', <<i>>"><img src="images/pc/items/salacious/bodysuits/<<i>>.jpg" 	height="150" /></a>'
@@ -205,7 +199,7 @@ if $ARGS[0] = 'dest2':
 end
 
 if $ARGS[0] = 'sum':
-	$t[0] = 'boutique'
+	$t[0] = 'lusso'
 	$t[1] = 'cats'
 	$t[2] = 'exhibitionist'
 	$t[3] = 'fashionista'

+ 89 - 75
locations/underwear_descriptions.qsrc

@@ -3,28 +3,26 @@
 
 $description = ''
 if $ARGS[0] = 'panties':
-	if PanStyle = 1:
-		$description += 'These'
-	elseif PanStyle = 2:
-		$description += 'These'
-	elseif PanStyle = 1:
+	if PanType = 3 or PanType = 4:
 		$description += 'This'
+	else
+		$description += 'These'
 	end
 
 	if PanQuality = 1:
-		$description = ' crappy quality'
+		$description += ' crappy quality'
 	elseif PanQuality = 2:
-		$description = ' very low quality'
+		$description += ' very low quality'
 	elseif PanQuality = 3:
-		$description = ' low quality'
+		$description += ' low quality'
 	elseif PanQuality = 4:
-		$description = ' average quality'
+		$description += ' average quality'
 	elseif PanQuality = 5:
-		$description = ' reasonable quality'
+		$description += ' reasonable quality'
 	elseif PanQuality = 6:
-		$description = ' good quality'
+		$description += ' good quality'
 	elseif PanQuality = 7:
-		$description = ' outstanding quality'
+		$description += ' outstanding quality'
 	end
 
 	if PanMaterial = 1:
@@ -37,50 +35,60 @@ if $ARGS[0] = 'panties':
 		$description += ', fishnet'
 	elseif PanMaterial = 5:
 		$description += ', vinyl'
-	elseif BraMaterial = 7:
+	elseif BraMaterial = 6:
 		$description += ', lace'
 	end
 
-	if PanStyle = 1:
-		$description += ' panties are'
-	elseif PanStyle = 2:
-		$description += ' boy shorts are'
-	elseif PanStyle = 3:
-		$description += ' G-string is'
+	if PanType = 1:
+		$description += ' panties'
+	elseif PanType = 2:
+		$description += ' boy shorts'
+	elseif PanType = 3:
+		$description += ' G-string'
+	elseif PanType = 3:
+		$description += ' C-string'
+	elseif PanType = 3:
+		$description += ' French knickers'
 	end
 
-	if PanThinness = 1:
-		$description += ', transparent.'
-	elseif PanThinness = 2:
-		$description += ', semi-transparent.'
-	elseif PanThinness = 3:
-		$description += ', slightly transparent.'
-	elseif PanThinness = 4:
-		$description += ', thin.'
+	if PanType = 3 or PanType = 4:
+		$description += ' is '
+	else
+		$description += ' are '
+	end
+
+	if PanThinness = 6:
+		$description += 'transparent.'
 	elseif PanThinness = 5:
-		$description += ' not particularly thick or thin.'
-	elseif PanThinness = 6:
-		$description += ', thick.'
+		$description += 'semi-transparent.'
+	elseif PanThinness = 4:
+		$description += 'slightly transparent.'
+	elseif PanThinness = 3:
+		$description += 'thin.'
+	elseif PanThinness = 2:
+		$description += 'not particularly thick or thin.'
+	elseif PanThinness = 1:
+		$description += 'thick.'
 	end
 
 	if PanCoverFront = 1:
-		$description += 'Your pussy can just about be seen in the right light.'
+		$description += ' Your pussy can just about be seen in the right light.'
 	elseif PanCoverFront = 2:
-		$description += 'Your pussy is partly visible.'
+		$description += ' Your pussy is partly visible.'
 	elseif PanCoverFront = 3:
-		$description += 'Your pussy is clearly visible.'
+		$description += ' Your pussy is clearly visible.'
 	elseif PanCoverFront = 4:
-		$description += 'Your pussy is not covered at all.'
+		$description += ' Your pussy is not covered at all.'
 	end
 
 	if PanCoverBack = 1:
-		$description += 'Your butt can just about be seen in the right light.'
+		$description += ' Your butt can just about be seen in the right light.'
 	elseif PanCoverBack = 2:
-		$description += 'Your butt is partly visible.'
+		$description += ' Your butt is partly visible.'
 	elseif PanCoverBack = 3:
-		$description += 'Your butt is clearly visible.'
+		$description += ' Your butt is clearly visible.'
 	elseif PanCoverBack = 4:
-		$description += 'Your butt is not covered at all.'
+		$description += ' Your butt is not covered at all.'
 	end
 
 
@@ -129,32 +137,38 @@ elseif $ARGS[0] = 'bras':
 		$description += ' sports'
 	elseif BraType = 7:
 		$description += ' shelf'
+	elseif BraType = 8:
+		$description += ' open'
+	elseif BraType = 9:
+		$description += ' under wire'
+	elseif BraType = 10:
+		$description += ' bikini'
 	end
 
-	$description += ' bra is'
+	$description += ' bra is '
 
-	if BraThinness = 1:
-		$description += ', transparent.'
-	elseif BraThinness = 2:
-		$description += ', semi-transparent.'
-	elseif BraThinness = 3:
-		$description += ', slightly transparent.'
-	elseif BraThinness = 4:
-		$description += ', thin.'
+	if BraThinness = 6:
+		$description += 'transparent.'
 	elseif BraThinness = 5:
-		$description += ' not particularly thick or thin.'
-	elseif BraThinness = 6:
-		$description += ', thick.'
+		$description += 'semi-transparent.'
+	elseif BraThinness = 4:
+		$description += 'slightly transparent.'
+	elseif BraThinness = 3:
+		$description += 'thin.'
+	elseif BraThinness = 2:
+		$description += 'not particularly thick or thin.'
+	elseif BraThinness = 1:
+		$description += 'thick.'
 	end
 
 	if BraCover = 1:
-		$description += 'Your breasts can just about be seen in the right light.'
+		$description += ' Your breasts can just about be seen in the right light.'
 	elseif BraCover = 2:
-		$description += 'Your breasts are partly visible.'
+		$description += ' Your breasts are partly visible.'
 	elseif BraCover = 3:
-		$description += 'Your breasts are easily visible.'
+		$description += ' Your breasts are easily visible.'
 	elseif BraCover = 4:
-		$description += 'Your breasts are not covered at all.'
+		$description += ' Your breasts are not covered at all.'
 	end
 
 elseif $ARGS[0] = 'bodysuit':
@@ -207,23 +221,23 @@ elseif $ARGS[0] = 'bodysuit':
 		$description += ' romper'
 	end
 
-	$description += ' bodysuit is'
+	$description += ' bodysuit is '
 
 	if BraThinness = 1:
-		$description += ' transparent'
+		$description += 'transparent'
 	elseif BraThinness = 2:
-		$description += ' semi-transparent'
+		$description += 'semi-transparent'
 	elseif BraThinness = 3:
-		$description += ' slightly transparent'
+		$description += 'slightly transparent'
 	elseif BraThinness = 4:
-		$description += ' thin'
+		$description += 'thin'
 	elseif BraThinness = 5:
-		$description += ' not particularly thick or thin'
+		$description += 'not particularly thick or thin'
 	elseif BraThinness = 6:
-		$description += ' thick'
+		$description += 'thick'
 	end
 
-	$description += ' on top and'
+	$description += ' on top and '
 
 	if PanThinness = 1:
 		$description += ' transparent'
@@ -239,36 +253,36 @@ elseif $ARGS[0] = 'bodysuit':
 		$description += ' thick'
 	end
 
-	$description += ' on the bottom. '
+	$description += ' on the bottom.'
 
 	if PanCoverFront = 1:
-		$description += 'Your pussy can just about be seen in the right light. '
+		$description += ' Your pussy can just about be seen in the right light.'
 	elseif PanCoverFront = 2:
-		$description += 'Your pussy is partly visible. '
+		$description += ' Your pussy is partly visible.'
 	elseif PanCoverFront = 3:
-		$description += 'Your pussy is clearly visible. '
+		$description += ' Your pussy is clearly visible.'
 	elseif PanCoverFront = 4:
-		$description += 'Your pussy is not covered at all. '
+		$description += ' Your pussy is not covered at all.'
 	end
 
 	if PanCoverBack = 1:
-		$description += 'Your butt can just about be seen in the right light. '
+		$description += ' Your butt can just about be seen in the right light.'
 	elseif PanCoverBack = 1:
-		$description += 'Your butt is partly visible. '
+		$description += ' Your butt is partly visible.'
 	elseif PanCoverBack = 1:
-		$description += 'Your butt is clearly visible. '
+		$description += ' Your butt is clearly visible.'
 	elseif PanCoverBack = 1:
-		$description += 'Your butt is not covered at all. '
+		$description += ' Your butt is not covered at all.'
 	end
 
 	if BraCover = 1:
-		$description += 'Your breasts can just about be seen in the right light.'
+		$description += ' Your breasts can just about be seen in the right light.'
 	elseif BraCover = 2:
-		$description += 'Your breasts are partly visible.'
+		$description += ' Your breasts are partly visible.'
 	elseif BraCover = 3:
-		$description += 'Your breasts are easily visible.'
+		$description += ' Your breasts are easily visible.'
 	elseif BraCover = 4:
-		$description += 'Your breasts are not covered at all.'
+		$description += ' Your breasts are not covered at all.'
 	end
 end
 

+ 2 - 2
locations/vasily_home_sex.qsrc

@@ -993,7 +993,7 @@ if $ARGS[0] = 'view_pornotv_evgr':
 								'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/tv_ev/sex_group/cum'+rand(1,7)+'.jpg"></center>'
 								'The guys splatter your face with heaps of their cum. It feels great.'
 
-								act 'Finish': gt 'vasily_home_sex', 'start'
+								act 'Finish': gt 'vasilyhome', 'livingroom'
 							end
 						end
 					else
@@ -1009,7 +1009,7 @@ if $ARGS[0] = 'view_pornotv_evgr':
 							'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/tv_ev/sex_group/cum'+rand(1,7)+'.jpg"></center>'
 							'The guys splatter your face with heaps of their cum.'
 
-							act 'Finish': gt 'vasily_home_sex', 'start'
+							act 'Finish': gt 'vasilyhome', 'livingroom'
 						end
 					end
 					killvar 'shulga_orgasm_temp'