171 Commits 56e7972ce1 ... 8a85bea8a8

Author SHA1 Message Date
  LinaHirata 8a85bea8a8 [changed] therapist visits are now limited to once a week 4 months ago
  LinaHirata d22341d77a [changed] dev builds will now display `git hash` alongside version number 4 months ago
  LinaHirata 3f32cf7293 [fixed] typo 4 months ago
  Kevin_Smarts 20166816e9 Merge remote-tracking branch 'Anjuna/master' 4 months ago
  Vengeance_11 64822ca643 Text edits 4 months ago
  anjuna krokus c758a3e294 [changed/fixed] improved the timetable. more fixes to the scheduling function. It's late and I'm tired 4 months ago
  anjuna krokus 50050aa901 [changed] small text changes: bus station -> bus stop 4 months ago
  anjuna krokus 0a3f2244cf [added/fixed] added a viewable timetable with the schedule of the bus and train at the bus stops and train stations. fixed the schudels of the busses and train 4 months ago
  Kevin_Smarts a754d1abe9 Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Lusticon 388699d059 [changed] pain calculation formula 4 months ago
  Lusticon c01e824ca2 [fixed] STD stuff 4 months ago
  Lusticon dca108c17c [fixed] hair styling 4 months ago
  anjuna krokus 1de9fb8174 [fixed] small issues with the bus calculations 4 months ago
  anjuna krokus 56080988c1 [fixed] forgot to add the new locations to the qproj. 4 months ago
  anjuna krokus cbeda47b84 [added] Bus stations are now located at the pavlovsk community center, pavlovsk train station, pushkin, construction site, gadukino, communal village, graveyard, and city suburbs 4 months ago
  anjuna krokus 26747658ef [changed] removed the possibility of having an event which skipped the train ride message. Event probabilities are essentially preserved 4 months ago
  anjuna krokus 9a9a6775bf [changed/added] changed the remaining village -> gadukino internal name change. Added support for the bus system 4 months ago
  anjuna krokus aa08a606b8 [changed] incidental events are now excluded from the once per day limitation due to their short nature and low occurance probability 4 months ago
  anjuna krokus 3edda5da79 [changed] renaming village -> gadukino internally for the transportation system 4 months ago
  anjuna krokus d9741cbc99 [fixed] forgotten end station for time calculations in the industrial city train station 4 months ago
  Lusticon 3ad6f787c5 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Lusticon 22f384f0e8 [changed] STD reworked 4 months ago
  Lusticon f3e7cc9802 [fixed] backward minut 4 months ago
  Lusticon f440d37465 [changed] pcs_nerd rework 4 months ago
  Lusticon 9f5ee0c720 [fixed] added menu_off checks 4 months ago
  Lusticon 11a67d600b [changed] "The Peacock" set min hour to call 4 months ago
  Lusticon 78a13e848a [changed] morning after pill use behavior 4 months ago
  Lusticon ab1e2ae5a7 [fixed] wait time pass 4 months ago
  Hooded Silence 5d31a3df11 [Code update] Forgot to add time to various events. 4 months ago
  Kevin_Smarts 6bef21f194 Merge remote-tracking branch 'Anjuna/master' 4 months ago
  Kevin_Smarts ee1c1eb3ad Merge remote-tracking branch 'Lusticon/master' 4 months ago
  anjuna krokus 7df85542b6 [changed] final name for the new intro 4 months ago
  anjuna krokus ac40b025ad [added] a train schedule. Waiting time is automatically displayed and taken into account 4 months ago
  anjuna krokus b0cb95e71d Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Kevin_Smarts 740d33edfa [fixed] totals for Scandalicious outfits and dresses were wrong way around 4 months ago
  Lusticon 2d87ead6ab [fixed] sex pain and cum leaking 4 months ago
  Lusticon 5aaa848e22 [fixed] hair styling 4 months ago
  Lusticon 0077e1fbe3 [fixed] uni_events displaying 4 months ago
  anjuna krokus 48d570500f Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Lusticon fb11bc5109 [added] hair brush stat icon check fix and portable set of cosmetic stat icon use 4 months ago
  Lusticon 54101731e3 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Lusticon d107a02e85 [fixed] Kolka preg reaction reset 4 months ago
  Lusticon 9c240fc662 [fixed] food_loc reset 4 months ago
  Kevin_Smarts 602038d061 Merge remote-tracking branch 'Hooded_Silence/master' 4 months ago
  anjuna krokus 1293b7972f [fixed] added `$location_type` to the various train locations to better simulate their correct environments 4 months ago
  anjuna krokus 29fa786812 [fixed] restored original 'weed' event likelyhood and reshuffled the train locations under pavlovsk to follow the same stage as the other ones (from city to village, oppositite to the travel direction). 4 months ago
  Hooded Silence 25fc5c3f83 [New Content] Ballet secrets shop and studio implemented as proof of concept for services and to link into the ballet content next cycle. Bug and typography fixes. 4 months ago
  anjuna krokus b3bdf6456c [added] uniform presentation of transportation time by adding both time and money costs at the end of the options 4 months ago
  anjuna krokus 63084fd339 [changed/added] renamed train_functions to transport_functions, migrated `Trainpass_day` to a variable array. Added a train_events location, added a daily and yearly train pass. Loads of migrations between existing files to group the actual train stuff better together. 4 months ago
  anjuna krokus d4dbd06865 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  anjuna krokus e1ba8dbef7 [added] the actual train_functions.. 4 months ago
  anjuna krokus bdc60ea7dc [added/changed] Added a train_functions to centralise prises (and other repeated information) and completed the centre -> center change 4 months ago
  anjuna krokus 9ee4c59c3a [changed] centre -> center 4 months ago
  Awesome f3ee90d173 [Added] Ksenya Events written by Hidden Flame with code from Awesome 4 months ago
  anjuna krokus 46cf361dc4 [changed] full transfer from `swim_start` and `school_clothing` to `$start_type` 4 months ago
  Kevin_Smarts a04ee4c2bf Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Lusticon 8853f2fba9 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Kevin_Smarts 7debe611c7 [added] new arousal keyword 'spit' for applying spit as lube 4 months ago
  Lusticon 908d0461f3 [fixed] Kolka preg reaction 4 months ago
  Kevin_Smarts b928eb6bc9 [fixed] Wasn't showing modified clothing attributes taking boobs into account consistantly. Will now. 4 months ago
  Kevin_Smarts 663fadee65 [fixed] Too many ends 4 months ago
  Kevin_Smarts bc8feed062 Merge remote-tracking branch 'Anjuna/master' 4 months ago
  Kevin_Smarts 4c9825a09c [fixed] Prostitution suitable outfit in the cool kids approved range moved quality down by one to resolve 4 months ago
  anjuna krokus 1a634b03b9 [changed] the pcs_sleep calculation into a closer and simpler calculation. Also updated the 'time_to_full' calculations to reflect this change. 4 months ago
  Kevin_Smarts bd3698a933 Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Kevin_Smarts 104958c0ed Merge remote-tracking branch 'Anjuna/master' 4 months ago
  Kevin_Smarts 082eed8294 [changed] removed some excess images and did a little refactoring in the sharted apartment to make it a bit easier to track stuff and lok a bit cleaner 4 months ago
  Kevin_Smarts 203df6b86f [changed] Intro music now stops when TG start fades to black and different song plays when coming around as Sveta 4 months ago
  Lusticon 92d03e8256 [fixed] corrected cum leaking while sex 4 months ago
  Lusticon 42b0d4f4f4 [change] corrected pain sources 4 months ago
  Lusticon da029fbc30 [changed] pain calculation 4 months ago
  Lusticon 550edc4af7 [fixed] uni dorm random boys empty stats 4 months ago
  Lusticon b5ba31903f [fixed] pcs_sleep recovery 4 months ago
  Lusticon 757fbb9c84 [fixed] hypnoAddict missCum behavior 4 months ago
  Lusticon e525569ea6 [added] more places to fill up your water bottle 4 months ago
  Lusticon 7008a15e5f [added] piercing management in private location 4 months ago
  Lusticon 8f0ab50f56 [changed] stamina use and recovery 4 months ago
  Lusticon 2c1ba45259 [fixed] npc_abusive check 4 months ago
  anjuna krokus bdc1c3b0f3 [fixed] my opsie woepsie in journal_quests 4 months ago
  Lusticon 00ed81b38c Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Hooded Silence b016ab9310 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Hooded Silence 66cea0d106 [New features] Added description to Dancer start to highlight the new ballet content. Sveta has finally got some much needed privacy at her Grandparents with a fresh minted converted barn space. Who knows what shenanigans might occur in future {Insert Lord Kitchener - Girl Life Needs You Poster meme}. 4 months ago
  Lusticon 66f2c8714a [fixed] NPC butt plug interactions 4 months ago
  Lusticon 2a7eddcf24 [fixed] skills exp gain in some places 4 months ago
  Lusticon 0f7c27146f [changed] "Aphrodite Photography" checks before work 4 months ago
  Lusticon 846db12f34 [changed} added health check to STD triggers and delayed the appearance of symptoms 4 months ago
  Lusticon 6d907ee096 [fixed] STD check up 4 months ago
  Lusticon f8f05b266e [changed] Nicholas failed maid interview 4 months ago
  Lusticon 1ada5074d1 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Lusticon cdc2efaaad [fixed] ask for work checks 4 months ago
  bgkjdgbizgblzdgbr 922eee1b0c [fixed] Bad links 4 months ago
  Lusticon 8239cf8554 [added] qsp parser newest version 4 months ago
  Lusticon afe85dc0db [added] cum leak from a condom in vagina 4 months ago
  Lusticon 7f0a7c86a8 [fixed] nuke old spdirty variable 4 months ago
  Lusticon db61625d2f [fixed] copy-paste typo 4 months ago
  Lusticon 214b38103e [fixed] sleeping with Fedor dead end 4 months ago
  Kevin_Smarts de8312f245 [fixed] variable replacement error, sorry! 4 months ago
  Kevin_Smarts 062f246c09 Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Kevin_Smarts 8114ff5f4a Merge remote-tracking branch 'Hooded_Silence/master' 4 months ago
  Lusticon 1ad27c85a2 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Kevin_Smarts 4836638166 [fixed] Missed a link to set total for loop 4 months ago
  Lusticon c6c36c83c0 Merge branch 'mod' 4 months ago
  Lusticon 1088430ad3 [removed] debug stuff 4 months ago
  Lusticon e58697487c Merge branch 'dev' 4 months ago
  Lusticon c58b406831 [added] enema realism option check 4 months ago
  Hooded Silence 0bbd733644 [Code Cleanup] Remove quest tracker hints and comments. 4 months ago
  Lusticon 74d3768255 [changed] extended an invitation options for Nerd Game Night 4 months ago
  Lusticon 2dcf7cc9bc [added] tangled hair and sweating 4 months ago
  Lusticon 6b2c289d4e [added] set hair flow free if tangled 4 months ago
  Lusticon 976aff8b6c [fixed] tampons use checks 4 months ago
  Lusticon 6e62b2ec52 [added] exp_gain worked as a waitress at Borislav's cafe and quick online jobs as model 4 months ago
  Lusticon 3d82aa7f27 [changed] heels skill tune up 4 months ago
  Lusticon e6af52d2d0 [added] sport outfits thinness check for hypnoClothes 4 months ago
  Lusticon d815a63e9e [changed] "The Peacock" ask for work directly 4 months ago
  Lusticon 8cda311d75 [added] additional pain from rough\rape sex and deepthroat bj 4 months ago
  Lusticon 204fec9a8f [fixed] anal sex text display and condom check; vag sex arousal calling too late 4 months ago
  Lusticon a901e39c11 [changed] boy_bathroom correct cum drain from pussy 4 months ago
  Lusticon 4fb6c95480 Merge branch 'dev' of https://git.tfgames.site/Lusticon/glife into dev 4 months ago
  Lusticon 927ee406f9 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into dev 4 months ago
  Lusticon dc9078564a [changed] boy_bathroom correct cum drain from pussy 4 months ago
  Lusticon 7b56d458df [changed] "The Peacock" aks for work 4 months ago
  Lusticon 99ac1fcfe5 [added] pool enter checks 4 months ago
  anjuna krokus 0e572e52e7 [fixed] This should prevent any unwanted text following the `*p` statement 4 months ago
  Vengeance_11 5695a96fea Fixed typo with character name 4 months ago
  Lusticon d9d533fc26 [changed] correct cumspclnt 4 months ago
  Hooded Silence 654c1e8550 [Content changes] Minor coding changes. 4 months ago
  Lusticon 5ed7d8a333 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife into dev 4 months ago
  Lusticon 07e42df729 [added] cum leaking and decaying 4 months ago
  Kevin_Smarts 891de0c31a [fixed] I done messed up and missed the $ARGS[0] part in all the links breaking all the shops 4 months ago
  Kevin_Smarts e4723047be Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Kevin_Smarts c2b4bd3392 [changed] rest of the clothing variables centralised 4 months ago
  Lusticon 1a219e2ed6 [changed] TheRapist clothing restriction checks 4 months ago
  Kevin_Smarts 174a179290 [changed] Therapist clothing restriction tightened 4 months ago
  Lusticon b5f2be9d79 [changed] bimbo buff now depends on the current withdrawal 4 months ago
  Lusticon b9af373308 [fixed] expression typo 4 months ago
  Lusticon 793cd90a03 [fixed] TheRapist cloths checks 4 months ago
  Lusticon aa24768fb4 [fixed] pav_pool enter checks 4 months ago
  bgkjdgbizgblzdgbr 7c51690660 [fixed] Operators not working as I thought. Thanks to Anjuna for help. 4 months ago
  Kevin_Smarts 6a0e05b1c7 Merge remote-tracking branch 'Lusticon/master' 4 months ago
  Kevin_Smarts d457ce16c2 Merge remote-tracking branch 'Anjuna/master' 4 months ago
  Kevin_Smarts 6cf2150485 [fixed] I knew I'd break the clothing doing this, now you should be able to wear clothes if not hypnotised 4 months ago
  Lusticon c65cb3b274 [fixed] TheRapist hypnoSchedule hour check 4 months ago
  Lusticon 84ee5ef73b Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  anjuna krokus fff86ba426 [changed] step one of phasing swim_start out 4 months ago
  anjuna krokus 5ea4ab4784 [fixed] the anorexic start should now display the names properly 4 months ago
  anjuna krokus f6c3f92bc9 [changed] layout changes 4 months ago
  anjuna krokus fd2e59e770 Merge branch 'master' of https://git.tfgames.site/Kevin_Smarts/glife 4 months ago
  Kevin_Smarts 98735ba5a0 [fixed] The check for therapist exhibitionist clothing was hard to follow and a bit too restrictive. Should give more options and be less likely to fuck up now. Unless I coded it wrong ofc. 4 months ago
  anjuna krokus 9df8a9483c [fixed/changed] Fixed my typo in saveupdater. Removed an unneeded + sign in katja_nightclub 4 months ago
  Lusticon e52a6bdb58 [fixed] expression typo 4 months ago
  Lusticon e72d9cb1cf [fixed] beach activities time 4 months ago
  Lusticon 3ad54fbada [changed] text display 4 months ago
  Lusticon 5e1e233e8f [fixed] TheRapist reminder day 4 months ago
  Lusticon 0c1036e2b6 [added] nude checks 4 months ago
  Lusticon 51d9aa9bca [fixed] afterschool events checks 4 months ago
  Lusticon 49dee9f387 [fixed] pav_pool with cosmetic_tattoo 4 months ago
  Kevin_Smarts 2bb8dc3aeb [changed] More clothing totals centralised and changed fashionista to fashionista_dress for consistancy 4 months ago
  Kevin_Smarts 6474a9c1a5 [added] Clothing for new start option and removed a varible, could do some more but need to post this 4 months ago
  anjuna krokus b16ca722e3 [changed] $start_type variable migration for the ballet stuff (split off in case there are merge errors) 4 months ago
  anjuna krokus f59fb376f6 [changed] introducing an updated $start_type variable, getting rid of alterstrtimg. This is the mass migration for everything BUT the ballet stuff 4 months ago
  anjuna krokus efb451e695 [added/changed] new starting path (under the cool group). Full layout overhaul of the select locations and a new file (intro_functions) to clean up some duplicated variables. 4 months ago
  anjuna krokus a2d27f9ca9 [fixed] copy-paste error, caught by Honey 4 months ago
  Lusticon cf0c3a8807 [changed] autosave by day of the week 4 months ago
  Kevin_Smarts 81cbc71757 Merge remote-tracking branch 'Lusticon/heels-skill' 4 months ago
  Kevin_Smarts e9d253ec7e Merge remote-tracking branch 'Lusticon/BugFixes' 4 months ago
  Kevin_Smarts 3958a00e6a Merge remote-tracking branch 'Felix/master' 4 months ago
  Lusticon edfac41308 [fixed] expression typo 4 months ago
  anjuna krokus aa28cc4d43 [changed] small layout change and some explicit calculations to force updating paramters during game initialisation 4 months ago
  Lusticon acbb50289e removed heelsSkilldiff > 20 elseif 4 months ago
  Lusticon 9735e6820b typo fix 4 months ago
  Lusticon b85ae957bd Обновить 'locations/stat.qsrc' 4 months ago
100 changed files with 4826 additions and 4384 deletions
  1. 0 2143
      duplicate_media_files.txt
  2. 45 35
      glife.qproj
  3. 2 2
      locations/Cheatmenu_din.qsrc
  4. 313 13
      locations/Cum_Manage.qsrc
  5. 7 1
      locations/LariskaHome.qsrc
  6. 2 8
      locations/LariskaSex.qsrc
  7. 4 4
      locations/MartinSex.qsrc
  8. 7 12
      locations/Nudelake.qsrc
  9. 2 2
      locations/Peterroom.qsrc
  10. 5 5
      locations/Serge_kuh.qsrc
  11. 1 1
      locations/Voltrener.qsrc
  12. 1 4
      locations/Zvereva_Sly_sex.qsrc
  13. 2 2
      locations/_attributes_fashionista_dress.qsrc
  14. 1 1
      locations/_attributes_school.qsrc
  15. 1 1
      locations/_clothing_image.qsrc
  16. 1 1
      locations/_short_description.qsrc
  17. 3 3
      locations/albina_chat.qsrc
  18. 1 1
      locations/albina_house_events.qsrc
  19. 1 1
      locations/albinahome.qsrc
  20. 1 1
      locations/alex.qsrc
  21. 2 2
      locations/anush_bedroom.qsrc
  22. 1 1
      locations/anush_bedroom_city.qsrc
  23. 2 2
      locations/anushkaev1.qsrc
  24. 1 1
      locations/anushkaev2.qsrc
  25. 325 198
      locations/arousal.qsrc
  26. 4 4
      locations/backwater.qsrc
  27. 9 5
      locations/ballet_npc.qsrc
  28. 277 32
      locations/ballet_secrets.qsrc
  29. 1 0
      locations/barbershop.qsrc
  30. 1 1
      locations/bed_events.qsrc
  31. 0 1
      locations/bed_get_out.qsrc
  32. 1 1
      locations/bedr.qsrc
  33. 1 1
      locations/bedr2x.qsrc
  34. 18 14
      locations/begin.qsrc
  35. 4 3
      locations/body.qsrc
  36. 0 1
      locations/body_desc.qsrc
  37. 8 8
      locations/brothel.qsrc
  38. 39 32
      locations/brother.qsrc
  39. 11 11
      locations/budgetclothes.qsrc
  40. 1546 0
      locations/bus.qsrc
  41. 25 0
      locations/bus_events.qsrc
  42. 38 0
      locations/bus_incidental.qsrc
  43. 1 1
      locations/carF.qsrc
  44. 1 1
      locations/cardgame_durak.qsrc
  45. 12 2
      locations/cikl.qsrc
  46. 1 1
      locations/city_experimental_trials_list.qsrc
  47. 2 2
      locations/city_hermitage.qsrc
  48. 2 2
      locations/city_industrial.qsrc
  49. 62 143
      locations/city_industrial_train.qsrc
  50. 2 1
      locations/city_market.qsrc
  51. 10 7
      locations/city_saunawhore.qsrc
  52. 1 0
      locations/city_smalloffice.qsrc
  53. 12 11
      locations/city_suburbs.qsrc
  54. 29 133
      locations/city_train.qsrc
  55. 60 21
      locations/clothing.qsrc
  56. 37 80
      locations/clothing_QV.qsrc
  57. 8 2
      locations/clothing_attributes.qsrc
  58. 4 4
      locations/core_library.qsrc
  59. 35 55
      locations/cum_call.qsrc
  60. 82 29
      locations/cum_cleanup.qsrc
  61. 2 1
      locations/dachi.qsrc
  62. 153 121
      locations/dinSex.qsrc
  63. 2 4
      locations/dinSex2.qsrc
  64. 6 3
      locations/din_bad.qsrc
  65. 80 30
      locations/din_van.qsrc
  66. 2 31
      locations/dinsexFX.qsrc
  67. 1 1
      locations/emp_functions.qsrc
  68. 2 2
      locations/ender.qsrc
  69. 1 1
      locations/etoexhib.qsrc
  70. 57 40
      locations/exercise.qsrc
  71. 47 1
      locations/exhibitionistshop.qsrc
  72. 7 3
      locations/fit.qsrc
  73. 1 0
      locations/food.qsrc
  74. 1 0
      locations/food_menu.qsrc
  75. 64 65
      locations/foto.qsrc
  76. 10 10
      locations/foto_events.qsrc
  77. 2 2
      locations/foto_model_documentary.qsrc
  78. 1 1
      locations/foto_practice.qsrc
  79. 1 1
      locations/foto_shoot.qsrc
  80. 2 3
      locations/gadhouse.qsrc
  81. 6 4
      locations/gadroad.qsrc
  82. 61 1
      locations/gadsarai.qsrc
  83. 2 2
      locations/gadukino.qsrc
  84. 3 3
      locations/gameover.qsrc
  85. 1 1
      locations/gdksport.qsrc
  86. 3 3
      locations/gopsex.qsrc
  87. 1 1
      locations/gopskver.qsrc
  88. 1 1
      locations/gschool_cheerleading.qsrc
  89. 2 2
      locations/gschool_grounds.qsrc
  90. 2 2
      locations/gschool_lessons.qsrc
  91. 1 1
      locations/gschool_lunch.qsrc
  92. 1 1
      locations/gschool_sex.qsrc
  93. 1 1
      locations/gschool_socialchg.qsrc
  94. 20 13
      locations/hairsalon.qsrc
  95. 34 26
      locations/hourly_events.qsrc
  96. 1 1
      locations/husbSex.qsrc
  97. 2 10
      locations/intro_city.qsrc
  98. 1 3
      locations/intro_city_m.qsrc
  99. 1165 930
      locations/intro_city_select.qsrc
  100. 1 4
      locations/intro_city_tg.qsrc

+ 0 - 2143
duplicate_media_files.txt

@@ -1,2143 +0,0 @@
-   2 equal files of size 3965879
-   /images/shared/prostitution/car/normal/sex/cum/abelly_10.mp4
-   /images/shared/prostitution/car/normal/sex/cum/pbelly_10.mp4
-
-   2 equal files of size 2199156
-   /images/shared/prostitution/car/normal/sex/anal/anal_17.mp4
-   /images/shared/prostitution/car/regular/sex/main_anal2.mp4
-
-   2 equal files of size 1920167
-   /images/locations/city/citycenter/photo/lingerie/2.mp4
-   /images/locations/city/citycenter/photo/lingerie2.mp4
-
-   2 equal files of size 1880659
-   /images/locations/city/citycenter/photo/bikini/4.mp4
-   /images/locations/city/citycenter/photo/bikini2.mp4
-
-   2 equal files of size 1762882
-   /images/locations/city/citycenter/photo/fame/fametopless1.mp4
-   /images/locations/city/citycenter/photo/fametopless1.mp4
-
-   2 equal files of size 1695915
-   /images/locations/city/citycenter/photo/special/basketball.mp4
-   /images/locations/city/citycenter/photo/basketball.mp4
-
-   2 equal files of size 1614645
-   /images/locations/city/citycenter/photo/bikini/1.mp4
-   /images/locations/city/citycenter/photo/bikini3.mp4
-
-   2 equal files of size 1412968
-   /images/locations/city/citycenter/photo/skill/skill_beach.mp4
-   /images/locations/city/citycenter/photo/skill_beach.mp4
-
-   2 equal files of size 1304186
-   /images/shared/prostitution/car/normal/sex/anal/anal_19.mp4
-   /images/shared/prostitution/car/regular/sex/main_anal4.mp4
-
-   2 equal files of size 1260905
-   /images/characters/pavlovsk/school/boy/igor/sex/home/trahaet2.mp4
-   /images/characters/pavlovsk/school/boy/igor/sex/home/trahaet_2.mp4
-
-   2 equal files of size 1260370
-   /images/shared/sex/shower/doggy_enter1.mp4
-   /images/shared/sex/shower/enter.mp4
-
-   2 equal files of size 1237419
-   /images/locations/city/citycenter/photo/fame/fametopless3.mp4
-   /images/locations/city/citycenter/photo/fametopless3.mp4
-
-   2 equal files of size 1060169
-   /images/locations/city/citycenter/photo/fashion/2.mp4
-   /images/locations/city/citycenter/photo/fashion2.mp4
-
-   2 equal files of size 1039135
-   /images/locations/city/citycenter/photo/fame/tennis.mp4
-   /images/locations/city/citycenter/photo/fame_tennis.mp4
-
-   3 equal files of size 1002214
-   /images/locations/city/citycenter/photo/skill/runway/1.mp4
-   /images/locations/city/citycenter/photo/skill/skill_runway.mp4
-   /images/locations/city/citycenter/photo/skill_runway.mp4
-
-   2 equal files of size 998910
-   /images/locations/city/citycenter/photo/bikini/5.mp4
-   /images/locations/city/citycenter/photo/bikini.mp4
-
-   2 equal files of size 997280
-   /images/locations/city/citycenter/photo/fame/fametopless2.mp4
-   /images/locations/city/citycenter/photo/fametopless2.mp4
-
-   2 equal files of size 939811
-   /images/shared/sex/cum/mouth/spit3.mp4
-   /images/shared/sex/cum/spit3.mp4
-
-   2 equal files of size 829627
-   /images/locations/city/citycenter/photo/fame/pool.mp4
-   /images/locations/city/citycenter/photo/fame_pool.mp4
-
-   2 equal files of size 777447
-   /images/locations/city/citycenter/photo/fame/fametopless4.mp4
-   /images/locations/city/citycenter/photo/fametopless4.mp4
-
-   2 equal files of size 763982
-   /images/locations/shared/brothel/tiedonbackfuckvaginal.mp4
-   /images/locations/shared/brothel/tied_vaginal.mp4
-
-   2 equal files of size 711573
-   /images/shared/sex/misc/undress1.mp4
-   /images/shared/sex/undress/undress1.mp4
-
-   2 equal files of size 668416
-   /images/characters/pavlovsk/school/boy/igor/sex/home/trahaet3.mp4
-   /images/characters/pavlovsk/school/boy/igor/sex/home/trahaet_3.mp4
-
-   2 equal files of size 620688
-   /images/locations/city/citycenter/photo/fame/fametopless5.mp4
-   /images/locations/city/citycenter/photo/fametopless5.mp4
-
-   2 equal files of size 617129
-   /images/locations/city/citycenter/photo/skill/skill_pool.mp4
-   /images/locations/city/citycenter/photo/skill_pool.mp4
-
-   3 equal files of size 583286
-   /images/locations/city/citycenter/photo/special/wet/wet.mp4
-   /images/locations/city/citycenter/photo/special/wet.mp4
-   /images/locations/city/citycenter/photo/wet.mp4
-
-   2 equal files of size 550835
-   /images/locations/pavlovsk/school/grounds/track/MA-010.png
-   /images/pc/activities/track/MA-010.png
-
-   2 equal files of size 517123
-   /images/shared/romance/misc/wakeup_shock2.mp4
-   /images/shared/sex/after/wakeup_shock2.mp4
-
-   2 equal files of size 516927
-   /images/locations/city/citycenter/photo/fame/outdoors1.mp4
-   /images/locations/city/citycenter/photo/fame_outdoors.mp4
-
-   2 equal files of size 492786
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall3.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock3.mp4
-
-   2 equal files of size 485588
-   /images/locations/shared/brothel/tiedonbackfistanal.mp4
-   /images/locations/shared/brothel/tied_analfisting.mp4
-
-   2 equal files of size 467370
-   /images/locations/shared/brothel/tiedonbackfuckanal.mp4
-   /images/locations/shared/brothel/tied_anal.mp4
-
-   2 equal files of size 455129
-   /images/locations/city/citycenter/photo/skill/skill_topless.mp4
-   /images/locations/city/citycenter/photo/skill_topless.mp4
-
-   2 equal files of size 446317
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall2.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock2.mp4
-
-   2 equal files of size 442513
-   /images/shared/romance/misc/wakeup_shock1.mp4
-   /images/shared/sex/after/wakeup_shock1.mp4
-
-   2 equal files of size 430261
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall7.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock7.mp4
-
-   2 equal files of size 383652
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall4.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock1.mp4
-
-   2 equal files of size 345769
-   /images/shared/prostitution/car/normal/sex/anal/anal_16.mp4
-   /images/shared/prostitution/car/regular/sex/main_anal1.mp4
-
-   2 equal files of size 317583
-   /images/shared/romance/misc/wakeup_shock3.mp4
-   /images/shared/sex/after/wakeup_shock3.mp4
-
-   2 equal files of size 296109
-   /images/locations/city/citycenter/mall/salon/work/sex/creampie2.mp4
-   /images/shared/sex/cum/cum7.mp4
-
-   3 equal files of size 273081
-   /images/locations/shared/brothel/tiedonbackvibropussy.mp4
-   /images/locations/shared/brothel/tied_bibrate.mp4
-   /images/locations/shared/brothel/tied_vibrate.mp4
-
-   2 equal files of size 259833
-   /images/shared/prostitution/car/normal/sex/anal/anal_15.mp4
-   /images/shared/prostitution/car/regular/sex/main_anal0.mp4
-
-   2 equal files of size 240406
-   /images/shared/home/bathroom/shower_bath_dildo.mp4
-   /images/shared/home/bathroom/shower_bath_dildo2.mp4
-
-   2 equal files of size 230670
-   /images/shared/sex/cum/mouth/spit2.mp4
-   /images/shared/sex/cum/spit2.mp4
-
-   2 equal files of size 202334
-   /images/locations/pavlovsk/school/grounds/track/FE-016.jpg
-   /images/pc/activities/track/FE-016.jpg
-
-   2 equal files of size 201702
-   /images/shared/prostitution/car/normal/sex/anal/anal_18.mp4
-   /images/shared/prostitution/car/regular/sex/main_anal3.mp4
-
-   2 equal files of size 199851
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall5.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock5.mp4
-
-   2 equal files of size 197714
-   /images/locations/shared/brothel/tiedonbackwhippussy.mp4
-   /images/locations/shared/brothel/tied_whip.mp4
-
-   2 equal files of size 195289
-   /images/locations/shared/brothel/tiedonbackfuckmouth.mp4
-   /images/locations/shared/brothel/tied_mouth.mp4
-
-   2 equal files of size 188921
-   /images/locations/pavlovsk/resident/apartment/events/sex/evbgsex.jpg
-   /images/locations/pavlovsk/resident/apartment/events/evbgsex.jpg
-
-   2 equal files of size 182518
-   /images/pc/activities/photography/foto/locations/9.jpg
-   /images/pc/activities/photography/foto/pav_school.jpg
-
-   2 equal files of size 173232
-   /images/locations/shared/brothel/tiedonbacktease.mp4
-   /images/locations/shared/brothel/tied_tease.mp4
-
-   2 equal files of size 168857
-   /images/characters/pavlovsk/resident/mom/pavrun1.jpg
-   /images/characters/pavlovsk/resident/mom/pavyoga1.jpg
-
-   2 equal files of size 157938
-   /images/locations/shared/street/sharkdress.mp4
-   /images/locations/shared/street/sharkdress1.mp4
-
-   2 equal files of size 157765
-   /images/locations/pavlovsk/school/bathroom/sex/mastrubate.mp4
-   /images/locations/pavlovsk/school/bathroom/sex/masturbate1.mp4
-
-   2 equal files of size 150087
-   /images/locations/pavlovsk/school/grounds/track/AP-003.jpg
-   /images/pc/activities/track/AP-003.jpg
-
-   2 equal files of size 144239
-   /images/locations/pavlovsk/school/grounds/track/OC-001.jpg
-   /images/pc/activities/track/OC-001.jpg
-
-   2 equal files of size 132587
-   /images/pc/activities/photography/foto/locations/4.jpg
-   /images/pc/activities/photography/foto/gadukino.jpg
-
-   2 equal files of size 128067
-   /images/pc/activities/photography/foto/people/4.jpg
-   /images/pc/activities/photography/foto/sonia.jpg
-
-   2 equal files of size 123417
-   /images/locations/pavlovsk/school/grounds/track/MA-009.jpg
-   /images/pc/activities/track/MA-009.jpg
-
-   2 equal files of size 123165
-   /images/locations/pavlovsk/school/grounds/track/MA-012.jpg
-   /images/pc/activities/track/MA-012.jpg
-
-   2 equal files of size 120840
-   /images/pc/activities/photography/foto/locations/10.jpg
-   /images/pc/activities/photography/foto/pav_park.jpg
-
-   2 equal files of size 120611
-   /images/locations/pavlovsk/school/grounds/track/PR-005.jpg
-   /images/pc/activities/track/PR-005.jpg
-
-   2 equal files of size 120462
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-003.jpg
-   /images/pc/activities/track/SXFU-003.jpg
-
-   2 equal files of size 116571
-   /images/locations/pavlovsk/resident/apartment/shulginhome/smroom/event/miss2.mp4
-   /images/locations/pavlovsk/resident/apartment/shulginhome/smroom/event/miss3.mp4
-
-   2 equal files of size 116184
-   /images/locations/city/citycenter/photo/nude/2.jpg
-   /images/locations/city/citycenter/photo/nude29.jpg
-
-   2 equal files of size 115073
-   /images/pc/activities/photography/foto/locations/5.jpg
-   /images/pc/activities/photography/foto/dachi.jpg
-
-   2 equal files of size 113262
-   /images/locations/pavlovsk/school/grounds/track/MA-003.jpeg
-   /images/pc/activities/track/MA-003.jpeg
-
-   2 equal files of size 109359
-   /images/locations/city/citycenter/photo/topnude/14.jpg
-   /images/locations/city/citycenter/photo/nude21.jpg
-
-   2 equal files of size 108986
-   /images/locations/city/residential/apartment/home/sex/balcony_anal2.mp4
-   /images/locations/city/residential/apartment/sex/balcony_anal2.mp4
-
-   2 equal files of size 108402
-   /images/locations/pavlovsk/community/guitarlesson/glessonad.jpg
-   /images/locations/shared/noticeboards/pav/flyer_music_guitar.jpg
-
-   2 equal files of size 107890
-   /images/locations/pavlovsk/lake/secluded_beach/voyeurism/voyeurism_start_event_18.jpg
-   /images/locations/pavlovsk/lake/secluded_beach/voyeurism/voyeurism_start_event_4.jpg
-
-   2 equal files of size 107465
-   /images/locations/city/citycenter/photo/adverts/advert2.jpg
-   /images/locations/city/citycenter/photo/advert2.jpg
-
-   2 equal files of size 106529
-   /images/pc/activities/photography/foto/locations/7.jpg
-   /images/pc/activities/photography/foto/pav_complex.jpg
-
-   2 equal files of size 105474
-   /images/locations/gadukino/forest/gadforestlost_winter0.2.jpg
-   /images/locations/gadukino/forest/gadforest_winter3.jpg
-
-   2 equal files of size 105150
-   /images/locations/pavlovsk/school/grounds/track/MA-011.jpg
-   /images/pc/activities/track/MA-011.jpg
-
-   2 equal files of size 102213
-   /images/locations/pavlovsk/school/grounds/track/PR-003.jpg
-   /images/pc/activities/track/PR-003.jpg
-
-   2 equal files of size 100161
-   /images/locations/pavlovsk/school/grounds/track/AP-013.jpg
-   /images/pc/activities/track/AP-013.jpg
-
-   2 equal files of size 98624
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccowkiss1_2.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_owKiss1_2.jpg
-
-   2 equal files of size 98473
-   /images/locations/pavlovsk/school/grounds/track/DE-007.jpg
-   /images/pc/activities/track/DE-007.jpg
-
-   2 equal files of size 98224
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccoworal1_1.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_owOral1_1.jpg
-
-   2 equal files of size 97615
-   /images/characters/pavlovsk/school/girl/natasha/study.jpg
-   /images/locations/pavlovsk/resident/apartment/natbelapt/study.jpg
-
-   2 equal files of size 96749
-   /images/locations/city/citycenter/photo/special/runway_waiting.mp4
-   /images/locations/city/citycenter/photo/runway_waiting.mp4
-
-   2 equal files of size 93764
-   /images/characters/pavlovsk/school/girl/albina/sex/prostitute/d1.jpg
-   /images/characters/pavlovsk/school/girl/albina/sex/prostitute/threesome1.jpg
-
-   2 equal files of size 93249
-   /images/locations/city/residential/apartment/home/kuhr.jpg
-   /images/locations/city/residential/apartment/kuhr.jpg
-
-   2 equal files of size 93098
-   /images/pc/activities/photography/foto/locations/6.jpg
-   /images/pc/activities/photography/foto/gadforest.jpg
-
-   2 equal files of size 92794
-   /images/locations/city/citycenter/photo/portraits/katherine_a/7.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/7.jpg
-
-   2 equal files of size 92096
-   /images/locations/pavlovsk/school/grounds/track/PR-008.jpg
-   /images/pc/activities/track/PR-008.jpg
-
-   2 equal files of size 90908
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccowkiss1_1.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_owKiss1_1.jpg
-
-   2 equal files of size 90908
-   /images/locations/pavlovsk/school/gym/locker/palpeek.jpg
-   /images/locations/pavlovsk/school/gym/palpeek.jpg
-
-   2 equal files of size 90204
-   /images/pc/activities/photography/foto/locations/1.jpg
-   /images/pc/activities/photography/foto/city_library.jpg
-
-   2 equal files of size 89369
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccow1_2.1.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_ow1_2.1.jpg
-
-   2 equal files of size 89013
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccoworalcuml1_1.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_owOralCuml1_1.jpg
-
-   2 equal files of size 88182
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-005.jpg
-   /images/pc/activities/track/SXFU-005.jpg
-
-   2 equal files of size 88096
-   /images/pc/activities/photography/foto/locations/8.jpg
-   /images/pc/activities/photography/foto/pav_train.jpg
-
-   2 equal files of size 88048
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rape2.jpg
-   /images/shared/sex/rape/park_rape2.jpg
-
-   2 equal files of size 87418
-   /images/characters/pavlovsk/school/girl/natasha/bedtalk.jpg
-   /images/locations/pavlovsk/resident/apartment/natbelapt/bedtalk.jpg
-
-   2 equal files of size 86800
-   /images/locations/pavlovsk/school/grounds/track/FE-020.jpg
-   /images/pc/activities/track/FE-020.jpg
-
-   2 equal files of size 86714
-   /images/characters/city/anatoly/sex/bossbjcum3.jpg
-   /images/locations/city/anatoly/sex/bossbjcum3.jpg
-
-   2 equal files of size 86368
-   /images/locations/city/residential/apartment/home/kuhr2.jpg
-   /images/locations/city/residential/apartment/kuhr2.jpg
-
-   2 equal files of size 85071
-   /images/characters/city/anatoly/sex/bossbjcum6.jpg
-   /images/locations/city/anatoly/sex/bossbjcum6.jpg
-
-   2 equal files of size 84865
-   /images/pc/activities/photography/foto/locations/12.jpg
-   /images/pc/activities/photography/foto/pav_church.jpg
-
-   2 equal files of size 84836
-   /images/locations/pavlovsk/school/grounds/track/PR-007.jpg
-   /images/pc/activities/track/PR-007.jpg
-
-   2 equal files of size 84595
-   /images/shared/sex/vag/miss/blood1.jpg
-   /images/shared/sex/vag/miss/virgin1.jpg
-
-   2 equal files of size 83055
-   /images/locations/city/citycenter/nichApartment/messy-room.jpg
-   /images/locations/city/citycenter/nichApartment/tanyaDirty3.jpg
-
-   2 equal files of size 82884
-   /images/locations/city/citycenter/photo/topnude/4.jpg
-   /images/locations/city/citycenter/photo/nude9.jpg
-
-   2 equal files of size 80067
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rapecum2.jpg
-   /images/shared/sex/rape/park_rapecum2.jpg
-
-   2 equal files of size 79848
-   /images/locations/shared/train/electri.jpg
-   /images/locations/shared/train/electri_1.jpg
-
-   2 equal files of size 78969
-   /images/shared/sex/vag/cowgirl/blood1.jpg
-   /images/shared/sex/vag/cowgirl/virgin1.jpg
-
-   2 equal files of size 78740
-   /images/locations/pavlovsk/school/grounds/track/MA-006.jpg
-   /images/pc/activities/track/MA-006.jpg
-
-   2 equal files of size 78124
-   /images/locations/pavlovsk/school/grounds/track/MA-002.jpg
-   /images/pc/activities/track/MA-002.jpg
-
-   2 equal files of size 77958
-   /images/characters/city/anatoly/sex/bossbjcum5.jpg
-   /images/locations/city/anatoly/sex/bossbjcum5.jpg
-
-   2 equal files of size 76969
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tusa3.jpg
-   /images/locations/pavlovsk/school/events/newyear/tusa3.jpg
-
-   2 equal files of size 76837
-   /images/locations/pavlovsk/school/grounds/track/FE-018.jpg
-   /images/pc/activities/track/FE-018.jpg
-
-   2 equal files of size 76422
-   /images/locations/city/residential/apartment/home/bedr2.jpg
-   /images/locations/city/residential/apartment/bedr2.jpg
-
-   2 equal files of size 76366
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rape4.jpg
-   /images/shared/sex/rape/park_rape4.jpg
-
-   3 equal files of size 76326
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-001.jpg
-   /images/locations/pavlovsk/school/grounds/track/OR-001.jpg
-   /images/pc/activities/track/OR-001.jpg
-
-   2 equal files of size 76198
-   /images/locations/pavlovsk/school/grounds/track/DE-006.jpg
-   /images/pc/activities/track/DE-006.jpg
-
-   3 equal files of size 76181
-   /images/locations/city/citycenter/photo/nude/1.jpg
-   /images/locations/city/citycenter/photo/nude.jpg
-   /images/locations/city/citycenter/photo/nude17.jpg
-
-   2 equal files of size 75721
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream3.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream3.jpg
-
-   2 equal files of size 75588
-   /images/locations/city/citycenter/mall/salon/work/sex/creampie1.mp4
-   /images/shared/sex/cum/cum8.mp4
-
-   2 equal files of size 74290
-   /images/locations/city/residential/apartment/stairs/event/sex/floor5_bj.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor5_bj.jpg
-
-   2 equal files of size 74231
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rape1.jpg
-   /images/shared/sex/rape/park_rape1.jpg
-
-   2 equal files of size 74115
-   /images/locations/city/industrial/red_light_district.jpg
-   /images/locations/city/redlight/redlight.jpg
-
-   2 equal files of size 73980
-   /images/locations/pavlovsk/school/grounds/track/KNO-01.jpg
-   /images/pc/activities/track/KNO-01.jpg
-
-   2 equal files of size 73240
-   /images/pc/activities/photography/foto/locations/11.jpg
-   /images/pc/activities/photography/foto/pav_lake.jpg
-
-   2 equal files of size 73237
-   /images/locations/city/residential/apartment/stairs/event/sex/floor2_bj.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor2_bj.jpg
-
-   2 equal files of size 73202
-   /images/locations/shared/sex/sexdvanadva/New folder/minet14.jpg
-   /images/locations/shared/sex/sexdvanadva/minet14.jpg
-
-   2 equal files of size 73118
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream4.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream4.jpg
-
-   2 equal files of size 72961
-   /images/pc/activities/phone/selfies/beach/nude/16.jpg
-   /images/pc/activities/phone/selfies/beach/nude/9.jpg
-
-   2 equal files of size 72798
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet18.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet18.jpg
-
-   2 equal files of size 72665
-   /images/locations/pavlovsk/school/grounds/track/AP-001.jpg
-   /images/pc/activities/track/AP-001.jpg
-
-   2 equal files of size 72202
-   /images/locations/pavlovsk/school/grounds/track/DE-005.jpg
-   /images/pc/activities/track/DE-005.jpg
-
-   2 equal files of size 71451
-   /images/locations/pavlovsk/school/grounds/track/OC-002.jpg
-   /images/pc/activities/track/OC-002.jpg
-
-   2 equal files of size 71168
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rape5.jpg
-   /images/shared/sex/rape/park_rape5.jpg
-
-   2 equal files of size 70892
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream2.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream2.jpg
-
-   2 equal files of size 70170
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-M01.mp4
-   /images/pc/activities/track/SXFU-M01.mp4
-
-   2 equal files of size 70111
-   /images/locations/pavlovsk/school/grounds/track/punishment/SP-003.jpg
-   /images/pc/activities/track/SP-003.jpg
-
-   2 equal files of size 69698
-   /images/locations/pavlovsk/school/grounds/track/FE-014.jpg
-   /images/pc/activities/track/FE-014.jpg
-
-   2 equal files of size 69508
-   /images/locations/pavlovsk/school/grounds/track/PR-009.jpg
-   /images/pc/activities/track/PR-009.jpg
-
-   2 equal files of size 69030
-   /images/locations/city/residential/lake/sex/anfisa/anuli4.jpg
-   /images/locations/city/residential/lake/sex/anfisa/kuni1.jpg
-
-   2 equal files of size 68953
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream1.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream1.jpg
-
-   2 equal files of size 68386
-   /images/locations/city/residential/apartment/home/sitr2.jpg
-   /images/locations/city/residential/apartment/sitr2.jpg
-
-   2 equal files of size 68357
-   /images/locations/pavlovsk/factory/gshveyfab.jpg
-   /images/locations/pavlovsk/factory/pav_factory.jpg
-
-   2 equal files of size 68125
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-011.jpg
-   /images/pc/activities/track/FE-011.jpg
-
-   2 equal files of size 68073
-   /images/characters/pavlovsk/school/boy/niko/kikoev2/dinner/6/vag2.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikoev2/diner/5/Vag2.jpg
-
-   2 equal files of size 68067
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift4.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift4.jpg
-
-   2 equal files of size 68011
-   /images/pc/activities/photography/foto/locations/13.jpg
-   /images/pc/activities/photography/foto/graveyard.jpg
-
-   2 equal files of size 67939
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift3.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift3.jpg
-
-   2 equal files of size 67901
-   /images/locations/city/citycenter/photo/seethru/5.jpg
-   /images/locations/city/citycenter/photo/seethru5.jpg
-
-   2 equal files of size 67742
-   /images/locations/pavlovsk/school/gym/locker/change.jpg
-   /images/locations/pavlovsk/school/gym/change.jpg
-
-   2 equal files of size 67627
-   /images/locations/pavlovsk/school/grounds/track/PR-006.jpg
-   /images/pc/activities/track/PR-006.jpg
-
-   2 equal files of size 67571
-   /images/locations/pavlovsk/resident/apartment/events/sex/evbj1.jpg
-   /images/locations/pavlovsk/resident/apartment/events/evbj.jpg
-
-   2 equal files of size 67279
-   /images/locations/pavlovsk/school/grounds/track/DE-002.jpg
-   /images/pc/activities/track/DE-002.jpg
-
-   2 equal files of size 67143
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum4.jpg
-   /images/pc/body/cum/cumface/brown/8.jpg
-
-   2 equal files of size 67067
-   /images/locations/city/residential/apartment/home/balcony_naked3.jpg
-   /images/locations/city/residential/apartment/balcony_naked3.jpg
-
-   2 equal files of size 66945
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rapecum1.jpg
-   /images/shared/sex/rape/park_rapecum1.jpg
-
-   2 equal files of size 66932
-   /images/characters/city/anatoly/sex/bossbjcum4.jpg
-   /images/locations/city/anatoly/sex/bossbjcum4.jpg
-
-   2 equal files of size 66609
-   /images/locations/pavlovsk/resident/dimkahome/newyear/sex/pett2.jpg
-   /images/locations/pavlovsk/school/events/newyear/sex/pett2.jpg
-
-   2 equal files of size 66336
-   /images/locations/pavlovsk/school/grounds/track/PC-002.jpg
-   /images/pc/activities/track/PC-002.jpg
-
-   2 equal files of size 66108
-   /images/locations/pavlovsk/school/grounds/track/AP-005.jpg
-   /images/pc/activities/track/AP-005.jpg
-
-   2 equal files of size 65900
-   /images/locations/pavlovsk/park/hugging park 3.jpg
-   /images/locations/pavlovsk/park/hugging_park_3.jpg
-
-   2 equal files of size 65582
-   /images/locations/pavlovsk/school/gym/locker/peekdress2.jpg
-   /images/locations/pavlovsk/school/gym/peekdress2.jpg
-
-   2 equal files of size 65379
-   /images/locations/city/residential/apartment/home/bedr.jpg
-   /images/locations/city/residential/apartment/bedr.jpg
-
-   2 equal files of size 65138
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream5.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream5.jpg
-
-   2 equal files of size 64714
-   /images/locations/city/citycenter/photo/topnude/1.jpg
-   /images/locations/city/citycenter/photo/nude3.jpg
-
-   2 equal files of size 64647
-   /images/locations/gadukino/sex/mitka/mitkaforestsexccow1_2.2.jpg
-   /images/locations/gadukino/sex/mitka/mitkaforestsex_ow1_2.2.jpg
-
-   2 equal files of size 64458
-   /images/characters/pavlovsk/school/boy/artem/sex/park/rape3.jpg
-   /images/shared/sex/rape/park_rape3.jpg
-
-   2 equal files of size 64140
-   /images/locations/city/citycenter/photo/fashion/4.jpg
-   /images/locations/city/citycenter/photo/fashion4.jpg
-
-   2 equal files of size 64004
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/exhibition/denis.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/exhibition/Vasily.jpg
-
-   2 equal files of size 63675
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-012.jpg
-   /images/pc/activities/track/FE-012.jpg
-
-   2 equal files of size 63497
-   /images/locations/city/citycenter/photo/nude/6.jpg
-   /images/locations/city/citycenter/photo/nude33.jpg
-
-   2 equal files of size 63027
-   /images/locations/city/residential/apartment/stairs/event/floor4_bottle.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor4_bottle.jpg
-
-   2 equal files of size 62846
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/hallway/soniaUpset.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikomisc/nikoev/school/hallway/soniaupset.jpg
-
-   2 equal files of size 62384
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift14.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift14.jpg
-
-   2 equal files of size 62282
-   /images/locations/pavlovsk/school/grounds/track/MA-005.jpg
-   /images/pc/activities/track/MA-005.jpg
-
-   2 equal files of size 62027
-   /images/locations/city/residential/apartment/home/balcony_naked1.jpg
-   /images/locations/city/residential/apartment/balcony_naked1.jpg
-
-   2 equal files of size 61917
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet15.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet15.jpg
-
-   2 equal files of size 61545
-   /images/locations/city/residential/apartment/home/kurit.jpg
-   /images/locations/city/residential/apartment/kurit.jpg
-
-   2 equal files of size 61304
-   /images/locations/pavlovsk/school/afterschool/sex/bscum2.jpg
-   /images/shared/sex/cum/mouth/cum50.jpg
-
-   2 equal files of size 61058
-   /images/locations/city/citycenter/photo/topless/2.jpg
-   /images/locations/city/citycenter/photo/topless2.jpg
-
-   2 equal files of size 60993
-   /images/locations/pavlovsk/school/grounds/track/CHR-02.jpg
-   /images/pc/activities/track/CHR-02.jpg
-
-   2 equal files of size 60672
-   /images/shared/home/bathroom/towel_wet.jpg
-   /images/shared/romance/lovers/misc/towel.jpg
-
-   2 equal files of size 60411
-   /images/locations/pavlovsk/resident/apartment/home/kuhrpar.jpg
-   /images/locations/pavlovsk/resident/apartment/ludahome/kitchen.jpg
-
-   2 equal files of size 60208
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream6.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream6.jpg
-
-   2 equal files of size 59544
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet11.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet11.jpg
-
-   2 equal files of size 59445
-   /images/locations/city/residential/apartment/stairs/event/sex/floor4_bj.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor4_bj.jpg
-
-   2 equal files of size 58801
-   /images/characters/pavlovsk/resident/reks/rex.jpg
-   /images/characters/shared/headshots_main/big57.jpg
-
-   2 equal files of size 58714
-   /images/locations/city/residential/apartment/stairs/event/sex/floor3_fuck.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor3_fuck.jpg
-
-   2 equal files of size 58625
-   /images/locations/gadukino/village/girl_cow_river.jpg
-   /images/locations/gadukino/village/graze_cow_river.jpg
-
-   3 equal files of size 58018
-   /images/pc/body/hairstyles/lng/curly-bangs-buns/hcol3.jpg
-   /images/pc/body/hairstyles/med/curly-bangs-buns/hcol3.jpg
-   /images/pc/body/hairstyles/medlo/curly-bangs-buns/hcol3.jpg
-
-   2 equal files of size 57523
-   /images/locations/pavlovsk/school/gym/locker/peekdress1.jpg
-   /images/locations/pavlovsk/school/gym/peekdress1.jpg
-
-   2 equal files of size 57179
-   /images/locations/city/citycenter/photo/adverts/advert4.jpg
-   /images/locations/city/citycenter/photo/advert4.jpg
-
-   2 equal files of size 57118
-   /images/locations/pavlovsk/school/classroom/literature/classlit.jpg
-   /images/locations/pavlovsk/school/classroom/classlit.jpg
-
-   2 equal files of size 57008
-   /images/characters/pavlovsk/pavlin/pavlin-bj.jpg
-   /images/characters/pavlovsk/pavlin/pavlin_bj.jpg
-
-   2 equal files of size 56989
-   /images/locations/pavlovsk/school/grounds/track/FE-019.jpg
-   /images/pc/activities/track/FE-019.jpg
-
-   2 equal files of size 56872
-   /images/characters/shared/headshots_main/big32.jpg
-   /images/locations/gadukino/grandparents/babushka.jpg
-
-   2 equal files of size 56849
-   /images/locations/city/citycenter/photo/tastenude/3.jpg
-   /images/locations/city/citycenter/photo/nude6.jpg
-
-   2 equal files of size 56601
-   /images/shared/food/fast_food.jpg
-   /images/shared/food/food.jpg
-
-   2 equal files of size 56535
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift11.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift11.jpg
-
-   2 equal files of size 56425
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-004.jpg
-   /images/pc/activities/track/OR-004.jpg
-
-   2 equal files of size 56395
-   /images/locations/pavlovsk/resident/apartment/events/sex/evanal.jpg
-   /images/locations/pavlovsk/resident/apartment/events/evanal.jpg
-
-   2 equal files of size 56066
-   /images/locations/pavlovsk/school/grounds/track/AP-009.jpg
-   /images/pc/activities/track/AP-009.jpg
-
-   2 equal files of size 55871
-   /images/characters/pavlovsk/school/boy/vasya/sex/shuglinhome/tv/cum9.jpg
-   /images/pc/body/cum/cumface/black/8.jpg
-
-   2 equal files of size 55709
-   /images/locations/city/citycenter/photo/sexy/3.jpg
-   /images/locations/city/citycenter/photo/ero4.jpg
-
-   2 equal files of size 55527
-   /images/locations/shared/sex/sexdvanadva/New folder/minet15.jpg
-   /images/locations/shared/sex/sexdvanadva/minet15.jpg
-
-   2 equal files of size 55490
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-002.jpg
-   /images/pc/activities/track/OR-002.jpg
-
-   2 equal files of size 55484
-   /images/locations/city/residential/apartment/stairs/event/sex/floor3_bj.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor3_bj.jpg
-
-   2 equal files of size 55450
-   /images/locations/city/citycenter/photo/tastenude/4.jpg
-   /images/locations/city/citycenter/photo/nude4.jpg
-
-   2 equal files of size 55221
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-009.jpg
-   /images/pc/activities/track/FE-009.jpg
-
-   2 equal files of size 55146
-   /images/characters/pavlovsk/school/boy/niko/kikoev2/dinner/6/rear2.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikoev2/diner/6/anal2.jpg
-
-   2 equal files of size 54805
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift10.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift10.jpg
-
-   2 equal files of size 54660
-   /images/locations/pavlovsk/resident/dimkahome/newyear/alb.jpg
-   /images/locations/pavlovsk/school/events/newyear/alb.jpg
-
-   2 equal files of size 54459
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-002.jpg
-   /images/pc/activities/track/SXFU-002.jpg
-
-   2 equal files of size 54454
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift13.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift13.jpg
-
-   2 equal files of size 54359
-   /images/characters/pavlovsk/school/girl/albina/sex/prostitute/d.jpg
-   /images/characters/pavlovsk/school/girl/albina/sex/prostitute/threesome.jpg
-
-   2 equal files of size 54245
-   /images/locations/pavlovsk/school/grounds/track/FAM-003.jpg
-   /images/pc/activities/track/FAM-003.jpg
-
-   2 equal files of size 54186
-   /images/characters/pavlovsk/pavlin/pavlin-hj.jpg
-   /images/characters/pavlovsk/pavlin/pavlin_hj.jpg
-
-   2 equal files of size 54085
-   /images/pc/activities/photography/foto/people/5.jpg
-   /images/pc/activities/photography/foto/nush.jpg
-
-   2 equal files of size 54035
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet14.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet14.jpg
-
-   2 equal files of size 53971
-   /images/pc/activities/photography/foto/people/1.jpg
-   /images/pc/activities/photography/foto/mother.jpg
-
-   2 equal files of size 53713
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet7.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet7.jpg
-
-   2 equal files of size 53578
-   /images/locations/pavlovsk/school/grounds/track/FE-003.jpg
-   /images/pc/activities/track/FE-003.jpg
-
-   2 equal files of size 53509
-   /images/locations/pavlovsk/school/grounds/track/MA-013.jpg
-   /images/pc/activities/track/MA-013.jpg
-
-   2 equal files of size 53282
-   /images/locations/pavlovsk/park/sex/gop/bjbeerbeaten.jpg
-   /images/locations/pavlovsk/park/sex/gop/bjbeerbeaten1.jpg
-
-   2 equal files of size 53137
-   /images/locations/pavlovsk/school/grounds/track/PC-001.jpg
-   /images/pc/activities/track/PC-001.jpg
-
-   2 equal files of size 53002
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tusa9.jpg
-   /images/locations/pavlovsk/school/events/newyear/tusa9.jpg
-
-   2 equal files of size 52934
-   /images/characters/pavlovsk/school/girl/natasha/sex/seethrough01.jpg
-   /images/characters/pavlovsk/school/girl/natasha/seethrough01.jpg
-
-   2 equal files of size 52712
-   /images/locations/pavlovsk/school/grounds/track/DE-001.jpg
-   /images/pc/activities/track/DE-001.jpg
-
-   2 equal files of size 52684
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift9.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift9.jpg
-
-   2 equal files of size 52338
-   /images/locations/pavlovsk/school/grounds/track/DE-008.jpg
-   /images/pc/activities/track/DE-008.jpg
-
-   2 equal files of size 52332
-   /images/locations/pavlovsk/school/grounds/track/punishment/SP-004.jpg
-   /images/pc/activities/track/SP-004.jpg
-
-   2 equal files of size 52326
-   /images/characters/city/anatoly/sex/bossbj14.jpg
-   /images/locations/city/anatoly/sex/bossbj14.jpg
-
-   2 equal files of size 52302
-   /images/locations/city/residential/apartment/home/balcony_naked2.jpg
-   /images/locations/city/residential/apartment/balcony_naked2.jpg
-
-   2 equal files of size 51505
-   /images/locations/pavlovsk/school/grounds/track/DE-003.jpg
-   /images/pc/activities/track/DE-003.jpg
-
-   2 equal files of size 51424
-   /images/locations/pavlovsk/school/grounds/track/punishment/SP-002.jpg
-   /images/pc/activities/track/SP-002.jpg
-
-   2 equal files of size 51375
-   /images/locations/city/residential/apartment/stairs/event/floor5_couple.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor5_couple.jpg
-
-   2 equal files of size 51344
-   /images/characters/pavlovsk/school/boy/niko/kikoev2/dinner/6/vag1.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikoev2/diner/5/Vag1.jpg
-
-   2 equal files of size 50697
-   /images/pc/body/pussy/hair/green.jpg
-   /images/pc/body/pussy/hair/green_full.jpg
-
-   2 equal files of size 50594
-   /images/characters/pavlovsk/resident/arthur/sex/cocksuckercum.jpg
-   /images/locations/city/residential/office/sex/guard/bjcum4.jpg
-
-   2 equal files of size 50577
-   /images/locations/pavlovsk/school/grounds/track/MA-008.jpg
-   /images/pc/activities/track/MA-008.jpg
-
-   2 equal files of size 49459
-   /images/locations/city/citycenter/photo/topless/14.jpg
-   /images/locations/city/citycenter/photo/topless14.jpg
-
-   2 equal files of size 49458
-   /images/locations/city/citycenter/photo/special/art1.jpg
-   /images/locations/city/citycenter/photo/art1.jpg
-
-   2 equal files of size 49378
-   /images/locations/pavlovsk/school/grounds/track/DE-004.jpg
-   /images/pc/activities/track/DE-004.jpg
-
-   2 equal files of size 49344
-   /images/locations/city/residential/apartment/home/vanr.jpg
-   /images/locations/city/residential/apartment/vanr.jpg
-
-   2 equal files of size 49026
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-008.jpg
-   /images/pc/activities/track/OR-008.jpg
-
-   2 equal files of size 48958
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-010.jpg
-   /images/pc/activities/track/FE-010.jpg
-
-   2 equal files of size 48939
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-016.jpg
-   /images/pc/activities/track/MA-016.jpg
-
-   2 equal files of size 48436
-   /images/characters/pavlovsk/school/boy/niko/nikomisc/meynold/vicky/vickySmile.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikomisc/meynold/vicky/vickysmile1.jpg
-
-   2 equal files of size 48227
-   /images/characters/shared/headshots_main/big31.jpg
-   /images/locations/gadukino/grandparents/grandpa1.jpg
-
-   2 equal files of size 47983
-   /images/locations/city/citycenter/photo/portraits/katherine_a/2.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/2.jpg
-
-   2 equal files of size 47977
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_8.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_13.jpg
-
-   2 equal files of size 47964
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-004.jpg
-   /images/pc/activities/track/SXFU-004.jpg
-
-   2 equal files of size 47785
-   /images/locations/city/citycenter/photo/bnude/4.jpg
-   /images/locations/city/citycenter/photo/nude38.jpg
-
-   2 equal files of size 47757
-   /images/locations/city/citycenter/photo/topless/12.jpg
-   /images/locations/city/citycenter/photo/topless12.jpg
-
-   2 equal files of size 47651
-   /images/pc/activities/photography/foto/people/3.jpg
-   /images/pc/activities/photography/foto/lazar.jpg
-
-   2 equal files of size 47601
-   /images/locations/pavlovsk/school/grounds/track/NI-003.jpg
-   /images/pc/activities/track/NI-003.jpg
-
-   2 equal files of size 47507
-   /images/locations/pavlovsk/school/grounds/track/FE-005.jpg
-   /images/pc/activities/track/FE-005.jpg
-
-   2 equal files of size 47427
-   /images/locations/pavlovsk/school/grounds/track/punishment/SP-001.jpg
-   /images/pc/activities/track/SP-001.jpg
-
-   2 equal files of size 47376
-   /images/locations/pavlovsk/school/grounds/track/FAM-002.jpg
-   /images/pc/activities/track/FAM-002.jpg
-
-   2 equal files of size 47318
-   /images/locations/pavlovsk/school/grounds/track/PR-004.jpg
-   /images/pc/activities/track/PR-004.jpg
-
-   2 equal files of size 46957
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream8.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream8.jpg
-
-   2 equal files of size 46890
-   /images/characters/pavlovsk/resident/serge/serge2.jpg
-   /images/characters/shared/headshots_main/big112.jpg
-
-   2 equal files of size 46809
-   /images/pc/body/cum/cumface/blonde/5.jpg
-   /images/shared/sex/cum/facial/facial0,6.jpg
-
-   2 equal files of size 46553
-   /images/locations/pavlovsk/school/lunch/peremena20.jpg
-   /images/locations/pavlovsk/school/lunch/peremena4.jpg
-
-   2 equal files of size 46396
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet20.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet20.jpg
-
-   2 equal files of size 46292
-   /images/locations/pavlovsk/school/lunch/peremena10.jpg
-   /images/locations/pavlovsk/school/lunch/peremena17.jpg
-
-   2 equal files of size 46141
-   /images/locations/pavlovsk/school/grounds/track/AP-012.jpg
-   /images/pc/activities/track/AP-012.jpg
-
-   2 equal files of size 46112
-   /images/locations/pavlovsk/resident/dimkahome/newyear/sex/cond.jpg
-   /images/locations/pavlovsk/school/events/newyear/sex/cond.jpg
-
-   2 equal files of size 46100
-   /images/locations/city/citycenter/photo/special/group.jpg
-   /images/locations/city/citycenter/photo/group.jpg
-
-   2 equal files of size 45918
-   /images/characters/shared/boyfriend/groped.jpg
-   /images/locations/shared/boyfriend/groped.jpg
-
-   2 equal files of size 45774
-   /images/locations/city/citycenter/photo/topnude/12.jpg
-   /images/locations/city/citycenter/photo/nude19.jpg
-
-   2 equal files of size 45708
-   /images/locations/city/citycenter/photo/topless/4.jpg
-   /images/locations/city/citycenter/photo/topless4.jpg
-
-   2 equal files of size 45312
-   /images/locations/pavlovsk/resident/apartment/events/sex/evbjn.jpg
-   /images/locations/pavlovsk/resident/apartment/events/evbjn.jpg
-
-   2 equal files of size 45289
-   /images/locations/city/citycenter/photo/topnude/10.jpg
-   /images/locations/city/citycenter/photo/nude15.jpg
-
-   2 equal files of size 45154
-   /images/locations/city/citycenter/photo/portraits/katherine_a/3.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/3.jpg
-
-   2 equal files of size 45074
-   /images/locations/city/residential/apartment/home/vanr2.jpg
-   /images/locations/shared/bathroom/vanr2.jpg
-
-   3 equal files of size 45020
-   /images/pc/body/hairstyles/lng/curly-bangs-buns/hcol2.jpg
-   /images/pc/body/hairstyles/med/curly-bangs-buns/hcol2.jpg
-   /images/pc/body/hairstyles/medlo/curly-bangs-buns/hcol2.jpg
-
-   2 equal files of size 44931
-   /images/locations/pavlovsk/resident/dimkahome/newyear/sex/pett.jpg
-   /images/locations/pavlovsk/school/events/newyear/sex/pett.jpg
-
-   2 equal files of size 44862
-   /images/characters/pavlovsk/school/girl/natasha/sex/seethrough03.jpg
-   /images/characters/pavlovsk/school/girl/natasha/seethrough03.jpg
-
-   2 equal files of size 44615
-   /images/locations/city/citycenter/photo/special/art3.jpg
-   /images/locations/city/citycenter/photo/art3.jpg
-
-   2 equal files of size 44611
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tusa8.jpg
-   /images/locations/pavlovsk/school/events/newyear/tusa8.jpg
-
-   2 equal files of size 44490
-   /images/locations/city/citycenter/photo/adverts/advert3.jpg
-   /images/locations/city/citycenter/photo/advert3.jpg
-
-   2 equal files of size 44382
-   /images/locations/city/citycenter/photo/fashion/2.jpg
-   /images/locations/city/citycenter/photo/fashion2.jpg
-
-   2 equal files of size 44374
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-006.jpg
-   /images/pc/activities/track/SXFU-006.jpg
-
-   2 equal files of size 44369
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift5.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift5.jpg
-
-   2 equal files of size 44270
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-008.jpg
-   /images/pc/activities/track/FE-008.jpg
-
-   2 equal files of size 44264
-   /images/locations/city/citycenter/photo/adverts/advert1.jpg
-   /images/locations/city/citycenter/photo/advert1.jpg
-
-   2 equal files of size 43839
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tusa6.jpg
-   /images/locations/pavlovsk/school/events/newyear/tusa6.jpg
-
-   2 equal files of size 43625
-   /images/locations/city/citycenter/photo/tastenude/1.jpg
-   /images/locations/city/citycenter/photo/nude1.jpg
-
-   2 equal files of size 43520
-   /images/locations/pavlovsk/community/chess/kruchess.jpg
-   /images/locations/pavlovsk/community/kruchess.jpg
-
-   2 equal files of size 43516
-   /images/locations/pavlovsk/school/bathroom/caught.jpg
-   /images/locations/pavlovsk/school/bathroom/caught1.jpg
-
-   2 equal files of size 43465
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet2.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet2.jpg
-
-   2 equal files of size 43464
-   /images/characters/pavlovsk/school/boy/vasya/sex/shuglinhome/tv/cum10.jpg
-   /images/pc/body/cum/cumface/brown/10.jpg
-
-   2 equal files of size 43207
-   /images/locations/shared/sex/sexdvanadva/New folder/minet1.jpg
-   /images/locations/shared/sex/sexdvanadva/minet1.jpg
-
-   2 equal files of size 43134
-   /images/locations/pavlovsk/school/grounds/track/MA-014.jpg
-   /images/pc/activities/track/MA-014.jpg
-
-   2 equal files of size 43041
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet12.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet12.jpg
-
-   2 equal files of size 43021
-   /images/locations/pavlovsk/school/grounds/track/AP-010.jpg
-   /images/pc/activities/track/AP-010.jpg
-
-   2 equal files of size 42808
-   /images/locations/city/residential/apartment/home/balcony_dressed1.jpg
-   /images/locations/city/residential/apartment/balcony_dressed1.jpg
-
-   2 equal files of size 42770
-   /images/locations/city/citycenter/photo/topless/19.jpg
-   /images/locations/city/citycenter/photo/topless19.jpg
-
-   2 equal files of size 42722
-   /images/locations/pavlovsk/school/gym/locker/lenpeek.jpg
-   /images/locations/pavlovsk/school/gym/lenpeek.jpg
-
-   2 equal files of size 42668
-   /images/locations/shared/sex/sexdvanadva/New folder/minet0.jpg
-   /images/locations/shared/sex/sexdvanadva/minet0.jpg
-
-   2 equal files of size 42587
-   /images/locations/pavlovsk/school/grounds/track/FE-002.jpg
-   /images/pc/activities/track/FE-002.jpg
-
-   2 equal files of size 42569
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-001.jpg
-   /images/pc/activities/track/SXFU-001.jpg
-
-   2 equal files of size 42263
-   /images/locations/pavlovsk/school/lunch/peremena18.jpg
-   /images/locations/pavlovsk/school/lunch/peremena6.jpg
-
-   2 equal files of size 42253
-   /images/locations/city/citycenter/photo/seethru/2.jpg
-   /images/locations/city/citycenter/photo/seethru2.jpg
-
-   2 equal files of size 42137
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tit.jpg
-   /images/locations/pavlovsk/school/events/newyear/tit.jpg
-
-   2 equal files of size 42135
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet9.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet9.jpg
-
-   2 equal files of size 42101
-   /images/locations/city/citycenter/photo/seethru/1.jpg
-   /images/locations/city/citycenter/photo/seethru1.jpg
-
-   2 equal files of size 41967
-   /images/locations/pavlovsk/resident/dimkahome/newyear/sex/kat.jpg
-   /images/locations/pavlovsk/school/events/newyear/sex/kat.jpg
-
-   2 equal files of size 41857
-   /images/locations/city/citycenter/photo/portraits/katherine_a/5.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/5.jpg
-
-   2 equal files of size 41753
-   /images/pc/activities/phone/selfies/beach/nude/20.jpg
-   /images/pc/activities/phone/selfies/beach/nude/7.jpg
-
-   2 equal files of size 41720
-   /images/locations/city/citycenter/photo/topless/5.jpg
-   /images/locations/city/citycenter/photo/topless5.jpg
-
-   2 equal files of size 41705
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet25.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet25.jpg
-
-   2 equal files of size 41515
-   /images/characters/pavlovsk/school/girl/natasha/sex/seethrough02.jpg
-   /images/characters/pavlovsk/school/girl/natasha/seethrough02.jpg
-
-   2 equal files of size 41513
-   /images/locations/pavlovsk/school/grounds/track/sex/SXFU-M02.mp4
-   /images/pc/activities/track/SXFU-M02.mp4
-
-   2 equal files of size 41032
-   /images/locations/city/citycenter/photo/seethru/3.jpg
-   /images/locations/city/citycenter/photo/seethru3.jpg
-
-   2 equal files of size 41030
-   /images/locations/pavlovsk/school/gym/shower/watchkaty.jpg
-   /images/locations/pavlovsk/school/gym/katypeek.jpg
-
-   2 equal files of size 40935
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sexrough/ass9.jpg
-   /images/pc/body/cum/cumanal/cumanal3.jpg
-
-   2 equal files of size 40905
-   /images/locations/pavlovsk/school/classroom/literature/work2.jpg
-   /images/locations/pavlovsk/school/classroom/work2.jpg
-
-   2 equal files of size 40897
-   /images/locations/pavlovsk/school/grounds/track/FE-017.jpg
-   /images/pc/activities/track/FE-017.jpg
-
-   2 equal files of size 40674
-   /images/locations/city/residential/apartment/stairs/event/floor4_bdsm.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor4_bdsm.jpg
-
-   2 equal files of size 40654
-   /images/locations/pavlovsk/school/grounds/track/MA-004.jpg
-   /images/pc/activities/track/MA-004.jpg
-
-   2 equal files of size 40514
-   /images/locations/shared/sex/sexdvanadva/uvag12.jpg
-   /images/locations/shared/sex/sexdvanadva/vag12.jpg
-
-   2 equal files of size 40297
-   /images/pc/activities/photography/foto/people/6.jpg
-   /images/pc/activities/photography/foto/eugene.jpg
-
-   2 equal files of size 40235
-   /images/locations/city/citycenter/photo/topnude/6.jpg
-   /images/locations/city/citycenter/photo/nude11.jpg
-
-   2 equal files of size 40169
-   /images/locations/city/residential/apartment/stairs/event/floor5_bdsm.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor5_bdsm.jpg
-
-   2 equal files of size 40129
-   /images/locations/pavlovsk/school/grounds/track/NI-002.jpg
-   /images/pc/activities/track/NI-002.jpg
-
-   2 equal files of size 39990
-   /images/locations/pavlovsk/school/gym/locker/iripeek.jpg
-   /images/locations/pavlovsk/school/gym/iripeek.jpg
-
-   2 equal files of size 39972
-   /images/locations/pavlovsk/resident/apartment/shulginhome/kuh/help/jara3.jpg
-   /images/locations/pavlovsk/resident/apartment/shulginhome/kuh/help/vert10.jpg
-
-   2 equal files of size 39920
-   /images/locations/pavlovsk/school/grounds/track/AP-004.jpg
-   /images/pc/activities/track/AP-004.jpg
-
-   2 equal files of size 39790
-   /images/locations/pavlovsk/school/grounds/track/AP-007.jpg
-   /images/pc/activities/track/AP-007.jpg
-
-   2 equal files of size 39788
-   /images/locations/pavlovsk/school/grounds/track/AP-008.jpg
-   /images/pc/activities/track/AP-008.jpg
-
-   2 equal files of size 39601
-   /images/characters/pavlovsk/school/girl/natasha/sex/seethroughkitchen01.jpg
-   /images/characters/pavlovsk/school/girl/natasha/seethroughkitchen01.jpg
-
-   2 equal files of size 39564
-   /images/locations/pavlovsk/school/gym/locker/nushpeek.jpg
-   /images/locations/pavlovsk/school/gym/nushpeek.jpg
-
-   2 equal files of size 39485
-   /images/locations/shared/sex/sexdvanadva/New folder/minet13.jpg
-   /images/locations/shared/sex/sexdvanadva/minet13.jpg
-
-   2 equal files of size 39430
-   /images/locations/city/citycenter/photo/topnude/17.jpg
-   /images/locations/city/citycenter/photo/nude23.jpg
-
-   2 equal files of size 39326
-   /images/locations/city/citycenter/photo/topless/11.jpg
-   /images/locations/city/citycenter/photo/topless11.jpg
-
-   2 equal files of size 39300
-   /images/locations/pavlovsk/hotel/hotel.room.best1.jpg
-   /images/locations/pavlovsk/resident/meynolds/bathroom.jpg
-
-   3 equal files of size 39073
-   /images/pc/body/hairstyles/lng/curly-bangs-buns/hcol1.jpg
-   /images/pc/body/hairstyles/med/curly-bangs-buns/hcol1.jpg
-   /images/pc/body/hairstyles/medlo/curly-bangs-buns/hcol1.jpg
-
-   2 equal files of size 39045
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum3.jpg
-   /images/pc/body/cum/cumtits/cumtits1.jpg
-
-   2 equal files of size 39019
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift2.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift2.jpg
-
-   2 equal files of size 38877
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift6.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift6.jpg
-
-   2 equal files of size 38822
-   /images/locations/pavlovsk/school/grounds/track/NI-001.jpg
-   /images/pc/activities/track/NI-001.jpg
-
-   2 equal files of size 38652
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet1.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet1.jpg
-
-   2 equal files of size 38552
-   /images/locations/city/residential/apartment/home/sex/balcony_anal1.mp4
-   /images/locations/city/residential/apartment/sex/balcony_anal1.mp4
-
-   2 equal files of size 38549
-   /images/characters/pavlovsk/resident/vladimir/father.jpg
-   /images/characters/shared/headshots_main/big28.jpg
-
-   2 equal files of size 38549
-   /images/locations/pavlovsk/school/grounds/track/CHR-01.jpg
-   /images/pc/activities/track/CHR-01.jpg
-
-   2 equal files of size 38502
-   /images/locations/pavlovsk/school/grounds/track/FAM-001.jpg
-   /images/pc/activities/track/FAM-001.jpg
-
-   2 equal files of size 38385
-   /images/locations/city/residential/apartment/home/balcony_underwear3.jpg
-   /images/locations/city/residential/apartment/balcony_underwear3.jpg
-
-   2 equal files of size 38354
-   /images/characters/city/jugo/jugopre.jpg
-   /images/system/1_openings/shared/npc_gustav.jpg
-
-   2 equal files of size 38227
-   /images/locations/pavlovsk/school/grounds/track/FE-015.jpg
-   /images/pc/activities/track/FE-015.jpg
-
-   2 equal files of size 38144
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet5.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet5.jpg
-
-   2 equal files of size 38115
-   /images/locations/pavlovsk/school/gym/locker/belpeek.jpg
-   /images/locations/pavlovsk/school/gym/belpeek.jpg
-
-   2 equal files of size 38111
-   /images/characters/pavlovsk/resident/misha/misha.jpg
-   /images/characters/shared/headshots_main/big54.jpg
-
-   2 equal files of size 38109
-   /images/locations/pavlovsk/school/grounds/track/AP-011.jpg
-   /images/pc/activities/track/AP-011.jpg
-
-   2 equal files of size 37864
-   /images/locations/city/citycenter/photo/topless/22.jpg
-   /images/locations/city/citycenter/photo/topless22.jpg
-
-   2 equal files of size 37762
-   /images/characters/shared/headshots_main/big63.jpg
-   /images/locations/gadukino/village/mitka.jpg
-
-   2 equal files of size 37712
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet21.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet21.jpg
-
-   3 equal files of size 37601
-   /images/locations/city/citycenter/photo/portraits/katherine_a/face.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/talking/face.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/face.jpg
-
-   2 equal files of size 37396
-   /images/locations/pavlovsk/school/gym/locker/albpeek.jpg
-   /images/locations/pavlovsk/school/gym/albpeek.jpg
-
-   2 equal files of size 37324
-   /images/locations/pavlovsk/school/gym/locker/katpeek.jpg
-   /images/locations/pavlovsk/school/gym/katpeek.jpg
-
-   2 equal files of size 37260
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-021.jpg
-   /images/pc/activities/track/MA-021.jpg
-
-   2 equal files of size 37180
-   /images/locations/pavlovsk/school/gym/locker/chrispeek.jpg
-   /images/locations/pavlovsk/school/gym/chrispeek.jpg
-
-   2 equal files of size 36827
-   /images/pc/activities/phone/selfies/beach/nude/21.jpg
-   /images/pc/activities/phone/selfies/beach/nude/6.jpg
-
-   2 equal files of size 36709
-   /images/locations/city/residential/apartment/stairs/event/floor3_ir.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor3_ir.jpg
-
-   2 equal files of size 36454
-   /images/locations/city/citycenter/photo/portraits/katherine_a/1.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/1.jpg
-
-   2 equal files of size 36441
-   /images/locations/pavlovsk/resident/dimkahome/newyear/vomit.jpg
-   /images/locations/pavlovsk/school/events/newyear/vomit.jpg
-
-   2 equal files of size 36333
-   /images/locations/pavlovsk/resident/dimkahome/newyear/idi.jpg
-   /images/locations/pavlovsk/school/events/newyear/idi.jpg
-
-   2 equal files of size 36311
-   /images/locations/pavlovsk/school/events/newyear/ggkiss.jpg
-   /images/locations/pavlovsk/school/events/girlskiss.jpg
-
-   2 equal files of size 36306
-   /images/locations/city/residential/apartment/home/balcony_dressed2.jpg
-   /images/locations/city/residential/apartment/balcony_dressed2.jpg
-
-   2 equal files of size 36199
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum1.jpg
-   /images/pc/body/cum/cumface/blonde/8.jpg
-
-   3 equal files of size 36056
-   /images/pc/body/hairstyles/lng/curly-bangs-buns/hcol0.jpg
-   /images/pc/body/hairstyles/med/curly-bangs-buns/hcol0.jpg
-   /images/pc/body/hairstyles/medlo/curly-bangs-buns/hcol0.jpg
-
-   2 equal files of size 35971
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-006.jpg
-   /images/pc/activities/track/OR-006.jpg
-
-   2 equal files of size 35933
-   /images/locations/city/citycenter/photo/special/art2.jpg
-   /images/locations/city/citycenter/photo/art2.jpg
-
-   2 equal files of size 35871
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet0.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet0.jpg
-
-   2 equal files of size 35655
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall10.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock8.mp4
-
-   2 equal files of size 35610
-   /images/locations/pavlovsk/altschool/ptu_ups.jpg
-   /images/locations/pavlovsk/school/afterschool/ptu_ups.jpg
-
-   2 equal files of size 35515
-   /images/locations/pavlovsk/school/grounds/track/AP-002.jpg
-   /images/pc/activities/track/AP-002.jpg
-
-   2 equal files of size 35419
-   /images/locations/shared/sex/sexdvanadva/anal12.jpg
-   /images/locations/shared/sex/sexdvanadva/uanal12.jpg
-
-   2 equal files of size 35387
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-007.jpg
-   /images/pc/activities/track/OR-007.jpg
-
-   2 equal files of size 35383
-   /images/locations/city/citycenter/photo/bnude/6.jpg
-   /images/locations/city/citycenter/photo/nude40.jpg
-
-   2 equal files of size 35328
-   /images/pc/body/cum/cumface/black/4.jpg
-   /images/shared/sex/cum/facial/facial0,7.jpg
-
-   2 equal files of size 35141
-   /images/locations/city/residential/apartment/stairs/event/sex/floor4_fuck.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor4_fuck.jpg
-
-   2 equal files of size 34875
-   /images/locations/pavlovsk/school/gym/locker/lizpeek.jpg
-   /images/locations/pavlovsk/school/gym/lizpeek.jpg
-
-   2 equal files of size 34847
-   /images/locations/pavlovsk/school/grounds/track/DE-009.jpg
-   /images/pc/activities/track/DE-009.jpg
-
-   2 equal files of size 34755
-   /images/locations/pavlovsk/school/gym/locker/linpeek.jpg
-   /images/locations/pavlovsk/school/gym/linpeek.jpg
-
-   2 equal files of size 34644
-   /images/locations/pavlovsk/school/grounds/track/punishment/PR-010.jpg
-   /images/pc/activities/track/PR-010.jpg
-
-   2 equal files of size 34640
-   /images/locations/pavlovsk/school/gym/locker/verpeek.jpg
-   /images/locations/pavlovsk/school/gym/verpeek.jpg
-
-   2 equal files of size 34516
-   /images/locations/pavlovsk/school/gym/locker/zinpeek.jpg
-   /images/locations/pavlovsk/school/gym/zinpeek.jpg
-
-   2 equal files of size 34448
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet4.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet4.jpg
-
-   2 equal files of size 34334
-   /images/characters/pavlovsk/school/boy/igor/crossdress/kd_2.jpg
-   /images/characters/pavlovsk/school/boy/igor/crossdress/kd_6.jpg
-
-   2 equal files of size 34199
-   /images/characters/city/models/mari/talking/face.jpg
-   /images/characters/city/models/mari/face.jpg
-
-   2 equal files of size 34163
-   /images/locations/city/citycenter/photo/topless/21.jpg
-   /images/locations/city/citycenter/photo/topless21.jpg
-
-   2 equal files of size 34105
-   /images/pc/body/piercings/cli1.jpg
-   /images/pc/body/piercings/g2.jpg
-
-   2 equal files of size 34093
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-005.jpg
-   /images/pc/activities/track/OR-005.jpg
-
-   2 equal files of size 34058
-   /images/locations/pavlovsk/school/grounds/track/MA-001.jpg
-   /images/pc/activities/track/MA-001.jpg
-
-   2 equal files of size 34045
-   /images/locations/pavlovsk/school/gym/locker/natpeek.jpg
-   /images/locations/pavlovsk/school/gym/natpeek.jpg
-
-   2 equal files of size 33996
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum6.jpg
-   /images/pc/body/cum/cumtits/cumtits2.jpg
-
-   2 equal files of size 33989
-   /images/locations/pavlovsk/resident/dimkahome/newyear/sex/fuck.jpg
-   /images/locations/pavlovsk/school/events/newyear/sex/fuck.jpg
-
-   2 equal files of size 33942
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_3.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_3.jpg
-
-   2 equal files of size 33884
-   /images/locations/pavlovsk/school/grounds/track/sex/FE-007.jpg
-   /images/pc/activities/track/FE-007.jpg
-
-   2 equal files of size 33873
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_2.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_2.jpg
-
-   2 equal files of size 33818
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sexrough/ass1.jpg
-   /images/pc/body/cum/cumanal/cumanal2.jpg
-
-   2 equal files of size 33720
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet10.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet10.jpg
-
-   2 equal files of size 33686
-   /images/locations/pavlovsk/school/grounds/track/FE-001.jpg
-   /images/pc/activities/track/FE-001.jpg
-
-   2 equal files of size 33626
-   /images/pc/body/cum/cumface/black/3.jpg
-   /images/shared/sex/cum/facial/facial0,1.jpg
-
-   2 equal files of size 33590
-   /images/locations/pavlovsk/school/gym/locker/julpeek.jpg
-   /images/locations/pavlovsk/school/gym/julpeek.jpg
-
-   2 equal files of size 33559
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift8.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift8.jpg
-
-   2 equal files of size 33436
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-023.jpg
-   /images/pc/activities/track/MA-023.jpg
-
-   2 equal files of size 33423
-   /images/locations/city/citycenter/photo/topless/13.jpg
-   /images/locations/city/citycenter/photo/topless13.jpg
-
-   2 equal files of size 33273
-   /images/characters/pavlovsk/school/girl/anushka/nush_model/nush_talk.jpg
-   /images/locations/pavlovsk/school/gym/nushwatch1.jpg
-
-   2 equal files of size 33214
-   /images/locations/pavlovsk/school/gym/locker/alypeek.jpg
-   /images/locations/pavlovsk/school/gym/alypeek.jpg
-
-   2 equal files of size 33181
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift7.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift7.jpg
-
-   2 equal files of size 33136
-   /images/locations/city/citycenter/photo/portraits/jeff_m/talking/19.jpg
-   /images/locations/city/citycenter/photo/portraits/jeff_m/talking/26.jpg
-
-   2 equal files of size 32992
-   /images/locations/pavlovsk/school/lunch/peremena19.jpg
-   /images/locations/pavlovsk/school/lunch/peremena5.jpg
-
-   2 equal files of size 32920
-   /images/characters/pavlovsk/school/boy/vasya/sex/shuglinhome/tv/cum6.jpg
-   /images/pc/body/cum/cumface/blonde/10.jpg
-
-   2 equal files of size 32908
-   /images/locations/city/residential/apartment/stairs/event/sex/floor5_fuck.jpg
-   /images/locations/city/residential/apartment/stairs/sex/floor5_fuck.jpg
-
-   2 equal files of size 32768
-   /images/locations/city/residential/apartment/home/balcony_underwear1.jpg
-   /images/locations/city/residential/apartment/balcony_underwear1.jpg
-
-   2 equal files of size 32688
-   /images/locations/pavlovsk/resident/rekshome/party/party_girls_party_gost_1_2.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_4_2.jpg
-
-   2 equal files of size 32606
-   /images/characters/pavlovsk/school/girl/natasha/sex/seethrough00.jpg
-   /images/characters/pavlovsk/school/girl/natasha/seethrough00.jpg
-
-   2 equal files of size 32592
-   /images/characters/pavlovsk/school/boy/kolka/brother.jpg
-   /images/characters/shared/headshots_main/big34.jpg
-
-   2 equal files of size 32518
-   /images/locations/pavlovsk/school/grounds/track/FE-004.jpg
-   /images/pc/activities/track/FE-004.jpg
-
-   2 equal files of size 32473
-   /images/locations/pavlovsk/school/grounds/track/punishment/PR-011.jpg
-   /images/pc/activities/track/PR-011.jpg
-
-   2 equal files of size 32361
-   /images/pc/activities/reading/bed_book_nude.jpg
-   /images/shared/accessories/books/book_nude.jpg
-
-   2 equal files of size 32292
-   /images/characters/pavlovsk/school/boy/niko/kikoev2/dinner/6/ride1.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikoev2/diner/6/ride1.jpg
-
-   2 equal files of size 32258
-   /images/locations/pavlovsk/school/gym/locker/vicpeek.jpg
-   /images/locations/pavlovsk/school/gym/vicpeek.jpg
-
-   2 equal files of size 32235
-   /images/locations/city/citycenter/photo/nude/4.jpg
-   /images/locations/city/citycenter/photo/nude31.jpg
-
-   2 equal files of size 32231
-   /images/pc/body/cum/cumface/blonde/4.jpg
-   /images/shared/sex/cum/facial/facial0,0.jpg
-
-   2 equal files of size 32131
-   /images/locations/city/citycenter/photo/nude/5.jpg
-   /images/locations/city/citycenter/photo/nude32.jpg
-
-   2 equal files of size 32079
-   /images/locations/city/citycenter/photo/topnude/3.jpg
-   /images/locations/city/citycenter/photo/nude8.jpg
-
-   2 equal files of size 32012
-   /images/locations/city/residential/apartment/home/balcony_underwear2.jpg
-   /images/locations/city/residential/apartment/balcony_underwear2.jpg
-
-   2 equal files of size 31682
-   /images/characters/pavlovsk/school/girl/vicky/event/case_gift0.jpg
-   /images/characters/pavlovsk/school/girl/vicky/sex/case_gift0.jpg
-
-   2 equal files of size 31483
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum2.jpg
-   /images/pc/body/cum/creampie/cumpussy13.jpg
-
-   2 equal files of size 31326
-   /images/locations/pavlovsk/school/gym/locker/stapeek.jpg
-   /images/locations/pavlovsk/school/gym/stapeek.jpg
-
-   2 equal files of size 31287
-   /images/locations/pavlovsk/school/grounds/track/sex/OR-003.jpg
-   /images/pc/activities/track/OR-003.jpg
-
-   2 equal files of size 31254
-   /images/locations/city/citycenter/photo/lingerie/2.jpg
-   /images/locations/city/citycenter/photo/lingerie2.jpg
-
-   2 equal files of size 31239
-   /images/locations/pavlovsk/altschool/ptu_korr1.jpg
-   /images/locations/pavlovsk/school/afterschool/ptu_korr1.jpg
-
-   2 equal files of size 31226
-   /images/locations/pavlovsk/altschool/ptu_zanato.jpg
-   /images/locations/pavlovsk/school/afterschool/ptu_zanato.jpg
-
-   2 equal files of size 31212
-   /images/locations/city/citycenter/photo/portraits/katherine_a/4.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/4.jpg
-
-   2 equal files of size 31191
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_7.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_12.jpg
-
-   2 equal files of size 31121
-   /images/locations/city/citycenter/photo/topnude/16.jpg
-   /images/locations/city/citycenter/photo/nude28.jpg
-
-   2 equal files of size 31036
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-019.jpg
-   /images/pc/activities/track/MA-019.jpg
-
-   2 equal files of size 30890
-   /images/locations/city/citycenter/photo/topnude/11.jpg
-   /images/locations/city/citycenter/photo/nude16.jpg
-
-   2 equal files of size 30729
-   /images/locations/city/citycenter/photo/topless/16.jpg
-   /images/locations/city/citycenter/photo/topless16.jpg
-
-   2 equal files of size 30627
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet24.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet24.jpg
-
-   2 equal files of size 30232
-   /images/locations/pavlovsk/school/gym/locker/larpeek.jpg
-   /images/locations/pavlovsk/school/gym/larpeek.jpg
-
-   2 equal files of size 30041
-   /images/characters/pavlovsk/school/teacher/arina/dream/dream7.jpg
-   /images/characters/pavlovsk/school/teacher/arina/sex/dream/dream7.jpg
-
-   2 equal files of size 30004
-   /images/locations/pavlovsk/resident/apartment/shulginhome/bigroom/card/sex/cum5.jpg
-   /images/pc/body/cum/cumface/brown/9.jpg
-
-   2 equal files of size 29940
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-017.jpg
-   /images/pc/activities/track/MA-017.jpg
-
-   2 equal files of size 29821
-   /images/characters/pavlovsk/school/boy/vasya/sex/shuglinhome/tv/cum4.jpg
-   /images/pc/body/cum/cumface/blonde/9.jpg
-
-   2 equal files of size 29762
-   /images/locations/city/citycenter/photo/topnude/8.jpg
-   /images/locations/city/citycenter/photo/nude13.jpg
-
-   2 equal files of size 29624
-   /images/locations/pavlovsk/altschool/ptu_urok1.jpg
-   /images/locations/pavlovsk/school/afterschool/ptu_urok1.jpg
-
-   2 equal files of size 29387
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/hall9.mp4
-   /images/characters/pavlovsk/school/boy/niko/nikoev/school/locker/lock6.mp4
-
-   2 equal files of size 29212
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_2_18.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_1.jpg
-
-   2 equal files of size 29080
-   /images/locations/pavlovsk/school/gym/locker/lerpeek.jpg
-   /images/locations/pavlovsk/school/gym/lerpeek.jpg
-
-   2 equal files of size 29050
-   /images/locations/city/citycenter/photo/special/special1.jpg
-   /images/locations/city/citycenter/photo/special1.jpg
-
-   2 equal files of size 28406
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet26.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet26.jpg
-
-   2 equal files of size 28236
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_5.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_5.jpg
-
-   2 equal files of size 28179
-   /images/characters/pavlovsk/resident/roma/roma.jpg
-   /images/characters/shared/headshots_main/big56.jpg
-
-   2 equal files of size 28123
-   /images/pc/items/fashionista/panties/58.jpg
-   /images/pc/items/lusso/panties/36.jpg
-
-   2 equal files of size 28090
-   /images/locations/city/citycenter/photo/topless/3.jpg
-   /images/locations/city/citycenter/photo/topless3.jpg
-
-   2 equal files of size 28060
-   /images/locations/city/citycenter/photo/topless/10.jpg
-   /images/locations/city/citycenter/photo/topless10.jpg
-
-   2 equal files of size 28027
-   /images/locations/pavlovsk/school/grounds/track/MA-007.jpg
-   /images/pc/activities/track/MA-007.jpg
-
-   2 equal files of size 28027
-   /images/locations/pavlovsk/school/gym/locker/sonpeek.jpg
-   /images/locations/pavlovsk/school/gym/sonpeek.jpg
-
-   2 equal files of size 27916
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet28.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet28.jpg
-
-   2 equal files of size 27701
-   /images/locations/city/citycenter/photo/bnude/5.jpg
-   /images/locations/city/citycenter/photo/nude39.jpg
-
-   2 equal files of size 27576
-   /images/locations/pavlovsk/resident/dimkahome/newyear/tusa5.jpg
-   /images/locations/pavlovsk/school/events/newyear/tusa5.jpg
-
-   2 equal files of size 27514
-   /images/locations/city/citycenter/photo/fashion/5.jpg
-   /images/locations/city/citycenter/photo/fashion5.jpg
-
-   2 equal files of size 27356
-   /images/locations/pavlovsk/resident/rekshome/party/party_girls_party_gost_1_3.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_4_8.jpg
-
-   2 equal files of size 27295
-   /images/locations/city/citycenter/photo/topless/1.jpg
-   /images/locations/city/citycenter/photo/topless1.jpg
-
-   2 equal files of size 27229
-   /images/locations/pavlovsk/resident/apartment/garage/father/sex/father.misha1,0.jpg
-   /images/locations/pavlovsk/resident/apartment/garage/father/sex/fathermisha.jpg
-
-   2 equal files of size 27155
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-020.jpg
-   /images/pc/activities/track/MA-020.jpg
-
-   2 equal files of size 27122
-   /images/shared/sex/blowjob/fa6.jpg
-   /images/shared/sex/cum/mouth/cum40.jpg
-
-   2 equal files of size 27084
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet22.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet22.jpg
-
-   2 equal files of size 27055
-   /images/characters/pavlovsk/school/boy/niko/nikomisc/meynold/bathroom/door.jpg
-   /images/characters/pavlovsk/school/boy/niko/nikomisc/meynold/bathroom/locked.jpg
-
-   2 equal files of size 27031
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet23.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet23.jpg
-
-   2 equal files of size 27023
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-015.jpg
-   /images/pc/activities/track/MA-015.jpg
-
-   2 equal files of size 26929
-   /images/locations/city/citycenter/photo/topless/17.jpg
-   /images/locations/city/citycenter/photo/topless17.jpg
-
-   2 equal files of size 26796
-   /images/locations/city/residential/clinic/sex/exam13.jpg
-   /images/locations/city/residential/clinic/exam13.jpg
-
-   2 equal files of size 26662
-   /images/pc/activities/phone/selfies/bathroom/bath/27.jpg
-   /images/pc/activities/phone/selfies/bathroom/nude/1.jpg
-
-   2 equal files of size 26531
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-018.jpg
-   /images/pc/activities/track/MA-018.jpg
-
-   2 equal files of size 26324
-   /images/locations/city/residential/clinic/sex/exam14.jpg
-   /images/locations/city/residential/clinic/exam14.jpg
-
-   2 equal files of size 26278
-   /images/locations/city/citycenter/photo/sexy/1.jpg
-   /images/locations/city/citycenter/photo/ero2.jpg
-
-   2 equal files of size 25750
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_12.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_17.jpg
-
-   2 equal files of size 25451
-   /images/pc/activities/photography/foto/people/2.jpg
-   /images/pc/activities/photography/foto/sister.jpg
-
-   2 equal files of size 24933
-   /images/locations/shared/sex/sexdvanadva/New folder/minet11.jpg
-   /images/locations/shared/sex/sexdvanadva/minet11.jpg
-
-   2 equal files of size 24903
-   /images/locations/pavlovsk/school/grounds/track/FE-013.jpg
-   /images/pc/activities/track/FE-013.jpg
-
-   2 equal files of size 24842
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet6.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet6.jpg
-
-   2 equal files of size 24645
-   /images/locations/pavlovsk/school/grounds/track/sex/MA-022.jpg
-   /images/pc/activities/track/MA-022.jpg
-
-   2 equal files of size 24506
-   /images/locations/shared/sex/sexdvanadva/New folder/minet26.jpg
-   /images/locations/shared/sex/sexdvanadva/minet26.jpg
-
-   2 equal files of size 24496
-   /images/locations/city/citycenter/photo/portraits/katherine_a/6.jpg
-   /images/locations/city/citycenter/photo/portraits/krystal_b/6.jpg
-
-   2 equal files of size 24276
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet3.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet3.jpg
-
-   2 equal files of size 24205
-   /images/locations/pavlovsk/resident/rekshome/party/party_girls_party_gost_1_1.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_4_4.jpg
-
-   2 equal files of size 24144
-   /images/locations/pavlovsk/resident/dimkahome/newyear/drunk.jpg
-   /images/locations/pavlovsk/school/events/newyear/drunk.jpg
-
-   2 equal files of size 23905
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_9.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_14.jpg
-
-   2 equal files of size 23899
-   /images/locations/city/citycenter/photo/nude/3.jpg
-   /images/locations/city/citycenter/photo/nude30.jpg
-
-   2 equal files of size 23782
-   /images/locations/pavlovsk/resident/dimkahome/newyear/vom.jpg
-   /images/locations/pavlovsk/school/events/newyear/vom.jpg
-
-   2 equal files of size 23700
-   /images/locations/city/citycenter/photo/topnude/18.jpg
-   /images/locations/city/citycenter/photo/nude24.jpg
-
-   2 equal files of size 23557
-   /images/locations/city/citycenter/photo/topless/15.jpg
-   /images/locations/city/citycenter/photo/topless15.jpg
-
-   2 equal files of size 23268
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_6.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_18.jpg
-
-   2 equal files of size 22975
-   /images/locations/city/citycenter/photo/topnude/9.jpg
-   /images/locations/city/citycenter/photo/nude14.jpg
-
-   2 equal files of size 22666
-   /images/pc/activities/phone/selfies/beach/nude/19.jpg
-   /images/pc/activities/phone/selfies/beach/titflash/7.jpg
-
-   2 equal files of size 21741
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_11.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_16.jpg
-
-   2 equal files of size 21711
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet27.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet27.jpg
-
-   2 equal files of size 21588
-   /images/locations/city/citycenter/photo/topless/8.jpg
-   /images/locations/city/citycenter/photo/topless8.jpg
-
-   2 equal files of size 21379
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_1.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_1.jpg
-
-   2 equal files of size 21123
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_6.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_6.jpg
-
-   2 equal files of size 21077
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet16.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet16.jpg
-
-   2 equal files of size 20390
-   /images/locations/pavlovsk/school/grounds/track/FE-006.jpg
-   /images/pc/activities/track/FE-006.jpg
-
-   2 equal files of size 20101
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet13.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet13.jpg
-
-   2 equal files of size 19949
-   /images/locations/pavlovsk/resident/apartment/garage/father/sex/father.gar.1,0.jpg
-   /images/locations/pavlovsk/resident/apartment/garage/father/sex/fathergar.jpg
-
-   2 equal files of size 19653
-   /images/locations/pavlovsk/school/grounds/track/AP-006.jpg
-   /images/pc/activities/track/AP-006.jpg
-
-   2 equal files of size 19219
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet17.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet17.jpg
-
-   2 equal files of size 18921
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet8.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet8.jpg
-
-   2 equal files of size 18886
-   /images/characters/pavlovsk/school/teacher/rolan/school/rolanmeet19.jpg
-   /images/locations/pavlovsk/resident/apartment/aptrolan/rolanmeet/rolanmeet19.jpg
-
-   2 equal files of size 18296
-   /images/locations/city/citycenter/photo/topless/6.jpg
-   /images/locations/city/citycenter/photo/topless6.jpg
-
-   2 equal files of size 18273
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_home_fun_2_8_10.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/reksparty_party_toilet_5_15.jpg
-
-   2 equal files of size 18168
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_14_4.jpg
-   /images/locations/pavlovsk/resident/rekshome/party/party_rex_party_gost_7_4.jpg
-
-   2 equal files of size 18130
-   /images/locations/pavlovsk/police/pavrec.jpg
-   /images/locations/shared/police/pavrec.jpg
-
-   3 equal files of size 17989
-   /images/locations/city/citycenter/photo/fashion/1.jpg
-   /images/locations/city/citycenter/photo/fashion.jpg
-   /images/locations/city/citycenter/photo/fashion1.jpg
-
-   2 equal files of size 17864
-   /images/characters/city/jora/sex/klof10.jpg
-   /images/shared/sex/cum/vagcreampie/klof10.jpg
-
-   2 equal files of size 16723
-   /images/characters/city/jora/sex/bas13.jpg
-   /images/characters/city/jora/sex/vas13.jpg
-
-   2 equal files of size 15484
-   /images/locations/city/industrial/casino/stavkabd.jpg
-   /images/locations/city/industrial/casino/stavkacw.jpg
-
-   2 equal files of size 14140
-   /images/characters/city/jora/sex/bas 27.jpg
-   /images/characters/city/jora/sex/bas27.jpg
-
-   2 equal files of size 13771
-   /images/shared/drinks/tea.jpg
-   /images/shared/food/tea.jpg
-
-   2 equal files of size 12678
-   /images/characters/city/jora/sex/klof11.jpg
-   /images/characters/city/jora/sex/klof7.jpg
-
-   2 equal files of size 9170
-   /images/system/phone/theme/Custom_Voidwalker Red/icon_sms_new.gif
-   /images/system/phone/theme/Custom_Voidwalker Toxic/icon_sms_new.gif
-
-   2 equal files of size 6556
-   /images/locations/pavlovsk/school/grounds/track/sex/CHR-03.jpg
-   /images/pc/activities/track/CHR-03.jpg
-
-   2 equal files of size 6408
-   /images/locations/city/residential/lake/allure/shop_name.png
-   /images/locations/pavlovsk/commercial/allure/shop_name.png
-
-   2 equal files of size 4650
-   /images/system/icons/status/bimbo.png
-   /images/system/icons/bimbo.png
-
-   2 equal files of size 2348
-   /images/system/icons/status/boobs.png
-   /images/system/icons/status/boobs_black.png
-
-   2 equal files of size 1743
-   /images/system/icons/status/commando.png
-   /images/system/icons/status/commando_black.png
- 

+ 45 - 35
glife.qproj

@@ -8,15 +8,17 @@
 	<Location name="begin"/>
 	<Location name="onobjsel"/>
 	<Location name="obj_din"/>
-	<Location name="journal"/>
-	<Location name="journal_work"/>
-	<Location name="journal_school"/>
-	<Location name="journal_uni"/>
-	<Location name="journal_quests"/>
-	<Location name="journal_portfolio"/>
-	<Location name="journal_NPC_information"/>
-	<Location name="Cheatmenu_din"/>
 	<Location name="themes"/>
+	<Folder name="Journal">
+		<Location name="journal"/>
+		<Location name="journal_work"/>
+		<Location name="journal_school"/>
+		<Location name="journal_uni"/>
+		<Location name="journal_quests"/>
+		<Location name="journal_portfolio"/>
+		<Location name="journal_NPC_information"/>
+		<Location name="Cheatmenu_din"/>
+	</Folder>
 	<Folder name="System">
 		<Location name="counter"/>
 		<Location name="loadg"/>
@@ -142,7 +144,7 @@
 		<Location name="$attributes_flamingos_dress"/>
 		<Location name="$attributes_coco_outfits"/>
 		<Location name="$attributes_coco_dress"/>
-		<Location name="$attributes_fashionista"/>
+		<Location name="$attributes_fashionista_dress"/>
 		<Location name="$attributes_fashionista_outfits"/>
 		<Location name="$attributes_moncheri_gown"/>
 		<Location name="$attributes_moncheri_dress"/>
@@ -286,6 +288,7 @@
 		<Location name="intro_sg_select"/>
 		<Location name="intro_sg_select_custom"/>
 		<Location name="intro_city_select"/>
+		<Location name="intro_functions"/>
 	</Folder>
 	<Folder name="NPCManage">
 		<Location name="npccleanc"/>
@@ -348,10 +351,6 @@
 		<Location name="bank"/>
 		<Location name="kiosk"/>
 		<Location name="taxi"/>
-		<Location name="train"/>
-		<Location name="train_incidental"/>
-		<Location name="metro"/>
-		<Location name="metro_events"/>
 		<Location name="events"/>
 		<Location name="flash"/>
 		<Location name="street_event"/>
@@ -362,6 +361,18 @@
 		<Location name="gloryhole"/>
 		<Location name="home_activity"/>
 	</Folder>
+	<Folder name="Transportation">
+		<Location name="transport_functions"/>
+		<Location name="train"/>
+		<Location name="train_events"/>
+		<Location name="train_incidental"/>
+		<Location name="metro"/>
+		<Location name="metro_events"/>
+		<Location name="bus"/>
+		<Location name="bus_events"/>
+		<Location name="bus_incidental"/>
+		<Location name="bicycle"/>
+	</Folder>
 	<Folder name="Post office">
 		<Location name="post_office"/>
 		<Location name="post_master"/>
@@ -426,26 +437,6 @@
 		<Location name="WorkHosp"/>
 		<Location name="worksalon"/>
 	</Folder>
-	<Folder name="Nicholas">
-		<Location name="nichApartment"/>
-		<Location name="nichBathGuest"/>
-		<Location name="nichBathMaster"/>
-		<Location name="nichBathServant"/>
-		<Location name="nichBedroomMaster"/>
-		<Location name="nichBedroomServant"/>
-		<Location name="nichBedroomTanja"/>
-		<Location name="nichChore"/>
-		<Location name="nichClub"/>
-		<Location name="nichCook"/>
-		<Location name="nichGala"/>
-		<Location name="nichKitchen"/>
-		<Location name="nichLivingroom"/>
-		<Location name="nichNicholas"/>
-		<Location name="nichStudy"/>
-		<Location name="nichTanya"/>
-		<Location name="nichTaras"/>
-		<Location name="nichUtil"/>
-	</Folder>
 	<Folder name="Home- City Residental Apartment">
 		<Location name="bedr"/>
 		<Location name="sitr"/>
@@ -519,6 +510,26 @@
 		<Location name="rex_party_smallEvents"/>
 		<Location name="rex_party_sexEvents"/>
 	</Folder>
+	<Folder name="Nicholas">
+		<Location name="nichApartment"/>
+		<Location name="nichBathGuest"/>
+		<Location name="nichBathMaster"/>
+		<Location name="nichBathServant"/>
+		<Location name="nichBedroomMaster"/>
+		<Location name="nichBedroomServant"/>
+		<Location name="nichBedroomTanja"/>
+		<Location name="nichChore"/>
+		<Location name="nichClub"/>
+		<Location name="nichCook"/>
+		<Location name="nichGala"/>
+		<Location name="nichKitchen"/>
+		<Location name="nichLivingroom"/>
+		<Location name="nichNicholas"/>
+		<Location name="nichStudy"/>
+		<Location name="nichTanya"/>
+		<Location name="nichTaras"/>
+		<Location name="nichUtil"/>
+	</Folder>
 	<Folder name="Dima Nosov">
 		<Location name="dimaEv"/>
 		<Location name="dimaHome"/>
@@ -1127,7 +1138,6 @@
 		<Location name="gadriver"/>
 		<Location name="meadow"/>
 		<Location name="gadprostitutes"/>
-		<Location name="bicycle"/>
 		<Location name="gadfield"/>
 		<Location name="gadgarden"/>
 		<Location name="gadmarket"/>
@@ -1369,8 +1379,8 @@
 		<Location name="core_library"/>
 		<Location name="ballet_npc"/>
 		<Location name="npc_3501_init"/>
-		<Location name="maya_residence"/>
 		<Location name="npc_3510_init"/>
+		<Location name="maya_residence"/>
 		<Location name="pushkin_ballet_center"/>
 		<Location name="pushkin_ballet_res"/>
 		<Location name="pushkin_ballet_class"/>

+ 2 - 2
locations/Cheatmenu_din.qsrc

@@ -2343,7 +2343,7 @@ $cheatmenu['theme_customize'] = {
 	*pl '<a href="exec: custom_theme[''bcolor''] = dyneval($cheatmenu[''theme_customize_input''], ''hex'', custom_theme[''bcolor'']) & dynamic $cheatmenu[''theme_customize'']"><img src="images/system/ui/pencil<<$icon_selector>>.png" height="<<icon_height>>"></img></a>'
 
 	*p 'R:&nbsp;' + dyneval($cheatmenu['theme_customize_print_color_line'], 'red', 'custom_theme[''bcolor'']') + '&nbsp;|&nbsp;'
-	*p 'G:&nbsp;' + $dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''bcolor'']') + '&nbsp;|&nbsp;'
+	*p 'G:&nbsp;' + dyneval($cheatmenu['theme_customize_print_color_line'], 'green', 'custom_theme[''bcolor'']') + '&nbsp;|&nbsp;'
 	*pl 'B:&nbsp;' + dyneval($cheatmenu['theme_customize_print_color_line'], 'blue', 'custom_theme[''bcolor'']')
 
 !!  --- FCOLOR ---
@@ -3606,7 +3606,7 @@ $cheatmenu['about'] = {
 	gs 'addbuilddate'
 	'<center><h1>About Window</h1></center>'
 	'<center><table cellspacing="0" cellpadding="20" valign="top">'
-	'<tr><td><h3><center>Girl Life version <<version_major>>.<<version_minor>>.<<version_revision>>.<<version_patch>></center></h3></td></tr>'
+	'<tr><td><h3><center>Girl Life version <<version_major+"."+version_minor+"."+version_revision+"."+version_patch+iif($git_hash ! "", "<br>"+$git_hash+" (dev build)", "")>></center></h3></td></tr>'
 	'<tr><td><h3><center>built on <<$builddate>></center></h3></td></tr>'
 	'<tr><td><h5><center>if loaded so it was the save from</center></h5></td></tr>'
 	'<tr><td cellspacing="0" cellpadding="20" valign="top"><center><<$version>></center></td></tr>'

+ 313 - 13
locations/Cum_Manage.qsrc

@@ -106,15 +106,19 @@ if $ARGS[0] = '':
 	stat['cum_count'] += 1
 	condom_break = 0
 
+!!{ no STDs from NPC you know }
+	if (mid($boy,1,1) = 'A' or mid($boy,1,1) = 'B') and isnum(mid($boy,2,1)) ! 0: cumnostd = 1
+	cumnostd = min(1, max(cumnostd, sexpartkno))
+
 !!{	Here we define our important variables.}
 	dick = npc_dick[$boy]
 	if sexvolume <= 0: sexvolume = 40
 	if sexspecpot = 0: sexspecpot = npc_spermpot[$boy]
 	if sexspecpot = 0: sexspecpot = sexvolume * rand(250, 300)
 	if sexspecpot < 0: sexspecpot = 0
-	if vibratorIN = 1 and spafinloc = 0 and replace_vib = 0: vibratorIN = 0
-
-	if analplugIN = 1 and spafinloc = 3 and replace_analplug = 0: analplugIN = 0
+	if vibratorIN = 1 and spafinloc = 0: vibratorIN = 0
+	if isprok = 1 and spafinloc = 0: isprok = 0
+	if analplugIN = 1 and spafinloc = 3: analplugIN = 0
 
 !!{	Set the cum array temp to the current size of the cum array to add a new entry to the end of file. Then checks to see if you are on the pill. If you are and there is no contraception used, it flags this as a "done with pill" act, which means a pregnancy will be a pill failure.}
 
@@ -525,7 +529,7 @@ if $ARGS[0] = 'cumeater_icon':
 	*nl
 	j = 0
 	:cumeater_icon_jump
-	if cumloc[j] > 0 and j ! 12: gs 'cum_manage', 'cumeater', j
+	if cumloc[j] > 0 and j <> 12 and ((j <> 0 and j <> 3) or FUNC('Cum_Manage', 'check_innards', j) = 1 or cheatKlisma = 0): gs 'cum_manage', 'cumeater', j
 	if j < 17: j += 1 & jump 'cumeater_icon_jump'
 end
 
@@ -535,6 +539,7 @@ if $ARGS[0] = 'cumeater':
 
 	if i ! -1 and i < arrsize('sparrloc'):
 		cumloc[12] = 1
+		spafinloc = 12 & sexvolume = sparrvol[i] & sexunaware = 0 & sexspecpot = -1 & cumarrnam = sparrnam[i] & cumarrcpt = sparrppt[i] & cumarrkno = sparridt[i] & cumarrage = sparrage[i] & cumnostd = 1 & gs 'Cum_Manage'
 		pcs_breath = 0
 		$part = ''
 
@@ -582,7 +587,11 @@ if $ARGS[0] = 'cumeater':
 				'You collect the sperm from your <<$part>> with your fingers and lick them, enjoying the tart taste.'
 			end
 
-			gs 'cum_cleanup', 'cleanloc', cloc
+			if FUNC('Cum_Manage', 'check_innards', cloc) = 1 and cheatKlisma = 1:
+				cumspclnt = 15 & gs 'cum_cleanup'
+			elseif (cloc <> 0 and cloc <> 3) or cheatKlisma = 0:
+				gs 'cum_cleanup', 'cleanloc', cloc
+			end
 		end
 
 		minut += 2
@@ -677,6 +686,9 @@ if $ARGS[0] = 'cum_stat_display':
 	$stat_cum_text = ''
 	stat_visible_cum = 0
 	stat_cumloc_check = 0
+	cumsumbod = 0
+	cumsumvag = 0
+	cumsumass = 0
 
 	i = 0
 	:cumlocloop
@@ -687,7 +699,7 @@ if $ARGS[0] = 'cum_stat_display':
 			$txtloc_adj = 'all over '
 			$icon_txtloc = 'your labia'
 			$txtloc = 'your <a href="exec:view''images/pc/body/cum/cumpussy/cumpus'+rand(1,4)+'.jpg''">labia</a>'
-		elseif i = 2:
+		elseif i = 2 and PCloPanties > 0:
 			$txtloc_adj = 'across '
 			$txtloc = 'the front of your panties'
 			$icon_txtloc = $txtloc
@@ -699,15 +711,15 @@ if $ARGS[0] = 'cum_stat_display':
 			$txtloc_adj = 'all over '
 			$icon_txtloc = 'your butt'
 			$txtloc = 'your <a href="exec:view''images/pc/body/cum/cumass/cumass'+rand(1,6)+'.jpg''">butt</a>'
-		elseif i = 5:
+		elseif i = 5 and PCloPanties > 0:
 			$txtloc_adj = 'painting '
 			$txtloc = 'the back of your panties'
 			$icon_txtloc = $txtloc
-		elseif i = 6:
+		elseif i = 6 and PCloPants > 0:
 			$txtloc_adj = 'on '
 			$icon_txtloc = 'your clothes near your groin'
 			$txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/'+rand(1,3)+'.jpg''">clothes near your groin</a>'
-		elseif i = 7:
+		elseif i = 7 and $clothingworntype <> 'nude':
 			$txtloc_adj = 'on '
 			$icon_txtloc = 'your clothes'
 			$txtloc = 'your <a href="exec:view''images/pc/body/cum/cumclothes/cumclothes'+rand(1,21)+'.jpg''">clothes</a>'
@@ -793,11 +805,14 @@ if $ARGS[0] = 'cum_stat_display':
 
 				!! if sperm age stage is 4, it means inside the body
 				if j = 4:
-					if (vibratorIN = 1 and i = 0) or (analplugin = 1 and i = 3):
+					cumsumbod += cumvolume['<<i>>:<<j>>']
+					cumsumvag += iif(i=0,cumvolume['<<i>>:<<j>>'],0)
+					cumsumass += iif(i=3,cumvolume['<<i>>:<<j>>'],0)
+					if ((vibratorIN = 1 or isprok = 1) and i = 0) or (analplugin = 1 and i = 3):
 						$txtproxy = 'being plugged in '
-					elseif i = 0 and cumvolume['<<i>>:<<j>>'] < pcs_vag*5:
+					elseif i = 0 and cumvolume['<<i>>:<<j>>'] < FUNC('Cum_Manage', 'check_innards', 0, 1):
 						$txtproxy = 'staying inside '
-					elseif i = 3 and pcs_ass <= 25:
+					elseif i = 3 and cumvolume['<<i>>:<<j>>'] < FUNC('Cum_Manage', 'check_innards', 3, 1):
 						$txtproxy = 'staying inside '
 					else
 						if cumvolume['<<i>>:<<j>>'] > 250:
@@ -821,6 +836,7 @@ if $ARGS[0] = 'cum_stat_display':
 					end
 					if cumcondslip_deep > (vagina / 2): $txtproxy += 'deep '
 				elseif j < 4 and j > 0:
+					cumsumbod += cumvolume['<<i>>:<<j>>']
 					!!amount setting
 					if cumvolume['<<i>>:<<j>>'] > 160:
 						!! 10 ml, about two load, flowing
@@ -912,7 +928,10 @@ if $ARGS[0] = 'cum_stat_display':
 					end
 				end
 				$icon_txtiscum = $txtiscum
-				if j <= 4 and pcs_traits['cumeater'] = 1 and $txtiscum = 'cum': $txtiscum = '<a href="exec:gs ''cum_manage'', ''cumeater'', <<i>>"><font color=#0064FF>' + $txtiscum + '</font></a>'
+				if j <= 4 and pcs_traits['cumeater'] = 1 and $txtiscum = 'cum' _ 
+				and FUNC('Cum_Manage', 'check_private', i) = 1 and ((i <> 0 and i <> 3) or FUNC('Cum_Manage', 'check_innards', i) = 1 or cheatKlisma = 0):
+					$txtiscum = '<a href="exec:gs ''cum_manage'', ''cumeater'', <<i>>"><font color=#0064FF>' + $txtiscum + '</font></a>'
+				end
 				if $txtperson ! '':
 					$txtperson = ' from ' + $txtperson
 				end
@@ -935,6 +954,14 @@ if $ARGS[0] = 'cum_stat_display':
 				end
 			end
 		if j < 7: j+=1 & jump 'ageloop'
+
+		if stat_cumloc_check = 1 and cheatKlisma = 1 and (FUNC('Cum_Manage', 'check_private', i) = 0 _ 
+		or (i <> 0 and cumsumass = 0 and cumsumvag > 0 and FUNC('Cum_Manage', 'check_innards', 0) = 0) _ 
+		or (i <> 3 and cumsumvag = 0 and cumsumass > 0 and FUNC('Cum_Manage', 'check_innards', 3) = 0) _ 
+		or (i > 3 and cumsumvag > 0 and FUNC('Cum_Manage', 'check_innards', 0) = 0 and cumsumass > 0 and FUNC('Cum_Manage', 'check_innards', 3) = 0)):
+			stat_cumloc_check = 0
+		end
+
 	if i < 18: i+=1 & jump 'cumlocloop'
 	killvar 'i'
 	killvar 'j'
@@ -1024,5 +1051,278 @@ if $ARGS[0] = 'cum_stat_display':
 	cum_vol['condom_in_pussy'] = cumvol[17]
 end
 
+if $ARGS[0] = 'check_private':
+!! Checks whether the current location is private for cleaning cum in intimate places
+!! ARGS[1] - cum location (see cum_cleanup)
+!! no ARGS[1] means 0, means vagina, means you must be in a private location to interact
+!! FUNC('Cum_Manage', 'check_private') = 1
+!! FUNC('Cum_Manage', 'check_private', 7) = 1
+
+	RESULT = 0
+
+	if $location_type = 'private' or $location_type = 'private_indoors' or $location_type = 'private_shared' or $location_type = 'bathroom': RESULT = 1
+	if ARGS[1] > 5 and ARGS[1] <> 15 and ARGS[1] <> 17: RESULT = 1
+
+end
+
+if $ARGS[0] = 'check_innards':
+!! Cum overflow check inside vagina or anus
+!! ARGS[1] - 0 (vagina) or 3 (anus)
+!! ARGS[2] - return max capacity
+!! capvag - vagina max capacity
+!! capanus - anus max capacity
+!! FUNC('Cum_Manage', 'check_innards') = 1
+!! FUNC('Cum_Manage', 'check_innards', 3) = 1
+!! FUNC('Cum_Manage', 'check_innards', 0, 1) <= cumsumvag
+
+	capvag  = pcs_vag*3 - vgape*30 - min(100,pcs_horny)/10
+	capanus = pcs_ass*6 - agape*40
+	RESULT = 0
+
+	if ARGS[1] = 0:
+		if ARGS[2] > 0:
+			RESULT = capvag
+		elseif cumsumvag >= capvag and isprok = 0 and vibratorIN = 0:
+			RESULT = 1
+		end
+	elseif ARGS[1] = 3:
+		if ARGS[2] > 0:
+			RESULT = capanus
+		elseif cumsumass >= capanus and analplugin = 0:
+			RESULT = 1
+		end
+	end
+
+	killvar 'capvag'
+	killvar 'capanus'
+end
+
+if $ARGS[0] = 'cum_decay':
+!! ARGS[1] forced cum leak (sex intercourse) in values like 20-100
+
+	cumforced = ARGS[1]
+	if (menu_off = 1 or cumdectime+15 > totminut) and cumforced = 0: exit
+
+	if arrsize('sparrvol') > 0:
+		cumsumvag = 0
+		cumsumass = 0
+        killvar 'cumloc'
+        killvar 'cumvol'
+		i = 0
+
+		!!go through every location
+		:sparrvolloop
+			!!start from the freshest load
+			idx = arrsize('sparrloc')-1
+			:sparrlocloop
+				!!if the currently examined load loaction is the location of the current cycle, execute
+				if sparrloc[idx] = i and sparrvol[idx] > 0:
+					!! 0 = 'In your Vagina'
+					if i = 0:
+						!! passive absorption, succubus has its own
+						!! InSleep - increase the amount during sleep, isprok - tampon absorption
+						if succubusflag = 0:
+							cumamount = (totminut-cumdectime)/15 * max(rand(0,1), rand(sparrvol[idx]/60, sparrvol[idx]/30) + rand(0, InSleep*rand(1,3)) + isprok*rand(5,10) + rand(0, iif(pcs_hydra<30,(30-pcs_hydra)/10,0)) + rand(0, iif(pcs_horny<100,(100-pcs_horny)/20,0)))
+							sparrvol[idx] -= cumamount
+						end
+
+						if sparrvol[idx] > 0:
+							cumsumvag += sparrvol[idx]
+							!! seeping out
+							if FUNC('Cum_Manage', 'check_innards', 0) = 1 or cumforced/rand(2,3) > sparrvol[idx]:
+								cumamount = min(sparrvol[idx]*3/2, (totminut-cumdectime)/15 * max(rand(1,3), rand(sparrvol[idx]/pcs_vag, vgape*40) - InSleep*rand(2,5) + iif(pcs_horny>50, min(100,pcs_horny)/10 - 4,0)) + cumforced/rand(5,10))
+								sparrvol[idx] -= cumamount & cumsumvag -= cumamount
+								cumvol[0] -= cumamount
+
+								!! 1 = 'On your labia'
+								sexvolume = max(cumamount/10, cumamount/2 - iif(cumforced=0,isprokp*rand(10,20),0))
+								if sexvolume > 0:
+									spafinloc = 1
+									sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
+									sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+									gs 'Cum_Manage'
+									cumvol[1] += sexvolume & cumloc[1] = 1
+								end
+								if cumforced = 0:
+									!! 2 = 'On your panties over your vagina'
+									if $pantyworntype <> 'none' or PCloPanties > 0:
+										!! isprokp - sanitary pad absorption
+										if isprokp <> 1:
+											spafinloc = 2
+											sexvolume = max(1, cumamount/2)
+											sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[2] += sexvolume & cumloc[2] = 1
+										end
+									!! 9 = 'On your legs'
+									elseif ($clothingworntype = 'nude' or PCloSkirt > 0 or PCloDress > 0) and rand(1,10) > 6 + InSleep*2:
+										sexvolume = max(0, cumamount/4)
+										if sexvolume > 0:
+											spafinloc = 9
+											sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[9] += sexvolume & cumloc[9] = 1
+										end
+									end
+									!! 6 = 'On your clothes in your groin area'
+									if PCloPants > 0:
+										sexvolume = max(0, cumamount / (3 + iif($pantyworntype<>'none',12,0)))
+										if sexvolume > 0:
+											spafinloc = 6
+											sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = 0 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[6] += sexvolume & cumloc[6] = 1
+										end
+									end
+								end
+							end
+						end
+						if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
+					!! 3 = 'In your anus'
+					elseif i = 3:
+						!! passive absorption, succubus has its own
+						if succubusflag = 0:
+							cumamount = (totminut-cumdectime)/15 * max(rand(0,2), rand(sparrvol[idx]/40, sparrvol[idx]/20) + rand(0, InSleep*rand(3,6)) + rand(0, iif(pcs_hydra<50,(50-pcs_hydra)/10,0)))
+							sparrvol[idx] -= cumamount
+						end
+
+						if sparrvol[idx] > 0:
+							cumsumass += sparrvol[idx]
+							!! seeping out
+							if FUNC('Cum_Manage', 'check_innards', 3) = 1 or cumforced/rand(2,4) > sparrvol[idx]:
+								cumamount = min(sparrvol[idx]*3/2, (totminut-cumdectime)/15 * max(rand(0,1), rand(sparrvol[idx]/(pcs_ass*3/2), agape*20) - InSleep*rand(4,8)) + cumforced/rand(7,15))
+								sparrvol[idx] -= cumamount & cumsumass -= cumamount
+								cumvol[3] -= cumamount
+
+								!! 1 = 'On your labia'
+								sexvolume = max(cumamount/10, cumamount/4 - iif(cumforced=0,isprokp*rand(10,20),0))
+								if sexvolume > 0:
+									spafinloc = 1
+									sexunaware = iif(cumforced=0,iif(rand(0,4)=1 or sparridt[idx]=-2,1,0),0)
+									sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/2 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+									gs 'Cum_Manage'
+									cumvol[1] += sexvolume & cumloc[1] = 1
+								end
+								if cumforced > 0:
+									!! 4 = 'On your butt'
+									sexvolume = max(cumamount/15, cumamount/3)
+									if sexvolume > 0:
+										spafinloc = 4
+										sexvolume = max(0, cumamount/2)
+										sexunaware = 0
+										sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+										gs 'Cum_Manage'
+										cumvol[4] += sexvolume & cumloc[4] = 1
+									end
+								else
+									!! 5 = 'On your panties over your butt'
+									if $pantyworntype <> 'none' or PCloPanties > 0:
+										!! isprokp - sanitary pad absorption
+										if isprokp <> 1:
+											spafinloc = 5
+											sexvolume = max(1, cumamount/3)
+											sexunaware = iif(rand(0,3)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[5] += sexvolume & cumloc[5] = 1
+										end
+									!! 9 = 'On your legs'
+									elseif ($clothingworntype = 'nude' or PCloSkirt > 0 or PCloDress > 0) and rand(1,10) > 4 + InSleep*3:
+										sexvolume = max(0, cumamount/5)
+										if sexvolume > 0:
+											spafinloc = 9
+											sexunaware = iif(rand(0,2)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/4 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[9] += sexvolume & cumloc[9] = 1
+										end
+									end
+									!! 6 = 'On your clothes in your groin area'
+									if PCloPants > 0:
+										sexvolume = max(0, cumamount / (4 + iif($pantyworntype<>'none',16,0)))
+										if sexvolume > 0:
+											spafinloc = 6
+											sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
+											sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+											gs 'Cum_Manage'
+											cumvol[6] += sexvolume & cumloc[6] = 1
+										end
+									end
+								end
+							end
+						end
+						if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
+					!! 1 = 'On your labia'  4 = 'On your butt'
+					elseif (i = 1 and sparrvol[idx]*((totminut-cumdectime)/15) > rand(2,5)) _ 
+						or (i = 4 and sparrvol[idx]*((totminut-cumdectime)/15) > rand(4,8)):
+						if $pantyworntype <> 'none' or PCloPanties > 0:
+							!! 2 = 'On your panties over your vagina'  5 = 'On your panties over your butt'
+							sexvolume = rand(sparrvol[idx]/2, sparrvol[idx]) - iif(i=1,isprokp*rand(15,30),0)
+							if sexvolume > 0:
+								sparrvol[idx] -= sexvolume
+								spafinloc = iif(i=1,2,5)
+								sexunaware = 1
+								sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
+								gs 'Cum_Manage'
+								cumvol[iif(i=1,2,5)] += sexvolume & cumloc[iif(i=1,2,5)] = 1
+							end
+						!! 6 = 'On your clothes in your groin area'
+						elseif PCloPants > 0:
+							sexvolume = rand(sparrvol[idx]/2, sparrvol[idx])
+							if sexvolume > 0:
+								spafinloc = 6
+								sexunaware = iif(rand(0,4)=1 or sparridt[idx]=-2,1,0)
+								sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx]/3 & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 1
+								gs 'Cum_Manage'
+								cumvol[6] += sexvolume & cumloc[6] = 1
+							end
+						end
+						if sparrvol[idx] <= 0: gs 'cum_cleanup', 'cleandeposit', idx
+					!! 17 = 'In a condom in your vagina'
+					elseif i = 17 and sparrvol[idx] > rand(10,15):
+						!! 0 = 'In your Vagina'
+						sexvolume = min(sparrvol[idx]/3, (totminut-cumdectime)/15 * max(0, cumamount/5 - isprokp*rand(2,5)) + cumforced/rand(5,10))
+						if sexvolume > 0:
+							!! condom in vagina is summed in cumsumvag and Cum_Manage call will added more, so subtract here
+							cumsumvag -= sexvolume
+							sparrvol[idx] -= sexvolume
+							spafinloc = 0
+							sexunaware = 1
+							sexspecpot = -1 & cumarrnam = sparrnam[idx] & cumarrcpt = sparrppt[idx] & cumarrkno = sparridt[idx] & cumarrage = sparrage[idx] & cumnostd = 0
+							gs 'Cum_Manage'
+							cumvol[17] -= sexvolume & cumvol[0] += sexvolume & cumloc[0] = 1
+						end
+					!! 12 = 'Inside your mouth'
+					elseif i <> 12 and sparrvol[idx] > rand(0,3):
+						!! dry out
+						!! 1: in this hour
+						!! 2: in four hours
+						!! 3: at least five hours ago
+						if rand(min(-1+InSleep, sparrvol[idx]/-5), sparrage[idx] + (totminut-cumdectime)/30) >= 1:
+							!! 5 and 7 = not clothes
+							if i <> 6 and i <> 7: pcs_sweat += rand(0, max(1,sparrvol[idx]/10))
+							gs 'cum_cleanup', 'cleandeposit', idx
+						end
+					end
+					if sparrvol[idx] > 0: cumloc[i] = 1 & cumvol[inx] += sparrvol[idx] else cumloc[i] = 0 & cumvol[inx] = 0
+				end
+				!! reset just in case
+				sexvolume = 0 & cumnostd = 0 & cumarrkno = 0
+			if idx > 0:idx -= 1 & jump 'sparrlocloop'
+		if i < 18:i += 1 & jump 'sparrvolloop'
+		killvar 'i'
+		killvar 'idx'
+		killvar 'cumamount'
+		if cumsumvag <= 0: cumsumvag = 0 & cum_vol['vagina'] = 0 & cumvol[0] = 0 & cum_loc['vagina'] = 0 & cumloc[0] = 0
+		if cumsumass <= 0: cumsumass = 0 & cum_vol['anus'] = 0   & cumvol[3] = 0 & cum_loc['anus'] = 0   & cumloc[3] = 0
+		if cumsumbod < 0: cumsumbod = 0
+	end
+	killvar 'cumforced'
+	cumdectime = totminut
+end
+
 --- Cum_Manage ---------------------------------
 

+ 7 - 1
locations/LariskaHome.qsrc

@@ -490,7 +490,13 @@ if $ARGS[0] = 'lariska_bedroom':
 	if locat['Lariska'] = 17:'<a href="exec:gt ''LariskaHome'', ''lariska_cleaning_1''">Lariska</a> is here cleaning.'
 	if locat['Lariska'] = 22:'Lariska is here, doing various things.'
 	if locat['Lariska'] = 9:gt 'LariskaHome', 'community_center_invite'
-	act 'Return to the hallway':gt 'LariskaHome', 'hallway'
+	act 'Return to the hallway':
+		if $clothingworntype ! 'nude':
+			gt 'LariskaHome', 'hallway'
+		else
+			msg'<b><font color = red>You need to get dressed first.</font></b>'
+		end
+	end
 	if locat['Lariska'] = 2 or locat['Lariska'] = 8 or locat['Lariska'] = 22 or locat['Lariska'] = 15 or locat['Lariska'] = 17:
 		act 'Chat with Lariska': gt 'LariskaHome', 'chat'
 	end

+ 2 - 8
locations/LariskaSex.qsrc

@@ -32,10 +32,7 @@ if $ARGS[0] = 'undressed2':
 		act 'Lariska wears the Strap-on': gt 'LariskaSex', 'bj_1'
 	end
 	act 'Get dressed': 
-		if analplugout = 1:
-			analplugout = 0
-			analplugin = 1
-		end
+		if analplugout = 1: gs 'dinsex', 'after_anal'
 		if vibratorOUT = 1:
 			vibratorIN = 1
 			vibratorOUT = 0
@@ -709,10 +706,7 @@ if $ARGS[0] = 'boyfriend_sex':
 							gs 'arousal', 'bj', 5,'lesbian', 'group'
 							gs 'stat'
 							act 'Clean up':
-								if analplugout = 1:
-									analplugout = 0
-									analplugin = 1
-								end
+								if analplugout = 1: gs 'dinsex', 'after_anal'
 								if vibratorOUT = 1:
 									vibratorIN = 1
 									vibratorOUT = 0

+ 4 - 4
locations/MartinSex.qsrc

@@ -493,7 +493,7 @@ if $ARGS[0] = 'MartinTease1':
 		'And you can''t blame him for this reaction - you went from being a friendly flirt to showing him your pussy in under a minute, so most men would need a second to catch up with a reality that has gone utterly mad.'
 
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			minut += 1
 			*nl
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -605,7 +605,7 @@ if $ARGS[0] = 'MartinTease2':
 				'"There, better now?"'
 
 				if analplugin = 1:
-					analplugin = 0
+					analplugin = 0 & analplugout = 1
 					minut += 1
 					*nl
 					'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -670,7 +670,7 @@ if $ARGS[0] = 'MartinTease3':
 			*nl
 			'Considering how reluctant he was to let you "settle for an old man", he seems to be awfully happy about that same young <<$bodyVars[''desc'']>> woman stripping and exposing her privates to him.'
 		else
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			minut += 1
 			*nl
 			'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'
@@ -828,7 +828,7 @@ if $ARGS[0] = 'MartinTease4':
 					'"Maybe a little better than okay," he smirks.'
 					'Considering how reluctant he was to let you "settle for an old man", he seems to be awfully happy about teasing that same young <<$bodyVars[''desc'']>> woman while she''s stripping and exposing her privates to him.'
 				else
-					analplugin = 0
+					analplugin = 0 & analplugout = 1
 					minut += 1
 					*nl
 					'<center><img <<$set_imgh>> src="images/locations/city/industrial/bar/sex/bar/martin/tease/buttplug.jpg"></center>'

+ 7 - 12
locations/Nudelake.qsrc

@@ -8,6 +8,7 @@ $menu_arg = ''
 killvar '$locclass'
 menu_off = 0
 $location_type = 'secluded'
+gs 'stat'
 
 '<center><b>nudist beach</b></center>'
 '<center><img <<$set_imgh>> src="images/locations/city/residential/lake/nudelake.jpg"></center>'
@@ -27,7 +28,7 @@ if PCloswimwear = 1 or $clothingworntype = 'nude':
 	end
 end
 
-if temper >= 15 and month >= 5 and month <= 9:
+if temper >= 15 and month >= 5 and month <= 9 and hour >= 6 and hour <= 20:
 	if func('changingroom','count_swim_item') > 0 and PCloswimwear = 0:
 		act'Change into your swimwear':
 			menu_off = 1
@@ -48,9 +49,7 @@ if temper >= 15 and month >= 5 and month <= 9:
 			end
 		end
 	end
-end
 
-if temper >= 15 and month >= 5 and month <= 9:
 	if $clothingworntype ! 'nude':
 		act'Take off your clothes':
 			menu_off = 1
@@ -84,10 +83,7 @@ if temper >= 15 and month >= 5 and month <= 9:
 			act'Continue':gt'Nudelake'
 		end
 	end
-end
-gs 'stat'
 
-if hour >= 6 and hour <= 20 and temper >= 15:
 	if $clothingworntype = 'nude':
 		'Here you can <a href="exec:gt ''Nudelake'', ''zagarat''">sunbathe</a> and <a href="exec:gt ''Nudelake'', ''swim''">swim</a>'
 		if pcs_stam >= (20 * (10 - sport_clothes_exercise_bonus)) / 2:
@@ -96,6 +92,11 @@ if hour >= 6 and hour <= 20 and temper >= 15:
 		act 'Sunbathe': gt 'Nudelake', 'zagarat'
 		'You can play <a href="exec:gt ''Nudelake'', ''voleybol''">beach volleyball</a>.'
 	end
+
+	if katday ! daystart and kat >= 1:
+		'You see Kat on the beach.'
+		act 'Approach Kat':gt 'Katlake', 'kat'
+	end
 elseif hour >= 6 and hour <= 20:
 	'It''s too cold for any nudist activities.'
 else
@@ -112,12 +113,6 @@ else
 	act 'Return to the main beach':gt 'city_lake', 'start'
 end
 
-if katday ! daystart and kat >= 1 and temper >= 15:
-	'You see Kat on the beach.'
-
-	act 'Approach Kat':gt 'Katlake', 'kat'
-end
-
 if $ARGS[0] = 'voleybol':
 	$location_type = 'event_outdoors'
 	$menu_loc = 'Nudelake'

+ 2 - 2
locations/Peterroom.qsrc

@@ -72,7 +72,7 @@ if $ARGS[0] = 'start':
 			'You do as he says and feel leather cuffs being tightly fastened around your wrists.'
 
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'"What do we have here?" he asks as he grips the end of your butt plug and eases it out.'
 			end
 
@@ -141,7 +141,7 @@ if $ARGS[0] = 'klap':
 		'Your moans are muffled by the gag as Peter bears down on you from above. "Let''s see how well your sweet ass takes me..." he says'
 
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			', pulls out your butt plug'
 		end
 

+ 5 - 5
locations/Serge_kuh.qsrc

@@ -488,7 +488,7 @@ if $ARGS[0] = 'izdev2':
 							'He slips his dick into your soppy pussy with one firm thrust, and begins to fuck you thoroughly. "Very nice, very wet... you''re a good little slut, <<$pcs_nickname>>. Did getting me off with your mouth really turn you on so much?"'
 							'To your shame you have to admit that: yes, yes it did.'
 							if analplugin = 1:
-								analplugin = 0
+								analplugin = 0 & analplugout = 1
 								'While Sergey keeps pounding your pussy, he begins to tug at your butt plug. It''s not that easy to take out while you''re moving constantly, and eventually Sergey stops fucking you for a second to pull it out.'
 							end
 							'With his cock still inside your pussy, he begins to finger your tight little asshole.'
@@ -925,7 +925,7 @@ if $ARGS[0] = 'izdev9':
 							'"When Sergey tells you to stop after a few minutes of throatfucking, his cock is covered in a layer of saliva. "Very good, <<$pcs_nickname>>. You''re almost as good as your classmate. Now get on your hands and knees."'
 							'Sergey''s hands explore your body greedily, but end up a little bit higher than you had anticipated.'
 							if analplugin = 1:
-								analplugin = 0
+								analplugin = 0 & analplugout = 1
 								'Sergey laughs when he finds your butt plug and says: "Wow, <<$pcs_nickname>>! I never would''ve thought... good for you, though. Let''s get this out of the way for now."'
 								'He carefully pulls your butt plug out of your ass, and plunges his fingers in to test how loose your ass is. "Very nice. That should make the next step easier. Will save some time, too... no need to take it slow!"'
 							end
@@ -1476,7 +1476,7 @@ if $ARGS[0] = 'izn1':
 			'"I have all day, slut! We''ll repeat this until you get it right! Hands behind your back!" he growls, and slaps your hand away once more.'
 			'He repeats this three more times. When he realizes you''re no longer trying to disobey him, he nods: "That''s better, slut. Turn around."'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'Sergey notices your butt plug and pulls it out of you in one quick motion, tossing it aside carelessly.'
 			end
 			'When you turn your back to him, you feel his raging erection poking against the small of your back. He takes it in his hand and guides it towards your tight anus, and begins to work the head inside your asshole. "You handle pain well, slut", Sergey groans. "This should be easy for you."'
@@ -1545,7 +1545,7 @@ if $ARGS[0] = 'izn2':
 		'Then he stops, and rubs his cock against your puckered asshole.'
 		$orgasm_or = 'yes'
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'Or at least, he tries to. "What''s this?" he asked, a bit amazed... he was not expecting you to be wearing a butt plug! He grins as he pulls it out, and holds it in front of your mouth: "Lick it clean while I stuff your ass with something else, slut."'
 		end
 		'He slips one finger inside your ass, and then another. And then another! With three fingers inside you, he begins to move his hand.'
@@ -1748,7 +1748,7 @@ if $ARGS[0] = 'sex3':
 			'"Uncle Sergey, fuck me!" you tell him. It''s more of an order than a question, but Sergey seems happy to oblige and turns you around, showing his cock inside you in one firm thrust.'
 			'He''s satisfied enough to just fuck you for a while, but you notice his attention is going to your asshole more and more.'
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'Sergey laughs when he finds your butt plug and says: "Wow, <<$pcs_nickname>>! I never would''ve thought... good for you, though. Let''s get this out of the way for now."'
 				'He carefully pulls your butt plug out of your ass, and plunges his fingers in to test how loose your ass is. "Very nice. That should make the next step easier. Will save some time, too... no need to take it slow!"'
 			end

+ 1 - 1
locations/Voltrener.qsrc

@@ -446,7 +446,7 @@ if $ARGS[0] = 'trener_speak':
 			$OpenInnerThought+'"Didn''t get anything out of him there, <<$pcs_lastname>>. Although, the classes in the fitness center should be worth investigating."'+$CloseInnerThought 
 			npc_rel['A69'] += 3
 			'Seeing Mikhail a little upset by your questions, you decide to cheer him up.'
-			!! the flag on the emergence of Turner in the centre
+			!! the flag on the emergence of Turner in the center
 			ShowerIvan = 4
 			act 'Kiss':
 				cla & *clr

+ 1 - 4
locations/Zvereva_Sly_sex.qsrc

@@ -172,10 +172,7 @@ if $ARGS[0] = 'sex_end':
 		killvar '$pursebratype' & killvar 'pursebranumber'
 		gs 'clothing','wear_last_worn'
 
-		if analplugout = 1:
-			analplugout = 0
-			analplugin = 1
-		end
+		if analplugout = 1: gs 'dinsex', 'after_anal'
 		if vibratorOUT = 1:
 			vibratorIN = 1
 			vibratorOUT = 0

+ 2 - 2
locations/_attributes_fashionista.qsrc → locations/_attributes_fashionista_dress.qsrc

@@ -1,4 +1,4 @@
-# $attributes_fashionista
+# $attributes_fashionista_dress
 !2022/06/14
 !prince range from 4 to 6, please avoid adding too many 4s
 
@@ -1457,5 +1457,5 @@ elseif ARGS[1] = 200:
 	
 end
 
---- $attributes_fashionista ---------------------------------
+--- $attributes_fashionista_dress ---------------------------------
 

+ 1 - 1
locations/_attributes_school.qsrc

@@ -393,7 +393,7 @@ elseif ARGS[1] = 55:
 	CloStyle2 = 4
 	
 elseif ARGS[1] = 56:
-	CloQuality = 4
+	CloQuality = 3
 	CloThinness = 4
 	CloTopCut = 4
 	CloSkirtShortness = 3

+ 1 - 1
locations/_clothing_image.qsrc

@@ -21,7 +21,7 @@ elseif $ARGS[0] = 'coco_outfits':
 	$RESULT = 'images/pc/items/coco/outfits/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'coco_dress':
 	$RESULT = 'images/pc/items/coco/dress/<<ARGS[1]>>.jpg'
-elseif $ARGS[0] = 'fashionista':
+elseif $ARGS[0] = 'fashionista_dress':
 	$RESULT = 'images/pc/items/fashionista/dress/<<ARGS[1]>>.jpg'
 elseif $ARGS[0] = 'fashionista_outfits':
 	$RESULT = 'images/pc/items/fashionista/outfits/<<ARGS[1]>>.jpg'

+ 1 - 1
locations/_short_description.qsrc

@@ -26,7 +26,7 @@ elseif $ARGS[0] = 'coco_outfits':
 	$RESULT = 'Coco outfit number '
 elseif $ARGS[0] = 'coco_dress':
 	$RESULT = 'Coco dress number '
-elseif $ARGS[0] = 'fashionista':
+elseif $ARGS[0] = 'fashionista_dress':
 	$RESULT = 'Fashionista dress number '
 elseif $ARGS[0] = 'fashionista_outfits':
 	$RESULT = 'Fashionista outfit number '

+ 3 - 3
locations/albina_chat.qsrc

@@ -95,7 +95,7 @@ if $ARGS[0] = 'stripper_talk1':
 		'"I... do some strip dancing in the city," you admit, blushing hard.'
 		if age < 18:
 			'"You''re a stripper?" Her jaw drops. "How? You''re underage!"'
-			if alterstrtimg = 18 or alterstrtimg = 19 or alterstrtimg = 20 or alterstrtimg = 21:
+			if $start_type['group'] = 'gopnik':
 				'"I''ve had a fake passport for years," you shrug uncomfortably. "Easiest way to get booze. Now it helps me with other things too."'
 			else
 				'"I... got a fake passport that the club don''t really care to check," you admit. "It... wasn''t easy getting it."'
@@ -117,7 +117,7 @@ if $ARGS[0] = 'stripper_talk1':
 		'"I do some strip dancing in the city," you say casually.'
 		if age < 18:
 			'"You''re a stripper?" she exclaims, her jaw dropping. "How? You''re underage!"'
-			if alterstrtimg = 18 or alterstrtimg = 19 or alterstrtimg = 20 or alterstrtimg = 21:
+			if $start_type['group'] = 'gopnik':
 				'"I''ve had a fake passport for years, Albina," you say, rolling your eyes. "How do you think I got all my booze?"'
 			else
 				'"I got a fake passport," you admit with a shrug. "It wasn''t easy but it gets me past any doors that have an 18+ requirement."'
@@ -139,7 +139,7 @@ if $ARGS[0] = 'stripper_talk1':
 		'"I do some strip dancing in the city," you admit, letting a smug smile creep onto your lips.'
 		if age < 18:
 			'"You''re a stripper?!" she exclaims, her jaw dropping. "How? You''re underage!"'
-			if alterstrtimg = 18 or alterstrtimg = 19 or alterstrtimg = 20 or alterstrtimg = 21:
+			if $start_type['group'] = 'gopnik':
 				'"I''ve had a fake passport for years," you grin. "Easiest way to get booze. Now it helps me with other things too."'
 			else
 				'"I got a fake passport. Expensive sumbitch, but it gets me into 18+ areas."'

+ 1 - 1
locations/albina_house_events.qsrc

@@ -650,7 +650,7 @@ if $ARGS[0] = 'hot_tub_no_panties':
 	else
 		'"I uhh, may have forgotten to wear them today..." you blush before stepping into the tub with her.'
 	end
-	if albina['commando_know'] = 0 and alterstrtimg = 24:
+	if albina['commando_know'] = 0 and $start_type['cat'] = 'goodgirl':
 		gs 'albina_house_events', 'goodie_two_shoes'
 	else
 		gs 'albina_house_events', 'hot_tub_no_panties2'

+ 1 - 1
locations/albinahome.qsrc

@@ -220,7 +220,7 @@ if $ARGS[0] = 'bedroom':
 		act 'Hang out': gt $loc, $loc_arg
 	else
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/albinahome/albinaroom.jpg"></center>'
-		'You are impressed at how nice Albina''s bedroom looks, the centrepiece being a large double bed covered in soft pillows. A door at the back of the room leads to her en-suite bathroom, and she even has a sliding door leading to a balcony that overlooks the nearby lake. A closet full of expensive-looking clothes is built into one of the walls.'
+		'You are impressed at how nice Albina''s bedroom looks, the centerpiece being a large double bed covered in soft pillows. A door at the back of the room leads to her en-suite bathroom, and she even has a sliding door leading to a balcony that overlooks the nearby lake. A closet full of expensive-looking clothes is built into one of the walls.'
 		'By the bed is a small <a href="exec:gt ''albina_house_events'',''night_stand''">nightstand</a>, and on a desk is a <a href="exec:gt ''albina_house_events'',''computer''">laptop</a>'
 		act 'Return to the hallway': gt 'albinahome', 'hallway'
 		act 'Chat with Albina': gt 'albina_chat', 'chat'

+ 1 - 1
locations/alex.qsrc

@@ -31,7 +31,7 @@ act 'Get on your knees and take it in your mouth':
 		'Alexey slaps you on your ass with the palm of his hand and says, "You''re wet like a slut already, do you like being fucked like this?"'
 		if analplugin = 1:
 			'Alexey pulls the plug out of your narrow and tight ass.'
-			analplugout = 1
+			analplugin = 0 & analplugout = 1
 		end
 		'Without stopping his relentless pounding of your pussy, Alexey smears one of his fingers with your lovejuices, and sticks it in your anus.'
 		'He moves his finger slowly, probing your anus and preparing it for his dick.'

+ 2 - 2
locations/anush_bedroom.qsrc

@@ -60,7 +60,7 @@ if $ARGS[0] = 'anushroom':
 	gs 'stat'
 	'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom.jpg"></center>'
-	'The room is surprisingly clean, more so than any other room in the apartment. The walls are covered with pictures and posters of <a href="exec:gt ''anush_bedroom'',''the_pretty_reckless''">bands</a> or famous models, girls and guys, while the room is skillfully decorated with various strings of coloured lights. In the centre of the room, beneath the window, is a <a href="exec:gt ''anush_bedroom'',''bed''">bed</a> with a small <a href="exec:gt ''anush_bedroom'',''night_stand''">nightstand</a> beside it.'
+	'The room is surprisingly clean, more so than any other room in the apartment. The walls are covered with pictures and posters of <a href="exec:gt ''anush_bedroom'',''the_pretty_reckless''">bands</a> or famous models, girls and guys, while the room is skillfully decorated with various strings of coloured lights. In the center of the room, beneath the window, is a <a href="exec:gt ''anush_bedroom'',''bed''">bed</a> with a small <a href="exec:gt ''anush_bedroom'',''night_stand''">nightstand</a> beside it.'
 	'Against the opposite wall are a small computer desk, a <a href="exec:gt ''anush_bedroom'',''computer''">laptop</a> and a chair. Next to the desk is a <a href="exec:gt ''anush_bedroom'',''nushdresser''">dresser</a> with a decent sized flatscreen TV sitting on top of it. On the other side of the desk is a bookshelf with a relatively large collection of books. Hanging on the wall next to the shelves is an <a href="exec:gt ''anush_bedroom'',''guitar''">acoustic guitar</a> with an electric guitar right beside it. A skateboard is also leaning against one of the other walls next to the <a href="exec:gt ''anush_bedroom'',''nushcloset''">closet door</a>, along with some rollerblades in the corner.'
 	act 'Leave Anushka''s room': gt 'anushapt','hallway'
 	if AnushkaLoc = 2:
@@ -403,7 +403,7 @@ if $ARGS[0] = 'computer':
 			'You perk up at the mention of modelling to earn money towards a lovely laptop like she has. "Does modelling really pay that well?"'
 			'She nods. "Sort of... If you''re willing to do nude modelling, you can make a lot in a short amount of time. Are you interested?" she asks while arching a shapely eyebrow.'
 			'"Nude?" you silently ask yourself. Still, it might be worth considering if it pays that much. "I don''t know... Maybe... How would I get started? Is there a modelling agency or something?"'
-			'She grins at your reply. "Yes, it''s located in the city centre." She then explains precisely where it is and to let the photographer know she sent you.'
+			'She grins at your reply. "Yes, it''s located in the city center." She then explains precisely where it is and to let the photographer know she sent you.'
 			act 'Thanks':gt 'anush_bedroom','anushroom'
 			if fakepassport ! 1:
 				act 'Underaged?':

+ 1 - 1
locations/anush_bedroom_city.qsrc

@@ -72,7 +72,7 @@ if $ARGS[0] = 'anushroom':
 	gs 'stat'
 	'<center><h4><font color="maroon">Anushka''s Room</font></h4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/resident/apartment/anushapt/anushroom.jpg"></center>'
-	'The room is clean, even more so than her room back in Pavlovsk, it reminds you a lot of her old room, a few new posters, slightly bigger and looks a little more adult but otherwise pretty much the same. The walls are covered with pictures and posters of <a href="exec:gt ''anush_bedroom_city'',''the_pretty_reckless''">bands</a> or famous models, girls and guys, while the room is skillfully decorated with various strings of coloured lights. In the centre of the room, beneath the window, is a <a href="exec:gt ''anush_bedroom_city'',''bed''">bed</a> with a small <a href="exec:gt ''anush_bedroom_city'',''night_stand''">nightstand</a> beside it.'
+	'The room is clean, even more so than her room back in Pavlovsk, it reminds you a lot of her old room, a few new posters, slightly bigger and looks a little more adult but otherwise pretty much the same. The walls are covered with pictures and posters of <a href="exec:gt ''anush_bedroom_city'',''the_pretty_reckless''">bands</a> or famous models, girls and guys, while the room is skillfully decorated with various strings of coloured lights. In the center of the room, beneath the window, is a <a href="exec:gt ''anush_bedroom_city'',''bed''">bed</a> with a small <a href="exec:gt ''anush_bedroom_city'',''night_stand''">nightstand</a> beside it.'
 	*nl
 	'Against the opposite wall are a small computer desk, a <a href="exec:gt ''anush_bedroom_city'',''computer''">laptop</a> and a chair. Next to the desk is a <a href="exec:gt ''anush_bedroom_city'',''nushdresser''">dresser</a> with a decent sized flatscreen TV sitting on top of it. On the other side of the desk is a bookshelf with a relatively large collection of books. Hanging on the wall next to the shelves is an <a href="exec:gt ''anush_bedroom_city'',''guitar''">acoustic guitar</a> with an electric guitar right beside it. A skateboard is also leaning against one of the other walls next to the <a href="exec:gt ''anush_bedroom_city'',''nushcloset''">closet door</a>, along with some rollerblades in the corner.'
 	act 'Leave Anushka''s room': gt 'anushapt_city','hallway'

+ 2 - 2
locations/anushkaev1.qsrc

@@ -134,7 +134,7 @@ if $ARGS[0] = 'strapon1':
 													anushkaQW['dom_nush'] -= 1
 													'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/bedroom/sex/strapon/strapme9.jpg"></center>'
 													if analplugin = 1:
-														analplugin = 0
+														analplugin = 0 & analplugout = 1
 														'She straddles your thighs to get a better position, then starts pulling on your butt plug. As you glance back, you see a huge grin on her face. "You won''t be needing this for a while..." she says as she pulls it free and shows it to you.'
 													else
 														'She straddles your thighs to get a better position and uses her hands to spread your ass cheeks. As you glance back, you see a huge grin on her face. She obviously loves the idea of fucking you in the ass.'
@@ -277,7 +277,7 @@ if $ARGS[0] = 'strapon1':
 										'Once she gets bored of you sucking the dildo, she flips your ass towards her.'
 										anushkaQW['dom_nush'] -= 1
 										if analplugin = 1:
-											analplugin = 0
+											analplugin = 0 & analplugout = 1
 											'She straddles your thighs to get a better position, then starts pulling on your butt plug. As you glance back, you see a huge grin on her face. "You won''t be needing this for a while..." she says as she pulls it free and shows it to you.'
 										else
 											'She straddles your thighs to get a better position and uses her hands to spread your ass cheeks. As you glance back, you see a huge grin on her face. She obviously loves the idea of fucking you in the ass.'

+ 1 - 1
locations/anushkaev2.qsrc

@@ -671,7 +671,7 @@ if $ARGS[0] = 'val3some':
 													'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/girl/anushka/sex/spy/join/val/valnushs11.jpg"></center>'
 													'You nod at his request. "Sure, you can fuck my ass." you tell him and Anushka rolls off of you as Valentin moves up behind you. He grabs you by the hips and pulls you up into a doggy position. As he does, Anushka moves around in front of you and lies on her back with her legs spread. She places her hand on the back of your head and pulls your face to her crotch.'
 													*nl
-													if analplugin = 1: analplugin = 0 & 'Valentin pulls out your butt plug without mercy, and it comes out with a loud pop. You doing some anal training <<$pcs_nickname>>? Nice! No need to take it easy on you it seems.'
+													if analplugin = 1: analplugin = 0 & analplugout = 1 & 'Valentin pulls out your butt plug without mercy, and it comes out with a loud pop. You doing some anal training <<$pcs_nickname>>? Nice! No need to take it easy on you it seems.'
 													'As you lower your head, you feel Valentin''s cock pressing against your asshole, along with a squirt of lube. He rubs the tip of his dick against your asshole while you start to lick Anushka''s sopping wet pussy.'
 													*nl
 													'You groan as Valentin''s <<dick>>cm <<$dick_girth>> cock pops into your ass. He pauses to let you adjust before he slowly starts fucking your ass. The louder you moan the harder and rougher he gets. He seems to be really getting into it, making you think he is close when he cries out "Fuck, I''m about to cum!"'

+ 325 - 198
locations/arousal.qsrc

@@ -56,9 +56,10 @@ eg: gs 'arousal', 'trib', 10, 'bound', 'sub'
 In this case lesbianism is automatically added, much as feet would be applied to 'footjob'
 
 Lubrication - if one of the arguments $ARGS[2] - [8] is set to 'lube', it supposes that it is used some kind of lubricant - preferably from PCs supply of lube.
-The lube will remain applied to the orifice in question until 'end' is called. The usage of Svetas lube and checks for her having any must be done in the sex act.
+The lube will remain applied to the orifice in question until 'end' is called. The usage of Svetas lube and checks for her having any must be done in the sex act or use the auto lube action.
 The lubrication is binded with anal or vaginal action. I think that the best combo is with 'anal_finger' and 'vaginal_finger'
 Only call one at a time, if more required, use multiple calls
+Also - if one of the arguments $ARGS[2] - [8] is set to 'spit' then it will apply lube at half value, again this must be with a vaginal or anal action. I would suggest skipping the specific finger part
 
 Unaware - if one of the arguments $ARGS[2] - [8] is set to 'unaware', Sveta is not aware of this Sexact. Sveta will never know she had Sex!
 no_orgasm_msg - if one of the arguments $ARGS[2] - [8] is set to 'no_orgasm_msg', the system will not generate a generic arousal message
@@ -89,13 +90,52 @@ killvar 'orgasm_flag'
 
 if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0] ! 'count2':
 
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'unaware') > 0:
-		temp_unaware = 1
-	end
+	stim_time = max(1, iif(ARGS[1] >= 0, ARGS[1], ARGS[1]*-1))
+	$get_hole_pain = {
+		!! ARGS[0] hole size
+		!! ARGS[1] hole slippery
+		!! ARGS[2] current pain
+		!! ARGS[3] length of inserted object
+		!! ARGS[4] grange of inserted object
+		!! ARGS[5] skill (0-2) aka silavag
+		!! length and girth abilities of hole are not also separated
+		!! but I suppose that they are related although it is not propable
+		!! we can estimate difference in girth and length
+		grdif = (ARGS[4] - ARGS[0])/2
+		ltdif = (ARGS[3] - ARGS[0])/4
+		!! painful intercourse compensated with lube
+		if pain_coeff > 0:
+			grdif += rand(pain_coeff/max(1,ARGS[1]/2), pain_coeff/max(1,ARGS[1]))
+			ltdif += rand(pain_coeff/max(1,ARGS[1]/2), pain_coeff/max(1,ARGS[1]))
+		end
+		!! in pain compensated by skill
+		if ARGS[2] > 0:
+			grdif += rand(ARGS[2]/max(1,ARGS[5]*4), ARGS[2]/max(1,ARGS[5]*2))
+			ltdif += rand(ARGS[2]/max(1,ARGS[5]*4), ARGS[2]/max(1,ARGS[5]*2))
+		end
+		!! if there is any discomfort, check intercourse duration, compensated by skill
+		if stim_time > 0:
+			if grdif > rand(ARGS[5]*2): grdif += rand(stim_time/(max(1,ARGS[5])*10), stim_time/(max(1,ARGS[5])*5))
+			if ltdif > rand(ARGS[5]*2): ltdif += rand(stim_time/(max(1,ARGS[5])*10), stim_time/(max(1,ARGS[5])*5))
+		end
+		!! lube can compensate the difference a bit, or make it worse if there is no lube at all
+		if ARGS[1] > 0:
+			grdif -= rand(ARGS[1]/2, ARGS[1])
+		else
+			grdif += max(rand(ARGS[3], ARGS[4]), rand(grdif/2, grdif))
+		end
+		!! when skilled, it does not harm PC
+		if ARGS[5] > 0 and ltdif > 0: ltdif /= ARGS[5]
 
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'no_orgasm_msg') > 0:
-		temp_text = 1
-	end
+		!! min\max
+		grdif = max(0, min(15-(ARGS[0]/4), grdif))
+		ltdif = max(0, min(15-(ARGS[0]/4), ltdif))
+
+		!{ 'hole size <<ARGS[0]>>; length: <<ARGS[3]>>; grange: <<ARGS[4]>>; hole slippery: <<ARGS[1]>>; current pain: <<ARGS[2]>>; stim_time: <<stim_time>>; skill: <<ARGS[5]>>; grdif: <<grdif>>; ltdif: <<ltdif>>' }
+	}
+
+	if arrpos('$ARGS', 'unaware') >= 0: temp_unaware = 1
+	if arrpos('$ARGS', 'no_orgasm_msg') >= 0: temp_text = 1
 	
 	if mid($ARGS[2],1,4) = 'dick':
 		temp_dick = dyneval('result='+$ARGS[2])
@@ -106,12 +146,20 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		temp_silavag = silavag
 		$temp_dick_girth = $dick_girth
 	end
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'rough')+strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'beast') > 0: temp_silavag = 0
+	if arrpos('$ARGS', 'rape') >= 0 or arrpos('$ARGS', 'rough') >= 0 or arrpos('$ARGS', 'beast') >= 0: temp_silavag = 0
 	grange = dyneval('result=strpos(''skinny   slimx     well pr   thicker   thickx    massive   monstrous'',$ARGS[0])',mid($temp_dick_girth+'x',1,6))/2
 
 	!! first let us determine how slippery are pc''s holes
 	if vaginal_slip < pcs_horny / 10: vaginal_slip = pcs_horny / 10
-	if strpos($ARGS[2]+$ARGS[3]+$ARGS[4]+$ARGS[5]+$ARGS[6]+ $ARGS[7]+ $ARGS[8],'lube') > 0:
+	if arrpos('$ARGS', 'spit') >= 0:
+		if mid($ARGS[0],1,4) = 'anal':
+			anal_slip = 4
+		end
+		if mid($ARGS[0],1,4) = 'vagi':
+			vaginal_slip = 4
+		end
+	end
+	if arrpos('$ARGS', 'lube') >= 0:
 		if ar_anal_lube = 0:
 			if mid($ARGS[0],1,4) = 'anal':
 				anal_slip = 8
@@ -125,6 +173,9 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			end
 		end
 	end
+	!! cum slippery
+	if cumloc[0] > 0: vaginal_slip += rand(cumvol[0]/10, cumvol[0]/5)
+	if cumloc[3] > 0: anal_slip += rand(cumvol[3]/15, cumvol[3]/10)
 	!!	This is to allow a Succubus with the right skill level to handle any size then go back to original size
 	if succubusflag = 1 and sucskill >= 4:
 		if mid($ARGS[0],1,4) = 'vagi' and temp_dick ! pcs_vag:
@@ -142,6 +193,19 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 !!set a magnitude as a random
 	stim['mag'] = rand(0,3) + rand(0,3) + rand(0,3) 
 
+!! set up pain coefficient
+	pain_coeff = 0
+	if arrpos('$ARGS', 'rape') >= 0:         pain_coeff += 40
+	if arrpos('$ARGS', 'gangbang') >= 0:     pain_coeff += 30
+	if arrpos('$ARGS', 'rough') >= 0:        pain_coeff += 25
+	if arrpos('$ARGS', 'beast') >= 0:        pain_coeff += 20
+	if arrpos('$ARGS', 'BDSM') >= 0:         pain_coeff += 10
+	if arrpos('$ARGS', 'maso') >= 0:         pain_coeff += 7
+	if arrpos('$ARGS', 'bound') >= 0:        pain_coeff += 3
+	if arrpos('$ARGS', 'sub') >= 0:          pain_coeff += 2
+	if arrpos('$ARGS', 'prostitution') >= 0: pain_coeff += rand(0,5)
+	if arrpos('$ARGS', 'unknown') >= 0:      pain_coeff += rand(0,2)
+
 !!add count and effects due to action
 	if $ARGS[0] = 'clit_finger':
 		orgasm_flag['clit'] = 1
@@ -170,17 +234,30 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 	elseif $ARGS[0] = 'kiss':
 		count['kiss'] = 1
 		stim['act'] = 10
-!!	elseif $ARGS[0] = 'breasts':
-!!		stim['act'] = 30
-!!		!! No idea where else to put this. This is used for breast stimulation which will eventually cause lactation in sveta without her knowledge. If anyone knows a better place for this, please let me know. - milky_boobs.
-!!		milkedvolume += func('lact_lib','$get_breastmilk', 8, ARGS[1])
+	elseif $ARGS[0] = 'breasts':
+		stim['act'] = 30
+		!! lose some milk
+		if lactation['active'] > 0 and lactation['breastmv'] > lactation['breastmm']*3/2:
+			stim['act'] += rand(10,20)
+			lactation['breastmv'] = max(0, lactation['breastmv'] - rand(lactation['breastmv']/20, lactation['breastmv']/10)*max(1,stim_time/2))
+		end
+
+		if pain_coeff > 0:
+			gs 'pain', rand(pain_coeff)/2, 'breasts', 'twist'
+			gs 'pain', rand(pain_coeff)/2, 'nipples', 'pinch'
+		end
+
+		!! No idea where else to put this. This is used for breast stimulation which will eventually cause lactation in sveta without her knowledge. If anyone knows a better place for this, please let me know. - milky_boobs.
+		!! milkedvolume += func('lact_lib','$get_breastmilk', 8, ARGS[1])
 	elseif $ARGS[0] = 'massage':
+		pcs_sweat += rand(2,4)*max(1,stim_time/5)
 		count['massage'] = 1
 		stim['act'] = 25
 	elseif $ARGS[0] = 'foreplay':
 		count['foreplay'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'cuni':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
 		orgasm_flag['vaginal'] = 1
 		count['cuni'] = 1
 		stim['mag'] += 4
@@ -202,45 +279,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['mag'] += 3
 		stim['act'] = 70
 		stim_les = 1
-	elseif $ARGS[0] = 'anal':
-		stat['last_sex_day'] = daystart
-		orgasm_flag['anal'] = 1
-		if temp_unaware = 1:
-			count['hidden_anal'] = 1
-		else
-			count['anal'] = 1
-		end
-		if pcs_traits['buttslut_lvl'] = 1:
-			stim['mag'] += 1
-		elseif pcs_traits['buttslut_lvl'] >= 2:
-			stim['mag'] += 3
-		end
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
-		!! length and girth abilities of anus are not also separated , but I suppose that they are related although it is not propable
-		!! we can estimate difference in girth and length anal_girth_difference and anal_lenght_difference - names are shortened
-		altdif = temp_dick - pcs_ass
-		agrdif = grange - pcs_ass
-		!! negative influence of the difference can be reduced by sex skill and also by lubricant
-		!! I made it as simply as possible so you do not complain about reality, feel free to modify the algorithm
-		!! when the boy is skilled, he can compensate the difference partly
-		altdif = altdif / (temp_silavag+1)
-		agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
-		!! when the boy is skilled, he does not harm PC with his long dick
-		if (temp_silavag = 2) and (altdif > 0): altdif = 0
-		!! lube can compensate the difference a bit
-		if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
-		if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
-
-		stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
-		!! if the dick is smaller, it cannot harm PC
-		if agrdif < 0: agrdif = 0
-		if altdif < 0: altdif = 0
-		!! calculate the harm
-		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
-		!! the pain lover the pleasure
-		gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
-		stim['act'] = stim['act'] - (agrdif + altdif)
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff)/5, 'clitoris', 'twist'
 	elseif $ARGS[0] = 'anal_finger':
 		orgasm_flag['anal'] = 1
 		count['anal_finger'] = 1
@@ -252,6 +291,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['mag'] += 1
 			stim['act'] = 80
 		end
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'asshole', 'stretch'
 	elseif $ARGS[0] = 'anal_fist':
 		orgasm_flag['anal'] = 1
 		count['anal_fist'] = 1
@@ -261,11 +301,11 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['act'] = 70
 		end
-		if pcs_ass + anal_slip < 30:
-			pcs_ass = 30
-			gs 'pain', 4-agape, 'asshole', 'stretch'
-			if agape < 3:agape = 3
-		end
+		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], rand(15,20), rand(35,40), rand(0,2)
+		stim['act'] -= grdif + ltdif
+		agape = min(4, iif((grdif + ltdif) > 3*agape,(grdif + ltdif)/3,agape))
+		gs 'pain', grdif+ltdif, 'asshole', 'stretch'
+		pcs_ass += 1
 	elseif $ARGS[0] = 'self_fisting_anal':
 		orgasm_flag['anal'] = 1
 		count['self_fisting_anal'] = 1
@@ -275,82 +315,124 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['act'] = 70
 		end
-		if pcs_ass + anal_slip < 30:
-			pcs_ass = 30
-			gs 'pain', 4-agape, 'asshole', 'stretch'
-			if agape < 3:agape = 3
+		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], rand(10,15), rand(30,35), 2
+		stim['act'] -= grdif + ltdif
+		agape = min(4, iif((grdif + ltdif) > 3*agape,(grdif + ltdif)/3,agape))
+		gs 'pain', grdif+ltdif, 'asshole', 'stretch'
+		pcs_ass += 1
+	elseif $ARGS[0] = 'anal_vibe':
+		orgasm_flag['anal'] = 1
+		count['anal_vibe'] = 1
+		stim['mag'] += 1
+		stim['act'] = 60
+		if pcs_traits['buttslut_lvl'] = 1:
+			stim['mag'] += 1
+			stim['act'] = 70
+		elseif pcs_traits['buttslut_lvl'] >= 2:
+			stim['mag'] += 2
+			stim['act'] = 90
+		end
+	elseif $ARGS[0] = 'anal':
+		pcs_sweat += rand(1,4)*max(1,stim_time/5)
+		stat['last_sex_day'] = daystart
+		orgasm_flag['anal'] = 1
+		if temp_unaware = 1:
+			count['hidden_anal'] = 1
+		else
+			count['anal'] = 1
+		end
+		if pcs_traits['buttslut_lvl'] = 1:
+			stim['mag'] += 1
+		elseif pcs_traits['buttslut_lvl'] >= 2:
+			stim['mag'] += 3
 		end
+		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
+		!! calculate the harm
+		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
+		!! the pain lover the pleasure
+		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		!! force cum leak
+		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
 	elseif $ARGS[0] = 'anal_dildo':
+		pcs_sweat += rand(0,2)*max(1,stim_time/5)
 		orgasm_flag['anal'] = 1
 		count['anal_dildo'] = 1
 		!! the same as for 'anal'
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
-		altdif = temp_dick - pcs_ass
-		agrdif = grange - pcs_ass
-		altdif = altdif / (temp_silavag+1)
-		agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
-		if (temp_silavag = 2) and (altdif > 0): altdif = 0
-		if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
-		if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
-		stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
+		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
 		if pcs_traits['buttslut_lvl'] = 1:
 			stim['act'] += 10
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['mag'] += 1
 		end
-		if agrdif < 0: agrdif = 0
-		if altdif < 0: altdif = 0
-		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
-		gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
-		stim['act'] = stim['act'] - (agrdif + altdif)
+		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
+		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
 	elseif $ARGS[0] = 'anal_strap':
+		pcs_sweat += rand(1,2)*max(1,stim_time/5)
 		stat['last_sex_day'] = daystart
 		orgasm_flag['anal'] = 1
 		count['anal_strap'] = 1
-		!! the same as for 'anal'
-		if pcs_ass < temp_dick:pcs_ass += 1
-		if pcs_ass*2 < temp_dick:pcs_ass += 1
-		altdif = temp_dick - pcs_ass
-		agrdif = grange - pcs_ass
-		altdif = altdif / (temp_silavag+1)
-		agrdif = agrdif *(5/4 - 1/(4 - temp_silavag))
-		if (temp_silavag = 2) and (altdif > 0): altdif = 0
-		if agrdif > anal_slip: agrdif = agrdif - anal_slip else if agrdif > 0: agrdif = 0
-		if -agrdif > anal_slip: agrdif = agrdif + anal_slip else if agrdif < 0: agrdif = 0
-		stim['act'] = 80 - (iif(altdif>0,altdif,-altdif) + iif(agrdif >0,agrdif,-agrdif)) + temp_silavag*8
 		if pcs_traits['buttslut_lvl'] = 1:
 			stim['act'] += 10
 		elseif pcs_traits['buttslut_lvl'] >= 2:
 			stim['mag'] += 1
 		end
-		if agrdif < 0: agrdif = 0
-		if altdif < 0: altdif = 0
-		agape = iif((agrdif + altdif) > 10*agape,(agrdif + altdif)/10,agape)
-		gs 'pain', (agrdif + altdif)/5 , 'asshole', 'stretch'
-		stim['act'] = stim['act'] - (agrdif + altdif)
-	elseif $ARGS[0] = 'anal_vibe':
-		orgasm_flag['anal'] = 1
-		count['anal_vibe'] = 1
+		!! the same as for 'anal'
+		dynamic $get_hole_pain, pcs_ass, anal_slip, pain['asshole'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
+		agape = min(4, iif((grdif + ltdif) > 5*agape,(grdif + ltdif)/5, agape))
+		gs 'pain', grdif + ltdif, 'asshole', 'stretch'
+		!! force cum leak
+		if ARGS[1] > 0 and cumvol[3] > rand(pcs_ass/2,pcs_ass): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
+		if pcs_ass < temp_dick:pcs_ass += 1
+		if pcs_ass*2 < temp_dick:pcs_ass += 1
+	elseif $ARGS[0] = 'vaginal_finger':
+		orgasm_flag['vaginal'] = 1
+		count['vaginal_finger'] = 1
 		stim['mag'] += 1
-		stim['act'] = 60
-		if pcs_traits['buttslut_lvl'] = 1:
-			stim['mag'] += 1
-			stim['act'] = 70
-		elseif pcs_traits['buttslut_lvl'] >= 2:
-			stim['mag'] += 2
-			stim['act'] = 90
-		end
+		stim['act'] = 80
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'vaginal', 'stretch'
+	elseif $ARGS[0] = 'vaginal_fist':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
+		orgasm_flag['vaginal'] = 1
+		count['vaginal_fist'] = 1
+		stim['act'] = 70
+		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], rand(15,20), rand(35,40), rand(0,2)
+		stim['act'] -= grdif + ltdif
+		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
+		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
+		gs 'pain', rand(grdif), 'labia', 'stretch'
+		pcs_vag += 1
+	elseif $ARGS[0] = 'self_fisting':
+		orgasm_flag['vaginal'] = 1
+		count['self_fisting'] = 1
+		stim['act'] = 70
+		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], rand(10,15), rand(30,35), 2
+		stim['act'] -= grdif + ltdif
+		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
+		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
+		gs 'pain', rand(grdif), 'labia', 'stretch'
+		pcs_vag += 1
+	elseif $ARGS[0] = 'vaginal_vibe':
+		orgasm_flag['vaginal'] = 1
+		count['vaginal_vibe'] = 1
+		stim['mag'] += 2
+		stim['act'] = 90
 	elseif $ARGS[0] = 'vaginal':
-		
+		pcs_sweat += rand(1,3)*max(1,stim_time/5)
 		orgasm_flag['vaginal'] = 1
 		!! pre-cum check
 		if rand(0,120) < ARGS[1]: cumprecheck = 1 & gs 'cum_manage'
-		
 		if temp_unaware = 1:
 			count['hidden_vaginal'] = 1
 		else
-			if stat['think_virgin'] = 1:
+			if virgin_stats['vaginal'] = 0 and (stat['think_virgin'] = 1 or pcs_vag = 0):
 				virgin_stats['day_lost'] = daystart
 				virgin_stats['age_lost'] = age
 				virgin_stats['vaginal'] = 1
@@ -362,113 +444,57 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stat['last_man_sex_day'] = daystart
 		end
 		stim['mag'] += 3
-		if pcs_vag < dick:pcs_vag += 1
-		if pcs_vag*2 < dick:pcs_vag += 1
-		!! length and girth abilities of vagina are not separated , but I suppose that they are related
-		!! we can estimate difference in girth and length vaginal_girth_difference and vaginal_lenght_difference - names are shortened
-		vgrdif = grange - pcs_vag
-		vltdif = temp_dick - pcs_vag
-		!! negative influence of the difference can be reduced by sex skill and also by PCs horniness, using of a lubricant is not established yet
-		!! I made it as simply as possible so you do not complain about reality, feel free to modify the algorithm
-		!! when the boy is skilled, he can compensate the difference partly
-		vltdif = vltdif / (temp_silavag+1)
-		vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
-		!! when the boy is skilled, he does not harm PC with his long dick
-		if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
-		!! even PC horniness can compensate the difference 
-		if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
-		if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
-
-		stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
-		!! if the dick is smaller, it cannot harm PC
-		if vgrdif < 0: vgrdif = 0
-		if vltdif < 0: vltdif = 0
+		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
 		!! calculate the harm
-		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
+		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
 		!! the pain lover the pleasure
-		gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
-		stim['act'] = stim['act'] - (vgrdif + vltdif)
-	elseif $ARGS[0] = 'vaginal_finger':
-		orgasm_flag['vaginal'] = 1
-		count['vaginal_finger'] = 1
-		stim['mag'] += 1
-		stim['act'] = 80
-	elseif $ARGS[0] = 'vaginal_fist':
-		orgasm_flag['vaginal'] = 1
-		count['vaginal_fist'] = 1
-		stim['act'] = 70
-		if pcs_vag + vaginal_slip < 30:
-			!! same as for 'vaginal'
-			pcs_vag += 3
-			gs 'pain', 3 - vgape, 'vaginal', 'stretch'
-			if vgape < 3:vgape = 3
-		end
-	elseif $ARGS[0] = 'self_fisting':
-		orgasm_flag['vaginal'] = 1
-		count['self_fisting'] = 1
-		stim['act'] = 70
-		if pcs_vag + vaginal_slip < 30:
-			!! same as for 'vaginal'
-			pcs_vag += 3
-			gs 'pain', 3 - vgape, 'vaginal', 'stretch'
-			if vgape < 3:vgape = 3
-		end
+		gs 'pain', grdif+ltdif, 'vaginal', 'stretch'
+		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
+		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff)/5, 'clitoris', 'hit'
+		!! force cum leak
+		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
+		if pcs_vag < temp_dick:pcs_vag += 1
+		if pcs_vag*2 < temp_dick:pcs_vag += 1
 	elseif $ARGS[0] = 'vaginal_dildo':
+		pcs_sweat += rand(0,2)*max(1,stim_time/5)
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_dildo'] = 1
 		stim['mag'] += 1
 		!! the same as for 'vaginal'
+		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
+		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
+		gs 'pain', grdif + ltdif, 'vaginal', 'stretch'
+		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
+		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
+		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_vag < temp_dick:pcs_vag += 1
 		if pcs_vag*2 < temp_dick:pcs_vag += 1
-		vgrdif = grange - pcs_vag
-		vltdif = temp_dick - pcs_vag
-		vltdif = vltdif / (temp_silavag+1)
-		vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
-		if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
-		if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
-		if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
-		stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
-		if vgrdif < 0: vgrdif = 0
-		if vltdif < 0: vltdif = 0
-		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
-		gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
-		stim['act'] = stim['act'] - (vgrdif + vltdif)
 	elseif $ARGS[0] = 'vaginal_strap':
+		pcs_sweat += rand(1,2)*max(1,stim_time/5)
 		orgasm_flag['vaginal'] = 1
 		count['vaginal_strap'] = 1
-		if stat['think_virgin'] = 1:
+		if virgin_stats['strapon'] = 0 and (stat['think_virgin'] = 1 or pcs_vag = 0):
 			virgin_stats['day_lost'] = daystart
 			virgin_stats['age_lost'] = age
 			virgin_stats['strapon'] = 1
 			$virgin_stats['virgin_taker_ID'] = $boy
-			if birthday = day and birthmonth = month:
-				virgin_stats['birthday'] = 1
-			end
+			if birthday = day and birthmonth = month: virgin_stats['birthday'] = 1
 			!! if dont_know_npc_name
 		end
 		stim['mag'] += 1
-		!! virginal capacity increase
+		!! the same as for 'vaginal'
+		dynamic $get_hole_pain, pcs_vag, vaginal_slip, pain['vaginal'], temp_dick, grange, temp_silavag
+		stim['act'] = 80 - grdif + ltdif + temp_silavag*8
+		vgape = min(4, iif((grdif + ltdif) > 3*vgape,(grdif + ltdif)/3,vgape))
+		gs 'pain', grdif + ltdif, 'vaginal', 'stretch'
+		if temp_dick/max(1, temp_silavag) > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(ltdif), 'cervix', 'shock'
+		if grange/max(1, temp_silavag)    > rand(pcs_vag/2,pcs_vag): gs 'pain', rand(grdif), 'labia', 'stretch'
+		if ARGS[1] > 0 and cumvol[0] > rand(pcs_vag/2,pcs_vag): gs 'cum_manage', 'cum_decay', ((temp_dick+grange)/2)*max(1,stim_time/5)
 		if pcs_vag < temp_dick:pcs_vag += 1
 		if pcs_vag*2 < temp_dick:pcs_vag += 1
-		!! the same as for 'vaginal'
-		vgrdif = grange - pcs_vag
-		vltdif = temp_dick - pcs_vag
-		vltdif = vltdif / (temp_silavag+1)
-		vgrdif = vgrdif *(5/4 - 1/(4 - temp_silavag))
-		if (temp_silavag = 2) and (vltdif > 0): vltdif = 0
-		if vgrdif > vaginal_slip: vgrdif = vgrdif - vaginal_slip else if (vgrdif > 0): vgrdif = 0
-		if -1*vgrdif > vaginal_slip: vgrdif = vgrdif + vaginal_slip else if (vgrdif < 0): vgrdif = 0
-		stim['act'] = 80 - (iif(vltdif>0,vltdif,-vltdif) + iif(vgrdif >0,vgrdif,-vgrdif)) + temp_silavag*8
-		if vgrdif < 0: vgrdif = 0
-		if vltdif < 0: vltdif = 0
-		vgape = iif((vgrdif + vltdif) > 10*vgape,(vgrdif + vltdif)/10,vgape)
-		gs 'pain', (vgrdif + vltdif)/5 , 'vaginal', 'stretch'
-		stim['act'] = stim['act'] - (vgrdif + vltdif)
-	elseif $ARGS[0] = 'vaginal_vibe':
-		orgasm_flag['vaginal'] = 1
-		count['vaginal_vibe'] = 1
-		stim['mag'] += 2
-		stim['act'] = 90
 	elseif $ARGS[0] = 'flashlite':
 		count['flashlite'] = 1
 		stim['act'] = 10
@@ -482,12 +508,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['pee'] = 1
 		stim['act'] = 10
 	elseif $ARGS[0] = 'massage_give':
+		pcs_sweat += rand(3,6)*max(1,stim_time/5)
 		count['massage_give'] = 1
 		stim['act'] = 10
 	elseif $ARGS[0] = 'foreplay_give':
 		count['foreplay_give'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'cuni_give':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
 		count['cuni_give'] = 1
 		stim['act'] = 30
 		stim_les = 1
@@ -501,12 +529,14 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		count['anal_fist_give'] = 1
 		stim['act'] = 30
 	elseif $ARGS[0] = 'anal_dildo_give':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
 		count['anal_dildo_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'anal_vibe_give':
 		count['anal_vibe_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'anal_strap_give':
+		pcs_sweat += rand(2,4)*max(1,stim_time/5)
 		count['anal_strap_give'] = 1
 		stim['act'] = 40
 	elseif $ARGS[0] = 'vaginal_finger_give':
@@ -522,10 +552,12 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 50
 		stim_les = 1
 	elseif $ARGS[0] = 'vaginal_dildo_give':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
 		count['vaginal_dildo_give'] = 1
 		stim['act'] = 60
 		stim_les = 1
 	elseif $ARGS[0] = 'vaginal_strap_give':
+		pcs_sweat += rand(2,4)*max(1,stim_time/5)
 		count['vaginal_strap_give'] = 1
 		stim['act'] = 70
 		stim_les = 1
@@ -534,6 +566,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 60
 		stim_les = 1
 	elseif $ARGS[0] = 'hj':
+		pcs_sweat += rand(0,3)*max(1,stim_time/5)
 		if temp_unaware = 1:
 			count['hidden_hj'] = 1
 		else
@@ -541,18 +574,56 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		stim['act'] = 25
 	elseif $ARGS[0] = 'bj':
+		pcs_sweat += rand(0,1)*max(1,stim_time/5)
 		if temp_unaware = 1:
 			count['hidden_bj'] = 1
 		else
 			count['bj'] = 1
 		end
 		stim['act'] = 45
-		if temp_dick > pcs_throat: pcs_throat += 1
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'mouth', 'stretch'
+		if pcs_lipbalm > 0:
+			pcs_lipbalm = max(0, pcs_lipbalm - 1*max(1,stim_time/5))
+			if arrpos('$ARGS', 'rape') >= 0 _ 
+			or arrpos('$ARGS', 'rough') >= 0 _ 
+			or arrpos('$ARGS', 'gangbang') >= 0 _ 
+			or arrpos('$ARGS', 'beast') >= 0:
+				pcs_lipbalm = max(0, pcs_lipbalm - 1*max(1,stim_time/5))
+			end
+		end
+		if arrpos('$ARGS', 'deepthroat') >= 0:
+			dynamic $get_hole_pain, pcs_throat, pcs_hydra/10, pain['throat'], temp_dick, grange, temp_silavag
+			stim['act'] = 80 - ltdif + grdif + temp_silavag*8
+			gs 'pain', grdif + ltdif, 'throat', 'stretch'
+			gs 'pain', grdif, 'jaw', 'stretch'
+			if pcs_throat < temp_dick:pcs_throat += 1
+			if pcs_throat*2 < temp_dick:pcs_throat += 1
+		end
+		if pcs_throat*3 < temp_dick:pcs_throat += 1
 	elseif $ARGS[0] = 'dildo_suck':
 		count['dildo_suck'] = 1
 		stim['act'] = 30
-		if temp_dick > pcs_throat: pcs_throat += 1
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'mouth', 'stretch'
+		if pcs_lipbalm > 0:
+			pcs_lipbalm = max(0, pcs_lipbalm - 1*max(1,stim_time/5))
+			if arrpos('$ARGS', 'rape') >= 0 _ 
+			or arrpos('$ARGS', 'rough') >= 0 _ 
+			or arrpos('$ARGS', 'gangbang') >= 0 _ 
+			or arrpos('$ARGS', 'beast') >= 0:
+				pcs_lipbalm = max(0, pcs_lipbalm - 1*max(1,stim_time/5))
+			end
+		end
+		if arrpos('$ARGS', 'deepthroat') >= 0:
+			dynamic $get_hole_pain, pcs_throat, pcs_hydra/10, pain['throat'], temp_dick, grange, temp_silavag
+			stim['act'] = 80 - ltdif + grdif + temp_silavag*8
+			gs 'pain', grdif + ltdif, 'throat', 'stretch'
+			gs 'pain', grdif, 'jaw', 'stretch'
+			if pcs_throat < temp_dick:pcs_throat += 1
+			if pcs_throat*2 < temp_dick:pcs_throat += 1
+		end
+		if pcs_throat*3 < temp_dick:pcs_throat += 1
 	elseif $ARGS[0] = 'footjob':
+		pcs_sweat += rand(0,2)*max(1,stim_time/5)
 		if temp_unaware = 1:
 			count['hidden_footjob'] = 1
 		else
@@ -561,6 +632,7 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		stim['act'] = 25
 		stim_foot = 1
 	elseif $ARGS[0] = 'titjob':
+		pcs_sweat += rand(3,5)*max(1,stim_time/5)
 		if temp_unaware = 1:
 			count['hidden_titjob'] = 1
 		else
@@ -568,12 +640,15 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 		end
 		stim['act'] = 45
 		stim_titjob = 1
+		if pain_coeff > 0:gs 'pain', rand(pain_coeff), 'breasts', 'pull'
 	elseif $ARGS[0] = 'BDSM_give':
+		pcs_sweat += rand(0,3)*max(1,stim_time/5)
 		count['BDSM_give'] = 1
 		stim['act'] = 20
 	elseif $ARGS[0] = 'pee_give':
 		count['pee_give'] = 1
 		stim['act'] = 10
+		last_pee = totminut
 	end
 
 	!! anal acts
@@ -582,8 +657,48 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 			stim['act'] += 20
 		end
 	end
-
-
+	
+	if pcs_hairbsh >= 0:
+		if arrpos('$ARGS', 'rape') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>30,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'rough') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>40,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'gangbang') >= 0:      pcs_hairbsh = iif(rand(30, pcs_hairlng)>50,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'group') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>70,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'BDSM') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>80,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'beast') >= 0:         pcs_hairbsh = iif(rand(30, pcs_hairlng)>100,-1,pcs_hairbsh)
+		if arrpos('$ARGS', 'maso') >= 0:          pcs_hairbsh = iif(rand(30, pcs_hairlng)>125,rand(-1,0),pcs_hairbsh)
+		if arrpos('$ARGS', 'prostitution') >= 0:  pcs_hairbsh = iif(rand(30, pcs_hairlng)>150,rand(-1,0),pcs_hairbsh)
+		if arrpos('$ARGS', 'unknown') >= 0:       pcs_hairbsh = iif(rand(30, pcs_hairlng)>200,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'anal') >= 0 _ 
+		or arrpos('$ARGS', 'anal_strap') >= 0:    pcs_hairbsh = iif(rand(30, pcs_hairlng)>220,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if arrpos('$ARGS', 'vaginal') >= 0 _ 
+		or arrpos('$ARGS', 'vaginal_strap') >= 0: pcs_hairbsh = iif(rand(30, pcs_hairlng)>240,rand(-1,pcs_hairbsh),pcs_hairbsh)
+		if pcs_hairbsh > 0:
+			if arrpos('$ARGS', 'bound') >= 0:     pcs_hairbsh = iif(rand(30, pcs_hairlng)>270,rand(0,pcs_hairbsh),pcs_hairbsh)
+			if arrpos('$ARGS', 'sub') >= 0:       pcs_hairbsh = iif(rand(30, pcs_hairlng)>300,rand(0,pcs_hairbsh),pcs_hairbsh)
+		end
+	end
+	if pcs_makeup > 1:
+		if arrpos('$ARGS', 'rape') >= 0:                  pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<7,0,pcs_makeup)
+		if arrpos('$ARGS', 'rough') >= 0:                 pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+		if arrpos('$ARGS', 'gangbang') >= 0:              pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+		if arrpos('$ARGS', 'beast') >= 0:                 pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+		if arrpos('$ARGS', 'bj') >= 0 or arrpos('$ARGS', 'deepthroat') >= 0:
+			if arrpos('$ARGS', 'group') >= 0:             pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+			if arrpos('$ARGS', 'BDSM') >= 0:              pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+			if arrpos('$ARGS', 'deepthroat') >= 0:
+				if arrpos('$ARGS', 'maso') >= 0:          pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,0,pcs_makeup)
+				if arrpos('$ARGS', 'prostitution') >= 0:  pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+				if arrpos('$ARGS', 'unknown') >= 0:       pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<4,0,pcs_makeup)
+				if arrpos('$ARGS', 'bound') >= 0:         pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+				if arrpos('$ARGS', 'sub') >= 0:           pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<5,0,pcs_makeup)
+			end
+		end
+		if pcs_makeup > 1:
+			if (arrpos('$ARGS', 'bj') >= 0 _ 
+			or arrpos('$ARGS', 'cuni_give') >= 0):        pcs_makeup = iif(rand(pcs_makeup, pcs_makupskl/10)<3,rand(0,1),pcs_makeup)
+		end
+	end
+	
 	if stim['mag'] > 9: stim['mag'] = 9
 
 	if ARGS[1] > 0: minut += ARGS[1]
@@ -856,7 +971,11 @@ if $ARGS[0] ! 'end' and $ARGS[0] ! 'checks' and $ARGS[0] ! 'count' and $ARGS[0]
 	killvar '$orgasm_txt'
 	killvar '$stim_les'
 	killvar '$stim_foot'
-	
+	killvar 'stim_time'
+	killvar 'pain_coeff'
+	killvar '$get_hole_pain'
+	killvar 'grdif' & killvar 'ltdif'
+
 	gs 'nichUtil','onArouse',$ARGS[0]
 	
 end
@@ -926,7 +1045,15 @@ if $ARGS[0] = 'end':
 		end
 		stat['anal_partners'] += 1
 	end
-	
+
+	if analplugout > 0:
+		if pain['asshole'] > 10:
+			gs 'dinsex', 'after_anal','no_plug'
+		else
+			gs 'dinsex', 'after_anal','pc'
+		end
+	end
+
 	killvar 'anal_slip'
 	killvar 'ar_anal_lube'
 	killvar 'vaginal_slip'

+ 4 - 4
locations/backwater.qsrc

@@ -65,7 +65,7 @@ if $ARGS[0] = 'alone':
 			act 'Finish': gt 'backwater'
 		end
 	end
-	if cumloc[11] = 1 or cumloc[12] = 1:
+	if cumloc[11]+cumloc[12]+cumloc[16] > 0:
 		act 'Clean the sperm from your face (0:10)':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/hunters/backwaterswim1.jpg"></center>'
@@ -98,7 +98,7 @@ if $ARGS[0] = 'alone':
 			act 'Finish': gt 'backwater'
 		end
 	end
-	if cumloc[6] = 1 or cumloc[7] = 1:
+	if cumloc[2]+cumloc[5]+cumloc[6]+cumloc[7] > 0:
 		act 'Wipe the cum off your clothes (0:10)':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/locations/gadukino/hunters/cumwash.jpg"></center>'
@@ -113,11 +113,11 @@ if $ARGS[0] = 'alone':
 			act 'Finish':gt 'backwater'
 		end
 	end
-	if spdirty > 0:
+	if cumsumbod-cumsumvag-cumsumass > 0 or pcs_sweat > 20:
 		act 'Quick wash (0:15)':
 			*clr & cla
 			'<center><img <<$set_imgh>> src="images/pc/activities/facewash.jpg"></center>'
-			*nl 'You carefully wash your face, removing any impurities.'
+			*nl 'You carefully wash your body, removing any impurities.'
 			menu_off = 1
 			cumspclnt = 4
 			gs 'cum_cleanup'

+ 9 - 5
locations/ballet_npc.qsrc

@@ -20,7 +20,7 @@ hotcat_rating['A<<npctemp>>'] = 8
 !! mod appearance NPC settings, height in cm, weight in kg
 $npc_haircolour['A<<npctemp>>'] = 'blonde'
 $npc_eyecolour['A<<npctemp>>'] = 'blue'
-$npc_height['A<<npctemp>>'] = 170
+$npc_height['A<<npctemp>>'] = 160
 $npc_weight['A<<npctemp>>'] = 50 
 
 !! NPC Temp: 3502 - Kima
@@ -83,12 +83,16 @@ $npc_nickname['A<<npctemp>>'] = 'Bronya '
 $npc_lastname['A<<npctemp>>'] = 'Volkova'
 $npc_usedname['A<<npctemp>>'] = 'Bronya'
 
-!! NPC temp: 3514 - Physio - 
+!! NPC temp: 3514 - Physio - Pelageya Makarova
  
-!! Make up teacher: No name, the teacher never bothers to tell the class after a week. Former stage make up artist, beautician and scatterbrained.
+!! Make up teacher: Rada Egorova, the teacher never bothers to tell the class after a week. Former stage make up artist, beautician and scatterbrained.
+
+!! Staff Physio -  Syuzanna Zakharova / Klavdii Frolov (Klavdii is a pun)
+!! Mistress of Ballet - Zarya Popova
+
+!! Names f: Boleslava Grigoreva, Esfir Mikhaylova, Gavriila Makarova (warrior),Yustina Vinogradova
+!! Names m: Ipatiy Novikov, Venedikt Sorokin, Ony Volkov, Kazimir Sokolov
 
-!! Staff Physio - TBC
-!! Mistress of Ballet - TBC
 --- ballet_npc ---------------------------------
 
 

+ 277 - 32
locations/ballet_secrets.qsrc

@@ -1,74 +1,319 @@
 # ballet_secrets
-
 !! Author: Hooded Silence
-!! A dance shop which includes ballet, gymnastics and physio-therapy sources. Alternative path to ballet career in second year and first.
+!! Date Created: Nov, 2023
+!! Version: .01
+!! Author: Hooded Silence
+!! A dance shop which includes ballet, gymnastics and physio-therapy sources. Alternative path to ballet or dance career in second year and first.
 !! TBC - NPCs to be created
 
+$default_img_path = 'locations/pushkin/ballet_secrets/'
+
 if $ARGS[0] = 'init':
   *clr & cla
   gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
   $location_type = 'public_indoors'
   $setloc['StageTitle'] = 'Ballet Secrets'
-  $setloc['StageImage'] =  'pushkin/ballet_secrets'
+  $setloc['StageImage'] =  '<<$default_img_path>>ballet-shop-window'
   $location_type = 'public_indoors'
   gs 'themes', 'indoors'
   gs 'core_library', 'stage_title'
+  minut += 5
+  gs 'stats'
+  if week < 7 and hour >= 9 and hour <= 17:
+    'You enter the shop and greeted by a riot of displays showcasing ballet and other dance equipment. A woman is sewing something in the corner and glances at you before continuing.'
+    if balletqw['ballet_secrets'] = 1:
+      act 'Approach the woman': gt $loc, 'first_visit'
+    else
+      act 'Enter studio area': gt $loc, 'reception'
+      !! act 'Talk to assistant':
+      !! act'Look at equipment'
+      !! act 'look at dance wear'
+      act 'Leave shop': gt 'pushkin_sq'
+    end
+  else
+    'You look at the shop window and realise it''s closed, there is a security door to the left of you that allows you access the studio areas if you are a member.'
+    if balletqw['membership'] >= daystart:
+      act 'Swipe membership card': gt $loc, 'membership'
+    end
+  end
 
 end
 
 !! Intro
 
 if $ARGS[0] = 'first_visit':
+  balletqw['ballet_secrets_visit'] = 1
+  balletqw['shoe_order'] = daystart + 14
+  $setloc['StageImage'] =  '<<$default_img_path>>ballet_secrets_fitting_1'
+  minut += 60
+  gs 'core_library', 'stage_title'
+  gs 'stats'
+
+  'You are greeted by a middle aged woman. "Hello, how may I help you?" She askes politely.'
+  '"Hello, I am <<$pcs_firstname>> <<$pcs_lastname>>. I am part of the ballet school intake." you give her a smile and hand over the schools letter as proof.'
+  'The woman smiles warmly, "Ah you are the new students for this year?" she claps her hands and then takes yours, "Come, come we must measure your feet and order your shoes"'
+  'Before you say anything she''s dragging you through the shop towards the back we are are greeted by a wall of shoes and there is pictures on the wall signed by dancers with shoes next to them. You look at the woman.'
+  '"Yes, they are all dancers who are or have been clients of our establishment", she noticed your gaze and explains with pride."We will only provide the best for the school."'
+  !! Set up gate for sponsored or not, not implemented system needs to be added to the end of year assessment.
+  '"But where are my manners I am Darya Pushkina, I am the owner of this shop and facilies" she exclaims, "now to your fitting grabbing a tape measure and fitting tools for your feet"'
+  'For the next hour Madam Pushkina bombards you with questions of whether you want leather or cotton fabric, how many satin shoes and a myriad other questions before she finally relents.'
+  '"Of course as you are aware the school is sponsoring these costs, but only for the first year she says and you will need to manage your own equipment after this.", Madame Pushkina advises.'
+  '"Is there anything else you neeed? No? Good, I will see you again in two weeks for your final shoe fitting. I would like to extend my congratulations and wish you a successful career Ms. <<$pcs_lastname>>."'
+  act 'Leave': gt 'pushkin_sq'
+  act 'Return to shop': gt $loc, 'init'
+  
+
 end
 !! Services
-  !! Gymnastics
-  if $ARGS[0] = 'gymnastics':
-    gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
-    $location_type = 'public_indoors'
-    $setloc['StageTitle'] = 'Ballet Secrets - Gymnastics Class'
-    $setloc['StageImage'] =  'pushkin/ballet_secrets'
-    $location_type = 'public_indoors'
-    gs 'themes', 'indoors'
-    gs 'core_library', 'stage_title'
+
+!! Sports Area - Req Membership card
+
+if $ARGS[0] = 'reception':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Ballet Secrets - Reception'
+  $setloc['StageImage'] =  '<<$default_img_path>>reception'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+  minut += 5
+  gs 'stats'
+  'As you enter you are greeted warmly by the gym staff. The gym has an industrial feel reflecting the buildng being converted from an old factory.'
+
+  'There is a <a href="exec: gt ''food'', ''watercooler''">drinking fountain</a> near the doors to the gym hall to refill your water bottle.'
+ 
+
+  act 'Return to shop': gt $loc, 'init'
+  act 'Changing rooms': gt $loc, 'changing_room'
+  !! if membership not active:
+  if balletqw['membership'] = 0 or balletqw['membership'] < daystart:
+    act 'Discuss membership': gt $loc, 'enrol'
+  elseif hour <= 15 and $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and pcs_stam >= stammax / 5 and pcs_energy >= 20:
+    !! link to services:
+    !! if membership active
+    !! act 'Attend Physio': gt $loc, 'physio'
+    !! act 'Attend a gymnastics class.': gt $loc, 'gymnastics_courses'
+    !! act 'Attend a dance class': gt $loc, 'ballet_courses'
+    act 'Attend a yoga class': gt $loc, 'yoga_courses'
+  elseif hour >= 16:
+    'All the evening classes have started today, you need to be here before 16:00 to ensure you can attend.'
   end
-  !! Ballet Courses Easy, Intermediate and advanced
-  if $ARGS[0] = 'ballet_courses':
-    gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
-    $location_type = 'public_indoors'
-    $setloc['StageTitle'] = 'Ballet Secrets - Courses'
-    $setloc['StageImage'] =  'pushkin/ballet_secrets'
-    $location_type = 'public_indoors'
-    gs 'themes', 'indoors'
-    gs 'core_library', 'stage_title'
+end
+if $ARGS[0]= 'enrol':
+  
+	$epayments['method'] = ''
+	$epayments['item_variable'] = ''
+	$epayments['description'] = 'gym facilities access'
+	$epayments['loc'] = 'ballet_secrets'
+	$epayments['loc_arg'] = 'reception'
+	$epayments['banner']= 'locations/<<$default_img_path>>reception.jpg'
+  gs 'core_library', 'stage_title'
+  minut += 30
+  gs 'stats'
+
+  if balletqw['membership'] = 0:
+    'You approach the reception to discuss membership to the gym.'
+  elseif balletqw['membership'] ! 0:
+    'You approach the reception to renew your membership.'
   end
-  !! Physiotherapy
-  if $ARGS[0] = 'physio':
-    gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
-    $location_type = 'public_indoors'
-    $setloc['StageTitle'] = 'Ballet Secrets - Physio'
-    $setloc['StageImage'] =  'pushkin/ballet_secrets'
-    $location_type = 'public_indoors'
-    gs 'themes', 'indoors'
-    gs 'core_library', 'stage_title'
+  act 'Return to the studio entrance': gt $loc, 'reception'
+
+  'The gym offers a weekly or monthly subscription for of 1,500<b> ₽</b>  or 5,000<b> ₽</b> respectively to use the facilities with some courses included. Physio appointments are charged seperately.'
+  'The subscriptions includes classes in gymnastics, yoga and introductory ballet. For advanced classes there is an additional instructor charge. A physical trainer is on hand to assist at all times if you so need one.'
+  'We also have a small café which attracts a members discount and your membership card can purchase items directly from the vending machine which will be billed to your account.'
+
+  if money >= 5000 or karta + bankDebtLimit >= 5000:
+    '<td> <a href="exec: epayments[''value''] = 5000 & balletqw[''membership''] = daystart + 30  & gs ''shortgs'',''payments'' ">Purchase a monthly subscription for 5,000<b> ₽</b></a></td>'
   end
+  if money >= 1500 or karta + bankDebtLimit >= 1500:
+    '<td> <a href="exec: epayments[''value''] = 1500 & balletqw[''membership''] = daystart + 7  & gs ''shortgs'',''payments'' ">Purchase a weekly subscription for 1,500<b> ₽</b></a></td>'
+	end
+end
+
+if $ARGS[0] = 'changing_room':
+  menu_off = 0
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+	$location_type = 'private'
+	$locclass = 'changingroom'
+  gs 'themes', 'indoors'
+  minut += 5
+  gs 'stats'
+  '<center><h2>Changing Room</h2></center>'
+	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/gym/locker.jpg"></center>'
+
+  act 'Return to the studio reception': gt $loc, 'reception'
+  if mc_inventory['shampoo'] > 0:
+		act 'Take a shower (0:15)':
+			cla
+			*clr
+			menu_off = 1
+			minut += 15
+			pcs_horny += 1
+			pcs_hairbsh = 0
+			pcs_makeup = 1
+			if pcs_inhib < 15:inhib_exp += rand(1,2)
+			dynamic $showerdin
+			'<center><video autoplay loop src="images/shared/home/bathroom/dush.mp4"></video></center>'
+			'You go into the bathroom and turn on the shower. You lather your body and wash in the shower.'
+			if deodorant_on = 1: gs 'sweat', 'remove_deo' & '<br>Your deodorant gets washed away in the shower.'
+
+			act 'Get out of the shower':gt $loc, 'changing_room'
+
+		end
+	else
+		'<font color="red">You''ve run out of shampoo and will have to buy some more before you can wash yourself.</font>'
+	end
+
+	act 'Use mirror':
+		cla
+		gt 'mirror', 'start'
+	end
+
+	act 'Change outfit':
+		cla
+		gt 'wardrobe', 'start'
+	end
+
+	gs 'wardrobe', 'default_sport_options'
+
+  if mc_inventory['deodorant'] > 0 and deodorant_on = 0:
+		'Your deodorant will last you for <b><<mc_inventory[''deodorant'']>></b> more '+iif(mc_inventory['deodorant'] =  1, 'application.', 'applications.')
+		act 'Apply deodorant (0:01)':
+			*clr & cla
+			menu_off = 1
+			minut += 1
+			mc_inventory['deodorant'] -=  1
+			gs 'sweat', 'deo'
+			iif(func('body_din','pregnancyVisibility') = 1, '<center><img <<$set_imgh>> src="images/shared/home/bathroom/deodorant_preg.jpg"></center>', '<center><img <<$set_imgh>> src="images/shared/home/bathroom/deodorant.jpg"></center>')
+			'You apply deodorant to your armpits. It will keep you feeling fresh and clean for longer.'
+			act 'Continue': menu_off = 0 & gt $loc, $loc_arg
+		end
+	end
+	dynamic $tampon
+  
+end
+
+!! Physiotherapy
+if $ARGS[0] = 'physio':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Ballet Secrets - Physio'
+  $setloc['StageImage'] =  '<<$default_img_path>>physio'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+
+  !! write attendance spiel 
+  act 'Leave': gt 'pushkin_sq'
+end
+
+!! Gymnastics
+
+if $ARGS[0] = 'gymnastics_courses':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Ballet Secrets - Gymnastics Class'
+  $setloc['StageImage'] =  '<<$default_img_path>>gymnastics'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+
+  !! write attendance spiel and some random reactions for post-exercise such that was a great workout, you didn''t feel you did well today
+  act 'Leave': gt 'pushkin_sq'
+end
+
+!! Ballet Courses Easy, Intermediate and advanced
+if $ARGS[0] = 'ballet_courses':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Ballet Secrets - Courses'
+  $setloc['StageImage'] =  '<<$default_img_path>>ballet_class'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+end
+
+  !! Gymnastics
+
+if $ARGS[0] = 'yoga_courses':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Ballet Secrets - Yoga Class'
+  $setloc['StageImage'] =  '<<$default_img_path>>yoga_class'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+  minut += 5
+  gs 'stats'
+  if balletqw['yoga_session'] ! daystart:
+    act 'Attend Yoga Class':
+      cla
+      balletqw['yoga_session'] = daystart
+      lesson_tier = rand(1,3)
+      if lesson_tier = 1:
+        gs 'exercise', 'tier1', 60, 'sprt', 'agil'
+      'You spend sixty minutes in an easy going class today, leaving you feeling refreshed and ready to face the world again.'
+      elseif lesson_tier = 2:
+        'You spend sixty minutes with your instructor today correcting your poses and providing advice on how you can improve, leaving you feeling tired and some muscle aches from the exercises.'
+        gs 'exercise', 'tier2', 60, 'sprt', 'agil'
+      else 
+        gs 'exercise', 'tier3', 60, 'sprt', 'agil', 'stren'
+        'Today''s sixty minutes was challenging with the instructor taking the class through some of the more demanding positions. Leaving many of your yoga buddies look more than a little bit ragged after todays session.'
+      end
+      pcs_willpwr += rand(1,lesson_tier)
+      !! Set minor pain to reflect exercising
+
+      gs 'pain', 2, 'legL', 'stretch'
+      gs 'pain', 2, 'legR', 'stretch'
+      gs 'pain', 2, 'shoulders', 'stretch'
+      gs 'pain', 2, 'armL', 'stretch'
+      gs 'pain', 2, 'armR', 'stretch'
+      gs 'pain', 2, 'back', 'stretch'
+      gs 'pain', 2, 'chest', 'stretch'
+
+      killvar 'lesson_tier'
+      act 'Return to the studio reception': gt $loc, 'reception'
+    end
+  else 
+    'There is another fitness class in progress and no more yoga sessions today.'
+  end
+  act 'Return to the studio reception': gt $loc, 'reception'
+end 
+
 !! Shopping
 if $ARGS[0] = 'clothing':
   gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
   $location_type = 'public_indoors'
   $setloc['StageTitle'] = 'Ballet Secrets - Dancewear'
-  $setloc['StageImage'] =  'pushkin/ballet_secrets'
+  $setloc['StageImage'] =  '<<$default_img_path>>sports_shop'
   $location_type = 'public_indoors'
   gs 'themes', 'indoors'
   gs 'core_library', 'stage_title'
+  act 'Leave': gt 'pushkin_sq'
 end
+
 !! Custom Tutus for quests/shows, ballet shoe fitting, clothing, physio items, portable ballet equipment (barre) etc.
 if $ARGS[0] = 'quest':
   gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
   $location_type = 'public_indoors'
   $setloc['StageTitle'] = 'Ballet Secrets'
-  $setloc['StageImage'] =  'pushkin/ballet_secrets'
+  $setloc['StageImage'] =  '<<$default_img_path>>quest'
   $location_type = 'public_indoors'
   gs 'themes', 'indoors'
   gs 'core_library', 'stage_title'
+  act 'Leave': gt 'pushkin_sq'
+end
+
+if $ARGS[0] = 'food':
+  gs 'shortgs', 'setloc', 'ballet_secrets', $ARGS[0] 
+  $location_type = 'public_indoors'
+  $setloc['StageTitle'] = 'Food Court'
+  $setloc['StageImage'] =  '<<$default_img_path>>food_court'
+  $location_type = 'public_indoors'
+  gs 'themes', 'indoors'
+  gs 'core_library', 'stage_title'
+
+  'There is a small area set aside for vending machines to provide drinks and food. '
+  act 'Leave': gt 'pushkin_sq'
 end
 --- ballet_secrets ---------------------------------

+ 1 - 0
locations/barbershop.qsrc

@@ -158,6 +158,7 @@ elseif barbershop_wrk = 1 and barbershop_wrk_day ! daystart:
 		menu_off = 1
 		minut += 60
 		money += 125
+		gs 'exp_gain', 'cleaning', rand(1,2)
 		barbershop_wrk_day = daystart
 		gs 'stat'
 		'You work diligently and fast. You clean the floor, take out the trash, dust off the shelves and wipe some mirrors and windows. Before you know an hour has passed and you''re 125 <b>₽</b> richer.'

+ 1 - 1
locations/bed_events.qsrc

@@ -148,7 +148,7 @@ if $ARGS[0] = 'rab2':
 	act 'Suck it':
 		*clr & cla
 
-		if analplugIN = 1: analplugIN = 0
+		if analplugIN = 1: analplugIN = 0 & analplugout = 1
 		if pcs_makeup ! 1 and cosmetic_tattoo = 0: pcs_makeup = 0
 
 		'<center><img <<$set_imgh>> src="images/characters/city/nicholas/sex/r1.jpg"></center>'

+ 0 - 1
locations/bed_get_out.qsrc

@@ -3,7 +3,6 @@
 
 if $ARGS[0] = 'start' or $ARGS[0] = '':
 	menu_off = 1
-	minut -= 1
 	InSleep = 0
 	sleepVars['slept_in'] = 0
 	strip_here = 0

+ 1 - 1
locations/bedr.qsrc

@@ -131,8 +131,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 			husbanstrapon = 1
 			minut += 10
 			'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h0.jpg"></center>'
-			if analplugin = 1: 'You pull the plug out of you and shove it up his ass.'
 			if analplugin = 0: 'You take an anal plug and put it into his ass.'
+			if analplugin = 1: analplugIN = 0 & analplugout = 0 & 'You pull the plug out of you and shove it up his ass.'
 
 			'<<$husName>> moves, but he doesn''t wake up.'
 

+ 1 - 1
locations/bedr2x.qsrc

@@ -121,8 +121,8 @@ if husbandrink = 10 and hour > 20 and hour < 23 and husbanstrapon = 0:
 			husbanstrapon = 1
 			minut += 10
 			'<center><img <<$set_imgh>> src="images/characters/city/husband/sex/h0.jpg"></center>'
-			if analplugin = 1: 'You get your butt plug out and pull down his pants. You put just a dab of lube on the tip of the plug, then gently insert it into his ass.'
 			if analplugin = 0: 'You take an anal plug and put it into his ass.'
+			if analplugin = 1: analplugIN = 0 & analplugout = 0 & 'You get your butt plug out and pull down his pants. You put just a dab of lube on the tip of the plug, then gently insert it into his ass.'
 			'<<$husName>> moves, but he doesn''t wake up.'
 
 			if mc_inventory['dildo_small'] > 0:

+ 18 - 14
locations/begin.qsrc

@@ -12,10 +12,10 @@ if $ARGS[0] = 'start':
 
 	settingmode = 0
 	$checkimg = {
-		if $ARGS[0]=$ARGS[1]:
+		if $ARGS[0]=$ARGS[2] and $ARGS[1]=$ARGS[3]:
 			$result = '<TD><center><img src="images/system/icons/check.png" height="50"></center></TD>'
 		else
-			$result = '<TD><center><a href="exec:$start_type = ''<<$ARGS[1]>>'' & gt ''begin'',''start''"><img src="images/system/icons/uncheck.png" height="50"></a></center></TD>'
+			$result = '<TD><center><a href="exec:$start_type[''loc''] = ''<<$ARGS[2]>>'' & $start_type[''magic''] = ''<<$ARGS[3]>>'' & gt ''begin'',''start''"><img src="images/system/icons/uncheck.png" height="50"></a></center></TD>'
 		end
 	}
 	gs 'Cheatmenu_din'
@@ -40,30 +40,34 @@ if $ARGS[0] = 'start':
 
 	$start_text = '<TR><TD><p align="center">School</p></TD>'
 
-	$start_text += $dyneval($checkimg,$start_type,'sg')
-	$start_text += $dyneval($checkimg,$start_type,'sg_m')
-	$start_text += $dyneval($checkimg,$start_type,'sg_tg')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'sg', 'nomagic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'sg', 'magic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'sg', 'tg')
 
 	$start_text += '<TR><TD><p align="center">City</p></TD>'
 
-	$start_text += $dyneval($checkimg,$start_type,'city')
-	$start_text += $dyneval($checkimg,$start_type,'city_m')
-	$start_text += $dyneval($checkimg,$start_type,'city_tg')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'city', 'nomagic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'city', 'magic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'city', 'tg')
 
 	$start_text += '<TR><TD><p align="center">University</p></TD>'
 
-	$start_text += $dyneval($checkimg,$start_type,'uni')
-	$start_text += $dyneval($checkimg,$start_type,'uni_m')
-	$start_text += $dyneval($checkimg,$start_type,'uni_tg')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'uni', 'nomagic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'uni', 'magic')
+	$start_text += $dyneval($checkimg, $start_type['loc'], $start_type['magic'], 'uni', 'tg')
 
 	$start_text
 
 	'</table></center>'
 
-	if $start_type = 'sg' or $start_type = 'sg_m':
+	if $start_type['loc'] = 'sg' and $start_type['magic'] ! 'tg':
 		act '<center><b>Start</b></center>': gt 'intro_sg', 'start'
-	elseif $start_type ! '':
-		act '<center><b>Start</b></center>': gt 'intro_'+$start_type, 'start'
+	elseif $start_type['magic'] = 'nomagic':
+		act '<center><b>Start</b></center>': gt 'intro_' + $start_type['loc'], 'start'
+	elseif $start_type['magic'] = 'magic':
+		act '<center><b>Start</b></center>': gt 'intro_' + $start_type['loc'] + '_m', 'start'
+	elseif $start_type['magic'] = 'tg':
+		act '<center><b>Start</b></center>': gt 'intro_' + $start_type['loc'] + '_tg', 'start'
 	end
 
 	act '<center><b>Change game settings</b></center>': settingmode = 1 & gs '$menu_setting'

+ 4 - 3
locations/body.qsrc

@@ -838,6 +838,7 @@ if $ARGS[0] = 'softreset':
 	end
 
 	!!Updates pcs_apprncbase after a reset
+	gs 'body', 'UpdateBodyMeasurement'
 	gs 'body', 'Update_Appearance'
 
 	!!Clears the warning and reset status flags if they were set
@@ -933,8 +934,8 @@ if $ARGS[0] = 'initial':
 		gs 'body', 'Set_mass_distribution_using_body', pcs_mass['body']
 	end
 
-	agilbuf = pcs_agil
 	strenbuf = pcs_stren
+	agilbuf  = pcs_agil
 	vitalbuf = pcs_vital
 
 	normbuffpick = -1
@@ -944,7 +945,8 @@ if $ARGS[0] = 'initial':
 	gs 'body', 'softreset'
 
 	!!	This sets/resets the controler variables
-	salocatlast = salocatnow
+	salocatnow = func('body', 'Calc_salocat')
+	salocatlast = salocatlast
 	normbuffpick = 0
 	magf2bdo = 0
 	killvar 'gamestartflag'
@@ -957,7 +959,6 @@ if $ARGS[0] = 'initial':
 	killvar 'temp_bmi'
 
 	gs 'body', 'UpdateBodyImage'
-	gs 'body_desc', 'BMI'
 end
 
 

+ 0 - 1
locations/body_desc.qsrc

@@ -1012,7 +1012,6 @@ if $ARGS[0] = 'hair':
 	if hbraids >= 1:
 		hscrunchw = 0
 		hpingripw = 0
-		hbangs = 0
 		hpigtail = 0
 	end
 

+ 8 - 8
locations/brothel.qsrc

@@ -333,7 +333,7 @@ if $ARGS[0] = 'abducted5':
 end
 
 if $ARGS[0] = 'abducted6':
-	analplugIN = 0
+	analplugIN = 0 & analplugout = 1
 	*nl
 	'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromass.mp4"></video></center>'
 	*nl
@@ -1641,7 +1641,7 @@ if $ARGS[0] = 'section1_pushplugout':
 	menu_off = 1
 	minut += 1
 	custTime += 1
-	analplugIN = 0
+	analplugIN = 0 & analplugout = 1
 	gs 'pain', 3, 'asshole', 'cramp'
 	gs 'stat'
 
@@ -1706,7 +1706,7 @@ if $ARGS[0] = 'section1_play_stretch':
 	  	gt 'brothel', 'section1_buttplug_stretch'
 	elseif stage = 5:
 	  	stage += 1
-	  	analplugIN = 0
+	  	analplugIN = 0 & analplugout = 1
 	  	gt 'brothel', 'section1_vagfisting'
 	elseif stage = 6:
 	  	stage += 1
@@ -2020,7 +2020,7 @@ if $ARGS[0] = 'section1_finish':
 					'The Client seems to disregard that, as he pounds your pussy even deeper...'
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 2, 'pussy', 'stretch'
 					gs 'stat'
 				else
@@ -2082,7 +2082,7 @@ if $ARGS[0] = 'section1_finish':
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
 					'The Client seems to disregard that, as he stretches your anus even more with his phallus... Or maybe he does it on purpose!'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 2, 'anus', 'stretch'
 					gs 'stat'
 				else
@@ -2102,7 +2102,7 @@ if $ARGS[0] = 'section1_finish':
 					'The Client seems to disregard that, as he stretches your anus even more with his phallus...'
 					'<font color=#<<$pcs_font>>>"Owwwwuuch! Pleaaase no, no, take it ouuuut! Maaaster, pleaaase!"</font>'
 					'Just as you say that the next pound of the Client''s dick pushes out the plug, which falls out down between your bound legs.'
-					analplugIN = 0
+					analplugIN = 0 & analplugout = 1
 					gs 'pain', 4, 'anus', 'stretch'
 					gs 'stat'
 				else
@@ -2249,7 +2249,7 @@ if $ARGS[0] = 'section1_end':
 			'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromass.mp4"></video></center>'
 			'With one hard pull he rips the plug out of your anus, causing your already abused anus additional pain!'
 			'<font color=#<<$pcs_font>>>"Ouuuuchhhhh! You moron, you didn''t even pay for this!"</font>'
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 1
 			gs 'pain', 3, 'asshole', 'stretch'
 			gs 'stat'
 			act 'Yell at him to untie you': gt 'brothel', 'section1_end'
@@ -2274,7 +2274,7 @@ if $ARGS[0] = 'section1_end':
 		'<center><video autoplay loop src="images/locations/shared/brothel/pullplugfromassyourself.mp4"></video></center>'
 		'<font color=#<<$pcs_font>>>Oww... Oww... Owwwch!</font> with a loud wet "pop" the plug finally goes out!'
 		step = 0
-		analplugIN = 0
+		analplugIN = 0 & analplugout = 1
 		gs 'pain', 4, 'asshole', 'stretch'
 		gs 'stat'
 		act 'Throw it away and leave': gt 'brothel', 'brothel_dressingroom', '1'

+ 39 - 32
locations/brother.qsrc

@@ -48,6 +48,11 @@ if npc_QW['A34'] > 20 and npc_QW['A34'] < 25: npc_QW['A34'] = 20
 !! npc_breastfeed_by_sveta['A34'] = 0 or 1 - Kolka was not/was breastfeed by sveta
 !! npc_tasted_sveta_milk['A34'] = 0 or 1 - Does Kolka know how svetas breast milk taste? 0 = no, 1 = yes
 
+if npc_pregtalk['A34'] = 0 and brother_pregreact <> 1 and ($ARGS[0] = 'start' or $ARGS[0] = 'showbody' or $ARGS[0] = 'kiss_talk' or $ARGS[0] = 'homework'):
+	gs 'brother', 'pregreact'
+	if brother_pregreact = 1: exit
+end
+if npc_pregtalk['A34'] = 1: killvar 'brother_pregreact'
 
 if $ARGS[0] = 'start':
 	menu_off = 1
@@ -214,7 +219,6 @@ if $ARGS[0] = 'start':
 	end
 
 	if $loc = 'sitrPar':
-		if npc_pregtalk['A34'] = 0: gs 'brother', 'pregreact'
 		gs 'brother', 'brotherSexCount'
 
 		if locat['Fam_inGad'] = 0 and $clothingworntype ! 'nude' and brothersawpirsF=0 and locat['Stepdad'] ! 10 and npc_rel['A34'] > 85 and hour >= 18 and hour < 23 and pirsF > 0:
@@ -282,7 +286,7 @@ if $ARGS[0] = 'start':
 
 		if locat['Fam_inGad'] = 0 and brotherSexCount > 0 and brotherDay = daystart:
 			brotherrand = rand(0,10)
-			if hour < 6:
+			if  hour < 6 or hour = 23:
 				'You look at your brother sleeping peacefully on the couch.'
 			elseif hour < 7 and brotherMorningSex ! daystart:
 				'You look at your brother sleeping peacefully on the couch.'
@@ -304,7 +308,7 @@ if $ARGS[0] = 'start':
 				'Your brother is playing video games.'
 			end
 
-			if hour >= 23 and brotherSex > 4 and brotherNightSex ! daystart and locat['Mother'] ! 19:
+			if hour > 0 and hour < 4 and brotherSex > 4 and brotherNightSex ! daystart and locat['Mother'] ! 19:
 				'As you approach your sleeping brother, he suddenly opens his eyes and looks at you.'
 				'He points to the mound under his blanket, "Sis, I can''t get any sleep, can you help?"'
 				cla
@@ -322,9 +326,7 @@ if $ARGS[0] = 'start':
 					act 'Leave':gt 'sitrPar'
 					exit
 				end
-			end
-
-			if locat['Stepdad'] ! 10 and hour >= 18 and hour < 23 and brotherSex > 4 and brotherEvSex ! daystart and locat['Mother'] ! 19:
+			elseif locat['Stepdad'] ! 10 and hour >= 18 and hour < 23 and brotherSex > 4 and brotherEvSex ! daystart and locat['Mother'] ! 19:
 				'When you get close, Kolka turns to you.'
 				'"Sis, I''ve got a problem," he points to the lump in his pants. "Can you help me solve it?"'
 				cla
@@ -1286,7 +1288,6 @@ if $ARGS[0] = 'brother_voyeur_ev6':
 	end
 end
 
-
 if $ARGS[0] = 'brother_voyeur_ev7':
 	*clr & cla
 	menu_off = 1
@@ -1498,37 +1499,48 @@ if $ARGS[0] = 'brother_voyeur_ev8':
 end
 
 if $ARGS[0] = 'pregreact':
+	if $loc = 'sitrPar':
+		if hour < 6: exit
+		if hour < 7 and brotherMorningSex ! daystart: exit
+		if hour >= 23: exit
+	end
+
+	*clr
+	brother_pregreact = 1
+	'<center><b><font color="maroon">Kolka</font></b></center>'
+	'<center><img <<$set_imgh>> src="images/characters/pavlovsk/school/boy/kolka/brother.jpg"></center>'
+
 	if knowpreg = 1 and kid = 0 and FUNC('body_din','pregnancyVisibility') = 1:
 		if $clothingworntype = 'nude' and brotherSex < 7:
+			cla
 			'Surprised, your brother looks at your stomach. "<<$pcs_nickname>>, are you pregnant? <<$npc_nickname[''A29'']>> and dad are going to be pissed!" After a moments pause he adds, "You do still look good, though."'
 			npc_pregtalk['A34'] = 1
 
 			act 'Continue' :gt 'sitrPar'
-		exit
-
+			exit
 		elseif $clothingworntype ! 'nude' and brotherSex < 7:
+			cla
 			'Surprised, your brother looks at your stomach, "<<$pcs_nickname>>, why didn''t you tell me I''m going to be an uncle?"'
 			npc_pregtalk['A34'] = 1
 
 			act 'Continue' :gt 'sitrPar'
 			exit
-
 		elseif brotherSex >= 7 and npc_pregtalk['A29'] = 0:
 			cla
 			'Surprised, your brother looks at your stomach, "Are you really pregnant? It... it''s not mine, is it?"'
-			*nl
 			if $wombthfathID = 'A34' and npc_rel['A34'] > 50:
-				act 'Yes (Happy)':gt 'brother', 'brotherknows1'
-				act 'Yes (Angry)':gt 'brother', 'brotherknows2'
+				act 'Yes (Happy)':gs 'brother', 'brotherknows1'
+				act 'Yes (Angry)':gs 'brother', 'brotherknows2'
 			elseif arrpos('$wombpotfath', 'A34') >= 0:
-				act 'Maybe (Happy)':gt 'brother', 'brotherknows3'
-				act 'Maybe (Angry)':gt 'brother', 'brotherknows4'
+				act 'Maybe (Happy)':gs 'brother', 'brotherknows3'
+				act 'Maybe (Angry)':gs 'brother', 'brotherknows4'
 			else
-				act 'No':gt 'brother', 'brotherknows5'
+				act 'No':gs 'brother', 'brotherknows5'
 			end
 			exit
 		end
 	elseif brotherSex < 7 and kid > 0 and FUNC('body_din','pregnancyVisibility') = 1:
+		cla
 		'"You''re already pregnant again? This is starting to look like a new hobby," he laughs.'
 		'"You know what? Maybe it is," you joke back. "Some girls play sports, I get serially impregnated."'
 		'Kolka pokes his tongue out at you, "Well, congratulations on taking home the gold in getting knocked up."'
@@ -1538,24 +1550,26 @@ if $ARGS[0] = 'pregreact':
 		'You leave your brother to what he was doing before, glad that the two of you have the relationship that you do.'
 
 		act 'Continue' :npc_pregtalk['A34'] = 1 & gt 'sitrPar'
+		exit
 	elseif brotherSex >= 7 and kid > 0 and npc_pregtalk['A29'] = 0 and FUNC('body_din','pregnancyVisibility') = 1:
 		cla
 		'Kolka looks at your stomach for moment before asking, "Wow, you''re pregnant again? Is it mine?"'
-		*nl
-
 		if arrpos('$wombpotfath', 'A34') >= 0:
-			act 'Maybe':gt 'brother', 'brotherknows7'
-			if $wombthfathID = 'A34' and npc_rel['A34'] > 50: act 'Yes':gt 'brother', 'brotherknows6'
+			act 'Maybe':gs 'brother', 'brotherknows7'
+			if $wombthfathID = 'A34' and npc_rel['A34'] > 50: act 'Yes':gs 'brother', 'brotherknows6'
 		else
-			act 'No':gt 'brother', 'brotherknows8'
+			act 'No':gs 'brother', 'brotherknows8'
 		end
+		exit
 	end
+
+	brother_pregreact = 0
+	*clr
 end
 
 if $ARGS[0] = 'brotherknows1':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 	'"Yeah, this baby is yours," you say, rubbing your belly. "And after it''s born, I might let you help me make another one," you add before giving your brother a kiss. You look down at him and notice a lump starting to form in his pants.'
 	'Kolka''s eyes suddenly go wide, "Wait! You''re not going to tell <<$npc_nickname[''A29'']>> I got you pregnant, are you?"'
 
@@ -1584,7 +1598,6 @@ end
 if $ARGS[0] = 'brotherknows2':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 	'"Yes, it is and you''re going to take responsibility. I am not going to be a single mother raising this child on my own."'
 	'Kolka stares at you in shock, "But I don''t know anything about raising a kid!"'
 	'"Well, you should have thought of that before knocking me up! You''re going to have to figure it out," your brother is clearly crestfallen as you walk away.'
@@ -1610,7 +1623,6 @@ end
 if $ARGS[0] = 'brotherknows3':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 	'"It could be, I''m still not sure yet. I just wanted to give you a heads up." You then add with a wink, "Honestly, I kind of hope it is."'
 	'"Me too," he states just a little too eagerly. He then quickly moves his lips to yours and you share a passionate kiss.'
 
@@ -1620,7 +1632,6 @@ end
 if $ARGS[0] = 'brotherknows4':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 	'"I''m still not sure," you say. "But if it is, you had better take responsibility."'
 	'Your brother rolls his eyes, "Then I really hope it''s someone else''s problem."'
 	'"Fuck off! If it''s yours then I''ll make sure you take responsibility!" You then storm away, leaving Kolka to stew.'
@@ -1631,7 +1642,6 @@ end
 if $ARGS[0] = 'brotherknows5':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 	'"No, you got lucky this time. It''s actually <<$wombthfath>>''s," you tell him. "I just wanted to share the news with my little brother."'
 	'"Oh, well congratulations!" He tries to sound happy, but you detect a note of disappointment in his voice.'
 
@@ -1641,7 +1651,6 @@ end
 !Once pregnancy fetish is added, these will be expanded
 if $ARGS[0] = 'brotherknows6':
 	npc_pregtalk['A34'] = 1
-	*nl
 	if arrpos('$ChildThFath','A34') >= 0 and BrotherHappy = 1:
 		cla
 		'"Yeah, you knocked me up again," you smile at him. "I think you''re doing this on purpose." You walk closer to your brother and straddle his lap. You affectionately wrap your arms around his neck and lean your face close to his, "You like knocking up your sister, don''t you? You just love that this belly shows the whole world that I let my own brother fuck me, huh?"'
@@ -1727,7 +1736,6 @@ end
 if $ARGS[0] = 'brotherknows7':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
 !! $ChildThFath gets applied in labor so it is relatively good way to check if you think you already have babies with somebody
 	if arrpos('$ChildThFath','A34') >= 0 and BrotherHappy = 1:
 		'"It could be, I''m still not sure yet. I just wanted to give you a heads up." You then add with a wink, "Honestly, I''m kind of hoping it is. I would love to be carrying another one of my brother''s children."'
@@ -1749,14 +1757,13 @@ end
 if $ARGS[0] = 'brotherknows8':
 	cla
 	npc_pregtalk['A34'] = 1
-	*nl
-	if $wombthfathID ! 'A34' and arrpos('$ChildThFath','A34') >= 0 and $wombthfathID ! 'unknown':
+	if $wombthfathID ! 'A34' and arrpos('$ChildThFath','A34') >= 0 and $wombthfathID ! 'unknown' and $wombthfathID ! '':
 		'"Not this time. It''s actually <<$wombthfath>>''s. Why, were you hoping you''d give me more children? Sorry, but this body is just too good to limit myself to one man, even if that man is my cute younger brother," you giggle.'
 		'Kolka licks his lips, "Well, you do have a great body, so I''ll concede that point."'
 		'"You know I love you, but please don''t take this as an invitation to try to get me pregnant again. I don''t know if I''m ready for more kids." Your brother nods, clearly disappointed. "Hey, you can still fuck me, you just have to be careful."'
 
 		act 'Continue' :gt 'sitrPar'
-	elseif $wombthfathID ! 'A34' and arrpos('$ChildThFath','A34') < 0 and $wombthfathID ! 'unknown':
+	elseif $wombthfathID ! 'A34' and arrpos('$ChildThFath','A34') < 0 and $wombthfathID ! 'unknown' and $wombthfathID ! '':
 		'You shake your head, "No, not this time either. It''s actually <<$wombthfath>>''s."'
 		'"Oh, congratulations again, then." You still catch disappointment in his voice.'
 		'You question him, "You weren''t trying to get me pregnant, were you?"'
@@ -1767,7 +1774,7 @@ if $ARGS[0] = 'brotherknows8':
 	else
 	!! Somebody with writing skills should add flavor.
 		'No, it is not.'
-		if $wombthfathID = 'unknown':
+		if $wombthfathID = 'unknown' or $wombthfathID = '':
 			'I actually have no idea whose this one is.'
 		end
 

+ 11 - 11
locations/budgetclothes.qsrc

@@ -102,7 +102,7 @@ if $ARGS[0] = 'clothes':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_outfits'
+	gs 'clothing', 'totals', 'gm_outfits'
 
 	act 'Return':
 		cla
@@ -167,7 +167,7 @@ if $ARGS[0] = 'dresses':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_dress'
+	gs 'clothing', 'totals', 'gm_dress'
 
 	act 'Return':
 		cla
@@ -200,7 +200,7 @@ if $ARGS[0] = 'dresses':
 				end
 			end
 			i += 3
-		if i <= 300:jump 'loopgm_dress'
+		if i <= total:jump 'loopgm_dress'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:
@@ -233,7 +233,7 @@ if $ARGS[0] = 'office':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_office'
+	gs 'clothing', 'totals', 'gm_office'
 
 	act 'Return':
 		cla
@@ -258,7 +258,7 @@ if $ARGS[0] = 'office':
 				end
 			end
 			i += 1
-		if i <= 40:jump 'loopoffice'
+		if i <= total:jump 'loopoffice'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:
@@ -291,7 +291,7 @@ if $ARGS[0] = 'gm_maid':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_maid'
+	gs 'clothing', 'totals', 'gm_maid'
 
 	act 'Return':
 		cla
@@ -320,7 +320,7 @@ if $ARGS[0] = 'gm_maid':
 				end
 			end
 			i += 2
-		if i <= 40:jump 'loopgm_maid'
+		if i <= total:jump 'loopgm_maid'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:
@@ -344,7 +344,7 @@ if $ARGS[0] = 'gm_server':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_outfits'
+	gs 'clothing', 'totals', 'gm_outfits'
 
 	act 'Return':
 		cla
@@ -373,7 +373,7 @@ if $ARGS[0] = 'gm_server':
 				end
 			end
 			i += 2
-		if i <= 30:jump 'loopgm_server'
+		if i <= total:jump 'loopgm_server'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:
@@ -397,7 +397,7 @@ if $ARGS[0] = 'school':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
-	gs 'clothing', 'gm_school'
+	gs 'clothing', 'totals', 'gm_school'
 
 	act 'Return':
 		cla
@@ -429,7 +429,7 @@ if $ARGS[0] = 'school':
 			end
 			i += 3
 			if i = 6:i = 9
-		if i <= 62:jump 'loopschool'
+		if i <= total:jump 'loopschool'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:

+ 1546 - 0
locations/bus.qsrc

@@ -0,0 +1,1546 @@
+# bus
+
+	!!============================================!!
+	!!                                            !!
+	!!                Bus Stations                !!
+	!!                                            !!
+	!!============================================!!
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       community       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'community':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'community'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The community center bus stop'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'community'
+
+	act 'Walk to the community center (0:01)': minut += 1 & gt 'pav_commcenter'
+
+	if transportVars['bus_wait_gadukino'] <= 60:
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'community_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'community_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<transportVars[''bus_wait_gadukino'']/60>> hours'
+	end
+
+elseif $ARGS[0] = 'community_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'community_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'community'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		act 'Stop looking at the schedule': gt 'bus', 'community_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'community', 'pg'
+
+elseif $ARGS[0] = 'community_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'community_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'community'
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'community'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		act 'Stop looking at the schedule': gt 'bus', 'community_busses.'
+	end
+
+	act 'Take a bus to the Pavlovsk train station (<<func(''transport_functions'', ''display_bus_timecost'', ''community'', ''pavstation'')>>)':	gt 'bus', 'community_pavstation'
+	act 'Take a bus to the old town district of Pushkin (<<func(''transport_functions'', ''display_bus_timecost'', ''community'', ''pushkin'')>>)':	gt 'bus', 'community_pushkin'
+	act 'Take a bus to the construction site (<<func(''transport_functions'', ''display_bus_timecost'', ''community'', ''construction'')>>)':		gt 'bus', 'community_construction'
+	act 'Take a bus to the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''community'', ''gadukino'')>>)':			gt 'bus', 'community_gadukino'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!      pavstation       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'pavstation':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'pavstation'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The Pavlovsk train station bus stop'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'pavstation'
+
+	act 'Walk to the train station (0:02)': minut += 2 & gt 'pav_train_hall'
+
+	if transportVars['bus_wait_pavlovsk'] <= 60 or transportVars['bus_wait_gadukino'] <= 60:
+		'The next bus in the direction of the Pavlovsk community center ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'pavstation_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'pavstation_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_pavlovsk'']/60, transportVars[''bus_wait_gadukino'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'pavstation_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'pavstation_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'pavstation'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		act 'Stop looking at the schedule': gt 'bus', 'pavstation_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'pavstation', 'pg'
+
+elseif $ARGS[0] = 'pavstation_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'pavstation_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'pavstation'
+	'The next bus in the direction of the Pavlovsk community center ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'pavstation'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		act 'Stop looking at the schedule': gt 'bus', 'pavstation_busses'
+	end
+
+	act 'Take a bus to the Pavlovsk community center (<<func(''transport_functions'', ''display_bus_timecost'', ''pavstation'', ''community'')>>)':		gt 'bus', 'pavstation_community'
+	act 'Take a bus to the old town district of Pushkin (<<func(''transport_functions'', ''display_bus_timecost'', ''pavstation'', ''pushkin'')>>)':	gt 'bus', 'pavstation_pushkin'
+	act 'Take a bus to the construction site (<<func(''transport_functions'', ''display_bus_timecost'', ''pavstation'', ''construction'')>>)':			gt 'bus', 'pavstation_construction'
+	act 'Take a bus to the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''pavstation'', ''gadukino'')>>)':			gt 'bus', 'pavstation_gadukino'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        pushkin        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'pushkin':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'pushkin'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The bus stop in the old town center of Pushkin'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'pushkin'
+
+	act 'Walk to pushkin (0:05)': minut += 5 & gt 'pushkin'
+
+	if transportVars['bus_wait_pavlovsk'] <= 60 or transportVars['bus_wait_gadukino'] <= 60:
+		'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'pushkin_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'pushkin_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_pavlovsk'']/60, transportVars[''bus_wait_gadukino'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'pushkin_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'pushkin_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'pushkin'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		act 'Stop looking at the schedule': gt 'bus', 'pushkin_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'pushkin', 'pg'
+
+elseif $ARGS[0] = 'pushkin_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'pushkin_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'pushkin'
+	'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'pushkin'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		act 'Stop looking at the schedule': gt 'bus', 'pushkin_busses'
+	end
+
+	act 'Take a bus to the Pavlovsk community center (<<func(''transport_functions'', ''display_bus_timecost'', ''pushkin'', ''community'')>>)':	gt 'bus', 'pushkin_community'
+	act 'Take a bus to the Pavlovsk train station (<<func(''transport_functions'', ''display_bus_timecost'', ''pushkin'', ''pavstation'')>>)':		gt 'bus', 'pushkin_pavstation'
+	act 'Take a bus to the construction site (<<func(''transport_functions'', ''display_bus_timecost'', ''pushkin'', ''construction'')>>)':			gt 'bus', 'pushkin_construction'
+	act 'Take a bus to the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''pushkin'', ''gadukino'')>>)':			gt 'bus', 'pushkin_gadukino'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!     construction      !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'construction':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'construction'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The temporary bus stop near the construction site'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'construction'
+
+	act 'Walk to the construction site (0:05)': minut += 5 & nroad = 16 & gt 'road'
+
+	if transportVars['bus_wait_pavlovsk'] <= 60 or transportVars['bus_wait_gadukino'] <= 60:
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'construction_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'construction_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_pavlovsk'']/60, transportVars[''bus_wait_gadukino'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'construction_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'construction_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'construction'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		act 'Stop looking at the schedule': gt 'bus', 'construction_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'construction', 'gp'
+
+elseif $ARGS[0] = 'construction_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'construction_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'construction'
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+	'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'construction'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'pg'
+		act 'Stop looking at the schedule': gt 'bus', 'construction_busses'
+	end
+
+	act 'Take a bus to the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''construction'', ''gadukino'')>>)':			gt 'bus', 'construction_gadukino'
+	act 'Take a bus to the old town district of Pushkin (<<func(''transport_functions'', ''display_bus_timecost'', ''construction'', ''pushkin'')>>)':	gt 'bus', 'construction_pushkin'
+	act 'Take a bus to the Pavlovsk train station (<<func(''transport_functions'', ''display_bus_timecost'', ''construction'', ''pavstation'')>>)':		gt 'bus', 'construction_pavstation'
+	act 'Take a bus to the Pavlovsk community center (<<func(''transport_functions'', ''display_bus_timecost'', ''construction'', ''community'')>>)':	gt 'bus', 'construction_community'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       gadukino        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'gadukino':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'gadukino'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The bus stop at the forest road of the village of Gadukino'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'gadukino'
+
+	act 'Walk to Gadukino (0:01)': minut += 1 & gt 'gadroad'
+
+	if transportVars['bus_wait_pavlovsk'] <= 60 or transportVars['bus_wait_suburbs'] <= 60:
+		'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+		'The next bus in the direction of the suburbs of St. Petersburg ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'gadukino_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'gadukino_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_pavlovsk'']/60, transportVars[''bus_wait_suburbs'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'gadukino_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'gadukino_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'gadukino'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		act 'Stop looking at the schedule': gt 'bus', 'gadukino_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'gadukino', 'gp'
+	gs 'transport_functions', 'buy_bus_ticket', 'gadukino', 'gs'
+
+elseif $ARGS[0] = 'gadukino_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'gadukino_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'gadukino'
+	'The next bus in the direction of Pavlovsk ' + iif(transportVars['bus_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_pavlovsk'']>> minutes.')
+	'The next bus in the direction of the suburbs of the St. Petersburg suburbs ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'gadukino'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gp'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		act 'Stop looking at the schedule': gt 'bus', 'gadukino_busses'
+	end
+
+	act 'Take a bus to the construction site (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''construction'')>>)':			gt 'bus', 'gadukino_construction'
+	act 'Take a bus to the old town district of Pushkin (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''pushkin'')>>)':		gt 'bus', 'gadukino_pushkin'
+	act 'Take a bus to the Pavlovsk train station (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''pavstation'')>>)':			gt 'bus', 'gadukino_pavstation'
+	act 'Take a bus to the Pavlovsk community center (<<func(''transport_functions'', ''display_bus_timecost'', ''construction'', ''community'')>>)':	gt 'bus', 'construction_community'
+
+	act 'Take a bus to the communal village (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''communal'')>>)':						gt 'bus', 'gadukino_communal'
+	act 'Take a bus the cemetery outside of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''graveyard'')>>)':	gt 'bus', 'gadukino_graveyard'
+	act 'Take a bus to the the suburbs of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''gadukino'', ''suburbs'')>>)':			gt 'bus', 'gadukino_suburbs'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       communal        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'communal':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'communal'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The bus stop in the communal village'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'communal'
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+	'The next bus in the direction of the suburbs of St. Petersburg ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+
+	act 'Walk to the communal village (0:03)': minut += 3 & gt 'dachi'
+
+	if transportVars['bus_wait_gadukino'] <= 60 or transportVars['bus_wait_suburbs'] <= 60:
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		'The next bus in the direction of the suburbs of St. Petersburg ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'communal_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'communal_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_gadukino'']/60, transportVars[''bus_wait_suburbs'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'communal_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'communal_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'communal'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		act 'Stop looking at the schedule': gt 'bus', 'communal_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'communal', 'gs'
+
+elseif $ARGS[0] = 'communal_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'communal_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'communal'
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+	'The next bus in the direction of the suburbs of the St. Petersburg suburbs ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'communal'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		act 'Stop looking at the schedule': gt 'bus', 'communal_busses'
+	end
+
+	act 'Take a bus to the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''communal'', ''gadukino'')>>)':					gt 'bus', 'communal_gadukino'
+	act 'Take a bus the cemetery outside of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''communal'', ''graveyard'')>>)':	gt 'bus', 'communal_graveyard'
+	act 'Take a bus to the the suburbs of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''communal'', ''suburbs'')>>)':			gt 'bus', 'communal_suburbs'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       graveyard       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'graveyard':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'graveyard'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The cemetery bus stop'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'graveyard'
+
+	act 'Walk to the graveyard (0:01)': minut += 1 & nroad = 3 & gt 'road'
+
+	if transportVars['bus_wait_gadukino'] <= 60 or transportVars['bus_wait_suburbs'] <= 60:
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		'The next bus in the direction of the suburbs of St. Petersburg ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'graveyard_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'graveyard_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<min(transportVars[''bus_wait_gadukino'']/60, transportVars[''bus_wait_suburbs'']/60)>> hours.'
+	end
+
+elseif $ARGS[0] = 'graveyard_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'graveyard_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'graveyard'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		act 'Stop looking at the schedule': gt 'bus', 'graveyard_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'graveyard', 'sg'
+
+elseif $ARGS[0] = 'graveyard_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'graveyard_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'graveyard'
+	'The next bus in the direction of the suburbs of the St. Petersburg suburbs ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'communal'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_bus_schedule', 'gs'
+		act 'Stop looking at the schedule': gt 'bus', 'graveyard_busses'
+	end
+
+	act 'Take a bus to the suburbs of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''graveyard'', ''suburbs'')>>)':	gt 'bus', 'graveyard_suburbs'
+	act 'Take a bus to the communal village (<<func(''transport_functions'', ''display_bus_timecost'', ''graveyard'', ''communal'')>>)':			gt 'bus', 'graveyard_communal'
+	act 'Take a bus the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''graveyard'', ''gadukino'')>>)':			gt 'bus', 'graveyard_gadukino'
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        suburbs        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'suburbs':
+	*clr & cla
+	$menu_loc = 'bus'
+	$menu_arg = 'suburbs'
+	$location_type = 'public_outdoors'
+	menu_off = 0
+	gs 'stat'
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'The bus stop near the suburbs of St. Petersburg'
+	*nl
+	gs 'transport_functions', 'set_bus_wait_time', 'suburbs'
+
+	act 'Walk to the suburbs (0:05)': minut += 5 & gt 'city_suburbs', 'start'
+
+	if transportVars['bus_wait_gadukino'] <= 60:
+		'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+		if transportVars['buspass_day'] > daystart:
+			*nl
+			func('transport_functions', 'display_buspass_time')
+			act 'Go to platforms': gt 'bus', 'suburbs_busses'
+		else
+			act 'Buy a ticket': gt 'bus', 'suburbs_tickets'
+		end
+	else
+		'It''s too late to take the bus. The next one arrives in <<transportVars[''bus_wait_gadukino'']/60>> hours'
+	end
+
+elseif $ARGS[0] = 'suburbs_tickets':
+	$menu_loc = 'bus'
+	$menu_arg = 'suburbs_tickets'
+	menu_off = 0
+	
+	act 'Leave the ticket office': gt 'bus', 'suburbs'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		act 'Stop looking at the schedule': gt 'bus', 'suburbs_tickets'
+	end
+
+	gs 'transport_functions', 'buy_bus_ticket', 'suburbs', 'sg'
+
+elseif $ARGS[0] = 'suburbs_busses':
+	$menu_loc = 'bus'
+	$menu_arg = 'suburbs_busses'
+	menu_off = 0
+
+	gs 'transport_functions', 'set_bus_wait_time', 'suburbs'
+	'The next bus in the direction of the suburbs of the St. Petersburg suburbs ' + iif(transportVars['bus_wait_suburbs'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_suburbs'']>> minutes.')
+	'The next bus in the direction of Gadukino ' + iif(transportVars['bus_wait_gadukino'] = 0, 'is leaving now!', 'leaves in <<transportVars[''bus_wait_gadukino'']>> minutes.')
+
+	act 'Leave the platform': gt 'bus', 'suburbs'
+
+	act 'Look at the bus schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_bus_schedule', 'sg'
+		act 'Stop looking at the schedule': gt 'bus', 'suburbs_busses'
+	end
+
+	act 'Take a bus the cemetery outside of St. Petersburg (<<func(''transport_functions'', ''display_bus_timecost'', ''suburbs'', ''graveyard'')>>)':	gt 'bus', 'suburbs_graveyard'
+	act 'Take a bus to the communal village (<<func(''transport_functions'', ''display_bus_timecost'', ''suburbs'', ''communal'')>>)':					gt 'bus', 'suburbs_communal'
+	act 'Take a bus the village of Gadukino (<<func(''transport_functions'', ''display_bus_timecost'', ''suburbs'', ''gadukino'')>>)':					gt 'bus', 'suburbs_gadukino'
+end
+
+
+
+
+	!!============================================!!
+	!!                                            !!
+	!!               Bus Transport                !!
+	!!                                            !!
+	!!============================================!!
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       community       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'community_pavstation':
+	$loc = 'bus'
+	$loc_arg = 'pavstation'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_community_pavstation'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk train station bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'community_pushkin':
+	$loc = 'bus'
+	$loc_arg = 'pushkin'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_community_pushkin'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pushkin bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'community_construction':
+	$loc = 'bus'
+	$loc_arg = 'construction'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_community_construction'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the construction site bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'community_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_community_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!      pavstation       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'pavstation_community':
+	$loc = 'bus'
+	$loc_arg = 'community'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pavstation_community'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk community center bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pavstation_pushkin':
+	$loc = 'bus'
+	$loc_arg = 'pushkin'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pavstation_pushkin'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pushkin bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pavstation_construction':
+	$loc = 'bus'
+	$loc_arg = 'construction'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pavstation_construction'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the construction site bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pavstation_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pavstation_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        pushkin        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'pushkin_community':
+	$loc = 'bus'
+	$loc_arg = 'community'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pushkin_community'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk community center bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pushkin_pavstation':
+	$loc = 'bus'
+	$loc_arg = 'pavstation'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pushkin_pavstation'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk train station bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pushkin_construction':
+	$loc = 'bus'
+	$loc_arg = 'construction'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pushkin_construction'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the construction site bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'pushkin_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_pushkin_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!     construction      !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'construction_community':
+	$loc = 'bus'
+	$loc_arg = 'community'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_construction_community'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk community center bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'construction_pavstation':
+	$loc = 'bus'
+	$loc_arg = 'pavstation'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_construction_pavstation'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk train station bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'construction_pushkin':
+	$loc = 'bus'
+	$loc_arg = 'pushkin'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_construction_pushkin'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pushkin bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'construction_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_construction_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       gadukino        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'gadukino_community':
+	$loc = 'bus'
+	$loc_arg = 'community'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_community'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk community center bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_pavstation':
+	$loc = 'bus'
+	$loc_arg = 'pavstation'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_pavstation'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pavlovsk train station bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_pushkin':
+	$loc = 'bus'
+	$loc_arg = 'pushkin'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_pushkin'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Pushkin bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_construction':
+	$loc = 'bus'
+	$loc_arg = 'construction'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_construction'] + transportVars['bus_wait_pavlovsk']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the construction site bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_communal':
+	$loc = 'bus'
+	$loc_arg = 'communal'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_communal'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the communal village bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_graveyard':
+	$loc = 'bus'
+	$loc_arg = 'graveyard'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_graveyard'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the graveyard bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'gadukino_suburbs':
+	$loc = 'bus'
+	$loc_arg = 'suburbs'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_gadukino_suburbs'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the suburbs bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       communal        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'communal_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_communal_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'communal_graveyard':
+	$loc = 'bus'
+	$loc_arg = 'graveyard'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_communal_graveyard'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the graveyard bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'communal_suburbs':
+	$loc = 'bus'
+	$loc_arg = 'suburbs'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_communal_suburbs'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the suburbs bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!       graveyard       !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'graveyard_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_graveyard_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'graveyard_communal':
+	$loc = 'bus'
+	$loc_arg = 'communal'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_graveyard_communal'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the communal village bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'graveyard_suburbs':
+	$loc = 'bus'
+	$loc_arg = 'suburbs'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_graveyard_suburbs'] + transportVars['bus_wait_suburbs']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the suburbs bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+		!!-----------------------!!
+		!!                       !!
+		!!        suburbs        !!
+		!!                       !!
+		!!-----------------------!!
+
+if $ARGS[0] = 'suburbs_gadukino':
+	$loc = 'bus'
+	$loc_arg = 'gadukino'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_suburbs_gadukino'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the Gadukino bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'suburbs_communal':
+	$loc = 'bus'
+	$loc_arg = 'communal'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_suburbs_communal'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the communal village bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+
+elseif $ARGS[0] = 'suburbs_graveyard':
+	$loc = 'bus'
+	$loc_arg = 'graveyard'
+	$location_type = 'public_indoors'
+	menu_off = 1
+	gs 'transport_functions', 'set_bus_wait_time'
+	transportVars['timecost'] = transportVars['bus_time_suburbs_graveyard'] + transportVars['bus_wait_gadukino']
+	minut += transportVars['timecost']
+	gs 'stat'
+
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 9:
+		gt 'bus_incidental', 'events'
+	elseif transportVars['bus_event_day'] ! daystart:
+		if transportVars['rand'] <= 16:
+			gt 'bus_events', 'events'
+		end
+	end
+
+	'<center><img <<$set_imgh>> src="images/locations/system/image_needed.jpg" ></center>'
+	'After <<transportVars[''timecost'']>> minutes, the bus stops at the graveyard bus station.'
+	act 'Get off the bus':
+		if rand(1, 100) <= 5: gt 'bus_incidental', 'end'
+		gt $loc, $loc_arg
+	end
+end
+
+
+--- bus ------------------------------------

+ 25 - 0
locations/bus_events.qsrc

@@ -0,0 +1,25 @@
+# bus_events
+
+
+transportVars['bus_event_day'] = daystart
+
+if $ARGS[0] = 'events':
+	transportVars['rand'] = rand(1, 100)
+	if transportVars['rand'] <= 100:
+		gt 'bus_events', 'placeholder'
+	end
+end
+
+
+if $ARGS[0] = 'placeholder':
+	*clr & cla
+	menu_off = 1
+
+	'This is a placeholder event!!'
+	'Cool stuff to be added here!'
+
+	act 'Continue': gt $loc, $loc_arg
+end
+
+
+--- bus_events ------------------------------------

+ 38 - 0
locations/bus_incidental.qsrc

@@ -0,0 +1,38 @@
+# bus_incidental
+
+if $ARGS[0] = 'events':
+	*clr & cla
+	menu_off = 1
+	transportVars['train_event_day'] = daystart
+	gt 'bus_incidental', 'event<<rand(1, 1)>>'
+end
+
+if $ARGS[0] = 'event1':
+	*clr & cla
+	menu_off = 1
+
+	'This is a placeholder incidental event!!'
+	'Cool stuff to be added here!'
+
+	act 'Continue': gt $loc, $loc_arg
+end
+
+
+
+if $ARGS[0] = 'end':
+	*clr & cla
+	menu_off = 1
+	gt 'bus_incidental', 'end<<rand(1, 1)>>'
+end
+
+if $ARGS[0] = 'end1':
+
+	'This is a placeholder end incidental event!!'
+	'Cool stuff to be added here!'
+
+	act 'Continue': gt $loc, $loc_arg
+end
+
+
+
+--- bus_incidental ---------------------------------------

+ 1 - 1
locations/carF.qsrc

@@ -95,7 +95,7 @@ if $ARGS[0] = 'salon':
 	if cardrive = 4:'Through the windshield, you see the lake.'
 	if cardrive = 5:'Through the windshield, you can see the park.'
 	if cardrive = 6:'Through the windshield, you can see the gas station in the city industrial region.'
-	if cardrive = 7:'Through the windshield, you can see the car service centre.'
+	if cardrive = 7:'Through the windshield, you can see the car service center.'
 	if cardrive = 8:'Through the windshield, you see your house in St. Petersburg''s residential area.'
 	if cardrive = 9:'Through the windshield, you can see many of the cars for sale outside the showroom.'
 	if cardrive = 10:'Through the windshield, you can see hookers outside the park.'

+ 1 - 1
locations/cardgame_durak.qsrc

@@ -515,7 +515,7 @@ if $ARGS[0] = 'card_game_rough_sex':
 		'"I want your ass next, bitch", <<$boydesc>> says. "Get on your hands and knees, and offer yourself to me."'
 		'You hesitantly do as he says, spreading your buttocks with your hands once you lower yourself to the ground.'
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 
 			'<<$boydesc>> laughs: "This would only get in the way. Out you go!", and he tugs the plug out of your ass and tosses it aside.'
 		end

+ 12 - 2
locations/cikl.qsrc

@@ -1063,6 +1063,7 @@ if InSleep = 1: gs 'npc','cleanarrays'
 if therapistWantsSlave > 0:
 	annaclean1 = rand(23,26)
 end
+killvar 'therapistFuckedPussyScene'
 
 !!------------------------------------------------------------------------------------------------------------
 
@@ -1212,10 +1213,19 @@ gs 'homes_properties', 'progress_property_rent_time'
 !!------------- Check for Daily Events for event generator, sets evt_chk variable  ------------------------------------------
 gs 'emp_functions', 'evt_day_chk'
 
-!!------------- Reset used car dealership offers  ------------------------------------------
-if week = 1 and used_car ! 0: killvar 'used_car'
 
 
+!!----------------------------------------------------------------------
+!!---------------------------- WEEKLY RESET ----------------------------
+!!----------------------------------------------------------------------
+if week = 1:
+	!! Reset used car dealership offers 
+	killvar 'used_car'
+
+	!! Reset therapist schedule
+	killvar 'therapist_weekly_block'
+end
+
 !!------------- Advance book loan debt  ------------------------------------------
 if $lib_book_loaned ! '': lib_debt += 50
 

+ 1 - 1
locations/city_experimental_trials_list.qsrc

@@ -187,7 +187,7 @@ if $ARGS[0] = $trial_sections[0]:
 		elseif temp_rand < 70:
 			$temp_pill_color = 'purple'
 			$experimentQW['trial_active']     = 'pill_purple'
-			$experimentQW['pill_cyan_taken'] += 1
+			$experimentQW['pill_purple_taken'] += 1
 			 experimentQW['trial_duration']   = rand(2,4)
 
 		!! Change alko_status

+ 2 - 2
locations/city_hermitage.qsrc

@@ -1,5 +1,5 @@
 # city_hermitage
-!Please add a blue underlined link on the St. Petersburg city centre page as below for the State Hermitage Museum
+!Please add a blue underlined link on the St. Petersburg city center page as below for the State Hermitage Museum
 !Please add 1 intelligence point and 5 mood points for each visit
 
 if $ARGS[0] = 'start':
@@ -19,7 +19,7 @@ if $ARGS[0] = 'start':
 		'Of the six buildings in the main museum complex, five, being the Winter Palace, Small Hermitage, Old Hermitage, New Hermitage, and Hermitage Theatre are all open to the public.'
 		'You approach the visitors entrance which is located in the Winter Palace.'
 	end
-	act 'Return city centre': gt 'city_center'
+	act 'Return city center': gt 'city_center'
 	if hour >= 8 and hour <= 17:
 		act 'View The Golden Peacock (90 mins)': gt 'city_hermitage', 'peacock'
 		act 'View Catherine The Great''s art collection (90 mins)': gt 'city_hermitage', 'art'

+ 2 - 2
locations/city_industrial.qsrc

@@ -103,9 +103,9 @@ if $ARGS[0] = '':
 		'Next to the car dealership is a repair shop.' + iif(week = 7, 'It''s closed on Sundays.', 'It will be open between 09:00 and 20:00.') + iif(car > 0 and cardrive = 7, ' Your <<$car>> is currently locked inside.', '')
 	end
 	if hour >= 9 and hour < 17 and week < 6:
-		'The <a href="exec: minut += 5 & gt ''dk'', ''start''">community centre</a> is currently open.'
+		'The <a href="exec: minut += 5 & gt ''dk'', ''start''">community center</a> is currently open.'
 	else
-		'The community centre is currently closed. It''s only open during the week between 09:00 and 17:00.'
+		'The community center is currently closed. It''s only open during the week between 09:00 and 17:00.'
 	end
 
 	if hour >= 9 and hour <= 17 and (mid($start_type,1,2) ! 'sg' or SchoolAtestat = 0) or bumtolik > 3: 

+ 62 - 143
locations/city_industrial_train.qsrc

@@ -16,8 +16,8 @@ if $ARGS[0] = 'inside':
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/vokzalholle.jpg" ></center>'
 	act 'Leave the station': minut += 2 & gt 'city_industrial_train', 'outside'
 	*nl
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to the platforms': gt 'city_industrial_train', 'platform'
 	else
 		act 'Go to the ticket office': minut += 1 & gt 'city_industrial_train', 'ticket'
@@ -56,9 +56,9 @@ if $ARGS[0] = 'outside':
 
 	'There is a path leading off in to the distance, in the direction of the <a href="exec:minut += 60 & gt ''city_lake'', ''start''">lake</a>.'
 
-	act 'Walk to the City Industrial Region': minut += 15 & gt'city_industrial'
-	act 'Walk to the lake': minut += 60 & gt'city_lake', 'start'
-	act 'Enter the station building': minut += 2 & gt'city_industrial_train', 'inside'
+	act 'Walk to the City Industrial Region': minut += 15 & gt 'city_industrial'
+	act 'Walk to the lake': minut += 60 & gt 'city_lake', 'start'
+	act 'Enter the station building': minut += 2 & gt 'city_industrial_train', 'inside'
 end
 
 if $ARGS[0] = 'platform':
@@ -72,46 +72,28 @@ if $ARGS[0] = 'platform':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/trainstation/vokzalper.jpg" ></center>'
 	'When you arrive at the platform, you can''t help but notice it bustling with activity. Lots of passengers are coming and going, all carrying large bags. It feels like it is always busy here, no matter at what time of the day you are here.'
+	*nl
+	gs 'transport_functions', 'set_train_wait_time', 'ind'
+	'The next train in the direction of the city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Return to the station': minut += 5 & gt 'city_industrial_train', 'inside'
 	
-	if Trainpass_day > daystart:
-		act 'Take a train to the city center': gt 'city_industrial_train', 'centre'
-		
-		act 'Take a train to the old platform by the communal village': gt 'city_industrial_train', 'communal'
-		
-		act 'Take a train to the village of Gadukino': gt 'city_industrial_train', 'village'
-		
-		act 'Take a train to Pavlovsk': gt 'city_industrial_train', 'pavlovsk'
+	act 'Look at the train schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_train_schedule'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_train_schedule', 'pc'
+		act 'Stop looking at the schedule': gt 'city_industrial_train', 'inside'
 	end
-end
-
-if $ARGS[0] = 'toilet':
-	$locM_arg = 'toilet'
-	$locM = 'city_industrial_train'
-	$loc_arg = 'toilet'
-	$loc = 'city_industrial_train'
-	$menu_loc = 'city_industrial_train'
-	$menu_arg = 'inside'
-	menu_off = 0
-	$location_type = 'bathroom'
-	$locclass = 'restroom'	
-	*clr & cla
-	gs'stat'
-
-	gs 'themes', 'indoors'
-
-	'<center><img <<$set_imgh>> src="images/locations/shared/bathroom/publictoilet.jpg"></center>'
-
-	act 'Return to the station': minut += 1 & gt 'city_industrial_train', 'inside'
-
-	act 'Look in the mirror': gt 'mirror', 'start'
-	if pcs_hairbsh < 1: act 'Brush your hair': gt 'mirror', 'brush'
 
-	dynamic $tampon
-	dynamic $quickwash
-	dynamic $basin
-	dynamic $publicpan
+	if transportVars['trainpass_day'] > daystart:
+		act 'Take a train to the city center (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''center'')>>)': gt 'train', 'ind_center'
+		act 'Take a train to the old platform by the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''communal'')>>)': gt 'train', 'ind_communal'
+		act 'Take a train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''gadukino'')>>)': gt 'train', 'ind_gadukino'
+		act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''ind'', ''pavlovsk'')>>)': gt 'train', 'ind_pavlovsk'
+	end
 end
 
 if $ARGS[0] = 'ticket':
@@ -122,9 +104,22 @@ if $ARGS[0] = 'ticket':
 	gs 'stat'
 	'<center><h4>Ticket office</h4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/trainstation/ticketoffice.jpg"></center>'
+	*nl
+	gs 'transport_functions', 'set_train_wait_time', 'ind'
+	'The next train in the direction of the city center ' + iif(transportVars['train_wait_center'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_center'']>> minutes.')
+	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
 
 	act 'Leave the ticket office':minut += 1 & gt 'city_industrial_train', 'inside'
 	
+	act 'Look at the train schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_train_schedule'
+		*nl
+		*nl
+		gs 'transport_functions', 'display_train_schedule', 'pc'
+		act 'Stop looking at the schedule': gt 'city_industrial_train', 'ticket'
+	end
+
 	if money >= 50:
 		act 'Buy a ticket':
 			cla
@@ -132,126 +127,50 @@ if $ARGS[0] = 'ticket':
 		end
 	end
 
-	if money >= 1500 and Trainpass_day <= daystart:
-		act 'Buy a weekly pass  (7 days - 1500 <b>₽</b>) ':
-			cla
-			money -= 1500
-			Trainpass_day = daystart + 7
-			act 'Return': gt 'city_industrial_train', 'inside'
-		end
-	end
-
-	if money >= 5500 and Trainpass_day <= daystart:
-		act 'Buy a monthly pass (30day -  5500 <b>₽</b>)':
-			cla
-			money -= 5500
-			Trainpass_day = daystart + 30
-			act 'Return': gt 'city_industrial_train', 'inside'
-		end
-	end
+	gs 'transport_functions', 'buy_train_pass'
 end
 
-if $ARGS[0] = 'buy_ticket':	
+if $ARGS[0] = 'buy_ticket':
 	$menu_loc = 'city_industrial_train'
 	$menu_arg = 'buy_ticket'
 	menu_off = 0
 	
 	act 'Leave the ticket office': gt 'city_industrial_train', 'inside'
-	
-	if money >= 50:
-		act 'Buy a ticket to the city center (50 <b>₽</b>)':
-			money -= 50
-			gt 'city_industrial_train', 'centre'
-		end
-	end
 
-	if money >= 50:
-		act 'Buy a ticket to the old platform by the communal village (50 <b>₽</b>)':
-			money -= 100
-			gt 'city_industrial_train', 'communal'
-		end
-	end
+	gs 'transport_functions', 'buy_train_ticket', 'ind'
+end
 
-	if money >= 75:
-		act 'Buy a ticket to the village of Gadukino (75 <b>₽</b>)':
-			money -= 75
-			gt 'city_industrial_train', 'village'
-		end
-	end
 
-	if money >= 125:
-		act 'Buy a ticket to Pavlovsk (125 <b>₽</b>)':
-			money -= 125
-			gt 'city_industrial_train', 'pavlovsk'
-		end
-	end
-end
 
-if $ARGS[0] = 'centre':
-	$loc = 'city_train'
-	$loc_arg = 'start'
-	menu_off = 1
+if $ARGS[0] = 'toilet':
+	$locM_arg = 'toilet'
+	$locM = 'city_industrial_train'
+	$loc_arg = 'toilet'
+	$loc = 'city_industrial_train'
+	$menu_loc = 'city_industrial_train'
+	$menu_arg = 'inside'
+	menu_off = 0
+	$location_type = 'bathroom'
+	$locclass = 'restroom'	
 	*clr & cla
-	minut += 5
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/electri_' + rand(1,5) + '.jpg"></center>'
-	'You pay for the ticket and board the next train going to the city center.'
-	'After 5 minutes, you see the office blocks and shops at the heart of the city. The train stops at its final destination, the busy station in the city center.'
+	gs'stat'
 
-	act 'Get off the train at this station':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_train', 'start'
-	end
-end
+	gs 'themes', 'indoors'
 
-if $ARGS[0] = 'communal':
-	$loc = 'train'
-	$loc_arg = 'communal'
-	menu_off = 1
-	minut += 10
-	if rand(1, 100) < 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 10 minutes you arrive at an old railway platform near the communal village.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'communal'
-	end
-end
+	'<center><img <<$set_imgh>> src="images/locations/shared/bathroom/publictoilet.jpg"></center>'
 
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	menu_off = 1
-	minut += 20
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) < 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 20 minutes, the train stops at the small station near the village of Gadukino.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'village'
-	end
-end
+	act 'Return to the station': minut += 1 & gt 'city_industrial_train', 'inside'
 
-if $ARGS[0] = 'pavlovsk':
-	$loc = 'pav_train_hall'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 35
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 35 minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'pav_train_hall'
-	end
+	act 'Look in the mirror': gt 'mirror', 'start'
+	if pcs_hairbsh < 1: act 'Brush your hair': gt 'mirror', 'brush'
+
+	dynamic $tampon
+	dynamic $quickwash
+	dynamic $basin
+	dynamic $publicpan
 end
 
+
+
 --- city_industrial_train ---------------------------------
 

+ 2 - 1
locations/city_market.qsrc

@@ -170,6 +170,7 @@ if $ARGS[0] = 'clo':
 	'You inspect the cheap clothing the stall has to offer.'
 
 	gs 'clothing_QV', 'shop_filter_header'
+	gs 'clothing', 'totals', 'market_outfits'
 
 	act 'Return':
 		cla
@@ -193,7 +194,7 @@ if $ARGS[0] = 'clo':
 			end
 		end
 	i += 1
-	if i <= 40:jump 'loopmarket_outfits'
+	if i <= total:jump 'loopmarket_outfits'
 
 	clo_i += 1
 	if clothingfilter['quality'] = 0 and clo_i <= 7:

+ 10 - 7
locations/city_saunawhore.qsrc

@@ -104,8 +104,8 @@ if $ARGS[0] = 'saunawork':
 		end
 	end
 
-	if venera > 0 or Kandidoz > 10:
-		act 'See nurse for STD check up':
+	act 'See nurse for STD check up':
+		if Gerpes+Sifilis+Triper > rand(2,4) or Kandidoz > 10:
 			cls
 			menu_off = 1
 			gs 'stat'
@@ -146,10 +146,10 @@ if $ARGS[0] = 'saunawork':
 				if Kandidoz < 30:'Your yeast infection is currently in remission, take vitamins, and it will stay that way.'
 			end
 			act 'Return':gt 'city_saunawhore', 'saunawork'
+		else
+			'The nurse has you strip and put your legs in stirrups then roughly examines you. I can''t see anything wrong with you down there so whatever it is you got it''s in remission so you''re good to work.'
+			act 'Return':gt 'city_saunawhore', 'saunawork'
 		end
-	else
-		'The nurse has you strip and put your legs in stirrups then roughly examines you. I can''t see anything wrong with you down there so whatever it is you got it''s in remission so you''re good to work.'
-		act 'Return':gt 'city_saunawhore', 'saunawork'
 	end
 		
 	if GerpesNapr > 0 and GerpesUkolDay ! daystart:
@@ -260,6 +260,7 @@ if $ARGS[0] = 'saunawork':
 			minut += 60
 			clenerSauna = daystart
 			pcs_mood -= 25
+			gs 'exp_gain', 'cleaning', rand(1,3)
 			menu_off = 1
 			gs 'sweat', 'add', 30
 			gs 'stat'
@@ -283,6 +284,7 @@ if $ARGS[0] = 'saunawork':
 			menu_off = 1
 			minut += 60
 			clenerSauna2 = daystart
+			gs 'exp_gain', 'cleaning', rand(1,2)
 			pcs_mood -= 25
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/locations/city/residential/office/clener1.jpg"></center>'
@@ -546,7 +548,7 @@ if $ARGS[0] = 'clientGate':
 end
 
 if $ARGS[0] = 'striptease':
-	if pcs_dancero < 20:pcs_dancero += rand(1,3)
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(2,4)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:
@@ -561,7 +563,7 @@ if $ARGS[0] = 'striptease':
 end
 
 if $ARGS[0] = 'simplystrip':
-	if pcs_dancero < 10: pcs_dancero += rand(0,2)
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(1,2)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:
@@ -586,6 +588,7 @@ if $ARGS[0] = 'strippedGate':
 end
 
 if $ARGS[0] = 'nakeddance':
+	gs 'exp_gain', 'dancero', rand(0,1)
 	if pcs_inhib < 40:
 		inhib_exp += rand(3,6)
 	elseif pcs_inhib >= 40 and pcs_inhib < 60:

+ 1 - 0
locations/city_smalloffice.qsrc

@@ -314,6 +314,7 @@ if $ARGS[0] = 'start':
 			menu_off = 1
 			clendayT = daystart
 			minut += 60
+			gs 'exp_gain', 'cleaning', rand(1,3)
 			clenerT += 1
 			pcs_mood -= 25
 			money += 65

+ 12 - 11
locations/city_suburbs.qsrc

@@ -3,7 +3,7 @@
 
 $location_type = 'public_outdoors'
 
-if $ARGS[0]='start':
+if $ARGS[0] = 'start':
 	$loc = 'city_suburbs'
 	$loc_arg = 'start'
 	$menu_loc = 'city_suburbs'
@@ -23,13 +23,19 @@ if $ARGS[0]='start':
 		if hour > 7 and hour < 20: 'You can visit <a href="exec: minut += 5 & gt ''AlexandriaHome'', ''intercom''">Aleksei''s home</a> if you want to see the cranky wizard.'
 	end
 
+	act 'Walk to the main road (0:01)': nroad = 1 & minut += 15 & gt 'road'
+	if hour >= 4 and hour < 23:
+		act 'Walk to the Metro (0:05)': minut += 5 & gt 'metro', 'start'
+	end
+	act 'Walk to the bus station (0:05)': minut += 5 & gt 'bus', 'suburbs'
+
 	if BDSMClub = 1 or BDSMmeet > 0:
 		act 'Go to the BDSM club': gt 'bdsm_mansion','start'
 	end
-	
+
 	if func('homes_properties', 'has_access', 'matryona_mansion') = 0:
 		'There is a vacant plot of land for sale where a large mansion could be constructed.'
-		act 'Visit the land for sale': minut += 10 & gt 'city_mansion_entrance'
+		act 'Visit the land for sale (0:10)': minut += 10 & gt 'city_mansion_entrance'
 	elseif func('homes_properties', 'is_property_of_status', 'owned', 'matryona_mansion'):
 		constructionstatus = func('homes_properties', 'get_property_construction_status', 'matryona_mansion')
 		if constructionstatus = 0:
@@ -39,18 +45,13 @@ if $ARGS[0]='start':
 		else
 			'Your mansion is not too far from here.'
 		end
-		act 'Visit your mansion': minut += 10 & gt 'city_mansion_entrance'
+		act 'Visit your mansion (0:10)': minut += 10 & gt 'city_mansion_entrance'
 	else
 		'One of the most impressive buildings is your newly built mansion.'
 		act 'Visit Matryona Mansion': gt 'city_mansion_entrance'
 	end
-	act 'View the insane asylum': minut += 2 & gt 'city_suburbs', 'ps1'
-	act 'View the creepy old building': minut += 2 & gt 'city_suburbs', 'ps2'
-
-	act 'Walk to the main road':nroad = 1 & minut += 15 & gt 'road'
-	if hour >= 4 and hour < 23:
-		act 'Walk to the Metro': minut += 5 & gt 'metro', 'start'
-	end
+	act 'View the insane asylum (0:02)': minut += 2 & gt 'city_suburbs', 'ps1'
+	act 'View the creepy old building (0:02)': minut += 2 & gt 'city_suburbs', 'ps2'
 
 	if AlexandriaQW = 6:
 		gs 'willpower', 'misc', 'self', 'easy'

+ 29 - 133
locations/city_train.qsrc

@@ -11,15 +11,15 @@ if $ARGS[0] = 'start':
 	gs'stat'
 	'<center><B>City center railway station</B></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/shared/trainstation/central_station_inside.jpg"></center>'
-	'The grand old station in the city centre is an impressive building. It is busy and has a number of shops and bars as well as all the platforms and trains. '
+	'The grand old station in the city center is an impressive building. It is busy and has a number of shops and bars as well as all the platforms and trains. '
 	*nl
 	if car > 0 and cardrive = 2:
 		'In the parking lot is <a href="exec:GS ''carF'',''start''">your <<$car>></a>.'
 	end
 
 	act 'Walk to the city center (0:05)':minut += 5 & gt 'city_center'
-	if Trainpass_day > daystart:
-		'You have <<Trainpass_day - daystart>> days left on your train pass.'
+	if transportVars['trainpass_day'] > daystart:
+		func('transport_functions', 'display_trainpass_time')
 		act 'Go to the platforms': gt 'city_train', 'platform'
 	else
 		act 'Go to the ticket office': gt 'city_train', 'tickets'
@@ -35,76 +35,34 @@ if $ARGS[0] = 'tickets':
 	'<center><h4>Ticket office</h4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/kassa.jpg" ></center>'
 
-	act 'Leave the ticket office':minut += 1 & gt 'city_train', 'start'
+	*nl
+	gs 'transport_functions', 'set_train_wait_time', 'center'
+	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
+
+	act 'Leave the ticket office': minut += 1 & gt 'city_train', 'start'
 	
+	act 'Look at the train schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_train_schedule'
+		act 'Stop looking at the schedule': gt 'city_train', 'tickets'
+	end
+
 	act 'Buy a ticket':
 		cla
 		gs 'city_train', 'buy_ticket'
 	end
 
-	if money >= 1500 and Trainpass_day <= daystart:
-		act 'Buy a weekly pass  (7 days - 1500 <b>₽</b>) ':
-			cla
-			menu_off = 1
-			money -= 1500
-			Trainpass_day = daystart + 7
-			act 'Return': gt 'city_train', 'start'
-		end
-	end
-
-	if money >= 5500 and Trainpass_day <= daystart:
-		act 'Buy a monthly pass (30day -  5500 <b>₽</b>)':
-			cla
-			menu_off = 1
-			money -= 5500
-			Trainpass_day = daystart + 30
-			act 'Return': gt 'city_train', 'start'
-		end
-	end	
+	gs 'transport_functions', 'buy_train_pass'
 end
 
 if $ARGS[0] = 'buy_ticket':
 	$menu_loc = 'city_train'
 	$menu_arg = 'buy_ticket'
 	menu_off = 0
-	
-	act 'Leave the ticket office': minut += 1 & gt 'city_train', 'start'
-	
-	act 'Buy a ticket to the city industrial area (50 <b>₽</b>)':
-		if money >= 50:
-			money -= 50
-			gt 'city_train', 'ind'
-		else
-			'You don''t have enough money for this ticket.'
-		end
-	end
 
-	act 'Buy a ticket to the old platform by the communal village (75 <b>₽</b>)':
-		if money >= 75:
-			money -= 75
-			gt 'city_train', 'communal'
-		else
-			'You don''t have enough money for this ticket.'
-		end	
-	end
-
-	act 'Buy a ticket to the village of Gadukino (100 <b>₽</b>)':
-		if money >= 100:
-			money -= 100
-			gt 'city_train', 'village'
-		else
-			'You don''t have enough money for this ticket.'	
-		end
-	end
+	act 'Leave the ticket office': minut += 1 & gt 'city_train', 'start'
 
-	act 'Buy a ticket to Pavlovsk (150 <b>₽</b>)':
-		if money >= 150:
-			money -= 150
-			gt 'city_train', 'pavlovsk'
-		else
-			'You don''t have enough money for this ticket.'		
-		end
-	end
+	gs 'transport_functions', 'buy_train_ticket', 'center'
 end
 
 if $ARGS[0] = 'platform':
@@ -115,84 +73,22 @@ if $ARGS[0] = 'platform':
 	gs 'stat'
 	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
 	'When you arrive at the platform, you can''t help but notice it bustling with activity. Lots of passengers are coming and going, all carrying shopping bags. It feels like it is always busy here, no matter at what time of the day it is.'
-
-	act 'Return to the station hall':gt 'city_train', 'start'
+	*nl
+	gs 'transport_functions', 'set_train_wait_time', 'center'
+	'The next train in the direction of Pavlovsk ' + iif(transportVars['train_wait_pavlovsk'] = 0, 'is leaving now!', 'leaves in <<transportVars[''train_wait_pavlovsk'']>> minutes.')
 	
-	act 'Take a train to the city industrial area': gt 'city_train', 'ind'
+	act 'Return to the station hall': gt 'city_train', 'start'
 
-	act 'Take a train to the old platform by the communal village': gt 'city_train', 'communal'
-
-	act 'Take a train to the village of Gadukino': gt 'city_train', 'village'
-
-	act 'Take a train to Pavlovsk': gt 'city_train', 'pavlovsk'
-end
-
-if $ARGS[0] = 'ind':
-	$loc = 'city_industrial_train'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 5
-	gs 'stat'
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/indusplat.jpg" ></center>'
-	'After 5 minutes, the train stops at the St. Petersburg city industrial area station.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'city_industrial_train', 'platform'
+	act 'Look at the train schedule':
+		*clr & cla
+		gs 'transport_functions', 'display_train_schedule'
+		act 'Stop looking at the schedule': gt 'city_train', 'platform'
 	end
-end
 
-if $ARGS[0] = 'communal':
-	$loc = 'train'
-	$loc_arg = 'communal'
-	menu_off = 1
-	minut += 15
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/oldplat.jpg" ></center>'
-	'After 15 minutes you arrive at an old railway platform near the communal village.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'communal'
-	end
-end
-
-if $ARGS[0] = 'village':
-	$loc = 'train'
-	$loc_arg = 'village'
-	menu_off = 1
-	minut += 25
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/gadplat.jpg" ></center>'
-	'After 25 minutes, the train stops at the small station near the village of Gadukino.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'train', 'village'
-	end
-end
-
-if $ARGS[0] = 'pavlovsk':
-	$loc = 'pav_train_hall'
-	$loc_arg = 'platform'
-	menu_off = 1
-	minut += 40
-	if rand(1, 100) < 15: gt 'train', 'private'
-	if rand(1, 100) < 30: gt 'train', 'Gopnik'
-	if rand(1, 100) <= 10: gt 'train_incidental', 'events'
-	if rand(1, 100) <= 20: gt 'train', 'events'
-	gs 'stat'
-	if train_event = 0 and rand(1, 100) < 20: gt 'train', 'events'
-	'<center><img <<$set_imgh>> src="images/locations/shared/train/pavplat.jpg" ></center>'
-	'After 40 minutes, you see the town of Pavlovsk approaching. Pavlovsk Castle is an impressive sight, even from a long distance. The train stops at its final destination, a platform in Pavlovsk station.'
-	act 'Get off the train':
-		if train_event = 0 and rand(1, 100) <= 5: gt 'train_incidental', 'end'
-		gt 'pav_train_hall'
-	end
+	act 'Take a train to the city industrial area (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''ind'')>>)': gt 'train', 'center_ind'
+	act 'Take a train to the old platform by the communal village (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''communal'')>>)': gt 'train', 'center_communal'
+	act 'Take a train to the village of Gadukino (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''gadukino'')>>)': gt 'train', 'center_gadukino'
+	act 'Take a train to Pavlovsk (<<func(''transport_functions'', ''display_train_timecost'', ''center'', ''pavlovsk'')>>)': gt 'train', 'center_pavlovsk'
 end
 
 --- city_train ---------------------------------

+ 60 - 21
locations/clothing.qsrc

@@ -23,6 +23,56 @@ if $ARGS[0] = 'totals':
 		total = 300
 	elseif $ARGS[1] = 'coco_outfits':
 		total = 160
+	elseif $ARGS[1] = 'dolls_dress':
+		total = 120
+	elseif $ARGS[1] = 'dolls_outfits':
+		total = 80
+	elseif $ARGS[1] = 'fancy_burlesque':
+		total = 40
+	elseif $ARGS[1] = 'fashionista_dress':
+		total = 200
+	elseif $ARGS[1] = 'fashionista_outfits':
+		total = 20
+	elseif $ARGS[1] = 'flamingos_dress':
+		total = 180
+	elseif $ARGS[1] = 'flamingos_outfits':
+		total = 160
+	elseif $ARGS[1] = 'materinstvo_dress':
+		total = 10
+	elseif $ARGS[1] = 'nerdvana_cosplay':
+		total = 160
+	elseif $ARGS[1] = 'nerdvana_outfits':
+		total = 90
+	elseif $ARGS[1] = 'cats_dress':
+		total = 220
+	elseif $ARGS[1] = 'cats_outfits':
+		total = 200
+	elseif $ARGS[1] = 'scandalicious_dress':
+		total = 150
+	elseif $ARGS[1] = 'scandalicious_outfits':
+		total = 30
+	elseif $ARGS[1] = 'bomba_dresses':
+		total = 100
+	elseif $ARGS[1] = 'bomba_outfits':
+		total = 100
+	elseif $ARGS[1] = 'eroto_dress':
+		total = 140
+	elseif $ARGS[1] = 'eroto_outfits':
+		total = 100
+	elseif $ARGS[1] = 'eroto_strip':
+		total = 30
+	elseif $ARGS[1] = 'market_outfits':
+		total = 40
+	elseif $ARGS[1] = 'salacious_dress':
+		total = 60
+	elseif $ARGS[1] = 'salacious_outfits':
+		total = 20
+	elseif $ARGS[1] = 'moncheri_gown':
+		total = 100
+	elseif $ARGS[1] = 'moncheri_dress':
+		total = 100
+	elseif $ARGS[1] = 'danilovich_outfits':
+		total = 160
 	end
 end
 
@@ -223,7 +273,7 @@ if $ARGS[0] = 'view_clothing_list':
 
 	if ARRSIZE('coco_outfits') > 0 or ARRSIZE('coco_dress') > 0:'<center><a href="exec:$ward_list_store = ''coco'' & gt ''clothing'', ''clothing_list'', ''coco''"><img src="images/locations/pavlovsk/coco/shop_name.png"></a></center>'
 
-	if ARRSIZE('fashionista') > 0 or ARRSIZE('fashionista_outfits') > 0:'<center><a href="exec:$ward_list_store = ''fashionista'' & gt ''clothing'', ''clothing_list'', ''fashionista''"><img src="images/locations/city/citycenter/mall/fashionista.png"></a></center>'
+	if ARRSIZE('fashionista_dress') > 0 or ARRSIZE('fashionista_outfits') > 0:'<center><a href="exec:$ward_list_store = ''fashionista'' & gt ''clothing'', ''clothing_list'', ''fashionista''"><img src="images/locations/city/citycenter/mall/fashionista.png"></a></center>'
 
 	if ARRSIZE('moncheri_gown') > 0 or ARRSIZE('moncheri_dress') > 0:'<center><a href="exec:$ward_list_store = ''moncheri'' & gt ''clothing'', ''clothing_list'', ''moncheri''"><img src="images/locations/city/citycenter/mall/moncheri.png"></a></center>'
 
@@ -672,17 +722,17 @@ if $ARGS[0] = 'clothing_list':
 		end
 
 		i = 1
-		:loopfashionista
-			if fashionista[i] = 1 and ($clothingworntype ! 'fashionista' or clothingwornnumber ! i):
-				gs 'clothing_attributes', 'fashionista', i
+		:loopfashionista_dress
+			if fashionista_dress[i] = 1 and ($clothingworntype ! 'fashionista_dress' or clothingwornnumber ! i):
+				gs 'clothing_attributes', 'fashionista_dress', i
 				gs 'clothing_QV', 'clo_filter'
 				!!sort by filter
 				if (clothingfilter['quality'] = 0 and CloQuality = clo_i) or (clothingfilter['inhibition'] = 0 and CloInhibit = clo_i) or clothingfilter['number'] = 0:
-					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1 and clothingfilter['sport_only'] = 0 and clothingfilter['swim_only'] = 0:*P dyneval($clothing_list_line, $ward_list_page, 'fashionista', i)
+					if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1 and clothingfilter['sport_only'] = 0 and clothingfilter['swim_only'] = 0:*P dyneval($clothing_list_line, $ward_list_page, 'fashionista_dress', i)
 				end
 			end
 			i += 1
-		if i <= ARRSIZE('fashionista'):jump 'loopfashionista'
+		if i <= ARRSIZE('fashionista_dress'):jump 'loopfashionista_dress'
 
 		i = 1
 		:loopfashionista_outfits
@@ -1411,12 +1461,6 @@ if $ARGS[0] = 'view_clothing_item':
 	'<center><img src="<<FUNC(''$clothing_image'',  $ARGS[1], ARGS[2])>>"></center>'
 	gs 'clothing_attributes', $ARGS[1], ARGS[2]
 
-	if CloTopCut > 1:
-		if tits = 2 or tits = 3: CloTopCut += 1
-		if tits >= 4: CloTopCut += 2
-		if CloTopCut > 2 and tits >=6: CloTopCut += 1
-	end
-
 	$RESULT = FUNC('$short_description', $ARGS[1], CloStyle2)
 	$RESULT += '<<ARGS[2]>>'
 	'<<$RESULT>>'
@@ -1425,10 +1469,11 @@ if $ARGS[0] = 'view_clothing_item':
 	elseif $swimwear_description = '':
 		gs 'clothing_descriptions'
 		'<<$description>>'
-		if hypnoClothes > 0 and ((CloStyle2 = 4 and CloThinness >= 3) _
-		or (($ARGS[1] = 'eroto_outfits' or $ARGS[1] = 'eroto_dress' or $ARGS[1] = 'eroto_strip') and CloThinness >= 4) _
-		or CloThinness >= 6 or $ARGS[1] = 'salacious_outfits' or $ARGS[1] = 'salacious_dress'): _
+		if hypnoClothes > 0 and (CloThinness >= 6 or $ARGS[1] = 'salacious_outfits' or $ARGS[1] = 'salacious_dress' _ 
+		or (($ARGS[1] = 'eroto_outfits' or $ARGS[1] = 'eroto_dress' or $ARGS[1] = 'eroto_strip') and CloThinness >= 3) _ 
+		or ($ARGS[1] = 'danilovich_outfits' and CloThinness >= 5)):
 			nl & '<I>You have a strange feeling about this outfit. You <b>really</b> want to wear it.</i>'
+		end
 	else
 		$swimwear_description
 	end
@@ -1844,12 +1889,6 @@ if $ARGS[0] = 'wear':
 
 	gs 'clothing_attributes', $ARGS[1], ARGS[2]
 
-	if CloTopCut > 1:
-		if tits = 2 or tits = 3: CloTopCut += 1
-		if tits >= 4: CloTopCut += 2
-		if CloTopCut > 2 and tits >=6: CloTopCut += 1
-	end
-
 	dynamic '<<$ARGS[1]>>_s[<<ARGS[2]>>] = 0'
 
 	if CloStyle2 = 4:

+ 37 - 80
locations/clothing_QV.qsrc

@@ -42,7 +42,7 @@ if $ARGS[0] = 'list':
 
 	if ARRSIZE('coco_outfits') > 0 or ARRSIZE('coco_dress') > 0:'<center><a href="exec:gt ''clothing_QV'', ''clothing_list'', ''coco''"><img src="images/locations/pavlovsk/coco/shop_name.png"></a></center>'
 
-	if ARRSIZE('fashionista') > 0 or ARRSIZE('fashionista_outfits') > 0:'<center><a href="exec:gt ''clothing_QV'', ''clothing_list'', ''fashionista''"><img src="images/locations/city/citycenter/mall/fashionista.png"></a></center>'
+	if ARRSIZE('fashionista_dress') > 0 or ARRSIZE('fashionista_outfits') > 0:'<center><a href="exec:gt ''clothing_QV'', ''clothing_list'', ''fashionista''"><img src="images/locations/city/citycenter/mall/fashionista.png"></a></center>'
 
 	if ARRSIZE('moncheri_gown') > 0 or ARRSIZE('moncheri_dress') > 0:'<center><a href="exec:gt ''clothing_QV'', ''clothing_list'', ''moncheri''"><img src="images/locations/city/citycenter/mall/moncheri.png"></a></center>'
 
@@ -501,25 +501,25 @@ if $ARGS[0] = 'clothing_list':
 		end
 
 		i = 1
-		:loopfashionista
-		if fashionista[i] = 1:
-			gs 'clothing_attributes', 'fashionista', i
+		:loopfashionista_dress
+		if fashionista_dress[i] = 1:
+			gs 'clothing_attributes', 'fashionista_dress', i
 			gs 'clothing_QV', 'clo_filter'
 			!!sort by filter
 			if (clothingfilter['quality'] = 0 and CloQuality = clo_i) or (clothingfilter['inhibition'] = 0 and CloInhibit = clo_i) or clothingfilter['number'] = 0:
 				if clothingfilter['inc'] = 1 and clothingfilter['only'] = 1 and clothingfilter['sport_only'] = 0:
 					if CloInhibit <= pcs_inhib:
 						if CloStyle ! 5:
-							if fashionista_s[i] = 0 and fashionista_h[i] > 0 and fashionista_b[i] >= (pcs_hips - 8) and fashionista_b[i] <= (pcs_hips + 8):*p '<a href="exec:gt ''clothing_QV'', ''change'', ''fashionista'', <<i>>"><img src="images/pc/items/fashionista/dress/<<i>>.jpg" 	height="250" /></a>'
+							if fashionista_dress_s[i] = 0 and fashionista_dress_h[i] > 0 and fashionista_dress_b[i] >= (pcs_hips - 8) and fashionista_dress_b[i] <= (pcs_hips + 8):*p '<a href="exec:gt ''clothing_QV'', ''change'', ''fashionista_dress'', <<i>>"><img src="images/pc/items/fashionista/dress/<<i>>.jpg" 	height="250" /></a>'
 						else
-							if fashionista_s[i] = 0 and fashionista_h[i] > 0:*p '<a href="exec:gt ''clothing_QV'', ''change'', ''fashionista'', <<i>>"><img src="images/pc/items/fashionista/dress/<<i>>.jpg" 	height="250" /></a>'
+							if fashionista_dress_s[i] = 0 and fashionista_dress_h[i] > 0:*p '<a href="exec:gt ''clothing_QV'', ''change'', ''fashionista_dress'', <<i>>"><img src="images/pc/items/fashionista/dress/<<i>>.jpg" 	height="250" /></a>'
 						end
 					end
 				end
 			end
 		end
 		i += 1
-		if i <= ARRSIZE('fashionista'):jump 'loopfashionista'
+		if i <= ARRSIZE('fashionista_dress'):jump 'loopfashionista_dress'
 
 		i = 1
 		:loopfashionista_outfits
@@ -1298,92 +1298,49 @@ if $ARGS[0] = 'change':
 		
 		!!Therapist force exhibitionist clothing check
 		if hypnoClothes > 0:
-			if CloStyle2 = 4:
-				if CloThinness < 3:		
-					act 'Wear this outfit':
-						cla
-						*clr		
-						'You pick up the uniform and think about trying them on... but you don''t really like wearing these type of uniform. You wonder if you can find more revealing uniform.'
-						gs 'willpower', 'misc', 'resist', 'easy'
-						will_cost += hypnoTime/CloThinness
-						if will_cost <= pcs_willpwr:
-							act 'Put them on anyways (<<will_cost>> Willpower)':
-								gs 'willpower', 'pay', 'resist'
-								gs 'stat'
-								gs 'clothing', 'wear', $ARGS[1], ARGS[2]
-
-								if $regularwornclothingtype = '':
-									gt 'wardrobe', 'main'
-								else
-									gt 'clothing_QV', 'gym'
-								end
-							end
-						else
-							act 'Put them on anyways (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-						end
-						act 'Back':
+			if CloThinness >= 6 or CloStyle2 = 4 or $ARGS[1] = 'salacious_outfits' or $ARGS[1] = 'salacious_dress' _ 
+			or (($ARGS[1] = 'eroto_outfits' or $ARGS[1] = 'eroto_dress' or $ARGS[1] = 'eroto_strip') and CloThinness >= 3) _ 
+			or ($ARGS[1] = 'danilovich_outfits' and CloThinness >= 5):
+				act 'Wear this outfit':
+					gs 'clothing', 'wear', $ARGS[1], ARGS[2]
+
+					if $regularwornclothingtype = '':
+						gt 'wardrobe', 'main'
+					else
+						gt 'clothing_QV', 'gym'
+					end
+				end
+			else
+				act 'Wear this outfit':
+					cla
+					*clr		
+					'You pick up the outfit and think about trying them on... but you don''t really like wearing these type of outfits'
+					gs 'willpower', 'misc', 'resist', 'easy'
+					will_cost += hypnoTime
+					if will_cost <= pcs_willpwr:
+						act 'Put them on anyways (<<will_cost>> Willpower)':
+							gs 'willpower', 'pay', 'resist'
+							gs 'stat'
+							gs 'clothing', 'wear', $ARGS[1], ARGS[2]
+
 							if $regularwornclothingtype = '':
 								gt 'wardrobe', 'main'
 							else
 								gt 'clothing_QV', 'gym'
 							end
 						end
-					end	
-				else
-					act 'Wear this outfit':
-						gs 'clothing', 'wear', $ARGS[1], ARGS[2]
-
-						if $regularwornclothingtype = '':
-							gt 'wardrobe', 'main'
-						else
-							gt 'clothing_QV', 'gym'
-						end
+					else
+						act 'Put them on anyways (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
 					end
-				end
-			else
-				if CloThinness >= 6 or $ARGS[1] = 'salacious_outfits' or $ARGS[1] = 'salacious_dress' _
-				or (($ARGS[1] = 'eroto_outfits' or $ARGS[1] = 'eroto_dress' or $ARGS[1] = 'eroto_strip') and CloThinness >= 4):
-					act 'Wear this outfit':
-						gs 'clothing', 'wear', $ARGS[1], ARGS[2]
-
+					act 'Back':
 						if $regularwornclothingtype = '':
 							gt 'wardrobe', 'main'
 						else
 							gt 'clothing_QV', 'gym'
 						end
 					end
-				else
-					act 'Wear this outfit':
-						cla
-						*clr		
-						'You pick up the outfit and think about trying them on... but you don''t really like wearing these type of outfits'
-						gs 'willpower', 'misc', 'resist', 'easy'
-						will_cost += hypnoTime
-						if will_cost <= pcs_willpwr:
-							act 'Put them on anyways (<<will_cost>> Willpower)':
-								gs 'willpower', 'pay', 'resist'
-								gs 'stat'
-								gs 'clothing', 'wear', $ARGS[1], ARGS[2]
-
-								if $regularwornclothingtype = '':
-									gt 'wardrobe', 'main'
-								else
-									gt 'clothing_QV', 'gym'
-								end
-							end
-						else
-							act 'Put them on anyways (<font color="red"><<will_cost>> Willpower</font>)': '<br><font color="red">You don''t have enough willpower to use this action.</font>'
-						end
-						act 'Back':
-							if $regularwornclothingtype = '':
-								gt 'wardrobe', 'main'
-							else
-								gt 'clothing_QV', 'gym'
-							end
-						end
-					end	
-				end
-			end	
+				end	
+			end
 		else
 			act 'Wear this outfit':
 				gs 'clothing', 'wear', $ARGS[1], ARGS[2]

+ 8 - 2
locations/clothing_attributes.qsrc

@@ -133,8 +133,8 @@ elseif $ARGS[0] = 'coco_outfits':
 	*P FUNC('$attributes_coco_outfits', $ARGS[0], ARGS[1])
 elseif $ARGS[0] = 'coco_dress':
 	*P FUNC('$attributes_coco_dress', $ARGS[0], ARGS[1])
-elseif $ARGS[0] = 'fashionista':
-	*P FUNC('$attributes_fashionista', $ARGS[0], ARGS[1])
+elseif $ARGS[0] = 'fashionista_dress':
+	*P FUNC('$attributes_fashionista_dress', $ARGS[0], ARGS[1])
 elseif $ARGS[0] = 'fashionista_outfits':
 	*P FUNC('$attributes_fashionista_outfits', $ARGS[0], ARGS[1])
 elseif $ARGS[0] = 'moncheri_dress':
@@ -277,5 +277,11 @@ if $ARGS[0] ! 'allure_swimsuit' and $ARGS[0] ! 'allure_bikinis' and $ARGS[0] ! '
 	end
 end
 
+if CloTopCut > 1:
+	if tits = 2 or tits = 3: CloTopCut += 1
+	if tits >= 4: CloTopCut += 2
+	if CloTopCut > 2 and tits >=6: CloTopCut += 1
+end
+
 --- clothing_attributes ---------------------------------
 

+ 4 - 4
locations/core_library.qsrc

@@ -14,8 +14,8 @@ if $ARGS[0] = 'init':
 
     !!  Summer School
     
-     !! alterstrtimg is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
-    if alterstrtimg = 13 or mod_ballet['beta'] = 1: 
+     !! $start_type['cat'] is the mc backstry, mod_ballet[beta] is a test variable to initiate regardless
+    if $start_type['cat'] = 'dancer' or mod_ballet['beta'] = 1: 
         if daystart = 1:
             mod_ballet['blocker'] = 1
         end    
@@ -25,7 +25,7 @@ if $ARGS[0] = 'init':
                 gs 'pushkin_ballet_init', 'init'
             end
     
-            if  (daystart > 6 and mod_ballet['letter'] = 0) or daystart > 45:	
+            if  ((daystart >= 6 and daystart <= 14) and mod_ballet['letter'] = 0) or (daystart >= 45 and balletqw['school'] > 1):	
                 gs 'pushkin_ballet_init', 'start'
             end 
         end
@@ -47,7 +47,7 @@ if $ARGS[0] = 'init':
         if $loc = 'pav_commcenter':
             if month = 7 and day = 3 and (hour >= 16 and hour < 17) and mod_ballet['letter'] = 1:
                 ! Pre-flight - travel to school dorms
-                act '<font color="#80E656">Get on the bus</font>': gs 'shortgs', 'remove_array_element', 'mod_ballet', 'letter' & gt 'pushkin_ballet_res', 'start'	
+                act 'Get on the bus': gt 'pushkin_ballet_res', 'start'	
             end
         end
     

+ 35 - 55
locations/cum_call.qsrc

@@ -29,41 +29,8 @@ gs 'cum_call', 'anus' - for an unknown partner named "unknown", or
 gs 'cum_call', 'anus', 'plumber' - for an unknown partner named "plumber"}
 
 if $ARGS[0] ! 'precum':
-	$cumboy = $boy
-
-	if ARGS[5] ! 0:
-		sexvolume = ARGS[5]
-	end
-
-	if ARGS[4] ! 0:
-		sexspecpot = ARGS[4]
-	else
-		sexspecpot = 0
-	end
 
-	if ARGS[3] = 1:
-		sexcontra = 1
-	elseif ARGS[3] = 2:
-		sexcontra = 2
-	elseif ARGS[3] = 3:
-		sexcontra = 3
-	elseif ARGS[3] = 4:
-		sexcontra = 4
-	elseif ARGS[3] = 5:
-		sexcontra = 5
-	elseif ARGS[3] = 6:
-		sexcontra = 6
-	elseif ARGS[3] = 7:
-		sexcontra = 7
-	end
-
-	if ARGS[2] = 2:
-		sexunaware = 1
-	elseif ARGS[2] = 1:
-		sexpartkno = 1
-	else
-		sexpartkno = 0
-	end
+	if $boy ! $ARGS[1] and $ARGS[1] ! '': $boy = $ARGS[1]
 
 	!!This check if the name passed is not in the new MGX format
 	if $ARGS[1] = '' or mid($ARGS[1],2,1) > 10:
@@ -84,49 +51,62 @@ if $ARGS[0] ! 'precum':
 		gs 'boyStat', $ARGS[1]
 	end
 
-	if $ARGS[0] = 'labia':
+	$cumboy = $boy
+
+	sexvolume  = iif(ARGS[5] ! 0,  ARGS[5], 40)
+	sexspecpot = iif(ARGS[4] ! 0,  ARGS[4], 0)
+	sexcontra  = max(0, min(7, ARGS[3]), sexcontra)
+
+	sexpartkno = iif(npc_love[$boy] > 0, 1, 0)
+	if ARGS[2] = 2:
+		sexunaware = 1
+	elseif ARGS[2] = 1:
+		sexpartkno = 1
+	end
+
+		if arrpos('$ARGS', 'labia') >= 0:
 		spafinloc = 1
-	elseif $ARGS[0] = 'pantyfront':
+	elseif arrpos('$ARGS', 'pantyfront') >= 0:
 		spafinloc = 2
-	elseif $ARGS[0] = 'anus':
+	elseif arrpos('$ARGS', 'anus') >= 0:
 		spafinloc = 3
-	elseif $ARGS[0] = 'anal':
+	elseif arrpos('$ARGS', 'anal') >= 0:
 		spafinloc = 3
-	elseif $ARGS[0] = 'butt':
+	elseif arrpos('$ARGS', 'butt') >= 0:
 		spafinloc = 4
-	elseif $ARGS[0] = 'pantyrear':
+	elseif arrpos('$ARGS', 'pantyrear') >= 0:
 		spafinloc = 5
-	elseif $ARGS[0] = 'clothes_hidden':
+	elseif arrpos('$ARGS', 'clothes_hidden') >= 0:
 		spafinloc = 6
-	elseif $ARGS[0] = 'clothes':
+	elseif arrpos('$ARGS', 'clothes') >= 0:
 		spafinloc = 7
-	elseif $ARGS[0] = 'back':
+	elseif arrpos('$ARGS', 'back') >= 0:
 		spafinloc = 8
-	elseif $ARGS[0] = 'legs':
+	elseif arrpos('$ARGS', 'legs') >= 0:
 		spafinloc = 9
-	elseif $ARGS[0] = 'feet':
+	elseif arrpos('$ARGS', 'feet') >= 0:
 		spafinloc = 9
-	elseif $ARGS[0] = 'arms':
+	elseif arrpos('$ARGS', 'arms') >= 0:
 		spafinloc = 10
-	elseif $ARGS[0] = 'face':
+	elseif arrpos('$ARGS', 'face') >= 0:
 		spafinloc = 11
-	elseif $ARGS[0] = 'mouth':
+	elseif arrpos('$ARGS', 'mouth') >= 0:
 		spafinloc = 12
-	elseif $ARGS[0] = 'mouth_swallow':
+	elseif arrpos('$ARGS', 'mouth_swallow') >= 0:
 		spafinloc = 12
 		stat['swallow'] += 1
-	elseif $ARGS[0] = 'hands':
+	elseif arrpos('$ARGS', 'hands') >= 0:
 		spafinloc = 13
-	elseif $ARGS[0] = 'stomach':
+	elseif arrpos('$ARGS', 'stomach') >= 0:
 		spafinloc = 14
-	elseif $ARGS[0] = 'breasts':
+	elseif arrpos('$ARGS', 'breasts') >= 0:
 		spafinloc = 15
-	elseif $ARGS[0] = 'hair':
+	elseif arrpos('$ARGS', 'hair') >= 0:
 		spafinloc = 16
-	elseif $ARGS[0] = 'internalcondom':
+	elseif arrpos('$ARGS', 'internalcondom') >= 0:
 		spafinloc = 17
 	else
-		spafinloc = 0
+		spafinloc = max(0, min(17, ARGS[0]))
 		!Vagina and default
 	end
 

+ 82 - 29
locations/cum_cleanup.qsrc

@@ -52,8 +52,15 @@ if $ARGS[0] = 'cleanloc' and arrsize('ARGS') > 1:
 	if i < arrsize('$sparrnam'):
 		if sparrloc[i] = ARGS[1]:
 			if sparrloc[i] = 0 or sparrloc[i] = 3:
-				sparrvol[i] = 0
-				sparrslc[i] = 0
+				if mc_inventory['enema_kit'] = 1 or cheatKlisma = 0:
+					cumsumvag -= iif(sparrloc[i]=0,sparrvol[i],0)
+					cumsumass -= iif(sparrloc[i]=3,sparrvol[i],0)
+					sparrvol[i] = 0
+					sparrslc[i] = 0
+				else
+					cumspclnt = 15
+					gs 'cum_cleanup'
+				end
 			else
 				gs 'cum_cleanup', 'cleandeposit', i
 			end
@@ -63,6 +70,8 @@ if $ARGS[0] = 'cleanloc' and arrsize('ARGS') > 1:
 	end
 elseif $ARGS[0] = 'cleandeposit' and arrsize('ARGS') > 1:
 	cumsumbod -= sparrvol[ARGS[1]]
+	cumsumvag -= iif(sparrloc[ARGS[1]]=0,sparrvol[ARGS[1]],0)
+	cumsumass -= iif(sparrloc[ARGS[1]]=3,sparrvol[ARGS[1]],0)
 	KILLVAR 'sparrage',ARGS[1]
 	KILLVAR 'sparrloc',ARGS[1]
 	KILLVAR '$sparrnam',ARGS[1]
@@ -71,6 +80,10 @@ elseif $ARGS[0] = 'cleandeposit' and arrsize('ARGS') > 1:
 	KILLVAR 'sparrvol',ARGS[1]
 	KILLVAR 'sparrslc',ARGS[1]
 	KILLVAR 'sparrcnt',ARGS[1]
+	cumloc[ARGS[1]] = 0
+	if cumsumbod < 0: cumsumbod = 0
+	if cumsumvag <= 0: cumsumvag = 0 & cum_vol['vagina'] = 0 & cumvol[0] = 0 & cum_loc['vagina'] = 0 & cumloc[0] = 0
+	if cumsumass <= 0: cumsumass = 0 & cum_vol['anus'] = 0   & cumvol[3] = 0 & cum_loc['anus'] = 0   & cumloc[3] = 0
 elseif $ARGS[0] = 'cleanwomb' and arrsize('ARGS') > 1:
 	KILLVAR 'cumarrcpt',ARGS[1]
 	KILLVAR 'cumarrppt',ARGS[1]
@@ -81,7 +94,7 @@ elseif $ARGS[0] = 'cleanwomb' and arrsize('ARGS') > 1:
 	KILLVAR 'cumarrcnt',ARGS[1]
 	KILLVAR 'cumarrcon',ARGS[1]
 elseif $ARGS[0] = 'cumcondslip':
-	if cumcondslip_deep > (pcs_vag / 2):
+	if cumcondslip_deep > (pcs_vag / 2) and vgape < 3:
 		'The condom is too deep inside you to be pulled out by hand. You need to seek professional help!'
 	else
 		gs 'cum_cleanup', 'cleanloc', 17
@@ -102,6 +115,7 @@ elseif $ARGS[0] = 'reset':
 	KILLVAR 'cumarrcon'
 	KILLVAR 'cumcount'
 	KILLVAR 'cumloc'
+	killvar 'cum_loc'
 	KILLVAR '$cumowner'
 	KILLVAR 'cumspclnt'
 	KILLVAR 'cumvolume'
@@ -124,21 +138,21 @@ elseif $ARGS[0] = 'reset':
 	cumsumvag = 0
 	cumsumass = 0
 	Enable_clearcum = 0
-	spdirtyn = 0
-	spdirtyv = 0
-	spdirty = 0
 elseif $ARGS[0] = '':
-	cumsumbod = 0
-	cumsumvag = 0
-	cumsumass = 0
-
+	if cumspclnt = 0: exit
 	KILLVAR 'spafinloc'
 	killvar 'toclean'
 	killvar 'deresidue'
 	if cumspclnt = 1 or cumspclnt = 10:
+		if hypnoAddict > 0:
+			!{full clean but skipping internal due to hypno}
+			cumspclnt = 18
+			gs 'cum_cleanup'
+			exit
+		end
 		!{full external clean}
-		deresidue[arrsize('deresidue')] = 0
-		deresidue[arrsize('deresidue')] = 3
+		if isprok = 0 and vibratorIN = 0: deresidue[arrsize('deresidue')] = 0
+		if analplugin = 0: deresidue[arrsize('deresidue')] = 3
 		toclean[arrsize('toclean')] = 1
 		toclean[arrsize('toclean')] = 2
 		toclean[arrsize('toclean')] = 4
@@ -162,10 +176,9 @@ elseif $ARGS[0] = '':
 		toclean[arrsize('toclean')] = 0
 		toclean[arrsize('toclean')] = 3
 		toclean[arrsize('toclean')] = 17
+		if hypnoAddict > 0 and (cumloc[0] > 0 or cumloc[3] > 0): 'You have no reason to, but you carefully avoid cleaning out your pussy and ass.'
 	elseif cumspclnt = 4:
 		!{external body clean}
-		deresidue[arrsize('deresidue')] = 0
-		deresidue[arrsize('deresidue')] = 3
 		toclean[arrsize('toclean')] = 1
 		toclean[arrsize('toclean')] = 4
 		toclean[arrsize('toclean')] = 8
@@ -214,6 +227,7 @@ elseif $ARGS[0] = '':
 		toclean[arrsize('toclean')] = 4
 		deresidue[arrsize('deresidue')] = 0
 		deresidue[arrsize('deresidue')] = 3
+		if hypnoAddict > 0 and (cumloc[0] > 0 or cumloc[3] > 0): 'You have no reason to, but you carefully avoid cleaning out your pussy and ass.'
 	elseif cumspclnt = 16:
 		!{Breasts}
 		toclean[arrsize('toclean')] = 15
@@ -248,36 +262,75 @@ elseif $ARGS[0] = '':
 		KILLVAR 'sparrvol'
 		KILLVAR 'sparrslc'
 		KILLVAR 'sparrcnt'
+		KILLVAR 'cumloc'
+		KILLVAR 'cum_loc'
+		KILLVAR 'cumvol'
+		KILLVAR 'cum_vol'
 	end
 
 	i = 0
 	:cumcleanloop
 	if i < arrsize('$sparrnam'):
 		tmp = arrpos('deresidue', sparrloc[i])
-		if tmp ! -1 and tmp < arrsize('deresidue'): sparrslc[i] = 0 & sparrvol[i] = 0
+		if tmp ! -1 and tmp < arrsize('deresidue'):
+			!! vagina
+			if sparrloc[i] = 0:
+				!! cannot be completely cleaned with tissues\toilet use\hypno block\no enema kit
+				if FUNC('Cum_Manage', 'check_innards', sparrloc[i]) = 1 _ 
+				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
+				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
+					cumsumbod -= sparrvol[i] & cumsumvag -= sparrvol[i]
+					sparrslc[i] = 0 & sparrvol[i] = 0
+					isprok = 0 & vibratorIN = 0
+				end
+			!! ass
+			elseif sparrloc[i] = 3:
+				if FUNC('Cum_Manage', 'check_innards', sparrloc[i]) = 1 or cumspclnt = 7 _ 
+				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
+				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
+					cumsumbod -= sparrvol[i] & cumsumass -= sparrvol[i]
+					sparrslc[i] = 0 & sparrvol[i] = 0
+					analplugin = 0 & analplugout = 0
+				end
+			else
+				cumsumbod -= sparrvol[i]
+				sparrslc[i] = 0 & sparrvol[i] = 0
+			end
+		end
 
 		tmp = arrpos('toclean', sparrloc[i])
 		if tmp ! -1 and tmp < arrsize('toclean'):
-			gs 'cum_cleanup', 'cleandeposit', i
-		else
-			i += 1
-			cumsumbod += sparrvol[i]
+			!! vagina
 			if sparrloc[i] = 0:
-				cumsumvag += sparrvol[i]
+				if cumsumvag*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[i], 1) and isprok = 0 and vibratorIN = 0 _ 
+				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
+				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
+					gs 'cum_cleanup', 'cleandeposit', i
+					if cumspclnt = 3: isprok = 0 & vibratorIN = 0
+				end
+			!! ass
 			elseif sparrloc[i] = 3:
-				cumsumass += sparrvol[i]
+				if (cumsumass*rand(6,9)/6 >= FUNC('Cum_Manage', 'check_innards', sparrloc[i], 1) and analplugin = 0) or cumspclnt = 7 _ 
+				or (hypnoAddict = 0 and (mc_inventory['enema_kit'] = 1 or cheatKlisma = 0) _ 
+				and ((cumspclnt = 10 or cumspclnt = 1 or cumspclnt = 3) or cheatKlisma = 0)):
+					gs 'cum_cleanup', 'cleandeposit', i
+					if cumspclnt = 3 or cumspclnt = 7: analplugin = 0
+				end
+			else
+				gs 'cum_cleanup', 'cleandeposit', i
 			end
+		else
+			i += 1
 		end
 		jump 'cumcleanloop'
 	end
-	spdirty = 0
-	cumloc[0] = 0
-	spdirtyn = 0
-	spdirtyv = 0
-	cumloc[12] = 0
-	cumloc[6] = 0
-	cumloc[7] = 0
-	killvar 'cumloc'
+	killvar 'toclean'
+	killvar 'deresidue'
+	killvar 'tmp'
+	killvar 'i'
+	if cumsumvag > 0: cum_vol['vagina'] = cumsumvag & cumvol[0] = cumsumvag & cum_loc['vagina'] = 1 & cumloc[0] = 1
+	if cumsumass > 0: cum_vol['anus'] = cumsumass   & cumvol[3] = cumsumass & cum_loc['anus'] = 1   & cumloc[3] = 1
+
 end
 
 --- cum_cleanup ---------------------------------

+ 2 - 1
locations/dachi.qsrc

@@ -22,7 +22,8 @@ end
 'At the alley entrance dug into the ground is a <a href="exec:gt ''etoexhib'', ''pos7''">column with ads</a>.'
 'At the end of the alley there is <a href="exec:gt ''etoexhib'', ''pos6''">a spring with spring water</a>.'
 
-act 'Go to the highway':minut += 15 & nroad = 5 & gt 'road'
+act 'Walk to the bus station (0:03)': minut += 3 & gt 'bus', 'communal'
+act 'Go to the highway (0:15)': minut += 15 & nroad = 5 & gt 'road'
 
 if func('homes_properties', 'has_access','village_cottage'):
 	'Enter <a href="exec:gt ''dachamy'', ''start''">your yard</a>.'

+ 153 - 121
locations/dinSex.qsrc

@@ -32,91 +32,121 @@ end
 $penis_desc = $dick_girth + ', ' + $penis_desc
 
 if $ARGS[0] = 'std_trigger':
-	tipvenerarand = rand(0, 10)
-	if protect = 1:
-		if rand(0, 1000) = 1000: gs 'dinSex', 'disease_picker'
+	if cheatHealth = 1 or rand(pcs_health/10, pcs_health) > 600: exit
+	if npc_rel[$boy] > rand(80,90): exit
+	if npc_love[$boy] > rand(40,60): exit
+	if npc_sexual[$boy]+npc_sex[$boy] > 0 and rand(10) > 5: exit
+
+	!! Protected
+	if (protect = 1 or sexcontra = 3) and noprotect = 0:
+		if rand(0, 1000) = 666:
+			if $ARGS[1] <> 'low': gs 'dinSex', 'disease_picker'
+		end
+	!! Broke \ Slipped off
+	elseif sexcontra = 4 or sexcontra = 5:
+		if rand(0, 100) >= iif($ARGS[1] = 'high',65,iif($ARGS[1] = 'low',85,75)): gs 'dinSex', 'disease_picker'
+	!! Sabotaged
+	elseif sexcontra = 6 or sexcontra = 7:
+		if rand(0, 100) >= iif($ARGS[1] = 'high',70,iif($ARGS[1] = 'low',90,80)): gs 'dinSex', 'disease_picker'
+	!! Unprotected
 	else
-		if rand(0, 100) >= 80: gs 'dinSex', 'disease_picker'
+		if rand(0, 100) >= iif($ARGS[1] = 'high',60,iif($ARGS[1] = 'low',80,70)): gs 'dinSex', 'disease_picker'
 	end
 end
 
-if $ARGS[0] = 'disease_picker': 
-	if cheatHealth = 0:
-		if tipvenerarand < 5:
-			!!candidiasis/thrush/yeast infection
-			if rand(1, 100) > 85 and KandidozOnce = 0:
-				KandidozOnce = 1
-				Kandidoz += 1
-			end
-		elseif tipvenerarand < 7:
-			!!gonorrhea/triper
-			if rand(1, 100) > 95 and TriperOnce = 0:
-				TriperOnce = 1
-				Triper += 1
-				Venera += 1
-			end
-		elseif tipvenerarand = 7:
-			!!syphilis
-			if rand(1, 100) > 95 and SifacOnce = 0:
-				SifacOnce = 1
-				Sifilis += 1
-				Venera += 1
-			end
-		elseif tipvenerarand = 8:
-			!!herpes
-			if rand(1, 100) > 90 and GerpesOnce = 0:
-				GerpesOnce = 1
-				Venera += 1
-				Gerpes += 1
-				GenHerpes = 1
-			end
+if $ARGS[0] = 'disease_picker':
+	tipvenerarand = rand(0, 10)
+
+	if tipvenerarand < 5:
+		!!candidiasis/thrush/yeast infection
+		if rand(1, 100) > 85 and KandidozOnce = 0:
+			KandidozOnce = 1
+			Kandidoz = rand(-12,-6)
 		end
-	end	
+	elseif tipvenerarand < 7:
+		!!gonorrhea/triper
+		if rand(1, 100) > 95 and TriperOnce = 0:
+			TriperOnce = 1
+			Triper = rand(-11,-6)
+			Venera += 1
+		end
+	elseif tipvenerarand = 7:
+		!!syphilis
+		if rand(1, 100) > 95 and SifacOnce = 0:
+			SifacOnce = 1
+			Sifilis = rand(-9,-5)
+			Venera += 1
+		end
+	elseif tipvenerarand = 8:
+		!!herpes
+		if rand(1, 100) > 90 and GerpesOnce = 0:
+			GerpesOnce = 1
+			Venera += 1
+			Gerpes = rand(-10,-6)
+			GenHerpes = 1
+		end
+	end
+	killvar 'tipvenerarand'
 end
 
 if $ARGS[0] = 'std_trigger_oral':
-	tipvenerarand = rand(0, 10)
-	if protect = 1:
-		if rand(0, 1000) = 1000: gs 'dinSex', 'disease_picker_oral'
+	if cheatHealth = 1 or rand(pcs_health/10, pcs_health) > 300: exit
+	if npc_rel[$boy] > rand(80,90): exit
+	if npc_love[$boy] > rand(40,60): exit
+	if npc_sexual[$boy]+npc_sex[$boy] > 0 and rand(10) > 5: exit
+
+	!! Protected
+	if (protect = 1 or sexcontra = 3) and noprotect = 0:
+		if rand(0, 1000) = 666:
+			if $ARGS[1] <> 'low': gs 'dinSex', 'disease_picker_oral'
+		end
+	!! Broke \ Slipped off
+	elseif sexcontra = 4 or sexcontra = 5:
+		if rand(0, 100) >= iif($ARGS[1] = 'high',70,iif($ARGS[1] = 'low',90,80)): gs 'dinSex', 'disease_picker_oral'
+	!! Sabotaged
+	elseif sexcontra = 6 or sexcontra = 7:
+		if rand(0, 100) >= iif($ARGS[1] = 'high',75,iif($ARGS[1] = 'low',95,85)): gs 'dinSex', 'disease_picker_oral'
+	!! Unprotected
 	else
-		if rand(0, 100) >= 80: gs 'dinSex', 'disease_picker_oral'
+		if rand(0, 100) >= iif($ARGS[1] = 'high',65,iif($ARGS[1] = 'low',85,75)): gs 'dinSex', 'disease_picker_oral'
 	end
 end
 
 if $ARGS[0] = 'disease_picker_oral':
-	if cheatHealth = 0:
-		if tipvenerarand >= 5 and tipvenerarand < 7:
-			if rand(1, 100) > 95 and TriperOnce = 0:
-				TriperOnce = 1
-				TriperOral += 1
-				Venera += 1
-				if rand (0,100) < 15: TriperOralSigns = 1 
-			end
-		elseif tipvenerarand = 7:
-			if rand(0,1) = 1:
-				!!syphilis
-				if rand(1, 100) > 95 and SifacOnce = 0:
-					SifacOnce = 1
-					Sifilis += 1
-					Venera += 1
-				end
-			end
-		elseif tipvenerarand < 5:
-			!!candidiasis/thrush/yeast infection
-			if rand(1, 100) > 85 and KandidozOnce = 0:
-				KandidozOnce = 1
-				Kandidoz += 1
-			end
-		elseif tipvenerarand = 8:
-			!!herpes
-			if rand(1, 100) > 90 and GerpesOnce = 0:
-				GerpesOnce = 1
+	tipvenerarand = rand(0, 10)
+
+	if tipvenerarand >= 5 and tipvenerarand < 7:
+		if rand(1, 100) > 95 and TriperOnce = 0:
+			TriperOnce = 1
+			TriperOral = rand(-15,-9)
+			Venera += 1
+			if rand (0,100) < 15: TriperOralSigns = 1 
+		end
+	elseif tipvenerarand = 7:
+		if rand(0,1) = 1:
+			!!syphilis
+			if rand(1, 100) > 95 and SifacOnce = 0:
+				SifacOnce = 1
+				Sifilis = rand(-13,-8)
 				Venera += 1
-				Gerpes += 1
-				OrHerpes = 1
 			end
 		end
+	elseif tipvenerarand < 5:
+		!!candidiasis/thrush/yeast infection
+		if rand(1, 100) > 85 and KandidozOnce = 0:
+			KandidozOnce = 1
+			Kandidoz = rand(-21,-14)
+		end
+	elseif tipvenerarand = 8:
+		!!herpes
+		if rand(1, 100) > 90 and GerpesOnce = 0:
+			GerpesOnce = 1
+			Venera += 1
+			Gerpes = rand(-16,-11)
+			OrHerpes = 1
+		end
 	end
+	killvar 'tipvenerarand'
 end
 
 if $ARGS[0] = 'wear_condom':
@@ -124,13 +154,17 @@ if $ARGS[0] = 'wear_condom':
 	if mc_inventory['equipped_condoms'] > 0:
 		dynamic $prezik
 		protect = 1
-		if preziktype = 2:
-			sexcontra = 4
-			'<<$boydesc>> takes your sabotaged condom and puts it on, not even noticing anything off.'
+		if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: 
+			mc_inventory['bad_condoms'] -= 1
+			noprotect = 1
+			sexcontra = rand(4,5)
+			*p '<<ucase(mid($boydesc,1,1))>><<mid($boydesc,2,len($boydesc)-1)>> takes your '+iif(preziktype = 2,'sabotaged condom and puts it on, not even noticing anything off.','condom and puts it on <<$xyr>> cock.')
 		else
 			sexcontra = 3
-			'<<$boydesc>> takes your condom and puts it on <<$xyr>> cock.'
+			*p '<<$boydesc>> takes your condom and puts it on <<$xyr>> cock.'
+			noprotect = 0
 		end
+		if preziktype = 2: sexcontra = 7 & noprotect = 1
 	else
 		sexcontra = 0
 	end
@@ -139,10 +173,11 @@ end
 !! this procedure calls 'arousal','vaginal', so the rest of the parameters for arousal should be passed as parameters: call like gs 'dinsex','vaginal_sex',10,'rough','sub'
 if $ARGS[0] = 'vaginal_sex':
 	frost = 0 &! the sex heats
+	gs 'arousal','vaginal',ARGS[1],$ARGS[2],$ARGS[3],$ARGS[4],$ARGS[5],$ARGS[6],$ARGS[7],$ARGS[8]
 	vaginal_tightness = 5 + vgrdif + vltdif - pcs_horny / 10
 	arousal_modifier = 12 - vaginal_tightness
+	$temp_mens = iif(cycle <= 0,' and a bit of your period leaks from your vagina','')
 	if pcs_vag > 0:
-		$temp_mens = iif(cycle <= 0,' and a bit of your period leaks from your vagina','')
 		if vaginal_tightness >= 30: 
 			'You let out a groan when <<$boydesc>> penetrates you. You are too tight to take <<$xyr>> just yet, <<$xe>> is tearing you apart!'
 			'You gasp and scream while <<$xyr>> <<$penis_desc>> painfully stretches and tears your pussy<<$temp_mens>>.'
@@ -161,18 +196,15 @@ if $ARGS[0] = 'vaginal_sex':
 		elseif vaginal_tightness < -3: 
 			'You feel <<$boydesc>>''s <<$penis_desc>> sliding through your wet folds<<$temp_mens>>. You savor the intense pleasure from the <<$penis_desc>> inside you, your cunt aching to be filled even more.'
 		end
-		gs 'arousal','vaginal',$ARGS[1],$ARGS[2],$ARGS[3],$ARGS[4],$ARGS[5],$ARGS[6],$ARGS[7],$ARGS[8]
 
 		pcs_horny += arousal_modifier
 		pcs_mood += arousal_modifier
 	
 	else
-		$temp_mens = iif(cycle <= 0,' and a bit of your period leaks from your vagina','')
 		pcs_horny += arousal_modifier * 2
 		pcs_mood += arousal_modifier * 2
 		'<<$boydesc>> pushes <<$xyr>> <<$penis_desc>> into your unexplored pussy gently. It is a bit painful, but as your lust builds up you do not want to wait anymore.'
 		'With the next push from <<$boydesc>>, you push your ass towards <<$xyr>> cock. You feel your hymen break and his cock slide into deep inside you, <<$xyr>> head rubbing against your no longer untouched walls as you both moan very loudly.'
-		gs 'arousal','vaginal',$ARGS[1],$ARGS[2],$ARGS[3],$ARGS[4],$ARGS[5],$ARGS[6],$ARGS[7],$ARGS[8]
 	end
 	killvar '$temp_mens'
 end
@@ -187,15 +219,15 @@ if $ARGS[0] = 'boy_puts_condom':
 			if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: 
 				mc_inventory['bad_condoms'] -= 1
 				noprotect = 1
-				sexcontra = 7
+				sexcontra = rand(4,5)
 				*p '<<ucase(mid($boydesc,1,1))>><<mid($boydesc,2,len($boydesc)-1)>> takes your '+iif(preziktype = 2,'sabotaged ','')+ 'condom and puts it on <<$xyr>> <<dick>> centimeter dick.'
 			else
 				sexcontra = 3
 				*p '<<ucase(mid($boydesc,1,1))>><<mid($boydesc,2,len($boydesc)-1)>> takes your condom and puts it on <<$xyr>> <<dick>> centimeter dick.'
 				noprotect = 0
 			end
+			if preziktype = 2: sexcontra = 7 & noprotect = 1
 			mc_inventory['equipped_condoms'] -= 1
-			sexcontra = iif(preziktype = 2,7,sexcontra) 
 		else
 			sexcontra = 0
 			!! the hormonal contraception is still taken in account
@@ -208,13 +240,13 @@ if $ARGS[0] = 'boy_puts_condom':
 			if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: 
 				mc_inventory['bad_condoms'] -= 1
 				noprotect = 1
-				sexcontra = 7
+				sexcontra = rand(4,5)
 			else
 				sexcontra = 3
 				noprotect = 0
 			end
+			if preziktype = 2: sexcontra = 7 & noprotect = 1
 			mc_inventory['equipped_condoms'] -= 1
-			sexcontra = iif(preziktype = 2,7,sexcontra) 
 		else
 			sexcontra = 0
 			!! the hormonal contraception is still taken in account
@@ -240,15 +272,15 @@ if $ARGS[0] = 'pc_puts_condom':
 			if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: 
 				mc_inventory['bad_condoms'] -= 1
 				noprotect = 1
-				sexcontra = 7
+				sexcontra = rand(4,5)
 				*p 'You take your '+iif(preziktype = 2,'sabotaged ','')+ 'condom and put it on <<$xyr>> <<dick>> centimeter dick.'
 			else
 				sexcontra = 3
 				*p 'You take your condom and put it on <<$xyr>> <<dick>> centimeter dick.'
 				noprotect = 0
 			end
+			if preziktype = 2: sexcontra = 7 & noprotect = 1
 			mc_inventory['equipped_condoms'] -= 1
-			sexcontra = iif(preziktype = 2,7,sexcontra) 
 		else
 			sexcontra = 0
 			!! the hormonal contraception is still taken in account
@@ -261,13 +293,13 @@ if $ARGS[0] = 'pc_puts_condom':
 			if rand(1,mc_inventory['equipped_condoms']) <= mc_inventory['bad_condoms']: 
 				mc_inventory['bad_condoms'] -= 1
 				noprotect = 1
-				sexcontra = 7
+				sexcontra = rand(4,5)
 			else
 				sexcontra = 3
 				noprotect = 0
 			end
+			if preziktype = 2: sexcontra = 7 & noprotect = 1
 			mc_inventory['equipped_condoms'] -= 1
-			sexcontra = iif(preziktype = 2,7,sexcontra) 
 		else
 			sexcontra = 0
 			!! the hormonal contraception is still taken in account
@@ -280,29 +312,28 @@ if $ARGS[0] = 'boy_wants_anal':
 	$bwa_boy = iif($ARGS[1] = '',$boydesc,$ARGS[1])
 	if $bwa_boy = 'lubri': $bwa_boy = $boydesc
 	if analplugin = 1:
+		analplugin = 0 & analplugout = 1
 		if pcs_ass < 16:
-			'<<$bwa_boy>> pulls the plug out of your narrow and tight ass.'
-			analplugout = 1
+			*p '<<$bwa_boy>> pulls the plug out of your narrow and tight ass, '
 		else
-			'<<$bwa_boy>> pulls the plug out of your ass.'
-			analplugout = 1
+			*p '<<$bwa_boy>> pulls the plug out of your ass, '
 		end
 	end
 	if $ARGS[2] = 'lubri':
-		'<<$bwa_boy>> takes a tube of lubricant, squeezes a little on <<$xyr>> palm and rubs your anus.'
+		*p '<<iif(analplugout = 1,$xe,$bwa_boy)>> takes a tube of lubricant, squeezes a little on <<$xyr>> palm and rubs your anus. '
 		gs 'arousal', 'anal_finger', 1,'lube' 
 	else
 		if mc_inventory['lubricant'] = 0:
-			'You have no lube, <<$bwa_boy>> spits on his fingers and using saliva he massages your anus.'
+			*p 'You have no lube, <<iif(analplugout = 1,$xe,$bwa_boy)>> spits on his fingers and using saliva he massages your anus. '
 			gs 'arousal', 'anal_finger', 1,'lube' 
 		else
 			mc_inventory['lubricant'] -= 1
 			if rand(0,2) = 0: 
-				'You take a tube of lubricant and hand it to <<$bwa_boy>>, he squeezes a little on his palm and rubs your anus.'
+				*p 'You take a tube of lubricant and hand it to <<$bwa_boy>>, he squeezes a little on his palm and rubs your anus. '
 			elseif rand(0,1) = 0:
-				'You squeeze anal lube on your hand and begin to smear it in your ass. Then you give the guy a tube and <<$xe>> starts lucricating <<$xyr>> cock.'
+				*p 'You squeeze anal lube on your hand and begin to smear it in your ass. Then you give the guy a tube and <<$xe>> starts lucricating <<$xyr>> cock. '
 			else
-				'You squeeze anal lube on your hand and begin to smear it in your ass. Then you give it to <<$xem>> and <<$xe>> smears it on <<$xyr>> dick'
+				*p 'You squeeze anal lube on your hand and begin to smear it in your ass. Then you give it to <<$xem>> and <<$xe>> smears it on <<$xyr>> dick. '
 			end
 			gs 'arousal', 'anal_finger', 1,'lube' 
 		end
@@ -315,24 +346,23 @@ if $ARGS[0] = 'girl_wants_anal':
 	$bwa_girl = iif($ARGS[1] = '',$boydesc,$ARGS[1])
 	if $bwa_girl = 'lubri': $bwa_girl = $boydesc
 	if analplugin = 1:
+		analplugin = 0 & analplugout = 1
 		if pcs_ass < 16:
-			'<<$bwa_boy>> pulls the plug out of your narrow and tight ass.'
-			analplugout = 1
+			*p '<<$bwa_girl>> pulls the plug out of your narrow and tight ass, '
 		else
-			'<<$bwa_boy>> pulls the plug out of your ass.'
-			analplugout = 1
+			*p '<<$bwa_girl>> pulls the plug out of your ass, '
 		end
 	end
 	if $ARGS[2] = 'lubri':
 		mc_inventory['lubricant'] += 1
-		'<<$bwa_girl>> takes a tube of lubricant, squeezes a little on her palm and rubs your anus.'
+		*p '<<iif(analplugout = 1,$xe,$bwa_girl)>> takes a tube of lubricant, squeezes a little on her palm and rubs your anus. '
 		gs 'arousal', 'anal_finger', 1,'lube' 
 	else
 		if mc_inventory['lubricant'] = 0:
-			'You have no lube, <<$bwa_girl>> spits on her fingers and using saliva she massages your anus.'
+			*p 'You have no lube, <<iif(analplugout = 1,$xe,$bwa_girl)>> spits on her fingers and using saliva she massages your anus. '
 			gs 'arousal', 'anal_finger', 1,'lube' 
 		elseif mc_inventory['lubricant'] > 0:
-			'You take a tube of lubricant and hand it to <<$bwa_girl>>, she squeezes a little on her palm and rubs your anus.'
+			*p 'You take a tube of lubricant and hand it to <<$bwa_girl>>, she squeezes a little on her palm and rubs your anus. '
 			gs 'arousal', 'anal_finger', 1,'lube' 
 		end
 	end
@@ -342,19 +372,14 @@ end &! --- girl_wants_anal ---
 !! gs 'dinsex', 'after_anal','boy',$boydesc
 if $ARGS[0] = 'after_anal':
 	if analplugout = 1:
+		analplugin = 1
 		if $ARGS[1] = 'boy':
-			analplugin = 1
 			'<<$ARGS[2]>> takes your butt plug and he puts it back into your anus. He grins: "Continue your training"' 
-		end
-		if $ARGS[1] = 'girl':
-			analplugin = 1
+		elseif $ARGS[1] = 'girl':
 			'<<$ARGS[2]>> takes your butt plug and she puts it back into your anus. She grins: "Continue your training"' 
-		end
-		if $ARGS[1] = 'pc':
-			analplugin = 1
+		elseif $ARGS[1] = 'pc':
 			'You take your butt plug and put it back into your anus. You grin: "I have to keep my butt trained"' 
-		end
-		if $ARGS[1] = 'no_plug':
+		elseif $ARGS[1] = 'no_plug' or pain['asshole'] > 10:
 			analplugin = 0
 			'You take your butt plug and put it into your purse. Your anus has to rest for a while now.' 
 		end
@@ -366,24 +391,31 @@ end &! --- after_anal ---
 !! use gs 'dinSex','boy_wants_anal'[,'lubri'] together with gs 'dinsex','analsex'
 if $ARGS[0] = 'analsex':
 	frost = 0 &! the sex heats
-	'<<$boydesc>> fingers your anus, slowly pushing in before squeezing in a second one .'
-	if pcs_ass < 10:'When <<$xe>> tries inserting a third finger you groan in pain.'
-	if pcs_ass >= 10:'<<$boydesc>> inserts a third finger, very slowly thrusting and wiggling to stretch your anus.'
-	*p '<<$boydesc>> pulls <<$xyr>> fingers out of your ass and you feel <<$xyr>> <<$penis_desc>> pushing against your butthole'
-	gs 'arousal','anal',$ARGS[1],$ARGS[2],$ARGS[3],$ARGS[4],$ARGS[5],$ARGS[6],$ARGS[7],$ARGS[8]
-	if (agrdif + altdif) >= 20:'You scream and bite your lip from the sharp pain when <<$xe>> penetrates your ass.'
-	if (agrdif + altdif) < 20:'You moan when <<$xe>> penetrates your ass.'
-	'<<$boydesc>> stops for a moment, giving your ass time to adjust to <<$xyr>> cock in it. Then he starts to slowly move, pumping your anus.'
+	*p '<<$boydesc>> fingers your anus, slowly pushing in before squeezing in a second one, '
+	*p iif(pcs_ass < 10,'when <<$xe>> tries inserting a third finger you groan in pain. ','<<$xe>> inserts a third finger, very slowly thrusting and wiggling to stretch your anus, ')
+	*p '<<$xe>> pulls <<$xyr>> fingers out of your ass and you feel <<$xyr>> <<$penis_desc>> pushing against your butthole. '
+	gs 'arousal','anal',ARGS[1],$ARGS[2],$ARGS[3],$ARGS[4],$ARGS[5],$ARGS[6],$ARGS[7],$ARGS[8]
+	*p iif(agrdif + altdif >= 20,'You scream and bite your lip from the sharp pain when <<$xe>> penetrates your ass, ','You moan when <<$xe>> penetrates your ass, ')
+	*p '<<$xe>> stops for a moment, giving your ass time to adjust to <<$xyr>> cock in it. Then he starts to slowly move, pumping your anus.'
 
-	if (agrdif + altdif) >= 30:
+	if agrdif + altdif >= rand(25,35):
 		if pcs_makeup > 1:pcs_makeup = 0
 		'You cry and bite your lip when the <<$penis_desc>> begins to thrust in and out of your ass. Your anus feels like it is going to tear apart and all you want is for this torture to be over quickly.'
-	elseif (agrdif + altdif) >= 20 and (agrdif + altdif) < 30:
+	elseif agrdif + altdif < rand(15,25):
 		pcs_horny += 10
 		'You savor <<$xyr>> cock moving inside you, lightly moaning in rhythm.'
 	end
-	'After some time <<$boydesc>> groans and you feel <<$xyr>> cock pulsing inside you and a pleasant warmth filling your ass.'
-	gs 'cum_call','anus',$boy,1
+	$tmp = iif(sexcontra = 7,'sabotaged ','')
+	*nl 'After some time <<$boydesc>> groans and you feel <<$xyr>> cock pulsing inside you '+iif(protect<>1,'and a pleasant warmth filling your ass. ','and you realized that <<$xe>> ejaculated in the <<$tmp>>condom. ')
+	gs 'cum_call','anus',$boy,1, sexcontra
+	if sexcontra = 4:'Pulling out of you and looking at <<$xyr>> dick, <<$boydesc>> said "Hmm, the condom burst."'
+	if analplugout > 0:
+		if pain['asshole'] > 10:
+			gs 'dinsex', 'after_anal','no_plug',$boydesc
+		else
+			gs 'dinsex', 'after_anal','boy',$boydesc
+		end
+	end
 end &! --- analsex ---
 
 !! this procedure calls 'cum_call','',$boy,1

+ 2 - 4
locations/dinSex2.qsrc

@@ -92,8 +92,7 @@ if $ARGS[0] = 'd_analsex_dildo':
 	frost = 0
 	if analplugin = 1:
 		'You pull the plug out of your narrow and tight ass.'
-		analplugin = 0
-		analplugout = 1
+		analplugin = 0 & analplugout = 1
 	end
 	if mc_inventory['lubricant'] = 0:
 		'You have no lube, so you spit on your fingers and use your saliva to lubricate your anus.'
@@ -155,8 +154,7 @@ if $ARGS[0] = 'd_analsex_bottle':
 
 	if analplugin = 1:
 		'You pull the plug out of your narrow and tight ass.'
-		analplugin = 0
-		analplugout = 1
+		analplugin = 0 & analplugout = 1
 	end
 	if mc_inventory['lubricant'] = 0:
 		'You have no lube, so you spit on your fingers and, using saliva, you massage your anus.'

+ 6 - 3
locations/din_bad.qsrc

@@ -88,8 +88,8 @@ $d_salf = {
 	'<td cellspacing="0" cellpadding="0" valign="top">'
 	if cumloc[13] > 0 or cumloc[11] > 0 or cumloc[16] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 12 & gs ''cum_cleanup'' & cumspclnt = 9 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your face and hands clean</b></a>'
 	if cumloc[14] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 14	& gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your belly clean</b></a>'
-	if cumloc[15] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 16 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your breasts clean</b></a>'
-	if cumloc[0] > 0 or cumloc[1] > 0 or cumloc[3] > 0 or cumloc[4] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 15 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your ass and pussy clean</b></a>'
+	if FUNC('Cum_Manage', 'check_private', 15) = 1 and cumloc[15] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 16 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your breasts clean</b></a>'
+	if FUNC('Cum_Manage', 'check_private') = 1 and (cumloc[1] + cumloc[4] > 0 or FUNC('Cum_Manage', 'check_innards', 0) = 1 or FUNC('Cum_Manage', 'check_innards', 3) = 1): '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 15 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your ass and pussy clean</b></a>'
 	if cumloc[10] > 0 or cumloc[9] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 17 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Wipe your arms and legs clean</b></a>'
 	if cumloc[2] > 0 or cumloc[5] > 0 or cumloc[6] > 0 or cumloc[7] > 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & cumspclnt = 6 & gs ''cum_cleanup'' & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Clean your clothing</b></a>'
 	if pcs_makeup ! 1 and cosmetic_tattoo = 0: '<a href="exec:mc_inventory[''makeup_wipes''] -= 1 & pcs_makeup = 1 & gs ''stat'' & gs ''din_bad'', ''d_bag''"><b>Remove your makeup</b></a>'
@@ -193,7 +193,10 @@ if $ARGS[0] = 'd_bag':
 			'Automatically use for vaginal sex: <a href="exec:auto_vag_lube = 0 & gs ''stat'' & gs ''din_bad'', ''d_bag''">Yes</a>'
 		end
 	end
-	dynamic $toymanage
+	if FUNC('Cum_Manage', 'check_private') = 1:
+		dynamic $toymanage
+		if pirsA + pirsB + pirsC + pirsD + pirsE + pirsF + pirsN + pirsG > 0: act 'Manage your piercings': gt 'piercing_management', 'main'
+	end
 	*nl
 	if amphetamine > 0:	'You have <b><<amphetamine>></b> tablets of amphetamine left in your purse. <a href="exec: gs ''drugs'', ''amphetamine'' & gs ''din_bad'', ''d_bag''">Take One</a>'
 	if joint > 0: 'You have enough weed for <b><<joint>></b> joints.'

+ 80 - 30
locations/din_van.qsrc

@@ -536,7 +536,7 @@ $tampon =  {
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
-	if mc_inventory['tampons'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and isprok = 0 and isprokp = 0 and knowpreg = 0:
+	if mc_inventory['tampons'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and isprok = 0 and isprokp = 0 and knowpreg = 0 and stat['vaginal'] > 0:
 		act 'Use a tampon (0:02)':
 			menu_off = 1
 			*clr & cla
@@ -553,7 +553,7 @@ $tampon =  {
 }
 
 $quickwash = {
-	if spdirty > 0:
+	if cumsumbod-cumsumvag-cumsumass > 0:
 		act 'Quick wash (0:15)':
 			menu_off = 1
 			*clr & cla
@@ -574,6 +574,21 @@ $quickwash = {
 		end
 	end
 
+	if cumloc[0]+cumloc[3] > 0 and hypnoAddict = 0:
+		if FUNC('Cum_Manage', 'check_innards', 0) = 1 or FUNC('Cum_Manage', 'check_innards', 3) = 1:
+			act 'Let the cum drain from your (0:10)':
+				menu_off = 1
+				*clr & cla
+				cumspclnt = 15 & gs 'cum_cleanup'
+				minut += 10
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+
+				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
+			end
+		end
+	end
 	gs 'din_van', 'pblc_pee'
 }
 
@@ -736,57 +751,57 @@ $basin = {
 		end
 	end
 
-	if cumloc[11] = 1 and cumloc[16] = 0:
-		act 'Wash the cum from your face (0:05)':
+	if cumloc[11] = 1 and cumloc[16] = 1:
+		act 'Wash the cum from your face and hair (0:10)':
 			menu_off = 1
 			*clr & cla
 			pcs_makeup = 1
 			cumspclnt = 9
 			gs 'cum_cleanup'
-			cumspclnt = 11
+			cumspclnt = 12
 			gs 'cum_cleanup'
+			pcs_hairbsh = 0
 			if pcs_sweat > 19 : pcs_sweat -= 5
-			minut += 5
+			minut += 10
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/pc/activities/facewash.jpg"></center>'
 			*nl
-			'You clean your face and get rid of any trace of cum.'
+			'You clean your face and hair and get rid of any trace of cum.'
 
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
-	elseif cumloc[11] = 0 and cumloc[16] = 1:
-		act 'Wash the cum out of your hair (0:10)':
+	elseif cumloc[11] = 1 and cumloc[16] = 0:
+		act 'Wash the cum from your face (0:05)':
 			menu_off = 1
-			cla
+			*clr & cla
+			pcs_makeup = 1
 			cumspclnt = 9
 			gs 'cum_cleanup'
-			cumspclnt = 5
+			cumspclnt = 11
 			gs 'cum_cleanup'
-			pcs_hairbsh = 0
 			if pcs_sweat > 19 : pcs_sweat -= 5
-			minut += 10
+			minut += 5
 			gs 'stat'
+			'<center><img <<$set_imgh>> src="images/pc/activities/facewash.jpg"></center>'
 			*nl
-			'You clean your hair and get rid of any trace of cum.'
+			'You clean your face and get rid of any trace of cum.'
 
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
-	elseif cumloc[11] = 1 and cumloc[16] = 1:
-		act 'Wash the cum from your face and hair (0:10)':
+	elseif cumloc[11] = 0 and cumloc[16] = 1:
+		act 'Wash the cum out of your hair (0:10)':
 			menu_off = 1
-			*clr & cla
-			pcs_makeup = 1
+			cla
 			cumspclnt = 9
 			gs 'cum_cleanup'
-			cumspclnt = 12
+			cumspclnt = 5
 			gs 'cum_cleanup'
 			pcs_hairbsh = 0
 			if pcs_sweat > 19 : pcs_sweat -= 5
 			minut += 10
 			gs 'stat'
-			'<center><img <<$set_imgh>> src="images/pc/activities/facewash.jpg"></center>'
 			*nl
-			'You clean your face and hair and get rid of any trace of cum.'
+			'You clean your hair and get rid of any trace of cum.'
 
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
@@ -809,6 +824,22 @@ $basin = {
 		end
 	end
 
+	if cumloc[0]+cumloc[3] > 0 and hypnoAddict = 0:
+		if FUNC('Cum_Manage', 'check_innards', 0) = 1 or FUNC('Cum_Manage', 'check_innards', 3) = 1:
+			act 'Let the cum drain from your (0:10)':
+				menu_off = 1
+				*clr & cla
+				cumspclnt = 15 & gs 'cum_cleanup'
+				minut += 10
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/no<<rand(3,4)>>.jpg"></center>'
+				'You spend minutes waiting between the sudden gushes of semen pouring out of your snatch.'
+
+				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
+			end
+		end
+	end
+
 	if body_write > 0 or face_write > 0:
 		act 'Wash the writings off your body (0:10)':
 			menu_off = 1
@@ -912,6 +943,22 @@ $enema = {
 			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
+	if cumloc[0]+cumloc[3] > 0 and hypnoAddict = 0:
+		if mc_inventory['enema_kit'] = 1:
+			act 'Wash up cum from your insides (0:05)':
+				menu_off = 1
+				*clr & cla
+				cumspclnt = 15 & gs 'cum_cleanup'
+				cumspclnt = 3 & gs 'cum_cleanup'
+				minut += 5
+				gs 'stat'
+				'<center><img <<$set_imgh>> src="images/shared/home/bathroom/klisma.jpg"></center>'
+				'You give yourself a quick enema, feeling clean down there.'
+
+				act 'Finish':menu_off = 0 & gt $loc, $loc_arg
+			end
+		end
+	end
 }
 
 $toymanage = {
@@ -921,7 +968,7 @@ $toymanage = {
 			cla
 			*clr
 			minut += 5
-			analplugIN = 0
+			analplugIN = 0 & analplugout = 0
 
 			if pcs_ass < 30:pcs_ass += 1
 
@@ -937,7 +984,7 @@ $toymanage = {
 			cla
 			*clr
 			minut += 5
-			analplugIN = 1
+			analplugIN = 1 & analplugout = 0
 
 			if pcs_ass < 10:pcs_ass += 5
 			if pcs_ass >= 10 and pcs_ass < 20:pcs_ass += rand(1, 2)
@@ -1171,16 +1218,18 @@ if $ARGS[0] = 'private':
 	end
 
 	!For now, the pregnancy reactions use bimbolevel as a chack. Once the pregnancy fetish is added to the game, the check will likely change to that.
-	if knowpreg ! 1 and mc_inventory['pregnancy_test'] > 0 and (abortionbirthdate = 0 or daystart - abortionbirthdate > 100):
+	if knowpreg ! 1 and mc_inventory['pregnancy_test'] > 0 and (abortionbirthdate = 0 or daystart - abortionbirthdate > 100) and last_pee + 59 < totminut:
 		act 'Do a pregnancy test (0:05)':
 			cla & *clr
+			last_pee = totminut
 			'<center><img <<$set_imgh>> src="images/pc/items/accessories/birthcontrol/preg_test.jpg"></center>'
 			'You sit down on the toilet and slip the test between your legs, carefully letting loose a stream of urine from your pussy onto the tip. Following the instructions, you then re-cap it and lay it flat on the sink, spending the next five minutes nervously fidgeting, waiting out the suggested time...'
 			'When the time is up, you eagerly snatch it up and yank off the cap to see the results.'
 			minut += 5
 			mc_inventory['pregnancy_test'] -= 1
 			gs 'stat'
-			 if pregchem > 120 and bimbolevel < 3 and knowpreg = 0 and husband = 0 and pcs_pregtalk = 0:
+			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
+			if pregchem > 120 and bimbolevel < 3 and hypnoAddict = 0 and knowpreg = 0 and husband = 0 and pcs_pregtalk = 0:
 				cla
 				knowpreg = 1
 				thinkpreg = 1
@@ -1189,14 +1238,14 @@ if $ARGS[0] = 'private':
 				act 'Horrified':gt 'din_van', 'HorrifiedReact1'
 				act 'Concerned':gt 'din_van', 'ConcernedReact1'
 				act 'Excited':gt 'din_van', 'ExcitedReact1'
-			elseif pregchem > 120 and bimbolevel = 3 and knowpreg = 0 and husband = 0 and pcs_pregtalk = 0:
+			elseif pregchem > 120 and (bimbolevel = 3 or hypnoAddict = 1) and knowpreg = 0 and husband = 0 and pcs_pregtalk = 0:
 				cla
 				knowpreg = 1
 				thinkpreg = 1
 				*nl
 				'The test shows two strips. You are pregnant. As you look at the test in your hand, you are...'
 				act 'Excited':gt 'din_van', 'ExcitedReact1'
-				act 'Aroused':gt 'din_van', 'ArousedReact1'
+				if pcs_horny >= 50 or bimbolevel = 3: act 'Aroused':gt 'din_van', 'ArousedReact1'
 			elseif pregchem > 120 and knowpreg = 0 and husband = 1 and kid = 0 and pcs_pregtalk = 0:
 				knowpreg = 1
 				thinkpreg = 1
@@ -1224,7 +1273,6 @@ if $ARGS[0] = 'private':
 				act'Sigh in disappointment':gt'din_van','DisappointedReact'
 			end
 
-			act 'Finish':menu_off = 0 & gt $loc, $loc_arg
 		end
 	end
 
@@ -1502,7 +1550,7 @@ if $ARGS[0] = 'prvt_pee':
 
 	!!If PC is on her period and using tampon, then the following options should appear as well as the standard "Finish and wipe" act:
 	!!This may require an addition check to see if the PC has a purse since I think they need that to carry tampons with them.
-			if isprok = 1 and mc_inventory['tampons'] > 0:
+			if mc_inventory['tampons'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and (isprok = 1 or (isprok = 0 and isprokp = 0)) and knowpreg = 0 and stat['vaginal'] > 0:
 				act 'Change tampon (0:02)':
 					*clr & cla
 					mc_inventory['tampons'] -=  1
@@ -1539,6 +1587,7 @@ end
 if $ARGS[0] = 'prvt_pee_end':
 	act 'Finish and wipe':
 		*clr & cla
+		cumspclnt = 15 & gs 'cum_cleanup'
 		if pcs_willpwr < 150: pcs_willpwr += 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/' + rand(1,9) + '.jpg"></center>'
@@ -1629,7 +1678,7 @@ if $ARGS[0] = 'pblc_pee':
 				end
 			end
 
-			if mesec > 0 and (isprok = 1 or (isprok = 0 and isprokp = 0)) and mc_inventory['tampons'] > 0 and bag = 1:
+			if mc_inventory['tampons'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and (isprok = 1 or (isprok = 0 and isprokp = 0)) and knowpreg = 0 and stat['vaginal'] > 0:
 				act 'Change tampon (0:02)':
 					*clr & cla
 					mc_inventory['tampons'] -=  1
@@ -1666,6 +1715,7 @@ end
 if $ARGS[0] = 'pblc_pee_end':
 	act 'Finish and wipe':
 		*clr & cla
+		cumspclnt = 15 & gs 'cum_cleanup'
 		if pcs_willpwr < 150: pcs_willpwr += 1
 		gs 'stat'
 		'<center><img <<$set_imgh>> src="images/pc/body/pee/wiping/' + rand(1,9) + '.jpg"></center>'

+ 2 - 31
locations/dinsexFX.qsrc

@@ -13,6 +13,7 @@ $vagstart = {
 		protect = 1
 		if preziktype = 2:
 			sexcontra = 7
+			noprotect = 1
 			'You give the guy a sabotaged condom and he puts it on in silence.'
 		else
 			sexcontra = 3
@@ -155,37 +156,7 @@ $vagend = {
 }
 
 $veneracheck = {
-	if cheatHealth = 0:
-		tipvenerarand = rand(1, 10)
-		if tipvenerarand = 8:
-			!!herpes
-			if rand(1, 100) > 90 and GerpesOnce = 0:
-				GerpesOnce = 1
-				Venera += 1
-				Gerpes += 1
-			end
-		elseif tipvenerarand = 7:
-			!!syphilis
-			if rand(1, 100) > 97 and SifacOnce = 0:
-				SifacOnce = 1
-				Venera += 1
-				Sifilis += 1
-			end
-		elseif tipvenerarand >= 5 and tipvenerarand < 7:
-			!!gonorrhea
-			if rand(1, 100) > 90 and TriperOnce = 0:
-				TriperOnce = 1
-				Venera += 1
-				Triper += 1
-			end
-		elseif tipvenerarand < 5:
-			!!thrush/yeast infection
-			if rand(1, 100) > 85 and KandidozOnce = 0:
-				KandidozOnce = 1
-				Kandidoz += 1
-			end
-		end
-	end
+	gs 'dinSex', 'std_trigger'
 }
 
 --- dinsexFX ---------------------------------

+ 1 - 1
locations/emp_functions.qsrc

@@ -389,7 +389,7 @@ if $ARGS[0] = 'cat_evt':
 	evt_wages[] = transient_evt_wages
 	!! Journal location as reminder
 	$evt_journal[] = $transient_journal
-	!! 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
+	!! The following are event location triggers to allow the content to appear in areas such as community center 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 

+ 2 - 2
locations/ender.qsrc

@@ -19,7 +19,7 @@ if $ARGS[0] = 'loss':
 
 		'You fall to the floor and feel your consciousness slipping away.'
 
-		if $start_type = 'uni_tg':
+		if $start_type['loc'] = 'uni' and $start_type['magic'] = 'tg':
 			act 'Further': gt 'intro_uni_tg', 'tatianaPRE'
 		else
 			act 'Further': gt 'intro_city_tg', 'tatianaPRE'
@@ -681,7 +681,7 @@ if $ARGS[0] = 'surrender':
 		'He ignores your pleas and hits you with a huge upper cut.'
 		'You fall to the floor and feel your consciousness slipping away.'
 
-		if $start_type = 'uni_tg':
+		if $start_type['loc'] = 'uni' and $start_type['magic'] = 'tg':
 			act 'Further': gt 'intro_uni_tg', 'tatianaPRE'
 		else
 			act 'Further': gt 'intro_city_tg', 'tatianaPRE'

+ 1 - 1
locations/etoexhib.qsrc

@@ -1383,7 +1383,7 @@ if $ARGS[0] = 'pos39':
 		act 'Remove underwear':gs 'underwear', 'remove' & gt $loc,$loc_arg
 	end
 
-	if mc_inventory['tampons'] > 0 and mesec > 0 and isprok = 0:
+	if mc_inventory['tampons'] > 0 and (mesec > 0 or (placebopart > 0 and pillcon < 40000)) and (isprok = 1 or (isprok = 0 and isprokp = 0)) and knowpreg = 0 and stat['vaginal'] > 0:
 		act 'Change tampon':
 			cla
 			*clr

+ 57 - 40
locations/exercise.qsrc

@@ -41,7 +41,7 @@ if $ARGS[0] = 'workout':
 			gt $loc, $loc_arg
 		end
 	end
-	if pcs_energy < 20 or pcs_stam < stammax / 5:
+	if pcs_stam < stammax / 5:
 		'You do not have the energy/stamina to exercise currently'
 	elseif $clothingworntype = 'nude' or $clothingworntype = 'danilovich_outfits':
 		act 'Manual routines': gt 'exercise', 'manual'
@@ -144,56 +144,73 @@ if $ARGS[0] = 'manual':
 	menu_off = 0
 	cla
 	act 'Return':gt 'exercise', 'workout'
-	if pcs_energy < 20 or pcs_stam < stammax / 5:
+	if pcs_stam < 5 * (10 - sport_clothes_exercise_bonus):
 		'You don''t have the energy/stamina to work out anymore now.'
 	else
-		act 'Do pushups for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
-		act 'Do crunches for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
-		act 'Do squats for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
-		if mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'rope'
-		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'yoga'
-		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'hula'
-		end
-		act 'Do pushups for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
-		act 'Do crunches for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
-		act 'Do squats for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
-		if mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+		act 'Do pushups':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
+			if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'push'
 		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+
+		act 'Do crunches':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
+			if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'press'
 		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+
+		act 'Do squats':
+			cla
+			act 'Return':gt 'exercise', 'manual'
+			if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+			if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
 		end
-		act 'Do pushups for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
-		act 'Do crunches for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
-		act 'Do squats for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
+
 		if mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+			act 'Jump rope':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= (15*1 * (10 - sport_clothes_exercise_bonus)) / 2: act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'rope'
+				if pcs_stam >= (15*2 * (10 - sport_clothes_exercise_bonus)) / 2: act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+				if pcs_stam >= (15*3 * (10 - sport_clothes_exercise_bonus)) / 2: act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+				if pcs_stam >= (15*4 * (10 - sport_clothes_exercise_bonus)) / 2: act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
+			end
 		end
+
 		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			act 'Do yoga':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'yoga'
+				if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+				if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+				if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			end
 		end
+
 		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
-		end
-		act 'Do pushups for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'push'
-		act 'Do crunches for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'press'
-		act 'Do squats for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt 'exercise', 'butt'
-		if mc_inventory['skipping_rope'] > 0 and $loc ! 'meadow':
-			act 'Jump rope for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'rope'
-		end
-		if mc_inventory['book_yoga'] > 0:
-			act 'Do yoga for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'yoga'
+			act 'Use your hula hoop':
+				cla
+				act 'Return':gt 'exercise', 'manual'
+				if pcs_stam >= 5*1 * (10 - sport_clothes_exercise_bonus): act '15 minutes': timemult = 1 & gs 'exercise', 'timestring' & gt 'exercise', 'hula'
+				if pcs_stam >= 5*2 * (10 - sport_clothes_exercise_bonus): act '30 minutes': timemult = 2 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+				if pcs_stam >= 5*3 * (10 - sport_clothes_exercise_bonus): act '45 minutes': timemult = 3 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+				if pcs_stam >= 5*4 * (10 - sport_clothes_exercise_bonus): act '60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+			end
 		end
-		if mc_inventory['hula_hoop'] > 0 and $loc ! 'meadow':
-			act 'Use your hula hoop for 60 minutes': timemult = 4 & gs 'exercise', 'timestring' & gt  'exercise', 'hula'
+
+		if pcs_stam < (15*1 * (10 - sport_clothes_exercise_bonus)) / 2:
+			delact 'Jump rope'
+			delact 'Do crunches'
+			delact 'Do pushups'
 		end
 	end
 end

+ 47 - 1
locations/exhibitionistshop.qsrc

@@ -23,7 +23,11 @@ if $ARGS[0] = 'start':
 	end
 	
 	if exhibitionQW = 5 and exhibitionQW['daystart'] ! daystart:
-		act 'Talk to Ksenya': gt 'exhibitionistshop', 'ksenya_chat'
+		if ksenyaQW = 2:
+			act 'ask to see Ksenya':gt 'exhibitionistshop', 'ksenya_shop' 
+		else
+			act 'Talk to Ksenya': gt 'exhibitionistshop', 'ksenya_chat'
+		end
 	end
 
 	act 'Leave':
@@ -114,6 +118,46 @@ if $ARGS[0] = 'ksenya_chat':
 	act 'Continue': gt 'exhibitionistshop', 'start'
 end
 
+if $ARGS[0] = 'ksenya_shop':
+    *clr & cla
+	KsenyaQW = 3
+    '<center><img <<$set_imgh>> src="images/character/pushkin/ksenya/shop1.jpg"></center>'
+    'You are taken to Ksenya''s office and it is open a crack and you look inside. You see her sitting on a chair looking back at you.'
+    '"Hey <<$pcs_nickname>>, Come in, Come in. What do I owe the pleasure?" she asks and closes the door to her office behind you after which she hugs you gently.' 
+    act 'continue':
+        *clr & cla
+        '<center><img <<$set_imgh>> src="images/character/pushkin/ksenya/shop2.jpg"></center>'
+        '"I wanna ask about what happened at the lake. Was that... for me?" you ask blushing.'
+        '"Which part?" she asks sitting on the edge of that same chair. She doesn''t seem that bothered by being seen in her underwear.'
+        '"The... flashing part when you saw me" you say without making eye contact.'
+        '"Maybe" she teases.'
+        act 'continue':
+            *clr & cla
+            '<center><img <<$set_imgh>> src="images/character/pushkin/ksenya/shop3.jpg"></center>'
+            '"Did you like what you saw?" she asks.'
+            'You look at her as she teases removing her bra. "I did, I think you are very beautiful." you tell her.'
+            '"Would you like to be my girlfriend?" she asks bluntly.'
+            'This shocks you a bit. "What?" you ask'
+            '"You are the closest thing I have to a friend, and I want you to be my girlfriend" she repeats.'
+            act 'Sure':
+                *clr & cla
+                '<center><video autoplay loop src="images/character/pushkin/ksenya/shop5.mp4"></video></center>'
+                'She walks over to you and gives you a gentle hug. She moves a hand to your hair and moves it behind your ear before leaning in and kissing you. The kiss lingers for a bit before she pulls back. Before anything can be done further, a knock is heard on her office door and a voice says. "Miss?! You''re needed in the store."'
+                '"Be right there" she says and turns back to you. "I''ll see you later" she says and her hand slowly rubs your cheek as she walks away from you, leaving you alone in her office. After you collect your bearings, you leave and see her arguing with a customer as you exit the store.'
+                act 'Leave the store': gt 'pushkin_sq'
+            end
+            act 'No thanks':
+                *clr & cla
+                '<center><img <<$set_imgh>> src="images/character/pushkin/ksenya/shop4.jpg"></center>'
+                '"I''m sorry Ksenya, this is moving too fast. I don''t think I''m ready for that right now" you tell her.'
+                'She looks upset at your answer as she leans on the chair. "That''s ok, I''ll be here when you are ready." she says and goes to her desk like nothing ever happened.'
+                'You walk out of her office feeling you are no longer welcome there today.'
+                act 'Leave the store': gt 'pushkin_sq'
+            end
+        end
+    end
+end
+
 if $ARGS[0] = 'outfits':
 	$loc_arg = 'outfits'
 	$loc = 'exhibitionistshop'
@@ -123,6 +167,7 @@ if $ARGS[0] = 'outfits':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
+	gs 'clothing', 'totals', 'salacious_outfits'
 
 	act 'Return':
 		cla
@@ -168,6 +213,7 @@ if $ARGS[0] = 'dresses':
 	*nl
 
 	gs 'clothing_QV', 'shop_filter_header'
+	gs 'clothing', 'totals', 'salacious_dress'
 
 	act 'Return':
 		cla

+ 7 - 3
locations/fit.qsrc

@@ -146,10 +146,14 @@ if $ARGS[0] = 'dressing_room':
 
 	gs 'wardrobe', 'default_sport_options'
 
-	if PCloswimwear = 1:
-		act 'Use the pool': gt 'bass', 'start'
+	if (pcs_makeup = 1 or cosmetic_tattoo > 0) and PCloswimwear = 1:
+		act 'Use the pool': gs 'shoes', 'strip' & gt 'bass', 'start'
 	else
-		act 'Change into swimwear': gt 'changingroom', 'view_swim_list'
+		if PCloswimwear = 0:
+			act 'Change into swimwear': gt 'changingroom', 'view_swim_list'
+			*pl 'You need to put some swimwear on first if you want to go in the pool.'
+		end
+		if pcs_makeup <> 1 and cosmetic_tattoo = 0: *pl 'You need to wash your make-up off first if you want to go in the pool.'
 	end
 
 	if abonement > 0:

+ 1 - 0
locations/food.qsrc

@@ -933,6 +933,7 @@ if $ARGS[0] = 'watercooler':
 	cumspclnt = 2
 	gs 'cum_cleanup'
 	gs 'stat'
+	dynamic $fill_bottle
 
 	'<center><img <<$set_imgh>> src="images/locations/pavlovsk/community/bathroom/waterfountain.jpg"></center>'
 	'You drink some water and feel refreshed.'

+ 1 - 0
locations/food_menu.qsrc

@@ -16,6 +16,7 @@ menu_off = 1
 if $ARGS[0] ! 'mod':
 	*clr & cla
 	food_loc = 1
+	$food_loc = $loc
 	killvar '$_drink'
 	killvar '$_eat'
 end

+ 64 - 65
locations/foto.qsrc

@@ -178,13 +178,6 @@ if $ARGS[0] = 'studio':
 	*clr & cla
 	killvar '$modelopt'
 
-	if model['spcial_job_day'] ! daystart:
-		model['spcial_job_day'] = daystart
-		if special_model['roll'] < min(fame['city_modelling'], 700) and modelfoto['topless'] > 0 and hour < 15: gt 'foto_events', 'fame'
-		if special_skill_model['roll'] < pcs_mdlng and modelfoto['nip'] > 0: gt 'foto_events', 'skill'
-		if foto['documentary'] >= 95 and $pantyworntype = 'none' and modelfoto['shoots']>= foto['documentary_timer']: gt 'foto_model_documentary', '1st_documentary'
-	end
-
 	minut += 5
 	gs 'stat'
 	gs 'themes', 'indoors'
@@ -233,8 +226,70 @@ if $ARGS[0] = 'studio':
 		gs 'foto', 'wandering_models'
 	end
 
+	if model['status'] = 1: act 'Go to the showers':gt'foto','showers'
+	if model['status'] = 1: act 'Go to your makeup station':gt'foto','makeup'
+	if model['status'] = 1: act 'Talk to a manager':gt'foto','manager_talk'
+	gs 'foto','microcamera_ask'
+	if parkblackmail = 2: act 'Look around for the blackmailer':gt 'foto', 'blackm'
+
+	if model['status'] = 0:
+		gs 'foto', 'hiring_ask'
+	elseif model['status'] = 1:
+		act 'Look for work':
+			delact 'Look for work'
+			*clr
+			menu_off = 1
+			'<center><b><font color="maroon">Floor Manager</font></b></center>'
+			'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
+
+			$tmp = iif(rand(2)=1,iif(rand(2)=1,$model['firstname']+' '+$model['lastname'],$model['firstname']),$model['nickname'])
+			if venera > 2:
+				'<<$tmp>>! There is no way anyone is going to want to see pictures of you while your STD is so obvious, you should see a doctor.'
+			elseif func('body_din','pregnancyVisibility') = 1:
+				'"<<$tmp>>! Who knocked you up!? Didn''t we pay you enough to use contraception? Sorry, but we don''t specialize in this type of shots."'
+			elseif pcs_apprnc < 80:
+				'"I''m sorry but you are going to have to work on your appearance if you want to do a shoot."'
+			elseif cumsumbod-cumsumvag-cumsumass > rand(0,5):
+				'"Ugh, <<$tmp>>, what the hell is that?" he looks at you and the cum on you with disgust. "We don''t care what your sexual habits are outside of work, but we''re not shooting Japanese porn here. At least take a shower after getting laid."'
+			elseif pcs_leghair > 3:
+				'"Go shave your legs, we''re not running a nature special on gorillas."'
+			elseif mesec > 0 and isprok = 0:
+				'"What the hell <<$tmp>>!"'
+				'You follow his gaze to see the blood running down your legs.'
+				'"Go wash that off and put a tampon in already! There''s a dispenser in the shower room."'
+			elseif pcs_sweat >= 20:
+				'"You''re all sweaty. Go take a shower before asking for work. And don''t forget to do your makeup after."'
+			elseif pcs_makeup = 0:
+				'"Your makeup is smeared all over your face <<$tmp>>. Go clean up and see the makeup artists first."'
+			elseif pcs_makeup = 1:
+				'"<<$tmp>>, you forget to do your makeup. Hurry up! We don''t have all day."'
+			else
+				cla
+				if model['spcial_job_day'] ! daystart:
+					model['spcial_job_day'] = daystart
+					if special_model['roll'] < min(fame['city_modelling'], 700) and modelfoto['topless'] > 0 and hour < 15: gt 'foto_events', 'fame'
+					if special_skill_model['roll'] < pcs_mdlng and modelfoto['nip'] > 0: gt 'foto_events', 'skill'
+					if foto['documentary'] >= 95 and $pantyworntype = 'none' and modelfoto['shoots']>= foto['documentary_timer']: gt 'foto_model_documentary', '1st_documentary'
+				end
+
+				'"Hello <<$tmp>>. Are you here to work?"'
+				act 'Perform the shoots':
+					if model_job_week >= 2:
+						gt 'foto_practice','start'
+					else
+						gt 'foto_shoot','model'
+					end
+				end
+				if first_fame_event = 2: act 'Ask if there''s special work available': gt'foto_events','special'
+				!!act'Check auditions':gt'foto_events2','auditions'
+				act 'Never mind': gt'foto','studio'
+			end
+			killvar '$tmp'
+		end
+	end
+	
 	if model['status'] = 1:
-		act 'Leave':
+		act 'Leave studio':
 			*clr & cla
 			menu_off = 1
 			if studio_underwear_steal > 0:
@@ -253,64 +308,8 @@ if $ARGS[0] = 'studio':
 			end
 		end
 	elseif model['status'] = 0:
-		act 'Leave': minut += 1 & gt 'city_center'
-	end
-	
-	if model['status'] = 0:
-		gs 'foto', 'hiring_ask'
-	elseif venera < 3:
-		act 'Ask for work':
-			menu_off = 1
-			if pcs_apprnc < 80:
-				*clr & cla
-				menu_off = 1
-				'<center><b><font color="maroon">Floor Manager</font></b></center>'
-				'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-				'"I''m sorry but you are going to have to work on your appearance if you want to do a shoot."'
-				act 'Leave':gt'foto','studio'
-			elseif pcs_sweat >= 20:
-				'"You''re all sweaty. Go take a shower before asking for work. And don''t forget to do your makeup after."'
-				act'Go to the showers':gt'foto','showers'
-			!! elseif $stat_cum_msg ! '':
-			elseif cum_loc['labia'] + cum_loc['butt'] + cum_loc['back'] + cum_loc['legs'] + cum_loc['arms'] + cum_loc['hands'] + cum_loc['stomach'] + cum_loc['tits'] + cum_loc['face'] + cum_loc['hair'] + cum_loc['vagina'] + cum_loc['anus'] > 0:
-				'"Ugh, <<$pcs_lastname>>, what the hell is that?" he looks at you and the cum on you with disgust. "We don''t care what your sexual habits are outside of work, but we''re not shooting Japanese porn here. At least take a shower after getting laid."'
-				act'Go to the showers':gt'foto','showers'
-			elseif pcs_leghair > 3:
-				'"Go shave your legs, we''re not running a nature special on gorillas."'
-				act'Go to the showers':gt'foto','showers'
-			elseif mesec > 0 and isprok = 0:
-				'"What the hell <<$pcs_lastname>>!"'
-				'You follow his gaze to see the blood running down your legs.'
-				'"Go wash that off and put a tampon in already! There''s a dispenser in the shower room."'
-				act'Go to the showers':gt'foto','showers'
-			elseif pcs_makeup = 0:
-				'"Your makeup is smeared all over your face <<$pcs_lastname>>. Go clean up and see the makeup artists first."'
-				act'Go to the showers':gt'foto','showers'
-			else
-				if model_job_week >= 2:
-					gt 'foto_practice','start'
-				else
-					gt 'foto_shoot','model'
-				end
-			end
-		end
-		if first_fame_event = 2:
-			act'Ask if there''s special work available':gt'foto_events','special'
-		end
-		!!act'Check auditions':gt'foto_events2','auditions'
-	else
-		*nl
-		'There is no way anyone is going to want to see pictures of you while your STD is so obvious, you should see a doctor.'
+		act 'Leave studio': minut += 1 & gt 'city_center'
 	end
-	if model['status'] = 1:act 'Go to the showers':gt'foto','showers'
-	if model['status'] = 1:act 'Go to your makeup station':gt'foto','makeup'
-	
-	if model['status'] = 1:act'Talk to a manager':gt'foto','manager_talk'
-	
-	
-	gs 'foto','microcamera_ask'
-	
-	if parkblackmail = 2: act 'Look around for the blackmailer':gt 'foto', 'blackm'
 end
 
 if $ARGS[0] = 'bathroom':

+ 10 - 10
locations/foto_events.qsrc

@@ -991,7 +991,7 @@ if $ARGS[0] = 'special':
 	cla & *clr
 	'<center><b><font color="maroon">Photographer</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'"Hey!" you call out to one of the studio managers. "Looking for some more work, any special jobs still available today?"'
+	'"I''m looking for some more work, any special jobs still available today?"'
 	act'Return to the main floor':gt'foto','studio'
 	if specialjob1 > 95 or specialjob2 > 95 or specialjob3 > 95 or specialjob4 > 95 or specialjob5 > 95 or specialjob6 > 95 or (specialjob7 > 95 and city_kickboxing >=30 and pcs_inhib >= 45) or (specialjob8 > 95 and city_running >=30 and pcs_inhib >= 50 and month >= 3 and month <=8):
 		'"Sure, we have a few today. Come take a look at the list, tell me if you''re interested in doing something."'
@@ -1489,7 +1489,7 @@ end
 if $ARGS[0] = 'topless1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1632,7 +1632,7 @@ end
 if $ARGS[0] = 'pool1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1739,7 +1739,7 @@ end
 if $ARGS[0] = 'tennis':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1844,7 +1844,7 @@ if $ARGS[0] = 'topless2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -1919,7 +1919,7 @@ if $ARGS[0] = 'beach2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2003,7 +2003,7 @@ if $ARGS[0] = 'pool2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2071,7 +2071,7 @@ end
 if $ARGS[0] = 'runway1':
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2088,7 +2088,7 @@ if $ARGS[0] = 'runway2':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
@@ -2220,7 +2220,7 @@ if $ARGS[0] = 'wet1':
 	*clr & cla
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/foto.jpg"></center>'
 	'"<<$model[''firstname'']>>!"'
-	'As you walk out of the changing room you hear someone call your name.'
+	'As you walk out of the room you hear someone call your name.'
 	act'Turn around':
 		*clr & cla
 		'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'

+ 2 - 2
locations/foto_model_documentary.qsrc

@@ -11,8 +11,8 @@ if $ARGS[0] = '1st_documentary':
 !!	if foto['1st_documentary'] = 1:gt'foto_model_documentary2','2nd_documentary'
 	cla & *clr
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'You step out of the locker room and almost run head first into one of the managers.'
-	'"Woah!" you say, jumping back. "What are you doing going into the girls locker room?"'
+	'You step out of the room and almost run head first into one of the managers.'
+	'"Woah!" you say, jumping back. "What are you doing?"'
 	'"Oh <<$model[''firstname'']>>, glad I caught you before you wandered off somewhere else in the studio. I was just going to see if anyone else showed up today. We''re looking for volunteers to participate in some interviews for a documentary."'
 	'"Documentary?" you ask. "What about?"'
 	'"There''s some people here today who are making a film about models, their lives, and about working here. They want to capture girls working here in their usual working environment so you wouldn''t dressing up or anything, just interviewed as in the studio approved dress code."'

+ 1 - 1
locations/foto_practice.qsrc

@@ -11,7 +11,7 @@ if $ARGS[0] = 'start':
 	'<center><b><font color="maroon">Photographer</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
 	if model_job_week >= 2:
-		'"Hello <<$pcs_firstname>>. We''ve already done a paid shoot with you this week, so we can''t do another one. But would you like to get some practice in?"'
+		'"We''ve already done a paid shoot with you this week, so we can''t do another one. But would you like to get some practice in?"'
 	else
 		'"Oh, you want to practice today?"'
 	end

+ 1 - 1
locations/foto_shoot.qsrc

@@ -18,7 +18,7 @@ if $ARGS[0] = 'model':
 	gs 'stat'
 	'<center><b><font color="maroon">Manager</font></b></center>'
 	'<center><img <<$set_imgh>> src="images/locations/city/citycenter/photo/fotograph.jpg"></center>'
-	'"Hello <<$model[''firstname'']>>. Are you here to work? What kind of shoot would you like to do today?"'
+	'"What kind of shoot would you like to do today?"'
 	*nl
 !!	'<a href="exec:gs ''shortgs'',''msg'',''There are three types of shoots: Catalog, Fashion, and Glamour. A catalog shoot is any shoot that is meant to appear in a shopping magazine or online catalog. They don''t do much for your fame but the base pay is steady. A fashion shoot is more stylized and though the base pay is not as high, there will be a bonus tip based on your modelling skill and fame. A glamour shoot will always involve nudity or risqué clothing and will typically be erotic in nature. This type of modelling will have good pay with good bonuses based on skill and fame, but also will spread your fame beyond the city far more quickly. If you grew up in a small town outside St. Petersburg, the pictures may reach its populace sooner rather than later.''">Modelling Shoot Guide</a>'
 	'<center><b><font color="blue">Modelling guide</font></b></center>'

+ 2 - 3
locations/gadhouse.qsrc

@@ -309,7 +309,7 @@ if $ARGS[0] = 'main':
 	'<center><H4>Your Grandparents'' Cottage</H4></center>'
 	'<center><img <<$set_imgh>> src="images/locations/gadukino/village/izba.jpg"></center>'
 	*nl
-	'A fairly simple cottage in the village of Gadukino which your grandparents call home. In the main room there is a huge <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> (where you can choose outfits and organize your clothing), and a <a href="exec:gad = 1 & gt ''bed'', ''start''">bed</a> where you can rest. The bed is more comfortable than it looks.'
+	'A fairly simple cottage in the village of Gadukino which your grandparents call home. In the main room there is a huge <a href="exec:gt ''wardrobe'', ''start''">wardrobe</a> (where you can choose outfits and organize your clothing).'
 	'There is an old <a href="exec:gt ''TV'',''gad''">television</a> in the living room. It''s positioned next to a body length <a href="exec:gt ''mirror'', ''start''">mirror</a>.'
 	'You can check your weight on your grandma''s old mechanical <a href="exec:msg ''<center>Your weight is <<pcs_weight[0]>>.<<pcs_weight[1]>> kg<br>Your body mass index (BMI) is <<pcs_bmi[0]>>.<<pcs_bmi[1]>>.<br><<$bodyVars[''bmi_desc'']>></center>''">scales</a>.'
 
@@ -404,7 +404,7 @@ if $ARGS[0] = 'main':
 			act 'Continue': gt 'gaddvor'
 		end
 	end
-
+	act 'Go to your room':  gt 'gadsarai', 'barn_room'
 	if grandmaQW['chore_clean_floor'] = 1:
 		act 'Clean the floor for Grandma (1:00)':
 			*clr & cla
@@ -504,7 +504,6 @@ if $ARGS[0] = 'main':
 	end
 
 	if rand(0,2) ! 0: gs 'din_bad' & dynamic $mobile_check
-	act 'Relax on your bed': gt 'bed', 'start'
 	gs 'prostitution_functions', 'prostitute_outfit_at_home'
 end
 

+ 6 - 4
locations/gadroad.qsrc

@@ -59,10 +59,12 @@ if $ARGS[0] = '':
 		end
 	end
 
-	act 'Walk to Gadukino (0:10)':minut += 10 & gt'gadukino'
-	act 'Walk down to the river (0:10)':minut += 10 & gt 'gadriver', 'start'
-	act 'Walk into the woods (0:15)':minut += 15 & gt'gadforest','forest_edge'
-	act 'Walk to the fields (0:10)':minut += 10 & gt'gadfield','field'
+	act 'Walk to the bus station (0:01)': minut += 1 & gt 'bus', 'gadukino'
+	act 'Walk to Gadukino (0:10)': minut += 10 & gt 'gadukino'
+	act 'Walk down to the river (0:10)': minut += 10 & gt 'gadriver', 'start'
+	act 'Walk into the woods (0:15)': minut += 15 & gt 'gadforest','forest_edge'
+	act 'Walk to the fields (0:10)': minut += 10 & gt 'gadfield','field'
+
 	if $clothingworntype = 'danilovich_outfits' and $shoeworntype = 'danilovich' and hour >= 6 and hour < 22:
 		if pcs_energy >= 5 and pcs_stam >= stammax / 5:
 			act 'Go for a run (1:00)':

+ 61 - 1
locations/gadsarai.qsrc

@@ -1,5 +1,7 @@
 # gadsarai
 !2021/05/08
+
+$default_img_path = 'locations/gadukino/'
 if $ARGS[0] = '':
 	$loc_arg = ''
 	$loc = 'gadsarai'
@@ -23,6 +25,7 @@ if $ARGS[0] = '':
 		end
 	end
 	'Your grandparents'' old barn could hold some valuable items if you spend time searching.'
+	'To the left is the new staircase built to convert some of the loft space into a bedroom to afford guests privacy.'
 	'The right side of the barn is piled high with various boxes, barrels, and chests of items.'
 	'You can store some extra mushrooms and berries here if you don''t want to carry them around all the time.'
 	'The left side of the barn has stalls for your grandparents'' horse, cow, and boar.'
@@ -31,7 +34,7 @@ if $ARGS[0] = '':
 	gs 'stat'
 
 	act 'Go back to the yard':minut += 1 & gt 'gaddvor'
-
+	act 'Go to your room': gt 'gadsarai', 'barn_room'
 	if grandpaQW['chore_fetch_firewood'] = 1:
 		act 'Gather firewood for Grandpa (0:10)':
 			*clr & cla
@@ -295,5 +298,62 @@ if $ARGS[0] = 'boar':
 	end
 end
 
+if $ARGS[0] = 'barn_room':
+	$location_type = 'private'    
+	$setloc['StageTitle'] = 'Guest Room'
+	$setloc['StageImage'] =   '<<$default_img_path>>village/gad_room'
+	minut += 5
+	gs 'shortgs', 'setloc', 'gadsarai', $ARGS[0]
+	gs 'themes', 'indoors'
+	gs 'stat'
+	gs 'themes', 'indoors'
+    gs 'stat'
+	gs 'core_library', 'stage_title'
+	act '<b>Leave and go to the yard</b>':
+		if $clothingworntype ! 'nude':
+			gt 'gaddvor'
+		else
+			msg'<b><font color = red>You need to get dressed.</font></b>'
+			gt $loc, $loc_arg
+		end
+	end
+	
+	'A small rustic loft space converted from your grandparents barn. A pair of sleeping pallets of dubious comfort is laid out for guests. The room walls are whitewashed with some clothes lines to dry your clothes with some farming tools. It''s not much to look at but it''s somewhere you can call home and have some privacy.'
+
+
+	!! Activities - basic only. There is no internet so laptop is consigned to grandparents only. Room is too small for exercise, use yard or forest meadow.
+
+
+	gs 'events', 'read'
+	gs 'music_actions', 'music_icon'
+
+	!! Activities End
+	act 'Relax on your bed': gt 'bed', 'start'
+	!! act 'light log stove': gt  'gadsarai', 'log_stove' 
+
+	!! Game functions
+	'At the foot of your bed is a small <a href="exec:gt ''wardrobe'', ''start''">chest</a> containing some of your clothes.'
+
+	'<table><tr><td valign="top">Your <a href="exec:gt ''alarmclock'', ''start''">alarm clock</a> is set to <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerH''], alarmVars[''timerM''])>> during the week and <<func(''alarmclock'', ''alarm_display'', alarmVars[''timerEndH''], alarmVars[''timerEndM''])>> during the weekend. It is currently turned ' + iif(alarmVars['alarmOn'] = 0, '<a href="exec: alarmVars[''alarmOn''] = 1 & gt $loc, $loc_arg">OFF</a>.', '<a href="exec: alarmVars[''alarmOn''] = 0 & gt $loc, $loc_arg">ON</a>.')
+
+	if mc_inventory['contraceptive_pill'] > 0 and mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in one of your desk drawers, as are your <a href="exec:gt ''stol'', ''bc''">condoms</a>.'
+	elseif mc_inventory['contraceptive_pill'] > 0:
+		'Your <a href="exec:gt ''stol'', ''bc''">birth control</a> is hidden in a small box under your pallet.'
+	elseif mc_inventory['equipped_condoms'] + mc_inventory['normal_condoms'] + mc_inventory['sabotaged_condoms'] > 0:
+		'Your <a href="exec:gt ''stol'', ''bc''">condoms</a> are hidden behind a loose brick.'
+	end
+	
+	if mid($start_type,1,2) = 'sg' and SchoolAtestat = 0 and week = 6 and hour > 4 and hour < 9 and detention_set = 1 and detention_warning ! daystart:
+		detention_warning = daystart
+		msg 'You have detention this morning and must be at school before 09:00.'
+	end
+
+	if mc_inventory['tech_computer'] = 1: 'Your <a href="exec: gt ''Komp'',''start''">computer</a> is on your desk.'
+end
+
+if $ARGS[0] = 'log_stove':
+	!! simple iron stove that requires wood logs. Make it a task to fill and light in winter.
+end
 --- gadsarai ---------------------------------
 

+ 2 - 2
locations/gadukino.qsrc

@@ -125,7 +125,7 @@ if $ARGS[0] = '':
 
 		!Looks like no reference to Gadmarket exists. Adding it...FinnMacha
 		*nl
-		'In the centre of the village is a small grass-covered square where villagers gather to meet and discuss or argue about politics or village life.'
+		'In the center of the village is a small grass-covered square where villagers gather to meet and discuss or argue about politics or village life.'
 		'Near the square sits the old <a href="exec: minut += 3 & gt ''gad_church'',''start''">chapel</a>, it is not in the best shape, but it appears well-loved.'
 		if hour >= 8 and hour < 20:
 			'One of the buildings facing the square has a sign saying, <a href="exec: minut += 5 & gt ''gadmarket''">General Store</a>. A sign on the door proclaims it "OPEN". It looks like the only place in the village to buy goods.'
@@ -315,7 +315,7 @@ if $ARGS[0] = 'mira_events':
 			gs 'stat'
 			'<center><img <<$set_imgh>> src="images/characters/gadukino/mira/mira.jpg"></center>'
 			'You decide to lend a hand to help the girl with the calf. You are lonely in the village, and maybe this girl, if you get to know her, could make your trips to Gadukino less boring. You walk over to the girl, introduce yourself, and ask if she wants help. She nods and resumes pulling on the rope while you walk over behind the calf and give it a load slap on the rump. The calf is surprised and immediately moves forward away from you. The girl smiles in thanks and tells you her name is Miroslava, but everyone calls her Mira.'
-			'Together you can guide the calf back into its pen. Mira turns out to be quite a sociable girl and conversationalist. You learn that her family was recently forced to move to the village from the city. Her father''s substantial gambling debts to some questionable men forced him to sell the family''s property in the city to pay them back. Mira is having a rough time adjusting to life in a small village. She misses the apartment in the city centre and the money to buy lovely dresses and makeup. After selling everything and paying off the debt, her father was told to leave the city "or else...".'
+			'Together you can guide the calf back into its pen. Mira turns out to be quite a sociable girl and conversationalist. You learn that her family was recently forced to move to the village from the city. Her father''s substantial gambling debts to some questionable men forced him to sell the family''s property in the city to pay them back. Mira is having a rough time adjusting to life in a small village. She misses the apartment in the city center and the money to buy lovely dresses and makeup. After selling everything and paying off the debt, her father was told to leave the city "or else...".'
 			'They were left relatively poor and could only afford a house in this run-down, dust-covered village.'
 			'You walk with her and chat until you reach her house, which turns out to be just down the road from your grandparents'' place. Mira invites you to come and visit her anytime. She is just as bored in the village as you are.'
 

+ 3 - 3
locations/gameover.qsrc

@@ -107,11 +107,11 @@ end
 
 if $ARGS[0] = 'load_autosave':
 	if mid($start_type,1,4) = 'city':
-		opengame 'autosave_city.sav'
+		opengame 'autosave_city_<<$week[week]>>.sav'
 	elseif mid($start_type,1,3) = 'uni':
-		opengame 'autosave_uni.sav'
+		opengame 'autosave_uni_<<$week[week]>>.sav'
 	else
-		opengame 'autosave_sg.sav'
+		opengame 'autosave_sg_<<$week[week]>>.sav'
 	end
 end
 

+ 1 - 1
locations/gdksport.qsrc

@@ -274,7 +274,7 @@ if $ARGS[0] = 'dance2':
 
 		act 'Leave':
 			if AlbinaQW['StarletsJoined'] = 0 and AlbinaQW['StarletsShutDown'] = 0 and mid($start_type,1,2) = 'sg' and ( month < 10 or ( month = 10 and day < 18 )):
-				if alterstrtimg = 13:
+				if $start_type['cat'] = 'dancer':
 					gt 'albina_starlets', 'albina3'
 				elseif (grupTipe = 1 or grupTipe = 2) and npc_rel['A23'] >= 60:
 					gt 'albina_starlets', 'albina2'

+ 3 - 3
locations/gopsex.qsrc

@@ -563,7 +563,7 @@ if $ARGS[0] = 'hide':
 	end &!--- npc_orgasm ---
 	if $ARGS[1] = 'gop_sex_analplugin':
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'"What?! Do you have a buttplug in your ass?" <<$boydesc>> asks in surprise.'
 			'"Aha, you are loosening your anus."'
 			'"That''s great, but it''s in the way right now." He comments and pulls the plug out from your ass.<br>'
@@ -595,7 +595,7 @@ if $ARGS[0] = 'hide':
 !anal tube and lubrication(gangbang):
 	if $ARGS[1] = 'gop_groupsex_analplugin':
 		if analplugin = 1:
-			analplugin = 0
+			analplugin = 0 & analplugout = 1
 			'"What?! Do you have a buttplug in your ass?" '+func('gopsex','hide','gop_name_npc')+' asks in surprise.'
 			'"Aha, you are loosening your anus."'
 			'"That''s great, but it''s in the way right now." He comments and pulls the plug out from your ass.<br>'
@@ -1106,7 +1106,7 @@ if $ARGS[0] = 'hide':
 		if rnd_telogg_text = 10:$rnd_telogg_text = '"What have we here, <<$pcs_nickname>>?! How come they stretch you here so?"'
 		if rnd_telogg_text = 11:$rnd_telogg_text = '"She lost her fear completely, '+func('gopsex','hide','gop_gg_name2')+'!"'
 		if rnd_telogg_text = 12:$rnd_telogg_text = '"She lost her shyness completely, '+func('gopsex','hide','gop_gg_name2')+'!"'
-		if rnd_telogg_text = 13:$rnd_telogg_text = '"How can you shamelessly expose your holes right, left and centre, '+func('gopsex','hide','gop_gg_name2')+'?"'
+		if rnd_telogg_text = 13:$rnd_telogg_text = '"How can you shamelessly expose your holes right, left and center, '+func('gopsex','hide','gop_gg_name2')+'?"'
 		if rnd_telogg_text = 14:$rnd_telogg_text = '"<<$pcs_nickname>>, you are so shameless, '+func('gopsex','hide','gop_gg_name2')+'!"'
 		if rnd_telogg_text = 15:$rnd_telogg_text = '"Oh, <<$pcs_nickname>>, aren''t you sorry for yourself?"'
 		!turnip: whore

+ 1 - 1
locations/gopskver.qsrc

@@ -977,7 +977,7 @@ if $ARGS[0] = 'BjBeerAnal':
 	if pcs_ass > 5: 'You hear a frantic discussion behind you, the guys are trying to figure out who gets to fuck your ass first. Vasily ends up being the lucky one.'
 	if tatupb > 0: 'When he sees the tattoo on your lower back, Vasily pats your ass approvingly: "Nice tramp stamp, whore."'
 	if tatupb = 0: 'Seeing your bare back, Vasily mutters irritably: "A slut such as yourself should really get a tattoo back there... that way, people can recognize you for what you really are."'
-	if analplugin = 1: analplugin = 0 & '"You won''t be needing this!" Vasily grins, and he pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
+	if analplugin = 1: analplugin = 0 & analplugout = 1 & '"You won''t be needing this!" Vasily grins, and he pulls out your butt plug with a loud pop. He''s quite rough with it, and you grimace at the sudden extrusion.'
 	'Once he thinks you''re ready, Vasily roughly pulls your buttocks to the sides with a grin on his face and looks at your sphincter, before spitting on it.'
 
 	act 'Try to relax your anus':

+ 1 - 1
locations/gschool_cheerleading.qsrc

@@ -313,7 +313,7 @@ if $ARGS[0] = 'practice':
 			end
 		else
 			if cheerleadingQW['quest_stage'] = 2:
-				if (cheerleadingQW['game_count'] > 6) and (rand(0,3) = 0) or grupTipe = 1 or grupTipe = 2:
+				if (cheerleadingQW['game_count'] > 6 and rand(0,3) = 0) or grupTipe = 1 or grupTipe = 2:
 					'As you enter the hall, Albina walks up to you, looking strangely cheerful. "Hey <<$pcs_nickname>>, I''ve been talking with the girls and, since you''ve proven yourself capable, we''re <i>mostly</i> in agreement that you deserve a spot on the squad. I''ll sort you out with a uniform in due time, but you''re part of the squad now. So... welcome, I guess?" she says before walking away to prepare the rest of the squad for practice. You contain your excitement as you take your place among the other girls, overjoyed that you actually made it onto the squad!'
 					cheerleadingQW['quest_stage'] = 3
 				else

+ 2 - 2
locations/gschool_grounds.qsrc

@@ -53,7 +53,7 @@ if $ARGS[0] = 'main':
 		end
 	end
 
-	if week < 6 and hour = 14 and kanikuli = 0 and afterschool_day ! daystart and suspended['on'] ! 1:
+	if week < 6 and hour = 14 and kanikuli = 0 and afterschool_day ! daystart and suspended['on'] ! 1 and SchoolAtestat = 0 and SchoolBlock = 0:
 		afterschool_day = daystart
 		if rand(0,3) = 0:
 			$eventtype = 'after_school'
@@ -871,7 +871,7 @@ if $ARGS[0] = 'Family extension':
 				'"<<$pcs_nickname>>, you won! Well done!" your <<$npc_nickname[''A29'']>> shouts as she approaches.'
 				'"Thanks. And thanks for coming too."'
 				'"I know that we have our differences, but I haven''t stopped caring about you and I asked Kolka to let me know if he saw you around as I kept seeing you heading out in your sports gear with your waterbottle and wondered what you were doing." she replies.'
-				'You''re a little lost for words, so your <<$npc_nickname[''A29'']>> continues. "He told me he''s seen you running at the track when the school was closed and training at the community centre, so I asked the coach. Anyway I''m so proud of you! Why didn''t you say something?"'
+				'You''re a little lost for words, so your <<$npc_nickname[''A29'']>> continues. "He told me he''s seen you running at the track when the school was closed and training at the community center, so I asked the coach. Anyway I''m so proud of you! Why didn''t you say something?"'
 				'When you don''t answer, your <<$npc_nickname[''A29'']>> continues. "Come on, get showered and changed and I''ll meet you outside." Anya and Kolka give you a friendly wave and leave.'
 				minut += 4
 				gs 'stat'

+ 2 - 2
locations/gschool_lessons.qsrc

@@ -39,7 +39,7 @@ if $ARGS[0] = 'morning':
 			act 'Continue down the hall': gt 'gschool_lessons', 'morning'
 		elseif week < 4 and class['first_grade_check'] = 0:
 			gt 'gschool_lessons', 'grade_check'
-		elseif grupTipe = 3 and nerd_game['invite_day'] < daystart - week:
+		elseif (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95) and nerd_game['invite_day'] < daystart - week:
 			gt 'nerd_game_night', 'invite', 'morning'
 		else
 			gs 'gschool_gossip', 'morning'
@@ -255,7 +255,7 @@ if $ARGS[0] = 'short_break':
 		if cheerleadingQW['skipped_ev'] + cheerleadingQW['skipped_g_ev'] > 0:
 			gs 'gschool_cheerleading', 'skipped_ev'
 			act 'Continue down the hall': gt 'gschool_lessons', 'short_break'
-		elseif grupTipe = 3 and nerd_game['invite_day'] < daystart - week:
+		elseif (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95) and nerd_game['invite_day'] < daystart - week:
 			gt 'nerd_game_night', 'invite', 'short_break'
 		end
 	elseif Kuznetsov_punishment = 1:

+ 1 - 1
locations/gschool_lunch.qsrc

@@ -128,7 +128,7 @@ if $ARGS[0] = 'break':
 		gs 'gschool_cheerleading', 'skipped_ev'
 		act 'Continue down the hall': gt 'gschool_events', 'leave_break_events2'
 		exit
-	elseif grupTipe = 3 and nerd_game['invite_day'] < daystart - week:
+	elseif (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95) and nerd_game['invite_day'] < daystart - week:
 		gt 'nerd_game_night', 'invite', 'lunch'
 	end
 

+ 1 - 1
locations/gschool_sex.qsrc

@@ -570,7 +570,7 @@ if $ARGS[0] = 'rand_sex':
 		act 'He fucks your ass':
 			*clr & cla
 			if analplugin = 1:
-				analplugin = 0
+				analplugin = 0 & analplugout = 1
 				'He plays with your butt plug for a moment before pulling it out. Your anus gapes slightly from being filled for so long. "Don''t worry babe, I''ll be filling that soon enough," he reassures you.'
 			end
 			'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/building/sex/boysex_scool4.jpg"></center>'

+ 1 - 1
locations/gschool_socialchg.qsrc

@@ -325,7 +325,7 @@ if $ARGS[0] = 'nerd':
 		cla & *clr
 		'<center><img <<$set_imgh>> src="images/locations/pavlovsk/school/events/joinnerd.jpg"></center>'
 		'You nod your head. "Yes, I would love to hang out with you guys! A game night sounds like a lot of fun."'
-		'They all start speaking at once, excited about you joining them. Feofan then speaks up. "That''s great, <<$pcs_nickname>>! Meet us at the community centre library tonight at 20:00. See you then." Then, they all start leaving and going to class, saying they look forward to seeing you tonight.'
+		'They all start speaking at once, excited about you joining them. Feofan then speaks up. "That''s great, <<$pcs_nickname>>! Meet us at the community center library tonight at 20:00. See you then." Then, they all start leaving and going to class, saying they look forward to seeing you tonight.'
 		
 		!! Used at the first d&d game to se if Sveta is new in the nerd group.
 		if grupTipe['joined_nerds'] = 0: grupTipe['joined_nerds'] = 1

+ 20 - 13
locations/hairsalon.qsrc

@@ -518,25 +518,24 @@ end
 if $ARGS[0] = 'straighthair':
 	cla & *clr
 	gs 'stat'
+	'"I would like to have my hair straightened..." you tell the receptionist.'
+
 	if pcs_hairlng <= 80:
-		'"I would like to have my hair straightened..." you tell the receptionist.'
 		'"Sorry, your hair is too short to straightened. But don''t hesitate to come back when it''s grown out." the receptionist replies, smiling.'
 		
 		act 'Move away':gt 'hairsalon', 'start'
 		
 	elseif straight >= 10 or (defcurly = 0 and curly = 0):
-		'"I would like to have my hair straightened..." you tell the receptionist.'
 		'The receptionist looks at you, "I''m sorry but your hair is already as straight as we can make it... Come see us when it''s a bit more curly and we''ll sort you out."'
 
 		act 'Move away':gt 'hairsalon', 'start'
 	
 	elseif hbraids > 0:
-		'"I would like to have my hair straightened..." you tell the receptionist.'
 		'"Your hair is in braids right now, to straighten it we would have to remove them. Is that what you want us to do?" the receptionist asks you.'
 		
 		act 'Yes':
 			cla
-			minut += 20
+			minut += 20+hbraids*2+pcs_hairlng/100
 			hbraids = 0
 			money -= 500
 			curly = 0
@@ -575,25 +574,24 @@ end
 if $ARGS[0] = 'curlhair':
 	cla & *clr
 	gs 'stat'
+	'"I would like to have my hair curled!" you tell the receptionist.'
+
 	if pcs_hairlng <= 80:
-		'"I would like to have my hair curled!" you tell the receptionist.'
 		'"Sorry, your hair is too short to curl. But don''t hesitate to come back when it''s grown out." the receptionist replies, smiling.'
 		
 		act 'Move away':gt 'hairsalon', 'start'
 	
 	elseif curly >= 10:
-		'"I would like to have my hair curled!" you tell the receptionist.'
 		'The receptionist looks at you, "Your hair is already as curly as we can make it... Come see us when it''s a bit less curly and we''ll sort you out."'
 		
 		act 'Move away':gt 'hairsalon', 'start'
 	
 	elseif hbraids > 0:
-		'"I would like to have my hair curled..." you tell the receptionist.'
 		'"Your hair is in braids right now, to curl it we would have to remove them. Is that what you want us to do?" the receptionist asks you.'
 		
 		act 'Yes':
 			cla
-			minut += 20
+			minut += 20+hbraids*2+pcs_hairlng/100
 			hbraids = 0
 			money -= 500
 			gs 'stat'
@@ -633,10 +631,19 @@ if $ARGS[0] = 'dyehair':
 	clr & cla
 	gs 'stat'
 	'"I would like to dye my hair!" you excitedly tell the receptionist.'
-	'She smiles hearing you that exicted, "We''ll fix that for you! What colour would like to have your hair dyed?"'
 
 	act 'Change your mind':gt 'hairsalon', 'start'
 
+	if curly >= 10:
+		'The receptionist looks at you, "Your hair is too curly, we can make it straightened if you want."'
+		exit
+	elseif hbraids > 0:
+		'"Your hair is in braids right now, to dye it we would have to remove them.'
+		exit
+	end
+
+	'She smiles hearing you that exicted, "We''ll fix that for you! What colour would like to have your hair dyed?"'
+
 	if pcs_haircol ! nathcol:
 		act'Return to natural colour':
 			cla & *clr
@@ -1245,7 +1252,7 @@ if $ARGS[0] = 'braidhair':
 	cla & *clr
 	'"I would like to have my hair braided!" you tell the receptionist.'
 
-	if hbraids = 20:
+	if hbraids > 10:
 		'The receptionist looks confusingly at you, "Sorry, but your hair is already braided."'
 		act 'Move away':gt 'hairsalon', 'start'
 		exit
@@ -1266,11 +1273,11 @@ if $ARGS[0] = 'braidhair':
 
 		act 'Relax':
 			cla & *clr
-			minut += 40
-			hbraids = 20
+			minut += pcs_hairlng/20
+			hbraids = 30
 			money -= 1250
 			gs 'hairsalon', 'mixed'
-			'About fourty minutes pass as your braids were removed and your hair was straightened back to its original shape, "You can pay at the reception, hun." the hairdresser tells you before heading off...'
+			'About <<pcs_hairlng/20>> minutes pass as your braids were done, "You can pay at the reception, hun." the hairdresser tells you before heading off...'
 
 			act 'Look in the mirror':gt 'hairsalon', 'mirror'
 		end

+ 34 - 26
locations/hourly_events.qsrc

@@ -5,17 +5,33 @@
 !!                                                                           !!
 !!===========================================================================!!
 
+if pcs_nerd <= 0: pcs_nerd = min(1,glass)
+if pcs_nerd > 0:
+	if lastreadday = daystart:
+		!!<font color="green">You are completely healthy shine and a healthy glow.</font>
+		if pcs_mood < 90: pcs_mood += rand(5,10)
+		SbrosNerdism = 0
+		$mudnerd = '<font color="green">You are lost in a fantasy after reading a book.</font>'
+	elseif lastreadday + 1 = daystart:
+		SbrosNerdism = 0
+		$mudnerd = '<font color="black">You are a little bored and want to plunge into a book.</font>'
+	elseif lastreadday + 2 = daystart:
+		SbrosNerdism = 0
+		if pcs_mood > 50:pcs_mood -= rand(5,10)
+		$mudnerd = '<font color="red">You really want to read something.</font>'
+	elseif lastreadday + 3 <= daystart:
+		if pcs_mood > 10:pcs_mood -= rand(5,10)
+		SbrosNerdism = 1
+		$mudnerd = '<font color="red"><b>You have an incredibly strong desire to read!!!</b></font>'
+	end
 
-
-if SbrosNerdism = 1 and orgasm ! 10:
-	pcs_nerd = pcs_sprt / 10 - orgasm
-
-elseif sbrosnerdism = 1 and orgasm = 10:
-	pcs_nerd = pcs_sprt / 9 - orgasm
+	if SbrosNerdism = 1: pcs_nerd = max(0, pcs_nerd / 10 - stat['body_count'])
+else
+	killvar 'pcs_nerd'
+	killvar 'SbrosNerdism'
+	killvar '$mudnerd'
 end
 
-
-if pcs_nerd < 0: pcs_nerd = 0
 if obkvsdam > 0: obkvsdam = rand(2, 5)
 if scpopt > 1: scpopt = 0
 
@@ -30,12 +46,9 @@ if insleep = 1:
 		pcs_hydra  -= (8 * amphetamineBonus)
 	end
 
-	pcs_stam  += stammax / 8
-	pcs_sleep -= 4
+	pcs_stam += iif(pcs_sleep > 90, stammax/2, iif(pcs_sleep > 80, stammax/4, stammax/8))
 
-	if alko > 0: 
-		alko -= 1
-	end
+	if alko > 0: alko -= 1
 
 	pcs_willpower_feeder += willpowermax * 4
 	pcs_willpwr += pcs_willpower_feeder / 100
@@ -52,6 +65,7 @@ else
 		pcs_hydra  -= (16 * amphetamineBonus)
 	end
 
+	if hypnoAddict > 0: dynamic $hypnoAddiction
 
 	if InSleepWake <= hour or InSleepWake[1] < daystart: pcs_sleep -= 4
 
@@ -80,14 +94,13 @@ else
 
 
 	if pcs_stam <= 0:
-		pcs_mood -= 6
-		pcs_sleep -= 5
-
-	elseif pcs_stam < stammax / 5:
-		pcs_mood -= 3
+		pcs_mood -= rand(5,10)
+		pcs_sleep -= rand(3,6)
+	elseif pcs_stam < stammax / 5 and stammax > 50:
+		pcs_mood -= rand(2,5)
 	end
 
-	pcs_stam += stammax / 40
+	if pcs_energy > 20: pcs_stam += stammax / max(5, 110-pcs_energy)
 	pcs_willpower_feeder += willpowermax*4/3
 	pcs_willpwr += pcs_willpower_feeder/100
 	pcs_willpower_feeder = pcs_willpower_feeder mod 100
@@ -162,11 +175,6 @@ else
 	end
 end
 
-if hypnoAddict > 0:
-	dynamic $hypnoAddiction
-end
-
-
 !!Mana regen
 pcs_mana += manamax / 20
 
@@ -430,13 +438,13 @@ if (hour mod 2) = 0: gs 'outdoors', 'weather'
 !! I do not think that this should be here, but I put it here temporaly - rachels
 !! generate SMS for nerd games
 if nerd_game['invite_day'] < daystart and week = 1 and hour >= 11 and hour <= 15:
-	if yearstart = 1 and grupTipe = 3: 
+	if yearstart = 1 and (grupTipe = 3 or nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95):
 		!! hour = 15 forces SMS if it hasn''t triggered yet.
 		if rand(0, 2) = 0 or hour = 15: 
 			gs 'nerd_game_night', 'summer_invite_sms', 'Add SMS'
 		end
 
-	elseif yearstart > 1 and nerd_game['fixed_uni_day'] = 0 and nerd_game['stage'] > 0:
+	elseif yearstart > 1 and nerd_game['fixed_uni_day'] = 0 and (nerd_game['stage'] > 0 or rand(80,npc_rel['A152']) > 95):
 		!! hour = 15 forces SMS if it hasn''t triggered yet.
 		if rand(0, 2) = 0 or hour = 15: 
 			gs 'nerd_game_night', 'summer2_invite_sms', 'Add SMS'

+ 1 - 1
locations/husbSex.qsrc

@@ -341,7 +341,7 @@ if $ARGS[0] = 'anal':
 
 	if analplugin = 1:
 		analpluginbonus = 10
-		analplugin = 0
+		analplugin = 0 & analplugout = 1
 		gs 'boyStat', $HusID
 		sexpartkno = 1
 		spafinloc = 3

+ 2 - 10
locations/intro_city.qsrc

@@ -1,16 +1,8 @@
 # intro_city
 
-if $ARGS[0] = 'start':
+gs 'themes', 'indoors'
 
-	gs 'themes', 'indoors'
-	killvar '$start_type'
-	$start_type = 'city'
-	$start_type[1] = 'nomagic'
-	
-	gt 'intro_city', 'city_intro'
-end
-
-if $ARGS[0] = 'city_intro':
+if $ARGS[0] = 'start':
 	$loc = 'intro_city'
 	$loc_arg = '2'
 	!! Intro to starting city

+ 1 - 3
locations/intro_city_m.qsrc

@@ -1,8 +1,6 @@
 # intro_city_m
 
 gs 'themes', 'indoors'
-killvar '$start_type'
-$start_type = 'city_m'
 
 if $ARGS[0] = 'start':
 	*clr & cla
@@ -113,7 +111,7 @@ if $ARGS[0] = 'wakeup':
 								*clr & cla
 								'<center><img <<$set_imgh>> src="images/system/1_openings/2_sg/start_sg.jpg"></center>'
 								'You give Gustav directions to your apartment building. Half an hour later, he drops you off in front of your apartment building in Pavlovsk. You head inside and, feeling exhausted after the days events, you go to your room and collapse on the bed, quickly falling asleep.'
-								act '<center><b>Done</b></center>': gt 'intro_city', 'city_intro'
+								act '<center><b>Done</b></center>': gt 'intro_city', 'start'
 							end
 						end
 					end

File diff suppressed because it is too large
+ 1165 - 930
locations/intro_city_select.qsrc


+ 1 - 4
locations/intro_city_tg.qsrc

@@ -1,9 +1,6 @@
 # intro_city_tg
 !!2022/03/17
 gs 'themes', 'indoors'
-killvar '$start_type'
-$start_type = 'city_tg'
-$start_type[1] = 'tg'
 
 if $ARGS[0] = 'start':
 	menu_off = 1
@@ -384,7 +381,7 @@ if $ARGS[0] = 'sleepPRE':
 					gs 'obj_din', 'old'
 					'<center><img <<$set_imgh>> src="images/system/1_openings/1_tf/start_tf.jpg"></center>'
 					'You''re exhausted and are still struggling to take in all the strange things you''ve learnt, so decide to get an early night''s sleep.'
-					act 'Sleep': gt 'intro_city', 'city_intro'
+					act 'Sleep': gt 'intro_city', 'start'
 				end
 			end
 		end

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