This commit is contained in:
mv 2024-08-30 02:38:17 +03:00
parent 32bfeab9fc
commit 1b3c5dfe1d
88 changed files with 132 additions and 15447 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,205 +0,0 @@
Filter
{
"Height" "1"
"Width" "1"
"FilterType" "FILTER_ADD"
"IconName" "Add1x1.ico"
Image
{
"row0" "1.0"
}
}
Filter
{
"Height" "3"
"Width" "3"
"FilterType" "FILTER_ADD"
"IconName" "Add3x3.ico"
Image
{
"row0" "0.0 0.5 0.0"
"row1" "0.5 1.0 0.5"
"row2" "0.0 0.5 0.0"
}
}
Filter
{
"Height" "5"
"Width" "5"
"FilterType" "FILTER_ADD"
"IconName" "Add5x5.ico"
Image
{
"row0" "0.0 0.0 0.25 0.0 0.0"
"row1" "0.0 0.25 0.5 0.25 0.0"
"row2" "0.25 0.5 1.0 0.5 0.25"
"row3" "0.0 0.25 0.5 0.25 0.0"
"row4" "0.0 0.0 0.25 0.0 0.0"
}
}
Filter
{
"Height" "7"
"Width" "7"
"FilterType" "FILTER_ADD"
"IconName" "Add7x7.ico"
Image
{
"row0" "0.0 0.0 0.0 0.125 0.0 0.0 0.0"
"row1" "0.0 0.0 0.125 0.25 0.125 0.0 0.0"
"row2" "0.0 0.125 0.25 0.5 0.25 0.125 0.0"
"row3" "0.125 0.25 0.5 1.0 0.5 0.25 0.125"
"row4" "0.0 0.125 0.25 0.5 0.25 0.125 0.0"
"row5" "0.0 0.0 0.125 0.25 0.125 0.0 0.0"
"row6" "0.0 0.0 0.0 0.125 0.0 0.0 0.0"
}
}
Filter
{
"Height" "9"
"Width" "9"
"FilterType" "FILTER_ADD"
"IconName" "Add9x9.ico"
Image
{
"row0" "0.0 0.0 0.0 0.0 0.0625 0.0 0.0 0.0 0.0"
"row1" "0.0 0.0 0.0 0.0625 0.125 0.0625 0.0 0.0 0.0"
"row2" "0.0 0.0 0.0 0.125 0.25 0.125 0.0625 0.0 0.0"
"row3" "0.0 0.0625 0.125 0.25 0.5 0.25 0.125 0.0625 0.0"
"row4" "0.0625 0.125 0.25 0.5 1.0 0.5 0.25 0.125 0.0625"
"row5" "0.0 0.0625 0.125 0.25 0.5 0.25 0.125 0.0625 0.0"
"row6" "0.0 0.0 0.0 0.125 0.25 0.125 0.0625 0.0 0.0"
"row7" "0.0 0.0 0.0 0.0625 0.125 0.0625 0.0 0.0 0.0"
"row8" "0.0 0.0 0.0 0.0 0.0625 0.0 0.0 0.0 0.0"
}
}
Filter
{
"Height" "1"
"Width" "1"
"FilterType" "FILTER_EQUAL"
"IconName" "Flat1x1.ico"
Image
{
"row0" "0.0"
}
}
Filter
{
"Height" "3"
"Width" "3"
"FilterType" "FILTER_EQUAL"
"IconName" "Flat3x3.ico"
Image
{
"row0" "-99999.0 0.0 -99999.0"
"row1" "0.0 0.0 0.0"
"row2" "-99999.0 0.0 -99999.0"
}
}
Filter
{
"Height" "5"
"Width" "5"
"FilterType" "FILTER_EQUAL"
"IconName" "Flat5x5.ico"
Image
{
"row0" "-99999.0 -99999.0 0.0 -99999.0 -99999.0"
"row1" "-99999.0 0.0 0.0 0.0 -99999.0"
"row2" "0.0 0.0 0.0 0.0 0.0"
"row3" "-99999.0 0.0 0.0 0.0 -99999.0"
"row4" "-99999.0 -99999.0 0.0 -99999.0 -99999.0"
}
}
Filter
{
"Height" "7"
"Width" "7"
"FilterType" "FILTER_EQUAL"
"IconName" "Flat7x7.ico"
Image
{
"row0" "-99999.0 -99999.0 -99999.0 0.0 -99999.0 -99999.0 -99999.0"
"row1" "-99999.0 -99999.0 0.0 0.0 0.0 -99999.0 -99999.0"
"row2" "-99999.0 0.0 0.0 0.0 0.0 0.0 -99999.0"
"row3" "0.0 0.0 0.0 0.0 0.0 0.0 0.0"
"row4" "-99999.0 0.0 0.0 0.0 0.0 0.0 -99999.0"
"row5" "-99999.0 -99999.0 0.0 0.0 0.0 -99999.0 -99999.0"
"row6" "-99999.0 -99999.0 -99999.0 0.0 -99999.0 -99999.0 -99999.0"
}
}
Filter
{
"Height" "9"
"Width" "9"
"FilterType" "FILTER_EQUAL"
"IconName" "Flat9x9.ico"
Image
{
"row0" "-99999.0 -99999.0 -99999.0 -99999.0 0.0 -99999.0 -99999.0 -99999.0 -99999.0"
"row1" "-99999.0 -99999.0 -99999.0 0.0 0.0 0.0 -99999.0 -99999.0 -99999.0"
"row2" "-99999.0 -99999.0 0.0 0.0 0.0 0.0 0.0 -99999.0 -99999.0"
"row3" "-99999.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -99999.0"
"row4" "0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0"
"row5" "-99999.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -99999.0"
"row6" "-99999.0 -99999.0 0.0 0.0 0.0 0.0 0.0 -99999.0 -99999.0"
"row7" "-99999.0 -99999.0 -99999.0 0.0 0.0 0.0 -99999.0 -99999.0 -99999.0"
"row8" "-99999.0 -99999.0 -99999.0 -99999.0 0.0 -99999.0 -99999.0 -99999.0 -99999.0"
}
}
Filter
{
"Height" "3"
"Width" "3"
"FilterType" "FILTER_CONVATTEN"
"IconName" "Smooth3x3.ico"
Image
{
"row0" "0.25 0.5 0.25"
"row1" "0.5 1.0 0.5"
"row2" "0.25 0.5 0.25"
}
}
Filter
{
"Height" "5"
"Width" "5"
"FilterType" "FILTER_EQUAL"
"IconName" "RaiseTo5x5.ico"
Image
{
"row0" "-99999.0 -99999.0 1.0 -99999.0 -99999.0"
"row1" "-99999.0 1.0 1.0 1.0 -99999.0"
"row2" "1.0 1.0 1.0 1.0 1.0"
"row3" "-99999.0 1.0 1.0 1.0 -99999.0"
"row4" "-99999.0 -99999.0 1.0 -99999.0 -99999.0"
}
}
Filter
{
"Height" "5"
"Width" "5"
"FilterType" "FILTER_EQUAL"
"IconName" "RaiseTo1x1.ico"
Image
{
"row0" "-99999.0 -99999.0 -99999.0 -99999.0 -99999.0"
"row1" "-99999.0 -99999.0 -99999.0 -99999.0 -99999.0"
"row2" "-99999.0 -99999.0 1.0 -99999.0 -99999.0"
"row3" "-99999.0 -99999.0 -99999.0 -99999.0 -99999.0"
"row4" "-99999.0 -99999.0 -99999.0 -99999.0 -99999.0"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

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,25 +0,0 @@
"GameInfo"
{
"game" "Alien Swarm"
"title" " " // asw - leave this blank as we have a texture logo
"type" "multiplayer_only"
GameData "swarm.fgd"
InstancePath "tilegen/instances/"
SupportsDX8 0
"FileSystem"
{
"SteamAppId" "630"
"ToolsAppId" "211"
"SearchPaths"
{
"Game" "|gameinfo_path|."
"Game" "swarm"
"Game" "swarm_tempcontent"
"Game" "swarm_base"
"Game" "platform"
}
}
}

View File

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

View File

@ -1,59 +0,0 @@
"FinalStatusWindow.res"
{
"FinalStatusWindow"
{
"ControlName" "Frame"
"fieldName" "FinalStatusWindow"
"xpos" "226"
"ypos" "376"
"wide" "630"
"tall" "300"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"settitlebarvisible" "1"
"Title" "Finished"
}
"MessageLabel"
{
"ControlName" "Label"
"fieldName" "MessageLabel"
"xpos" "20"
"ypos" "38"
"wide" "590"
"tall" "200"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" ""
"textAlignment" "north-west"
"dulltext" "0"
"brighttext" "0"
"wrap" "1"
}
"Button1"
{
"ControlName" "Button"
"fieldName" "Button1"
"xpos" "277"
"ypos" "260"
"wide" "74"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "OK"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "Close"
"Default" "1"
}
}

View File

@ -1,136 +0,0 @@
Media
{
Images
{
"1"
{
index 1
image icon_hl2_media // goes in vgui/notes.tga
}
"2"
{
index 2
image icon_document
}
"3"
{
index 3
image icon_soft
}
"4"
{
index 4
image icon_hammer
}
"5"
{
index 5
image icon_faceposer
}
"6"
{
index 6
image icon_hlmv
}
"7"
{
index 7
image icon_scenemanager
}
"8"
{
index 8
image icon_weblink
}
"9"
{
index 9
image icon_create
}
"10"
{
index 10
image icon_refresh
}
"11"
{
index 11
image icon_reset
}
"12"
{
index 12
image icon_folder
}
"13"
{
index 13
image icon_files
}
}
Sections
{
"1"
{
id 1
Name "Applications"
hammer
{
Title "Hammer World Editor"
Program "hammer.exe -nop4"
Image 4
}
hlmv
{
Title "Model Viewer"
Program "hlmv.exe"
Image 6
}
faceposer
{
Title "Face Poser"
Program "hlfaceposer.exe -nop4"
Image 5
}
enginetools
{
Title "Alien Swarm (Tools Mode)"
Program ".\\swarm.exe -tools -dev -nop4"
Image 7
}
}
"2"
{
id 2
Name "Source Code"
modwizard
{
Title "Create a Mod"
InlineProgram "CreateMod"
Image 9
}
}
"3"
{
id 3
Name "Documentation"
l4dstart
{
Title "Getting Started Guide"
ShellExecute "http://developer.valvesoftware.com/wiki/Authoring_Tools/SDK_(Alien_Swarm)"
Image 8
}
example
{
Title "Example Content"
ShellExecute ".\\sdk_content"
Image 13
}
}
}
}

View File

@ -1,89 +0,0 @@
"ModWizardSubPanel_CopyFiles.res"
{
"CModWizardSubPanel_CopyFiles"
{
"ControlName" "WizardSubPanel"
"fieldName" "CModWizardSubPanel_CopyFiles"
"xpos" "20"
"ypos" "30"
"wide" "440"
"tall" "289"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
}
"MessageLabel"
{
"ControlName" "Label"
"fieldName" "MessageLabel"
"xpos" "0"
"ypos" "71"
"wide" "420"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" ""
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
"FinishedLabel"
{
"ControlName" "Label"
"fieldName" "FinishedLabel"
"xpos" "0"
"ypos" "155"
"wide" "420"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "0"
"enabled" "1"
"tabPosition" "0"
"labelText" "#CopyingFiles_Finished"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
"CopyProgressBar"
{
"ControlName" "ProgressBar"
"fieldName" "CopyProgressBar"
"xpos" "0"
"ypos" "97"
"wide" "435"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"progress" "0"
}
"Label1"
{
"ControlName" "Label"
"fieldName" "Label1"
"xpos" "0"
"ypos" "22"
"wide" "420"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#CopyingFiles_PleaseWait"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
}

View File

@ -1,56 +0,0 @@
"ModWizardSubPanel_Finished.res"
{
"CModWizardSubPanel_Finished"
{
"ControlName" "WizardSubPanel"
"fieldName" "CModWizardSubPanel_Finished"
"xpos" "20"
"ypos" "30"
"wide" "440"
"tall" "289"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
}
"FinishedText"
{
"ControlName" "Label"
"fieldName" "FinishedText"
"xpos" "0"
"ypos" "20"
"wide" "430"
"tall" "38"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#ModWizard_FinishedText"
"textAlignment" "north-west"
"dulltext" "0"
"brighttext" "0"
"wrap" "1"
}
"OpenReadme"
{
"ControlName" "CheckButton"
"fieldName" "OpenReadme"
"xpos" "0"
"ypos" "57"
"wide" "400"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#ModFinished_OpenReadmeCheckbox"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Default" "0"
}
}

View File

@ -1,133 +0,0 @@
"ModWizardSubPanel_GetModInfo.res"
{
"CModWizardSubPanel_GetModInfo"
{
"ControlName" "CModWizardSubPanel_GetModInfo"
"fieldName" "CModWizardSubPanel_GetModInfo"
"xpos" "20"
"ypos" "30"
"wide" "440"
"tall" "289"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
}
"ModPath"
{
"ControlName" "TextEntry"
"fieldName" "ModPath"
"xpos" "0"
"ypos" "74"
"wide" "370"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
"textHidden" "0"
"editable" "1"
"maxchars" "-1"
"NumericInputOnly" "0"
"unicode" "0"
}
"ModName"
{
"ControlName" "TextEntry"
"fieldName" "ModName"
"xpos" "0"
"ypos" "192"
"wide" "370"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "3"
"textHidden" "0"
"editable" "1"
"maxchars" "-1"
"NumericInputOnly" "0"
"unicode" "0"
}
"SearchButton"
{
"ControlName" "Button"
"fieldName" "SearchButton"
"xpos" "376"
"ypos" "74"
"wide" "64"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "2"
"labelText" "#Button_Search"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "SearchButton"
"Default" "0"
}
"Label1"
{
"ControlName" "Label"
"fieldName" "Label1"
"xpos" "0"
"ypos" "20"
"wide" "370"
"tall" "55"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#InstallDirectoryInfo"
"textAlignment" "north-west"
"dulltext" "0"
"brighttext" "0"
"wrap" "1"
}
"ModNameInfoLabel"
{
"ControlName" "Label"
"fieldName" "ModNameInfoLabel"
"xpos" "0"
"ypos" "139"
"wide" "370"
"tall" "51"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#ModNameInfo"
"textAlignment" "north-west"
"dulltext" "0"
"brighttext" "0"
"wrap" "1"
}
"ClickNext"
{
"ControlName" "Label"
"fieldName" "ClickNext"
"xpos" "0"
"ypos" "244"
"wide" "370"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "#ClickNextWhenFinished"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
}

View File

@ -1,32 +0,0 @@
"GameInfo"
{
FileSystem
{
SteamAppId 220 // This will mount all the GCFs we need (240=CS:S, 220=HL2).
ToolsAppId 211 // Tools will load this (ie: source SDK caches) to get things like materials\debug, materials\editor, etc.
//
// The code that loads this file automatically does a few things here:
//
// 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
// 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
// For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
// 3. For the first "Game" search path, it adds a search path called "MOD".
// 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
//
//
// Search paths are relative to the base directory, which is where hl2.exe is found.
//
// |gameinfo_path| points at the directory where gameinfo.txt is.
// We always want to mount that directory relative to gameinfo.txt, so
// people can mount stuff in c:\mymod, and the main game resources are in
// someplace like c:\program files\valve\steam\steamapps\<username>\half-life 2.
//
SearchPaths
{
Game |gameinfo_path|.
Game swarm_base
}
}
}

View File

@ -1,53 +0,0 @@
"SDKLauncherDialog.res"
{
"SDKLauncherDialog"
{
"ControlName" "CSDKLauncherDialog"
"fieldName" "SDKLauncherDialog"
"xpos" "625"
"ypos" "326"
"wide" "270"
"tall" "355"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"settitlebarvisible" "1"
}
"MediaList"
{
"ControlName" "SectionedListPanel"
"fieldName" "MediaList"
"xpos" "8"
"ypos" "33"
"wide" "254"
"tall" "280"
"autoResize" "3"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
}
"Button1"
{
"ControlName" "Button"
"fieldName" "Button1"
"xpos" "253"
"ypos" "443"
"wide" "76"
"tall" "24"
"autoResize" "0"
"pinCorner" "3"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "Close"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "Close"
"Default" "0"
}
}

View File

@ -1,988 +0,0 @@
///////////////////////////////////////////////////////////
// Tracker scheme resource file
//
// sections:
// Colors - all the colors used by the scheme
// BaseSettings - contains settings for app to use to draw controls
// Fonts - list of all the fonts used by app
// Borders - description of all the borders
//
///////////////////////////////////////////////////////////
Scheme
{
//////////////////////// COLORS ///////////////////////////
// color details
// this is a list of all the colors used by the scheme
Colors
{
// base colors
"White" "255 255 255 255"
"OffWhite" "221 221 221 255"
"DullWhite" "211 211 211 255"
"TransparentBlack" "0 0 0 128"
"Black" "0 0 0 255"
"Blank" "0 0 0 0"
// base colors
"BaseText" "216 222 211 255" // used in text windows, lists
"BrightBaseText" "255 255 255 255" // brightest text
"SelectedText" "255 255 255 255" // selected text
"DimBaseText" "160 170 149 255" // dim base text
"LabelDimText" "160 170 149 255" // used for info text
"ControlText" "216 222 211 255" // used in all text controls
"BrightControlText" "196 181 80 255" // use for selected controls
"DisabledText1" "117 128 111 255" // disabled text
"DisabledText2" "40 46 34 255" // overlay color for disabled text (to give that inset look)
"DimListText" "117 134 102 255" // offline friends, unsubscribed games, etc.
// background colors
"ControlBG" "76 88 68 255" // background color of controls
"ControlDarkBG" "90 106 80 255" // darker background color; used for background of scrollbars
"WindowBG" "62 70 55 255" // background color of text edit panes (chat, text entries, etc.)
"SelectionBG" "149 136 49 255" // background color of any selected text or menu item
"SelectionBG2" "40 46 34 255" // selection background in window w/o focus
"ListBG" "62 70 55 255" // background of server browser, buddy list, etc.
// titlebar colors
"TitleText" "255 255 255 255"
"TitleDimText" "136 145 128 255"
"TitleBG" "76 88 68 0"
"TitleDimBG" "76 88 68 0"
// slider tick colors
"SliderTickColor" "127 140 127 255"
"SliderTrackColor" "31 31 31 255"
// border colors
"BorderBright" "136 145 128 255" // the lit side of a control
"BorderDark" "40 46 34 255" // the dark/unlit side of a control
"BorderSelection" "0 0 0 255" // the additional border color for displaying the default/selected button
"TestColor" "255 0 255 255"
}
///////////////////// BASE SETTINGS ////////////////////////
//
// default settings for all panels
// controls use these to determine their settings
BaseSettings
{
// vgui_controls color specifications
Border.Bright "BorderBright" // the lit side of a control
Border.Dark "BorderDark" // the dark/unlit side of a control
Border.Selection "BorderSelection" // the additional border color for displaying the default/selected button
Button.TextColor "ControlText"
Button.BgColor "ControlBG"
// Button.ArmedTextColor "BrightBaseText"
// Button.ArmedBgColor "SelectionBG"
// Button.DepressedTextColor "DimBaseText"
// Button.DepressedBgColor "ControlDarkBG"
Button.FocusBorderColor "TransparentBlack"
CheckButton.TextColor "BaseText"
CheckButton.SelectedTextColor "BrightControlText"
CheckButton.BgColor "ListBG"
CheckButton.Border1 "Border.Dark" // the left checkbutton border
CheckButton.Border2 "Border.Bright" // the right checkbutton border
CheckButton.Check "BrightControlText" // color of the check itself
ComboBoxButton.ArrowColor "DimBaseText"
ComboBoxButton.ArmedArrowColor "BrightBaseText"
ComboBoxButton.BgColor "ListBG"
ComboBoxButton.DisabledBgColor "ControlBG"
Frame.TitleTextInsetX 30
Frame.ClientInsetX 20
Frame.ClientInsetY 6
Frame.BgColor "ControlBG"
Frame.OutOfFocusBgColor "ControlBG"
Frame.FocusTransitionEffectTime "0.3" // time it takes for a window to fade in/out on focus/out of focus
Frame.TransitionEffectTime "0.3" // time it takes for a window to fade in/out on open/close
Frame.AutoSnapRange "0"
FrameGrip.Color1 "BorderBright"
FrameGrip.Color2 "BorderSelection"
FrameTitleButton.FgColor "BorderBright"
FrameTitleButton.BgColor "ControlBG"
FrameTitleButton.DisabledFgColor "TitleDimText"
FrameTitleButton.DisabledBgColor "TitleDimBG"
FrameSystemButton.FgColor "TitleBG"
FrameSystemButton.BgColor "TitleBG"
FrameSystemButton.Icon "resource/icon_steam"
FrameSystemButton.DisabledIcon "resource/icon_steam_disabled"
FrameTitleBar.TextColor "TitleText"
FrameTitleBar.BgColor "TitleBG"
FrameTitleBar.DisabledTextColor "TitleText"
FrameTitleBar.DisabledBgColor "TitleBG"
GraphPanel.FgColor "White"
GraphPanel.BgColor "TransparentBlack"
Label.TextDullColor "DimBaseText"
Label.TextColor "ControlText"
Label.TextBrightColor "BrightBaseText"
Label.SelectedTextColor "BrightControlText"
Label.BgColor "ControlBG"
Label.DisabledFgColor1 "DisabledText1"
Label.DisabledFgColor2 "DisabledText2"
ListPanel.TextColor "BaseText"
ListPanel.BgColor "ListBG"
ListPanel.SelectedTextColor "BrightBaseText"
ListPanel.SelectedBgColor "SelectionBG"
ListPanel.SelectedOutOfFocusBgColor "SelectionBG2"
ListPanel.EmptyListInfoTextColor "DimBaseText"
Menu.TextInset "6"
Menu.FgColor "DimBaseText"
Menu.BgColor "ControlBG"
Menu.ArmedFgColor "BrightBaseText"
Menu.ArmedBgColor "SelectionBG"
Menu.DividerColor "BorderDark"
Panel.FgColor "BorderSelection"
Panel.BgColor "ControlBG"
ProgressBar.FgColor "Label.FgColor"
ProgressBar.BgColor "Label.BgColor"
PropertySheet.TextColor "ControlText"
PropertySheet.SelectedTextColor "BrightControlText"
PropertySheet.TransitionEffectTime "0" // time to change from one tab to another
RadioButton.TextColor "ToggleButton.TextColor"
RadioButton.SelectedTextColor "ToggleButton.SelectedTextColor"
RichText.TextColor "TextEntry.TextColor"
RichText.BgColor "TextEntry.BgColor"
RichText.SelectedTextColor "TextEntry.SelectedTextColor"
RichText.SelectedBgColor "SelectionBG"
ScrollBar.Wide 17
ScrollBarButton.FgColor "ControlText"
ScrollBarButton.BgColor "ControlDarkBG"
ScrollBarButton.ArmedFgColor "BrightBaseText"
ScrollBarButton.ArmedBgColor "ControlDarkBG"
ScrollBarButton.DepressedFgColor "BrightBaseText"
ScrollBarButton.DepressedBgColor "ControlDarkBG"
ScrollBarSlider.BgColor "ControlDarkBG" // this isn't really used
ScrollBarSlider.FgColor "ControlBG" // handle with which the slider is grabbed
SectionedListPanel.HeaderTextColor "BrightControlText"
SectionedListPanel.HeaderBgColor "Blank"
SectionedListPanel.DividerColor "BorderDark"
SectionedListPanel.TextColor "BaseText"
SectionedListPanel.BrightTextColor "White"
SectionedListPanel.BgColor "ListBG"
SectionedListPanel.SelectedTextColor "SelectedText"
SectionedListPanel.SelectedBgColor "SelectionBG"
SectionedListPanel.OutOfFocusSelectedTextColor "SelectedText"
SectionedListPanel.OutOfFocusSelectedBgColor "SelectionBG2"
Slider.NobColor "ControlDarkBG"
Slider.TextColor "ControlBG"
Slider.TrackColor "ControlDarkBG"
// Slider.DisabledTextColor1 "117 117 117 255"
// Slider.DisabledTextColor2 "30 30 30 255"
TextEntry.TextColor "ControlText"
TextEntry.BgColor "ListBG"
TextEntry.CursorColor "Label.CursoColor"
TextEntry.DisabledTextColor "DimBaseText"
TextEntry.DisabledBgColor "ControlBG"
TextEntry.SelectedTextColor "SelectedText"
TextEntry.SelectedBgColor "SelectionBG"
TextEntry.OutOfFocusSelectedBgColor "SelectionBG2"
TextEntry.FocusEdgeColor "SelectionBG"
ToggleButton.SelectedTextColor "Label.SelectedTextColor"
// Tooltip.TextColor "0 0 0 196"
// Tooltip.BgColor "255 155 0 255"
TreeView.BgColor "ControlBG"
WizardSubPanel.BgColor "ControlBG"
}
//
//////////////////////// FONTS /////////////////////////////
//
// describes all the fonts
Fonts
{
// fonts are used in order that they are listed
// fonts listed later in the order will only be used if they fulfill a range not already filled
// if a font fails to load then the subsequent fonts will replace
// fonts are used in order that they are listed
"DebugFixed"
{
"1"
{
"name" "Courier New"
"tall" "10"
"weight" "500"
"antialias" "1"
}
}
// fonts are used in order that they are listed
"DebugFixedSmall"
{
"1"
{
"name" "Courier New"
"tall" "7"
"weight" "500"
"antialias" "1"
}
}
"DefaultFixedOutline"
{
"1"
{
"name" "Lucida Console"
"tall" "10"
"weight" "0"
"outline" "1"
}
}
"Default"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "500"
}
}
"DefaultBold"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "1000"
}
}
"DefaultUnderline"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "500"
"underline" "1"
}
}
"DefaultSmall"
{
"1"
{
"name" "Tahoma"
"tall" "13"
"weight" "0"
}
}
"DefaultSmallDropShadow"
{
"1"
{
"name" "Tahoma"
"tall" "13"
"weight" "0"
"dropshadow" "1"
}
}
"DefaultVerySmall"
{
"1"
{
"name" "Tahoma"
"tall" "12"
"weight" "0"
}
}
"DefaultLarge"
{
"1"
{
"name" "Tahoma"
"tall" "18"
"weight" "0"
}
}
"UiBold"
{
"1"
{
"name" "Tahoma"
"tall" "12"
"weight" "1000"
}
}
"MenuLarge"
{
"1"
{
"name" "Verdana"
"tall" "16"
"weight" "600"
"antialias" "1"
}
}
"ConsoleText"
{
"1"
{
"name" "Lucida Console"
"tall" "10"
"weight" "500"
}
}
// this is the symbol font
"Marlett"
{
"1"
{
"name" "Marlett"
"tall" "14"
"weight" "0"
"symbol" "1"
}
}
"Trebuchet24"
{
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
}
}
"Trebuchet20"
{
"1"
{
"name" "Trebuchet MS"
"tall" "20"
"weight" "900"
}
}
"Trebuchet18"
{
"1"
{
"name" "Trebuchet MS"
"tall" "18"
"weight" "900"
}
}
// HUD numbers
// We use multiple fonts to 'pulse' them in the HUD, hence the need for many of near size
"HUDNumber"
{
"1"
{
"name" "Trebuchet MS"
"tall" "40"
"weight" "900"
}
}
"HUDNumber1"
{
"1"
{
"name" "Trebuchet MS"
"tall" "41"
"weight" "900"
}
}
"HUDNumber2"
{
"1"
{
"name" "Trebuchet MS"
"tall" "42"
"weight" "900"
}
}
"HUDNumber3"
{
"1"
{
"name" "Trebuchet MS"
"tall" "43"
"weight" "900"
}
}
"HUDNumber4"
{
"1"
{
"name" "Trebuchet MS"
"tall" "44"
"weight" "900"
}
}
"HUDNumber5"
{
"1"
{
"name" "Trebuchet MS"
"tall" "45"
"weight" "900"
}
}
"DefaultFixed"
{
"1"
{
"name" "Lucida Console"
"tall" "10"
"weight" "0"
}
// "1"
// {
// "name" "FixedSys"
// "tall" "20"
// "weight" "0"
// }
}
"DefaultFixedDropShadow"
{
"1"
{
"name" "Lucida Console"
"tall" "10"
"weight" "0"
"dropshadow" "1"
}
// "1"
// {
// "name" "FixedSys"
// "tall" "20"
// "weight" "0"
// }
}
"CloseCaption_Normal"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "500"
}
}
"CloseCaption_Italic"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "500"
"italic" "1"
}
}
"CloseCaption_Bold"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "900"
}
}
"CloseCaption_BoldItalic"
{
"1"
{
"name" "Tahoma"
"tall" "16"
"weight" "900"
"italic" "1"
}
}
TitleFont
{
"1"
{
"name" "HalfLife2"
"tall" "72"
"weight" "400"
"antialias" "1"
"custom" "1"
}
}
TitleFont2
{
"1"
{
"name" "HalfLife2"
"tall" "120"
"weight" "400"
"antialias" "1"
"custom" "1"
}
}
}
//
//////////////////// BORDERS //////////////////////////////
//
// describes all the border types
Borders
{
BaseBorder InsetBorder
ButtonBorder RaisedBorder
ComboBoxBorder InsetBorder
MenuBorder RaisedBorder
BrowserBorder InsetBorder
PropertySheetBorder RaisedBorder
TabBorder RaisedBorder
CheckBorder InsetBorder
FrameBorder RaisedBorder
TitleButtonBorder RaisedBorder
TitleButtonDepressedBorder InsetBorder
TitleButtonDisabledBorder
{
"backgroundtype" "0"
}
ScrollBarButtonBorder
{
"inset" "1 0 0 0"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
InsetBorder
{
"inset" "0 0 1 1"
Right
{
"1"
{
"color" "Border.Bright"
"offset" "0 1"
}
}
Left
{
"1"
{
"color" "Border.Dark"
"offset" "1 0"
}
}
Bottom
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Top
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
}
DepressedBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "Border.Bright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "Border.Dark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
}
RaisedBorder
{
"inset" "0 0 1 1"
Right
{
"1"
{
"color" "Border.Dark"
"offset" "0 1"
}
}
Left
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Top
{
"1"
{
"color" "Border.Bright"
"offset" "0 1"
}
}
Bottom
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
}
ScrollBarButtonBorder
{
"inset" "2 2 0 0"
Left
{
"1"
{
"color" "Border.Dark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "Border.Bright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
}
ScrollBarButtonDepressedBorder
{
"inset" "2 2 0 0"
Left
{
"1"
{
"color" "Border.Dark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "Border.Bright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
}
TabActiveBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "Border.Dark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
}
ToolTipBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "Border.Bright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
}
// this is the border used for default buttons (the button that gets pressed when you hit enter)
ButtonKeyFocusBorder
{
"inset" "0 0 1 1"
Right
{
"1"
{
"color" "Border.Selection"
"offset" "0 0"
}
"2"
{
"color" "Border.Dark"
"offset" "1 1"
}
}
Bottom
{
"1"
{
"color" "Border.Selection"
"offset" "0 0"
}
"2"
{
"color" "Border.Dark"
"offset" "1 1"
}
}
Left
{
"1"
{
"color" "Border.Selection"
"offset" "0 0"
}
"2"
{
"color" "Border.Bright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "Border.Selection"
"offset" "0 0"
}
"2"
{
"color" "Border.Bright"
"offset" "1 0"
}
}
}
ButtonDepressedBorder
{
"inset" "2 1 1 1"
Right
{
"1"
{
"color" "Border.Bright"
"offset" "1 1"
}
}
Left
{
"1"
{
"color" "Border.Dark"
"offset" "1 0"
}
}
Bottom
{
"1"
{
"color" "Border.Bright"
"offset" "0 0"
}
}
Top
{
"1"
{
"color" "Border.Dark"
"offset" "0 0"
}
}
}
}
//////////////////////// CUSTOM FONT FILES /////////////////////////////
//
// specifies all the custom (non-system) font files that need to be loaded to service the above described fonts
CustomFontFiles
{
"1" "resource/HALFLIFE2.ttf"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,332 +0,0 @@
//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======
//
// Purpose: General game definition file (.fgd)
//
//=============================================================================
@include "base.fgd"
@BaseClass = Targetname
[
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
vscripts(scriptlist) : "Entity Scripts" : "" : "Name(s) of script files that are executed after all entities have spawned."
thinkfunction(string) : "Script think function" : "" : "Name of a function in this entity's script scope which will be called automatically."
input RunScriptFile(script) : "Execute a game script file from disk"
input RunScriptCode(string) : "Execute a string of script source code"
input CallScriptFunction(string) : "Call a named function from this entity's Activation Script"
// Inputs
input Kill(void) : "Removes this entity from the world."
input KillHierarchy(void) : "Removes this entity and all its children from the world."
input AddOutput(string) : "Adds an entity I/O connection to this entity. Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire (-1 == infinite)>. Very dangerous, use with care."
input FireUser1(void) : "Causes this entity's OnUser1 output to be fired."
input FireUser2(void) : "Causes this entity's OnUser2 output to be fired."
input FireUser3(void) : "Causes this entity's OnUser3 output to be fired."
input FireUser4(void) : "Causes this entity's OnUser4 output to be fired."
// Outputs
output OnUser1(void) : "Fired in response to FireUser1 input."
output OnUser2(void) : "Fired in response to FireUser2 input."
output OnUser3(void) : "Fired in response to FireUser3 input."
output OnUser4(void) : "Fired in response to FireUser4 input."
]
@BaseClass base(Targetname, Parentname, Origin, EnableDisable, Global) = TriggerOnce
[
// asw infested version of flags
spawnflags(flags) =
[
//1: "Clients" : 1
2: "Marines and Aliens" : 0
4: "Pushables": 0
8: "Physics Objects" : 0
16: "Only marines" : 1
//32: "Only clients in vehicles" : 0
64: "Everything (not including physics debris)" : 0
//512: "Only clients *not* in vehicles" : 0
1024: "Physics debris" : 0
2048: "Only NPCs in vehicles (respects player ally flag)" : 0
4096: "Correctly account for object mass (trigger_push used to assume 100Kg) and multiple component physobjs (car, blob...)" : 0
]
filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator triggers me. See filter_activator_name for more explanation."
// Inputs
input Toggle(void) : "Toggles this trigger between enabled and disabled states."
// Outputs
output OnStartTouch(void) : "Fired when an entity starts touching this trigger. The touching entity must pass this trigger's filters to cause this output to fire."
]
@BaseClass = worldbase
[
message(string) : "Map Description / Title"
// asw infested default
skyname(string) : "SkyBox Texture Name" : "blacksky"
//skyname(string) : "SkyBox Texture Name" : "sky_day01_01"
chaptertitle(string) : "Chapter Title Message" : "" : "Chapter Title that appears onscreen when this level starts."
startdark(boolean) : "Level Fade In" : 0
gametitle(boolean) : "Display Game Title" : 0 : "Game Title that appears onscreen when this level starts."
newunit(choices) : "New Level Unit" : 0 : "Used to clear out savegame data of previous levels to keep the savegame size as small as possible. Only set it to Yes if the player cannot return to any previous levels." =
[
0 : "No, keep current"
1 : "Yes, clear previous levels"
]
maxoccludeearea(float) : "Max occludee area" : "0" : "[Used on PC] Prevents occlusion testing for entities that take up more than X% of the screen."
minoccluderarea(float) : "Min occluder area" : "0" : "[Used on PC] Prevents occluders from being used if they take up less than X% of the screen."
maxoccludeearea_x360(float) : "Max occludee area (Xbox)" : "0" : "[Used on 360] Prevents occlusion testing for entities that take up more than X% of the screen."
minoccluderarea_x360(float) : "Min occluder area (Xbox)" : "0" : "[Used on 360] Prevents occluders from being used if they take up less than X% of the screen."
maxpropscreenwidth(float) : "Start Fade Pixels" : -1 : "Number of pixels wide at which all props in the level start to fade (<0 = use fademaxdist). This number is ignored if the prop has a specific fade distance specified."
minpropscreenwidth(float) : "End Fade Pixels" : 0 : "Minimum number of pixels wide at which the prop is visible (0 = don't fade out). This number is ignored if the prop has a specific fade distance specified."
detailvbsp(string) : "Detail.vbsp file" : "detail.vbsp" : "Detail.vbsp file to use for emitting detail props (found in directory <root>/modname)"
detailmaterial(string) : "Detail material file" : "detail/detailsprites" : "Material for detail sprites to use for drawing detail props"
coldworld(boolean) : "World is cold" : 0
]
@PointClass base(Targetname, Parentname, EnableDisable) iconsprite("editor/env_fire") color(0 180 0) = env_fire :
"An entity that handles a single flame at its origin. The flame causes heat 'damage' to other env_fire entities around it, and will eventually ignite non-flaming env_fire entities nearby, causing the fire to spread."
[
health(integer) : "Duration" : 30 : "Amount of time the fire will burn."
firesize(integer) : "Size" : 64 : "Height (in world units) of the flame."
fireattack(integer) : "Attack" : 4 : "Amount of time the fire takes to grow to full strength."
firetype(choices) : "Type" : 0 =
[
0 : "Natural"
1 : "Plasma"
]
spawnflags(flags) =
[
1: "Infinite Duration" : 0
2: "Smokeless" : 0
4: "Start On" : 0
8: "Start Full" : 0
16: "Don't drop" : 0
32: "No glow" : 0
128: "Delete when out" : 0
256: "No sound" : 0
512: "No ignite sound" : 0
1024: "No fuelling once lit" : 0
2048: "Fast burn think" : 0
]
ignitionpoint(float) : "Ignition Point" : 32 : "Amount of heat 'damage' to take before this flame should ignite."
damagescale(float) : "Damage Scale" : "1.0" : "Multiplier of the burn damage done by the flame."
// asw infested fire settings
LightRadiusScale(float) : "Light Radius Scale" : "1.0" : "Multiplier for the glow radius."
LightBrightness(integer) : "Light Brightness" : 1 : "Integer exponent for the glow brightness."
LightColor(color255) : "Light Color" : "255 255 255" : "R G B 0-255 values describing the color of the dynamic light for this fire."
LoopSound(sound) : "Loop sound" : "d1_town.LargeFireLoop" : "Looping sound to play while this fire is burning."
IgniteSound(sound) : "Ignite sound" : "ASW_Flare.IgniteFlare" : "One shot sound to play when the fire starts."
// Inputs
input StartFire(void) : "Start the fire."
input Extinguish(float) : "Puts out the fire permanently in the number of seconds specified."
input ExtinguishTemporary(float): "Puts out the fire temporarily in the number of seconds specified."
// Outputs
output OnIgnited(void) : "Fires when the fire is first ignited."
output OnExtinguished(void) : "Fires when the fire is fully extinguished."
]
@PointClass base(Angles) size(-16 -16 -16, 16 16 16) color(0 0 255) = sky_camera :
"An entity used to control the 3D Skybox. Its origin is used to determine the 3D Skybox's position relative to the map. Place this entity, in the 3D Skybox, at the point where the origin of the map should be."
[
scale(integer) : "3D Skybox scale" : 16 : "Scale of the skybox."
fogenable(boolean) : "Fog Enable" : 0
fogblend(boolean) : "Fog Blend" : 0
use_angles(boolean) : "Use Angles for Fog Dir" : 0
fogcolor(color255) : "Primary Fog Color" : "255 255 255"
fogcolor2(color255) : "Secondary Fog Color" : "255 255 255"
fogdir(string) : "Primary Fog Dir" : "1 0 0"
fogstart(string) : "Fog Start" : "500.0" : "Distance at which the skybox fog should start."
fogend(string) : "Fog End" : "2000.0" : "Distance at which the skybox fog should be fully opaque."
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
input ActivateSkybox(void) : "Make this skybox the active one."
]
//-------------------------------------------------------------------------
//
// Lights
//
//-------------------------------------------------------------------------
@PointClass light() iconsprite("editor/light.vmt") base(Targetname, Light) sphere(_fifty_percent_distance) sphere(_zero_percent_distance) sphere(_distance) = light :
"An invisible omnidirectional lightsource."
[
target(target_destination) : "Entity To Point At" : : "The name of an entity in the map that the spotlight will point at. This will override the spotlight's angles."
spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
_distance(integer) : "Maximum Distance" : 0 : "This is the distance that light is allowed to cast, in inches."
// asw infested - previously set default distance to 400. Lights in old build of AS:I required a maximum distance.
// _distance(integer) : "Maximum Distance" : 400 : "This is the distance that light is allowed to cast, in inches."
]
@BaseClass base(Targetname, Global, Angles, Studiomodel, BreakableProp, DXLevelChoice, BaseFadeProp) = BasePropPhysics
[
spawnflags(flags) =
[
1 : "Start Asleep" : 0
2 : "Don't take physics damage" : 0
4 : "Debris - Don't collide with the player or other debris" : 0
8 : "Motion Disabled" : 0
64 : "Enable motion on Physcannon grab" : 0
128 : "Not affected by rotor wash" : 0
256 : "Generate output on +USE " : 1
512 : "Prevent pickup" : 0
1024: "Prevent motion enable on player bump" : 0
4096: "Debris with trigger interaction" : 0
8192: "Force server-side (Multiplayer only)" : 0
// infested asw flag
32768: "Autoaim target" : 0
// infested asw flag
65536: "Disable motion when comes to rest" : 0
1048576: "Physgun can ALWAYS pick up. No matter what." : 0
]
minhealthdmg(integer) : "Min Damage to Hurt" : 0 : "The prop will ignore any damage events if the damage is less than this amount."
shadowcastdist(integer) : "Shadow Cast Distance" : 0 : "Use this to override how far this object casts shadows. 0 = default distance."
physdamagescale(float) : "Physics Impact Damage Scale" : "0.1" : "Scales damage energy when this object is hit by a physics object. NOTE: 0 means this feature is disabled for backwards compatibility.\nSet to 1.0 for materials as strong as flesh, smaller numbers indicate stronger materials."
Damagetype(choices) : "Impact damage type" : 0 =
[
0: "Blunt"
1: "Sharp"
]
nodamageforces(boolean) : "Damaging it Doesn't Push It" : 0 : "Used to determine whether or not damage should cause the brush to move."
inertiaScale(float) : "Scale Factor For Inertia" : "1.0" : "Scales the angular mass of an object. Used to hack angular damage and collision response."
massScale(float) : "Mass Scale" : "0" : "A scale multiplier for the object's mass."
overridescript(string) : "Override Parameters" : "" : "A list of physics key/value pairs that are usually in a physics prop .qc file. Format is 'key,value,key,value,etc'."
damagetoenablemotion(integer) : "Health Level to Override Motion" : 0 : "If specified, this object will start motion disabled. Once its health has dropped below this specified amount, it will enable motion."
forcetoenablemotion(float) : "Physics Impact Force to Override Motion" : 0 : "If specified, this object will start motion disabled. Any impact that imparts a force greater than this value on the physbox will enable motion."
puntsound(sound) : "Sound to make when punted"
addon(string) : "AI AddOn" : "" : "If specified this object will use this addon behavior when installed in a composite AI"
// Inputs
input Wake(void) : "Wake up this physics object, if it is sleeping."
input Sleep(void) : "Put this physics object to sleep. It will wake if given the Wake input, or if force is applied to it. Note that physics objects go to sleep automatically after coming to rest for a while, so you don't really need to use this."
input EnableMotion(void) : "Enable physics motion/collision response."
input DisableMotion(void) : "Disable physics motion/collision response."
input DisableFloating(void) : "Disable fluid/floating simulation to reduce cost."
input SetBodyGroup(integer) : "Set this prop's body group (from 0 - n)."
input physdamagescale(float) : "Set the Physics Impact Damage Scale for this character. NOTE: 0 means this feature is disabled for backwards compatibility."
input EnableDamageForces(void) : "Damaging the entity applies physics forces to it."
input DisableDamageForces(void) : "Damaging the entity does *not* apply physics forces to it."
input EnablePuntSound(void) : "Allow this prop to play its own sound when punted"
input DisablePuntSound(void) : "Prevent this prop from playing its own sound when punted"
// Outputs
output OnMotionEnabled(void) : "Fired when motion is enabled on this prop, either via 'Health Level to Override Motion' or from the EnableMotion input."
output OnAwakened(void) : "Fired when this entity becomes awake (collision/force is applied to it while it's asleep)."
output OnPhysGunPickup(void) : "Fired when the player picks up the prop with the physcannon or +USE."
output OnPhysGunPunt(void) : "Fired when a player punts this object with the physgun."
output OnPhysGunOnlyPickup(void) : "Fired when a player picks this object up WITH THE PHYSGUN. +USE pickups do not fire this output."
output OnPhysGunDrop(void) : "Fired when the player drops the prop with the physcannon or USE."
output OnPlayerUse(void) : "Fired when the player tries to +USE the prop. This output will fire only if the Generate output on +USE spawnflag is set."
output OnPlayerPickup(void) : "Fired whenever the player picks up this prop (with the physcannon or with +USE)."
output OnOutOfWorld(void) : "Fired whenever the prop is out of the allowed world bounds."
]
@PointClass base(BasePropPhysics, RenderFields) studioprop() sphere(fademindist) sphere(fademaxdist) = prop_physics :
"A prop that physically simulates as a single rigid body. It can be constrained to other physics objects using hinges "+
"or other constraints. It can also be configured to break when it takes enough damage. "+
"Note that the health of the object will be overridden by the health inside the model, to ensure consistent health game-wide. "+
"If the model used by the prop is configured to be used as a prop_dynamic (i.e. it should not be physically simulated) then it CANNOT be "+
"used as a prop_physics. Upon level load it will display a warning in the console and remove itself. Use a prop_dynamic instead."
[
// asw infested custom settings
BulletForceImmune(boolean) : "Immune to bullet forces" : 0 : "Used to determine whether or not bullet damage should cause the prop to move."
// Inputs
input Ignite(void) : "Ignite, burst into flames."
input IgniteLifetime(float) : "Ignite, with a parameter lifetime."
input IgniteNumHitboxFires(integer) : "Ignite, with a parameternumber of hitbox fires."
input IgniteHitboxFireScale(float) : "Ignite, with a parameter hitbox fire scale."
]
@PointClass base(Node) studio("models/editor/ground_node.mdl") color(232 219 8) = info_node :
"A navigation node for ground moving NPCs. Navigation nodes are baked into the nodegraph so that NPCs can move " +
"to them. Ground nodes fall to the ground when they spawn."
[
// asw added extra ones 512+
spawnflags(Flags) =
[
1 : "Force human permission" : 0
2 : "Force small_centered permission" : 0
4 : "Force wide_human permission" : 0
8 : "Force tiny permissiont" : 0
16 : "Force wide_short permission" : 0
32 : "Force medium permission" : 0
64 : "Force tiny_centered permission" : 0
128 : "Force large permission" : 0
256 : "Force large_centered permission" : 0
512 : "Keep editor position" : 0
1024 : "Force medium tall permission" : 0
2048 : "Force tiny fluid permission" : 0
4096 : "Force medium big (Swarm Drone) permission" : 0
]
]
@PointClass base(Targetname) color(220 180 0) size(-8 -8 -8, 8 8 8) line(255 255 255, nodeid, StartNode, nodeid, EndNode) = info_node_link :
"A dynamic connection between two navigation nodes. You specify the node IDs of the start and end nodes, and then you can use entity I/O " +
"to turn on and off the connection. This could be used to create or destroy a connection in the nodegraph because of some event in your map " +
"(a bridge being created/destroyed, etc)."
[
StartNode(node_dest) : "Start node ID" : : "The node ID of one end of the node connection."
EndNode(node_dest) : "End node ID" : : "The node ID of one end of the node connection."
initialstate(choices) : "Initial State" : 1 =
[
0 : "Off"
1 : "On"
]
linktype(choices) : "Type of Connection" : 1 =
[
1 : "Ground"
2 : "Jump"
4 : "Fly"
8 : "Climb"
16 : "Crawl"
]
AllowUse(string) : "Allow Pass When Off" : : "Entity or class to allow passage even when node is off"
InvertAllow(boolean) : "Invert exclusion rules" : 0 : "Allowed entity is the only entity NOT allowed when this is set to 'yes'"
preciseMovement(boolean) : "Precise Movement" : 0 : "Movement through this link must be precise. Used for NPCs " +
"that have sloppy movement characteristics to move through things like doors or windows"
priority(choices) : "Priority" : 0 =
[
0 : "Normal"
1 : "Use As Last Resort"
]
spawnflags( Flags ) =
[
1 : "Force human connect" : 0
2 : "Force small_centered connect" : 0
4 : "Force wide_human connect" : 0
8 : "Force tiny connect" : 0
16 : "Force wide_short connect" : 0
32 : "Force medium connect" : 0
64 : "Force tiny_centered connect" : 0
128 : "Force large connect" : 0
256 : "Force large_centered connect" : 0
512 : "(Don't drop placeholder)" : 0
1024 : "Force medium tall connect" : 0
2048 : "Force tiny fluid connect" : 0
4096 : "Force medium big (Swarm Drone) connect" : 0
]
// Inputs
input TurnOn(void) : "Turn the link on."
input TurnOff(void) : "Turn the link off."
]

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.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -181,6 +181,7 @@ FoundGameListItem::FoundGameListItem( vgui::Panel *parent, const char *panelName
m_pLblPing = NULL;
m_pLblPlayerGamerTag = NULL;
m_pLblDifficulty = NULL;
m_pLblSwarmState = NULL;
m_pLblPlayers = NULL;
m_pLblNotJoinable = NULL;
@ -325,6 +326,7 @@ void FoundGameListItem::SetGameIndex( const Info& fi )
SetGamePlayerCount( 0, 0 );
SetGameDifficulty( "" );
SetSwarmState( "" );
}
else if ( char const *szOtherTitle = fi.IsOtherTitle() )
{
@ -340,6 +342,7 @@ void FoundGameListItem::SetGameIndex( const Info& fi )
SetGamePlayerCount( 0, 0 );
SetGameDifficulty( "" );
SetSwarmState( "" );
}
else if ( fi.IsJoinable() || fi.IsDownloadable() )
{
@ -367,6 +370,18 @@ void FoundGameListItem::SetGameIndex( const Info& fi )
Q_snprintf( chDiffBuffer, sizeof( chDiffBuffer ), "#L4D360UI_Difficulty_%s_%s", szDiff, szMode );
SetGameDifficulty( chDiffBuffer );
}
char const *szDiff = fi.mpGameDetails->GetString( "game/swarmstate", "ingame" );
Msg( "Adding a server to the list:\n" );
KeyValuesDumpAsDevMsg( fi.mpGameDetails );
if ( !Q_stricmp( szDiff, "ingame" ) )
{
SetSwarmState( "#L4D360UI_ingame" );
}
else
{
SetSwarmState( "#L4D360UI_briefing" );
}
}
else
{
@ -438,6 +453,15 @@ void FoundGameListItem::SetGameDifficulty( const char *difficultyName )
}
}
//=============================================================================
void FoundGameListItem::SetSwarmState( const char *szSwarmStateText )
{
if( m_pLblSwarmState )
{
m_pLblSwarmState->SetText( szSwarmStateText ? szSwarmStateText : "" );
}
}
//=============================================================================
void FoundGameListItem::SetGamePlayerCount( int current, int max )
{
@ -618,6 +642,7 @@ void FoundGameListItem::PaintBackground()
{
DrawListItemLabel( m_pLblDifficulty, true );
DrawListItemLabel( m_pLblPlayers, true );
DrawListItemLabel( m_pLblSwarmState, true );
}
else
{
@ -835,6 +860,11 @@ void FoundGameListItem::ApplySchemeSettings( IScheme *pScheme )
{
m_pLblDifficulty->SetVisible( false );
}
m_pLblSwarmState = dynamic_cast< vgui::Label * > ( FindChildByName( "LblSwarmState" ) );
if ( m_pLblSwarmState )
{
m_pLblSwarmState->SetVisible( false );
}
m_pLblPlayers = dynamic_cast< vgui::Label * > ( FindChildByName( "LblNumPlayers" ) );
if ( m_pLblPlayers )
{
@ -847,8 +877,8 @@ void FoundGameListItem::ApplySchemeSettings( IScheme *pScheme )
m_pLblNotJoinable->SetVisible( false );
}
m_hTextFont = pScheme->GetFont( "DefaultBold", true );
m_hTextBlurFont = pScheme->GetFont( "DefaultBoldBlur", true );
m_hTextFont = pScheme->GetFont( "Default", true );
m_hTextBlurFont = pScheme->GetFont( "DefaultBlur", true );
m_hSmallTextFont = pScheme->GetFont( "DefaultMedium", true );
m_hSmallTextBlurFont = pScheme->GetFont( "DefaultMediumBlur", true );

View File

@ -84,6 +84,7 @@ public:
void SetGamePing( Info::GAME_PING ping );
void SetGameDifficulty( const char* difficultyName );
void SetSwarmState( const char* szSwarmStateText );
void SetGamePlayerCount( int current, int max );
void DrawListItemLabel( vgui::Label* label, bool bSmallFont, bool bEastAligned = false );
@ -133,6 +134,7 @@ private:
vgui::Label *m_pLblPing;
vgui::Label *m_pLblPlayerGamerTag;
vgui::Label *m_pLblDifficulty;
vgui::Label *m_pLblSwarmState;
vgui::Label *m_pLblPlayers;
vgui::Label *m_pLblNotJoinable;

View File

@ -364,6 +364,14 @@ static int __cdecl FoundPublicGamesSortFunc( vgui::Panel* const *a, vgui::Panel*
return ( builtInA ? -1 : 1 );
}
// now by swarm state
const char *stateA = ia.mpGameDetails->GetString( "game/swarmstate", "" );
const char *stateB = ib.mpGameDetails->GetString( "game/swarmstate", "" );
if ( int iResult = Q_stricmp( stateA, stateB ) )
{
return iResult;
}
// now by campaign
const char *campaignNameA = ia.mpGameDetails->GetString( "game/missioninfo/displaytitle", "" );
const char *campaignNameB = ib.mpGameDetails->GetString( "game/missioninfo/displaytitle", "" );

View File

@ -30,14 +30,14 @@ extern ISoundEmitterSystemBase *soundemitterbase;
ConVar asw_debug_marine_chatter("asw_debug_marine_chatter", "0", 0, "Show debug info about when marine chatter is triggered");
#define ACTOR_SARGE (1 << 0)
#define ACTOR_JAEGER (1 << 1)
#define ACTOR_WILDCAT (1 << 2)
#define ACTOR_WOLFE (1 << 3)
#define ACTOR_FAITH (1 << 4)
#define ACTOR_BASTILLE (1 << 5)
#define ACTOR_CRASH (1 << 6)
#define ACTOR_FLYNN (1 << 7)
#define ACTOR_VEGAS (1 << 8)
#define ACTOR_WILDCAT (1 << 1)
#define ACTOR_FAITH (1 << 2)
#define ACTOR_CRASH (1 << 3)
#define ACTOR_JAEGER (1 << 4)
#define ACTOR_WOLFE (1 << 5)
#define ACTOR_BASTILLE (1 << 6)
#define ACTOR_VEGAS (1 << 7)
#define ACTOR_FLYNN (1 << 8)
#define ACTOR_ALL (ACTOR_SARGE | ACTOR_JAEGER | ACTOR_WILDCAT | ACTOR_WOLFE | ACTOR_FAITH | ACTOR_BASTILLE | ACTOR_CRASH | ACTOR_FLYNN)
int CASW_MarineSpeech::s_CurrentConversation = CONV_NONE;

View File

@ -134,6 +134,7 @@ extern ConVar old_radius_damage;
ConVar asw_adjust_difficulty_by_number_of_marines( "asw_adjust_difficulty_by_number_of_marines", "1", FCVAR_CHEAT, "If enabled, difficulty will be reduced when there are only 3 or 2 marines." );
ConVar sv_vote_kick_ban_duration("sv_vote_kick_ban_duration", "5", 0, "How long should a kick vote ban someone from the server? (in minutes)");
ConVar sv_timeout_when_fully_connected( "sv_timeout_when_fully_connected", "30", FCVAR_NONE, "Once fully connected, player will be kicked if he doesn't send a network message within this interval." );
ConVar mm_swarm_state( "mm_swarm_state", "ingame", FCVAR_DEVELOPMENTONLY );
#else
extern ConVar asw_controls;
#endif
@ -327,6 +328,15 @@ LINK_ENTITY_TO_CLASS( asw_gamerules, CAlienSwarmProxy );
IMPLEMENT_NETWORKCLASS_ALIASED( AlienSwarmProxy, DT_AlienSwarmProxy )
#ifdef CLIENT_DLL
void CAlienSwarmProxy::OnDataChanged( DataUpdateType_t updateType )
{
BaseClass::OnDataChanged( updateType );
if ( ASWGameRules() )
{
ASWGameRules()->OnDataChanged( updateType );
}
}
void RecvProxy_ASWGameRules( const RecvProp *pProp, void **pOut, void *pData, int objectID )
{
CAlienSwarm *pRules = ASWGameRules();
@ -496,6 +506,7 @@ CAlienSwarm::CAlienSwarm()
m_nMarineDeathCamStep = 0;
m_hMarineDeathRagdoll = NULL;
m_fDeathCamYawAngleOffset = 0.0f;
m_iPreviousGameState = 200;
engine->SetPitchScale( 1.0f );
@ -576,6 +587,21 @@ float CAlienSwarm::GetMarineDeathCamInterp( void )
return 0.0f;
}
void CAlienSwarm::OnDataChanged( DataUpdateType_t updateType )
{
if ( m_iPreviousGameState != GetGameState() )
{
m_iPreviousGameState = GetGameState();
IGameEvent * event = gameeventmanager->CreateEvent( "swarm_state_changed" );
if ( event )
{
event->SetInt( "state", m_iPreviousGameState );
gameeventmanager->FireEventClientSide( event );
}
}
}
#else
extern ConVar asw_springcol;
@ -935,6 +961,7 @@ void CAlienSwarm::AllowBriefing()
{
DevMsg( "Cheat allowing return to briefing\n" );
SetGameState( ASW_GS_BRIEFING );
mm_swarm_state.SetValue( "briefing" );
}
@ -1571,6 +1598,7 @@ void CAlienSwarm::StartMission()
Msg("==STARTMISSION==\n");
SetGameState(ASW_GS_LAUNCHING);
mm_swarm_state.SetValue( "ingame" );
m_fNextLaunchingStep = gpGlobals->curtime + ASW_LAUNCHING_STEP;
// reset fail advice
@ -1680,6 +1708,7 @@ void CAlienSwarm::UpdateLaunching()
}
SetGameState(ASW_GS_INGAME);
mm_swarm_state.SetValue( "ingame" );
DevMsg( "Setting game state to ingame\n" );
// Alert gamestats of spawning
@ -6508,6 +6537,7 @@ void CAlienSwarm::LevelInitPostEntity()
}
SetGameState(ASW_GS_BRIEFING);
mm_swarm_state.SetValue( "briefing" );
SetMaxMarines();
SetInitialGameMode();

View File

@ -51,6 +51,10 @@ public:
DECLARE_DATADESC();
int m_iSpeedrunTime;
#ifdef CLIENT_DLL
virtual void OnDataChanged( DataUpdateType_t updateType );
#endif
};
class CASW_Player;
@ -399,6 +403,11 @@ public:
virtual int GetGameState() { return m_iGameState; }
virtual void SetGameState(int iNewState) { m_iGameState = iNewState; }
CNetworkVar(unsigned char, m_iGameState);
#ifdef CLIENT_DLL
virtual void OnDataChanged( DataUpdateType_t updateType );
unsigned char m_iPreviousGameState;
#endif
// misc
virtual void CreateStandardEntities( void );

View File

@ -195,8 +195,24 @@ void CASW_Weapon::ItemBusyFrame( void )
}
}
#endif
CSoundParameters params;
if ( !GetParametersForSound( "FastReload.Success", params, NULL ) )
return;
EmitSound( "FastReload.Success" );
EmitSound_t playparams(params);
playparams.m_nPitch = params.pitch;
CASW_Player *pPlayer = GetCommander();
if ( pPlayer )
{
CSingleUserRecipientFilter filter( pMarine->GetCommander() );
if ( IsPredicted() && CBaseEntity::GetPredictionPlayer() )
{
filter.UsePredictionRules();
}
EmitSound(filter, entindex(), playparams);
}
//Msg("%f RELOAD SUCCESS! - bAttack1 = %d, bOldAttack1 = %d\n", gpGlobals->curtime, bAttack1, bOldAttack1 );
//Msg( "S: %f - %f - %f RELOAD SUCCESS! -- Progress = %f\n", gpGlobals->curtime, fFastStart, fFastEnd, flProgress );
#ifdef GAME_DLL
@ -207,7 +223,23 @@ void CASW_Weapon::ItemBusyFrame( void )
}
else if (m_fFastReloadStart != 0)
{
EmitSound( "FastReload.Miss" );
CSoundParameters params;
if ( !GetParametersForSound( "FastReload.Miss", params, NULL ) )
return;
EmitSound_t playparams(params);
playparams.m_nPitch = params.pitch;
CASW_Player *pPlayer = GetCommander();
if ( pPlayer )
{
CSingleUserRecipientFilter filter( pMarine->GetCommander() );
if ( IsPredicted() && CBaseEntity::GetPredictionPlayer() )
{
filter.UsePredictionRules();
}
EmitSound(filter, entindex(), playparams);
}
//Msg("%f RELOAD MISSED! - bAttack1 = %d, bOldAttack1 = %d\n", gpGlobals->curtime, bAttack1, bOldAttack1 );
//Msg( "S: %f - %f - %f RELOAD MISSED! -- Progress = %f\n", gpGlobals->curtime, fFastStart, fFastEnd, flProgress );
m_fFastReloadEnd = 0;

Binary file not shown.

View File

@ -18,6 +18,7 @@
#include "filesystem.h"
#include "tier1/utlintrusivelist.h"
#include "tier1/utlvector.h"
#include "tier1/utlmap.h"
class CPackedStore;
@ -127,14 +128,14 @@ public:
// Get a list of all the files in the zip You are responsible for freeing the contents of
// outFilenames (call outFilenames.PurgeAndDeleteElements).
int GetFileList( CUtlStringList &outFilenames, bool bFormattedOutput = false );
int GetFileList( CUtlStringList &outFilenames, bool bFormattedOutput, bool bSortedOutput );
// Get a list of all files that match the given wildcard string
int GetFileList( const char *pWildCard, CUtlStringList &outFilenames, bool bFormattedOutput = false );
int GetFileList( const char *pWildCard, CUtlStringList &outFilenames, bool bFormattedOutput, bool bSortedOutput );
// Get a list of all directories of the given wildcard
int GetDirList( const char *pWildCard, CUtlStringList &outDirnames );
int GetDirList( CUtlStringList &outDirnames );
int GetFileAndDirLists( const char *pWildCard, CUtlStringList &outDirnames, CUtlStringList &outFilenames, bool bSortedOutput );
int GetFileAndDirLists( CUtlStringList &outDirnames, CUtlStringList &outFilenames, bool bSortedOutput );
bool IsEmpty( void ) const;
@ -186,7 +187,10 @@ private:
FileHandle_t GetWriteHandle( int nChunkIdx );
void CloseWriteHandle( void );
// For cache-ing directory and contents data
CUtlStringList m_directoryList; // The index of this list of directories...
CUtlMap<int, CUtlStringList*> m_dirContents; // ...is the key to this map of filenames
void BuildFindFirstCache();
};