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" "FileSystem"
{ {
"SteamAppId" "886" "SteamAppId" "630"
"ToolsAppId" "211" "ToolsAppId" "211"
"SearchPaths" "SearchPaths"

View File

@ -1,3 +1,3 @@
PatchVersion=7.1.2.8 PatchVersion=7.1.2.8
ProductName=swarm 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 StartMusic(void) : "Start a random music track from the user's playlist."
input StopMusic(void) : "Stop the currently playing music." 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 versioninfo
{ {
"editorversion" "400" "editorversion" "400"
"editorbuild" "4956" "editorbuild" "4961"
"mapversion" "3768" "mapversion" "3762"
"formatversion" "100" "formatversion" "100"
"prefab" "0" "prefab" "0"
} }
@ -80,7 +80,7 @@ viewsettings
world world
{ {
"id" "394754" "id" "394754"
"mapversion" "3768" "mapversion" "3762"
"classname" "worldspawn" "classname" "worldspawn"
"detailmaterial" "detail/detailsprites" "detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp" "detailvbsp" "detail.vbsp"
@ -36201,6 +36201,35 @@ entity
} }
} }
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" "id" "3088675"
"classname" "info_overlay" "classname" "info_overlay"
@ -36327,7 +36356,7 @@ entity
"EndV" "0" "EndV" "0"
"fademindist" "-1" "fademindist" "-1"
"material" "overlays/dirt01a" "material" "overlays/dirt01a"
"sides" "154891 154885" "sides" "153759"
"StartU" "0" "StartU" "0"
"StartV" "1" "StartV" "1"
"uv0" "-30.5847 -60.853 0" "uv0" "-30.5847 -60.853 0"
@ -52505,6 +52534,101 @@ entity
} }
} }
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" "id" "172289"
"classname" "info_node" "classname" "info_node"
@ -52771,6 +52895,100 @@ entity
} }
} }
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" "id" "225289"
"classname" "prop_physics" "classname" "prop_physics"
@ -52830,6 +53048,10 @@ entity
"shadowcastdist" "0" "shadowcastdist" "0"
"skin" "0" "skin" "0"
"spawnflags" "32769" "spawnflags" "32769"
connections
{
"OnBreak" "CrateRandomTriggerEnable0-1"
}
"origin" "-6552 -7048 946" "origin" "-6552 -7048 946"
editor editor
{ {
@ -53238,6 +53460,7 @@ entity
connections connections
{ {
"OnComputerHackCompleted" "Tech_reqDisableTechMarineReq0-1" "OnComputerHackCompleted" "Tech_reqDisableTechMarineReq0-1"
"OnComputerDataDownloaded" "AfterHackSpawnTriggerEnable0-1"
"OnComputerHackStarted" "breakdoor_spawnStartSpawning5-1" "OnComputerHackStarted" "breakdoor_spawnStartSpawning5-1"
"OnComputerDataDownloaded" "CeilingBlackBoxOpen0-1" "OnComputerDataDownloaded" "CeilingBlackBoxOpen0-1"
"OnComputerHackStarted" "dock_holdout_spawn_01StartSpawning5-1" "OnComputerHackStarted" "dock_holdout_spawn_01StartSpawning5-1"
@ -54859,6 +55082,7 @@ entity
"StartDisabled" "0" "StartDisabled" "0"
connections connections
{ {
"OnTrigger" "tankroom_end_04StartSpawning0-1"
"OnTrigger" "tankroom_end_01_spawnStartSpawning0-1" "OnTrigger" "tankroom_end_01_spawnStartSpawning0-1"
} }
solid solid
@ -74529,6 +74753,7 @@ entity
"StartDisabled" "0" "StartDisabled" "0"
connections connections
{ {
"OnTrigger" "AmbientMusicPlaySound0-1"
"OnTrigger" "tankroom_end_02_spawnStartSpawning0-1" "OnTrigger" "tankroom_end_02_spawnStartSpawning0-1"
} }
solid solid
@ -74734,6 +74959,101 @@ entity
} }
} }
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" "id" "394925"
"classname" "info_node" "classname" "info_node"
@ -74750,6 +75070,101 @@ entity
} }
} }
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" "id" "401394"
"classname" "asw_drone" "classname" "asw_drone"
@ -77952,6 +78367,7 @@ entity
"OnCase01" "supply_spawn_01StartSpawning0-1" "OnCase01" "supply_spawn_01StartSpawning0-1"
"OnCase02" "supply_spawn_02StartSpawning0-1" "OnCase02" "supply_spawn_02StartSpawning0-1"
"OnCase03" "supply_spawn_03StartSpawning0-1" "OnCase03" "supply_spawn_03StartSpawning0-1"
"OnCase04" "0-1"
} }
"origin" "-7832 -792 840.967" "origin" "-7832 -792 840.967"
editor editor
@ -78054,6 +78470,8 @@ entity
{ {
"id" "540455" "id" "540455"
"classname" "func_precipitation" "classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7" "preciptype" "7"
"renderamt" "75" "renderamt" "75"
"rendercolor" "100 100 100" "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 hidden
{ {
entity entity
@ -82494,6 +82969,7 @@ entity
{ {
"id" "2638426" "id" "2638426"
"classname" "trigger_asw_button_area" "classname" "trigger_asw_button_area"
"completemessage" "Access Granted"
"hacklevel" "6" "hacklevel" "6"
"locked" "1" "locked" "1"
"numwires" "2" "numwires" "2"
@ -82510,6 +82986,7 @@ entity
connections connections
{ {
"OnButtonActivated" "AutoInstance1-LandingBayDoor2EnableAutoOpen0-1" "OnButtonActivated" "AutoInstance1-LandingBayDoor2EnableAutoOpen0-1"
"OnButtonHackCompleted" "Start_button_leftUnlock01"
"OnButtonHackCompleted" "AutoInstance1-doorpanel2Skin20.1-1" "OnButtonHackCompleted" "AutoInstance1-doorpanel2Skin20.1-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_rightUnlock0-1" "OnButtonHackCompleted" "AutoInstance1-Start_button_rightUnlock0-1"
"OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1" "OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1"
@ -82684,6 +83161,7 @@ entity
"StartDisabled" "0" "StartDisabled" "0"
connections connections
{ {
"OnTrigger" "hallway_spawn_01StartSpawning0-1"
"OnTrigger" "commander_choreo_m1_ob3Start2-1" "OnTrigger" "commander_choreo_m1_ob3Start2-1"
} }
solid solid
@ -82774,6 +83252,7 @@ entity
{ {
"id" "2638314" "id" "2638314"
"classname" "trigger_asw_button_area" "classname" "trigger_asw_button_area"
"completemessage" "Access Granted"
"hacklevel" "6" "hacklevel" "6"
"locked" "1" "locked" "1"
"numwires" "2" "numwires" "2"
@ -82790,6 +83269,7 @@ entity
connections connections
{ {
"OnButtonActivated" "AutoInstance1-LandingBayDoor1EnableAutoOpen0-1" "OnButtonActivated" "AutoInstance1-LandingBayDoor1EnableAutoOpen0-1"
"OnButtonHackCompleted" "Start_button_leftUnlock01"
"OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1" "OnButtonHackCompleted" "AutoInstance1-doorpanel1Skin20.1-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_right1Unlock0-1" "OnButtonHackCompleted" "AutoInstance1-Start_button_right1Unlock0-1"
"OnButtonHackCompleted" "AutoInstance1-Start_button_right1Disable0.1-1" "OnButtonHackCompleted" "AutoInstance1-Start_button_right1Disable0.1-1"
@ -108754,6 +109234,7 @@ entity
"screenspacefade" "0" "screenspacefade" "0"
"skin" "0" "skin" "0"
"solid" "6" "solid" "6"
"spawnflags" "264"
"origin" "-6988.75 -5985.92 1055.72" "origin" "-6988.75 -5985.92 1055.72"
editor editor
{ {
@ -109804,7 +110285,7 @@ entity
"EndV" "0" "EndV" "0"
"fademindist" "-1" "fademindist" "-1"
"material" "overlays/stain_01" "material" "overlays/stain_01"
"sides" "80300 80271" "sides" "69581"
"StartU" "0" "StartU" "0"
"StartV" "1" "StartV" "1"
"uv0" "-188 -28.0922 0" "uv0" "-188 -28.0922 0"
@ -110111,6 +110592,35 @@ entity
} }
} }
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" "id" "2095831"
"classname" "info_overlay" "classname" "info_overlay"
@ -110152,7 +110662,7 @@ entity
"EndV" "0" "EndV" "0"
"fademindist" "-1" "fademindist" "-1"
"material" "overlays/stains_05c" "material" "overlays/stains_05c"
"sides" "80703" "sides" "72447 72502"
"StartU" "0" "StartU" "0"
"StartV" "1" "StartV" "1"
"uv0" "-126.321 -126.006 0" "uv0" "-126.321 -126.006 0"
@ -146275,7 +146785,7 @@ entity
"EndV" "0" "EndV" "0"
"fademindist" "-1" "fademindist" "-1"
"material" "overlays/stains_05c" "material" "overlays/stains_05c"
"sides" "127530 127554 127542" "sides" ""
"StartU" "0" "StartU" "0"
"StartV" "1" "StartV" "1"
"uv0" "-102.126 -104.984 0" "uv0" "-102.126 -104.984 0"
@ -148941,6 +149451,8 @@ entity
{ {
"id" "2278966" "id" "2278966"
"classname" "func_precipitation" "classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7" "preciptype" "7"
"renderamt" "75" "renderamt" "75"
"rendercolor" "100 100 100" "rendercolor" "100 100 100"
@ -159395,6 +159907,35 @@ entity
} }
} }
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" "id" "2463400"
"classname" "info_overlay" "classname" "info_overlay"
@ -161752,6 +162293,7 @@ entity
"lightworld" "1" "lightworld" "1"
"nearz" "4.0" "nearz" "4.0"
"shadowquality" "1" "shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1" "spawnflags" "1"
"texturename" "effects/flashlight001" "texturename" "effects/flashlight001"
"origin" "-7400 -928 1027.73" "origin" "-7400 -928 1027.73"
@ -166258,6 +166800,8 @@ entity
{ {
"id" "3085728" "id" "3085728"
"classname" "func_precipitation" "classname" "func_precipitation"
"maxSpeed" "35"
"minSpeed" "25"
"preciptype" "7" "preciptype" "7"
"renderamt" "10" "renderamt" "10"
"rendercolor" "100 100 100" "rendercolor" "100 100 100"
@ -167150,6 +167694,7 @@ entity
"lightworld" "1" "lightworld" "1"
"nearz" "4.0" "nearz" "4.0"
"shadowquality" "1" "shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1" "spawnflags" "1"
"texturename" "effects/flashlight001" "texturename" "effects/flashlight001"
"origin" "-6318 1072 982.022" "origin" "-6318 1072 982.022"
@ -170219,6 +170764,10 @@ entity
"shadowcastdist" "0" "shadowcastdist" "0"
"skin" "0" "skin" "0"
"spawnflags" "32769" "spawnflags" "32769"
connections
{
"OnBreak" "CrateRandomTriggerEnable0-1"
}
"origin" "-6552 -6960 946" "origin" "-6552 -6960 946"
editor editor
{ {
@ -171091,6 +171640,101 @@ entity
} }
} }
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" "id" "3174898"
"classname" "asw_holo_sentry" "classname" "asw_holo_sentry"
@ -171100,6 +171744,9 @@ entity
connections connections
{ {
"OnSentryPlaced" "sentry_placementDisable0-1" "OnSentryPlaced" "sentry_placementDisable0-1"
"OnSentryPlaced" "relay_turret_placedTrigger0-1"
"OnSentryPlaced" "relay_no_turret_messageEnable0-1"
"OnSentryPlaced" "relay_turret_messageDisable0-1"
} }
"origin" "-6592 768 880" "origin" "-6592 768 880"
editor editor
@ -174019,6 +174666,7 @@ entity
"lightworld" "1" "lightworld" "1"
"nearz" "4.0" "nearz" "4.0"
"shadowquality" "1" "shadowquality" "1"
"simpleprojection" "0"
"spawnflags" "1" "spawnflags" "1"
"texturename" "effects/flashlight001" "texturename" "effects/flashlight001"
"origin" "-4608.89 628.121 1008.58" "origin" "-4608.89 628.121 1008.58"
@ -176491,6 +177139,28 @@ entity
} }
} }
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" "id" "3277281"
"classname" "path_track" "classname" "path_track"
@ -176501,7 +177171,7 @@ entity
"targetname" "path_2" "targetname" "path_2"
connections connections
{ {
"OnPass" "train_shipSetSpeed800-1" "OnPass" "combinegunshipSetMaxSpeed800-1"
} }
"origin" "-4224 -9104 1600" "origin" "-4224 -9104 1600"
editor editor
@ -179172,31 +179842,13 @@ entity
"logicalpos" "[1500 -9768]" "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 cameras
{ {
"activecamera" "0" "activecamera" "0"
camera camera
{ {
"position" "[-4575.48 -9135.1 972.828]" "position" "[-7199.93 -2176.95 1467.34]"
"look" "[-4608.69 -9001.92 742.564]" "look" "[-7349.58 -2145.12 1247.21]"
} }
} }
cordons cordons

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@ versioninfo
{ {
"editorversion" "400" "editorversion" "400"
"editorbuild" "4956" "editorbuild" "4956"
"mapversion" "3283" "mapversion" "3284"
"formatversion" "100" "formatversion" "100"
"prefab" "0" "prefab" "0"
} }
@ -80,15 +80,15 @@ viewsettings
world world
{ {
"id" "182379" "id" "182379"
"mapversion" "3283" "mapversion" "3284"
"classname" "worldspawn" "classname" "worldspawn"
"detailmaterial" "detail/detailsprites" "detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp" "detailvbsp" "detail.vbsp"
"maxpropscreenwidth" "-1" "maxpropscreenwidth" "-1"
"minpropscreenwidth" "0" "minpropscreenwidth" "0"
"skyname" "sky_day02_07_hdr" "skyname" "sky_day02_07_hdr"
"speedruntime" "185" "speedruntime" "150"
"speedruntimesp" "185" "speedruntimesp" "150"
solid solid
{ {
"id" "376" "id" "376"
@ -86307,8 +86307,8 @@ entity
{ {
"id" "530362" "id" "530362"
"classname" "asw_gamerules" "classname" "asw_gamerules"
"speedruntime" "185" "speedruntime" "150"
"speedruntimesp" "185" "speedruntimesp" "150"
"origin" "0 0 0" "origin" "0 0 0"
editor editor
{ {
@ -117853,32 +117853,6 @@ entity
} }
} }
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" "id" "1039131"
"classname" "ambient_generic" "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 versioninfo
{ {
"editorversion" "400" "editorversion" "400"
"editorbuild" "4956" "editorbuild" "4961"
"mapversion" "1254" "mapversion" "1255"
"formatversion" "100" "formatversion" "100"
"prefab" "0" "prefab" "0"
} }
@ -32,7 +32,7 @@ viewsettings
world world
{ {
"id" "8147" "id" "8147"
"mapversion" "1254" "mapversion" "1255"
"classname" "worldspawn" "classname" "worldspawn"
"detailmaterial" "detail/detailsprites" "detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp" "detailvbsp" "detail.vbsp"
@ -51295,6 +51295,82 @@ world
"visgroupautoshown" "1" "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 group
{ {
"id" "82010" "id" "82010"
@ -271916,8 +271992,8 @@ cameras
"activecamera" "0" "activecamera" "0"
camera camera
{ {
"position" "[86.99 -2826.5 -468.697]" "position" "[340.584 -3163.69 -372.589]"
"look" "[86.99 3379.34 -468.697]" "look" "[-1762.81 2259.29 -2535.76]"
} }
} }
cordons 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 versioninfo
{ {
"editorversion" "400" "editorversion" "400"
"editorbuild" "4955" "editorbuild" "4957"
"mapversion" "2088" "mapversion" "2089"
"formatversion" "100" "formatversion" "100"
"prefab" "0" "prefab" "0"
} }
@ -50,7 +50,7 @@ viewsettings
world world
{ {
"id" "394754" "id" "394754"
"mapversion" "2088" "mapversion" "2089"
"classname" "worldspawn" "classname" "worldspawn"
"detailmaterial" "detail/detailsprites" "detailmaterial" "detail/detailsprites"
"detailvbsp" "detail.vbsp" "detailvbsp" "detail.vbsp"
@ -10896,8 +10896,8 @@ entity
{ {
"id" "1841164" "id" "1841164"
"classname" "asw_debrief_info" "classname" "asw_debrief_info"
"DebriefText1" "#asw_landingbay_db1" "DebriefText1" "#asw_cargo_db1"
"DebriefText2" "#asw_landingbay_db2" "DebriefText2" "#asw_cargo_db2"
"origin" "-1887 7020 1042" "origin" "-1887 7020 1042"
editor editor
{ {

View File

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

View File

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

View File

@ -585,6 +585,11 @@ static int SoundscapeCompletion( const char *partial, char commands[ COMMAND_COM
return current; 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 ) CON_COMMAND_F_COMPLETION( playsoundscape, "Forces a soundscape to play", FCVAR_CHEAT, SoundscapeCompletion )
{ {
FOR_EACH_VALID_SPLITSCREEN_PLAYER( hh ) 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 endcamin( "-camin", CAM_InUp );
static ConCommand startcamout( "+camout", CAM_OutDown ); static ConCommand startcamout( "+camout", CAM_OutDown );
static ConCommand camout( "-camout", CAM_OutUp ); 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( "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." ); 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 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 camortho( "camortho", Cmd_CAM_ToOrthographic, "Switch to orthographic camera.", FCVAR_CHEAT );
static ConCommand startcammousemove( "+cammousemove",::CAM_StartMouseMove); 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() ); 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 ) wchar_t* CASW_Briefing::GetMarineOrPlayerName( int nLobbySlot )
{ {
if ( nLobbySlot < 0 || nLobbySlot >= NUM_BRIEFING_LOBBY_SLOTS || !IsLobbySlotOccupied( nLobbySlot ) ) if ( nLobbySlot < 0 || nLobbySlot >= NUM_BRIEFING_LOBBY_SLOTS || !IsLobbySlotOccupied( nLobbySlot ) )

View File

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

View File

@ -21,7 +21,7 @@ CASW_Client_Entities::CASW_Client_Entities()
void CASW_Client_Entities::LevelInitPostEntity() void CASW_Client_Entities::LevelInitPostEntity()
{ {
C_ASW_Camera_Volume::RecreateAll(); //C_ASW_Camera_Volume::RecreateAll();
C_ASW_Snow_Volume::RecreateAll(); C_ASW_Snow_Volume::RecreateAll();
//C_Sprite::RecreateAll(); //C_Sprite::RecreateAll();
C_ASW_Scanner_Noise::RecreateAll(); C_ASW_Scanner_Noise::RecreateAll();
@ -29,7 +29,7 @@ void CASW_Client_Entities::LevelInitPostEntity()
void CASW_Client_Entities::LevelShutdownPreEntity() void CASW_Client_Entities::LevelShutdownPreEntity()
{ {
C_ASW_Camera_Volume::DestroyAll(); //C_ASW_Camera_Volume::DestroyAll();
C_ASW_Snow_Volume::DestroyAll(); C_ASW_Snow_Volume::DestroyAll();
//C_Sprite::DestroyAll(); //C_Sprite::DestroyAll();
C_ASW_Scanner_Noise::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) void CASWInput::TurnTowardMouse(QAngle& viewangles, CUserCmd *cmd)
{ {
VPROF_BUDGET( "CASWInput::TurnTowardMouse", VPROF_BUDGETGROUP_ASW_CLIENT ); VPROF_BUDGET( "CASWInput::TurnTowardMouse", VPROF_BUDGETGROUP_ASW_CLIENT );
if ( !engine->IsActiveApp() )
{
return;
}
float mx, my; float mx, my;
C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer(); C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
@ -945,6 +951,11 @@ void CASWInput::TurnTowardMouse(QAngle& viewangles, CUserCmd *cmd)
int iScreenWidth, iScreenHeight; int iScreenWidth, iScreenHeight;
engine->GetScreenSize( iScreenWidth, iScreenHeight ); engine->GetScreenSize( iScreenWidth, iScreenHeight );
if ( iScreenWidth <= 0 || iScreenHeight <= 0 )
{
return;
}
int x, y; int x, y;
GetWindowCenter( 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) 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; m_iAmmoUnitsRemaining = DEFAULT_AMMO_DROP_UNITS;
g_AmmoDrops.AddToTail( this ); 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 ( !AllowedToPickup( pUser ) )
{ {
if ( pUser->CanPickupPrimaryAmmo() ) if ( !m_bEnoughAmmo )
{ {
TryLocalize( "#asw_not_enough_ammo_drop", action.wszText, sizeof( action.wszText ) ); 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 iBullets = pMarine->GetAmmoCount( iAmmoType );
int iAmmoCost = CASW_Ammo_Drop_Shared::GetAmmoUnitCost( 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; return pWeapon;
} }

View File

@ -51,6 +51,7 @@ public:
private: private:
C_ASW_Ammo_Drop( const C_ASW_Ammo_Drop & ); // not defined, not accessible C_ASW_Ammo_Drop( const C_ASW_Ammo_Drop & ); // not defined, not accessible
bool m_bEnoughAmmo;
}; };
extern CUtlVector<C_ASW_Ammo_Drop*> g_AmmoDrops; 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 ), DEFINE_FIELD( m_iSourceEntityIndex, FIELD_INTEGER ),
END_DATADESC() 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" ); 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_breakable_aliens;
extern ConVar asw_alien_debug_death_style; extern ConVar asw_alien_debug_death_style;
@ -174,6 +174,13 @@ void C_ASW_ClientRagdoll::BreakRagdoll()
//ConVar test_hurl( "test_hurl", "0.25" ); //ConVar test_hurl( "test_hurl", "0.25" );
void C_ASW_ClientRagdoll::ClientThink( void ) 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(); BaseClass::ClientThink();
// OLD STUFF // OLD STUFF

View File

@ -750,17 +750,9 @@ void reset_steam_stats_f()
pPlayer->RequestExperience(); 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() 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 ) if ( !pDoor || !pUser )
return false; 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 // if door is sealed
// add sealed icon with bar showing seal percent // add sealed icon with bar showing seal percent
if ( pDoor->GetHealth() > 0 ) if ( pDoor->GetHealth() > 0 )
@ -46,23 +74,13 @@ bool C_ASW_Door_Area::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
action.UseIconRed = 255; action.UseIconRed = 255;
action.UseIconGreen = 255; action.UseIconGreen = 255;
action.UseIconBlue = 255; action.UseIconBlue = 255;
action.bShowUseKey = false; action.bShowUseKey = bHasWelder;
action.iInventorySlot = -1; action.iInventorySlot = -1;
return true; return true;
} }
else if ( pUser->GetActiveWeapon() ) 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 ( bHasWelder )
{ {
if ( pDoor->GetSealAmount() >= 1.0f ) 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.UseIconRed = 255;
action.UseIconGreen = 255; action.UseIconGreen = 255;
action.UseIconBlue = 255; action.UseIconBlue = 255;
action.bShowUseKey = false; action.bShowUseKey = true;
action.iInventorySlot = -1; action.iInventorySlot = -1;
return true; 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("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 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_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_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" ); 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!!! // memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h" #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_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_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"); 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/swarmdoorhackopen" )
PRECACHE( MATERIAL, "vgui/swarm/hacking/fastmarker" ) PRECACHE( MATERIAL, "vgui/swarm/hacking/fastmarker" )
PRECACHE( MATERIAL, "vgui/swarm/hud/tickboxticked" ) PRECACHE( MATERIAL, "vgui/swarm/hud/tickboxticked" )
PRECACHE( MATERIAL, "vgui/swarm/hud/clipsicon" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbar" ) PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbar" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbarr" ) PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbarr" )
PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbari" ) PRECACHE( MATERIAL, "vgui/swarm/hud/horizdoorhealthbari" )
PRECACHE( MATERIAL, "vgui/swarm/hud/doorhealth" ) PRECACHE( MATERIAL, "vgui/swarm/hud/doorhealth" )
PRECACHE( MATERIAL, "vgui/swarm/hud/doorweld" ) PRECACHE( MATERIAL, "vgui/swarm/hud/doorweld" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statdamage" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statdamage" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/skillparticle" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/skillparticle" )
PRECACHE( MATERIAL, "vgui/icon_button_arrow_right" ) PRECACHE( MATERIAL, "vgui/icon_button_arrow_right" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statkilled" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statkilled" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stattime" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/stattime" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stataccuracy" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/stataccuracy" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statfriendly" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statfriendly" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots2" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statshots2" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statskillpoints" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statskillpoints" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statburned" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statburned" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/statheal" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/statheal" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/stathack" ) //PRECACHE( MATERIAL, "vgui/swarm/briefing/stathack" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/topleftbracket" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/topleftbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/toprightbracket" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/toprightbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomleftbracket" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomleftbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomrightbracket" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/bottomrightbracket" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton" )
PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton_over" ) PRECACHE( MATERIAL, "vgui/swarm/briefing/shadedbutton_over" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconBloodhound" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconBloodhound" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconCargoForklift" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconCargoForklift" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneSide" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneSide" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneTop" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconDroneTop" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconEgg" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconEgg" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteSide" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteSide" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteTop" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconParasiteTop" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconPlanet" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconPlanet" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconSolarSystem" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconSolarSystem" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconStarchart" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconStarchart" )
PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconTerminal" ) //PRECACHE( MATERIAL, "vgui/swarm/ObjectiveIcons/OIconTerminal" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Accuracy" ) PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Accuracy" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Agility" ) PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Agility" )
PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Autogun" ) PRECACHE( MATERIAL, "vgui/swarm/SkillButtons/Autogun" )

View File

@ -95,6 +95,9 @@
#include "asw_weapon_sniper_rifle.h" #include "asw_weapon_sniper_rifle.h"
#include "asw_melee_system.h" #include "asw_melee_system.h"
#include "c_asw_jukebox.h" #include "c_asw_jukebox.h"
#include "missionchooser/iasw_mission_chooser.h"
#include "missionchooser/iasw_random_missions.h"
#if defined( CASW_Player ) #if defined( CASW_Player )
#undef CASW_Player #undef CASW_Player
#endif #endif
@ -340,6 +343,8 @@ C_ASW_Player::C_ASW_Player() :
m_flPendingSteamStatsStart = 0.0f; m_flPendingSteamStatsStart = 0.0f;
m_hUseKeyDownEnt = NULL; m_hUseKeyDownEnt = NULL;
m_flUseKeyDownTime = 0.0f; m_flUseKeyDownTime = 0.0f;
m_roomDetailsCheckTimer.Invalidate();
m_szSoundscape[0] = 0;
for ( int i = 0; i < ASW_NUM_XP_TYPES; i++ ) for ( int i = 0; i < ASW_NUM_XP_TYPES; i++ )
{ {
m_iEarnedXP[ i ] = 0; m_iEarnedXP[ i ] = 0;
@ -1236,6 +1241,87 @@ void C_ASW_Player::ClientThink()
C_ASW_Snow_Volume::UpdateSnow(this); C_ASW_Snow_Volume::UpdateSnow(this);
UpdateLocalMarineGlow(); 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() void C_ASW_Player::ShowMessageLog()

View File

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

View File

@ -69,7 +69,6 @@ extern ConVar mat_object_motion_blur_enable;
// asw // asw
ConVar asw_reconnect_after_outro( "asw_reconnect_after_outro", "0", 0, "If set, client will reconnect to server after outro" ); 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_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_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." ); 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 ) 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 // Load color correction lookup
m_CCFailedHandle = g_pColorCorrectionMgr->AddColorCorrection( FAILED_CC_LOOKUP_FILENAME ); m_CCFailedHandle = g_pColorCorrectionMgr->AddColorCorrection( FAILED_CC_LOOKUP_FILENAME );
if ( m_CCFailedHandle != INVALID_CLIENT_CCHANDLE ) if ( m_CCFailedHandle != INVALID_CLIENT_CCHANDLE )
@ -778,6 +820,27 @@ void ClientModeASW::LevelInit( const char *newmap )
{ {
Briefing()->ResetLastChatterTime(); 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 ) void ClientModeASW::LevelShutdown( void )
@ -988,6 +1051,15 @@ int ClientModeASW::KeyInput( int down, ButtonCode_t keynum, const char *pszCurre
return 0; 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); return BaseClass::KeyInput(down, keynum, pszCurrentBinding);

View File

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

View File

@ -44,7 +44,7 @@ CUtlVector< IBaseModFrameListener * > CBaseModFrame::m_FrameListeners;
bool CBaseModFrame::m_DrawTitleSafeBorder = false; 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, CBaseModFrame::CBaseModFrame( vgui::Panel *parent, const char *panelName, bool okButtonEnabled,

View File

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

View File

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

View File

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

View File

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

View File

@ -182,4 +182,4 @@ void CC_ASW_TileGen( const CCommand &args )
pFrame->MoveToCenterOfScreen(); pFrame->MoveToCenterOfScreen();
pFrame->Activate(); 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_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_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_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" ); 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 #define ASW_MAX_MARINE_NAMES 8
@ -833,7 +833,7 @@ void CASWHud3DMarineNames::PaintMarineLabel( int iMyMarineNum, C_ASW_Marine * RE
return; return;
// draw the reload bar // 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 ); PaintReloadBar( pWeapon, nBoxCenterX, nCursorY );
nCursorY += nHealthBarHeight + nLineSpacing; nCursorY += nHealthBarHeight + nLineSpacing;

View File

@ -133,7 +133,7 @@ void CASWHudCrosshair::Paint( void )
if ( !crosshair.GetInt() ) if ( !crosshair.GetInt() )
return; return;
if ( engine->IsDrawingLoadingImage() || engine->IsPaused() ) if ( engine->IsDrawingLoadingImage() || engine->IsPaused() || !engine->IsActiveApp() )
return; return;
C_ASW_Player* pPlayer = C_ASW_Player::GetLocalASWPlayer(); 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; extern ConVar asw_weapon_max_shooting_distance;
ConVar asw_turret_cursor_blend("asw_turret_cursor_blend", "5.0f");
void CASWHudCrosshair::PaintTurretTextures() void CASWHudCrosshair::PaintTurretTextures()
{ {
// draw border in centre of screen // 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 ) void CASWHudCrosshair::PaintReloadProgressBar( void )
{ {
if ( !engine->IsActiveApp() )
{
m_pAmmoProgress->SetVisible( false );
m_pFastReloadBar->SetVisible( false );
return;
}
C_ASW_Player* pPlayer = C_ASW_Player::GetLocalASWPlayer(); C_ASW_Player* pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( !pPlayer ) if ( !pPlayer )
return; return;

View File

@ -322,6 +322,7 @@ void CASW_HUD_Use_Icon::SetCurrentToQueuedAction()
{ {
// can make the queued our current and fade in // can make the queued our current and fade in
m_CurrentAction = m_QueuedAction; m_CurrentAction = m_QueuedAction;
FindUseKeyBind();
PositionIcon(); PositionIcon();
@ -441,6 +442,7 @@ void CASW_HUD_Use_Icon::SetUseAction(ASWUseAction &action)
{ {
//m_CurrentAction.fProgress = action.fProgress; //m_CurrentAction.fProgress = action.fProgress;
m_CurrentAction = action; m_CurrentAction = action;
FindUseKeyBind();
return; return;
} }
@ -465,12 +467,19 @@ void CASW_HUD_Use_Icon::FindUseKeyBind()
{ {
char szOldKey[12]; char szOldKey[12];
Q_snprintf(szOldKey, sizeof(szOldKey), "%s", m_szUseKeyText); 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); Q_strupr(m_szUseKeyText);
if ( Q_stricmp( m_szUseKeyText, szOldKey) ) if ( Q_stricmp( m_szUseKeyText, szOldKey) )
{ {
ClearUseAction(); 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_pAmmoCount[i]->SetContentAlignment(vgui::Label::a_northeast);
m_pAmmoIcon[i] = new vgui::ImagePanel( this, "AmmoIcon" ); m_pAmmoIcon[i] = new vgui::ImagePanel( this, "AmmoIcon" );
m_pAmmoIcon[i]->SetShouldScaleImage(true); 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; m_iAmmoCount[i] = 0;
} }
// set names and images // 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) 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) if (m_pCloseImage->IsCursorOver() && !bDown)
{ {
// close it all down // close it all down

View File

@ -35,7 +35,8 @@ BriefingImagePanel::BriefingImagePanel(Panel *parent, const char *name) : ImageP
// else // else
// SetImage("swarm/BriefingPlant"); // SetImage("swarm/BriefingPlant");
SetImage( "lobby/swarm_background01" ); // set to something small as this image is hidden
SetImage( "swarm/missionpics/addonmissionpic" );
SetShouldScaleImage(true); SetShouldScaleImage(true);
SetPos(0,0); 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 = new ObjectiveMapMarkPanel(this, "CampaignBracket");
m_pBracket->SetMouseInputEnabled(false); m_pBracket->SetMouseInputEnabled(false);
int i = random->RandomInt(0, 1); // now just setting to a small temp material because this isn't shown
switch (i) m_pBackDrop->SetImage("swarm/Briefing/ShadedButton");
{
case 0: m_pBackDrop->SetImage("swarm/BriefingPlant"); break;
default:
case 1: m_pBackDrop->SetImage("swarm/BriefingReactor"); break;
}
m_pGalacticMap->SetImage("swarm/Campaign/Jacob_GalacticMap"); m_pGalacticMap->SetImage("swarm/Campaign/Jacob_GalacticMap");
m_pGalaxyLines->SetImage("swarm/Campaign/GalaxyLines"); m_pGalaxyLines->SetImage("swarm/Campaign/GalaxyLines");
m_pSurfaceMap->SetImage("swarm/Campaign/JacobCampaignMap"); m_pSurfaceMap->SetImage("swarm/Campaign/JacobCampaignMap");

View File

@ -1,5 +1,7 @@
#include "cbase.h" #include "cbase.h"
#include "CreditsPanel.h" #include "CreditsPanel.h"
#include "asw_gamerules.h"
#include "asw_campaign_info.h"
#include <vgui_controls/AnimationController.h> #include <vgui_controls/AnimationController.h>
#include <vgui_controls/ImagePanel.h> #include <vgui_controls/ImagePanel.h>
#include <vgui_controls/Label.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_fNextMessage = gpGlobals->curtime + ASW_MESSAGE_INTERVAL;
m_iCurMessage = 0; m_iCurMessage = 0;
m_Font = vgui::INVALID_FONT; m_Font = vgui::INVALID_FONT;
m_bShowCreditsLogo = true;
for (int i=0;i<ASW_LABEL_POOL_SIZE;i++) 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); 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 = new KeyValues( "Credits" );
pCreditsText->LoadFromFile( filesystem, "scripts/asw_credits.txt", NULL ); pCreditsText->LoadFromFile( filesystem, szCreditsPath, "GAME" );
pCurrentCredit = pCreditsText->GetFirstSubKey(); 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() CreditsPanel::~CreditsPanel()
@ -41,10 +67,10 @@ CreditsPanel::~CreditsPanel()
void CreditsPanel::PerformLayout() void CreditsPanel::PerformLayout()
{ {
int w = GetParent()->GetWide(); int w = GetParent()->GetWide();
int h = GetParent()->GetTall() - 20; int h = GetParent()->GetTall() - (GetParent()->GetTall()*0.11f);
SetBounds(0, 20, w, h ); SetBounds(0, h * 0.09f, w, h );
float LogoWidth = w * 0.6f; float LogoWidth = w * 0.7f;
m_pLogo->SetBounds( ( w - LogoWidth ) * 0.5f, 0, LogoWidth, LogoWidth * 0.5f); 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); //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); BaseClass::ApplySchemeSettings(pScheme);
m_Font = pScheme->GetFont( "Default", IsProportional() ); m_Font = pScheme->GetFont( "Default", IsProportional() );
if ( m_bShowCreditsLogo )
vgui::GetAnimationController()->RunAnimationCommand(m_pLogo, "Alpha", 255, 0, 2.0f, vgui::AnimationController::INTERPOLATOR_LINEAR); vgui::GetAnimationController()->RunAnimationCommand(m_pLogo, "Alpha", 255, 0, 2.0f, vgui::AnimationController::INTERPOLATOR_LINEAR);
for (int i=0;i<ASW_LABEL_POOL_SIZE;i++) for (int i=0;i<ASW_LABEL_POOL_SIZE;i++)

View File

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

View File

@ -17,6 +17,7 @@
#include "igameevents.h" #include "igameevents.h"
#include "asw_medal_store.h" #include "asw_medal_store.h"
#include "nb_island.h" #include "nb_island.h"
#include "clientmode_asw.h"
// memdbgon must be the last include file in a .cpp file!!! // memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h> #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 = new vgui::Label( this, "CheatsUsedLabel", "#asw_cheated" );
m_pCheatsUsedLabel->SetVisible( ASWGameRules() && ASWGameRules()->m_bCheated.Get() ); 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_iPlayerLevel = 0;
m_pszWeaponUnlockClass = NULL; m_pszWeaponUnlockClass = NULL;
m_flOldBarMin = -1; m_flOldBarMin = -1;
@ -142,6 +146,12 @@ void CExperienceReport::PerformLayout()
m_pCheatsUsedLabel->SetPos( x, y ); 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_border = YRES( 10 );
int island_top = first_line_y - YRES( 38 ); int island_top = first_line_y - YRES( 38 );
int island_tall = ( y + YRES( 15 ) + island_border ) - island_top; int island_tall = ( y + YRES( 15 ) + island_border ) - island_top;
@ -175,6 +185,12 @@ void CExperienceReport::OnThink()
m_pCheatsUsedLabel->SetVisible( bShowCheatsLabel ); m_pCheatsUsedLabel->SetVisible( bShowCheatsLabel );
InvalidateLayout(); 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 // monitor local player's experience bar to see when it loops
float flBarMin = m_pExperienceBar[ 0 ]->m_pExperienceBar->GetBarMin(); float flBarMin = m_pExperienceBar[ 0 ]->m_pExperienceBar->GetBarMin();

View File

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

View File

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

View File

@ -37,7 +37,9 @@
using namespace vgui; using namespace vgui;
#ifdef _DEBUG
extern ConVar asw_unlock_all_weapons; 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_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_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" ); 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->SetPos(0,0);
m_PropertySheet->SetSize(ScreenWidth(), ScreenHeight()); m_PropertySheet->SetSize(ScreenWidth(), ScreenHeight());
m_PropertySheet->SetVisible(true); m_PropertySheet->SetVisible(true);
if ( asw_unlock_all_weapons.GetInt() < 2 )
{
m_PropertySheet->SetShowTabs( false ); m_PropertySheet->SetShowTabs( false );
}
pParent = m_PropertySheet; pParent = m_PropertySheet;
// stats // stats
if ( asw_unlock_all_weapons.GetInt() >= 2 || ASWGameRules()->IsTutorialMap() ) if ( ASWGameRules()->IsTutorialMap() )
{ {
m_pExperienceReport = NULL; 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 // 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); m_PropertySheet->SetTabWidth(ScreenWidth()/5.0f);
if ( asw_unlock_all_weapons.GetInt() < 2 && !ASWGameRules()->IsTutorialMap() ) if ( !ASWGameRules()->IsTutorialMap() )
{ {
Msg( "Adding experience report\n" ); Msg( "Adding experience report\n" );
m_PropertySheet->AddPageCustomButton( m_pExperienceReport, "#asw_experience_report_tab", scheme ); 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 ); m_PropertySheet->AddPageCustomButton( m_pStatsPanel, "#asw_stats_tab", scheme );
if ( GetControllerFocus() ) 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 ); m_PropertySheet->SetActivePage( m_pExperienceReport );
} }
@ -416,16 +416,16 @@ void MissionCompletePanel::UpdateVisibleButtons()
m_pReadyCheckImage->SetVisible( false ); m_pReadyCheckImage->SetVisible( false );
if ( ASWGameRules()->GetMissionSuccess() ) if ( ASWGameRules()->GetMissionSuccess() )
{ {
if ( m_bCreditsSeen ) if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 )
{ {
m_pContinueButton->SetVisible( false ); if ( !m_bCreditsSeen )
m_pRestartButton->SetVisible( true ); {
m_pContinueButton->SetText( "#asw_button_credits" );
} }
else else
{ {
if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->CampaignMissionsLeft() <= 1 ) m_pContinueButton->SetText( "#asw_button_new_campaign" );
{ }
m_pContinueButton->SetText( "#asw_button_credits" );
} }
else else
{ {
@ -435,7 +435,6 @@ void MissionCompletePanel::UpdateVisibleButtons()
m_pContinueButton->SetVisible( true ); m_pContinueButton->SetVisible( true );
m_pRestartButton->SetVisible( false ); m_pRestartButton->SetVisible( false );
} }
}
else else
{ {
m_pContinueButton->SetVisible( false ); m_pContinueButton->SetVisible( false );
@ -444,9 +443,17 @@ void MissionCompletePanel::UpdateVisibleButtons()
} }
else 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" ); m_pContinueButton->SetText( "#asw_button_credits" );
}
else
{
m_pContinueButton->SetText( "#asw_button_new_campaign" );
}
m_pContinueButton->SetVisible( true ); m_pContinueButton->SetVisible( true );
m_pReadyButton->SetVisible( false ); m_pReadyButton->SetVisible( false );
m_pReadyCheckImage->SetVisible( false ); m_pReadyCheckImage->SetVisible( false );
@ -478,10 +485,7 @@ void MissionCompletePanel::ApplySchemeSettings( vgui::IScheme *scheme )
{ {
BaseClass::ApplySchemeSettings( scheme ); BaseClass::ApplySchemeSettings( scheme );
if ( asw_unlock_all_weapons.GetInt() < 2 )
{
LoadControlSettings( "resource/UI/MissionCompletePanel.res" ); LoadControlSettings( "resource/UI/MissionCompletePanel.res" );
}
if ( !m_bSetAlpha ) if ( !m_bSetAlpha )
{ {
@ -553,7 +557,9 @@ void MissionCompletePanel::OnCommand(const char* command)
} }
else if ( !Q_stricmp( command, "Continue" ) ) 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(); C_ASW_Player *pPlayer = C_ASW_Player::GetLocalASWPlayer();
if ( pPlayer ) if ( pPlayer )
@ -566,6 +572,12 @@ void MissionCompletePanel::OnCommand(const char* command)
UpdateVisibleButtons(); UpdateVisibleButtons();
} }
} }
else
{
// Vote on a new mission
engine->ClientCmd("asw_vote_chooser 0 notrans");
}
}
else if ( bLeader ) else if ( bLeader )
{ {
bool bAllReady = pGameResource->AreAllOtherPlayersReady( pPlayer->entindex() ); 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] = new vgui::ImagePanel(this, "BarIcon");
m_pBarIcons[i]->SetShouldScaleImage(true); m_pBarIcons[i]->SetShouldScaleImage(true);
} }
m_pBarIcons[0]->SetImage("swarm/Briefing/statkilled");
m_pBarIcons[1]->SetImage("swarm/Briefing/stataccuracy"); // not used and the icons no longer exist
m_pBarIcons[2]->SetImage("swarm/Briefing/statfriendly"); //m_pBarIcons[0]->SetImage("swarm/Briefing/statkilled");
m_pBarIcons[3]->SetImage("swarm/Briefing/statdamage"); //m_pBarIcons[1]->SetImage("swarm/Briefing/stataccuracy");
m_pBarIcons[4]->SetImage("swarm/Briefing/statshots2"); //m_pBarIcons[2]->SetImage("swarm/Briefing/statfriendly");
m_pBarIcons[5]->SetImage("swarm/Briefing/statshots2"); // changed later when we know our marine //m_pBarIcons[3]->SetImage("swarm/Briefing/statdamage");
m_pBarIcons[6]->SetImage("swarm/Briefing/statskillpoints"); //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 // 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)); //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" ); LoadControlSettings( "resource/ui/nb_header_footer.res" );
// TODO: Different image in widescreen to avoid stretching // 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 ) switch( m_nTitleStyle )
{ {

View File

@ -16,16 +16,21 @@
#include "nb_main_panel.h" #include "nb_main_panel.h"
#include "vgui_avatarimage.h" #include "vgui_avatarimage.h"
#include "voice_status.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!!! // memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h" #include "tier0/memdbgon.h"
using namespace BaseModUI;
CNB_Lobby_Row::CNB_Lobby_Row( vgui::Panel *parent, const char *name ) : BaseClass( parent, name ) CNB_Lobby_Row::CNB_Lobby_Row( vgui::Panel *parent, const char *name ) : BaseClass( parent, name )
{ {
// == MANAGED_MEMBER_CREATION_START: Do not edit by hand == // == MANAGED_MEMBER_CREATION_START: Do not edit by hand ==
m_pAvatarBackground = new vgui::Panel( this, "AvatarBackground" ); m_pAvatarBackground = new vgui::Panel( this, "AvatarBackground" );
m_pAvatarImage = new CAvatarImagePanel( this, "AvatarImage" ); 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_pLevelLabel = new vgui::Label( this, "LevelLabel", "" );
m_pXPBar = new StatsBar( this, "XPBar" ); m_pXPBar = new StatsBar( this, "XPBar" );
m_pClassLabel = new vgui::Label( this, "ClassLabel", "" ); m_pClassLabel = new vgui::Label( this, "ClassLabel", "" );
@ -161,7 +166,7 @@ void CNB_Lobby_Row::UpdateDetails()
m_pXPBar->SetVisible( false ); m_pXPBar->SetVisible( false );
m_pLevelLabel->SetVisible( false ); m_pLevelLabel->SetVisible( false );
m_pPromotionIcon->SetVisible( false ); m_pPromotionIcon->SetVisible( false );
m_pNameLabel->SetVisible( false ); m_pNameDropdown->SetVisible( false );
m_pAvatarImage->SetVisible( false ); m_pAvatarImage->SetVisible( false );
m_pClassLabel->SetVisible( false ); m_pClassLabel->SetVisible( false );
return; return;
@ -179,8 +184,12 @@ void CNB_Lobby_Row::UpdateDetails()
lightblue.b = 192; lightblue.b = 192;
lightblue.a = 255; lightblue.a = 255;
m_pNameLabel->SetText( Briefing()->GetMarineOrPlayerName( m_nLobbySlot ) ); BaseModHybridButton *pButton = m_pNameDropdown->GetButton();
m_pNameLabel->SetVisible( true ); if ( pButton )
{
pButton->SetText( Briefing()->GetMarineOrPlayerName( m_nLobbySlot ) );
}
m_pNameDropdown->SetVisible( true );
#if !defined(NO_STEAM) #if !defined(NO_STEAM)
CSteamID steamID = Briefing()->GetCommanderSteamID( m_nLobbySlot ); CSteamID steamID = Briefing()->GetCommanderSteamID( m_nLobbySlot );
@ -265,9 +274,9 @@ void CNB_Lobby_Row::UpdateDetails()
m_pAvatarImage->GetPos( nAvatarX, nAvatarY ); m_pAvatarImage->GetPos( nAvatarX, nAvatarY );
int nNameX, nNameY; 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 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 ) void CNB_Lobby_Row::OnCommand( const char *command )
{ {
CNB_Main_Panel *pMainPanel = dynamic_cast<CNB_Main_Panel*>( GetParent() ); 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 ); 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 == // == MANAGED_CLASS_DECLARATIONS_END ==
class CBitmapButton; class CBitmapButton;
class CNB_Lobby_Tooltip; class CNB_Lobby_Tooltip;
namespace BaseModUI
{
class DropDownMenu;
}
class CNB_Lobby_Row : public vgui::EditablePanel class CNB_Lobby_Row : public vgui::EditablePanel
{ {
@ -30,6 +34,7 @@ public:
virtual void PerformLayout(); virtual void PerformLayout();
virtual void OnThink(); virtual void OnThink();
virtual void OnCommand( const char *command ); virtual void OnCommand( const char *command );
void OpenPlayerFlyout();
virtual void UpdateDetails(); virtual void UpdateDetails();
virtual void CheckTooltip( CNB_Lobby_Tooltip *pTooltip ); virtual void CheckTooltip( CNB_Lobby_Tooltip *pTooltip );
@ -48,7 +53,7 @@ public:
vgui::Panel *m_pAvatarBackground; vgui::Panel *m_pAvatarBackground;
CAvatarImagePanel *m_pAvatarImage; CAvatarImagePanel *m_pAvatarImage;
vgui::ImagePanel *m_pClassImage; vgui::ImagePanel *m_pClassImage;
vgui::Label *m_pNameLabel; BaseModUI::DropDownMenu *m_pNameDropdown;
vgui::Label *m_pLevelLabel; vgui::Label *m_pLevelLabel;
StatsBar *m_pXPBar; StatsBar *m_pXPBar;
vgui::Label *m_pClassLabel; 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_szLastWeaponImage[i][0] = 0;
} }
m_szLastPortraitImage[ 0 ] = 0; m_szLastPortraitImage[ 0 ] = 0;
m_lastSteamID.Set( 0, k_EUniverseInvalid, k_EAccountTypeInvalid );
} }
void CNB_Lobby_Row_Small::PerformLayout() void CNB_Lobby_Row_Small::PerformLayout()

View File

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

View File

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

View File

@ -192,8 +192,8 @@ void CNB_Mission_Panel::OnThink()
} }
} }
m_drpDifficulty->SetVisible( gpGlobals->maxClients > 1 ); // only show insane in multiplayer
m_pDifficultyDescription->SetVisible( gpGlobals->maxClients > 1 ); m_drpDifficulty->SetFlyoutItemEnabled( "BtnImpossible", gpGlobals->maxClients > 1 );
if ( ASWGameRules()->IsCampaignGame() && ASWGameRules()->GetCampaignSave() && ASWGameRules()->GetGameState() != ASW_GS_INGAME ) 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 ( ASWGameRules()->GetRestartingMissionTime() > gpGlobals->curtime + flCorrection )
{ {
if ( GetClientModeASW() && GetClientModeASW()->m_bTechFailure ) if ( GetClientModeASW() && GetClientModeASW()->m_bTechFailure )
{
if ( ASWGameRules()->GetGameState() == ASW_GS_INGAME )
{ {
m_VotePanelStatus = VPS_TECH_FAIL; m_VotePanelStatus = VPS_TECH_FAIL;
} }
else else
{
m_VotePanelStatus = VPS_NONE;
}
}
else
{ {
m_VotePanelStatus = VPS_RESTART; m_VotePanelStatus = VPS_RESTART;
} }

View File

@ -57,6 +57,8 @@ void ObjectiveIcons::OnThink()
{ {
BaseClass::OnThink(); BaseClass::OnThink();
// this is no longer being used
/*
if (m_bHaveQueued) if (m_bHaveQueued)
{ {
if (m_pIcon[0] && m_pIcon[0]->GetAlpha() <= 0) 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); vgui::GetAnimationController()->RunAnimationCommand(this, "alpha", 255, 0, 0.3f, vgui::AnimationController::INTERPOLATOR_LINEAR);
CLocalPlayerFilter filter; 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) void ObjectiveIcons::ApplySchemeSettings(vgui::IScheme *pScheme)

View File

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

View File

@ -174,7 +174,7 @@ void StatsReport::OnThink()
C_ASW_Player *pPlayer = pMR->GetCommander(); C_ASW_Player *pPlayer = pMR->GetCommander();
if ( pPlayer ) if ( pPlayer )
{ {
if ( ASWGameResource()->IsPlayerReady( pPlayer ) ) if ( !pMR->IsInhabited() || ASWGameResource()->IsPlayerReady( pPlayer ) )
{ {
m_pReadyCheckImages[ i ]->SetImage( "swarm/HUD/TickBoxTicked" ); 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_pReasonMessage = new vgui::Label(this, "ReasonMessage", "#asw_no_live_tech");
m_pIcon = new vgui::ImagePanel(this, "Icon"); m_pIcon = new vgui::ImagePanel(this, "Icon");
m_pIcon->SetShouldScaleImage(true); m_pIcon->SetShouldScaleImage(true);
m_pIcon->SetImage("swarm/Briefing/stathack"); m_pIcon->SetImage("swarm/EquipIcons/Locked");
m_bLeader = false; m_bLeader = false;
m_hFont = vgui::INVALID_FONT; m_hFont = vgui::INVALID_FONT;

View File

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

View File

@ -796,7 +796,7 @@ const Vector& VMFExporter::GetCurrentRoomOffset()
return s_vecCurrentRoomOffset; return s_vecCurrentRoomOffset;
} }
#define UNIQUE_KEYS_FILE "unique_keys.txt" #define UNIQUE_KEYS_FILE "tilegen/unique_keys.txt"
void VMFExporter::LoadUniqueKeyList() void VMFExporter::LoadUniqueKeyList()
{ {
m_UniqueKeys.RemoveAll(); m_UniqueKeys.RemoveAll();
@ -804,7 +804,7 @@ void VMFExporter::LoadUniqueKeyList()
// Open the manifest file, and read the particles specified inside it // Open the manifest file, and read the particles specified inside it
KeyValues *manifest = new KeyValues( UNIQUE_KEYS_FILE ); 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() ) 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_bStartedGeneration = false;
m_iBuildStage = STAGE_MAP_BUILD_SCHEDULED; m_iBuildStage = STAGE_MAP_BUILD_SCHEDULED;
m_flProgress = 0.0f; m_flProgress = 0.0f;
Q_snprintf( m_szStatusMessage, sizeof( m_szStatusMessage ), "Generating map..." );
} }
// schedules a map to be randomly generated // 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_bStartedGeneration = false;
m_nLevelGenerationRetryCount = 0; m_nLevelGenerationRetryCount = 0;
m_flProgress = 0.0f; m_flProgress = 0.0f;
Q_snprintf( m_szStatusMessage, sizeof( m_szStatusMessage ), "Generating map..." );
} }
// Builds a map from a .layout file // 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 ) ); Q_AppendSlash( g_gamedir, sizeof( g_gamedir ) );
char tilegendir[MAX_PATH]; char tilegendir[MAX_PATH];
Q_snprintf( tilegendir, sizeof(tilegendir), "%s\\tilegen", g_gamedir ); Q_snprintf( tilegendir, sizeof(tilegendir), "%stilegen", g_gamedir );
g_pFullFileSystem->AddSearchPath( tilegendir, "TILEGEN" ); //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" ); g_MissionTextDatabase.LoadKeyValuesFile( "tilegen/objective_text.txt" );

View File

@ -178,7 +178,7 @@ void CASW_Mission_Chooser_Source_Local::BuildMapList()
// Search the directory structure. // Search the directory structure.
char mapwild[MAX_QPATH]; 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 ); m_pszMapFind = Sys_FindFirst( g_hmapfind, mapwild, NULL, 0 );
// think will continue the search // think will continue the search
} }

View File

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

View File

@ -229,7 +229,7 @@ BaseClass( pParent, pName ),
m_pRulePreprocessor( pRulePreprocessor ) m_pRulePreprocessor( pRulePreprocessor )
{ {
m_pRulePanelList = new PanelListPanel( this, "RulePanelListPanel" ); m_pRulePanelList = new PanelListPanel( this, "RulePanelListPanel" );
LoadControlSettings( "RulePicker.res" ); LoadControlSettings( "tilegen/RulePicker.res", "GAME" );
SetDeleteSelfOnClose( true ); SetDeleteSelfOnClose( true );
MoveToCenterOfScreen(); MoveToCenterOfScreen();
for ( int i = 0; i < m_pRulePreprocessor->GetRuleCount(); ++ i ) 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_pCheckingLabel = new vgui::Label( this, "CheckingLabel", "" );
m_pProgressBar = new vgui::ProgressBar( this, "ProgressBar" ); m_pProgressBar = new vgui::ProgressBar( this, "ProgressBar" );
m_pErrorTextBox = new vgui::RichText( this, "ErrorTextBox" ); m_pErrorTextBox = new vgui::RichText( this, "ErrorTextBox" );
LoadControlSettings( "TileCheck.res", "TILEGEN" ); LoadControlSettings( "tilegen/TileCheck.res", "GAME" );
SetMinimumSize( 384, 420 ); SetMinimumSize( 384, 420 );

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