Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- load
- Options: Function
- Return Type: String
- Parameters
- save_index = 0 <Integer>
- Grammar Text: load(save_index)
- Hint Text: (None)
- Custom Script Code
- Local Variables
- rally index = 0 <Integer>
- collection_target = No Unit <Unit>
- closest_town = No Unit <Unit>
- order_target_unit = No Unit <Unit>
- order_target_index = 0 <Integer>
- ALL_of_the_units = (Empty unit group) <Unit Group>
- u = No Unit <Unit>
- summoned_unit_index = 0 <Integer>
- minerals = (Empty unit group) <Unit Group>
- town_halls = (Empty unit group) <Unit Group>
- training_slot = 0 <Integer>
- potential_builders = (Empty unit group) <Unit Group>
- commander_index = 0 <Integer>
- player = 0 <Integer>
- hatch_count = 0 <Integer>
- local_larvae = (Empty unit group) <Unit Group>
- hatch_unit = No Unit <Unit>
- building_index = 0 <Integer>
- building = No Unit <Unit>
- gas_buildings = (Empty unit group) <Unit Group>
- i = 0 <Integer>
- cargo_units = (Empty unit group) <Unit Group>
- in_luggage = False <Boolean>
- Actions
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- unit_count[save_index] == -1
- Then
- Debug - Display "invalid save point" as debug output using Type 01, and Do display it in the game window
- General - Return "NOT A VALID LOADING POINT!"
- Else
- Cinematics - Turn cinematic mode On for (All players) over 1.0 seconds
- Cinematics - Fade Out over 1.0 seconds using color (0%, 0%, 0%) and 0.0% transparency (Normal style, Wait until it finishes)
- ------- disable bo triggers
- Trigger - Turn unit_built Off
- Trigger - Turn unit_training Off
- Trigger - Turn upgrade_training Off
- Trigger - Turn morph_ability Off
- General - Wait 1.0 Game Time seconds
- Variable - Set retval_bool = (load_time(save_index))
- Debug - debug_s("loading", False, False)
- General - For each integer commander_index from 1 to 2 with increment 1, do (Actions)
- Actions
- Variable - Set player = forcetoplayer[commander_index]
- ------- clear the list of control group units
- General - For each integer i from 0 to 9 with increment 1, do (Actions)
- Actions
- Variable - Set current_control_groups[commander_index][i] = (Empty unit group)
- ------- remove restrictions on unit creation
- Tech Tree - Disable tech tree requirements for player player
- ------- set upgrade levels
- General - For each integer i from 0 to 98 with increment 1, do (Actions)
- Actions
- ------- check that this upgrade is valid
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- all_upgrades[i] != No Game Link
- Then
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- upgrades_complete[save_index][(commander_index - 1)][i] == True
- Then
- Tech Tree - Set all_upgrades[i] upgrade level to 1 for player player
- Else
- Tech Tree - Set all_upgrades[i] upgrade level to 0 for player player
- Else
- ------- remove supply restrictions
- Player - Modify player player Supplies Made: Set To 400
- ------- remove all current units
- Unit Group - Pick each unit in (Any units in (Entire map) owned by player Any Player matching Excluded: Missile, Dead, with at most Any Amount) and do (Actions)
- Actions
- Unit - Remove (Picked unit) from the game
- ------- remove all creep
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- save_index != 5
- Then
- Variable - Set retval_bool = (remove_creep())
- Else
- UI - Display "clearing all scouting information" for (All players) to Debug area
- Player Group - For each player player in (Active Players) do (Actions)
- Actions
- Visibility - Reveal (Entire map) for player player for 0.2 seconds and Do Not check cliff level
- General - Wait 0.5 Game Time seconds
- Player Group - For each player player in (Active Players) do (Actions)
- Actions
- Visibility - Change visibility for player player to Unexplored within (Entire map) and Do Not check cliff level
- UI - Display "restoring units" for (All players) to Debug area
- ------- create units from save point data
- General - For each integer i from 0 to (unit_count[save_index] - 1) with increment 1, do (Actions)
- Actions
- Variable - Set player = forcetoplayer[unit_owners[save_index][i]]
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- save_index < 0
- i > 549
- building_index > 159
- hatch_count > 19
- summoned_unit_index > 79
- Then
- Debug - Display "invalid array index. Too many units..." as debug output using Type 01, and Do display it in the game window
- General - Return "OH NOES!!!111!1"
- Else
- ------- signal if we are finished with all non hidden active players units.
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- unit_owners[save_index][i] == 0
- unit_types[save_index][i] != Vespene Geyser
- unit_types[save_index][i] != Vespene Geyser (Space Platform)
- Then
- Variable - Set in_luggage = True
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- unit_owners[save_index][i] != 0
- (unit_types[save_index][i] has Structure attribute) == True
- completion[save_index][building_index][0] != 100.0
- training[save_index][building_index][0] == No Game Link
- researching[save_index][building_index][0] == No Game Link
- unit_order_ability[save_index][i] == No Ability Command
- Then
- Unit - Create 1 unit_types[save_index][i] for player player at unit_positions[save_index][i] using default facing (Under Construction, Ignore Placement)
- Variable - Set u = (Last created unit)
- Else
- ------- check if cargo unit
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- in_luggage == True
- unit_owners[save_index][i] != 0
- Then
- ------- find the cargo unit and place inside
- Unit Group - Pick each unit in cargo_units and do (Actions)
- Actions
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Position of (Picked unit)) == unit_positions[save_index][i]
- Then
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of (Picked unit)) == Refinery
- (Unit type of (Picked unit)) == Extractor
- (Unit type of (Picked unit)) == Assimilator
- Then
- ------- if "cargo unit" is an extractor/assimilator/refirnery create as normal
- Unit - Create 1 unit_types[save_index][i] for player player at unit_positions[save_index][i] using default facing (Ignore Placement)
- Variable - Set u = (Last created unit)
- Unit - Order u to (Probe - Gather targeting (Picked unit)) (Replace Existing Orders)
- Variable - Set unit_order_ability[save_index][i] = Probe - Gather
- Else
- ------- create as cargo unit
- Unit - Create 1 unit_types[save_index][i] as cargo in (Picked unit)
- Variable - Set u = (Last created cargo unit)
- ------- should we really be breaking here? what about setting HP etc
- General - Break
- Else
- Else
- Unit - Create 1 unit_types[save_index][i] for player player at unit_positions[save_index][i] using default facing (Ignore Placement)
- Variable - Set u = (Last created unit)
- ------- add to cargo units if unit type matches
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of u) == Bunker
- (Unit type of u) == Command Center
- (Unit type of u) == Command Center (Flying)
- (Unit type of u) == Orbital Command
- (Unit type of u) == Orbital Command (Flying)
- (Unit type of u) == Medivac
- (Unit type of u) == Overlord
- (Unit type of u) == Warp Prism (Phasing Mode)
- (Unit type of u) == Warp Prism (Transport Mode)
- (Unit type of u) == Assimilator
- (Unit type of u) == Extractor
- (Unit type of u) == Refinery
- Then
- Unit Group - Add u to cargo_units
- Else
- Unit - Pause u
- Unit Group - Add u to ALL_of_the_units
- ------- if a town hall add to that unit group
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- unit_types[save_index][i] == Command Center
- unit_types[save_index][i] == Orbital Command
- unit_types[save_index][i] == Planetary Fortress
- unit_types[save_index][i] == Hatchery
- unit_types[save_index][i] == Lair
- unit_types[save_index][i] == Hive
- unit_types[save_index][i] == Nexus
- Then
- Unit Group - Add u to town_halls
- Else
- ------- assign to appropriate control group
- Variable - Set retval_bool = (decode_control_groups(control_group[save_index][i], u, unit_owners[save_index][i]))
- ------- restore protoss sheilds
- Unit - Set u Shields to unit_shields[save_index][i]
- ------- restore unit energy
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (unit_types[save_index][i] Energy Maximum) != 0.0
- Then
- Unit - Set u Energy to unit_energy[save_index][i]
- Else
- ------- doom unit to its fate
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of u) == MULE
- (Unit type of u) == Infested Terran (From Terran Infestation Rupture)
- (Unit type of u) == Swarm Host - Locust
- (Unit type of u) == Brood Lord - Broodling
- (Unit type of u) == Auto-Turret
- (Unit type of u) == Point Defense Drone
- (Unit type of u) == Changeling
- (Unit type of u) == Force Field
- Then
- Unit - Add 1 Public Timed Life to u from u
- Unit - Set Public Timed Life duration to (Integer(summoned[save_index][summoned_unit_index])) on unit u
- Variable - Modify summoned_unit_index: + 1
- Else
- ------- set ability cooldown for mothershipcore and warpgate
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Unit type of u) == Warp Gate
- Then
- Unit - Add summoned[save_index][summoned_unit_index] seconds to cooldown WarpGateTrain on ability Warp Gate - Train (Warp Gate) on unit u
- Variable - Modify summoned_unit_index: + 1
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Unit type of u) == Nexus
- Then
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- summoned[save_index][summoned_unit_index] > 0.0
- Then
- Environment - Execute Mothership Core Purify Nexus Set on u from u
- Unit - Set Purify remaining duration to summoned[save_index][summoned_unit_index] on unit u
- Else
- Variable - Modify summoned_unit_index: + 1
- Else
- ------- perform building specific stuff
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Owner of u) != 0
- Or
- Conditions
- ((Unit type of u) has Structure attribute) == True
- (Unit type of u) == Egg - Zerg Cocoon
- Then
- ------- replace egg with larvae
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Unit type of u) == Egg - Zerg Cocoon
- Then
- Unit Group - Remove u from ALL_of_the_units
- Unit - Remove u from the game
- Unit - Create 1 Larva for player player at unit_positions[save_index][i] using default facing (Ignore Placement)
- Variable - Set u = (Last created unit)
- Variable - Set retval_bool = (decode_control_groups(control_group[save_index][i], u, 0))
- Unit Group - Add u to ALL_of_the_units
- Else
- ------- train or upgrade units at this building
- General - For each integer training_slot from 0 to 7 with increment 1, do (Actions)
- Actions
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- training_slot <= 1
- Then
- Variable - Set retval_bool = (train_or_research(progress = completion[save_index][building_index][training_slot], unit training = training[save_index][building_index][training_slot], upgrade = researching[save_index][building_index][training_slot], building = u, slot = training_slot))
- Else
- Variable - Set retval_bool = (train_or_research(progress = 0.0, unit training = training[save_index][building_index][training_slot], upgrade = researching[save_index][building_index][training_slot], building = u, slot = training_slot))
- ------- apply macro mechanics to buildings
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- macro_mechanic_duration[save_index][building_index] != -1
- Then
- Variable - Set retval_bool = (macro_data(u, macro_mechanic_duration[save_index][building_index]))
- Else
- Variable - Modify building_index: + 1
- Else
- ------- spawn larvae for zerg hatches/lairs/hives
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Unit type of u) != Hatchery
- (Unit type of u) != Hive
- (Unit type of u) != Lair
- Then
- Else
- Variable - Set retval_int = (spawn_larvae_at_hatch(u, larvae_counts[save_index][hatch_count]))
- Variable - Modify hatch_count: + 1
- ------- set resource values for minerals and gas
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of u) == Vespene Geyser
- (Unit type of u) == Mineral Field
- (Unit type of u) == Rich Mineral Field
- (Unit type of u) == Vespene Geyser (Space Platform)
- Then
- Unit - Set u Resources to unit_health[save_index][i]
- Else
- Unit - Set u Life to unit_health[save_index][i]
- UI - Display ((Text((Number of Living units in ALL_of_the_units))) + " units restored") for (All players) to Debug area
- ------- restore creep spread
- Variable - Set retval_bool = (create_creep())
- UI - Display "recreating unit actions" for (All players) to Debug area
- ------- set rally points for buildings
- Variable - Set building_index = 0
- General - For each integer i from 0 to ((Number of Any units in ALL_of_the_units) - 1) with increment 1, do (Actions)
- Actions
- Variable - Set u = (Unit (i + 1) from ALL_of_the_units)
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Owner of u) != 0
- Or
- Conditions
- ((Unit type of u) has Structure attribute) == True
- (Unit type of u) == Egg - Zerg Cocoon
- Then
- ------- found a building
- General - For each integer rally index from 0 to 1 with increment 1, do (Actions)
- Actions
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- rally_points[save_index][building_index][rally index] != No Point
- Then
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (X of rally_points[save_index][building_index][rally index]) == -1.0
- Then
- ------- rally targets a unit
- Variable - Set order_target_index = ((Integer((Y of rally_points[save_index][building_index][rally index]))) + 1)
- Variable - Set order_target_unit = (Unit order_target_index from ALL_of_the_units)
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- rally index == 1
- Then
- Unit - Order u to ( Set Rally Point targeting order_target_unit) (Replace Existing Orders)
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of u) == Hatchery
- (Unit type of u) == Lair
- (Unit type of u) == Hive
- Then
- Unit - Order u to ( Set Rally Point targeting order_target_unit) (Replace Existing Orders)
- Else
- Unit - Order u to ( Set Rally Point targeting order_target_unit) (Replace Existing Orders)
- Else
- ------- rally targets a point
- Unit - Order u to ( Set Rally Point targeting rally_points[save_index][building_index][rally index]) (Replace Existing Orders)
- Else
- Variable - Modify building_index: + 1
- Else
- ------- set rally points for zerg eggs
- Unit Group - Pick each unit in (Egg - Zerg Cocoon units in (Entire map) owned by player Any Player matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
- Actions
- ------- only assign rally if no rally already exists
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Rally point target point for point 1 with target 1 for (Picked unit)) == No Point
- Then
- ------- look for coresponding hatchery
- Variable - Set closest_town = (Closest unit to (Position of (Picked unit)) in town_halls)
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Unit type of (Picked unit) training queue slot 1 item 1) == Drone
- Then
- Unit - Order (Picked unit) to ( Set Rally Point targeting (Rally point target unit of point 2 with target 1 for closest_town)) (Replace Existing Orders)
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Rally point target point for point 1 with target 1 for closest_town) != No Point
- Then
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Rally point target unit of point 1 with target 1 for closest_town) != No Unit
- Then
- ------- rally point targets unit
- Unit - Order (Picked unit) to ( Set Rally Point targeting (Rally point target unit of point 1 with target 1 for closest_town)) (Replace Existing Orders)
- Else
- ------- rally targets point
- Unit - Order (Picked unit) to ( Set Rally Point targeting (Rally point target point for point 1 with target 1 for closest_town)) (Replace Existing Orders)
- Else
- Else
- ------- give orders to ALL of the units!
- Variable - Set building_index = 0
- General - For each integer i from 0 to ((Number of Any units in ALL_of_the_units) - 1) with increment 1, do (Actions)
- Actions
- Variable - Set u = (Unit (i + 1) from ALL_of_the_units)
- General - Switch (Actions) depending on unit_order_ability[save_index][i]
- Cases
- ------- harvesting abilities
- General - If (SCV - Return Cargo)
- Actions
- return_cargo(unit = u, unit_energy[save_index][i](0 = minerals, !0 = gas) )
- General - If (Drone - Return Cargo)
- Actions
- return_cargo(unit = u, unit_energy[save_index][i](0 = minerals, !0 = gas) )
- General - If (Probe - Return Cargo)
- Actions
- return_cargo(unit = u, unit_energy[save_index][i](0 = minerals, !0 = gas) )
- General - If (MULE - Return Cargo)
- Actions
- return_cargo(unit = u, unit_energy[save_index][i](0 = minerals, !0 = gas) )
- ------- morphing abilities
- General - If (Command Center - Upgrade to Orbital Command)
- Actions
- Variable - Set retval_bool = (morph_building(Command Center - Upgrade to Orbital Command, completion[save_index][building_index][0], u))
- General - If (Command Center - Upgrade to Planetary Fortress)
- Actions
- Variable - Set retval_bool = (morph_building(Command Center - Upgrade to Planetary Fortress, completion[save_index][building_index][0], u))
- General - If (Hatchery - Mutate into Lair)
- Actions
- Variable - Set retval_bool = (morph_building(Hatchery - Mutate into Lair, completion[save_index][building_index][0], u))
- General - If (Lair - Mutate into Hive)
- Actions
- Variable - Set retval_bool = (morph_building(Lair - Mutate into Hive, completion[save_index][building_index][0], u))
- General - If (Spire - Mutate into Greater Spire)
- Actions
- Variable - Set retval_bool = (morph_building(Spire - Mutate into Greater Spire, completion[save_index][building_index][0], u))
- Default
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- unit_order_point[save_index][i] == No Point
- Then
- ------- Order targets nothing
- ------- NOTE: There is currently an editor bug involving ability type checks
- ------- The only work around atm is to use custom code snippets
- General - Custom Script: UnitIssueOrder(lv_u, Order(libEE3D7A19_gv_uni...
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (X of unit_order_point[save_index][i]) == -1.0
- Then
- ------- Order targets specific unit
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- Or
- Conditions
- (Unit type of u) == Rock Tower
- (Unit type of u) == Rock Tower (Diagonal)
- Then
- Unit - Make u face (Y of unit_order_point[save_index][i]) over 0.0 seconds
- Else
- Variable - Set order_target_index = ((Integer((Y of unit_order_point[save_index][i]))) + 1)
- Variable - Set order_target_unit = (Unit order_target_index from ALL_of_the_units)
- General - Custom Script: UnitIssueOrder(lv_u, OrderTargetingUnit(libEE...
- Else
- ------- Order targets point
- General - Custom Script: UnitIssueOrder(lv_u, OrderTargetingPoint(libE...
- ------- keep track of building count
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Owner of u) != 0
- Or
- Conditions
- ((Unit type of u) has Structure attribute) == True
- (Unit type of u) == Egg - Zerg Cocoon
- Then
- Variable - Modify building_index: + 1
- Else
- General - For each integer commander_index from 1 to 2 with increment 1, do (Actions)
- Actions
- ------- restore user resource counts
- Player - Modify player forcetoplayer[commander_index] Minerals: Set To player_resources[save_index][(commander_index - 1)][0]
- Player - Modify player forcetoplayer[commander_index] Vespene: Set To player_resources[save_index][(commander_index - 1)][1]
- ------- set player race and starting location
- Variable - Set races[commander_index] = saved_race[save_index][commander_index]
- Variable - Set chosen_start_locations[commander_index] = saved_base[save_index][commander_index]
- ------- need to set resource counter on refinery/extractor/assimilator. based on vesene guyser
- Variable - Set retval_bool = (encapsulate guysers())
- ------- send scvs to construct buildings
- Unit Group - Pick each unit in (Any units in (Entire map) owned by player Any Player matching Required: Structure; Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions)
- Actions
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- (Progress of (Picked unit) slot 1) != 100.0
- races[playertoforce[(Owner of (Picked unit))]] == Terran
- (Number of items in (Picked unit) training queue slot ) == 0
- (Upgrade type of (Picked unit) training queue slot 1 item 1) == No Game Link
- Then
- Variable - Set retval_bool = (scv_cont_building((Picked unit)))
- Else
- ------- reset unit restrictions
- Tech Tree - Enable tech tree requirements for player forcetoplayer[1]
- Tech Tree - Enable tech tree requirements for player forcetoplayer[2]
- ------- fix unit models for marines and zerglings
- General - For each integer commander_index from 1 to 2 with increment 1, do (Actions)
- Actions
- Variable - Set player = forcetoplayer[commander_index]
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- upgrades_complete[save_index][(commander_index - 1)][73] == False
- Then
- ------- set combat shield to researched
- ------- this is so that setting upgrade level to zero will trigger the model to correct itself
- Tech Tree - Set Marine - Combat Shield upgrade level to 1 for player player
- Tech Tree - Set Marine - Combat Shield upgrade level to 0 for player player
- Else
- General - If (Conditions) then do (Actions) else do (Actions)
- If
- upgrades_complete[save_index][(commander_index - 1)][87] == False
- Then
- Unit Group - Pick each unit in (Zergling units in (Entire map) owned by player player matching Excluded: Missile, Dead, with at most Any Amount) and do (Actions)
- Actions
- Unit - Set unit (Picked unit) model to Zergling with variation 0 and textures ""
- Else
- Unit Group - Pick each unit in (Zergling units in (Entire map) owned by player player matching Excluded: Missile, Dead, with at most Any Amount) and do (Actions)
- Actions
- Unit - Set unit (Picked unit) model to Zergling Upgrade with variation 0 and textures ""
- Player - Modify player forcetoplayer[1] Supplies Made: Set To supply[save_index][0]
- Player - Modify player forcetoplayer[2] Supplies Made: Set To supply[save_index][1]
- General - For each integer commander_index from 1 to 2 with increment 1, do (Actions)
- Actions
- ------- restore camera locations
- Camera - Pan the camera for player forcetoplayer[commander_index] to camera_location[save_index][(commander_index - 1)] over 1.0 seconds with Existing Velocity% initial velocity, 10.0% deceleration, and Do Not use smart panning
- ------- delete all AI requests
- AI Advanced - Clear all build requests currently planned (but not yet started) for AI player forcetoplayer[commander_index]
- AI Advanced - Clear all research upgrades currently planned (but not yet started) for AI player forcetoplayer[commander_index]
- AI Advanced - Clear all train requests currently planned (but not yet started) for AI player forcetoplayer[commander_index]
- ------- load build orders
- load_bos(save_index)
- ------- enable bo triggers
- Trigger - Turn unit_built On
- Trigger - Turn unit_training On
- Trigger - Turn upgrade_training On
- Trigger - Turn morph_ability On
- Cinematics - Turn cinematic mode Off for (All players) over 1.0 seconds
- Cinematics - Fade In over 1.0 seconds using color (0%, 0%, 0%) and 0.0% transparency (Normal style, Wait until it finishes)
- ------- reset the autosave countdown
- Variable - Set seconds_till_autosave = (autosave_duration * 60)
- General - Return "loaded"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement