This commit is contained in:
mv 2024-08-30 02:27:02 +03:00
parent 26456f3286
commit c6bd83c428
219 changed files with 25545 additions and 786619 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -10,7 +10,7 @@
"FileSystem"
{
"SteamAppId" "886"
"SteamAppId" "630"
"ToolsAppId" "211"
"SearchPaths"

View File

@ -1,3 +1,3 @@
PatchVersion=7.1.2.8
ProductName=swarm
appID=886
appID=630

Binary file not shown.

View File

@ -6414,3 +6414,31 @@
input StartMusic(void) : "Start a random music track from the user's playlist."
input StopMusic(void) : "Stop the currently playing music."
]
@PointClass base(Targetname) iconsprite("editor/info_target.vmt") = asw_director_control :
"Alien Swarm Director Control"
[
targetname(target_source) : "Name" : "@director" : "The name that other entities refer to this entity by."
wanderers(choices) : "Wandering Aliens" : 0 : "Whether to spawn random drones around the players." =
[
0 : "No"
1 : "Yes"
]
hordes(choices) : "Hordes" : 1 : "Whether to spawn large groups of drones periodically." =
[
0 : "No"
1 : "Yes"
]
controlspawners(choices) : "Control Spawners" : 0 : "If enabled, asw_spawners will only work when the director is in an active spawning state." =
[
0 : "No"
1 : "Yes"
]
input EnableHordes(void) : "Enable random horde spawning."
input DisableHordes(void) : "Disable random horde spawning."
input EnableWanderers(void) : "Enable random wandering aliens."
input DisableWanderers(void) : "Disable random wandering aliens."
input StartFinale(void) : "Enables wanderers, hordes and sends director into crazy spawning mode."
output OnEscapeRoomStart(void) : "Fired when marine enters the escape room with all objectives (except for escape) complete. NOTE: If you rely on this output, you must ship the .layout file along with your map."
]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +1,8 @@
versioninfo
{
"editorversion" "400"
"editorbuild" "4956"
"mapversion" "3768"
"editorbuild" "4961"
"mapversion" "3762"
"formatversion" "100"
"prefab" "0"
}
@ -80,7 +80,7 @@ viewsettings
world
{
"id" "394754"
"mapversion" "3768"
"mapversion" "3762"
"classname" "worldspawn"
"detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp"
@ -36201,6 +36201,35 @@ entity
}
}
entity
{
"id" "3088711"
"classname" "info_overlay"
"angles" "0 0 0"
"BasisNormal" "0 -0.384615 0.923077"
"BasisOrigin" "-6520 408 846.949"
"BasisU" "1 0 0"
"BasisV" "-0 0.923077 0.384615"
"EndU" "1"
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stains_05c"
"sides" ""
"StartU" "0"
"StartV" "1"
"uv0" "-94.9868 -119.754 0"
"uv1" "-94.9868 119.754 0"
"uv2" "94.9868 119.754 0"
"uv3" "94.9868 -119.754 0"
"origin" "-6520 408 846.949"
editor
{
"color" "80 150 225"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 8500]"
}
}
entity
{
"id" "3088675"
"classname" "info_overlay"
@ -36327,7 +36356,7 @@ entity
"EndV" "0"
"fademindist" "-1"
"material" "overlays/dirt01a"
"sides" "154891 154885"
"sides" "153759"
"StartU" "0"
"StartV" "1"
"uv0" "-30.5847 -60.853 0"
@ -52505,6 +52534,101 @@ entity
}
}
entity
{
"id" "158996"
"classname" "trigger_once"
"origin" "-6816 -4952 929"
"spawnflags" "16"
"StartDisabled" "0"
connections
{
"OnStartTouch" "Storage_room_spawnerStartSpawning0-1"
}
solid
{
"id" "158992"
side
{
"id" "7716"
"plane" "(-6928 -5040 989) (-6928 -4864 989) (-6704 -4864 989)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 60] 0.25"
"vaxis" "[0 -1 0 -60] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "7717"
"plane" "(-6928 -4864 869) (-6928 -5040 869) (-6704 -5040 869)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 60] 0.25"
"vaxis" "[0 -1 0 -60] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "7718"
"plane" "(-6928 -5040 869) (-6928 -4864 869) (-6928 -4864 989)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 60] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "7719"
"plane" "(-6704 -4864 869) (-6704 -5040 869) (-6704 -5040 989)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 60] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "7720"
"plane" "(-6928 -4864 869) (-6704 -4864 869) (-6704 -4864 989)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 60] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "7721"
"plane" "(-6704 -5040 869) (-6928 -5040 869) (-6928 -5040 989)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 60] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[14000 -10268]"
}
}
entity
{
"id" "172289"
"classname" "info_node"
@ -52771,6 +52895,100 @@ entity
}
}
entity
{
"id" "195808"
"classname" "trigger_asw_door_area"
"origin" "-7355 -4258 1029.95"
"playersrequired" "1"
"spawnflags" "2"
"StartDisabled" "0"
"usetargetname" "LandingBayDoor4"
"wait" "1"
solid
{
"id" "195809"
side
{
"id" "9625"
"plane" "(-7455 -4390 1108.45) (-7455 -4126 1108.45) (-7255 -4126 1108.45)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 28] 0.25"
"vaxis" "[0 -1 0 -56] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "9626"
"plane" "(-7455 -4126 951.451) (-7455 -4390 951.451) (-7255 -4390 951.451)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 28] 0.25"
"vaxis" "[0 -1 0 -56] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "9627"
"plane" "(-7455 -4390 951.451) (-7455 -4126 951.451) (-7455 -4126 1108.45)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 56] 0.25"
"vaxis" "[0 0 -1 -8.96094] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "9628"
"plane" "(-7255 -4126 951.451) (-7255 -4390 951.451) (-7255 -4390 1108.45)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 56] 0.25"
"vaxis" "[0 0 -1 -8.96094] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "9629"
"plane" "(-7455 -4126 951.451) (-7255 -4126 951.451) (-7255 -4126 1108.45)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 28] 0.25"
"vaxis" "[0 0 -1 -8.96094] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "9630"
"plane" "(-7255 -4390 951.451) (-7455 -4390 951.451) (-7455 -4390 1108.45)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 28] 0.25"
"vaxis" "[0 0 -1 -8.96094] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[14500 15000]"
}
}
entity
{
"id" "225289"
"classname" "prop_physics"
@ -52830,6 +53048,10 @@ entity
"shadowcastdist" "0"
"skin" "0"
"spawnflags" "32769"
connections
{
"OnBreak" "CrateRandomTriggerEnable0-1"
}
"origin" "-6552 -7048 946"
editor
{
@ -53238,6 +53460,7 @@ entity
connections
{
"OnComputerHackCompleted" "Tech_reqDisableTechMarineReq0-1"
"OnComputerDataDownloaded" "AfterHackSpawnTriggerEnable0-1"
"OnComputerHackStarted" "breakdoor_spawnStartSpawning5-1"
"OnComputerDataDownloaded" "CeilingBlackBoxOpen0-1"
"OnComputerHackStarted" "dock_holdout_spawn_01StartSpawning5-1"
@ -54859,6 +55082,7 @@ entity
"StartDisabled" "0"
connections
{
"OnTrigger" "tankroom_end_04StartSpawning0-1"
"OnTrigger" "tankroom_end_01_spawnStartSpawning0-1"
}
solid
@ -74529,6 +74753,7 @@ entity
"StartDisabled" "0"
connections
{
"OnTrigger" "AmbientMusicPlaySound0-1"
"OnTrigger" "tankroom_end_02_spawnStartSpawning0-1"
}
solid
@ -74734,6 +74959,101 @@ entity
}
}
entity
{
"id" "388368"
"classname" "trigger_once"
"origin" "-6765.5 -3163 948"
"spawnflags" "16"
"StartDisabled" "0"
connections
{
"OnTrigger" "storage_room_spawn_2_behindStartSpawning0-1"
}
solid
{
"id" "388369"
side
{
"id" "13337"
"plane" "(-6996 -3220 1027) (-6996 -3106 1027) (-6535 -3106 1027)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 -1 0 -28] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13336"
"plane" "(-6996 -3106 869) (-6996 -3220 869) (-6535 -3220 869)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 -1 0 -28] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13335"
"plane" "(-6996 -3220 869) (-6996 -3106 869) (-6996 -3106 1027)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 28] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13334"
"plane" "(-6535 -3106 869) (-6535 -3220 869) (-6535 -3220 1027)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 28] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13333"
"plane" "(-6996 -3106 869) (-6535 -3106 869) (-6535 -3106 1027)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13332"
"plane" "(-6535 -3220 869) (-6996 -3220 869) (-6996 -3220 1027)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[16000 -15268]"
}
}
entity
{
"id" "394925"
"classname" "info_node"
@ -74750,6 +75070,101 @@ entity
}
}
entity
{
"id" "401337"
"classname" "trigger_once"
"origin" "-7532.5 -3616 964.5"
"spawnflags" "16"
"StartDisabled" "0"
connections
{
"OnTrigger" "Spawn05StartSpawning0-1"
}
solid
{
"id" "401338"
side
{
"id" "13349"
"plane" "(-7545 -3692 1060) (-7545 -3540 1060) (-7520 -3540 1060)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 -1 0 -24] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13348"
"plane" "(-7545 -3540 869) (-7545 -3692 869) (-7520 -3692 869)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 -1 0 -24] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13347"
"plane" "(-7545 -3692 869) (-7545 -3540 869) (-7545 -3540 1060)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 24] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13346"
"plane" "(-7520 -3540 869) (-7520 -3692 869) (-7520 -3692 1060)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 24] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13345"
"plane" "(-7545 -3540 869) (-7520 -3540 869) (-7520 -3540 1060)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "13344"
"plane" "(-7520 -3692 869) (-7545 -3692 869) (-7545 -3692 1060)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 56] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[16000 14500]"
}
}
entity
{
"id" "401394"
"classname" "asw_drone"
@ -77952,6 +78367,7 @@ entity
"OnCase01" "supply_spawn_01StartSpawning0-1"
"OnCase02" "supply_spawn_02StartSpawning0-1"
"OnCase03" "supply_spawn_03StartSpawning0-1"
"OnCase04" "0-1"
}
"origin" "-7832 -792 840.967"
editor
@ -78054,6 +78470,8 @@ entity
{
"id" "540455"
"classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7"
"renderamt" "75"
"rendercolor" "100 100 100"
@ -80257,6 +80675,63 @@ hidden
}
}
}
entity
{
"id" "783477"
"classname" "info_overlay"
"angles" "0 270 0"
"BasisNormal" "0 0 1"
"BasisOrigin" "-7894 -690 832"
"BasisU" "-4.37114e-008 -1 0"
"BasisV" "1 -4.37114e-008 0"
"EndU" "1"
"EndV" "0"
"fademindist" "-1"
"material" "swarm/decals/supplyroomdecal"
"sides" ""
"StartU" "0"
"StartV" "1"
"uv0" "-33.5213 -47.2689 0"
"uv1" "-33.5213 47.2689 0"
"uv2" "33.5213 47.2689 0"
"uv3" "33.5213 -47.2689 0"
"origin" "-7894 -690 832"
editor
{
"color" "80 150 225"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 0]"
}
}
entity
{
"id" "783607"
"classname" "info_overlay"
"angles" "0 180 0"
"BasisNormal" "0 0 1"
"BasisOrigin" "-7895.5 -705 832"
"BasisU" "-1 8.74228e-008 0"
"BasisV" "-8.74228e-008 -1 0"
"EndU" "1"
"EndV" "0"
"fademindist" "-1"
"material" "swarm/decals/arrowrightdecal"
"StartU" "0"
"StartV" "1"
"uv0" "-64.5001 -12.1344 0"
"uv1" "-64.5001 12.1344 0"
"uv2" "64.5001 12.1344 0"
"uv3" "64.5001 -12.1344 0"
"origin" "-7895.5 -705 832"
editor
{
"color" "80 150 225"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 0]"
}
}
hidden
{
entity
@ -82494,6 +82969,7 @@ entity
{
"id" "2638426"
"classname" "trigger_asw_button_area"
"completemessage" "Access Granted"
"hacklevel" "6"
"locked" "1"
"numwires" "2"
@ -82510,6 +82986,7 @@ entity
connections
{
"OnButtonActivated" "AutoInstance1-LandingBayDoor2EnableAutoOpen0-1"
"OnButtonHackCompleted" "Start_button_leftUnlock01"
"OnButtonHackCompleted" "AutoInstance1-doorpanel2Skin20.1-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_rightUnlock0-1"
"OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1"
@ -82684,6 +83161,7 @@ entity
"StartDisabled" "0"
connections
{
"OnTrigger" "hallway_spawn_01StartSpawning0-1"
"OnTrigger" "commander_choreo_m1_ob3Start2-1"
}
solid
@ -82774,6 +83252,7 @@ entity
{
"id" "2638314"
"classname" "trigger_asw_button_area"
"completemessage" "Access Granted"
"hacklevel" "6"
"locked" "1"
"numwires" "2"
@ -82790,6 +83269,7 @@ entity
connections
{
"OnButtonActivated" "AutoInstance1-LandingBayDoor1EnableAutoOpen0-1"
"OnButtonHackCompleted" "Start_button_leftUnlock01"
"OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_right1Unlock0-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_right1Disable0.1-1"
@ -108754,6 +109234,7 @@ entity
"screenspacefade" "0"
"skin" "0"
"solid" "6"
"spawnflags" "264"
"origin" "-6988.75 -5985.92 1055.72"
editor
{
@ -109804,7 +110285,7 @@ entity
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stain_01"
"sides" "80300 80271"
"sides" "69581"
"StartU" "0"
"StartV" "1"
"uv0" "-188 -28.0922 0"
@ -110111,6 +110592,35 @@ entity
}
}
entity
{
"id" "2095747"
"classname" "info_overlay"
"angles" "0 330 0"
"BasisNormal" "-0.5 -0.866025 0"
"BasisOrigin" "-5964.31 -8779.15 1121.98"
"BasisU" "0.866025 -0.5 0"
"BasisV" "0 0 1"
"EndU" "2"
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stain_01"
"sides" "71332"
"StartU" "0"
"StartV" "1"
"uv0" "-128 -40 0"
"uv1" "-128 40 0"
"uv2" "128 40 0"
"uv3" "128 -40 0"
"origin" "-5964.31 -8779.15 1121.98"
editor
{
"color" "80 150 225"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 4000]"
}
}
entity
{
"id" "2095831"
"classname" "info_overlay"
@ -110152,7 +110662,7 @@ entity
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stains_05c"
"sides" "80703"
"sides" "72447 72502"
"StartU" "0"
"StartV" "1"
"uv0" "-126.321 -126.006 0"
@ -146275,7 +146785,7 @@ entity
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stains_05c"
"sides" "127530 127554 127542"
"sides" ""
"StartU" "0"
"StartV" "1"
"uv0" "-102.126 -104.984 0"
@ -148941,6 +149451,8 @@ entity
{
"id" "2278966"
"classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7"
"renderamt" "75"
"rendercolor" "100 100 100"
@ -159395,6 +159907,35 @@ entity
}
}
entity
{
"id" "2463370"
"classname" "info_overlay"
"angles" "0 0 0"
"BasisNormal" "0 0 1"
"BasisOrigin" "-6944 952 832"
"BasisU" "1 0 0"
"BasisV" "0 1 0"
"EndU" "1"
"EndV" "0"
"fademindist" "-1"
"material" "overlays/stains_05c"
"sides" ""
"StartU" "0"
"StartV" "1"
"uv0" "-164.286 -159.488 0"
"uv1" "-164.286 159.488 0"
"uv2" "164.286 159.488 0"
"uv3" "164.286 -159.488 0"
"origin" "-6944 952 832"
editor
{
"color" "80 150 225"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 2500]"
}
}
entity
{
"id" "2463400"
"classname" "info_overlay"
@ -161752,6 +162293,7 @@ entity
"lightworld" "1"
"nearz" "4.0"
"shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1"
"texturename" "effects/flashlight001"
"origin" "-7400 -928 1027.73"
@ -166258,6 +166800,8 @@ entity
{
"id" "3085728"
"classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7"
"renderamt" "10"
"rendercolor" "100 100 100"
@ -167150,6 +167694,7 @@ entity
"lightworld" "1"
"nearz" "4.0"
"shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1"
"texturename" "effects/flashlight001"
"origin" "-6318 1072 982.022"
@ -170219,6 +170764,10 @@ entity
"shadowcastdist" "0"
"skin" "0"
"spawnflags" "32769"
connections
{
"OnBreak" "CrateRandomTriggerEnable0-1"
}
"origin" "-6552 -6960 946"
editor
{
@ -171091,6 +171640,101 @@ entity
}
}
entity
{
"id" "3174864"
"classname" "trigger_once"
"origin" "-7072 -2496 951"
"spawnflags" "16"
"StartDisabled" "0"
connections
{
"OnTrigger" "storage_room_spawn_3StartSpawning0-1"
}
solid
{
"id" "3174865"
side
{
"id" "156287"
"plane" "(-7104 -2848 1030) (-7104 -2144 1030) (-7040 -2144 1030)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 -56] 0.25"
"vaxis" "[0 -1 0 4] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "156286"
"plane" "(-7104 -2144 872) (-7104 -2848 872) (-7040 -2848 872)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 -56] 0.25"
"vaxis" "[0 -1 0 4] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "156285"
"plane" "(-7104 -2848 872) (-7104 -2144 872) (-7104 -2144 1030)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 -4] 0.25"
"vaxis" "[0 0 -1 12] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "156284"
"plane" "(-7040 -2144 872) (-7040 -2848 872) (-7040 -2848 1030)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[0 1 0 -4] 0.25"
"vaxis" "[0 0 -1 12] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "156283"
"plane" "(-7104 -2144 872) (-7040 -2144 872) (-7040 -2144 1030)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 -56] 0.25"
"vaxis" "[0 0 -1 12] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "156282"
"plane" "(-7040 -2848 872) (-7104 -2848 872) (-7104 -2848 1030)"
"material" "TOOLS/TOOLSTRIGGER"
"uaxis" "[1 0 0 -56] 0.25"
"vaxis" "[0 0 -1 12] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[16000 15500]"
}
}
entity
{
"id" "3174898"
"classname" "asw_holo_sentry"
@ -171100,6 +171744,9 @@ entity
connections
{
"OnSentryPlaced" "sentry_placementDisable0-1"
"OnSentryPlaced" "relay_turret_placedTrigger0-1"
"OnSentryPlaced" "relay_no_turret_messageEnable0-1"
"OnSentryPlaced" "relay_turret_messageDisable0-1"
}
"origin" "-6592 768 880"
editor
@ -174019,6 +174666,7 @@ entity
"lightworld" "1"
"nearz" "4.0"
"shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1"
"texturename" "effects/flashlight001"
"origin" "-4608.89 628.121 1008.58"
@ -176491,6 +177139,28 @@ entity
}
}
entity
{
"id" "3277278"
"classname" "path_track"
"angles" "0 90 0"
"orientationtype" "2"
"radius" "0"
"target" "path_2"
"targetname" "path_1"
connections
{
"OnPass" "combinegunshipSetMaxSpeed800-1"
}
"origin" "-4576 -9120 960"
editor
{
"color" "255 192 0"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 8000]"
}
}
entity
{
"id" "3277281"
"classname" "path_track"
@ -176501,7 +177171,7 @@ entity
"targetname" "path_2"
connections
{
"OnPass" "train_shipSetSpeed800-1"
"OnPass" "combinegunshipSetMaxSpeed800-1"
}
"origin" "-4224 -9104 1600"
editor
@ -179172,31 +179842,13 @@ entity
"logicalpos" "[1500 -9768]"
}
}
entity
{
"id" "3277278"
"classname" "path_track"
"angles" "0 90 0"
"orientationtype" "2"
"radius" "0"
"target" "path_2"
"targetname" "path_1"
"origin" "-4576 -9120 960"
editor
{
"color" "255 192 0"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 8000]"
}
}
cameras
{
"activecamera" "0"
camera
{
"position" "[-4575.48 -9135.1 972.828]"
"look" "[-4608.69 -9001.92 742.564]"
"position" "[-7199.93 -2176.95 1467.34]"
"look" "[-7349.58 -2145.12 1247.21]"
}
}
cordons

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@ versioninfo
{
"editorversion" "400"
"editorbuild" "4956"
"mapversion" "3283"
"mapversion" "3284"
"formatversion" "100"
"prefab" "0"
}
@ -80,15 +80,15 @@ viewsettings
world
{
"id" "182379"
"mapversion" "3283"
"mapversion" "3284"
"classname" "worldspawn"
"detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp"
"maxpropscreenwidth" "-1"
"minpropscreenwidth" "0"
"skyname" "sky_day02_07_hdr"
"speedruntime" "185"
"speedruntimesp" "185"
"speedruntime" "150"
"speedruntimesp" "150"
solid
{
"id" "376"
@ -86307,8 +86307,8 @@ entity
{
"id" "530362"
"classname" "asw_gamerules"
"speedruntime" "185"
"speedruntimesp" "185"
"speedruntime" "150"
"speedruntimesp" "150"
"origin" "0 0 0"
editor
{
@ -117853,32 +117853,6 @@ entity
}
}
entity
{
"id" "1038974"
"classname" "prop_dynamic"
"angles" "0 0 0"
"DefaultAnim" "pre_idle"
"fademindist" "-1"
"fadescale" "1"
"MaxAnimTime" "10"
"MinAnimTime" "5"
"model" "models/props/destructable_pipe_set/destructable_bridge_props.mdl"
"renderamt" "255"
"rendercolor" "255 255 255"
"skin" "0"
"solid" "6"
"spawnflags" "0"
"targetname" "pipes_destroy"
"origin" "18 -14 -1"
editor
{
"color" "220 30 220"
"visgroupshown" "1"
"visgroupautoshown" "1"
"logicalpos" "[0 500]"
}
}
entity
{
"id" "1039131"
"classname" "ambient_generic"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
versioninfo
{
"editorversion" "400"
"editorbuild" "4956"
"mapversion" "1254"
"editorbuild" "4961"
"mapversion" "1255"
"formatversion" "100"
"prefab" "0"
}
@ -32,7 +32,7 @@ viewsettings
world
{
"id" "8147"
"mapversion" "1254"
"mapversion" "1255"
"classname" "worldspawn"
"detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp"
@ -51295,6 +51295,82 @@ world
"visgroupautoshown" "1"
}
}
solid
{
"id" "1148736"
side
{
"id" "315206"
"plane" "(-66 -2816 -304) (244 -2816 -304) (244 -3060 -304)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[1 0 0 0] 0.25"
"vaxis" "[0 -1 0 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "315207"
"plane" "(-66 -3060 -624) (244 -3060 -624) (244 -2816 -624)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[1 0 0 0] 0.25"
"vaxis" "[0 -1 0 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "315208"
"plane" "(-66 -2816 -304) (-66 -3060 -304) (-66 -3060 -624)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[0 1 0 0] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "315209"
"plane" "(244 -2816 -624) (244 -3060 -624) (244 -3060 -304)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[0 1 0 0] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "315210"
"plane" "(244 -2816 -304) (-66 -2816 -304) (-66 -2816 -624)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[1 0 0 0] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
side
{
"id" "315211"
"plane" "(244 -3060 -624) (-66 -3060 -624) (-66 -3060 -304)"
"material" "TOOLS/TOOLSPLAYERCLIP"
"uaxis" "[1 0 0 0] 0.25"
"vaxis" "[0 0 -1 0] 0.25"
"rotation" "0"
"lightmapscale" "16"
"smoothing_groups" "0"
}
editor
{
"color" "0 142 155"
"visgroupshown" "1"
"visgroupautoshown" "1"
}
}
group
{
"id" "82010"
@ -271916,8 +271992,8 @@ cameras
"activecamera" "0"
camera
{
"position" "[86.99 -2826.5 -468.697]"
"look" "[86.99 3379.34 -468.697]"
"position" "[340.584 -3163.69 -372.589]"
"look" "[-1762.81 2259.29 -2535.76]"
}
}
cordons

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

View File

@ -0,0 +1,3 @@
"nonice" "1"
"nolod" "1"
"nomip" "1"

View File

@ -1,8 +1,8 @@
versioninfo
{
"editorversion" "400"
"editorbuild" "4955"
"mapversion" "2088"
"editorbuild" "4957"
"mapversion" "2089"
"formatversion" "100"
"prefab" "0"
}
@ -50,7 +50,7 @@ viewsettings
world
{
"id" "394754"
"mapversion" "2088"
"mapversion" "2089"
"classname" "worldspawn"
"detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp"
@ -10896,8 +10896,8 @@ entity
{
"id" "1841164"
"classname" "asw_debrief_info"
"DebriefText1" "#asw_landingbay_db1"
"DebriefText2" "#asw_landingbay_db2"
"DebriefText1" "#asw_cargo_db1"
"DebriefText2" "#asw_cargo_db2"
"origin" "-1887 7020 1042"
editor
{

View File

@ -1,8 +1,8 @@
versioninfo
{
"editorversion" "400"
"editorbuild" "4956"
"mapversion" "3601"
"editorbuild" "4961"
"mapversion" "3602"
"formatversion" "100"
"prefab" "0"
}
@ -50,7 +50,7 @@ viewsettings
world
{
"id" "394754"
"mapversion" "3601"
"mapversion" "3602"
"classname" "worldspawn"
"detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp"
@ -83794,6 +83794,7 @@ entity
connections
{
"OnTrigger" "ins_ranger2_spawnStartSpawning0-1"
"OnTrigger" "ramp_room_spawn_01StartSpawning1-1"
}
solid
{
@ -85364,8 +85365,8 @@ cameras
"activecamera" "0"
camera
{
"position" "[-5815.91 794.565 1596.64]"
"look" "[-2039.13 -3284.06 -1358.97]"
"position" "[-5439.43 4433.65 1516.29]"
"look" "[-6158.24 5678.66 -4613]"
}
}
cordons

View File

@ -708,6 +708,9 @@ public:
// returns true if we are of type C_ClientRagdoll
virtual bool IsClientRagdoll() const { return true; }
protected:
bool m_bReleaseRagdoll;
private:
int m_iCurrentFriction;
int m_iMinFriction;
@ -716,7 +719,6 @@ private:
float m_flFrictionTime;
int m_iFrictionAnimState;
bool m_bReleaseRagdoll;
bool m_bFadingOut;

View File

@ -585,6 +585,11 @@ static int SoundscapeCompletion( const char *partial, char commands[ COMMAND_COM
return current;
}
void ForceSoundscape( const char *pSoundscapeName, float radius )
{
GetClientSoundscapeSystem()->ForceSoundscape( pSoundscapeName, radius );
}
CON_COMMAND_F_COMPLETION( playsoundscape, "Forces a soundscape to play", FCVAR_CHEAT, SoundscapeCompletion )
{
FOR_EACH_VALID_SPLITSCREEN_PLAYER( hh )

View File

@ -945,9 +945,14 @@ static ConCommand startcamin( "+camin", CAM_InDown );
static ConCommand endcamin( "-camin", CAM_InUp );
static ConCommand startcamout( "+camout", CAM_OutDown );
static ConCommand camout( "-camout", CAM_OutUp );
#ifdef INFESTED_DLL
static ConCommand thirdperson( "thirdperson", Cmd_CAM_ToThirdPerson, "Switch to thirdperson camera." );
static ConCommand firstperson( "firstperson", Cmd_CAM_ToFirstPerson, "Switch to firstperson camera.", FCVAR_CHEAT );
#else
static ConCommand thirdperson( "thirdperson", Cmd_CAM_ToThirdPerson, "Switch to thirdperson camera.", FCVAR_CHEAT );
static ConCommand thirdperson_mayamode( "thirdperson_mayamode", ::CAM_ToThirdPerson_MayaMode, "Switch to thirdperson Maya-like camera controls.", FCVAR_CHEAT );
static ConCommand firstperson( "firstperson", Cmd_CAM_ToFirstPerson, "Switch to firstperson camera." );
#endif
static ConCommand thirdperson_mayamode( "thirdperson_mayamode", ::CAM_ToThirdPerson_MayaMode, "Switch to thirdperson Maya-like camera controls.", FCVAR_CHEAT );
static ConCommand thirdpersonshoulder( "thirdpersonshoulder", Cmd_CAM_ToThirdPersonShoulder, "Switch to thirdperson-shoulder camera." );
static ConCommand camortho( "camortho", Cmd_CAM_ToOrthographic, "Switch to orthographic camera.", FCVAR_CHEAT );
static ConCommand startcammousemove( "+cammousemove",::CAM_StartMouseMove);

View File

@ -282,6 +282,29 @@ bool CASW_Briefing::IsLobbySlotLocal( int nLobbySlot )
return pMR->GetCommander() && ( pMR->GetCommander() == C_ASW_Player::GetLocalASWPlayer() );
}
bool CASW_Briefing::IsLobbySlotBot( int nLobbySlot )
{
if ( nLobbySlot < 0 || nLobbySlot >= NUM_BRIEFING_LOBBY_SLOTS || !IsLobbySlotOccupied( nLobbySlot ) )
return false;
int nMarineResourceIndex = LobbySlotToMarineResourceIndex( nLobbySlot );
C_ASW_Marine_Resource *pMR = ASWGameResource() ? ASWGameResource()->GetMarineResource( nMarineResourceIndex ) : NULL;
bool bHuman = ( pMR == NULL );
if ( pMR )
{
C_ASW_Player *pPlayer = m_LobbySlotMapping[ nLobbySlot ].m_hPlayer.Get();
C_ASW_Marine_Resource *pFirstMR = pPlayer ? ASWGameResource()->GetFirstMarineResourceForPlayer( pPlayer ) : NULL;
if ( pFirstMR == pMR )
{
bHuman = true;
}
}
return !bHuman;
}
wchar_t* CASW_Briefing::GetMarineOrPlayerName( int nLobbySlot )
{
if ( nLobbySlot < 0 || nLobbySlot >= NUM_BRIEFING_LOBBY_SLOTS || !IsLobbySlotOccupied( nLobbySlot ) )

View File

@ -32,6 +32,7 @@ public:
virtual void StartMission();
virtual bool IsLobbySlotOccupied( int nLobbySlot );
virtual bool IsLobbySlotLocal( int nLobbySlot );
virtual bool IsLobbySlotBot( int nLobbySlot );
virtual wchar_t* GetMarineOrPlayerName( int nLobbySlot );
virtual wchar_t* GetMarineName( int nLobbySlot ); // always returns the marine's profile name
virtual const char* GetPlayerNameForMarineProfile( int nProfileIndex );

View File

@ -21,7 +21,7 @@ CASW_Client_Entities::CASW_Client_Entities()
void CASW_Client_Entities::LevelInitPostEntity()
{
C_ASW_Camera_Volume::RecreateAll();
//C_ASW_Camera_Volume::RecreateAll();
C_ASW_Snow_Volume::RecreateAll();
//C_Sprite::RecreateAll();
C_ASW_Scanner_Noise::RecreateAll();
@ -29,7 +29,7 @@ void CASW_Client_Entities::LevelInitPostEntity()
void CASW_Client_Entities::LevelShutdownPreEntity()
{
C_ASW_Camera_Volume::DestroyAll();
//C_ASW_Camera_Volume::DestroyAll();
C_ASW_Snow_Volume::DestroyAll();
//C_Sprite::DestroyAll();
C_ASW_Scanner_Noise::DestroyAll();

View File

@ -935,6 +935,12 @@ void CASWInput::ComputeNewMarineFacing( C_ASW_Player *pPlayer, const Vector &Hit
void CASWInput::TurnTowardMouse(QAngle& viewangles, CUserCmd *cmd)
{
VPROF_BUDGET( "CASWInput::TurnTowardMouse", VPROF_BUDGETGROUP_ASW_CLIENT );
if ( !engine->IsActiveApp() )
{
return;
}
float mx, my;
C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
@ -945,6 +951,11 @@ void CASWInput::TurnTowardMouse(QAngle& viewangles, CUserCmd *cmd)
int iScreenWidth, iScreenHeight;
engine->GetScreenSize( iScreenWidth, iScreenHeight );
if ( iScreenWidth <= 0 || iScreenHeight <= 0 )
{
return;
}
int x, y;
GetWindowCenter( x, y );

View File

@ -574,7 +574,7 @@ void reset_xp_f()
}
}
static ConCommand reset_xp( "reset_xp", reset_xp_f, "Clears your experience", FCVAR_NONE );
static ConCommand reset_xp( "reset_xp", reset_xp_f, "Clears your experience", FCVAR_DEVELOPMENTONLY );
void C_ASW_Medal_Store::OnIncreaseCounts(int iAddMission, int iAddCampaign, int iAddKills, bool bOffline)

View File

@ -37,6 +37,8 @@ C_ASW_Ammo_Drop::C_ASW_Ammo_Drop() :
m_iAmmoUnitsRemaining = DEFAULT_AMMO_DROP_UNITS;
g_AmmoDrops.AddToTail( this );
m_bEnoughAmmo = false;
}
@ -82,7 +84,7 @@ bool C_ASW_Ammo_Drop::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
if ( !AllowedToPickup( pUser ) )
{
if ( pUser->CanPickupPrimaryAmmo() )
if ( !m_bEnoughAmmo )
{
TryLocalize( "#asw_not_enough_ammo_drop", action.wszText, sizeof( action.wszText ) );
}
@ -180,7 +182,9 @@ C_ASW_Weapon* C_ASW_Ammo_Drop::GetAmmoUseUnits( C_ASW_Marine *pMarine )
int iBullets = pMarine->GetAmmoCount( iAmmoType );
int iAmmoCost = CASW_Ammo_Drop_Shared::GetAmmoUnitCost( iAmmoType );
if ( ( iBullets < iMaxAmmoCount ) && ( m_iAmmoUnitsRemaining >= iAmmoCost ) )
m_bEnoughAmmo = m_iAmmoUnitsRemaining >= iAmmoCost;
if ( ( iBullets < iMaxAmmoCount ) && m_bEnoughAmmo )
{
return pWeapon;
}

View File

@ -51,6 +51,7 @@ public:
private:
C_ASW_Ammo_Drop( const C_ASW_Ammo_Drop & ); // not defined, not accessible
bool m_bEnoughAmmo;
};
extern CUtlVector<C_ASW_Ammo_Drop*> g_AmmoDrops;

View File

@ -16,7 +16,7 @@ BEGIN_DATADESC( C_ASW_ClientRagdoll )
DEFINE_FIELD( m_iSourceEntityIndex, FIELD_INTEGER ),
END_DATADESC()
ConVar asw_drone_ridiculous( "asw_drone_ridiculous", "0", FCVAR_NONE, "(testing) If true, hurl drone ragdolls at camera in a ridiculous fashion." );
ConVar asw_drone_ridiculous( "asw_drone_ridiculous", "0", FCVAR_CHEAT, "If true, hurl drone ragdolls at camera in a ridiculous fashion." );
ConVar asw_drone_gib_velocity( "asw_drone_gib_velocity", "1.75", FCVAR_CHEAT, "Drone gibs will inherit the velocity of the parent ragdoll scaled by this" );
extern ConVar asw_breakable_aliens;
extern ConVar asw_alien_debug_death_style;
@ -174,6 +174,13 @@ void C_ASW_ClientRagdoll::BreakRagdoll()
//ConVar test_hurl( "test_hurl", "0.25" );
void C_ASW_ClientRagdoll::ClientThink( void )
{
// if parent is going to delete us, make sure we do nothing else
if ( m_bReleaseRagdoll )
{
BaseClass::ClientThink();
return;
}
BaseClass::ClientThink();
// OLD STUFF

View File

@ -750,17 +750,9 @@ void reset_steam_stats_f()
pPlayer->RequestExperience();
}
}
ConCommand reset_steam_stats( "reset_steam_stats", reset_steam_stats_f, "Resets steam stats (experience, etc.)", FCVAR_NONE );
ConCommand reset_steam_stats( "reset_steam_stats", reset_steam_stats_f, "Resets steam stats (experience, etc.)", FCVAR_DEVELOPMENTONLY );
void asw_award_xp_f()
{
C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( pPlayer )
{
pPlayer->AwardExperience();
}
}
ConCommand asw_award_xp( "asw_award_xp", asw_award_xp_f, "Awards XP on end screen", FCVAR_NONE );
void asw_show_xp_f()
{

View File

@ -30,6 +30,34 @@ bool C_ASW_Door_Area::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
if ( !pDoor || !pUser )
return false;
bool bHasWelder = pUser->Weapon_OwnsThisType( "asw_weapon_welder" ) != NULL;
if ( !bHasWelder )
{
CASW_Hud_Master *pHUDMaster = GET_HUDELEMENT( CASW_Hud_Master );
if ( pHUDMaster )
{
int nWelderPosition = pHUDMaster->GetHotBarSlot( "asw_weapon_welder" );
if ( nWelderPosition != -1 && pHUDMaster->OwnsHotBarSlot( pUser->GetCommander(), nWelderPosition ) )
{
bHasWelder = true;
if ( nWelderPosition >= 100 )
{
V_strncpy( action.szCommand, "+walk", sizeof( action.szCommand ) );
}
else
{
V_snprintf( action.szCommand, sizeof( action.szCommand ), "asw_squad_hotbar %i", nWelderPosition + 1 );
}
}
}
}
else
{
V_strncpy( action.szCommand, "+grenade1", sizeof( action.szCommand ) );
}
// if door is sealed
// add sealed icon with bar showing seal percent
if ( pDoor->GetHealth() > 0 )
@ -46,23 +74,13 @@ bool C_ASW_Door_Area::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
action.UseIconRed = 255;
action.UseIconGreen = 255;
action.UseIconBlue = 255;
action.bShowUseKey = false;
action.bShowUseKey = bHasWelder;
action.iInventorySlot = -1;
return true;
}
else if ( pUser->GetActiveWeapon() )
{
bool bHasWelder = pUser->Weapon_OwnsThisType( "asw_weapon_welder" ) != NULL;
if ( !bHasWelder )
{
CASW_Hud_Master *pHUDMaster = GET_HUDELEMENT( CASW_Hud_Master );
if ( pHUDMaster )
{
bHasWelder = ( pHUDMaster->GetHotBarSlot( "asw_weapon_welder" ) != -1 );
}
}
if ( bHasWelder )
{
if ( pDoor->GetSealAmount() >= 1.0f )
@ -80,7 +98,7 @@ bool C_ASW_Door_Area::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
action.UseIconRed = 255;
action.UseIconGreen = 255;
action.UseIconBlue = 255;
action.bShowUseKey = false;
action.bShowUseKey = true;
action.iInventorySlot = -1;
return true;
}

View File

@ -18,7 +18,6 @@ END_PREDICTION_DATA()
ConVar cl_asw_drone_travel_yaw("cl_asw_drone_travel_yaw", "0", FCVAR_CHEAT, "Show the clientside estimated travel yaw for swarm drones");
ConVar cl_asw_drone_travel_yaw_rate("cl_asw_drone_travel_yaw_rate", "4.0f", FCVAR_CHEAT, "How fast the drones alter their move_yaw param");
ConVar asw_drone_layers("asw_drone_layers", "1", 0, "Apply drone animation layers");
ConVar asw_debug_drone_pose( "asw_debug_drone_pose", "0", FCVAR_NONE, "Set to drone entity index to output drone pose params" );
ConVar asw_drone_jump_pitch_min( "asw_drone_jump_pitch_min", "-45", FCVAR_NONE, "Min pitch for drone's jumping pose parameter" );
ConVar asw_drone_jump_pitch_max( "asw_drone_jump_pitch_max", "45", FCVAR_NONE, "Min pitch for drone's jumping pose parameter" );

View File

@ -45,7 +45,6 @@
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
ConVar asw_drone_bleed_gibs("asw_drone_bleed_gibs", "1", 0, "Number of gibs drones should give off when shot");
ConVar asw_gib_bleed_time("asw_gib_bleed_time", "1.5", 0, "How long drone gibs bleed for");
ConVar asw_pierce_spark_scale("asw_pierce_spark_scale", "0.9", 0, "Scale applied to piercing spark effect");
ConVar asw_tracer_style("asw_tracer_style", "1", FCVAR_ARCHIVE, "Specify tracer style. 0=none 1=normal 2=grey line");
@ -105,44 +104,43 @@ PRECACHE( MATERIAL, "vgui/swarm/hacking/rightconnect" )
PRECACHE( MATERIAL, "vgui/swarm/hacking/swarmdoorhackopen" )
PRECACHE( MATERIAL, "vgui/swarm/hacking/fastmarker" )
PRECACHE( MATERIAL, "vgui/swarm/hud/tickboxticked" )
PRECACHE( MATERIAL, "vgui/swarm/hud/clipsicon" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbar" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbarr" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbari" )
PRECACHE( MATERIAL, "vgui/swarm/hud/doorhealth" )
PRECACHE( MATERIAL, "vgui/swarm/hud/doorweld" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statdamage" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statdamage" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/skillparticle" )
PRECACHE( MATERIAL, "vgui/icon_button_arrow_right" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statkilled" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stattime" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stataccuracy" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statfriendly" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots2" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statskillpoints" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statburned" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statheal" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stathack" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statkilled" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/stattime" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/stataccuracy" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statfriendly" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots2" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statskillpoints" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statburned" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/statheal" )
//PRECACHE( MATERIAL, "vgui/swarm/briefing/stathack" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/topleftbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/toprightbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomleftbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomrightbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton_over" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconBloodhound" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconCargoForklift" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneSide" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneTop" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconEgg" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteSide" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteTop" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconPlanet" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconSolarSystem" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconStarchart" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconTerminal" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconBloodhound" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconCargoForklift" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneSide" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneTop" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconEgg" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteSide" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteTop" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconPlanet" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconSolarSystem" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconStarchart" )
//PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconTerminal" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Accuracy" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Agility" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Autogun" )

View File

@ -95,6 +95,9 @@
#include "asw_weapon_sniper_rifle.h"
#include "asw_melee_system.h"
#include "c_asw_jukebox.h"
#include "missionchooser/iasw_mission_chooser.h"
#include "missionchooser/iasw_random_missions.h"
#if defined( CASW_Player )
#undef CASW_Player
#endif
@ -340,6 +343,8 @@ C_ASW_Player::C_ASW_Player() :
m_flPendingSteamStatsStart = 0.0f;
m_hUseKeyDownEnt = NULL;
m_flUseKeyDownTime = 0.0f;
m_roomDetailsCheckTimer.Invalidate();
m_szSoundscape[0] = 0;
for ( int i = 0; i < ASW_NUM_XP_TYPES; i++ )
{
m_iEarnedXP[ i ] = 0;
@ -1236,6 +1241,87 @@ void C_ASW_Player::ClientThink()
C_ASW_Snow_Volume::UpdateSnow(this);
UpdateLocalMarineGlow();
if ( missionchooser->RandomMissions() && missionchooser->RandomMissions()->ValidMapLayout() )
{
UpdateRoomDetails();
}
}
void ForceSoundscape( const char *pSoundscapeName, float radius );
void C_ASW_Player::UpdateRoomDetails()
{
VPROF("C_ASW_Player::UpdateRoomDetails");
if ( m_roomDetailsCheckTimer.HasStarted() && !m_roomDetailsCheckTimer.IsElapsed() )
return;
m_roomDetailsCheckTimer.Start( 1.0f ); // check soundscape every second
if ( !missionchooser || !missionchooser->RandomMissions() || !ASWGameRules() || ASWGameRules()->GetGameState() != ASW_GS_INGAME )
{
return;
}
C_ASW_Marine *pMarine = GetMarine();
if ( !pMarine )
{
pMarine = GetSpectatingMarine();
}
Vector vecAmbientPos = vec3_origin;
if ( pMarine )
{
vecAmbientPos = pMarine->GetAbsOrigin();
}
else
{
vecAmbientPos = GetAbsOrigin();
}
IASW_Random_Missions *pRandomMissions = missionchooser->RandomMissions();
IASW_Room_Details* pRoom = pRandomMissions->GetRoomDetails( vecAmbientPos );
if ( pRoom )
{
// update soundscape
static char szSoundscape[64];
pRoom->GetSoundscape( szSoundscape, 64 );
if ( szSoundscape[0] && Q_stricmp( szSoundscape, m_szSoundscape ) )
{
Q_strcpy( m_szSoundscape, szSoundscape );
ForceSoundscape( m_szSoundscape, 36.0f );
}
// update ambient light
if ( !m_hAmbientLight.Get() )
{
C_EnvAmbientLight *pAmbient = new C_EnvAmbientLight;
if ( pAmbient )
{
if ( pAmbient->InitializeAsClientEntity( NULL, false ) )
{
pAmbient->InitSpatialEntity();
pAmbient->SetFalloff( -1, -1 ); // make it global
pAmbient->SetColor( Vector( 1, 1, 1 ) );
pAmbient->SetCurWeight( 1.0f );
pAmbient->SetEnabled( true );
m_hAmbientLight = pAmbient;
}
}
}
if ( m_hAmbientLight.Get() )
{
Vector vecTargetColor = m_hAmbientLight->GetTargetColor();
Vector vecNewColor = pRoom->GetAmbientLight();
if ( vecTargetColor != vecNewColor )
{
// change to the new ambient light setting
//Msg( "player set local ambient light to %f %f %f\n", VectorExpand( vecNewColor ) );
m_hAmbientLight->SetColor( vecNewColor, 2.0f );
}
}
}
}
void C_ASW_Player::ShowMessageLog()

View File

@ -202,6 +202,8 @@ public:
virtual CBaseEntity *GetSoundscapeListener();
void UpdateRoomDetails();
// hacking
virtual void SelectHackOption(int iHackOption);
virtual void StopUsing(); // stop using a computer
@ -256,6 +258,10 @@ private:
// Marine avoidance.
void AvoidMarines( CUserCmd *pCmd );
// setting soundscape per room in randomly generated maps
char m_szSoundscape[64];
CountdownTimer m_roomDetailsCheckTimer;
CHandle<C_EnvAmbientLight> m_hAmbientLight;
public:

View File

@ -69,7 +69,6 @@ extern ConVar mat_object_motion_blur_enable;
// asw
ConVar asw_reconnect_after_outro( "asw_reconnect_after_outro", "0", 0, "If set, client will reconnect to server after outro" );
ConVar asw_cam_blend("asw_cam_blend", "1", 0, "Whether camera should blend Z and marine change movements");
ConVar asw_hear_from_marine( "asw_hear_from_marine", "0", FCVAR_NONE, "Audio hearing position is at current marine's ears" );
ConVar asw_hear_pos_debug("asw_hear_pos_debug", "0", FCVAR_NONE, "Shows audio hearing position" );
ConVar asw_hear_height("asw_hear_height", "0", FCVAR_NONE, "If set, hearing audio position is this many units above the marine. If number is negative, then hear position is number of units below the camera." );
@ -689,8 +688,51 @@ void ClientModeASW::OverrideView( CViewSetup *pSetup )
}
}
class MapDescription_t
{
public:
MapDescription_t( const char *szMapName, unsigned int nFileSize, unsigned int nEntityStringLength ) :
m_szMapName( szMapName ), m_nFileSize( nFileSize ), m_nEntityStringLength( nEntityStringLength )
{
}
const char *m_szMapName;
unsigned int m_nFileSize;
unsigned int m_nEntityStringLength;
};
static MapDescription_t s_OfficialMaps[]=
{
MapDescription_t( "maps/asi-jac1-landingbay_01.bsp", 45793676, 412634 ),
MapDescription_t( "maps/asi-jac1-landingbay_02.bsp", 25773204, 324141 ),
MapDescription_t( "maps/asi-jac2-deima.bsp", 44665212, 345367 ),
MapDescription_t( "maps/asi-jac3-rydberg.bsp", 27302616, 359228 ),
MapDescription_t( "maps/asi-jac4-residential.bsp", 31244468, 455840 ),
MapDescription_t( "maps/asi-jac6-sewerjunction.bsp", 18986884, 287554 ),
MapDescription_t( "maps/asi-jac7-timorstation.bsp", 37830468, 506193 ),
};
void ClientModeASW::LevelInit( const char *newmap )
{
// reset ambient light
static ConVarRef mat_ambient_light_r( "mat_ambient_light_r" );
static ConVarRef mat_ambient_light_g( "mat_ambient_light_g" );
static ConVarRef mat_ambient_light_b( "mat_ambient_light_b" );
if ( mat_ambient_light_r.IsValid() )
{
mat_ambient_light_r.SetValue( "0" );
}
if ( mat_ambient_light_g.IsValid() )
{
mat_ambient_light_g.SetValue( "0" );
}
if ( mat_ambient_light_b.IsValid() )
{
mat_ambient_light_b.SetValue( "0" );
}
// Load color correction lookup
m_CCFailedHandle = g_pColorCorrectionMgr->AddColorCorrection( FAILED_CC_LOOKUP_FILENAME );
if ( m_CCFailedHandle != INVALID_CLIENT_CCHANDLE )
@ -778,6 +820,27 @@ void ClientModeASW::LevelInit( const char *newmap )
{
Briefing()->ResetLastChatterTime();
}
const char *szMapName = engine->GetLevelName();
unsigned int nFileSize = g_pFullFileSystem->Size( szMapName, "GAME" );
unsigned int nEntityLen = Q_strlen( engine->GetMapEntitiesString() );
m_bOfficialMap = false;
for ( int i = 0; i < NELEMS( s_OfficialMaps ); i++ )
{
if ( !Q_stricmp( szMapName, s_OfficialMaps[i].m_szMapName ) )
{
m_bOfficialMap = ( ( s_OfficialMaps[i].m_nFileSize == nFileSize ) && ( s_OfficialMaps[i].m_nEntityStringLength == nEntityLen ) );
break;
}
}
#ifdef _DEBUG
Msg( "map %s file size is %d\n", szMapName, nFileSize );
Msg( " entity string is %d chars long\n", nEntityLen );
Msg( "Official map = %d\n", m_bOfficialMap );
#endif
}
void ClientModeASW::LevelShutdown( void )
@ -988,6 +1051,15 @@ int ClientModeASW::KeyInput( int down, ButtonCode_t keynum, const char *pszCurre
return 0;
}
}
vgui::Panel *pContainer = GetClientMode()->GetViewport()->FindChildByName("InGameBriefingContainer", true);
if (pContainer)
{
pContainer->SetVisible(false);
pContainer->MarkForDeletion();
pContainer = NULL;
return 0;
}
}
return BaseClass::KeyInput(down, keynum, pszCurrentBinding);

View File

@ -79,6 +79,8 @@ public:
bool m_bTechFailure;
bool IsOfficialMap() { return m_bOfficialMap; }
private:
IGameUI *m_pGameUI;
@ -98,6 +100,8 @@ private:
ClientCCHandle_t m_CCInfestedHandle;
float m_fInfestedCCWeight;
bool m_bOfficialMap;
};
extern IClientMode *GetClientModeNormal();

View File

@ -44,7 +44,7 @@ CUtlVector< IBaseModFrameListener * > CBaseModFrame::m_FrameListeners;
bool CBaseModFrame::m_DrawTitleSafeBorder = false;
ConVar ui_gameui_modal( "ui_gameui_modal", "0", FCVAR_RELEASE, "If set, the game UI pages will take modal input focus." );
ConVar ui_gameui_modal( "ui_gameui_modal", "1", FCVAR_RELEASE, "If set, the game UI pages will take modal input focus." );
//=============================================================================
CBaseModFrame::CBaseModFrame( vgui::Panel *parent, const char *panelName, bool okButtonEnabled,

View File

@ -408,14 +408,7 @@ void BaseModHybridButton::PaintButtonEx()
break;
case Focus:
// active item
if ( m_nStyle == BUTTON_RED || m_nStyle == BUTTON_REDMAIN )
{
col.SetColor( 255, 255, 255, 255 );
}
else
{
col.SetColor( 255, 255, 255, 255 );
}
bDrawGlow = true;
bAnimateGlow = true;
if ( m_nStyle == BUTTON_SIMPLE ||
@ -789,6 +782,11 @@ void BaseModHybridButton::ApplySettings( KeyValues * inResourceData )
m_hTextFont = scheme->GetFont( "DefaultMedium", true );
m_hTextBlurFont = scheme->GetFont( "DefaultMediumBlur", true );
}
else if ( m_nStyle == BUTTON_ALIENSWARMDEFAULT )
{
m_hTextFont = scheme->GetFont( "Default", true );
m_hTextBlurFont = scheme->GetFont( "DefaultBlur", true );
}
else
{
m_nStyle = BUTTON_SIMPLE;

View File

@ -47,6 +47,7 @@ public:
BUTTON_MAINMENUSMALL, // smaller item strictly on the main or ingame menu
BUTTON_ALIENSWARMMENUBUTTON,
BUTTON_ALIENSWARMMENUBUTTONSMALL,
BUTTON_ALIENSWARMDEFAULT,
};
enum EnableCondition

View File

@ -10,7 +10,9 @@ struct ASWUseAction
ASWUseAction()
{
iUseIconTexture = -1;
szCommand[0] = 0;
wszText[0] = 0;
wszHoldButtonText[0] = 0;
UseTarget = NULL;
fProgress = -1;
UseIconRed = 255;
@ -43,6 +45,7 @@ struct ASWUseAction
TextBlue == other.TextBlue &&
bTextGlow == other.bTextGlow &&
iInventorySlot == other.iInventorySlot &&
!V_strcmp( szCommand, other.szCommand ) &&
!wcscoll( wszText, other.wszText ) &&
!wcscoll( wszHoldButtonText, other.wszHoldButtonText ) &&
bWideIcon == other.bWideIcon
@ -65,6 +68,7 @@ struct ASWUseAction
TextBlue == other.TextBlue &&
bTextGlow == other.bTextGlow &&
iInventorySlot == other.iInventorySlot &&
!V_strcmp( szCommand, other.szCommand ) &&
!wcscoll( wszText, other.wszText ) &&
!wcscoll( wszHoldButtonText, other.wszHoldButtonText ) &&
bWideIcon == other.bWideIcon
@ -72,6 +76,7 @@ struct ASWUseAction
}
int iUseIconTexture;
char szCommand[64];
wchar_t wszText[MAX_USE_ACTION_TEXT];
wchar_t wszHoldButtonText[MAX_USE_ACTION_TEXT];
EHANDLE UseTarget;

View File

@ -21,6 +21,7 @@ public:
virtual void StartMission() = 0;
virtual bool IsLobbySlotOccupied( int nLobbySlot ) = 0;
virtual bool IsLobbySlotLocal( int nLobbySlot ) = 0;
virtual bool IsLobbySlotBot( int nLobbySlot ) = 0;
virtual wchar_t* GetMarineOrPlayerName( int nLobbySlot ) = 0;
virtual wchar_t* GetMarineName( int nLobbySlot ) = 0; // always returns the marine's profile name
virtual const char* GetPlayerNameForMarineProfile( int nProfileIndex ) = 0;

View File

@ -182,4 +182,4 @@ void CC_ASW_TileGen( const CCommand &args )
pFrame->MoveToCenterOfScreen();
pFrame->Activate();
}
static ConCommand asw_tilegen("asw_tilegen", CC_ASW_TileGen, 0 );
static ConCommand asw_tilegen("asw_tilegen", CC_ASW_TileGen, "Experimental tile based level generator.", FCVAR_CHEAT );

View File

@ -57,7 +57,7 @@ ConVar asw_marine_edge_names("asw_marine_edge_names", "1", FCVAR_NONE, "Prevent
ConVar asw_world_healthbars("asw_world_healthbars", "1", FCVAR_NONE, "Shows health bars in the game world");
ConVar asw_world_usingbars("asw_world_usingbars", "1", FCVAR_NONE, "Shows using bars in the game world");
ConVar asw_marine_labels_cursor_maxdist( "asw_marine_labels_cursor_maxdist", "70", FCVAR_NONE, "Only marines within this distance of the cursor will get their health bar drawn" );
ConVar asw_active_reload_under_marine( "asw_active_reload_under_marine", "0", FCVAR_NONE, "Draw the active reload bar under the marine?" );
ConVar asw_fast_reload_under_marine( "asw_fast_reload_under_marine", "0", FCVAR_NONE, "Draw the active reload bar under the marine?" );
ConVar asw_world_healthbar_class_icon( "asw_world_healthbar_class_icon", "0", FCVAR_NONE, "Show class icon on mouse over" );
#define ASW_MAX_MARINE_NAMES 8
@ -833,7 +833,7 @@ void CASWHud3DMarineNames::PaintMarineLabel( int iMyMarineNum, C_ASW_Marine * RE
return;
// draw the reload bar
if ( bLocal && pWeapon && pWeapon->IsReloading() && asw_fast_reload_enabled.GetBool() && asw_active_reload_under_marine.GetBool() )
if ( bLocal && pWeapon && pWeapon->IsReloading() && asw_fast_reload_enabled.GetBool() && asw_fast_reload_under_marine.GetBool() )
{
PaintReloadBar( pWeapon, nBoxCenterX, nCursorY );
nCursorY += nHealthBarHeight + nLineSpacing;

View File

@ -133,7 +133,7 @@ void CASWHudCrosshair::Paint( void )
if ( !crosshair.GetInt() )
return;
if ( engine->IsDrawingLoadingImage() || engine->IsPaused() )
if ( engine->IsDrawingLoadingImage() || engine->IsPaused() || !engine->IsActiveApp() )
return;
C_ASW_Player* pPlayer = C_ASW_Player::GetLocalASWPlayer();
@ -262,7 +262,7 @@ const char* CASWHudCrosshair::GetAmmoName(int iAmmoType)
}
extern ConVar asw_weapon_max_shooting_distance;
ConVar asw_turret_cursor_blend("asw_turret_cursor_blend", "5.0f");
void CASWHudCrosshair::PaintTurretTextures()
{
// draw border in centre of screen
@ -382,6 +382,13 @@ ConVar asw_turret_dot("asw_turret_dot", "0.9", FCVAR_CHEAT, "Dot angle above whi
void CASWHudCrosshair::PaintReloadProgressBar( void )
{
if ( !engine->IsActiveApp() )
{
m_pAmmoProgress->SetVisible( false );
m_pFastReloadBar->SetVisible( false );
return;
}
C_ASW_Player* pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( !pPlayer )
return;

View File

@ -322,6 +322,7 @@ void CASW_HUD_Use_Icon::SetCurrentToQueuedAction()
{
// can make the queued our current and fade in
m_CurrentAction = m_QueuedAction;
FindUseKeyBind();
PositionIcon();
@ -441,6 +442,7 @@ void CASW_HUD_Use_Icon::SetUseAction(ASWUseAction &action)
{
//m_CurrentAction.fProgress = action.fProgress;
m_CurrentAction = action;
FindUseKeyBind();
return;
}
@ -465,12 +467,19 @@ void CASW_HUD_Use_Icon::FindUseKeyBind()
{
char szOldKey[12];
Q_snprintf(szOldKey, sizeof(szOldKey), "%s", m_szUseKeyText);
Q_snprintf(m_szUseKeyText, sizeof(m_szUseKeyText), "%s", ASW_FindKeyBoundTo("+use"));
char *pchCommand = "+use";
if ( m_CurrentAction.szCommand[ 0 ] )
{
pchCommand = m_CurrentAction.szCommand;
}
Q_snprintf(m_szUseKeyText, sizeof(m_szUseKeyText), "%s", ASW_FindKeyBoundTo( pchCommand ));
Q_strupr(m_szUseKeyText);
if ( Q_stricmp( m_szUseKeyText, szOldKey) )
{
ClearUseAction();
m_pBindPanel->SetBind( "+use" );
m_pBindPanel->SetBind( pchCommand );
}
}

View File

@ -31,7 +31,7 @@ CASW_VGUI_Ammo_List::CASW_VGUI_Ammo_List( vgui::Panel *pParent, const char *pEle
m_pAmmoCount[i]->SetContentAlignment(vgui::Label::a_northeast);
m_pAmmoIcon[i] = new vgui::ImagePanel( this, "AmmoIcon" );
m_pAmmoIcon[i]->SetShouldScaleImage(true);
m_pAmmoIcon[i]->SetImage( "swarm/HUD/ClipsIcon" );
m_pAmmoIcon[i]->SetImage( "hud/GameUI/hud_ammo_clip_empty" );
m_iAmmoCount[i] = 0;
}
// set names and images

View File

@ -146,7 +146,7 @@ void CASW_VGUI_Frame::OnThink()
bool CASW_VGUI_Frame::MouseClick(int x, int y, bool bRightClick, bool bDown)
{
Msg("CASW_VGUI_Frame::MouseClick x=%d y=%d closeover=%d miniover=%d down=%d\n", x, y, m_pCloseImage->IsCursorOver(), m_pMiniImage->IsCursorOver(), bDown);
//Msg("CASW_VGUI_Frame::MouseClick x=%d y=%d closeover=%d miniover=%d down=%d\n", x, y, m_pCloseImage->IsCursorOver(), m_pMiniImage->IsCursorOver(), bDown);
if (m_pCloseImage->IsCursorOver() && !bDown)
{
// close it all down

View File

@ -35,7 +35,8 @@ BriefingImagePanel::BriefingImagePanel(Panel *parent, const char *name) : ImageP
// else
// SetImage("swarm/BriefingPlant");
SetImage( "lobby/swarm_background01" );
// set to something small as this image is hidden
SetImage( "swarm/missionpics/addonmissionpic" );
SetShouldScaleImage(true);
SetPos(0,0);

View File

@ -72,13 +72,9 @@ CampaignPanel::CampaignPanel(Panel *parent, const char *name) : vgui::EditablePa
m_pBracket = new ObjectiveMapMarkPanel(this, "CampaignBracket");
m_pBracket->SetMouseInputEnabled(false);
int i = random->RandomInt(0, 1);
switch (i)
{
case 0: m_pBackDrop->SetImage("swarm/BriefingPlant"); break;
default:
case 1: m_pBackDrop->SetImage("swarm/BriefingReactor"); break;
}
// now just setting to a small temp material because this isn't shown
m_pBackDrop->SetImage("swarm/Briefing/ShadedButton");
m_pGalacticMap->SetImage("swarm/Campaign/Jacob_GalacticMap");
m_pGalaxyLines->SetImage("swarm/Campaign/GalaxyLines");
m_pSurfaceMap->SetImage("swarm/Campaign/JacobCampaignMap");

View File

@ -1,5 +1,7 @@
#include "cbase.h"
#include "CreditsPanel.h"
#include "asw_gamerules.h"
#include "asw_campaign_info.h"
#include <vgui_controls/AnimationController.h>
#include <vgui_controls/ImagePanel.h>
#include <vgui_controls/Label.h>
@ -19,6 +21,7 @@ CreditsPanel::CreditsPanel(vgui::Panel *parent, const char *name) : vgui::Panel(
m_fNextMessage = gpGlobals->curtime + ASW_MESSAGE_INTERVAL;
m_iCurMessage = 0;
m_Font = vgui::INVALID_FONT;
m_bShowCreditsLogo = true;
for (int i=0;i<ASW_LABEL_POOL_SIZE;i++)
{
@ -27,10 +30,33 @@ CreditsPanel::CreditsPanel(vgui::Panel *parent, const char *name) : vgui::Panel(
m_LabelPool[i]->SetAlpha(0);
}
char szCreditsPath[512];
CASW_Campaign_Info *pCampaign = ASWGameRules()->GetCampaignInfo();
if ( pCampaign )
Q_snprintf(szCreditsPath,sizeof(szCreditsPath), "%s.txt", STRING(pCampaign->m_CustomCreditsFile));
else
Q_snprintf(szCreditsPath,sizeof(szCreditsPath), "scripts/asw_credits.txt");
pCreditsText = new KeyValues( "Credits" );
pCreditsText->LoadFromFile( filesystem, "scripts/asw_credits.txt", NULL );
pCreditsText->LoadFromFile( filesystem, szCreditsPath, "GAME" );
pCurrentCredit = pCreditsText->GetFirstSubKey();
char const *keyname = pCurrentCredit->GetName();
if ( !Q_stricmp( keyname, "show_credits_logo" ) )
{
m_bShowCreditsLogo = pCurrentCredit->GetBool();
pCurrentCredit = pCurrentCredit->GetNextKey();
}
char const *keyname2 = pCurrentCredit->GetName();
if ( !Q_stricmp( keyname2, "custom_logo" ) )
{
string_t CustomLogoFile = MAKE_STRING( pCreditsText->GetString( "custom_logo", "../console/valve_logo" ) );
m_pLogo->SetImage( CustomLogoFile );
pCurrentCredit = pCurrentCredit->GetNextKey();
}
}
CreditsPanel::~CreditsPanel()
@ -41,10 +67,10 @@ CreditsPanel::~CreditsPanel()
void CreditsPanel::PerformLayout()
{
int w = GetParent()->GetWide();
int h = GetParent()->GetTall() - 20;
SetBounds(0, 20, w, h );
float LogoWidth = w * 0.6f;
m_pLogo->SetBounds( ( w - LogoWidth ) * 0.5f, 0, LogoWidth, LogoWidth * 0.5f);
int h = GetParent()->GetTall() - (GetParent()->GetTall()*0.11f);
SetBounds(0, h * 0.09f, w, h );
float LogoWidth = w * 0.7f;
m_pLogo->SetBounds( ( w - LogoWidth ) * 0.5f, LogoWidth*0.065f, LogoWidth, LogoWidth * 0.25f);
//m_hASWLogo->SetBounds((wide - LogoWidth) * 0.5f,tall * 0.12f, LogoWidth, LogoWidth * 0.25f);
}
@ -54,6 +80,7 @@ void CreditsPanel::ApplySchemeSettings(vgui::IScheme *pScheme)
BaseClass::ApplySchemeSettings(pScheme);
m_Font = pScheme->GetFont( "Default", IsProportional() );
if ( m_bShowCreditsLogo )
vgui::GetAnimationController()->RunAnimationCommand(m_pLogo, "Alpha", 255, 0, 2.0f, vgui::AnimationController::INTERPOLATOR_LINEAR);
for (int i=0;i<ASW_LABEL_POOL_SIZE;i++)

View File

@ -38,6 +38,7 @@ public:
float m_fNextMessage;
int m_iCurMessage;
vgui::HFont m_Font;
bool m_bShowCreditsLogo;
};
#endif // _INCLUDED_MEDAL_PANEL_H

View File

@ -17,6 +17,7 @@
#include "igameevents.h"
#include "asw_medal_store.h"
#include "nb_island.h"
#include "clientmode_asw.h"
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>
@ -60,6 +61,9 @@ CExperienceReport::CExperienceReport( vgui::Panel *parent, const char *name ) :
m_pCheatsUsedLabel = new vgui::Label( this, "CheatsUsedLabel", "#asw_cheated" );
m_pCheatsUsedLabel->SetVisible( ASWGameRules() && ASWGameRules()->m_bCheated.Get() );
m_pUnofficialMapLabel = new vgui::Label( this, "UnofficialMapLabel", "#asw_unofficial_map" );
m_pUnofficialMapLabel->SetVisible( GetClientModeASW() && !GetClientModeASW()->IsOfficialMap() );
m_iPlayerLevel = 0;
m_pszWeaponUnlockClass = NULL;
m_flOldBarMin = -1;
@ -142,6 +146,12 @@ void CExperienceReport::PerformLayout()
m_pCheatsUsedLabel->SetPos( x, y );
}
if ( m_pUnofficialMapLabel->IsVisible() )
{
y += m_pEarnedXPTitle->GetTall();
m_pUnofficialMapLabel->SetPos( x, y );
}
int island_border = YRES( 10 );
int island_top = first_line_y - YRES( 38 );
int island_tall = ( y + YRES( 15 ) + island_border ) - island_top;
@ -175,6 +185,12 @@ void CExperienceReport::OnThink()
m_pCheatsUsedLabel->SetVisible( bShowCheatsLabel );
InvalidateLayout();
}
bool bShowUnofficialMapLabel = ( GetClientModeASW() && !GetClientModeASW()->IsOfficialMap() );
if ( bShowUnofficialMapLabel != m_pUnofficialMapLabel->IsVisible() )
{
m_pUnofficialMapLabel->SetVisible( bShowUnofficialMapLabel );
InvalidateLayout();
}
// monitor local player's experience bar to see when it loops
float flBarMin = m_pExperienceBar[ 0 ]->m_pExperienceBar->GetBarMin();

View File

@ -52,6 +52,7 @@ public:
vgui::Label *m_pEarnedXPNumber;
vgui::Label *m_pCheatsUsedLabel;
vgui::Label *m_pUnofficialMapLabel;
// == MANAGED_MEMBER_POINTERS_START: Do not edit by hand ==
WeaponUnlockPanel *m_pWeaponUnlockPanel;

View File

@ -84,6 +84,8 @@ void ExperienceStatLine::ApplySchemeSettings( vgui::IScheme *pScheme )
LoadControlSettings( "resource/UI/ExperienceStatLine.res" );
// no longer used / icons don't exist anymore
/*
switch( m_XPType )
{
case ASW_XP_MISSION: m_pIcon->SetImage( "swarm/Briefing/statshots" ); break;
@ -94,6 +96,7 @@ void ExperienceStatLine::ApplySchemeSettings( vgui::IScheme *pScheme )
case ASW_XP_HEALING: m_pIcon->SetImage( "swarm/Briefing/statheal" ); break;
case ASW_XP_HACKING: m_pIcon->SetImage( "swarm/Briefing/stathack" ); break;
}
*/
UpdateVisibility( ToASW_Player( m_hPlayer.Get() ) );
}

View File

@ -37,7 +37,9 @@
using namespace vgui;
#ifdef _DEBUG
extern ConVar asw_unlock_all_weapons;
#endif
ConVar asw_success_sound_delay( "asw_success_sound_delay", "0.0", FCVAR_CHEAT, "Delay before playing mission success music" );
ConVar asw_fail_sound_delay( "asw_fail_sound_delay", "0.0", FCVAR_CHEAT, "Delay before playing mission fail music" );
ConVar asw_show_stats_in_singleplayer( "asw_show_stats_in_singleplayer", "0", FCVAR_NONE, "Show stats screen in singleplayer" );
@ -100,14 +102,12 @@ MissionCompletePanel::MissionCompletePanel(Panel *parent, const char *name, bool
m_PropertySheet->SetPos(0,0);
m_PropertySheet->SetSize(ScreenWidth(), ScreenHeight());
m_PropertySheet->SetVisible(true);
if ( asw_unlock_all_weapons.GetInt() < 2 )
{
m_PropertySheet->SetShowTabs( false );
}
pParent = m_PropertySheet;
// stats
if ( asw_unlock_all_weapons.GetInt() >= 2 || ASWGameRules()->IsTutorialMap() )
if ( ASWGameRules()->IsTutorialMap() )
{
m_pExperienceReport = NULL;
}
@ -121,7 +121,7 @@ MissionCompletePanel::MissionCompletePanel(Panel *parent, const char *name, bool
// if we're showing the debrief text tab, we need a property sheet to be the parent of all this stuff
m_PropertySheet->SetTabWidth(ScreenWidth()/5.0f);
if ( asw_unlock_all_weapons.GetInt() < 2 && !ASWGameRules()->IsTutorialMap() )
if ( !ASWGameRules()->IsTutorialMap() )
{
Msg( "Adding experience report\n" );
m_PropertySheet->AddPageCustomButton( m_pExperienceReport, "#asw_experience_report_tab", scheme );
@ -134,10 +134,10 @@ MissionCompletePanel::MissionCompletePanel(Panel *parent, const char *name, bool
m_PropertySheet->AddPageCustomButton( m_pStatsPanel, "#asw_stats_tab", scheme );
if ( GetControllerFocus() )
{
GetControllerFocus()->AddToFocusList( m_PropertySheet->GetTab( asw_unlock_all_weapons.GetInt() < 2 && !ASWGameRules()->IsTutorialMap() ? 1 : 0 ), false );
GetControllerFocus()->AddToFocusList( m_PropertySheet->GetTab( !ASWGameRules()->IsTutorialMap() ? 1 : 0 ), false );
}
if ( asw_unlock_all_weapons.GetInt() < 2 && !ASWGameRules()->IsTutorialMap() )
if ( !ASWGameRules()->IsTutorialMap() )
{
m_PropertySheet->SetActivePage( m_pExperienceReport );
}
@ -416,16 +416,16 @@ void MissionCompletePanel::UpdateVisibleButtons()
m_pReadyCheckImage->SetVisible( false );
if ( ASWGameRules()->GetMissionSuccess() )
{
if ( m_bCreditsSeen )
if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
{
m_pContinueButton->SetVisible( false );
m_pRestartButton->SetVisible( true );
if ( !m_bCreditsSeen )
{
m_pContinueButton->SetText( "#asw_button_credits" );
}
else
{
if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
{
m_pContinueButton->SetText( "#asw_button_credits" );
m_pContinueButton->SetText( "#asw_button_new_campaign" );
}
}
else
{
@ -435,7 +435,6 @@ void MissionCompletePanel::UpdateVisibleButtons()
m_pContinueButton->SetVisible( true );
m_pRestartButton->SetVisible( false );
}
}
else
{
m_pContinueButton->SetVisible( false );
@ -444,9 +443,17 @@ void MissionCompletePanel::UpdateVisibleButtons()
}
else
{
if ( !m_bCreditsSeen && ASWGameRules()->GetMissionSuccess() && ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
if ( ASWGameRules()->GetMissionSuccess() && ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
{
if ( !m_bCreditsSeen )
{
m_pContinueButton->SetText( "#asw_button_credits" );
}
else
{
m_pContinueButton->SetText( "#asw_button_new_campaign" );
}
m_pContinueButton->SetVisible( true );
m_pReadyButton->SetVisible( false );
m_pReadyCheckImage->SetVisible( false );
@ -478,10 +485,7 @@ void MissionCompletePanel::ApplySchemeSettings( vgui::IScheme *scheme )
{
BaseClass::ApplySchemeSettings( scheme );
if ( asw_unlock_all_weapons.GetInt() < 2 )
{
LoadControlSettings( "resource/UI/MissionCompletePanel.res" );
}
if ( !m_bSetAlpha )
{
@ -553,7 +557,9 @@ void MissionCompletePanel::OnCommand(const char* command)
}
else if ( !Q_stricmp( command, "Continue" ) )
{
if ( !m_bCreditsSeen && ASWGameRules()->GetMissionSuccess() && ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
if ( ASWGameRules()->GetMissionSuccess() && ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
{
if ( !m_bCreditsSeen )
{
C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( pPlayer )
@ -566,6 +572,12 @@ void MissionCompletePanel::OnCommand(const char* command)
UpdateVisibleButtons();
}
}
else
{
// Vote on a new mission
engine->ClientCmd("asw_vote_chooser 0 notrans");
}
}
else if ( bLeader )
{
bool bAllReady = pGameResource->AreAllOtherPlayersReady( pPlayer->entindex() );

View File

@ -29,13 +29,15 @@ MissionCompleteStatsLine::MissionCompleteStatsLine(Panel *parent, const char *na
m_pBarIcons[i] = new vgui::ImagePanel(this, "BarIcon");
m_pBarIcons[i]->SetShouldScaleImage(true);
}
m_pBarIcons[0]->SetImage("swarm/Briefing/statkilled");
m_pBarIcons[1]->SetImage("swarm/Briefing/stataccuracy");
m_pBarIcons[2]->SetImage("swarm/Briefing/statfriendly");
m_pBarIcons[3]->SetImage("swarm/Briefing/statdamage");
m_pBarIcons[4]->SetImage("swarm/Briefing/statshots2");
m_pBarIcons[5]->SetImage("swarm/Briefing/statshots2"); // changed later when we know our marine
m_pBarIcons[6]->SetImage("swarm/Briefing/statskillpoints");
// not used and the icons no longer exist
//m_pBarIcons[0]->SetImage("swarm/Briefing/statkilled");
//m_pBarIcons[1]->SetImage("swarm/Briefing/stataccuracy");
//m_pBarIcons[2]->SetImage("swarm/Briefing/statfriendly");
//m_pBarIcons[3]->SetImage("swarm/Briefing/statdamage");
//m_pBarIcons[4]->SetImage("swarm/Briefing/statshots2");
//m_pBarIcons[5]->SetImage("swarm/Briefing/statshots2"); // changed later when we know our marine
//m_pBarIcons[6]->SetImage("swarm/Briefing/statskillpoints");
// make the FF and damage taken bars be red
//m_pStats[2]->SetColors(Color(255,255,255,255), Color(255,0,0,255), Color(64,0,0,255));

View File

@ -254,7 +254,8 @@ void CNB_Header_Footer::ApplySchemeSettings( vgui::IScheme *pScheme )
LoadControlSettings( "resource/ui/nb_header_footer.res" );
// TODO: Different image in widescreen to avoid stretching
m_pBackgroundImage->SetImage( "lobby/swarm_background01" );
// this image is no longer used
//m_pBackgroundImage->SetImage( "lobby/swarm_background01" );
switch( m_nTitleStyle )
{

View File

@ -16,16 +16,21 @@
#include "nb_main_panel.h"
#include "vgui_avatarimage.h"
#include "voice_status.h"
#include "gameui/swarm/vflyoutmenu.h"
#include "gameui/swarm/vdropdownmenu.h"
#include "gameui/swarm/vhybridbutton.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
using namespace BaseModUI;
CNB_Lobby_Row::CNB_Lobby_Row( vgui::Panel *parent, const char *name ) : BaseClass( parent, name )
{
// == MANAGED_MEMBER_CREATION_START: Do not edit by hand ==
m_pAvatarBackground = new vgui::Panel( this, "AvatarBackground" );
m_pAvatarImage = new CAvatarImagePanel( this, "AvatarImage" );
m_pNameLabel = new vgui::Label( this, "NameLabel", "" );
m_pNameDropdown = new BaseModUI::DropDownMenu( this, "DrpNameLabel" );
m_pLevelLabel = new vgui::Label( this, "LevelLabel", "" );
m_pXPBar = new StatsBar( this, "XPBar" );
m_pClassLabel = new vgui::Label( this, "ClassLabel", "" );
@ -161,7 +166,7 @@ void CNB_Lobby_Row::UpdateDetails()
m_pXPBar->SetVisible( false );
m_pLevelLabel->SetVisible( false );
m_pPromotionIcon->SetVisible( false );
m_pNameLabel->SetVisible( false );
m_pNameDropdown->SetVisible( false );
m_pAvatarImage->SetVisible( false );
m_pClassLabel->SetVisible( false );
return;
@ -179,8 +184,12 @@ void CNB_Lobby_Row::UpdateDetails()
lightblue.b = 192;
lightblue.a = 255;
m_pNameLabel->SetText( Briefing()->GetMarineOrPlayerName( m_nLobbySlot ) );
m_pNameLabel->SetVisible( true );
BaseModHybridButton *pButton = m_pNameDropdown->GetButton();
if ( pButton )
{
pButton->SetText( Briefing()->GetMarineOrPlayerName( m_nLobbySlot ) );
}
m_pNameDropdown->SetVisible( true );
#if !defined(NO_STEAM)
CSteamID steamID = Briefing()->GetCommanderSteamID( m_nLobbySlot );
@ -265,9 +274,9 @@ void CNB_Lobby_Row::UpdateDetails()
m_pAvatarImage->GetPos( nAvatarX, nAvatarY );
int nNameX, nNameY;
m_pNameLabel->GetPos( nNameX, nNameY );
m_pNameDropdown->GetPos( nNameX, nNameY );
m_pNameLabel->SetPos( nAvatarX + YRES( 5 ), nNameY );
m_pNameDropdown->SetPos( nAvatarX + YRES( 5 ), nNameY );
}
else
{
@ -389,6 +398,8 @@ void CNB_Lobby_Row::CheckTooltip( CNB_Lobby_Tooltip *pTooltip )
}
}
extern ConVar developer;
void CNB_Lobby_Row::OnCommand( const char *command )
{
CNB_Main_Panel *pMainPanel = dynamic_cast<CNB_Main_Panel*>( GetParent() );
@ -414,4 +425,70 @@ void CNB_Lobby_Row::OnCommand( const char *command )
{
pMainPanel->ChangeWeapon( m_nLobbySlot, 2 );
}
else if ( !Q_stricmp( command, "PlayerFlyout" ) )
{
if ( !Briefing()->IsLobbySlotBot( m_nLobbySlot ) )
{
OpenPlayerFlyout();
}
}
else if ( !Q_stricmp( command, "#L4D360UI_SendMessage" ) )
{
char steamCmd[64];
Q_snprintf( steamCmd, sizeof( steamCmd ), "chat/%I64u", pMainPanel->m_FlyoutSteamID );
BaseModUI::CUIGameData::Get()->ExecuteOverlayCommand( steamCmd );
}
else if ( !Q_stricmp( command, "#L4D360UI_ViewSteamID" ) )
{
char steamCmd[64];
Q_snprintf( steamCmd, sizeof( steamCmd ), "steamid/%I64u", pMainPanel->m_FlyoutSteamID );
BaseModUI::CUIGameData::Get()->ExecuteOverlayCommand( steamCmd );
}
else if ( !Q_stricmp( command, "#L4D360UI_ViewSteamStats" ) )
{
#if !defined( _X360 ) && !defined( NO_STEAM )
if ( steamapicontext && steamapicontext->SteamFriends() &&
steamapicontext->SteamUtils() && steamapicontext->SteamUtils()->IsOverlayEnabled() )
{
if ( developer.GetBool() )
{
Msg( "Local player SteamID = %I64d\n", steamapicontext->SteamUser()->GetSteamID().ConvertToUint64() );
Msg( "Activating stats for SteamID = %I64d\n", Briefing()->GetCommanderSteamID( m_nLobbySlot ).ConvertToUint64() );
}
steamapicontext->SteamFriends()->ActivateGameOverlayToUser( "stats", Briefing()->GetCommanderSteamID( m_nLobbySlot ) );
}
#endif
}
}
void CNB_Lobby_Row::OpenPlayerFlyout()
{
vgui::Panel *pButton = m_pNameDropdown->GetButton();
if ( !pButton )
return;
// Determine the anchor point
int x, y;
pButton->GetPos( x, y );
pButton->LocalToScreen( x, y );
BaseModUI::FlyoutMenu *pFlyout = dynamic_cast< BaseModUI::FlyoutMenu * >( GetParent()->FindChildByName( "FlmPlayerFlyout" ) );
pFlyout->OpenMenu( pButton );
pFlyout->SetPos( x + pButton->GetWide(), y );
pFlyout->SetOriginalTall( pButton->GetTall() );
CNB_Main_Panel *pMainPanel = dynamic_cast<CNB_Main_Panel*>( GetParent() );
if ( pMainPanel )
{
pMainPanel->m_FlyoutSteamID = Briefing()->GetCommanderSteamID( m_nLobbySlot ).ConvertToUint64();
}
// Disable Send Message if self
BaseModHybridButton *sendMessasge = dynamic_cast< BaseModHybridButton * >( pFlyout->FindChildByName( "BtnSendMessage" ) );
if ( sendMessasge )
{
sendMessasge->SetEnabled( !Briefing()->IsLobbySlotLocal( m_nLobbySlot ) );
}
}

View File

@ -18,6 +18,10 @@ class CAvatarImagePanel;
// == MANAGED_CLASS_DECLARATIONS_END ==
class CBitmapButton;
class CNB_Lobby_Tooltip;
namespace BaseModUI
{
class DropDownMenu;
}
class CNB_Lobby_Row : public vgui::EditablePanel
{
@ -30,6 +34,7 @@ public:
virtual void PerformLayout();
virtual void OnThink();
virtual void OnCommand( const char *command );
void OpenPlayerFlyout();
virtual void UpdateDetails();
virtual void CheckTooltip( CNB_Lobby_Tooltip *pTooltip );
@ -48,7 +53,7 @@ public:
vgui::Panel *m_pAvatarBackground;
CAvatarImagePanel *m_pAvatarImage;
vgui::ImagePanel *m_pClassImage;
vgui::Label *m_pNameLabel;
BaseModUI::DropDownMenu *m_pNameDropdown;
vgui::Label *m_pLevelLabel;
StatsBar *m_pXPBar;
vgui::Label *m_pClassLabel;

View File

@ -41,6 +41,7 @@ void CNB_Lobby_Row_Small::ApplySchemeSettings( vgui::IScheme *pScheme )
m_szLastWeaponImage[i][0] = 0;
}
m_szLastPortraitImage[ 0 ] = 0;
m_lastSteamID.Set( 0, k_EUniverseInvalid, k_EAccountTypeInvalid );
}
void CNB_Lobby_Row_Small::PerformLayout()

View File

@ -147,9 +147,6 @@ void CNB_Main_Panel::PerformLayout()
BaseClass::PerformLayout();
}
// TODO: Remove this before ship
ConVar asw_force_allow_promotion( "asw_force_allow_promotion", "0" );
void CNB_Main_Panel::OnThink()
{
BaseClass::OnThink();
@ -161,14 +158,8 @@ void CNB_Main_Panel::OnThink()
m_pChatButton->SetVisible( gpGlobals->maxClients > 1 );
m_pVoteButton->SetVisible( gpGlobals->maxClients > 1 );
C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( asw_force_allow_promotion.GetBool() )
{
m_pPromotionButton->SetVisible( true );
}
else
{
m_pPromotionButton->SetVisible( pPlayer && pPlayer->GetExperience() >= ASW_XP_CAP && pPlayer->GetPromotion() < ASW_PROMOTION_CAP );
}
const char *pszLeaderName = Briefing()->GetLeaderName();

View File

@ -65,6 +65,7 @@ public:
CBitmapButton *m_pVoteButton;
bool m_bLocalLeader;
uint64 m_FlyoutSteamID;
void ProcessSkillSpendQueue();
void OnFinishedSpendingSkillPoints();

View File

@ -192,8 +192,8 @@ void CNB_Mission_Panel::OnThink()
}
}
m_drpDifficulty->SetVisible( gpGlobals->maxClients > 1 );
m_pDifficultyDescription->SetVisible( gpGlobals->maxClients > 1 );
// only show insane in multiplayer
m_drpDifficulty->SetFlyoutItemEnabled( "BtnImpossible", gpGlobals->maxClients > 1 );
if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->GetCampaignSave() && ASWGameRules()->GetGameState() != ASW_GS_INGAME )
{

View File

@ -97,10 +97,17 @@ void CNB_Vote_Panel::UpdateVotePanelStatus()
if ( ASWGameRules()->GetRestartingMissionTime() > gpGlobals->curtime + flCorrection )
{
if ( GetClientModeASW() && GetClientModeASW()->m_bTechFailure )
{
if ( ASWGameRules()->GetGameState() == ASW_GS_INGAME )
{
m_VotePanelStatus = VPS_TECH_FAIL;
}
else
{
m_VotePanelStatus = VPS_NONE;
}
}
else
{
m_VotePanelStatus = VPS_RESTART;
}

View File

@ -57,6 +57,8 @@ void ObjectiveIcons::OnThink()
{
BaseClass::OnThink();
// this is no longer being used
/*
if (m_bHaveQueued)
{
if (m_pIcon[0] && m_pIcon[0]->GetAlpha() <= 0)
@ -91,11 +93,12 @@ void ObjectiveIcons::OnThink()
vgui::GetAnimationController()->RunAnimationCommand(this, "alpha", 255, 0, 0.3f, vgui::AnimationController::INTERPOLATOR_LINEAR);
CLocalPlayerFilter filter;
C_BaseEntity::EmitSound( filter, -1 /*SOUND_FROM_LOCAL_PLAYER*/, "ASWInterface.MissionBoxes" );
C_BaseEntity::EmitSound( filter, -1, "ASWInterface.MissionBoxes" );
}
}
}
}
*/
}
void ObjectiveIcons::ApplySchemeSettings(vgui::IScheme *pScheme)

View File

@ -780,10 +780,13 @@ void CRadialMenu::OnCommand( const char *command )
StartFade();
}
else
{
if ( !m_fading )
{
StartFade();
SendCommand( command );
}
}
BaseClass::OnCommand( command );
}

View File

@ -174,7 +174,7 @@ void StatsReport::OnThink()
C_ASW_Player *pPlayer = pMR->GetCommander();
if ( pPlayer )
{
if ( ASWGameResource()->IsPlayerReady( pPlayer ) )
if ( !pMR->IsInhabited() || ASWGameResource()->IsPlayerReady( pPlayer ) )
{
m_pReadyCheckImages[ i ]->SetImage( "swarm/HUD/TickBoxTicked" );
}

View File

@ -22,7 +22,7 @@ TechMarineFailPanel::TechMarineFailPanel(vgui::Panel *parent, const char *name)
m_pReasonMessage = new vgui::Label(this, "ReasonMessage", "#asw_no_live_tech");
m_pIcon = new vgui::ImagePanel(this, "Icon");
m_pIcon->SetShouldScaleImage(true);
m_pIcon->SetImage("swarm/Briefing/stathack");
m_pIcon->SetImage("swarm/EquipIcons/Locked");
m_bLeader = false;
m_hFont = vgui::INVALID_FONT;

View File

@ -40,6 +40,7 @@ m_nTilesY( 1 )
m_TemplateName[0] = '\0';
m_Description[0] = '\0';
m_Soundscape[0] = '\0';
m_nTileType = ASW_TILETYPE_UNKNOWN;
}
CRoomTemplate::~CRoomTemplate()

View File

@ -796,7 +796,7 @@ const Vector& VMFExporter::GetCurrentRoomOffset()
return s_vecCurrentRoomOffset;
}
#define UNIQUE_KEYS_FILE "unique_keys.txt"
#define UNIQUE_KEYS_FILE "tilegen/unique_keys.txt"
void VMFExporter::LoadUniqueKeyList()
{
m_UniqueKeys.RemoveAll();
@ -804,7 +804,7 @@ void VMFExporter::LoadUniqueKeyList()
// Open the manifest file, and read the particles specified inside it
KeyValues *manifest = new KeyValues( UNIQUE_KEYS_FILE );
if ( manifest->LoadFromFile( g_pFullFileSystem, UNIQUE_KEYS_FILE, "TILEGEN" ) )
if ( manifest->LoadFromFile( g_pFullFileSystem, UNIQUE_KEYS_FILE, "GAME" ) )
{
for ( KeyValues *sub = manifest->GetFirstSubKey(); sub != NULL; sub = sub->GetNextKey() )
{

View File

@ -560,6 +560,8 @@ void CASW_Map_Builder::ScheduleMapBuild(const char* pszMap, const float fTime)
m_bStartedGeneration = false;
m_iBuildStage = STAGE_MAP_BUILD_SCHEDULED;
m_flProgress = 0.0f;
Q_snprintf( m_szStatusMessage, sizeof( m_szStatusMessage ), "Generating map..." );
}
// schedules a map to be randomly generated
@ -580,6 +582,8 @@ void CASW_Map_Builder::ScheduleMapGeneration( const char* pszMap, const float fT
m_bStartedGeneration = false;
m_nLevelGenerationRetryCount = 0;
m_flProgress = 0.0f;
Q_snprintf( m_szStatusMessage, sizeof( m_szStatusMessage ), "Generating map..." );
}
// Builds a map from a .layout file

View File

@ -145,10 +145,10 @@ InitReturnVal_t CASW_Mission_Chooser::Init()
Q_AppendSlash( g_gamedir, sizeof( g_gamedir ) );
char tilegendir[MAX_PATH];
Q_snprintf( tilegendir, sizeof(tilegendir), "%s\\tilegen", g_gamedir );
g_pFullFileSystem->AddSearchPath( tilegendir, "TILEGEN" );
Q_snprintf( tilegendir, sizeof(tilegendir), "%stilegen", g_gamedir );
//g_pFullFileSystem->AddSearchPath( tilegendir, "TILEGEN", PATH_ADD_TO_HEAD );
Q_snprintf( g_layoutsdir, sizeof(g_layoutsdir), "%s\\tilegen\\layouts", g_gamedir );
Q_snprintf( g_layoutsdir, sizeof(g_layoutsdir), "%stilegen\\layouts", g_gamedir );
g_MissionTextDatabase.LoadKeyValuesFile( "tilegen/objective_text.txt" );

View File

@ -178,7 +178,7 @@ void CASW_Mission_Chooser_Source_Local::BuildMapList()
// Search the directory structure.
char mapwild[MAX_QPATH];
Q_strncpy(mapwild,"maps/ASI-*.bsp", sizeof( mapwild ) );
Q_strncpy(mapwild,"maps/*.bsp", sizeof( mapwild ) );
m_pszMapFind = Sys_FindFirst( g_hmapfind, mapwild, NULL, 0 );
// think will continue the search
}

View File

@ -34,8 +34,6 @@ void CASW_Random_Missions::LevelInitPostEntity( const char *pszMapName )
{
delete m_pCurrentMapLayout;
CLevelTheme::LoadLevelThemes();
// try to load the layout for this map
char filename[128];
@ -43,7 +41,11 @@ void CASW_Random_Missions::LevelInitPostEntity( const char *pszMapName )
Q_SetExtension( filename, "layout", sizeof( filename ) );
char fullpath[MAX_PATH];
g_pFullFileSystem->RelativePathToFullPath( filename, "MOD", fullpath, sizeof( fullpath ) );
g_pFullFileSystem->RelativePathToFullPath( filename, "GAME", fullpath, sizeof( fullpath ) );
if ( g_pFullFileSystem->FileExists( filename ) )
{
CLevelTheme::LoadLevelThemes();
m_pCurrentMapLayout = new CMapLayout();
if ( !m_pCurrentMapLayout->LoadMapLayout( filename ) )
@ -51,6 +53,11 @@ void CASW_Random_Missions::LevelInitPostEntity( const char *pszMapName )
delete m_pCurrentMapLayout;
m_pCurrentMapLayout = NULL;
}
}
else
{
m_pCurrentMapLayout = NULL;
}
m_bDirtyLayoutForMinimap = true;
}

View File

@ -229,7 +229,7 @@ BaseClass( pParent, pName ),
m_pRulePreprocessor( pRulePreprocessor )
{
m_pRulePanelList = new PanelListPanel( this, "RulePanelListPanel" );
LoadControlSettings( "RulePicker.res" );
LoadControlSettings( "tilegen/RulePicker.res", "GAME" );
SetDeleteSelfOnClose( true );
MoveToCenterOfScreen();
for ( int i = 0; i < m_pRulePreprocessor->GetRuleCount(); ++ i )

View File

@ -249,7 +249,7 @@ CTile_Check_Frame::CTile_Check_Frame( Panel *parent, const char *name ) : BaseCl
m_pCheckingLabel = new vgui::Label( this, "CheckingLabel", "" );
m_pProgressBar = new vgui::ProgressBar( this, "ProgressBar" );
m_pErrorTextBox = new vgui::RichText( this, "ErrorTextBox" );
LoadControlSettings( "TileCheck.res", "TILEGEN" );
LoadControlSettings( "tilegen/TileCheck.res", "GAME" );
SetMinimumSize( 384, 420 );

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