First version of the SOurce SDK 2013

This commit is contained in:
Joe Ludwig 2013-06-26 15:22:04 -07:00
commit 39ed87570b
7469 changed files with 3312656 additions and 0 deletions

43
LICENSE Normal file
View File

@ -0,0 +1,43 @@
SOURCE 1 SDK LICENSE
Source SDK Copyright© Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE
CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING
THE SOURCE ENGINE SDK (“SDK”). BY DOWNLOADING AND/OR USING THE
SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO
THE TERMS OF THIS LICENSE PLEASE DONT DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game
running on the Source engine. You may distribute your modified Valve game in source and
object code form, but only for free. Terms of use for Valve games are found in the Steam
Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the
SDK in source and object code form, but only for free. Any distribution of this SDK must
include this LICENSE file and thirdpartylegalnotices.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above
copyright notice and the following:
DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY
OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED
“AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL
WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED
WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
TITLE AND FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR
ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER
(INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF
BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS)
ARISING OUT OF THE USE OF OR INABILITY TO USE THE
ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
If you would like to use the SDK for a commercial purpose, please contact Valve at
sourceengine@valvesoftware.com.

43
README Normal file
View File

@ -0,0 +1,43 @@
SOURCE 1 SDK LICENSE
Source SDK Copyright© Valve Corp.
THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE
CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING
THE SOURCE ENGINE SDK (“SDK”). BY DOWNLOADING AND/OR USING THE
SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO
THE TERMS OF THIS LICENSE PLEASE DONT DOWNLOAD OR USE THE SDK.
You may, free of charge, download and use the SDK to develop a modified Valve game
running on the Source engine. You may distribute your modified Valve game in source and
object code form, but only for free. Terms of use for Valve games are found in the Steam
Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/
You may copy, modify, and distribute the SDK and any modifications you make to the
SDK in source and object code form, but only for free. Any distribution of this SDK must
include this LICENSE file and thirdpartylegalnotices.txt.
Any distribution of the SDK or a substantial portion of the SDK must include the above
copyright notice and the following:
DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY
OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED
“AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL
WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED
WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
TITLE AND FITNESS FOR A PARTICULAR PURPOSE.
LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR
ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER
(INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF
BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS)
ARISING OUT OF THE USE OF OR INABILITY TO USE THE
ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
If you would like to use the SDK for a commercial purpose, please contact Valve at
sourceengine@valvesoftware.com.

View File

@ -0,0 +1,84 @@
"GameInfo"
{
game "My First HL2MP Mod"
title "HALF+LIFE'"
title2 "deathmatch mod"
type multiplayer_only
nomodels 0
nohimodel 1
nocrosshair 1
hidden_maps
{
"test_speakers" 1
"test_hardware" 1
}
FileSystem
{
SteamAppId 243730
//
// 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\half-life 2.
//
SearchPaths
{
// First, mount all user customizations. This will search for VPKs and subfolders
// and mount them in alphabetical order. The easiest way to distribute a mod is to
// pack up the custom content into a VPK. To "install" a mod, just drop it in this
// folder.
//
// Note that this folder is scanned only when the game is booted.
game+mod hl2mp/custom/*
game+mod hl2/custom/*
// Now search loose files. We'll set the directory containing the gameinfo.txt file
// as the first "mod" search path (after any user customizations). This is also the one
// that's used when writing to the "mod" path.
game+mod+mod_write+default_write_path |gameinfo_path|.
gamebin |gameinfo_path|bin
// We search VPK files before ordinary folders, because most files will be found in
// VPK and we can avoid making thousands of file system calls to attempt to open files
// in folders where they don't exist. (Searching a VPK is much faster than making an operating
// system call.)
game_lv hl2/hl2_lv.vpk
game+mod hl2mp/hl2mp_english.vpk
game+mod hl2mp/hl2mp_pak.vpk
game |all_source_engine_paths|hl2/hl2_english.vpk
game |all_source_engine_paths|hl2/hl2_pak.vpk
game |all_source_engine_paths|hl2/hl2_textures.vpk
game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
game |all_source_engine_paths|hl2/hl2_sound_misc.vpk
game |all_source_engine_paths|hl2/hl2_misc.vpk
platform |all_source_engine_paths|platform/platform_misc.vpk
// Add the HL2 directory as a game search path. This is also where where writes
// to the "game" path go.
game+game_write hl2mp
// Where the game's binaries are
gamebin hl2mp/bin
// Last, mount in shared HL2 loose files
game |all_source_engine_paths|hl2mp
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
"GameMenu"
{
"1"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
}
"3"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
}
"4"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"5"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"6"
{
"label" "#GameUI_GameMenu_CreateServer"
"command" "OpenCreateMultiplayerGameDialog"
}
"10"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"11"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}

View File

@ -0,0 +1,800 @@
///////////////////////////////////////////////////////////
// Object Control Panel 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
//
// hit ctrl-alt-shift-R in the app to reload this file
//
///////////////////////////////////////////////////////////
Scheme
{
//////////////////////// COLORS ///////////////////////////
// color details
// this is a list of all the colors used by the scheme
Colors
{
// base colors
"BaseText" "48 192 192 255" // used in text windows, lists
"BrightBaseText" "155 255 255 255" // brightest text
"DimBaseText" "150 159 142 255" // dim base text
"LabelDimText" "160 170 149 255" // slight modification on above, used for info text
// could be just removed and use DimBaseText?
"ControlText" "48 192 192 255" // used in all text controls
"BrightControlText" "64 224 224 255" // use for selected controls
"DisabledText1" "32 128 128 255" // disabled text
"DisabledText2" "30 30 30 255" // overlay color for disabled text (to give that inset look)
// 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
// title colors
"TitleText" "255 255 255 255"
"TitleDimText" "120 132 114 255"
"TitleBG" "76 88 68 0"
"TitleDimBG" "76 88 68 0"
// border colors
"BorderBright" "136 145 128 255" // the lit side of a control
"BorderDark" "45 49 40 255" // the dark/unlit side of a control
"BorderSelection" "0 0 0 255" // the additional border color for displaying the default/selected button
}
///////////////////// BASE SETTINGS ////////////////////////
//
// default settings for all panels
// controls use these to determine their settings
BaseSettings
{
"FgColor" "ControlText"
"BgColor" "ControlBG"
"LabelBgColor" "ControlBG"
"SubPanelBgColor" "ControlBG"
"DisabledFgColor1" "DisabledText1"
"DisabledFgColor2" "DisabledText2" // set this to the BgColor if you don't want it to draw
"TitleBarFgColor" "TitleText"
"TitleBarDisabledFgColor" "TitleDimText"
"TitleBarBgColor" "TitleBG"
"TitleBarDisabledBgColor" "TitleDimBG"
// "TitleBarIcon" "resource/icon_steam"
// "TitleBarDisabledIcon" "resource/icon_steam_disabled"
"TitleBarIcon" "resource/icon_hlicon1"
"TitleBarDisabledIcon" "resource/icon_hlicon2"
"TitleButtonFgColor" "BorderBright"
"TitleButtonBgColor" "ControlBG"
"TitleButtonDisabledFgColor" "TitleDimText"
"TitleButtonDisabledBgColor" "TitleDimBG"
"TextCursorColor" "BaseText" // color of the blinking text cursor in text entries
"URLTextColor" "BrightBaseText" // color that URL's show up in chat window
Menu
{
"FgColor" "DimBaseText"
"BgColor" "ControlBG"
"ArmedFgColor" "BrightBaseText"
"ArmedBgColor" "SelectionBG"
"DividerColor" "BorderDark"
"TextInset" "6"
}
MenuButton // the little arrow on the side of boxes that triggers drop down menus
{
"ButtonArrowColor" "DimBaseText" // color of arrows
"ButtonBgColor" "WindowBG" // bg color of button. same as background color of text edit panes
"ArmedArrowColor" "BrightBaseText" // color of arrow when mouse is over button
"ArmedBgColor" "DimBaseText" // bg color of button when mouse is over button
}
Slider
{
"SliderFgColor" "ControlText" // handle with which the slider is grabbed
"SliderBgColor" "ControlDarkBG" // area behind handle
"SliderTickColor" "ControlText" // slider tick's color
"SliderTickLabelColor" "ControlText" // color of labels at the ends of the slider tick
}
ScrollBarSlider
{
"BgColor" "ControlBG" // this isn't really used
"ScrollBarSliderFgColor" "ControlBG" // handle with which the slider is grabbed
"ScrollBarSliderBgColor" "ControlDarkBG" // area behind handle
"ButtonFgColor" "DimBaseText" // color of arrows
}
// text edit windows
"WindowFgColor" "BaseText" // off-white
"WindowBgColor" "WindowBG"
"WindowDisabledFgColor" "DimBaseText"
"WindowDisabledBgColor" "66 80 60 255" // background of chat conversation
"SelectionFgColor" "255 255 255 255" // fg color of selected text
"SelectionBgColor" "SelectionBG"
"ListSelectionFgColor" "255 255 255 255" //
"ListBgColor" "62 70 55 255" // background of server browser control, etc
"BuddyListBgColor" "62 70 55 255" // background of buddy list pane
// App-specific stuff
"ChatBgColor" "WindowBgColor"
// status selection
"StatusSelectFgColor" "BrightBaseText"
"StatusSelectFgColor2" "BrightControlText" // this is the color of the friends status
// checkboxes
"CheckButtonBorder1" "BorderDark" // the left checkbutton border
"CheckButtonBorder2" "BorderBright" // the right checkbutton border
"CheckButtonCheck" "0 0 0 255" // color of the check itself
"CheckBgColor" "158 168 150 255"
// buttons (default fg/bg colors are used if these are not set)
// "ButtonArmedFgColor"
// "ButtonArmedBgColor"
// "ButtonDepressedFgColor" "BrightControlText"
// "ButtonDepressedBgColor"
// buddy buttons
BuddyButton
{
"FgColor1" "ControlText"
"FgColor2" "117 134 102 255"
"ArmedFgColor1" "BrightBaseText"
"ArmedFgColor2" "BrightBaseText"
"ArmedBgColor" "SelectionBG"
}
Chat
{
"TextColor" "BrightControlText"
"SelfTextColor" "BaseText"
"SeperatorTextColor" "DimBaseText"
}
"SectionTextColor" "BrightControlText" // text color for IN-GAME, ONLINE, OFFLINE sections of buddy list
"SectionDividerColor" "BorderDark" // color of line that runs under section name in buddy list
// TF2 HUD
"HudStatusBgColor" "0 0 0 64"
"HudStatusSelectedBgColor" "0 0 0 192"
}
//
//////////////////////// 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
"Default"
{
"1"
{
"name" "Impact"
"tall" "32"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultUnderline"
{
"1"
{
"name" "Impact"
"tall" "32"
"weight" "900"
"underline" "1"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultSmall"
{
"1"
{
"name" "Impact"
"tall" "24"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultVerySmall"
{
"1"
{
"name" "Impact"
"tall" "18"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultLarge"
{
"1"
{
"name" "Impact"
"tall" "48"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
// this is the symbol font
"Marlett"
{
"1"
{
"name" "Marlett"
"tall" "14"
"weight" "0"
"symbol" "1"
"range" "0x0000 0x007F" // Basic Latin
}
}
}
//
//////////////////// BORDERS //////////////////////////////
//
// describes all the border types
Borders
{
BaseBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
TitleButtonBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"4"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
TitleButtonDisabledBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BgColor"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BgColor"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BgColor"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BgColor"
"offset" "0 0"
}
}
}
TitleButtonDepressedBorder
{
"inset" "1 1 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
ScrollBarButtonBorder
{
"inset" "2 2 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"
}
}
}
ButtonBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
TabBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
TabActiveBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "ControlBG"
"offset" "6 2"
}
}
}
ToolTipBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"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"
Left
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Top
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Right
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Bottom
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
ButtonDepressedBorder
{
"inset" "2 1 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
ComboBoxBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
MenuBorder
{
"inset" "1 1 1 1"
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"
}
}
}
}
}

View File

@ -0,0 +1,800 @@
///////////////////////////////////////////////////////////
// Object Control Panel 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
//
// hit ctrl-alt-shift-R in the app to reload this file
//
///////////////////////////////////////////////////////////
Scheme
{
//////////////////////// COLORS ///////////////////////////
// color details
// this is a list of all the colors used by the scheme
Colors
{
// base colors
"BaseText" "48 192 192 255" // used in text windows, lists
"BrightBaseText" "155 255 255 255" // brightest text
"DimBaseText" "150 159 142 255" // dim base text
"LabelDimText" "160 170 149 255" // slight modification on above, used for info text
// could be just removed and use DimBaseText?
"ControlText" "48 192 192 255" // used in all text controls
"BrightControlText" "64 224 224 255" // use for selected controls
"DisabledText1" "32 128 128 255" // disabled text
"DisabledText2" "30 30 30 255" // overlay color for disabled text (to give that inset look)
// 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
// title colors
"TitleText" "255 255 255 255"
"TitleDimText" "120 132 114 255"
"TitleBG" "76 88 68 0"
"TitleDimBG" "76 88 68 0"
// border colors
"BorderBright" "136 145 128 255" // the lit side of a control
"BorderDark" "45 49 40 255" // the dark/unlit side of a control
"BorderSelection" "0 0 0 255" // the additional border color for displaying the default/selected button
}
///////////////////// BASE SETTINGS ////////////////////////
//
// default settings for all panels
// controls use these to determine their settings
BaseSettings
{
"FgColor" "ControlText"
"BgColor" "ControlBG"
"LabelBgColor" "ControlBG"
"SubPanelBgColor" "ControlBG"
"DisabledFgColor1" "DisabledText1"
"DisabledFgColor2" "DisabledText2" // set this to the BgColor if you don't want it to draw
"TitleBarFgColor" "TitleText"
"TitleBarDisabledFgColor" "TitleDimText"
"TitleBarBgColor" "TitleBG"
"TitleBarDisabledBgColor" "TitleDimBG"
// "TitleBarIcon" "resource/icon_steam"
// "TitleBarDisabledIcon" "resource/icon_steam_disabled"
"TitleBarIcon" "resource/icon_hlicon1"
"TitleBarDisabledIcon" "resource/icon_hlicon2"
"TitleButtonFgColor" "BorderBright"
"TitleButtonBgColor" "ControlBG"
"TitleButtonDisabledFgColor" "TitleDimText"
"TitleButtonDisabledBgColor" "TitleDimBG"
"TextCursorColor" "BaseText" // color of the blinking text cursor in text entries
"URLTextColor" "BrightBaseText" // color that URL's show up in chat window
Menu
{
"FgColor" "DimBaseText"
"BgColor" "ControlBG"
"ArmedFgColor" "BrightBaseText"
"ArmedBgColor" "SelectionBG"
"DividerColor" "BorderDark"
"TextInset" "6"
}
MenuButton // the little arrow on the side of boxes that triggers drop down menus
{
"ButtonArrowColor" "DimBaseText" // color of arrows
"ButtonBgColor" "WindowBG" // bg color of button. same as background color of text edit panes
"ArmedArrowColor" "BrightBaseText" // color of arrow when mouse is over button
"ArmedBgColor" "DimBaseText" // bg color of button when mouse is over button
}
Slider
{
"SliderFgColor" "ControlText" // handle with which the slider is grabbed
"SliderBgColor" "ControlDarkBG" // area behind handle
"SliderTickColor" "ControlText" // slider tick's color
"SliderTickLabelColor" "ControlText" // color of labels at the ends of the slider tick
}
ScrollBarSlider
{
"BgColor" "ControlBG" // this isn't really used
"ScrollBarSliderFgColor" "ControlBG" // handle with which the slider is grabbed
"ScrollBarSliderBgColor" "ControlDarkBG" // area behind handle
"ButtonFgColor" "DimBaseText" // color of arrows
}
// text edit windows
"WindowFgColor" "BaseText" // off-white
"WindowBgColor" "WindowBG"
"WindowDisabledFgColor" "DimBaseText"
"WindowDisabledBgColor" "66 80 60 255" // background of chat conversation
"SelectionFgColor" "255 255 255 255" // fg color of selected text
"SelectionBgColor" "SelectionBG"
"ListSelectionFgColor" "255 255 255 255" //
"ListBgColor" "62 70 55 255" // background of server browser control, etc
"BuddyListBgColor" "62 70 55 255" // background of buddy list pane
// App-specific stuff
"ChatBgColor" "WindowBgColor"
// status selection
"StatusSelectFgColor" "BrightBaseText"
"StatusSelectFgColor2" "BrightControlText" // this is the color of the friends status
// checkboxes
"CheckButtonBorder1" "BorderDark" // the left checkbutton border
"CheckButtonBorder2" "BorderBright" // the right checkbutton border
"CheckButtonCheck" "0 0 0 255" // color of the check itself
"CheckBgColor" "158 168 150 255"
// buttons (default fg/bg colors are used if these are not set)
// "ButtonArmedFgColor"
// "ButtonArmedBgColor"
// "ButtonDepressedFgColor" "BrightControlText"
// "ButtonDepressedBgColor"
// buddy buttons
BuddyButton
{
"FgColor1" "ControlText"
"FgColor2" "117 134 102 255"
"ArmedFgColor1" "BrightBaseText"
"ArmedFgColor2" "BrightBaseText"
"ArmedBgColor" "SelectionBG"
}
Chat
{
"TextColor" "BrightControlText"
"SelfTextColor" "BaseText"
"SeperatorTextColor" "DimBaseText"
}
"SectionTextColor" "BrightControlText" // text color for IN-GAME, ONLINE, OFFLINE sections of buddy list
"SectionDividerColor" "BorderDark" // color of line that runs under section name in buddy list
// TF2 HUD
"HudStatusBgColor" "0 0 0 64"
"HudStatusSelectedBgColor" "0 0 0 192"
}
//
//////////////////////// 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
"Default"
{
"1"
{
"name" "Impact"
"tall" "32"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultUnderline"
{
"1"
{
"name" "Impact"
"tall" "32"
"weight" "900"
"underline" "1"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultSmall"
{
"1"
{
"name" "Impact"
"tall" "24"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultVerySmall"
{
"1"
{
"name" "Impact"
"tall" "18"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
"DefaultLarge"
{
"1"
{
"name" "Impact"
"tall" "48"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
}
}
// this is the symbol font
"Marlett"
{
"1"
{
"name" "Marlett"
"tall" "14"
"weight" "0"
"symbol" "1"
"range" "0x0000 0x007F" // Basic Latin
}
}
}
//
//////////////////// BORDERS //////////////////////////////
//
// describes all the border types
Borders
{
BaseBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
TitleButtonBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"4"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
TitleButtonDisabledBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BgColor"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BgColor"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BgColor"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BgColor"
"offset" "0 0"
}
}
}
TitleButtonDepressedBorder
{
"inset" "1 1 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
ScrollBarButtonBorder
{
"inset" "2 2 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"
}
}
}
ButtonBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
TabBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
TabActiveBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "ControlBG"
"offset" "6 2"
}
}
}
ToolTipBorder
{
"inset" "0 0 1 0"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Right
{
"1"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderDark"
"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"
Left
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderBright"
"offset" "0 1"
}
}
Top
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Right
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderDark"
"offset" "1 0"
}
}
Bottom
{
"1"
{
"color" "BorderSelection"
"offset" "0 0"
}
"2"
{
"color" "BorderDark"
"offset" "0 0"
}
}
}
ButtonDepressedBorder
{
"inset" "2 1 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
ComboBoxBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "BorderDark"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "BorderBright"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "BorderDark"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "BorderBright"
"offset" "0 0"
}
}
}
MenuBorder
{
"inset" "1 1 1 1"
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"
}
}
}
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,51 @@
//=========== (C) Copyright 1999 Valve, L.L.C. All rights reserved. ===========
//
// The copyright to the contents herein is the property of Valve, L.L.C.
// The contents may be used and/or copied only with the written permission of
// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//=============================================================================
// No spaces in event names, max length 32
// All strings are case sensitive
//
// valid data key types are:
// string : a zero terminated string
// bool : unsigned int, 1 bit
// byte : unsigned int, 8 bit
// short : signed int, 16 bit
// long : signed int, 32 bit
// float : float, 32 bit
// local : any data, but not networked to clients
//
// following key names are reserved:
// local : if set to 1, event is not networked to clients
// unreliable : networked, but unreliable
// suppress : never fire this event
// time : firing server time
// eventid : holds the event ID
"modevents"
{
"player_death" // a game event, name may be 32 charaters long
{
"userid" "short" // user ID who died
"attacker" "short" // user ID who killed
"weapon" "string" // weapon name killed used
}
"teamplay_round_start" // round restart
{
"full_reset" "bool" // is this a full reset of the map
}
"spec_target_updated"
{
}
"achievement_earned"
{
"player" "byte" // entindex of the player
"achievement" "short" // achievement ID
}
}

View File

@ -0,0 +1,4 @@
"chapters"
{
1 "background01"
}

View File

@ -0,0 +1,640 @@
// sample animation script
//
//
// commands:
// Animate <panel name> <variable> <target value> <interpolator> <start time> <duration>
// variables:
// FgColor
// BgColor
// Position
// Size
// Blur (hud panels only)
// TextColor (hud panels only)
// Ammo2Color (hud panels only)
// Alpha (hud weapon selection only)
// SelectionAlpha (hud weapon selection only)
// TextScan (hud weapon selection only)
//
// interpolator:
// Linear
// Accel - starts moving slow, ends fast
// Deaccel - starts moving fast, ends slow
//
// RunEvent <event name> <start time>
// starts another even running at the specified time
//
// StopEvent <event name> <start time>
// stops another event that is current running at the specified time
//
// StopAnimation <panel name> <variable> <start time>
// stops all animations refering to the specified variable in the specified panel
//
// StopPanelAnimations <panel name> <start time>
// stops all active animations operating on the specified panel
//
//
// Useful game console commands:
// cl_Animationinfo <hudelement name> or <panelname>
// displays all the animatable variables for the hud element
//
event LevelInit
{
}
event FadeOutTeamLine
{
// make the display visible
Animate TeamDisplay Alpha "0" Linear 0.0 0.25
}
event FadeInTeamLine
{
// make the display visible
Animate TeamDisplay Alpha "255" Linear 0.0 0.5
}
event OpenWeaponSelectionMenu
{
StopEvent CloseWeaponSelectionMenu 0.0
StopEvent WeaponPickup 0.0
StopEvent FadeOutWeaponSelectionMenu 0.0
// make the display visible
Animate HudWeaponSelection Alpha "128" Linear 0.0 0.1
Animate HudWeaponSelection SelectionAlpha "255" Linear 0.0 0.1
Animate HudWeaponSelection FgColor "FgColor" Linear 0.0 0.1
Animate HudWeaponSelection TextColor "BrightFg" Linear 0.0 0.1
Animate HudWeaponSelection TextScan "1" Linear 0.0 0.1
}
event CloseWeaponSelectionMenu
{
// hide the whole thing near immediately
Animate HudWeaponSelection FgColor "0 0 0 0" Linear 0.0 0.1
Animate HudWeaponSelection TextColor "0 0 0 0" Linear 0.0 0.1
Animate HudWeaponSelection Alpha "0" Linear 0.0 0.1
Animate HudWeaponSelection SelectionAlpha "0" Linear 0.0 0.1
}
event FadeOutWeaponSelectionMenu
{
// slowly hide the whole thing
Animate HudWeaponSelection FgColor "0 0 0 0" Linear 0.0 1.5
Animate HudWeaponSelection TextColor "0 0 0 0" Linear 0.0 1.5
Animate HudWeaponSelection Alpha "0" Linear 0.0 1.5
Animate HudWeaponSelection SelectionAlpha "0" Linear 0.0 1.5
}
event SuitAuxPowerMax
{
// hide the suit power
Animate HudSuitPower BgColor "0 0 0 0" Linear 0.0 0.4
Animate HudSuitPower AuxPowerColor "0 0 0 0" Linear 0.0 0.4
}
event SuitAuxPowerNotMax
{
// show suit power
Animate HudSuitPower BgColor "BgColor" Linear 0.0 0.4
Animate HudSuitPower AuxPowerColor "255 220 0 220" Linear 0.0 0.4
}
event SuitAuxPowerDecreasedBelow25
{
// make color red
Animate HudSuitPower AuxPowerColor "255 0 0 220" Linear 0.0 0.4
}
event SuitAuxPowerIncreasedAbove25
{
// make colr bright
Animate HudSuitPower AuxPowerColor "255 220 0 220" Linear 0.0 0.4
}
event SuitAuxPowerNoItemsActive
{
// resize the aux power to be the smallest size
Animate HudSuitPower Size "102 26" Linear 0.0 0.4
Animate HudSuitPower Position "16 400" Linear 0.0 0.4
// Animate HudSuitPower text_xpos "8" Linear 0.0 0.4
// Animate HudSuitPower text_ypos "15" Linear 0.0 0.4
}
event SuitAuxPowerOneItemActive
{
// resize the aux power to fit one item
Animate HudSuitPower Size "102 36" Linear 0.0 0.4
Animate HudSuitPower Position "16 390" Linear 0.0 0.4
}
event SuitAuxPowerTwoItemsActive
{
// resize the aux power to fit two items
Animate HudSuitPower Size "102 46" Linear 0.0 0.4
Animate HudSuitPower Position "16 380" Linear 0.0 0.4
}
event SuitAuxPowerThreeItemsActive
{
// resize the aux power to fit three items
Animate HudSuitPower Size "102 56" Linear 0.0 0.4
Animate HudSuitPower Position "16 370" Linear 0.0 0.4
}
event SuitFlashlightOn
{
Animate HudFlashlight TextColor "255 220 0 255" Linear 0.0 0.1
Animate HudFlashlight TextColor "255 220 0 160" Deaccel 0.1 0.75
Animate HudFlashlight BgColor "BgColor" Linear 0.0 0.75
}
event SuitFlashlightOff
{
StopEvent SuitFlashlightOn 0.0
Animate HudFlashlight TextColor "0 0 0 0" Linear 0.0 0.4
Animate HudFlashlight BgColor "0 0 0 0" Linear 0.0 0.4
}
event HudTakeDamageFront
{
}
event HudTakeDamageLeft
{
Animate HudDamageIndicator DmgColorLeft "255 88 0 200" Linear 0.0 0.0
Animate HudDamageIndicator DmgColorLeft "255 0 0 200" Linear 0.0 0.3
Animate HudDamageIndicator DmgColorLeft "255 0 0 0" Deaccel 0.3 0.5
}
event HudTakeDamageRight
{
Animate HudDamageIndicator DmgColorRight "255 88 0 200" Linear 0.0 0.0
Animate HudDamageIndicator DmgColorRight "255 0 0 200" Linear 0.0 0.3
Animate HudDamageIndicator DmgColorRight "255 0 0 0" Deaccel 0.3 0.5
}
event HudTakeDamageBehind
{
RunEvent HudTakeDamageLeft 0.0
RunEvent HudTakeDamageRight 0.0
}
event HudTakeDamageHighLeft
{
Animate HudDamageIndicator DmgHighColorLeft "255 88 0 255" Linear 0.0 0.0
Animate HudDamageIndicator DmgHighColorLeft "255 0 0 200" Linear 0.0 0.4
Animate HudDamageIndicator DmgHighColorLeft "255 0 0 0" Deaccel 0.4 2.4
}
event HudTakeDamageHighRight
{
Animate HudDamageIndicator DmgHighColorRight "255 88 0 255" Linear 0.0 0.0
Animate HudDamageIndicator DmgHighColorRight "255 0 0 200" Linear 0.0 0.4
Animate HudDamageIndicator DmgHighColorRight "255 0 0 0" Deaccel 0.4 2.4
}
event HudTakeDamageHigh
{
Animate HudDamageIndicator DmgFullscreenColor "255 88 0 200" Linear 0.0 0.0
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 200" Linear 0.0 0.4
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 0" Deaccel 0.4 2.4
}
event HudTakeDamageDrown
{
RunEvent HudTakeDamageBehind 0.0
}
event HudTakeDamagePoison
{
Animate HudDamageIndicator DmgFullscreenColor "255 236 128 240" Linear 0.0 0.0
Animate HudDamageIndicator DmgFullscreenColor "255 236 128 0" Deaccel 0.4 0.8
}
event HudTakeDamageBurn
{
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 200" Linear 0.0 0.0
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 0" Deaccel 0.2 0.4
}
event HudTakeDamageRadiation
{
Animate HudDamageIndicator DmgFullscreenColor "255 255 255 128" Deaccel 0.0 0.1
Animate HudDamageIndicator DmgFullscreenColor "255 255 255 0" Deaccel 0.1 0.4
RunEvent HudTakeDamageBehind 0.0
}
event HudPlayerDeath
{
StopEvent HealthLoop 0.0
StopEvent HealthPulse 0.0
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 8" Deaccel 0.1 0.2
Animate HudDamageIndicator DmgFullscreenColor "255 0 0 48" Deaccel 0.3 4.0
}
event HealthIncreasedAbove20
{
StopEvent HealthLoop 0.0
StopEvent HealthPulse 0.0
StopEvent HealthLow 0.0
Animate HudHealth BgColor "BgColor" Linear 0.0 0.0
Animate HudHealth TextColor "FgColor" Linear 0.0 0.04
Animate HudHealth FgColor "FgColor" Linear 0.0 0.03
Animate HudHealth Blur "3" Linear 0.0 0.1
Animate HudHealth Blur "0" Deaccel 0.1 2.0
}
event HealthIncreasedBelow20
{
Animate HudHealth FgColor "BrightFg" Linear 0.0 0.25
Animate HudHealth FgColor "FgColor" Linear 0.3 0.75
Animate HudHealth Blur "3" Linear 0.0 0.1
Animate HudHealth Blur "0" Deaccel 0.1 2.0
}
event SuitPowerIncreasedAbove20
{
StopEvent SuitLoop 0.0
StopEvent SuitPulse 0.0
StopEvent SuitPowerZero 0.0
Animate HudSuit Alpha "255" Linear 0.0 0.0
Animate HudSuit BgColor "BgColor" Linear 0.0 0.0
Animate HudSuit TextColor "FgColor" Linear 0.0 0.05
Animate HudSuit FgColor "FgColor" Linear 0.0 0.05
Animate HudSuit Blur "3" Linear 0.0 0.1
Animate HudSuit Blur "0" Deaccel 0.1 2.0
}
event SuitPowerIncreasedBelow20
{
StopEvent SuitPowerZero 0.0
Animate HudSuit Alpha "255" Linear 0.0 0.0
Animate HudSuit FgColor "BrightFg" Linear 0.0 0.25
Animate HudSuit FgColor "FgColor" Linear 0.3 0.75
Animate HudSuit Blur "3" Linear 0.0 0.1
Animate HudSuit Blur "0" Deaccel 0.1 2.0
}
event SuitPowerZero
{
StopEvent SuitLoop 0.0
StopEvent SuitPulse 0.0
StopEvent SuitArmorLow 0.0
StopEvent SuitDamageTaken 0.0
Animate HudSuit Alpha "0" Linear 0.0 0.4
}
event TestMovement
{
Animate HudHealth Position "256 120" Linear 0.0 2.0
Animate HudHealth Size "128 24" Linear 0.0 1.5
}
event HealthDamageTaken
{
Animate HudHealth FgColor "BrightFg" Linear 0.0 0.25
Animate HudHealth FgColor "FgColor" Linear 0.3 0.75
Animate HudHealth Blur "3" Linear 0.0 0.1
Animate HudHealth Blur "0" Deaccel 0.1 2.0
Animate HudHealth TextColor "BrightFg" Linear 0.0 0.1
Animate HudHealth TextColor "FgColor" Deaccel 0.1 1.2
}
event SuitDamageTaken
{
Animate HudSuit FgColor "BrightFg" Linear 0.0 0.25
Animate HudSuit FgColor "FgColor" Linear 0.3 0.75
Animate HudSuit Blur "3" Linear 0.0 0.1
Animate HudSuit Blur "0" Deaccel 0.1 2.0
Animate HudSuit TextColor "BrightFg" Linear 0.0 0.1
Animate HudSuit TextColor "FgColor" Deaccel 0.1 1.2
}
// health has been damaged to below 20%
event HealthLow
{
StopEvent HealthDamageTaken 0.0
StopEvent HealthPulse 0.0
StopEvent HealthLoop 0.0
Animate HudHealth BgColor "DamagedBg" Linear 0.0 0.1
Animate HudHealth BgColor "BgColor" Deaccel 0.1 1.75
Animate HudHealth FgColor "BrightFg" Linear 0.0 0.2
Animate HudHealth FgColor "DamagedFg" Linear 0.2 1.2
Animate HudHealth TextColor "BrightFg" Linear 0.0 0.1
Animate HudHealth TextColor "DamagedFg" Linear 0.1 1.2
Animate HudHealth Blur "5" Linear 0.0 0.1
Animate HudHealth Blur "3" Deaccel 0.1 0.9
RunEvent HealthPulse 1.0
}
event HealthPulse
{
Animate HudHealth Blur "5" Linear 0.0 0.1
Animate HudHealth Blur "2" Deaccel 0.1 0.8
Animate HudHealth TextColor "BrightDamagedFg" Linear 0.0 0.1
Animate HudHealth TextColor "DamagedFg" Deaccel 0.1 0.8
Animate HudHealth BgColor "100 0 0 80" Linear 0.0 0.1
Animate HudHealth BgColor "BgColor" Deaccel 0.1 0.8
RunEvent HealthLoop 0.8
}
// call to loop HealthPulse
event HealthLoop
{
RunEvent HealthPulse 0.0
}
// suit armor has been damaged to below 20%
event SuitArmorLow
{
StopEvent SuitDamageTaken 0.0
StopEvent SuitPulse 0.0
StopEvent SuitLoop 0.0
// removing this effect -- matching it to the event for normal suit damage
// so, there will be no special indication (redness, flashing)
// in the hud that the suit armor is low
// Animate HudSuit BgColor "DamagedBg" Linear 0.0 0.1
// Animate HudSuit BgColor "BgColor" Deaccel 0.1 1.75
Animate HudSuit FgColor "BrightFg" Linear 0.0 0.25
Animate HudSuit FgColor "FgColor" Linear 0.3 0.75
Animate HudSuit Blur "3" Linear 0.0 0.1
Animate HudSuit Blur "0" Deaccel 0.1 2.0
Animate HudSuit TextColor "BrightFg" Linear 0.0 0.1
Animate HudSuit TextColor "FgColor" Deaccel 0.1 1.2
// RunEvent SuitPulse 1.0
}
event SuitPulse
// this even no longer gets called
{
Animate HudSuit Blur "5" Linear 0.0 0.1
Animate HudSuit Blur "2" Deaccel 0.1 0.8
Animate HudSuit TextColor "BrightDamagedFg" Linear 0.0 0.1
Animate HudSuit TextColor "DamagedFg" Deaccel 0.1 0.8
Animate HudSuit BgColor "100 0 0 80" Linear 0.0 0.1
Animate HudSuit BgColor "BgColor" Deaccel 0.1 0.8
RunEvent SuitLoop 0.8
}
event SuitLoop
{
// this event no longer gets called
RunEvent SuitPulse 0.0
}
// ammo has been picked up
event AmmoIncreased
{
Animate HudAmmo FgColor "BrightFg" Linear 0.0 0.15
Animate HudAmmo FgColor "FgColor" Deaccel 0.15 1.5
Animate HudAmmo Blur "5" Linear 0.0 0.0
Animate HudAmmo Blur "0" Accel 0.01 1.5
}
// ammo has been decreased, but there is still some remaining
event AmmoDecreased
{
StopEvent AmmoIncreased 0.0
Animate HudAmmo Blur "7" Linear 0.0 0.0
Animate HudAmmo Blur "0" Deaccel 0.1 1.5
Animate HudAmmo TextColor "BrightFg" Linear 0.0 0.1
Animate HudAmmo TextColor "FgColor" Deaccel 0.1 0.75
}
// primary ammo is zero
event AmmoEmpty
{
Animate Hudammo FgColor "BrightDamagedFg" Linear 0.0 0.2
Animate Hudammo FgColor "DamagedFg" Accel 0.2 1.2
}
// ammo2 is the total ammo for a weapon that uses clip ammo
event Ammo2Increased
{
Animate Hudammo ammo2color "BrightFg" Linear 0.0 0.2
Animate Hudammo ammo2color "FgColor" Accel 0.2 1.2
}
// total ammo has been decreased, but there is still some remaining
event Ammo2Decreased
{
Animate Hudammo ammo2color "BrightFg" Linear 0.0 0.2
Animate Hudammo ammo2color "FgColor" Accel 0.2 1.2
}
// total ammo is zero
event Ammo2Empty
{
Animate Hudammo ammo2color "BrightDamagedFg" Linear 0.0 0.2
Animate Hudammo ammo2color "DamagedFg" Accel 0.2 1.2
}
event AmmoSecondaryIncreased
{
Animate HudAmmoSecondary FgColor "BrightFg" Linear 0.0 0.15
Animate HudAmmoSecondary FgColor "FgColor" Deaccel 0.15 1.5
Animate HudAmmoSecondary Blur "5" Linear 0.0 0.0
Animate HudAmmoSecondary Blur "0" Accel 0.01 1.5
}
event AmmoSecondaryDecreased
{
StopEvent AmmoSecondaryIncreased 0.0
Animate HudAmmoSecondary Blur "7" Linear 0.0 0.0
Animate HudAmmoSecondary Blur "0" Deaccel 0.1 1.5
Animate HudAmmoSecondary TextColor "BrightFg" Linear 0.0 0.1
Animate HudAmmoSecondary TextColor "FgColor" Deaccel 0.1 0.75
}
event AmmoSecondaryEmpty
{
Animate HudAmmoSecondary FgColor "BrightDamagedFg" Linear 0.0 0.2
Animate HudAmmoSecondary FgColor "DamagedFg" Accel 0.2 1.2
Animate HudAmmoSecondary Blur "7" Linear 0.0 0.0
Animate HudAmmoSecondary Blur "0" Deaccel 0.1 1.5
}
// current weapon has been changed
event WeaponChanged
{
Animate HudAmmo BgColor "250 220 0 80" Linear 0.0 0.1
Animate HudAmmo BgColor "BgColor" Deaccel 0.1 1.0
Animate HudAmmo FgColor "BrightFg" Linear 0.0 0.1
Animate HudAmmo FgColor "FgColor" Linear 0.2 1.5
}
// ran if we just changed to a weapon that needs clip ammo
event WeaponUsesClips
{
Animate HudAmmo Position "r150 432" Deaccel 0.0 0.4
Animate HudAmmo Size "132 36" Deaccel 0.0 0.4
}
// ran if we just changed to a weapon that does not use clip ammo
event WeaponDoesNotUseClips
{
Animate HudAmmo Position "r118 432" Deaccel 0.0 0.4
Animate HudAmmo Size "100 36" Deaccel 0.0 0.4
}
event WeaponUsesSecondaryAmmo
{
StopAnimation HudAmmo Position 0.0
StopAnimation HudAmmo Size 0.0
StopPanelAnimations HudAmmoSecondary 0.0
Animate HudAmmoSecondary BgColor "250 220 0 60" Linear 0.0 0.1
Animate HudAmmoSecondary BgColor "BgColor" Deaccel 0.1 1.0
Animate HudAmmoSecondary FgColor "BrightFg" Linear 0.0 0.1
Animate HudAmmoSecondary FgColor "FgColor" Linear 0.2 1.5
Animate HudAmmoSecondary Alpha 255 Linear 0.0 0.1
Animate HudAmmo Position "r222 432" Deaccel 0.0 0.5
Animate HudAmmo Size "132 36" Deaccel 0.0 0.4
}
event WeaponDoesNotUseSecondaryAmmo
{
StopPanelAnimations HudAmmoSecondary 0.0
Animate HudAmmoSecondary FgColor "0 0 0 0" Linear 0.0 0.4
Animate HudAmmoSecondary BgColor "0 0 0 0" Linear 0.0 0.4
Animate HudAmmoSecondary Alpha 0 Linear 0.0 0.1
}
event CraneMagnetFlash
{
Animate HudCraneMagnet TextColor "255 220 0 255" Linear 0.0 0.1
Animate HudCraneMagnet TextColor "255 220 0 160" Deaccel 0.1 0.3
Animate HudCraneMagnet TextColor "255 170 0 220" Deaccel 0.4 0.3
Animate HudCraneMagnet TextColor "255 220 0 255" Linear 0.8 0.2
}
event HintMessageShow
{
// show the hints
Animate HudHintDisplay Alpha 255 Linear 0.0 0.5
// flash text
Animate HudHintDisplay FgColor "FgColor" Linear 0.0 0.01
Animate HudHintDisplay FgColor "255 220 0 255" Linear 0.5 0.2
Animate HudHintDisplay FgColor "FgColor" Linear 0.7 0.2
Animate HudHintDisplay FgColor "255 220 0 255" Linear 1.5 0.2
Animate HudHintDisplay FgColor "FgColor" Linear 1.7 0.2
// hide the panel after a while
Animate HudHintDisplay Alpha 0 Linear 12.0 1.0
}
event HintMessageHide
{
Animate HudHintDisplay Alpha 0 Linear 0.0 0.5
}
event SquadMemberAdded
{
StopEvent SquadMemberDied 0.0
StopEvent SquadMemberLeft 0.0
// add in the squad member, brighter then normal color
Animate HudSquadStatus LastMemberColor "255 220 0 255" Linear 0.0 0.3
Animate HudSquadStatus LastMemberColor "255 220 0 160" Linear 0.3 0.3
}
event SquadMemberLeft
{
StopEvent SquadMemberDied 0.0
StopEvent SquadMemberAdded 0.0
// fade out the icon
Animate HudSquadStatus LastMemberColor "255 220 0 0" Linear 0.0 0.5
}
event SquadMemberDied
{
StopEvent SquadMemberAdded 0.0
StopEvent SquadMemberLeft 0.0
// flash red, hold, then disappear
Animate HudSquadStatus LastMemberColor "255 0 0 255" Linear 0.0 0.5
Animate HudSquadStatus LastMemberColor "255 0 0 0" Linear 2.0 2.0
}
event SquadMembersFollowing
{
StopEvent SquadMembersStationed 0.0
Animate HudSquadStatus SquadTextColor "255 220 0 255" Linear 0.0 0.2
Animate HudSquadStatus SquadTextColor "255 220 0 160" Linear 0.2 0.4
}
event SquadMembersStationed
{
StopEvent SquadMembersFollowing 0.0
Animate HudSquadStatus SquadTextColor "255 220 0 160" Linear 0.5 0.5
}
event PoisonDamageTaken
{
Animate HudPoisonDamageIndicator Alpha 255 Linear 0.0 1.0
RunEvent PoisonLoop 0.0
}
event PoisonDamageCured
{
StopEvent PoisonDamageTaken 0.0
StopEvent PoisonLoop 0.0
StopEvent PoisonPulse 0.0
Animate HudPoisonDamageIndicator Alpha 0 Linear 0.0 1.0
}
event PoisonPulse
{
Animate HudPoisonDamageIndicator TextColor "BrightFg" Linear 0.0 0.1
Animate HudPoisonDamageIndicator TextColor "FgColor" Deaccel 0.1 0.8
Animate HudPoisonDamageIndicator BgColor "100 0 0 80" Linear 0.0 0.1
Animate HudPoisonDamageIndicator BgColor "BgColor" Deaccel 0.1 0.8
RunEvent PoisonLoop 0.8
}
// call to loop PoisonLoop
event PoisonLoop
{
RunEvent PoisonPulse 0.0
}

View File

@ -0,0 +1,505 @@
"Resource/HudLayout.res"
{
HudHealth
{
"fieldName" "HudHealth"
"xpos" "16"
"ypos" "432"
"wide" "102"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "20"
"digit_xpos" "50"
"digit_ypos" "2"
}
TargetID
{
"fieldName" "TargetID"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
TeamDisplay
{
"fieldName" "TeamDisplay"
"visible" "0"
"enabled" "1"
"xpos" "16"
"ypos" "415"
"wide" "200"
"tall" "60"
"text_xpos" "8"
"text_ypos" "4"
}
HudVoiceSelfStatus
{
"fieldName" "HudVoiceSelfStatus"
"visible" "1"
"enabled" "1"
"xpos" "r43"
"ypos" "355"
"wide" "24"
"tall" "24"
}
HudVoiceStatus
{
"fieldName" "HudVoiceStatus"
"visible" "1"
"enabled" "1"
"xpos" "r145"
"ypos" "0"
"wide" "145"
"tall" "400"
"item_wide" "135"
"show_avatar" "0"
"show_dead_icon" "1"
"dead_xpos" "1"
"dead_ypos" "0"
"dead_wide" "16"
"dead_tall" "16"
"show_voice_icon" "1"
"icon_ypos" "0"
"icon_xpos" "15"
"icon_tall" "16"
"icon_wide" "16"
"text_xpos" "33"
}
HudSuit
{
"fieldName" "HudSuit"
"xpos" "140"
"ypos" "432"
"wide" "108"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "20"
"digit_xpos" "50"
"digit_ypos" "2"
}
HudAmmo
{
"fieldName" "HudAmmo"
"xpos" "r150"
"ypos" "432"
"wide" "136"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "20"
"digit_xpos" "44"
"digit_ypos" "2"
"digit2_xpos" "98"
"digit2_ypos" "16"
}
HudAmmoSecondary
{
"fieldName" "HudAmmoSecondary"
"xpos" "r76"
"ypos" "432"
"wide" "60"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"digit_xpos" "10"
"digit_ypos" "2"
}
HudSuitPower
{
"fieldName" "HudSuitPower"
"visible" "1"
"enabled" "1"
"xpos" "16"
"ypos" "396"
"wide" "102"
"tall" "26"
"AuxPowerLowColor" "255 0 0 220"
"AuxPowerHighColor" "255 220 0 220"
"AuxPowerDisabledAlpha" "70"
"BarInsetX" "8"
"BarInsetY" "15"
"BarWidth" "92"
"BarHeight" "4"
"BarChunkWidth" "6"
"BarChunkGap" "3"
"text_xpos" "8"
"text_ypos" "4"
"text2_xpos" "8"
"text2_ypos" "22"
"text2_gap" "10"
"PaintBackgroundType" "2"
}
HudFlashlight
{
"fieldName" "HudFlashlight"
"visible" "0"
"enabled" "1"
"xpos" "16"
"ypos" "370"
"wide" "102"
"tall" "20"
"text_xpos" "8"
"text_ypos" "6"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudDamageIndicator
{
"fieldName" "HudDamageIndicator"
"visible" "1"
"enabled" "1"
"DmgColorLeft" "255 0 0 0"
"DmgColorRight" "255 0 0 0"
"dmg_xpos" "30"
"dmg_ypos" "100"
"dmg_wide" "36"
"dmg_tall1" "240"
"dmg_tall2" "200"
}
HudZoom
{
"fieldName" "HudZoom"
"visible" "1"
"enabled" "1"
"Circle1Radius" "66"
"Circle2Radius" "74"
"DashGap" "16"
"DashHeight" "4"
"BorderThickness" "88"
}
HudWeaponSelection
{
"fieldName" "HudWeaponSelection"
"ypos" "16"
"visible" "1"
"enabled" "1"
"SmallBoxSize" "32"
"LargeBoxWide" "112"
"LargeBoxTall" "80"
"BoxGap" "8"
"SelectionNumberXPos" "4"
"SelectionNumberYPos" "4"
"SelectionGrowTime" "0.4"
"TextYPos" "64"
}
HudCrosshair
{
"fieldName" "HudCrosshair"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudDeathNotice
{
"fieldName" "HudDeathNotice"
"visible" "1"
"enabled" "1"
"xpos" "r640"
"ypos" "12"
"wide" "628"
"tall" "468"
"MaxDeathNotices" "4"
"LineHeight" "22"
"RightJustify" "1" // If 1, draw notices from the right
"TextFont" "Default"
}
HudVehicle
{
"fieldName" "HudVehicle"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
ScorePanel
{
"fieldName" "ScorePanel"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudTrain
{
"fieldName" "HudTrain"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudMOTD
{
"fieldName" "HudMOTD"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudMessage
{
"fieldName" "HudMessage"
"visible" "1"
"enabled" "1"
"wide" "f0"
"tall" "480"
}
HudMenu
{
"fieldName" "HudMenu"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudCloseCaption
{
"fieldName" "HudCloseCaption"
"visible" "1"
"enabled" "1"
"xpos" "c-250"
"ypos" "276"
"wide" "500"
"tall" "136"
"BgAlpha" "128"
"GrowTime" "0.25"
"ItemHiddenTime" "0.2" // Nearly same as grow time so that the item doesn't start to show until growth is finished
"ItemFadeInTime" "0.15" // Once ItemHiddenTime is finished, takes this much longer to fade in
"ItemFadeOutTime" "0.3"
}
HudHistoryResource
{
"fieldName" "HudHistoryResource"
"visible" "1"
"enabled" "1"
"xpos" "r252"
"ypos" "40"
"wide" "248"
"tall" "320"
"history_gap" "56"
"icon_inset" "28"
"text_inset" "26"
"NumberFont" "HudNumbersSmall"
}
HudGeiger
{
"fieldName" "HudGeiger"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HUDQuickInfo
{
"fieldName" "HUDQuickInfo"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudWeapon
{
"fieldName" "HudWeapon"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudAnimationInfo
{
"fieldName" "HudAnimationInfo"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudPredictionDump
{
"fieldName" "HudPredictionDump"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudHintDisplay
{
"fieldName" "HudHintDisplay"
"visible" "0"
"enabled" "1"
"xpos" "r120"
"ypos" "r340"
"wide" "100"
"tall" "200"
"text_xpos" "8"
"text_ypos" "8"
"text_xgap" "8"
"text_ygap" "8"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudSquadStatus
{
"fieldName" "HudSquadStatus"
"visible" "1"
"enabled" "1"
"xpos" "r120"
"ypos" "380"
"wide" "104"
"tall" "46"
"text_xpos" "8"
"text_ypos" "34"
"SquadIconColor" "255 220 0 160"
"IconInsetX" "8"
"IconInsetY" "0"
"IconGap" "24"
"PaintBackgroundType" "2"
}
HudPoisonDamageIndicator
{
"fieldName" "HudPoisonDamageIndicator"
"visible" "0"
"enabled" "1"
"xpos" "16"
"ypos" "346"
"wide" "136"
"tall" "38"
"text_xpos" "8"
"text_ypos" "8"
"text_ygap" "14"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudCredits
{
"fieldName" "HudCredits"
"TextFont" "Default"
"visible" "1"
"xpos" "0"
"ypos" "0"
"wide" "640"
"tall" "480"
"TextColor" "255 255 255 192"
}
"HudChat"
{
"ControlName" "EditablePanel"
"fieldName" "HudChat"
"visible" "1"
"enabled" "1"
"xpos" "10"
"ypos" "275"
"wide" "320"
"tall" "120"
"PaintBackgroundType" "2"
}
AchievementNotificationPanel
{
"fieldName" "AchievementNotificationPanel"
"visible" "0"
"enabled" "0"
}
HudHintKeyDisplay
{
"fieldName" "HudHintKeyDisplay"
"visible" "0"
"enabled" "0"
}
HUDAutoAim
{
"fieldName" "HUDAutoAim"
"visible" "0"
"enabled" "0"
}
HudHDRDemo
{
"fieldName" "HudHDRDemo"
"visible" "0"
"enabled" "0"
}
HudCommentary
{
"fieldName" "HudCommentary"
"visible" "0"
"enabled" "0"
}
"CHudVote"
{
"fieldName" "CHudVote"
"visible" "0"
"enabled" "0"
}
}

View File

@ -0,0 +1,594 @@
// Tracker scheme resource file
Scheme
{
// default settings for all panels
BaseSettings
{
"sc_primary1" "102 102 153 255"
"sc_primary2" "192 192 172 128"
"sc_primary3" "204 204 255 255"
"sc_secondary1" "63 63 63 255"
"sc_secondary2" "153 153 153 255"
"sc_secondary3" "204 204 204 255"
"sc_user" "0 0 0 255"
"FgColor" "220 220 255 255"
"BgColor" "0 0 0 255"
"DisabledFgColor1" "80 80 80 255"
"DisabledFgColor2" "40 40 40 255" // set this to the BgColor if you don't want it to draw
"TitleBarFgColor" "0 0 0 255"
"TitleBarDisabledFgColor" "150 150 150 255"
"TitleBarBgColor" "180 120 0 255"
"TitleBarDisabledBgColor" "99 99 99 255"
"TitleBarIcon" "icon_tracker"
"TitleBarDisabledIcon" "icon_tracker_disabled"
"TitleButtonFgColor" "97 64 0 255"
"TitleButtonBgColor" "197 131 0 255"
"TitleButtonDisabledFgColor" "0 0 0 255"
"TitleButtonDisabledBgColor" "99 99 99 255"
"TextCursorColor" "0 0 0 255"
Menu
{
"FgColor" "150 150 150 255"
"BgColor" "70 70 70 255"
"ArmedFgColor" "255 183 0 255"
"ArmedBgColor" "134 91 19 255"
"DividerColor" "56 56 56 255"
"TextInset" "6" //!! not working yet
}
ScrollBar
{
"BgColor" "80 80 80 255"
"SliderBgColor" "0 0 00 0"
}
// text edit windows
"WindowFgColor" "220 220 255 255"
"WindowBgColor" "0 0 0 64"
"WindowDisabledFgColor" "150 150 150 255"
"WindowDisabledBgColor" "80 80 80 255"
// App-specific stuff
// status selection
"StatusSelectFgColor" "255 255 255 255"
"StatusSelectFgColor2" "121 121 121 255"
// buddy buttons
BuddyButton
{
"FgColor1" "255 183 0 255"
"FgColor2" "157 105 0 255"
"ArmedFgColor1" "255 183 0 255"
"ArmedFgColor2" "255 183 0 255"
"ArmedBgColor" "134 91 19 255"
}
"SectionTextColor" "121 121 121 255"
"SectionDividerColor" "56 56 56 255"
// TF2 HUD
"HudStatusBgColor" "0 0 0 64"
"HudStatusSelectedBgColor "0 0 0 192"
}
// describes all the fonts
Fonts
{
"Default"
{
"name" "Tahoma"
"tall" "16"
"weight" "500"
}
"DefaultSmall"
{
"name" "Tahoma"
"tall" "12"
"weight" "0"
}
// this is the symbol font
"Marlett"
{
"name" "Marlett"
"tall" "14"
"weight" "0"
}
}
// describes all the images used
Images
{
"icon_tracker"
{
"filename" "resource/icon_tracker"
"width" "16"
"height" "16"
}
"icon_tracker_disabled"
{
"filename" "resource/icon_tracker_disabled"
"width" "16"
"height" "16"
}
"icon_tray"
{
"filename" "resource/icon_tracker"
"width" "16"
"height" "16"
}
"icon_away"
{
"filename" "resource/icon_away"
"width" "16"
"height" "16"
}
"icon_busy"
{
"filename" "resource/icon_busy"
"width" "16"
"height" "16"
}
"icon_online"
{
"filename" "resource/icon_blank"
"width" "16"
"height" "16"
}
"icon_offline"
{
"filename" "resource/icon_blank"
"width" "16"
"height" "16"
}
"icon_connecting"
{
"filename" "resource/icon_blank"
"width" "16"
"height" "16"
}
"icon_message"
{
"filename" "resource/icon_message"
"width" "16"
"height" "16"
}
"icon_blank"
{
"filename" "resource/icon_blank"
"width" "16"
"height" "16"
}
}
// describes all the border types
Borders
{
BaseBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "43 43 43 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "99 99 99 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "43 43 43 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "99 99 99 255"
"offset" "0 0"
}
}
}
TitleButtonBorder
{
"inset" "2 2 1 1"
Left
{
"1"
{
"color" "255 170 0 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "97 64 0 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "255 170 0 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "97 64 0 255"
"offset" "0 0"
}
}
}
TitleButtonDisabledBorder
{
"inset" "2 2 1 1"
Left
{
"1"
{
"color" "79 79 79 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "0 0 0 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "79 79 79 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
}
}
TitleButtonDepressedBorder
{
"inset" "3 3 1 1"
Left
{
"1"
{
"color" "97 64 0 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "255 170 0 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "97 64 0 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "255 170 0 255"
"offset" "0 0"
}
}
}
ScrollBarButtonBorder
{
"inset" "2 2 1 1"
Left
{
"1"
{
"color" "79 79 79 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "0 0 0 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "79 79 79 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
}
}
ButtonBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "99 99 99 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "43 43 43 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "99 99 99 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "43 43 43 255"
"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"
Left
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
"2"
{
"color" "99 99 99 255"
"offset" "0 1"
}
}
Top
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
"2"
{
"color" "99 99 99 255"
"offset" "1 0"
}
}
Right
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
"2"
{
"color" "43 43 43 255"
"offset" "1 0"
}
}
Bottom
{
"1"
{
"color" "0 0 0 255"
"offset" "0 0"
}
"2"
{
"color" "43 43 43 255"
"offset" "0 0"
}
}
}
ButtonDepressedBorder
{
"inset" "2 1 1 1"
Left
{
"1"
{
"color" "43 43 43 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "99 99 99 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "43 43 43 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "99 99 99 255"
"offset" "0 0"
}
}
}
ComboBoxBorder
{
"inset" "0 0 1 1"
Left
{
"1"
{
"color" "43 43 43 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "99 99 99 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "43 43 43 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "99 99 99 255"
"offset" "0 0"
}
}
}
MenuBorder
{
"inset" "1 1 1 1"
Left
{
"1"
{
"color" "99 99 99 255"
"offset" "0 1"
}
}
Right
{
"1"
{
"color" "43 43 43 255"
"offset" "1 0"
}
}
Top
{
"1"
{
"color" "99 99 99 255"
"offset" "0 0"
}
}
Bottom
{
"1"
{
"color" "43 43 43 255"
"offset" "0 0"
}
}
}
}
}

View File

@ -0,0 +1,2 @@
// Game specific definitions
"$game" "HL2MP"

View File

@ -0,0 +1,332 @@
"HL2Player.SprintNoPower"
{
"channel" "CHAN_VOICE"
"volume" "0.8"
"soundlevel" "SNDLVL_60dB"
"wave" "player/suit_denydevice.wav"
}
"HL2Player.SprintStart"
{
"channel" "CHAN_VOICE"
"volume" "0.9"
"soundlevel" "SNDLVL_60dB"
"wave" "player/suit_sprint.wav"
}
"HL2Player.FlashLightOn"
{
"channel" "CHAN_WEAPON"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"pitch" "PITCH_NORM"
"wave" "items/flashlight1.wav"
}
"HL2Player.FlashLightOff"
{
"channel" "CHAN_WEAPON"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"pitch" "PITCH_NORM"
"wave" "items/flashlight1.wav"
}
"HL2Player.PickupWeapon"
{
"channel" "CHAN_ITEM"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"wave" "items/ammo_pickup.wav"
}
"HL2Player.TrainUse"
{
"channel" "CHAN_ITEM"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"wave" "plats/train_use1.wav"
}
"HL2Player.Use"
{
"channel" "CHAN_ITEM"
"volume" "0.4"
"soundlevel" "SNDLVL_75dB"
"wave" "common/wpn_select.wav"
}
"HL2Player.UseNPC"
{
"channel" "CHAN_ITEM"
"volume" "0.4"
"soundlevel" "SNDLVL_75dB"
"wave" "common/wpn_select.wav"
}
"HL2Player.UseDeny"
{
"channel" "CHAN_ITEM"
"volume" "0.4"
"soundlevel" "SNDLVL_75dB"
"wave" "common/wpn_denyselect.wav"
}
"HL2Player.BurnPain"
{
"channel" "CHAN_VOICE"
"volume" "0.5"
"soundlevel" "SNDLVL_75dB"
"rndwave"
{
"wave" "player/pl_burnpain1.wav"
"wave" "player/pl_burnpain2.wav"
"wave" "player/pl_burnpain3.wav"
}
}
// SHARED player sounds
"Player.Death"
{
"channel" "CHAN_VOICE"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"rndwave"
{
"wave" "player/pl_pain5.wav"
"wave" "player/pl_pain6.wav"
"wave" "player/pl_pain7.wav"
}
}
"Player.PlasmaDamage"
{
"channel" "CHAN_BODY"
"volume" "0.5"
"soundlevel" "SNDLVL_75dB"
"wave" "player/general/flesh_burn.wav"
}
"Player.SonicDamage"
{
"channel" "CHAN_BODY"
"volume" "0.7"
"soundlevel" "SNDLVL_75dB"
"rndwave"
{
"wave" "player/pl_pain5.wav"
"wave" "player/pl_pain6.wav"
"wave" "player/pl_pain7.wav"
}
}
"Player.DrownStart"
{
"channel" "CHAN_VOICE"
"volume" "1.0"
"soundlevel" "SNDLVL_75dB"
"pitch" "90,110"
"wave" "player/pl_drown1.wav"
}
"Player.Swim"
{
"channel" "CHAN_STATIC"
"volume" "0.5"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_NORM"
"rndwave"
{
"wave" "player/footsteps/wade5.wav"
"wave" "player/footsteps/wade6.wav"
"wave" "player/footsteps/wade7.wav"
"wave" "player/footsteps/wade8.wav"
}
}
"Player.FallDamage"
{
"channel" "CHAN_AUTO"
"volume" "0.75"
"pitch" "90,110"
"soundlevel" "SNDLVL_NORM"
"rndwave"
{
"wave" "player/pl_fallpain1.wav"
"wave" "player/pl_fallpain3.wav"
}
}
"Player.FallGib"
{
"channel" "CHAN_ITEM"
"volume" "0.75"
"pitch" "90,110"
"soundlevel" "SNDLVL_NORM"
"rndwave"
{
"wave" "physics/body/body_medium_break2.wav"
}
}
"Player.DrownContinue"
{
"channel" "CHAN_VOICE"
"volume" "1.0"
"soundlevel" "SNDLVL_75dB"
"pitch" "90,110"
"rndwave"
{
"wave" "player/pl_drown1.wav"
"wave" "player/pl_drown2.wav"
"wave" "player/pl_drown3.wav"
}
}
"Player.Wade"
{
"channel" "CHAN_BODY"
"volume" "0.25"
"soundlevel" "SNDLVL_75dB"
"rndwave"
{
"wave" "player/footsteps/wade5.wav"
"wave" "player/footsteps/wade6.wav"
"wave" "player/footsteps/wade7.wav"
"wave" "player/footsteps/wade8.wav"
}
}
"Player.AmbientUnderWater"
{
"channel" "CHAN_STATIC"
"volume" "0.22"
"soundlevel" "SNDLVL_75dB"
"wave" "ambient/water/underwater.wav"
}
"Player.UseTrain"
{
"channel" "CHAN_ITEM"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"wave" "plats/train_use1.wav"
}
"Player.UseDeny"
{
"channel" "CHAN_ITEM"
"volume" "0.4"
"soundlevel" "SNDLVL_75dB"
"wave" "common/wpn_select.wav"
}
"Player.PickupWeapon"
{
"channel" "CHAN_ITEM"
"volume" "0.8"
"soundlevel" "SNDLVL_75dB"
"pitch" "95,105"
"wave" "items/ammo_pickup.wav"
}
"Geiger.BeepLow"
{
"channel" "CHAN_STATIC"
"soundlevel" "SNDLVL_NONE"
"pitch" "PITCH_NORM"
"rndwave"
{
"wave" "player/geiger1.wav"
"wave" "player/geiger2.wav"
}
}
"Geiger.BeepHigh"
{
"channel" "CHAN_STATIC"
"soundlevel" "SNDLVL_NONE"
"pitch" "PITCH_NORM"
"rndwave"
{
"wave" "player/geiger2.wav"
"wave" "player/geiger3.wav"
}
}
//HL2MP
"NPC_MetroPolice.Die"
{
"channel" "CHAN_VOICE"
"volume" "0.500"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_80dB"
"rndwave"
{
"wave" "npc/metropolice/die1.wav"
"wave" "npc/metropolice/die2.wav"
"wave" "npc/metropolice/die3.wav"
"wave" "npc/metropolice/die4.wav"
}
}
"NPC_CombineS.Die"
{
"channel" "CHAN_VOICE"
"volume" "0.500"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_80dB"
"rndwave"
{
"wave" "npc/combine_soldier/die1.wav"
"wave" "npc/combine_soldier/die2.wav"
"wave" "npc/combine_soldier/die3.wav"
}
}
"NPC_Citizen.die"
{
"channel" "CHAN_VOICE"
"volume" "VOL_NORM"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_NORM"
"rndwave"
{
"wave" "*vo/npc/$gender01/pain07.wav"
"wave" "*vo/npc/$gender01/pain08.wav"
"wave" "*vo/npc/$gender01/pain09.wav"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
"blank" "=========================="
"blank" "#Valve_Movement_Title"
"blank" "=========================="
"+forward" "#Valve_Move_Forward"
"+back" "#Valve_Move_Back"
"+moveleft" "#Valve_Move_Left"
"+moveright" "#Valve_Move_Right"
"+speed" "#Valve_Sprint"
"+jump" "#Valve_Jump"
"+duck" "#Valve_Duck"
"blank" "=========================="
"blank" "#Valve_Combat_Title"
"blank" "=========================="
"+attack" "#Valve_Primary_Attack"
"+attack2" "#Valve_Secondary_Attack"
"+reload" "#Valve_Reload_Weapon"
"+use" "#Valve_Use_Items"
"phys_swap" "#Valve_Gravity_Gun"
"impulse 100" "#Valve_Flashlight"
"+zoom" "#Valve_Suit_Zoom"
"slot1" "#Valve_Weapon_Category_1"
"slot2" "#Valve_Weapon_Category_2"
"slot3" "#Valve_Weapon_Category_3"
"slot4" "#Valve_Weapon_Category_4"
"slot5" "#Valve_Weapon_Category_5"
"slot6" "#Valve_Weapon_Category_6"
"invnext" "#Valve_Next_Weapon"
"invprev" "#Valve_Previous_Weapon"
"lastinv" "#Valve_Last_Weapon_Used"
"use weapon_crowbar;use weapon_stunstick" "#HL2_Crowbar_Menu"
"use weapon_physcannon" "#HL2_GravityGun_Menu"
"use weapon_pistol" "#HL2_Pistol_Menu"
"use weapon_357" "#HL2_357Handgun_Menu"
"use weapon_smg1" "#HL2_SMG1_Menu"
"use weapon_ar2" "#HL2_Pulse_Rifle_Menu"
"use weapon_shotgun" "#HL2_Shotgun_Menu"
"use weapon_crossbow" "#HL2_Crossbow_Menu"
"use weapon_frag" "#HL2_Grenade_Menu"
"use weapon_rpg" "#HL2_RPG_Menu"
"use weapon_SLAM" "#HL2_SLAM_Menu"
"blank" "=========================="
"blank" "#Valve_Communication_Title"
"blank" "=========================="
"+voicerecord" "#Valve_Use_Voice_Communication"
"messagemode" "#Valve_Chat_Message"
"messagemode2" "#Valve_Team_Message"
"blank" "=========================="
"blank" "#Valve_Miscellaneous_Title"
"blank" "=========================="
"jpeg" "#Valve_Take_Screen_Shot"
"+showscores" "#Valve_Display_Scores"
"impulse 201" "#Valve_Spray_Logo"
"pause" "#Valve_Pause_Game"
"quit" "#Valve_Quit_Game"
"timeleft" "Time Left in Round"
"askconnect_accept" "#Valve_Accept_Redirect"
"blank" "=========================="
"blank" "#Valve_Miscellaneous_Keyboard_Keys_Title"
"blank" "=========================="
"+walk" "#Valve_Walk"
"+left" "#Valve_Turn_Left"
"+right" "#Valve_Turn_Right"
"+moveup" "#Valve_Swim_Up"
"+movedown" "#Valve_Swim_Down"
"+lookup" "#Valve_Look_Up"
"+lookdown" "#Valve_Look_Down"
"+strafe" "#Valve_Strafe_Modifier"
"+klook" "#Valve_Keyboard_Look_Modifier"

View File

@ -0,0 +1,59 @@
"w" "+forward"
"UPARROW" "+forward"
"s" "+back"
"DOWNARROW" "+back"
"LEFTARROW" "+left"
"RIGHTARROW" "+right"
"a" "+moveleft"
"," "+moveleft"
"d" "+moveright"
"." "+moveright"
"SPACE" "+jump"
"CTRL" "+duck"
"TAB" "+showscores"
"e" "+use"
"v" "+moveup"
"'" "+moveup"
"c" "impulse 50"
"/" "+movedown"
"PGUP" "+lookup"
"PGDN" "+lookdown"
"END" "centerview"
"z" "+strafe"
"INS" "+klook"
";" "+mlook"
"r" "+reload"
"ALT" "+walk"
"SHIFT" "+speed"
"MOUSE1" "+attack"
"ENTER" "+attack"
"MOUSE2" "+attack2"
"\\" "+attack2"
"f" "impulse 100"
"1" "slot1"
"2" "slot2"
"3" "slot3"
"4" "slot4"
"5" "slot5"
"6" "slot6"
"MWHEELUP" "invprev"
"[" "invprev"
"MWHEELDOWN" "invnext"
"]" "invnext"
"q" "lastinv"
"F5" "jpeg"
"F6" "save quick"
"F7" "load quick"
"F10" "quit prompt"
"PAUSE" "pause"
"ESCAPE" "escape"
"~" "toggleconsole"
"`" "toggleconsole"
"+" "sizeup"
"=" "sizeup"
"-" "sizedown"
"t" "impulse 201"
"y" "messagemode"
"u" "messagemode2"
"g" "dropprimary"
"z" "+zoom"

View File

@ -0,0 +1,256 @@
0 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
1 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
2 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
3 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
4 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
5 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
6 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
7 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
8 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
9 "TAB" "TAB" DEFAULTCOLOR
10 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
11 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
12 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
13 "ENTER" "ENTER" DEFAULTCOLOR
14 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
15 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
16 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
17 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
18 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
19 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
20 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
21 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
22 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
23 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
24 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
25 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
26 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
27 "ESCAPE" "ESCAPE" DEFAULTCOLOR
28 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
29 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
30 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
31 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
32 "SPACE" "SPACE" DEFAULTCOLOR
33 "!" "!" DEFAULTCOLOR
34 """ """ DEFAULTCOLOR
35 "#" "#" DEFAULTCOLOR
36 "$" "$" DEFAULTCOLOR
37 "BACKSPACE" "BACKSPACE" DEFAULTCOLOR
38 "&" "&" DEFAULTCOLOR
39 "'" "'" DEFAULTCOLOR
40 "(" "(" DEFAULTCOLOR
41 ")" ")" DEFAULTCOLOR
42 "*" "*" DEFAULTCOLOR
43 "+" "+" DEFAULTCOLOR
44 "," "," DEFAULTCOLOR
45 "-" "-" DEFAULTCOLOR
46 "." "." DEFAULTCOLOR
47 "/" "/" DEFAULTCOLOR
48 "0" "0" DEFAULTCOLOR
49 "1" "1" DEFAULTCOLOR
50 "2" "2" DEFAULTCOLOR
51 "3" "3" DEFAULTCOLOR
52 "4" "4" DEFAULTCOLOR
53 "5" "5" DEFAULTCOLOR
54 "6" "6" DEFAULTCOLOR
55 "7" "7" DEFAULTCOLOR
56 "8" "8" DEFAULTCOLOR
57 "9" "9" DEFAULTCOLOR
58 ":" ":" DEFAULTCOLOR
59 ";" ";" DEFAULTCOLOR
60 "<" "<" DEFAULTCOLOR
61 "=" "=" DEFAULTCOLOR
62 ">" ">" DEFAULTCOLOR
63 "?" "?" DEFAULTCOLOR
64 "@" "@" DEFAULTCOLOR
65 "A" "A" DEFAULTCOLOR
66 "B" "B" DEFAULTCOLOR
67 "C" "C" DEFAULTCOLOR
68 "D" "D" DEFAULTCOLOR
69 "E" "E" DEFAULTCOLOR
70 "F" "F" DEFAULTCOLOR
71 "G" "G" DEFAULTCOLOR
72 "H" "H" DEFAULTCOLOR
73 "I" "I" DEFAULTCOLOR
74 "J" "J" DEFAULTCOLOR
75 "K" "K" DEFAULTCOLOR
76 "L" "L" DEFAULTCOLOR
77 "M" "M" DEFAULTCOLOR
78 "N" "N" DEFAULTCOLOR
79 "O" "O" DEFAULTCOLOR
80 "P" "P" DEFAULTCOLOR
81 "Q" "Q" DEFAULTCOLOR
82 "R" "R" DEFAULTCOLOR
83 "S" "S" DEFAULTCOLOR
84 "T" "T" DEFAULTCOLOR
85 "U" "U" DEFAULTCOLOR
86 "V" "V" DEFAULTCOLOR
87 "W" "W" DEFAULTCOLOR
88 "X" "X" DEFAULTCOLOR
89 "Y" "Y" DEFAULTCOLOR
90 "Z" "Z" DEFAULTCOLOR
91 "[" "[" DEFAULTCOLOR
92 "\" "\" DEFAULTCOLOR
93 "]" "]" DEFAULTCOLOR
94 "^" "^" DEFAULTCOLOR
95 "_" "_" DEFAULTCOLOR
96 "`" "`" DEFAULTCOLOR
97 "a" "a" DEFAULTCOLOR
98 "b" "b" DEFAULTCOLOR
99 "c" "c" DEFAULTCOLOR
100 "d" "d" DEFAULTCOLOR
101 "e" "e" DEFAULTCOLOR
102 "f" "f" DEFAULTCOLOR
103 "g" "g" DEFAULTCOLOR
104 "h" "h" DEFAULTCOLOR
105 "i" "i" DEFAULTCOLOR
106 "j" "j" DEFAULTCOLOR
107 "k" "k" DEFAULTCOLOR
108 "l" "l" DEFAULTCOLOR
109 "m" "m" DEFAULTCOLOR
110 "n" "n" DEFAULTCOLOR
111 "o" "o" DEFAULTCOLOR
112 "p" "p" DEFAULTCOLOR
113 "q" "q" DEFAULTCOLOR
114 "r" "r" DEFAULTCOLOR
115 "s" "s" DEFAULTCOLOR
116 "t" "t" DEFAULTCOLOR
117 "u" "u" DEFAULTCOLOR
118 "v" "v" DEFAULTCOLOR
119 "w" "w" DEFAULTCOLOR
120 "x" "x" DEFAULTCOLOR
121 "y" "y" DEFAULTCOLOR
122 "z" "z" DEFAULTCOLOR
123 "{" "{" DEFAULTCOLOR
124 "|" "|" DEFAULTCOLOR
125 "}" "}" DEFAULTCOLOR
126 "~" "~" DEFAULTCOLOR
127 "BACKSPACE" "BACKSPACE" DEFAULTCOLOR
128 "UPARROW" "UPARROW" DEFAULTCOLOR
129 "DOWNARROW" "DOWNARROW" DEFAULTCOLOR
130 "LEFTARROW" "LEFTARROW" DEFAULTCOLOR
131 "RIGHTARROW" "RIGHTARROW" DEFAULTCOLOR
132 "ALT" "ALT" DEFAULTCOLOR
133 "CTRL" "CTRL" DEFAULTCOLOR
134 "SHIFT" "SHIFT" DEFAULTCOLOR
135 "F1" "F1" DEFAULTCOLOR
136 "F2" "F2" DEFAULTCOLOR
137 "F3" "F3" DEFAULTCOLOR
138 "F4" "F4" DEFAULTCOLOR
139 "F5" "F5" DEFAULTCOLOR
140 "F6" "F6" DEFAULTCOLOR
141 "F7" "F7" DEFAULTCOLOR
142 "F8" "F8" DEFAULTCOLOR
143 "F9" "F9" DEFAULTCOLOR
144 "F10" "F10" DEFAULTCOLOR
145 "F11" "F11" DEFAULTCOLOR
146 "F12" "F12" DEFAULTCOLOR
147 "INS" "INS" DEFAULTCOLOR
148 "DEL" "DEL" DEFAULTCOLOR
149 "PGDN" "PGDN" DEFAULTCOLOR
150 "PGUP" "PGUP" DEFAULTCOLOR
151 "HOME" "HOME" DEFAULTCOLOR
152 "END" "END" DEFAULTCOLOR
153 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
154 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
155 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
156 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
157 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
158 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
159 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
160 "KP_HOME" "KP_HOME" DEFAULTCOLOR
161 "KP_UPARROW" "KP_UPARROW" DEFAULTCOLOR
162 "KP_PGUP" "KP_PGUP" DEFAULTCOLOR
163 "KP_LEFTARROW" "KP_LEFTARROW" DEFAULTCOLOR
164 "KP_5" "KP_5" DEFAULTCOLOR
165 "KP_RIGHTARROW" "KP_RIGHTARROW" DEFAULTCOLOR
166 "KP_END" "KP_END" DEFAULTCOLOR
167 "KP_DOWNARROW" "KP_DOWNARROW" DEFAULTCOLOR
168 "KP_PGDN" "KP_PGDN" DEFAULTCOLOR
169 "KP_ENTER" "KP_ENTER" DEFAULTCOLOR
170 "KP_INS" "KP_INS" DEFAULTCOLOR
171 "KP_DEL" "KP_DEL" DEFAULTCOLOR
172 "KP_SLASH" "KP_SLASH" DEFAULTCOLOR
173 "KP_MINUS" "KP_MINUS" DEFAULTCOLOR
174 "KP_PLUS" "KP_PLUS" DEFAULTCOLOR
175 "CAPSLOCK" "CAPSLOCK" DEFAULTCOLOR
176 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
177 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
178 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
179 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
180 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
181 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
182 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
183 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
184 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
185 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
186 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
187 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
188 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
189 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
190 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
191 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
192 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
193 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
194 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
195 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
196 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
197 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
198 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
199 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
200 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR1
201 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
202 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
203 "JOY1" "JOY1" COLOR 255 0 0
204 "JOY2" "JOY2" COLOR 255 0 0
205 "JOY3" "JOY3" COLOR 255 0 0
206 "JOY4" "JOY4" COLOR 255 0 0
207 "AUX1" "AUX1" DEFAULTCOLOR
208 "AUX2" "AUX2" DEFAULTCOLOR
209 "AUX3" "AUX3" DEFAULTCOLOR
210 "AUX4" "AUX4" DEFAULTCOLOR
211 "AUX5" "AUX5" DEFAULTCOLOR
212 "AUX6" "AUX6" DEFAULTCOLOR
213 "AUX7" "AUX7" DEFAULTCOLOR
214 "AUX8" "AUX8" DEFAULTCOLOR
215 "AUX9" "AUX9" DEFAULTCOLOR
216 "AUX10" "AUX10" DEFAULTCOLOR
217 "AUX11" "AUX11" DEFAULTCOLOR
218 "AUX12" "AUX12" DEFAULTCOLOR
219 "AUX13" "AUX13" DEFAULTCOLOR
220 "AUX14" "AUX14" DEFAULTCOLOR
221 "AUX15" "AUX15" DEFAULTCOLOR
222 "AUX16" "AUX16" DEFAULTCOLOR
223 "AUX17" "AUX17" DEFAULTCOLOR
224 "AUX18" "AUX18" DEFAULTCOLOR
225 "AUX19" "AUX19" DEFAULTCOLOR
226 "AUX20" "AUX20" DEFAULTCOLOR
227 "AUX21" "AUX21" DEFAULTCOLOR
228 "AUX22" "AUX22" DEFAULTCOLOR
229 "AUX23" "AUX23" DEFAULTCOLOR
230 "AUX24" "AUX24" DEFAULTCOLOR
231 "AUX25" "AUX25" DEFAULTCOLOR
232 "AUX26" "AUX26" DEFAULTCOLOR
233 "AUX27" "AUX27" DEFAULTCOLOR
234 "AUX28" "AUX28" DEFAULTCOLOR
235 "AUX29" "AUX29" DEFAULTCOLOR
236 "AUX30" "AUX30" DEFAULTCOLOR
237 "AUX31" "AUX31" DEFAULTCOLOR
238 "AUX32" "AUX32" DEFAULTCOLOR
239 "MWHEELDOWN" "MWHEELDOWN" DEFAULTCOLOR
240 "MWHEELUP" "MWHEELUP" DEFAULTCOLOR
241 "MOUSE1" "MOUSE1" COLOR 0 255 255
242 "MOUSE2" "MOUSE2" COLOR 0 255 255
243 "MOUSE3" "MOUSE3" COLOR 0 255 255
244 "MOUSE4" "MOUSE4" COLOR 0 255 255
245 "MOUSE5" "MOUSE5" COLOR 0 255 255
246 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
247 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
248 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
249 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
250 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
251 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
252 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
253 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
254 "<UNKNOWN KEYNUM>" "<UNKNOWN KEYNUM>" DEFAULTCOLOR
255 "PAUSE" "PAUSE" DEFAULTCOLOR

View File

@ -0,0 +1,76 @@
// keys with $ are to be substituted in the value strings where they occur
// They must occur before any values that reference them since this file is
// parsed in order
// Substitutions $game is swapped with the text string specified
#include "scripts/game.txt"
"loading" "Loading $game..."
"nummasters" "2"
"master0" "half-life.east.won.net:27010"
"master1" "half-life.west.won.net:27010"
//"master0" "127.0.0.1:27010"
//"master1" "127.0.0.1:27010"
// Actual text labels ( note that all $key strings in the value field will be
// substituted as noted above ).
"label_console" "Go to $game console"
"label_quit" "Quit playing $game"
"label_newgame" "Start a new game"
"label_loadgame" "Load a saved game"
"label_videomode" "Change video mode"
"label_configuration" "Configuration"
"label_langame" "Connect to games on your LAN"
"label_internetgame" "Connect to internet games"
"label_multiplayergame" "Multiplayer games"
"dialog_main_header" "$game"
"dialog_videomode_header" "Video Mode"
"dialog_newgame_header" "New Game"
"dialog_loadgame_header" "Load Game"
"dialog_configuration_header" "Configuration"
"dialog_controls_header" "Controls"
"dialog_lan_header" "Lan"
"dialog_internet_header" "Internet Games"
"dialog_multiplayer_header" "Multiplayer"
"button_done" "Done"
"button_ok" "OK"
"button_cancel" "Cancel"
"button_yes" "Yes"
"button_no" "No"
"button_newgame" "New Game"
"button_videomode" "Video Mode"
"button_console" "Console"
"button_quit" "Quit"
"button_loadgame" "Load Game"
"button_easy" "Easy"
"button_medium" "Medium"
"button_hard" "Hard"
"button_configuration" "Configuration"
"button_controls" "Controls"
"button_usedefaults" "Use Defaults"
"button_advancedcontrols" "Adv Controls"
"button_delete" "Delete"
"button_load" "Load"
"button_langame" "Lan"
"button_internetgame" "Internet Game"
"button_connect" "Connect"
"button_refresh" "Refresh"
"button_multiplayergame" "Multiplayer"
"button_update" "Update"
"keybinding_action" "Action"
"keybinding_keybutton" "Key / button"
"keybinding_alternate" "Alternate"
"keybinding_prompt" "Press a button or key"
"loadgame_time" "Time"
"loadgame_game" "Game"
"loadgame_elapsed" "Elapsed Time"
"langame_address" "Address"
"langame_gamedir" "Game"
"langame_map" "Map"
"langame_ping" "Ping"

View File

@ -0,0 +1,228 @@
"sprites/640_hud"
{
TextureData
{
"d_crowbar"
{
"file" "sprites/640hud1"
"x" "192"
"y" "0"
"width" "48"
"height" "16"
}
"d_9mmhandgun"
{
"file" "sprites/640hud1"
"x" "192"
"y" "16"
"width" "32"
"height" "16"
}
"d_357"
{
"file" "sprites/640hud1"
"x" "192"
"y" "32"
"width" "32"
"height" "16"
}
"d_9mmAR"
{
"file" "sprites/640hud1"
"x" "192"
"y" "48"
"width" "48"
"height" "16"
}
"d_shotgun"
{
"file" "sprites/640hud1"
"x" "192"
"y" "64"
"width" "48"
"height" "16"
}
"d_bolt"
{
"file" "sprites/640hud1"
"x" "192"
"y" "80"
"width" "48"
"height" "16"
}
"d_crossbow"
{
"file" "sprites/640hud1"
"x" "192"
"y" "80"
"width" "48"
"height" "16"
}
"d_rpg_rocket"
{
"file" "sprites/640hud1"
"x" "192"
"y" "96"
"width" "48"
"height" "16"
}
"d_gauss"
{
"file" "sprites/640hud1"
"x" "192"
"y" "112"
"width" "32"
"height" "16"
}
"d_egon"
{
"file" "sprites/640hud1"
"x" "192"
"y" "128"
"width" "32"
"height" "16"
}
"d_hornet"
{
"file" "sprites/640hud1"
"x" "192"
"y" "144"
"width" "48"
"height" "16"
}
"d_grenade"
{
"file" "sprites/640hud1"
"x" "192"
"y" "160"
"width" "32"
"height" "16"
}
"d_satchel"
{
"file" "sprites/640hud1"
"x" "192"
"y" "176"
"width" "32"
"height" "16"
}
"d_tripmine"
{
"file" "sprites/640hud1"
"x" "192"
"y" "192"
"width" "32"
"height" "16"
}
"d_snark"
{
"file" "sprites/640hud1"
"x" "192"
"y" "208"
"width" "32"
"height" "16"
}
"d_skull"
{
"file" "sprites/640hud1"
"x" "192"
"y" "224"
"width" "32"
"height" "16"
}
"d_tracktrain"
{
"file" "sprites/640hud1"
"x" "192"
"y" "240"
"width" "32"
"height" "16"
}
"death_357"
{
"font" "HL2MPTypeDeath"
"character" "."
}
"death_ar2"
{
"font" "HL2MPTypeDeath"
"character" "2"
}
"death_crossbow_bolt"
{
"font" "HL2MPTypeDeath"
"character" "1"
}
"death_smg1"
{
"font" "HL2MPTypeDeath"
"character" "/"
}
"death_shotgun"
{
"font" "HL2MPTypeDeath"
"character" "0"
}
"death_rpg_missile"
{
"font" "HL2MPTypeDeath"
"character" "3"
}
"death_grenade_frag"
{
"font" "HL2MPTypeDeath"
"character" "4"
}
"death_pistol"
{
"font" "HL2MPTypeDeath"
"character" "-"
}
"death_physics"
{
"font" "HL2MPTypeDeath"
"character" "9"
}
"death_combine_ball"
{
"font" "HL2MPTypeDeath"
"character" "8"
}
"death_smg1_grenade"
{
"font" "HL2MPTypeDeath"
"character" "7"
}
"death_stunstick"
{
"font" "HL2MPTypeDeath"
"character" "!"
}
"death_slam"
{
"font" "HL2MPTypeDeath"
"character" "*"
}
"death_crowbar"
{
"font" "HL2MPTypeDeath"
"character" "6"
}
"voice_player"
{
"file" "voice/icntlk_sv"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"voice_self"
{
"file" "voice/icntlk_local"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
}
}

View File

@ -0,0 +1,276 @@
"labs_mp"
{
"playlooping"
{
"volume" ".12"
"pitch" "100"
"wave" "ambient/machines/lab_loop1.wav"
}
"playlooping"
{
"volume" ".4"
"pitch" "100"
"wave" "ambient/machines/combine_shield_loop3.wav"
"position" "0"
// tele snd
}
"playlooping"
{
"volume" ".3"
"pitch" "100"
"wave" "ambient/atmosphere/noise2.wav"
"position" "0"
// tele snd
}
"playrandom"
{
"time" "8, 15"
"volume" "0.3,0.5"
"pitch" "100"
"soundlevel" "SNDLVL_NORM"
"rndwave"
{
"wave" "npc/headcrab/alert1.wav"
"wave" "npc/headcrab/idle1.wav"
"wave" "npc/headcrab/idle2.wav"
"wave" "npc/headcrab/idle3.wav"
}
"position" "1"
// lamarr
}
}
"under_boiler"
{
"playlooping"
{
"volume" "0.2"
"pitch" "100"
"wave" "ambient/atmosphere/ambience5.wav"
}
"playlooping"
{
"volume" "0.07"
"pitch" "100"
"wave" "ambient/atmosphere/underground.wav"
}
"playlooping"
{
"volume" "0.06"
"pitch" "100"
"wave" "ambient/machines/thumper_amb.wav"
}
"playlooping"
{
"volume" ".08"
"pitch" "85"
"wave" "ambient/gas/steam_loop1.wav"
"position" "1"
// Steam pipe
}
}
"under_tunnels"
{
"playlooping"
{
"volume" "0.1"
"pitch" "100"
"wave" "ambient/atmosphere/cargo_hold2.wav"
}
"playlooping"
{
"volume" "0.2"
"pitch" "80"
"wave" "ambient/wind/wind_tunnel1.wav"
}
"playlooping"
{
"volume" ".08"
"pitch" "85"
"wave" "ambient/gas/steam_loop1.wav"
"position" "0"
// Steam pipe
}
}
"under_basement1"
{
"playlooping"
{
"volume" "0.07"
"pitch" "100"
"wave" "ambient/atmosphere/cargo_hold2.wav"
}
"playlooping"
{
"volume" "0.2"
"pitch" "80"
"wave" "ambient/wind/wind_tunnel1.wav"
}
"playlooping"
{
"volume" "0.15"
"pitch" "100"
"wave" "ambient/wind/wasteland_wind.wav"
}
"playlooping"
{
"volume" "0.1"
"pitch" "90"
"wave" "ambient/atmosphere/quiet_cellblock_amb.wav"
}
"playlooping"
{
"volume" ".08"
"pitch" "85"
"wave" "ambient/gas/steam_loop1.wav"
"position" "0"
// Steam pipe
}
}
"combine_tunnel"
{
"dsp" "1"
"playlooping"
{
"volume" "0.3"
"pitch" "100"
"wave" "ambient/levels/citadel/citadel_drone_loop6.wav"
}
"playrandom"
{
"time" "8, 30"
"volume" "0.05,0.1"
"pitch" "90,110"
"soundlevel" "SNDLVL_140dB"
"rndwave"
{
"wave" "ambient/levels/citadel/strange_talk1.wav"
"wave" "ambient/levels/citadel/strange_talk3.wav"
"wave" "ambient/levels/citadel/strange_talk4.wav"
"wave" "ambient/levels/citadel/strange_talk5.wav"
"wave" "ambient/levels/citadel/strange_talk6.wav"
"wave" "ambient/levels/citadel/strange_talk7.wav"
"wave" "ambient/levels/citadel/strange_talk8.wav"
"wave" "ambient/levels/citadel/strange_talk9.wav"
"wave" "ambient/levels/citadel/strange_talk10.wav"
"wave" "ambient/levels/citadel/strange_talk11.wav"
}
}
"playrandom"
{
"time" "20, 35"
"volume" "0.08,0.15"
"pitch" "90,110"
"soundlevel" "SNDLVL_140dB"
"position" "0"
"rndwave"
{
"wave" "npc/combine_soldier/vo/weaponsoffsafeprepforcontact.wav"
"wave" "npc/combine_soldier/vo/teamdeployedandscanning.wav"
"wave" "npc/combine_soldier/vo/unitismovingin.wav"
"wave" "npc/combine_soldier/vo/sweepingin.wav"
"wave" "npc/combine_soldier/vo/targetcompromisedmovein.wav"
"wave" "npc/combine_soldier/vo/stabilizationteamhassector.wav"
"wave" "npc/combine_soldier/vo/overwatchrequestreinforcement.wav"
"wave" "npc/combine_soldier/vo/overwatchtarget1sterilized.wav"
}
}
"playrandom"
{
"time" "45, 120"
"volume" "0.01,0.1"
"pitch" "90,115"
"soundlevel" "SNDLVL_140dB"
"rndwave"
{
"wave" "*ambient/levels/citadel/citadel_ambient_voices1.wav"
}
}
"playlooping"
{
"volume" "0.08"
"pitch" "100"
"wave" "ambient/atmosphere/underground.wav"
}
"playlooping"
{
"volume" "0.25"
"pitch" "80"
"wave" "ambient/wind/wind_tunnel1.wav"
}
}

View File

@ -0,0 +1,18 @@
soundscaples_manifest
{
"file" "scripts/soundscapes.txt"
// List additional soundscape files here
"file" "scripts/soundscapes_canals.txt"
"file" "scripts/soundscapes_klab.txt"
"file" "scripts/soundscapes_elab.txt"
"file" "scripts/soundscapes_streetwar.txt"
"file" "scripts/soundscapes_citadel.txt"
"file" "scripts/soundscapes_town.txt"
"file" "scripts/soundscapes_coast.txt"
"file" "scripts/soundscapes_prison.txt"
"file" "scripts/soundscapes_trainyard.txt"
"file" "scripts/soundscapes_labs.txt"
"file" "scripts/soundscapes_strike.txt"
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,53 @@
"strike_ware"
{
"dsp" "1"
// The ambient sounds of the warehouse
"playlooping"
{
"volume" "0.1"
"pitch" "100"
"soundlevel" "SNDLVL_90dB"
"wave" "ambient/atmosphere/ambience_base.wav"
}
"playlooping"
{
"volume" "0.15"
"wave" "ambient/atmosphere/indoor2.wav"
"pitch" "100"
}
}
"strike_outside"
{
"playlooping"
{
"volume" "0.25"
"wave" "ambient/wind/wind1.wav"
"pitch" "100"
}
"playsoundscape"
{
"name" "d1_canals.util_tunnel_windgusts"
"volume" "0.7"
}
"playsoundscape"
{
"name" "d1_canals.util_birds"
"volume" "0.25"
}
}

View File

@ -0,0 +1,62 @@
// 357
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_357Handgun"
"viewmodel" "models/weapons/v_357.mdl"
"playermodel" "models/weapons/w_357.mdl"
"anim_prefix" "python"
"bucket" "1"
"bucket_position" "1"
"clip_size" "6"
"default_clip" "6"
"primary_ammo" "357"
"secondary_ammo" "None"
"weight" "7"
"item_flags" "0"
"damage" "75"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"empty" "Weapon_Pistol.Empty"
"single_shot" "Weapon_357.Single"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "e"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "e"
}
"ammo"
{
"font" "WeaponIcons"
"character" "q"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,78 @@
// Assault Rifle 2
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Pulse_Rifle"
"viewmodel" "models/weapons/v_irifle.mdl"
"playermodel" "models/weapons/w_irifle.mdl"
"anim_prefix" "ar2"
"bucket" "2"
"bucket_position" "1"
"clip_size" "30"
"default_clip" "60"
"clip2_size" "-1"
"default_clip2" "-1"
"primary_ammo" "AR2"
"secondary_ammo" "AR2AltFire"
"weight" "5"
"item_flags" "0"
"damage" "11"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"special1" "Weapon_CombineGuard.Special1"
"empty" "Weapon_IRifle.Empty"
"double_shot" "Weapon_IRifle.Single"
"reload" "Weapon_AR2.Reload"
"single_shot" "Weapon_AR2.Single"
// NPC SECTION
"single_shot_npc" "Weapon_AR2.NPC_Single"
"reload_npc" "Weapon_AR2.NPC_Reload"
"double_shot_npc" "Weapon_AR2.NPC_Double"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "l"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "l"
}
"ammo"
{
"font" "WeaponIcons"
"character" "u"
}
"ammo2"
{
"font" "WeaponIcons"
"character" "z"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,77 @@
// Crossbow
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Crossbow"
"viewmodel" "models/weapons/v_crossbow.mdl"
"playermodel" "models/weapons/w_crossbow.mdl"
"anim_prefix" "bow"
"bucket" "3"
"bucket_position" "1"
"clip_size" "1"
"default_clip" "5"
"primary_ammo" "XBowBolt"
"secondary_ammo" "None"
"weight" "6"
"item_flags" "0"
"damage" "100"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"single_shot" "Weapon_Crossbow.Single"
"reload" "Weapon_Crossbow.Reload"
"special1" "Weapon_Crossbow.BoltElectrify"
"special2" "Weapon_Crossbow.BoltFly"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "g"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "g"
}
"ammo"
{
"font" "WeaponIcons"
"character" "w"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "96"
"width" "24"
"height" "24"
}
"zoom"
{
"font" "Crosshairs"
"character" "Q"
}
"zoom_autoaim"
{
"file" "sprites/crosshairs"
"x" "24"
"y" "112"
"width" "104"
"height" "16"
}
}
}

View File

@ -0,0 +1,68 @@
// Crowbar
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Crowbar"
"viewmodel" "models/weapons/v_crowbar.mdl"
"playermodel" "models/weapons/w_crowbar.mdl"
"anim_prefix" "crowbar"
"bucket" "0"
"bucket_position" "0"
"clip_size" "-1"
"primary_ammo" "None"
"secondary_ammo" "None"
"weight" "0"
"item_flags" "0"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"single_shot" "Weapon_Crowbar.Single"
"melee_hit" "Weapon_Crowbar.Melee_Hit"
"melee_hit_world" "Weapon_Crowbar.Melee_HitWorld"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "c"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "c"
}
"ammo"
{
"font" "WeaponIcons"
"character" "c"
}
"ammo2"
{
"file" "sprites/640hud7"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,69 @@
// Cubemap visualization tool
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Cubemap"
"viewmodel" "models/shadertest/envballs.mdl"
"playermodel" "models/shadertest/envballs.mdl"
"anim_prefix" "envballs"
"bucket" "2"
"bucket_position" "2"
"clip_size" "-1"
"clip2_size" "-1"
"default_clip" "-1"
"default_clip2" "-1"
"primary_ammo" "None"
"secondary_ammo" "None"
"weight" "0"
"item_flags" "0"
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"file" "sprites/w_icons1"
"x" "128"
"y" "128"
"width" "128"
"height" "64"
}
"weapon_s"
{
"file" "sprites/w_icons1b"
"x" "128"
"y" "128"
"width" "128"
"height" "64"
}
"ammo"
{
"file" "sprites/a_icons1"
"x" "55"
"y" "60"
"width" "73"
"height" "15"
}
"crosshair"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,63 @@
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Grenade"
"viewmodel" "models/weapons/v_grenade.mdl"
"playermodel" "models/weapons/w_grenade.mdl"
"anim_prefix" "Grenade"
"bucket" "4"
"bucket_position" "0"
"clip_size" "-1"
"clip2_size" "-1"
"default_clip" "1"
"default_clip2" "-1"
"primary_ammo" "grenade"
"secondary_ammo" "None"
"weight" "1"
"item_flags" "18" // ITEM_FLAG_NOAUTORELOAD | ITEM_FLAG_EXHAUSTIBLE
"damage" "150"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"special1" "WeaponFrag.Roll"
"double_shot" "common/null.wav"
"single_shot" "common/null.wav"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "k"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "k"
}
"ammo"
{
"font" "WeaponIcons"
"character" "v"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,78 @@
// Physics Gun
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_GravityGun"
"viewmodel" "models/weapons/v_physcannon.mdl"
"playermodel" "models/weapons/w_Physics.mdl"
"anim_prefix" "gauss"
"bucket" "0"
"bucket_position" "2"
"clip_size" "0"
"clip2_size" "0"
"primary_ammo" "None"
"secondary_ammo" "None"
"default_clip" "0"
"default_clip2" "0"
"weight" "0"
"autoswitchto" "0"
"autoswitchfrom" "0"
"item_flags" "2"
SoundData
{
// launch held object
"single_shot" "Weapon_PhysCannon.Launch"
// Ignore?
"reload" "Weapon_PhysCannon.Charge"
// dry fire - no target
"empty" "Weapon_PhysCannon.DryFire"
// pick up object
"special1" "Weapon_PhysCannon.Pickup"
// open claws, target object
"special2" "Weapon_PhysCannon.OpenClaws"
// close claws, target out of range/invalid
"melee_hit" "Weapon_PhysCannon.CloseClaws"
// drop object
"melee_miss" "Weapon_PhysCannon.Drop"
// too heavy
"special3" "Weapon_PhysCannon.TooHeavy"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "m"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "m"
}
"ammo"
{
"file" "sprites/a_icons1"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,67 @@
// Pistol
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Pistol"
"viewmodel" "models/weapons/v_pistol.mdl"
"playermodel" "models/weapons/w_pistol.mdl"
"anim_prefix" "pistol"
"bucket" "1"
"bucket_position" "0"
"clip_size" "18"
"primary_ammo" "Pistol"
"secondary_ammo" "None"
"weight" "2"
"item_flags" "0"
"damage" "8"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"reload" "Weapon_Pistol.Reload"
"reload_npc" "Weapon_Pistol.NPC_Reload"
"empty" "Weapon_Pistol.Empty"
"single_shot" "Weapon_Pistol.Single"
"single_shot_npc" "Weapon_Pistol.NPC_Single"
"special1" "Weapon_Pistol.Special1"
"special2" "Weapon_Pistol.Special2"
"burst" "Weapon_Pistol.Burst"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "d"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "d"
}
"ammo"
{
"font" "WeaponIcons"
"character" "p"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,70 @@
// Missile Launcher
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_RPG"
"viewmodel" "models/weapons/v_rpg.mdl"
"playermodel" "models/weapons/w_rocket_launcher.mdl"
"anim_prefix" "missile launcher"
"bucket" "4"
"bucket_position" "1"
"autoswitchfrom" "1"
"clip_size" "-1"
"clip2_size" "-1"
"default_clip" "3"
"default_clip2" "-1"
"primary_ammo" "rpg_round"
"secondary_ammo" "None"
"weight" "0"
"item_flags" "0"
"damage" "150"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"single_shot" "Weapon_RPG.Single"
"single_shot_npc" "Weapon_RPG.NPC_Single"
//Laser on
"special1" "Weapon_RPG.LaserOn"
//Laser off
"special2" "Weapon_RPG.LaserOff"
"empty" "Weapon_SMG1.Empty"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "i"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "i"
}
"ammo"
{
"font" "WeaponIcons"
"character" "x"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,67 @@
// Shotgun
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_Shotgun"
"viewmodel" "models/weapons/v_shotgun.mdl"
"playermodel" "models/weapons/w_shotgun.mdl"
"anim_prefix" "shotgun"
"bucket" "3"
"bucket_position" "0"
"clip_size" "6"
"primary_ammo" "Buckshot"
"secondary_ammo" "None"
"weight" "4"
"item_flags" "0"
"damage" "9"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"empty" "Weapon_Shotgun.Empty"
"reload" "Weapon_Shotgun.Reload"
"special1" "Weapon_Shotgun.Special1"
"single_shot" "Weapon_Shotgun.Single"
"double_shot" "Weapon_Shotgun.Double"
// NPC WEAPON SOUNDS
"reload_npc" "Weapon_Shotgun.NPC_Reload"
"single_shot_npc" "Weapon_Shotgun.NPC_Single"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "b"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "b"
}
"ammo"
{
"font" "WeaponIcons"
"character" "s"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,56 @@
// Slam
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_SLAM"
"viewmodel" "models/weapons/v_slam.mdl"
"playermodel" "models/weapons/w_slam.mdl"
"anim_prefix" "slam"
"bucket" "4"
"bucket_position" "2"
"clip_size" "3"
"primary_ammo" "None"
"secondary_ammo" "slam"
"default_clip2" "3"
"weight" "1"
"item_flags" "2"
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "o"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "o"
}
"ammo"
{
"font" "WeaponIcons"
"character" "o"
}
"crosshair"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,77 @@
// Small Machine Gun 1
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_SMG1"
"viewmodel" "models/weapons/v_smg1.mdl"
"playermodel" "models/weapons/w_smg1.mdl" //FIXME:
"anim_prefix" "smg2"
"bucket" "2"
"bucket_position" "0"
"clip_size" "45"
"clip2_size" "-1"
"default_clip" "45"
"default_clip2" "-1"
"primary_ammo" "SMG1"
"secondary_ammo" "SMG1_Grenade"
"weight" "3"
"item_flags" "0"
"damage" "5"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"reload" "Weapon_SMG1.Reload"
"reload_npc" "Weapon_SMG1.NPC_Reload"
"empty" "Weapon_SMG1.Empty"
"single_shot" "Weapon_SMG1.Single"
"single_shot_npc" "Weapon_SMG1.NPC_Single"
"special1" "Weapon_SMG1.Special1"
"special2" "Weapon_SMG1.Special2"
"double_shot" "Weapon_SMG1.Double"
"burst" "Weapon_SMG1.Burst"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "a"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "a"
}
"ammo"
{
"font" "WeaponIcons"
"character" "r"
}
"ammo2"
{
"font" "WeaponIcons"
"character" "t"
}
"crosshair"
{
"font" "Crosshairs"
"character" "Q"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,73 @@
// stunstick
WeaponData
{
// Weapon data is loaded by both the Game and Client DLLs.
"printname" "#HL2_StunBaton"
"viewmodel" "models/weapons/v_stunstick.mdl"
"playermodel" "models/weapons/w_stunbaton.mdl"
"anim_prefix" "stunbaton"
"bucket" "0"
"bucket_position" "1"
"clip_size" "-1"
"primary_ammo" "None"
"secondary_ammo" "None"
"weight" "0"
"item_flags" "0"
// Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
SoundData
{
"single_shot" "Weapon_StunStick.Swing"
"melee_miss" "Weapon_StunStick.Melee_Miss"
"melee_hit" "Weapon_StunStick.Melee_Hit"
"melee_hit_world" "Weapon_StunStick.Melee_HitWorld"
}
// Weapon Sprite data is loaded by the Client DLL.
TextureData
{
"weapon"
{
"font" "WeaponIcons"
"character" "n"
}
"weapon_s"
{
"font" "WeaponIconsSelected"
"character" "n"
}
"ammo"
{
"font" "WeaponIcons"
"character" "n"
}
"ammo2"
{
"file" "sprites/640hud7"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
"crosshair"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
"autoaim"
{
"file" "sprites/crosshairs"
"x" "48"
"y" "72"
"width" "24"
"height" "24"
}
}
}

View File

@ -0,0 +1,246 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Client (HL2)", "game\client\client_hl2-2010.vcxproj", "{09E5D61D-4897-7B98-288B-C87442D14BFF}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{F69B3672-C5E8-CD1A-257F-253A25B5B939} = {F69B3672-C5E8-CD1A-257F-253A25B5B939}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Client (HL2MP)", "game\client\client_hl2mp-2010.vcxproj", "{17BCE59A-9037-EC8D-433E-F81339E2F1BA}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{F69B3672-C5E8-CD1A-257F-253A25B5B939} = {F69B3672-C5E8-CD1A-257F-253A25B5B939}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server (HL2)", "game\server\server_hl2-2010.vcxproj", "{C3EE918E-6836-5578-1FA2-5703048552B9}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server (HL2MP)", "game\server\server_hl2mp-2010.vcxproj", "{33B7DFDC-BECB-3678-1190-6C951E393EB3}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mathlib", "mathlib\mathlib-2010.vcxproj", "{BAB92FF0-D72A-D7E5-1988-74628D39B94F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tier1", "tier1\tier1-2010.vcxproj", "{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Captioncompiler", "utils\captioncompiler\captioncompiler-2010.vcxproj", "{E85D01E5-DA1B-00A2-5D72-A9B6DEA9A995}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glview", "utils\glview\glview-2010.vcxproj", "{DC76828F-1DD4-7E83-371E-EA4058FEE050}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Height2normal", "utils\height2normal\height2normal-2010.vcxproj", "{129A563E-9F48-79D9-E0C5-EE2DAF7FEAB7}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Motionmapper", "utils\motionmapper\motionmapper-2010.vcxproj", "{C805838C-256D-6672-3417-589B6AF7D95E}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Phonemeextractor", "utils\phonemeextractor\phonemeextractor-2010.vcxproj", "{079933D6-F849-3176-49FC-D50E4B461AC4}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QC_Eyes", "utils\qc_eyes\qc_eyes-2010.vcxproj", "{EA02FAE0-2A4F-C7C8-6176-5DEDA8E139E9}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Serverplugin_empty", "utils\serverplugin_sample\serverplugin_empty-2010.vcxproj", "{394B82B6-3999-E576-5458-2D2EB4229509}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tgadiff", "utils\tgadiff\tgadiff-2010.vcxproj", "{C6A1B4E3-DFD8-CD7B-5CBF-D3267A96FF21}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vbsp", "utils\vbsp\vbsp-2010.vcxproj", "{E4F39B89-9731-571D-B69D-C1B8FE56C056}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vice", "utils\vice\vice-2010.vcxproj", "{03F753C0-8BA5-FF2B-D7D2-EE230B4683B1}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vrad_dll", "utils\vrad\vrad_dll-2010.vcxproj", "{90A78BD4-2532-39D9-6D34-7A3C2648508C}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vrad_launcher", "utils\vrad_launcher\vrad_launcher-2010.vcxproj", "{0B6929D0-4447-E035-E47A-EBFCE557D5B3}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{F69B3672-C5E8-CD1A-257F-253A25B5B939} = {F69B3672-C5E8-CD1A-257F-253A25B5B939}
{90A78BD4-2532-39D9-6D34-7A3C2648508C} = {90A78BD4-2532-39D9-6D34-7A3C2648508C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vtf2tga", "utils\vtf2tga\vtf2tga-2010.vcxproj", "{6B017447-F682-A137-8DF4-4608281F2C9F}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vtfdiff", "utils\vtfdiff\vtfdiff-2010.vcxproj", "{81EE9F71-4DFD-8670-B3EA-7B4E931E9845}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vvis_dll", "utils\vvis\vvis_dll-2010.vcxproj", "{AC70A841-561F-4DAE-7864-E50541AD99ED}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vvis_launcher", "utils\vvis_launcher\vvis_launcher-2010.vcxproj", "{E3E2CF1C-9EE4-3173-C39F-D0D4F5483CB6}"
ProjectSection(ProjectDependencies) = postProject
{AC70A841-561F-4DAE-7864-E50541AD99ED} = {AC70A841-561F-4DAE-7864-E50541AD99ED}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vgui_controls", "vgui2\vgui_controls\vgui_controls-2010.vcxproj", "{F69B3672-C5E8-CD1A-257F-253A25B5B939}"
ProjectSection(ProjectDependencies) = postProject
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC} = {EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}
{BAB92FF0-D72A-D7E5-1988-74628D39B94F} = {BAB92FF0-D72A-D7E5-1988-74628D39B94F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Client (Episodic)", "game\client\client_episodic-2010.vcxproj", "{353A799F-E73F-7A69-07AD-B2AD57F3B775}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server (Episodic)", "game\server\server_episodic-2010.vcxproj", "{7855B476-B6D4-535D-F7A9-D623245F8B07}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{09E5D61D-4897-7B98-288B-C87442D14BFF}.Debug|Win32.ActiveCfg = Debug|Win32
{09E5D61D-4897-7B98-288B-C87442D14BFF}.Debug|Win32.Build.0 = Debug|Win32
{09E5D61D-4897-7B98-288B-C87442D14BFF}.Release|Win32.ActiveCfg = Release|Win32
{09E5D61D-4897-7B98-288B-C87442D14BFF}.Release|Win32.Build.0 = Release|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Debug|Win32.ActiveCfg = Debug|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Debug|Win32.Build.0 = Debug|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Release|Win32.ActiveCfg = Release|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Release|Win32.Build.0 = Release|Win32
{C3EE918E-6836-5578-1FA2-5703048552B9}.Debug|Win32.ActiveCfg = Debug|Win32
{C3EE918E-6836-5578-1FA2-5703048552B9}.Debug|Win32.Build.0 = Debug|Win32
{C3EE918E-6836-5578-1FA2-5703048552B9}.Release|Win32.ActiveCfg = Release|Win32
{C3EE918E-6836-5578-1FA2-5703048552B9}.Release|Win32.Build.0 = Release|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Debug|Win32.ActiveCfg = Debug|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Debug|Win32.Build.0 = Debug|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Release|Win32.ActiveCfg = Release|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Release|Win32.Build.0 = Release|Win32
{BAB92FF0-D72A-D7E5-1988-74628D39B94F}.Debug|Win32.ActiveCfg = Debug|Win32
{BAB92FF0-D72A-D7E5-1988-74628D39B94F}.Debug|Win32.Build.0 = Debug|Win32
{BAB92FF0-D72A-D7E5-1988-74628D39B94F}.Release|Win32.ActiveCfg = Release|Win32
{BAB92FF0-D72A-D7E5-1988-74628D39B94F}.Release|Win32.Build.0 = Release|Win32
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}.Debug|Win32.ActiveCfg = Debug|Win32
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}.Debug|Win32.Build.0 = Debug|Win32
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}.Release|Win32.ActiveCfg = Release|Win32
{EC1C516D-E1D9-BC0A-F79D-E91E954ED8EC}.Release|Win32.Build.0 = Release|Win32
{E85D01E5-DA1B-00A2-5D72-A9B6DEA9A995}.Debug|Win32.ActiveCfg = Debug|Win32
{E85D01E5-DA1B-00A2-5D72-A9B6DEA9A995}.Debug|Win32.Build.0 = Debug|Win32
{E85D01E5-DA1B-00A2-5D72-A9B6DEA9A995}.Release|Win32.ActiveCfg = Release|Win32
{E85D01E5-DA1B-00A2-5D72-A9B6DEA9A995}.Release|Win32.Build.0 = Release|Win32
{DC76828F-1DD4-7E83-371E-EA4058FEE050}.Debug|Win32.ActiveCfg = Debug|Win32
{DC76828F-1DD4-7E83-371E-EA4058FEE050}.Debug|Win32.Build.0 = Debug|Win32
{DC76828F-1DD4-7E83-371E-EA4058FEE050}.Release|Win32.ActiveCfg = Release|Win32
{DC76828F-1DD4-7E83-371E-EA4058FEE050}.Release|Win32.Build.0 = Release|Win32
{129A563E-9F48-79D9-E0C5-EE2DAF7FEAB7}.Debug|Win32.ActiveCfg = Debug|Win32
{129A563E-9F48-79D9-E0C5-EE2DAF7FEAB7}.Debug|Win32.Build.0 = Debug|Win32
{129A563E-9F48-79D9-E0C5-EE2DAF7FEAB7}.Release|Win32.ActiveCfg = Release|Win32
{129A563E-9F48-79D9-E0C5-EE2DAF7FEAB7}.Release|Win32.Build.0 = Release|Win32
{C805838C-256D-6672-3417-589B6AF7D95E}.Debug|Win32.ActiveCfg = Debug|Win32
{C805838C-256D-6672-3417-589B6AF7D95E}.Debug|Win32.Build.0 = Debug|Win32
{C805838C-256D-6672-3417-589B6AF7D95E}.Release|Win32.ActiveCfg = Release|Win32
{C805838C-256D-6672-3417-589B6AF7D95E}.Release|Win32.Build.0 = Release|Win32
{079933D6-F849-3176-49FC-D50E4B461AC4}.Debug|Win32.ActiveCfg = Debug|Win32
{079933D6-F849-3176-49FC-D50E4B461AC4}.Debug|Win32.Build.0 = Debug|Win32
{079933D6-F849-3176-49FC-D50E4B461AC4}.Release|Win32.ActiveCfg = Release|Win32
{079933D6-F849-3176-49FC-D50E4B461AC4}.Release|Win32.Build.0 = Release|Win32
{EA02FAE0-2A4F-C7C8-6176-5DEDA8E139E9}.Debug|Win32.ActiveCfg = Debug|Win32
{EA02FAE0-2A4F-C7C8-6176-5DEDA8E139E9}.Debug|Win32.Build.0 = Debug|Win32
{EA02FAE0-2A4F-C7C8-6176-5DEDA8E139E9}.Release|Win32.ActiveCfg = Release|Win32
{EA02FAE0-2A4F-C7C8-6176-5DEDA8E139E9}.Release|Win32.Build.0 = Release|Win32
{394B82B6-3999-E576-5458-2D2EB4229509}.Debug|Win32.ActiveCfg = Debug|Win32
{394B82B6-3999-E576-5458-2D2EB4229509}.Debug|Win32.Build.0 = Debug|Win32
{394B82B6-3999-E576-5458-2D2EB4229509}.Release|Win32.ActiveCfg = Release|Win32
{394B82B6-3999-E576-5458-2D2EB4229509}.Release|Win32.Build.0 = Release|Win32
{C6A1B4E3-DFD8-CD7B-5CBF-D3267A96FF21}.Debug|Win32.ActiveCfg = Debug|Win32
{C6A1B4E3-DFD8-CD7B-5CBF-D3267A96FF21}.Debug|Win32.Build.0 = Debug|Win32
{C6A1B4E3-DFD8-CD7B-5CBF-D3267A96FF21}.Release|Win32.ActiveCfg = Release|Win32
{C6A1B4E3-DFD8-CD7B-5CBF-D3267A96FF21}.Release|Win32.Build.0 = Release|Win32
{E4F39B89-9731-571D-B69D-C1B8FE56C056}.Debug|Win32.ActiveCfg = Debug|Win32
{E4F39B89-9731-571D-B69D-C1B8FE56C056}.Debug|Win32.Build.0 = Debug|Win32
{E4F39B89-9731-571D-B69D-C1B8FE56C056}.Release|Win32.ActiveCfg = Release|Win32
{E4F39B89-9731-571D-B69D-C1B8FE56C056}.Release|Win32.Build.0 = Release|Win32
{03F753C0-8BA5-FF2B-D7D2-EE230B4683B1}.Debug|Win32.ActiveCfg = Debug|Win32
{03F753C0-8BA5-FF2B-D7D2-EE230B4683B1}.Debug|Win32.Build.0 = Debug|Win32
{03F753C0-8BA5-FF2B-D7D2-EE230B4683B1}.Release|Win32.ActiveCfg = Release|Win32
{03F753C0-8BA5-FF2B-D7D2-EE230B4683B1}.Release|Win32.Build.0 = Release|Win32
{90A78BD4-2532-39D9-6D34-7A3C2648508C}.Debug|Win32.ActiveCfg = Debug|Win32
{90A78BD4-2532-39D9-6D34-7A3C2648508C}.Debug|Win32.Build.0 = Debug|Win32
{90A78BD4-2532-39D9-6D34-7A3C2648508C}.Release|Win32.ActiveCfg = Release|Win32
{90A78BD4-2532-39D9-6D34-7A3C2648508C}.Release|Win32.Build.0 = Release|Win32
{0B6929D0-4447-E035-E47A-EBFCE557D5B3}.Debug|Win32.ActiveCfg = Debug|Win32
{0B6929D0-4447-E035-E47A-EBFCE557D5B3}.Debug|Win32.Build.0 = Debug|Win32
{0B6929D0-4447-E035-E47A-EBFCE557D5B3}.Release|Win32.ActiveCfg = Release|Win32
{0B6929D0-4447-E035-E47A-EBFCE557D5B3}.Release|Win32.Build.0 = Release|Win32
{6B017447-F682-A137-8DF4-4608281F2C9F}.Debug|Win32.ActiveCfg = Debug|Win32
{6B017447-F682-A137-8DF4-4608281F2C9F}.Debug|Win32.Build.0 = Debug|Win32
{6B017447-F682-A137-8DF4-4608281F2C9F}.Release|Win32.ActiveCfg = Release|Win32
{6B017447-F682-A137-8DF4-4608281F2C9F}.Release|Win32.Build.0 = Release|Win32
{81EE9F71-4DFD-8670-B3EA-7B4E931E9845}.Debug|Win32.ActiveCfg = Debug|Win32
{81EE9F71-4DFD-8670-B3EA-7B4E931E9845}.Debug|Win32.Build.0 = Debug|Win32
{81EE9F71-4DFD-8670-B3EA-7B4E931E9845}.Release|Win32.ActiveCfg = Release|Win32
{81EE9F71-4DFD-8670-B3EA-7B4E931E9845}.Release|Win32.Build.0 = Release|Win32
{AC70A841-561F-4DAE-7864-E50541AD99ED}.Debug|Win32.ActiveCfg = Debug|Win32
{AC70A841-561F-4DAE-7864-E50541AD99ED}.Debug|Win32.Build.0 = Debug|Win32
{AC70A841-561F-4DAE-7864-E50541AD99ED}.Release|Win32.ActiveCfg = Release|Win32
{AC70A841-561F-4DAE-7864-E50541AD99ED}.Release|Win32.Build.0 = Release|Win32
{E3E2CF1C-9EE4-3173-C39F-D0D4F5483CB6}.Debug|Win32.ActiveCfg = Debug|Win32
{E3E2CF1C-9EE4-3173-C39F-D0D4F5483CB6}.Debug|Win32.Build.0 = Debug|Win32
{E3E2CF1C-9EE4-3173-C39F-D0D4F5483CB6}.Release|Win32.ActiveCfg = Release|Win32
{E3E2CF1C-9EE4-3173-C39F-D0D4F5483CB6}.Release|Win32.Build.0 = Release|Win32
{F69B3672-C5E8-CD1A-257F-253A25B5B939}.Debug|Win32.ActiveCfg = Debug|Win32
{F69B3672-C5E8-CD1A-257F-253A25B5B939}.Debug|Win32.Build.0 = Debug|Win32
{F69B3672-C5E8-CD1A-257F-253A25B5B939}.Release|Win32.ActiveCfg = Release|Win32
{F69B3672-C5E8-CD1A-257F-253A25B5B939}.Release|Win32.Build.0 = Release|Win32
{353A799F-E73F-7A69-07AD-B2AD57F3B775}.Debug|Win32.ActiveCfg = Debug|Win32
{353A799F-E73F-7A69-07AD-B2AD57F3B775}.Debug|Win32.Build.0 = Debug|Win32
{353A799F-E73F-7A69-07AD-B2AD57F3B775}.Release|Win32.ActiveCfg = Release|Win32
{353A799F-E73F-7A69-07AD-B2AD57F3B775}.Release|Win32.Build.0 = Release|Win32
{7855B476-B6D4-535D-F7A9-D623245F8B07}.Debug|Win32.ActiveCfg = Debug|Win32
{7855B476-B6D4-535D-F7A9-D623245F8B07}.Debug|Win32.Build.0 = Debug|Win32
{7855B476-B6D4-535D-F7A9-D623245F8B07}.Release|Win32.ActiveCfg = Release|Win32
{7855B476-B6D4-535D-F7A9-D623245F8B07}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,26 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Client (HL2MP)", "game\client\client_hl2mp-2010.vcxproj", "{17BCE59A-9037-EC8D-433E-F81339E2F1BA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server (HL2MP)", "game\server\server_hl2mp-2010.vcxproj", "{33B7DFDC-BECB-3678-1190-6C951E393EB3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Debug|Win32.ActiveCfg = Debug|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Debug|Win32.Build.0 = Debug|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Release|Win32.ActiveCfg = Release|Win32
{17BCE59A-9037-EC8D-433E-F81339E2F1BA}.Release|Win32.Build.0 = Release|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Debug|Win32.ActiveCfg = Debug|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Debug|Win32.Build.0 = Debug|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Release|Win32.ActiveCfg = Release|Win32
{33B7DFDC-BECB-3678-1190-6C951E393EB3}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,121 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef IGAMEUI_H
#define IGAMEUI_H
#ifdef _WIN32
#pragma once
#endif
#include "interface.h"
#include "vgui/IPanel.h"
#if !defined( _X360 )
#include "xbox/xboxstubs.h"
#endif
// reasons why the user can't connect to a game server
enum ESteamLoginFailure
{
STEAMLOGINFAILURE_NONE,
STEAMLOGINFAILURE_BADTICKET,
STEAMLOGINFAILURE_NOSTEAMLOGIN,
STEAMLOGINFAILURE_VACBANNED,
STEAMLOGINFAILURE_LOGGED_IN_ELSEWHERE
};
enum ESystemNotify
{
SYSTEMNOTIFY_STORAGEDEVICES_CHANGED,
SYSTEMNOTIFY_USER_SIGNEDIN,
SYSTEMNOTIFY_USER_SIGNEDOUT,
SYSTEMNOTIFY_XUIOPENING,
SYSTEMNOTIFY_XUICLOSED,
SYSTEMNOTIFY_INVITE_SHUTDOWN, // Cross-game invite is causing us to shutdown
};
//-----------------------------------------------------------------------------
// Purpose: contains all the functions that the GameUI dll exports
//-----------------------------------------------------------------------------
abstract_class IGameUI
{
public:
// initialization/shutdown
virtual void Initialize( CreateInterfaceFn appFactory ) = 0;
virtual void PostInit() = 0;
// connect to other interfaces at the same level (gameui.dll/server.dll/client.dll)
virtual void Connect( CreateInterfaceFn gameFactory ) = 0;
virtual void Start() = 0;
virtual void Shutdown() = 0;
virtual void RunFrame() = 0;
// notifications
virtual void OnGameUIActivated() = 0;
virtual void OnGameUIHidden() = 0;
// OLD: Use OnConnectToServer2
virtual void OLD_OnConnectToServer(const char *game, int IP, int port) = 0;
virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) = 0;
virtual void OnLevelLoadingStarted(bool bShowProgressDialog) = 0;
virtual void OnLevelLoadingFinished(bool bError, const char *failureReason, const char *extendedReason) = 0;
// level loading progress, returns true if the screen needs updating
virtual bool UpdateProgressBar(float progress, const char *statusText) = 0;
// Shows progress desc, returns previous setting... (used with custom progress bars )
virtual bool SetShowProgressText( bool show ) = 0;
// !!!!!!!!!members added after "GameUI011" initial release!!!!!!!!!!!!!!!!!!!
virtual void ShowNewGameDialog( int chapter ) = 0;
// Xbox 360
virtual void SessionNotification( const int notification, const int param = 0 ) = 0;
virtual void SystemNotification( const int notification ) = 0;
virtual void ShowMessageDialog( const uint nType, vgui::Panel *pOwner ) = 0;
virtual void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ) = 0;
virtual void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ) = 0;
virtual void OnCreditsFinished( void ) = 0;
// inserts specified panel as background for level load dialog
virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ) = 0;
// Bonus maps interfaces
virtual void BonusMapUnlock( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
virtual void BonusMapComplete( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
virtual void BonusMapChallengeUpdate( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest ) = 0;
virtual void BonusMapChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName ) = 0;
virtual void BonusMapChallengeObjectives( int &iBronze, int &iSilver, int &iGold ) = 0;
virtual void BonusMapDatabaseSave( void ) = 0;
virtual int BonusMapNumAdvancedCompleted( void ) = 0;
virtual void BonusMapNumMedals( int piNumMedals[ 3 ] ) = 0;
virtual void OnConnectToServer2(const char *game, int IP, int connectionPort, int queryPort) = 0;
// X360 Storage device validation:
// returns true right away if storage device has been previously selected.
// otherwise returns false and will set the variable pointed by pStorageDeviceValidated to 1
// once the storage device is selected by user.
virtual bool ValidateStorageDevice( int *pStorageDeviceValidated ) = 0;
virtual void SetProgressOnStart() = 0;
virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ) = 0;
virtual void OnConfirmQuit( void ) = 0;
virtual bool IsMainMenuVisible( void ) = 0;
// Client DLL is providing us with a panel that it wants to replace the main menu with
virtual void SetMainMenuOverride( vgui::VPANEL panel ) = 0;
// Client DLL is telling us that a main menu command was issued, probably from its custom main menu panel
virtual void SendMainMenuCommand( const char *pszCommand ) = 0;
};
#define GAMEUI_INTERFACE_VERSION "GameUI011"
#endif // IGAMEUI_H

View File

@ -0,0 +1,103 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Swap a compiled caption file.
//
// $NoKeywords: $
//=============================================================================//
#include "utlbuffer.h"
#include "byteswap.h"
#include "filesystem.h"
#include "tier2/fileutils.h"
#include "captioncompiler.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
BEGIN_BYTESWAP_DATADESC( CompiledCaptionHeader_t )
DEFINE_FIELD( magic, FIELD_INTEGER ),
DEFINE_FIELD( version, FIELD_INTEGER ),
DEFINE_FIELD( numblocks, FIELD_INTEGER ),
DEFINE_FIELD( blocksize, FIELD_INTEGER ),
DEFINE_FIELD( directorysize, FIELD_INTEGER ),
DEFINE_FIELD( dataoffset, FIELD_INTEGER ),
END_BYTESWAP_DATADESC()
BEGIN_BYTESWAP_DATADESC( CaptionLookup_t )
DEFINE_FIELD( hash, FIELD_INTEGER ),
DEFINE_FIELD( blockNum, FIELD_INTEGER ),
DEFINE_FIELD( offset, FIELD_SHORT ),
DEFINE_FIELD( length, FIELD_SHORT ),
END_BYTESWAP_DATADESC()
//-----------------------------------------------------------------------------
// Swap a compiled closecaption file
//-----------------------------------------------------------------------------
bool SwapClosecaptionFile( void *pData )
{
CByteswap swap;
swap.ActivateByteSwapping( true );
CompiledCaptionHeader_t *pHdr = (CompiledCaptionHeader_t*)pData;
if ( IsX360() )
{
// pre-swap file header
swap.SwapFieldsToTargetEndian( pHdr );
}
if ( pHdr->magic != COMPILED_CAPTION_FILEID || pHdr->version != COMPILED_CAPTION_VERSION )
{
// bad data
return false;
}
// lookup headers
pData = (byte*)pData + sizeof(CompiledCaptionHeader_t);
swap.SwapFieldsToTargetEndian( (CaptionLookup_t*)pData, pHdr->directorysize );
// unicode data
pData = (byte*)pHdr + pHdr->dataoffset;
swap.SwapBufferToTargetEndian( (wchar_t*)pData, (wchar_t*)pData, pHdr->numblocks * pHdr->blocksize / sizeof(wchar_t) );
if ( IsPC() )
{
// post-swap file header
swap.SwapFieldsToTargetEndian( pHdr );
}
return true;
}
#if defined( CLIENT_DLL )
//-----------------------------------------------------------------------------
// Callback for UpdateOrCreate - generates .360 file
//-----------------------------------------------------------------------------
static bool CaptionCreateCallback( const char *pSourceName, const char *pTargetName, const char *pPathID, void *pExtraData )
{
// Generate the file
CUtlBuffer buf;
bool bOk = g_pFullFileSystem->ReadFile( pSourceName, pPathID, buf );
if ( bOk )
{
bOk = SwapClosecaptionFile( buf.Base() );
if ( bOk )
{
bOk = g_pFullFileSystem->WriteFile( pTargetName, pPathID, buf );
}
else
{
Warning( "Failed to create %s\n", pTargetName );
}
}
return bOk;
}
//-----------------------------------------------------------------------------
// Calls utility function UpdateOrCreate
//-----------------------------------------------------------------------------
int UpdateOrCreateCaptionFile( const char *pSourceName, char *pTargetName, int maxLen, bool bForce )
{
return ::UpdateOrCreate( pSourceName, pTargetName, maxLen, "GAME", CaptionCreateCallback, bForce );
}
#endif

View File

@ -0,0 +1,370 @@
////////////////////////////////////////////////////////////////////
//
// hl2orange.spa.h
//
// Auto-generated on Thursday, 13 September 2007 at 16:59:17
// XLAST project version 1.0.402.0
// SPA Compiler version 2.0.6274.0
//
////////////////////////////////////////////////////////////////////
#ifndef __THE_ORANGE_BOX_SPA_H__
#define __THE_ORANGE_BOX_SPA_H__
#ifdef __cplusplus
extern "C" {
#endif
//
// Title info
//
#define TITLEID_THE_ORANGE_BOX 0x4541080F
//
// Context ids
//
// These values are passed as the dwContextId to XUserSetContext.
//
#define CONTEXT_CHAPTER_HL2 0
#define CONTEXT_SCENARIO 1
#define CONTEXT_GAME 2
#define CONTEXT_CHAPTER_EP1 3
#define CONTEXT_CHAPTER_EP2 4
#define CONTEXT_CHAPTER_PORTAL 5
//
// Context values
//
// These values are passed as the dwContextValue to XUserSetContext.
//
// Values for CONTEXT_CHAPTER_HL2
#define CONTEXT_CHAPTER_HL2_POINT_INSERTION 0
#define CONTEXT_CHAPTER_HL2_A_RED_LETTER_DAY 1
#define CONTEXT_CHAPTER_HL2_ROUTE_KANAL 2
#define CONTEXT_CHAPTER_HL2_WATER_HAZARD 3
#define CONTEXT_CHAPTER_HL2_BLACK_MESA_EAST 4
#define CONTEXT_CHAPTER_HL2_RAVENHOLM 5
#define CONTEXT_CHAPTER_HL2_HIGHWAY_17 6
#define CONTEXT_CHAPTER_HL2_SANDTRAPS 7
#define CONTEXT_CHAPTER_HL2_NOVA_PROSPEKT 8
#define CONTEXT_CHAPTER_HL2_ENTANGLEMENT 9
#define CONTEXT_CHAPTER_HL2_ANTICITIZEN_ONE 10
#define CONTEXT_CHAPTER_HL2_FOLLOW_FREEMAN 11
#define CONTEXT_CHAPTER_HL2_OUR_BENEFACTORS 12
#define CONTEXT_CHAPTER_HL2_DARK_ENERGY 13
// Values for CONTEXT_SCENARIO
#define CONTEXT_SCENARIO_CTF_2FORT 0
#define CONTEXT_SCENARIO_CP_DUSTBOWL 1
#define CONTEXT_SCENARIO_CP_GRANARY 2
#define CONTEXT_SCENARIO_CP_WELL 3
#define CONTEXT_SCENARIO_CP_GRAVELPIT 4
#define CONTEXT_SCENARIO_TC_HYDRO 5
#define CONTEXT_SCENARIO_CTF_CLOAK 6
#define CONTEXT_SCENARIO_CP_CLOAK 7
// Values for CONTEXT_GAME
#define CONTEXT_GAME_GAME_HALF_LIFE_2 0
#define CONTEXT_GAME_GAME_EPISODE_ONE 1
#define CONTEXT_GAME_GAME_EPISODE_TWO 2
#define CONTEXT_GAME_GAME_PORTAL 3
#define CONTEXT_GAME_GAME_TEAM_FORTRESS 4
// Values for CONTEXT_CHAPTER_EP1
#define CONTEXT_CHAPTER_EP1_UNDUE_ALARM 0
#define CONTEXT_CHAPTER_EP1_DIRECT_INTERVENTION 1
#define CONTEXT_CHAPTER_EP1_LOWLIFE 2
#define CONTEXT_CHAPTER_EP1_URBAN_FLIGHT 3
#define CONTEXT_CHAPTER_EP1_EXIT_17 4
// Values for CONTEXT_CHAPTER_EP2
#define CONTEXT_CHAPTER_EP2_TO_THE_WHITE_FOREST 0
#define CONTEXT_CHAPTER_EP2_THIS_VORTAL_COIL 1
#define CONTEXT_CHAPTER_EP2_FREEMAN_PONTIFEX 2
#define CONTEXT_CHAPTER_EP2_RIDING_SHOTGUN 3
#define CONTEXT_CHAPTER_EP2_UNDER_THE_RADAR 4
#define CONTEXT_CHAPTER_EP2_OUR_MUTUAL_FIEND 5
#define CONTEXT_CHAPTER_EP2_T_MINUS_ONE 6
// Values for CONTEXT_CHAPTER_PORTAL
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_00 0
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_04 1
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_08 2
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_10 3
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_13 4
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_14 5
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_15 6
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_16 7
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_17 8
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_18 9
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_19 10
// Values for X_CONTEXT_PRESENCE
#define CONTEXT_PRESENCE_TF_CP 0
#define CONTEXT_PRESENCE_TF_CTF_LOSING 1
#define CONTEXT_PRESENCE_TF_CTF_TIED 2
#define CONTEXT_PRESENCE_TF_CTF_WINNING 3
#define CONTEXT_PRESENCE_APPCHOOSER 4
#define CONTEXT_PRESENCE_MENU 5
#define CONTEXT_PRESENCE_EP1_INGAME 6
#define CONTEXT_PRESENCE_HL2_INGAME 7
#define CONTEXT_PRESENCE_EP2_INGAME 8
#define CONTEXT_PRESENCE_PORTAL_INGAME 9
#define CONTEXT_PRESENCE_COMMENTARY 10
#define CONTEXT_PRESENCE_IDLE 11
// Values for X_CONTEXT_GAME_MODE
#define CONTEXT_GAME_MODE_MULTIPLAYER 0
#define CONTEXT_GAME_MODE_SINGLEPLAYER 1
//
// Property ids
//
// These values are passed as the dwPropertyId value to XUserSetProperty
// and as the dwPropertyId value in the XUSER_PROPERTY structure.
//
#define PROPERTY_CAPS_OWNED 0x10000000
#define PROPERTY_CAPS_TOTAL 0x10000001
#define PROPERTY_PLAYER_TEAM_SCORE 0x10000002
#define PROPERTY_OPPONENT_TEAM_SCORE 0x10000003
#define PROPERTY_FLAG_CAPTURE_LIMIT 0x1000000B
#define PROPERTY_NUMBER_OF_ROUNDS 0x1000000C
#define PROPERTY_GAME_SIZE 0x1000000D
#define PROPERTY_AUTOBALANCE 0x1000000E
#define PROPERTY_PRIVATE_SLOTS 0x1000000F
#define PROPERTY_MAX_GAME_TIME 0x10000010
#define PROPERTY_NUMBER_OF_KILLS 0x10000011
#define PROPERTY_DAMAGE_DEALT 0x10000012
#define PROPERTY_PLAY_TIME 0x10000013
#define PROPERTY_POINT_CAPTURES 0x10000014
#define PROPERTY_POINT_DEFENSES 0x10000015
#define PROPERTY_DOMINATIONS 0x10000016
#define PROPERTY_REVENGE 0x10000017
#define PROPERTY_BUILDINGS_DESTROYED 0x10000019
#define PROPERTY_HEADSHOTS 0x1000001A
#define PROPERTY_HEALTH_POINTS_HEALED 0x1000001B
#define PROPERTY_INVULNS 0x1000001C
#define PROPERTY_KILL_ASSISTS 0x1000001D
#define PROPERTY_BACKSTABS 0x1000001E
#define PROPERTY_HEALTH_POINTS_LEACHED 0x1000001F
#define PROPERTY_BUILDINGS_BUILT 0x10000020
#define PROPERTY_SENTRY_KILLS 0x10000021
#define PROPERTY_TELEPORTS 0x10000022
#define PROPERTY_KILLS 0x10000023
#define PROPERTY_NUMBER_OF_TEAMS 0x10000025
#define PROPERTY_TEAM_RED 0x10000026
#define PROPERTY_TEAM_BLUE 0x10000027
#define PROPERTY_TEAM_SPECTATOR 0x10000028
#define PROPERTY_TEAM 0x10000029
#define PROPERTY_WIN_LIMIT 0x1000002A
#define PROPERTY_RANKING_TEST 0x2000000A
#define PROPERTY_POINTS_SCORED 0x20000018
//
// Achievement ids
//
// These values are used in the dwAchievementId member of the
// XUSER_ACHIEVEMENT structure that is used with
// XUserWriteAchievements and XUserCreateAchievementEnumerator.
//
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHPHYSICS 43
#define ACHIEVEMENT_HLX_KILL_ENEMY_WITHHOPPERMINE 44
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHMANHACK 45
#define ACHIEVEMENT_HLX_KILL_SOLDIER_WITHHISGRENADE 46
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHONEENERGYBALL 47
#define ACHIEVEMENT_HLX_KILL_ELITESOLDIER_WITHHISENERGYBALL 48
#define ACHIEVEMENT_EPX_GET_ZOMBINEGRENADE 50
#define ACHIEVEMENT_EPX_KILL_ZOMBIES_WITHFLARES 51
#define ACHIEVEMENT_HL2_HIT_CANCOP_WITHCAN 52
#define ACHIEVEMENT_HL2_PUT_CANINTRASH 53
#define ACHIEVEMENT_HL2_ESCAPE_APARTMENTRAID 54
#define ACHIEVEMENT_HL2_BREAK_MINITELEPORTER 55
#define ACHIEVEMENT_HL2_GET_CROWBAR 56
#define ACHIEVEMENT_HL2_KILL_BARNACLESWITHBARREL 57
#define ACHIEVEMENT_HL2_GET_AIRBOAT 58
#define ACHIEVEMENT_HL2_GET_AIRBOATGUN 60
#define ACHIEVEMENT_HL2_FIND_VORTIGAUNTCAVE 61
#define ACHIEVEMENT_HL2_KILL_CHOPPER 62
#define ACHIEVEMENT_HL2_FIND_HEVFACEPLATE 63
#define ACHIEVEMENT_HL2_GET_GRAVITYGUN 64
#define ACHIEVEMENT_HL2_MAKEABASKET 65
#define ACHIEVEMENT_HL2_BEAT_RAVENHOLM_NOWEAPONS 66
#define ACHIEVEMENT_HL2_BEAT_CEMETERY 67
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHCRANE 68
#define ACHIEVEMENT_HL2_PIN_SOLDIER_TOBILLBOARD 69
#define ACHIEVEMENT_HL2_KILL_ODESSAGUNSHIP 70
#define ACHIEVEMENT_HL2_KILL_THREEGUNSHIPS 71
#define ACHIEVEMENT_HL2_BEAT_DONTTOUCHSAND 72
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHANTLIONS 74
#define ACHIEVEMENT_HL2_KILL_ENEMY_WITHTOILET 75
#define ACHIEVEMENT_HL2_BEAT_TURRETSTANDOFF2 76
#define ACHIEVEMENT_HL2_BEAT_TOXICTUNNEL 78
#define ACHIEVEMENT_HL2_BEAT_PLAZASTANDOFF 79
#define ACHIEVEMENT_HL2_KILL_ALLC1709SNIPERS 80
#define ACHIEVEMENT_HL2_BEAT_SUPRESSIONDEVICE 81
#define ACHIEVEMENT_HL2_BEAT_C1713STRIDERSTANDOFF 82
#define ACHIEVEMENT_HL2_BEAT_GAME 84
#define ACHIEVEMENT_HL2_FIND_ALLLAMBDAS 86
#define ACHIEVEMENT_EP1_BEAT_MAINELEVATOR 87
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE 88
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE_NOSTALKERKILLS 89
#define ACHIEVEMENT_EP1_KILL_ANTLIONS_WITHCARS 90
#define ACHIEVEMENT_EP1_BEAT_GARAGEELEVATORSTANDOFF 91
#define ACHIEVEMENT_EP1_KILL_ENEMIES_WITHSNIPERALYX 92
#define ACHIEVEMENT_EP1_BEAT_HOSPITALATTICGUNSHIP 93
#define ACHIEVEMENT_EP1_BEAT_CITIZENESCORT_NOCITIZENDEATHS 94
#define ACHIEVEMENT_EP1_BEAT_GAME 95
#define ACHIEVEMENT_EP1_BEAT_GAME_ONEBULLET 96
#define ACHIEVEMENT_EP2_KILL_POISONANTLION 97
#define ACHIEVEMENT_EP2_KILL_ALLGRUBS 98
#define ACHIEVEMENT_EP2_BREAK_ALLWEBS 99
#define ACHIEVEMENT_EP2_BEAT_ANTLIONINVASION 100
#define ACHIEVEMENT_EP2_BEAT_ANTLIONGUARDS 101
#define ACHIEVEMENT_EP2_KILL_ENEMIES_WITHCAR 102
#define ACHIEVEMENT_EP2_BEAT_HUNTERAMBUSH 103
#define ACHIEVEMENT_EP2_KILL_CHOPPER_NOMISSES 104
#define ACHIEVEMENT_EP2_KILL_COMBINECANNON 105
#define ACHIEVEMENT_EP2_FIND_ALLRADARCACHES 106
#define ACHIEVEMENT_EP2_BEAT_ROCKETCACHEPUZZLE 107
#define ACHIEVEMENT_EP2_BEAT_RACEWITHDOG 108
#define ACHIEVEMENT_EP2_BEAT_WHITEFORESTINN 109
#define ACHIEVEMENT_EP2_PUT_ITEMINROCKET 110
#define ACHIEVEMENT_EP2_BEAT_MISSILESILO2 111
#define ACHIEVEMENT_EP2_BEAT_OUTLAND12_NOBUILDINGSDESTROYED 112
#define ACHIEVEMENT_EP2_BEAT_GAME 113
#define ACHIEVEMENT_EP2_KILL_HUNTER_WITHFLECHETTES 114
#define ACHIEVEMENT_PORTAL_GET_PORTALGUNS 115
#define ACHIEVEMENT_PORTAL_KILL_COMPANIONCUBE 116
#define ACHIEVEMENT_PORTAL_ESCAPE_TESTCHAMBERS 117
#define ACHIEVEMENT_PORTAL_BEAT_GAME 118
#define ACHIEVEMENT_PORTAL_INFINITEFALL 119
#define ACHIEVEMENT_PORTAL_LONGJUMP 120
#define ACHIEVEMENT_PORTAL_BEAT_2ADVANCEDMAPS 121
#define ACHIEVEMENT_PORTAL_BEAT_4ADVANCEDMAPS 122
#define ACHIEVEMENT_PORTAL_BEAT_6ADVANCEDMAPS 123
#define ACHIEVEMENT_PORTAL_GET_ALLBRONZE 124
#define ACHIEVEMENT_PORTAL_GET_ALLSILVER 125
#define ACHIEVEMENT_PORTAL_GET_ALLGOLD 126
#define ACHIEVEMENT_TF_GET_TURRETKILLS 127
#define ACHIEVEMENT_TF_KILL_NEMESIS 128
#define ACHIEVEMENT_TF_GET_CONSECUTIVEKILLS_NODEATHS 129
#define ACHIEVEMENT_TF_GET_HEALED_BYENEMY 130
#define ACHIEVEMENT_TF_PLAY_GAME_FRIENDSONLY 131
#define ACHIEVEMENT_TF_WIN_MULTIPLEGAMES 132
#define ACHIEVEMENT_TF_GET_MULTIPLEKILLS 133
#define ACHIEVEMENT_TF_WIN_2FORT_NOENEMYCAPS 134
#define ACHIEVEMENT_TF_WIN_WELL_MINIMUMTIME 135
#define ACHIEVEMENT_TF_WIN_HYDRO_NOENEMYCAPS 136
#define ACHIEVEMENT_TF_WIN_DUSTBOWL_NOENEMYCAPS 137
#define ACHIEVEMENT_TF_WIN_GRAVELPIT_NOENEMYCAPS 138
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYCLASS 139
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYMAP 140
#define ACHIEVEMENT_TF_GET_HEALPOINTS 141
#define ACHIEVEMENT_TF_BURN_PLAYERSINMINIMIMTIME 142
#define ACHIEVEMENT_HL2_DISINTEGRATE_SOLDIERSINFIELD 143
#define ACHIEVEMENT_HL2_FOLLOW_FREEMAN 144
#define ACHIEVEMENT_TF_GET_HEADSHOTS 145
#define ACHIEVEMENT_PORTAL_DETACH_ALL_CAMERAS 146
#define ACHIEVEMENT_PORTAL_HIT_TURRET_WITH_TURRET 148
#ifndef _XBOX
#define ACHIEVEMENT_PORTAL_TRANSMISSION_RECEIVED 149
#define ACHIEVEMENT_TF_GENERAL_KILL_ENEMIES_AFTER_TELEPORTING 150
#endif // _XBOX
#define ACHIEVEMENT_TF_LAST_ORANGEBOX 150
//
// Stats view ids
//
// These are used in the dwViewId member of the XUSER_STATS_SPEC structure
// passed to the XUserReadStats* and XUserCreateStatsEnumerator* functions.
//
// Skill leaderboards for ranked game modes
#define STATS_VIEW_SKILL_RANKED_MULTIPLAYER 0xFFFF0000
#define STATS_VIEW_SKILL_RANKED_SINGLEPLAYER 0xFFFF0001
// Skill leaderboards for unranked (standard) game modes
#define STATS_VIEW_SKILL_STANDARD_MULTIPLAYER 0xFFFE0000
#define STATS_VIEW_SKILL_STANDARD_SINGLEPLAYER 0xFFFE0001
// Title defined leaderboards
#define STATS_VIEW_PLAYER_MAX_UNRANKED 1
#define STATS_VIEW_PLAYER_MAX_RANKED 2
//
// Stats view column ids
//
// These ids are used to read columns of stats views. They are specified in
// the rgwColumnIds array of the XUSER_STATS_SPEC structure. Rank, rating
// and gamertag are not retrieved as custom columns and so are not included
// in the following definitions. They can be retrieved from each row's
// header (e.g., pStatsResults->pViews[x].pRows[y].dwRank, etc.).
//
// Column ids for PLAYER_MAX_UNRANKED
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_SCORED 2
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILLS 3
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_CAPPED 1
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DAMAGE_DEALT 4
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_PLAY_TIME 5
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINT_DEFENSES 6
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DOMINATIONS 7
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_REVENGE 8
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_DESTROYED 9
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEADSHOTS 10
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_HEALED 11
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_INVULNS 12
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILL_ASSISTS 13
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BACKSTABS 14
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_LEACHED 15
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_BUILT 16
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_SENTRY_KILLS 17
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_TELEPORTS 18
// Column ids for PLAYER_MAX_RANKED
#define STATS_COLUMN_PLAYER_MAX_RANKED_POINTS_SCORED 2
//
// Matchmaking queries
//
// These values are passed as the dwProcedureIndex parameter to
// XSessionSearch to indicate which matchmaking query to run.
//
#define SESSION_MATCH_QUERY_PLAYER_MATCH 0
//
// Gamer pictures
//
// These ids are passed as the dwPictureId parameter to XUserAwardGamerTile.
//
#ifdef __cplusplus
}
#endif
#endif // __THE_ORANGE_BOX_SPA_H__

217
mp/src/common/language.cpp Normal file
View File

@ -0,0 +1,217 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: languages definition
//
//=============================================================================
#include "language.h"
#include "tier0/dbg.h"
#include "tier1/strtools.h"
// NOTE: This has to be the last file included!
#include "tier0/memdbgon.h"
struct Language_t
{
const char *m_pchName;
const char *m_pchShortName;
const char *m_pchVGUILocalizationName;
const char *m_pchICUName; // used by osx; ISO-639-1 + ISO-3166-1 alpha-2. http://userguide.icu-project.org/locale/examples
ELanguage m_ELanguage;
int m_LanguageCodeID;
};
// REVIEW
// es_ES - use new world spanish country code instead?
// zh_CN - validate that SC date formats come through
// bt_BR - assume we should use Brazilian rather than Iberian portguese
static const Language_t s_LanguageNames[] =
{
{ "None", "none", "None", "none", k_Lang_None, 0 },
{ "English", "english", "#GameUI_Language_English", "en_US", k_Lang_English, 1033 },
{ "German", "german", "#GameUI_Language_German", "de_DE", k_Lang_German, 1031 } ,
{ "French", "french", "#GameUI_Language_French", "fr_FR", k_Lang_French, 1036 } ,
{ "Italian", "italian", "#GameUI_Language_Italian", "it_IT", k_Lang_Italian, 1040 } ,
{ "Korean", "koreana", "#GameUI_Language_Korean", "ko_KR", k_Lang_Korean, 1042 } ,
{ "Spanish", "spanish", "#GameUI_Language_Spanish", "es_ES", k_Lang_Spanish, 1034 },
{ "Simplified_Chinese", "schinese", "#GameUI_Language_Simplified_Chinese", "zh_CN", k_Lang_Simplified_Chinese, 2052 },
{ "Traditional_Chinese", "tchinese", "#GameUI_Language_Traditional_Chinese", "zh_TW", k_Lang_Traditional_Chinese, 1028 },
{ "Russian", "russian", "#GameUI_Language_Russian", "ru_RU", k_Lang_Russian, 1049 } ,
{ "Thai", "thai", "#GameUI_Language_Thai", "th_TH", k_Lang_Thai, 1054 } ,
{ "Japanese", "japanese", "#GameUI_Language_Japanese", "ja_JP", k_Lang_Japanese, 1041 } ,
{ "Portuguese", "portuguese", "#GameUI_Language_Portuguese", "pt_PT", k_Lang_Portuguese, 2070 } ,
{ "Polish", "polish", "#GameUI_Language_Polish", "pl_PL", k_Lang_Polish, 1045 } ,
{ "Danish", "danish", "#GameUI_Language_Danish", "da_DK", k_Lang_Danish, 1030 } ,
{ "Dutch", "dutch", "#GameUI_Language_Dutch", "nl_NL", k_Lang_Dutch, 1043 } ,
{ "Finnish", "finnish", "#GameUI_Language_Finnish", "fi_FI", k_Lang_Finnish, 1035 } ,
{ "Norwegian", "norwegian", "#GameUI_Language_Norwegian", "no_NO", k_Lang_Norwegian, 1044 } ,
{ "Swedish", "swedish", "#GameUI_Language_Swedish", "sv_SE", k_Lang_Swedish, 1053 } ,
{ "Romanian", "romanian", "#GameUI_Language_Romanian", "ro_RO", k_Lang_Romanian, 1048 } ,
{ "Turkish", "turkish", "#GameUI_Language_Turkish", "tr_TR", k_Lang_Turkish, 1055 } ,
{ "Hungarian", "hungarian", "#GameUI_Language_Hungarian", "hu_HU", k_Lang_Hungarian, 1038 } ,
{ "Czech", "czech", "#GameUI_Language_Czech", "cs_CZ", k_Lang_Czech, 1029 } ,
{ "Brazilian", "brazilian", "#GameUI_Language_Brazilian", "pt_BR", k_Lang_Brazilian, 1046 } ,
{ "Bulgarian", "bulgarian", "#GameUI_Language_Bulgarian", "bg_BG", k_Lang_Bulgarian, 1026 } ,
{ "Greek", "greek", "#GameUI_Language_Greek", "el_GR", k_Lang_Greek, 1032 },
};
//-----------------------------------------------------------------------------
// Purpose: translate language enum into closests windows language code ID
//-----------------------------------------------------------------------------
int GetLanguageCodeID(ELanguage eLang)
{
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
{
if ( s_LanguageNames[iLang].m_ELanguage == eLang )
return s_LanguageNames[iLang].m_LanguageCodeID;
}
// default to English
return 1033;
}
//-----------------------------------------------------------------------------
// Purpose: find the language by name
//-----------------------------------------------------------------------------
ELanguage PchLanguageToELanguage( const char *pchShortName, ELanguage eDefault )
{
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
if ( !pchShortName )
return eDefault;
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
{
if ( !Q_stricmp( pchShortName, s_LanguageNames[iLang].m_pchShortName ) )
{
return s_LanguageNames[iLang].m_ELanguage;
}
}
// return default
return eDefault;
}
//-----------------------------------------------------------------------------
// Purpose: find the language by ICU short code
//-----------------------------------------------------------------------------
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault )
{
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
if ( !pchICUCode )
return eDefault;
// Match to no more than the param length so either a short 'en' or
// full 'zh-Hant' can match
int nLen = Q_strlen( pchICUCode );
// we only have 5 character ICU codes so this should be enough room
char rchCleanedCode[ 6 ];
Q_strncpy( rchCleanedCode, pchICUCode, Q_ARRAYSIZE( rchCleanedCode ) );
if( nLen >= 3 && rchCleanedCode[ 2 ] == '-' )
{
rchCleanedCode[ 2 ] = '_';
}
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
{
if ( !Q_strnicmp( rchCleanedCode, s_LanguageNames[iLang].m_pchICUName, nLen ) )
{
return s_LanguageNames[iLang].m_ELanguage;
}
}
// return default
return eDefault;
}
//-----------------------------------------------------------------------------
// Purpose: return the short string name used for this language by SteamUI
//-----------------------------------------------------------------------------
const char *GetLanguageShortName( ELanguage eLang )
{
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
{
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
return s_LanguageNames[ eLang + 1 ].m_pchShortName;
}
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
return s_LanguageNames[0].m_pchShortName;
}
//-----------------------------------------------------------------------------
// Purpose: return the ICU code used for this language by SteamUI
//-----------------------------------------------------------------------------
const char *GetLanguageICUName( ELanguage eLang )
{
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
{
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
return s_LanguageNames[ eLang + 1 ].m_pchICUName;
}
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
return s_LanguageNames[0].m_pchICUName;
}
//-----------------------------------------------------------------------------
// Purpose: return the CLocale name that works with setlocale()
//-----------------------------------------------------------------------------
const char *GetLangugeCLocaleName( ELanguage eLang )
{
if ( eLang == k_Lang_None )
return "";
#ifdef _WIN32
// table for Win32 is here: http://msdn.microsoft.com/en-us/library/hzz3tw78(v=VS.80).aspx
// shortname works except for chinese
switch ( eLang )
{
case k_Lang_Simplified_Chinese:
return "chs"; // or "chinese-simplified"
case k_Lang_Traditional_Chinese:
return "cht"; // or "chinese-traditional"
case k_Lang_Korean:
return "korean"; // steam likes "koreana" for the name for some reason.
default:
return GetLanguageShortName( eLang );
}
#else
switch ( eLang )
{
case k_Lang_Simplified_Chinese:
case k_Lang_Traditional_Chinese:
return "zh_CN";
default:
;
}
// ICU codes work on linux/osx
return GetLanguageICUName( eLang );
#endif
}
//-----------------------------------------------------------------------------
// Purpose: return the short string name used for this language by SteamUI
//-----------------------------------------------------------------------------
const char *GetLanguageVGUILocalization( ELanguage eLang )
{
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
{
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
return s_LanguageNames[ eLang + 1 ].m_pchVGUILocalizationName;
}
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
return s_LanguageNames[0].m_pchVGUILocalizationName;
}

55
mp/src/common/language.h Normal file
View File

@ -0,0 +1,55 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: represent a canonical list of the languages we support,
//
//=============================================================================
#ifndef LANG_H
#define LANG_H
#ifdef _WIN32
#pragma once
#endif
// if you change this enum also change language.cpp:s_LanguageNames
enum ELanguage
{
k_Lang_None = -1,
k_Lang_First = 0,
k_Lang_English = 0,
k_Lang_German,
k_Lang_French,
k_Lang_Italian,
k_Lang_Korean,
k_Lang_Spanish,
k_Lang_Simplified_Chinese,
k_Lang_Traditional_Chinese,
k_Lang_Russian,
k_Lang_Thai,
k_Lang_Japanese,
k_Lang_Portuguese,
k_Lang_Polish,
k_Lang_Danish,
k_Lang_Dutch,
k_Lang_Finnish,
k_Lang_Norwegian,
k_Lang_Swedish,
k_Lang_Romanian,
k_Lang_Turkish,
k_Lang_Hungarian,
k_Lang_Czech,
k_Lang_Brazilian,
k_Lang_Bulgarian,
k_Lang_Greek,
k_Lang_MAX
};
#define FOR_EACH_LANGUAGE( eLang ) for ( int eLang = (int)k_Lang_First; eLang < k_Lang_MAX; ++eLang )
ELanguage PchLanguageToELanguage(const char *pchShortName, ELanguage eDefault = k_Lang_English);
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault = k_Lang_English );
const char *GetLanguageShortName( ELanguage eLang );
const char *GetLanguageICUName( ELanguage eLang );
const char *GetLanguageVGUILocalization( ELanguage eLang );
const char *GetLanguageName( ELanguage eLang );
#endif /* LANG_H */

View File

@ -0,0 +1,49 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
#if !defined( PROTO_VERSION_H )
#define PROTO_VERSION_H
#ifdef _WIN32
#pragma once
#endif
// The current network protocol version. Changing this makes clients and servers incompatible
#define PROTOCOL_VERSION 24
#define DEMO_BACKWARDCOMPATABILITY
// For backward compatibility of demo files (NET_MAX_PAYLOAD_BITS went away)
#define PROTOCOL_VERSION_23 23
// For backward compatibility of demo files (sound index bits used to = 13 )
#define PROTOCOL_VERSION_22 22
// For backward compatibility of demo files (before the special DSP was shipped to public)
#define PROTOCOL_VERSION_21 21
// For backward compatibility of demo files (old-style dynamic model loading)
#define PROTOCOL_VERSION_20 20
// For backward compatibility of demo files (post Halloween sound flag extra bit)
#define PROTOCOL_VERSION_19 19
// For backward compatibility of demo files (pre Halloween sound flag extra bit)
#define PROTOCOL_VERSION_18 18
// For backward compatibility of demo files (MD5 in map version)
#define PROTOCOL_VERSION_17 17
// For backward compatibility of demo files (create string tables compression flag)
#define PROTOCOL_VERSION_14 14
// For backward compatibility of demo files
#define PROTOCOL_VERSION_12 12
// The PROTOCOL_VERSION when replay shipped to public
#define PROTOCOL_VERSION_REPLAY 16
#endif

35
mp/src/common/qlimits.h Normal file
View File

@ -0,0 +1,35 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef QLIMITS_H
#define QLIMITS_H
#if defined( _WIN32 )
#pragma once
#endif
// DATA STRUCTURE INFO
#define MAX_NUM_ARGVS 50
// SYSTEM INFO
#define MAX_QPATH 96 // max length of a game pathname
#define MAX_OSPATH 260 // max length of a filesystem pathname
#define ON_EPSILON 0.1 // point on plane side epsilon
// Resource counts;
#define MAX_MODEL_INDEX_BITS 11 // sent as a short
#define MAX_MODELS (1<<MAX_MODEL_INDEX_BITS)
#define MAX_GENERIC_INDEX_BITS 9
#define MAX_GENERIC (1<<MAX_GENERIC_INDEX_BITS)
#define MAX_DECAL_INDEX_BITS 9
#define MAX_BASE_DECALS (1<<MAX_DECAL_INDEX_BITS)
#endif // QLIMITS_H

View File

@ -0,0 +1,27 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#if !defined(_STATIC_LINKED) || defined(_SHARED_LIB)
#include "stdlib.h"
#include "vstdlib/random.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
#ifdef GNUC
#define __cdecl
#endif
void __cdecl srand(unsigned int)
{
}
int __cdecl rand()
{
return RandomInt( 0, VALVE_RAND_MAX );
}
#endif // !_STATIC_LINKED || _SHARED_LIB

View File

@ -0,0 +1,43 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAYSERIALIIZEABLE_H
#define REPLAYSERIALIIZEABLE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/ireplayserializeable.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class CBaseReplaySerializeable : public IReplaySerializeable
{
public:
CBaseReplaySerializeable();
virtual void SetHandle( ReplayHandle_t h );
virtual ReplayHandle_t GetHandle() const;
virtual bool Read( KeyValues *pIn );
virtual void Write( KeyValues *pOut );
virtual const char *GetFilename() const;
virtual const char *GetFullFilename() const;
virtual const char *GetDebugName() const;
virtual void SetLocked( bool bLocked );
virtual bool IsLocked() const;
virtual void OnDelete();
virtual void OnUnload();
virtual void OnAddedToDirtyList();
private:
ReplayHandle_t m_hThis;
bool m_bLocked;
};
//----------------------------------------------------------------------------------------
#endif // REPLAYSERIALIIZEABLE_H

View File

@ -0,0 +1,64 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ICLIENTREPLAY_H
#define ICLIENTREPLAY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
#define CLIENT_REPLAY_INTERFACE_VERSION "ClientReplay001"
//----------------------------------------------------------------------------------------
class IReplayFactory;
class IReplayScreenshotSystem;
class IReplayPerformancePlaybackHandler;
class KeyValues;
class IReplayCamera;
class CReplayPerformance;
struct RenderMovieParams_t;
class IGameEvent;
//----------------------------------------------------------------------------------------
//
// Allows the replay and engine DLL's to talk to the client.
//
class IClientReplay : public IBaseInterface
{
public:
virtual uint64 GetServerSessionId() = 0;
virtual bool CacheReplayRagdolls( const char* pFilename, int nStartTick ) = 0; // Cache replay ragdolls
virtual IReplayScreenshotSystem *GetReplayScreenshotSystem() = 0; // Get the client's replay screenshot system
virtual IReplayPerformancePlaybackHandler *GetPerformancePlaybackHandler() = 0;
virtual IReplayCamera *GetReplayCamera() = 0;
virtual void DisplayReplayMessage( const char *pLocalizeStr, bool bUrgent, bool bDlg, const char *pSound ) = 0;
virtual void DisplayReplayMessage( const wchar_t *pText, bool bUrgent, bool bDlg, const char *pSound ) = 0;
virtual void InitPerformanceEditor( ReplayHandle_t hReplay ) = 0;
virtual void HidePerformanceEditor() = 0;
virtual bool ShouldRender() = 0;
virtual void PlaySound( const char *pSound ) = 0;
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
virtual bool ShouldCompletePendingReplay( IGameEvent *pEvent ) = 0;
virtual void OnSaveReplay( ReplayHandle_t hNewReplay, bool bShowInputDlg ) = 0;
virtual void OnDeleteReplay( ReplayHandle_t hReplay ) = 0; // Called before replay is actually removed from the replay manager
virtual void OnPlaybackComplete( ReplayHandle_t hReplay, int iPerformance ) = 0;
virtual void OnRenderStart() = 0;
virtual void OnRenderComplete( const RenderMovieParams_t &RenderParams, bool bCancelled, bool bSuccess, bool bShowBrowser ) = 0;
virtual bool OnConfirmQuit() = 0;
virtual bool OnEndOfReplayReached() = 0;
};
//----------------------------------------------------------------------------------------
#endif // ICLIENTREPLAY_H

View File

@ -0,0 +1,58 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ICLIENTREPLAYCONTEXT_H
#define ICLIENTREPLAYCONTEXT_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/ireplaycontext.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_CLIENT "VENGINE_CLIENT_REPLAY_HISTORY_MANAGER_001"
//----------------------------------------------------------------------------------------
class CReplay;
class CReplayPerformance;
class IReplayManager;
class IReplayMovieManager;
class IReplayMovieRenderer;
class IReplayScreenshotManager;
class IReplayPerformanceManager;
class IReplayPerformanceController;
class IReplayRenderQueue;
//----------------------------------------------------------------------------------------
class IClientReplayContext : public IReplayContext
{
public:
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0; // Shorthand to GetReplayManager()->GetReplay()
virtual IReplayManager *GetReplayManager() = 0;
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
virtual IReplayMovieManager *GetMovieManager() = 0;
virtual IReplayScreenshotManager *GetScreenshotManager() = 0;
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
virtual IReplayPerformanceController *GetPerformanceController() = 0;
virtual IReplayRenderQueue *GetRenderQueue() = 0;
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
virtual void OnSignonStateFull() = 0;
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance, bool bPlaySound ) = 0; // Play the given replay, from spawn tick to death tick
virtual bool ReconstructReplayIfNecessary( CReplay *pReplay ) = 0;
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
virtual void GetPlaybackTimes( float &flOutTime, float &flOutLength, const CReplay *pReplay, const CReplayPerformance *pPerformance ) = 0; // Calculate the current time and length of a replay or performance - takes in tick and out tick into account for performances - flCurTime should be gpGlobals->curtime. pPerformance can be NULL.
virtual uint64 GetServerSessionId( ReplayHandle_t hReplay ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // ICLIENTREPLAYCONTEXT_H

View File

@ -0,0 +1,104 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ICLIENTREPLAYHISTORYMANAGER_H
#define ICLIENTREPLAYHISTORYMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/replayhandle.h"
#include "replay/screenshot.h"
#include "interface.h"
#include "qlimits.h"
#include "convar.h"
#include "engine/http.h"
#include "tier1/utllinkedlist.h"
#include "tier1/checksum_crc.h"
#include <time.h>
//----------------------------------------------------------------------------------------
class IReplayDownloadGroup;
class IReplayDownloadGroupHelper;
class CDmxElement;
class KeyValues;
struct CaptureScreenshotParams_t;
struct RenderMovieParams_t;
class CBaseReplay;
class CReplay;
class IReplayMovieRenderer;
class IReplayMovieManager;
class IReplayMovie;
class IReplayPerformanceManager;
class IGameEvent;
//----------------------------------------------------------------------------------------
class IClientReplayHistoryManager : public IBaseInterface
{
public:
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
virtual void Shutdown() = 0;
virtual void Think() = 0;
virtual bool IsInitialized() const = 0;
virtual bool Commit( CBaseReplay *pNewReplay ) = 0;
virtual void Save() = 0; // Write the entire index and any replays/groups/movies that are marked as dirty
virtual void FlagReplayForFlush( CBaseReplay *pReplay, bool bForceImmediateWrite ) = 0; // Mark the given replay as dirty - flush to disk at the next opportunity (see CBaseReplayHistoryManager::FlushThink())
virtual void Nuke() = 0;
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
virtual CBaseReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
virtual const char *GetBaseDirectory() = 0; // Returns full directory to wherever replays.dmx lives, e.g. c:\program files (x86)\steam\steamapps\someuser\team fortress 2\game\tf\replays\client\ (or server\) - NOTE: includes trailing slash
virtual const char *GetReplaysSubDir() = 0; // Returns "client" or "server"
// For loop through all replays - indices should not be cached
virtual int GetReplayCount() const = 0;
// virtual CBaseReplay *GetReplayAtIndex( int nIndex ) = 0;
virtual const char *GetFullReplayPath() = 0; // Get c:\...\game\tf\replays\<client or server>\
// Client-specific
virtual int GetAdjustedDeathTick( CReplay *pReplay ) = 0;
virtual void FlagDownloadGroupForFlush( IReplayDownloadGroup *pGroup, bool bForceImmediate ) = 0;
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bForceImmediate ) = 0; // Flag the movie for flush - if pMovie is NULL, mark the index for flush
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
virtual bool ShouldGameRenderView() = 0; // Called from V_RenderView() to determine whether the game should render - used during movie rendering
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
virtual void UpdateCurrentReplayDataFromServer() = 0; // Updates start tick, current file url, demo filename
virtual void LinkReplayToDownloadGroup() = 0;
virtual void CaptureScreenshot( CaptureScreenshotParams_t &params ) = 0; // Schedules a screenshot capture at flDelay seconds in the future
virtual void DoCaptureScreenshot() = 0; // Takes the screenshot right now
virtual bool ShouldCaptureScreenshot() = 0; // Is screenshot scheduled to be taken right now?
virtual void GetUnpaddedScreenshotSize( int &nWidth, int &nHeight ) = 0; // Get the dimensions for a screenshot if we take one right now, based on replay_screenshotresolution and the current aspect ratio
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0; // Deletes all screenshots associated with the given replay
virtual void PlayReplay( ReplayHandle_t hReplay ) = 0; // Play the given replay, from spawn tick to death tick
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
virtual void CompleteRender( bool bSuccess ) = 0;
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
virtual void OnSignonStateFull() = 0;
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
virtual void OnReplayRecordingCvarChanged() = 0; // Called (on client only) when replay_recording is set to 1
virtual void OnGroupDeleted() = 0;
virtual CReplay *GetPlayingReplay() = 0; // Get the currently playing replay, otherwise NULL if one isn't playing
virtual CReplay *GetReplayForCurrentLife() = 0; // Gets the current replay (constant from local player spawn until next spawn/disconnect/exit)
virtual bool IsRendering() = 0; // Are we currently rendering a movie?
virtual void CancelRender() = 0; // If we're currently rendering, cancel
virtual IReplayMovieManager *GetMovieManager() = 0;
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
virtual const RenderMovieParams_t *GetRenderSettings() = 0;
virtual IReplayDownloadGroupHelper *GetDownloadGroupHelper() = 0;
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
};
//----------------------------------------------------------------------------------------
#endif // ICLIENTREPLAYHISTORYMANAGER_H

View File

@ -0,0 +1,116 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IENGINEREPLAY_H
#define IENGINEREPLAY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
#define ENGINE_REPLAY_INTERFACE_VERSION "EngineReplay001"
#if !defined( DEDICATED )
# define ENGINE_REPLAY_CLIENT_INTERFACE_VERSION "EngineClientReplay001"
#endif
//----------------------------------------------------------------------------------------
class IServer;
class INetChannel;
class IReplayServer;
class IClientEntityList;
class IClientReplay;
struct demoheader_t;
class CGlobalVarsBase;
class IDemoBuffer;
class CBaseRecordingSessionBlock;
//----------------------------------------------------------------------------------------
//
// Allows the replay, client & server DLL's to talk to the engine
//
class IEngineReplay : public IBaseInterface
{
public:
virtual bool IsSupportedModAndPlatform() = 0;
virtual float GetHostTime() = 0;
virtual int GetHostTickCount() = 0;
virtual int TimeToTicks( float flTime ) = 0;
virtual float TicksToTime( int nTick ) = 0;
virtual bool ReadDemoHeader( const char *pFilename, demoheader_t &header ) = 0;
virtual const char *GetGameDir() = 0;
virtual void Cbuf_AddText( const char *pCmd ) = 0;
virtual void Cbuf_Execute() = 0;
virtual void Host_Disconnect( bool bShowMainMenu ) = 0;
virtual void HostState_Shutdown() = 0;
virtual const char *GetModDir() = 0;
virtual bool CopyFile( const char *pSource, const char *pDest ) = 0;
virtual bool LZSS_Compress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
virtual bool LZSS_Decompress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
virtual bool MD5_HashBuffer( unsigned char pDigest[16], const unsigned char *pBuffer, int nSize, unsigned int pSeed[4] ) = 0;
// Server-specific
virtual IReplayServer *GetReplayServer() = 0;
virtual IServer *GetReplayServerAsIServer() = 0;
virtual IServer *GetGameServer() = 0;
virtual bool GetSessionRecordBuffer( uint8 **ppSessionBuffer, int *pSize ) = 0;
virtual bool IsDedicated() = 0;
virtual void ResetReplayRecordBuffer() = 0;
virtual demoheader_t *GetReplayDemoHeader() = 0;
virtual void RecalculateTags() = 0;
virtual bool NET_GetHostnameAsIP( const char *pHostname, char *pOut, int nOutSize ) = 0;
};
//
// Allows the replay and client DLL's to talk to the engine
//
#if !defined( DEDICATED )
class IEngineClientReplay : public IBaseInterface
{
public:
virtual INetChannel *GetNetChannel() = 0;
virtual bool IsConnected() = 0;
virtual bool IsListenServer() = 0;
virtual float GetLastServerTickTime() = 0;
virtual const char *GetLevelName() = 0;
virtual const char *GetLevelNameShort() = 0;
virtual int GetPlayerSlot() = 0;
virtual bool IsPlayingReplayDemo() = 0;
virtual IClientEntityList *GetClientEntityList() = 0;
virtual IClientReplay *GetClientReplayInt() = 0;
virtual uint32 GetClientSteamID() = 0;
virtual void Con_NPrintf( int nPos, PRINTF_FORMAT_STRING const char *pFormat, ... ) = 0;
virtual CGlobalVarsBase *GetClientGlobalVars() = 0;
virtual void VGui_PlaySound( const char *pSound ) = 0;
virtual void EngineVGui_ConfirmQuit() = 0;
virtual int GetScreenWidth() = 0;
virtual int GetScreenHeight() = 0;
virtual bool IsDemoPlayingBack() = 0;
virtual bool IsGamePathValidAndSafeForDownload( const char *pGamePath ) = 0;
virtual bool IsInGame() = 0;
virtual void InitSoundRecord() = 0;
virtual void Wave_CreateTmpFile( const char *pFilename ) = 0;
virtual void Wave_AppendTmpFile( const char *pFilename, void *pBuffer, int nNumSamples ) = 0;
virtual void Wave_FixupTmpFile( const char *pFilename ) = 0;
};
#endif // !defined( DEDICATED )
//----------------------------------------------------------------------------------------
#endif // IENGINEREPLAY_H

View File

@ -0,0 +1,46 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IQUERYABLEREPLAYITEM_H
#define IQUERYABLEREPLAYITEM_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "iqueryablereplayitem.h"
#include "replay/replayhandle.h"
#include "replay/replaytime.h"
//----------------------------------------------------------------------------------------
class CReplay;
//----------------------------------------------------------------------------------------
typedef int QueryableReplayItemHandle_t;
//----------------------------------------------------------------------------------------
abstract_class IQueryableReplayItem : public IBaseInterface
{
public:
virtual const CReplayTime &GetItemDate() const = 0;
virtual bool IsItemRendered() const = 0;
virtual CReplay *GetItemReplay() = 0;
virtual ReplayHandle_t GetItemReplayHandle() const = 0;
virtual QueryableReplayItemHandle_t GetItemHandle() const = 0; // Get the handle of this item
virtual const wchar_t *GetItemTitle() const = 0;
virtual void SetItemTitle( const wchar_t *pTitle ) = 0;
virtual float GetItemLength() const = 0;
virtual void *GetUserData() = 0;
virtual void SetUserData( void *pUserData ) = 0;
virtual bool IsItemAMovie() const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IQUERYABLEREPLAYITEM_H

View File

@ -0,0 +1,27 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IRECORDINGSESSION_H
#define IRECORDINGSESSION_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CBaseRecordingSessionBlock;
class IRecordingSession : public IBaseInterface
{
public:
virtual void AddBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IRECORDINGSESSION_H

View File

@ -0,0 +1,30 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IRECORDINGSESSIONBLOCKMANAGER_H
#define IRECORDINGSESSIONBLOCKMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class IRecordingSessionBlockManager : public IBaseInterface
{
public:
virtual CBaseRecordingSessionBlock *GetBlock( ReplayHandle_t hBlock ) = 0;
virtual void DeleteBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
virtual void UnloadBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
virtual const char *GetBlockPath() const = 0;
virtual void LoadBlockFromFileName( const char *pFilename, IRecordingSession *pSession ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IRECORDINGSESSIONBLOCKMANAGER_H

View File

@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IRECORDINGSESSIONMANAGER_H
#define IRECORDINGSESSIONMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class CBaseRecordingSession;
//----------------------------------------------------------------------------------------
class IRecordingSessionManager : public IBaseInterface
{
public:
virtual CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) = 0;
virtual const CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) const = 0;
virtual void FlagSessionForFlush( CBaseRecordingSession *pSession, bool bForceImmediate ) = 0;
virtual int GetServerStartTickForSession( ReplayHandle_t hSession ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IRECORDINGSESSIONMANAGER_H

View File

@ -0,0 +1,25 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//----------------------------------------------------------------------------------------
#ifndef IREPLAYCAMERA_H
#define IREPLAYCAMERA_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
abstract_class IReplayCamera : public IBaseInterface
{
public:
virtual void ClearOverrideView() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYCAMERA_H

View File

@ -0,0 +1,47 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYCONTEXT_H
#define IREPLAYCONTEXT_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class IRecordingSessionManager;
class IRecordingSessionBlockManager;
class IRecordingSession;
class IReplayErrorSystem;
//----------------------------------------------------------------------------------------
class IReplayContext : public IBaseInterface
{
public:
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
virtual void Shutdown() = 0;
virtual void Think() = 0;
virtual bool IsInitialized() const = 0;
virtual const char *GetRelativeBaseDir() const = 0; // Returns path to wherever the index .dmx lives relative to the game path, e.g. "replay\client\"
virtual const char *GetBaseDir() const = 0; // Returns full directory to wherever the index .dmx lives, e.g. c:\program files (x86)\steam\steamapps\<username>\team fortress 2\tf\replays\<client|server>\ -- NOTE: includes trailing slash
virtual const char *GetReplaySubDir() const = 0; // Returns "client" or "server"
virtual IReplayErrorSystem *GetErrorSystem() = 0;
virtual IRecordingSessionManager *GetRecordingSessionManager() = 0;
virtual IRecordingSessionBlockManager *GetRecordingSessionBlockManager() = 0;
virtual IRecordingSession *GetRecordingSession( ReplayHandle_t hSession ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYCONTEXT_H

View File

@ -0,0 +1,42 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYDEMOPLAYER_H
#define IREPLAYDEMOPLAYER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replay.h"
//----------------------------------------------------------------------------------------
#define INTERFACEVERSION_REPLAYDEMOPLAYER "ReplayDemoPlayer001"
//----------------------------------------------------------------------------------------
//
// Interface for replay demo player
//
class IReplayDemoPlayer : public IBaseInterface
{
public:
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance ) = 0;
virtual void PlayNextReplay() = 0;
virtual void ClearReplayList() = 0;
virtual void AddReplayToList( ReplayHandle_t hReplay, int iPerformance ) = 0;
virtual CReplay *GetCurrentReplay() = 0;
virtual CReplayPerformance *GetCurrentPerformance() = 0; // The playing replay, or NULL if playing the original replay
virtual void PauseReplay() = 0;
virtual bool IsReplayPaused() = 0;
virtual void ResumeReplay() = 0;
virtual void OnSignonStateFull() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYDEMOPLAYER_H

View File

@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYERRORSYSYTEM_H
#define IREPLAYERRORSYSYTEM_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class KeyValues;
//----------------------------------------------------------------------------------------
//
// Replay error system
//
class IReplayErrorSystem : public IBaseInterface
{
public:
virtual void AddErrorFromTokenName( const char *pToken ) = 0;
virtual void AddFormattedErrorFromTokenName( const char *pFormatToken, KeyValues *pFormatArgs ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYERRORSYSYTEM_H

View File

@ -0,0 +1,31 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYFACTORY_H
#define IREPLAYFACTORY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplay;
//----------------------------------------------------------------------------------------
abstract_class IReplayFactory : public IBaseInterface
{
public:
virtual CReplay *Create() = 0;
};
#define INTERFACE_VERSION_REPLAY_FACTORY "IReplayFactory001"
//----------------------------------------------------------------------------------------
#endif // IREPLAYFACTORY_H

View File

@ -0,0 +1,42 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYMANAGER_H
#define IREPLAYMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
#include "utllinkedlist.h"
//----------------------------------------------------------------------------------------
class CReplay;
class IQueryableReplayItem;
//----------------------------------------------------------------------------------------
class IReplayManager : public IBaseInterface
{
public:
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
virtual CReplay *GetPlayingReplay() = 0;
virtual CReplay *GetReplayForCurrentLife() = 0;
virtual void FlagReplayForFlush( CReplay *pReplay, bool bForceImmediate ) = 0;
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
virtual int GetReplayCount() const = 0;
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
virtual void GetReplays( CUtlLinkedList< CReplay *, int > &lstReplays ) = 0;
virtual void GetReplaysAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstReplays ) = 0;
virtual float GetDownloadProgress( const CReplay *pReplay ) = 0;
virtual const char *GetReplaysDir() const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYMANAGER_H

View File

@ -0,0 +1,42 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYMOVIE_H
#define IREPLAYMOVIE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "iqueryablereplayitem.h"
#include "replay/rendermovieparams.h"
//----------------------------------------------------------------------------------------
abstract_class IReplayMovie : public IQueryableReplayItem
{
public:
virtual ReplayHandle_t GetMovieHandle() const = 0;
virtual ReplayHandle_t GetReplayHandle() const = 0;
virtual const ReplayRenderSettings_t &GetRenderSettings() = 0;
virtual void GetFrameDimensions( int &nWidth, int &nHeight ) = 0;
virtual void SetIsRendered( bool bIsRendered ) = 0;
virtual void SetMovieFilename( const char *pFilename ) = 0;
virtual const char *GetMovieFilename() const = 0;
virtual void SetMovieTitle( const wchar_t *pTitle ) = 0;
virtual void SetRenderTime( float flRenderTime ) = 0;
virtual float GetRenderTime() const = 0;
virtual void CaptureRecordTime() = 0;
virtual void SetLength( float flLength ) = 0;
virtual bool IsUploaded() const = 0;
virtual void SetUploaded( bool bUploaded ) = 0;
virtual void SetUploadURL( const char *pURL ) = 0;
virtual const char *GetUploadURL() const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYMOVIE_H

View File

@ -0,0 +1,56 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYMOVIEMANAGER_H
#define IREPLAYMOVIEMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "utlstring.h"
#include "utllinkedlist.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class IReplayMovie;
class CReplay;
struct RenderMovieParams_t;
class IQueryableReplayItem;
//----------------------------------------------------------------------------------------
abstract_class IReplayMovieManager : public IBaseInterface
{
public:
virtual int GetMovieCount() = 0;
virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ) = 0; // Fills the list with all movies
virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ) = 0;
virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ) = 0; // Creates and adds a movie based on the given replay
virtual void DeleteMovie( ReplayHandle_t hMovie ) = 0; // Delete a movie
virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ) = 0; // Get the number of movies that depend on the given replay
virtual void GetCachedMovieTitleAndClear( wchar_t *pOut, int nOutBufLength ) = 0; // TODO: This is a hack - fix this
virtual void SetPendingMovie( IReplayMovie *pMovie ) = 0;
virtual IReplayMovie *GetPendingMovie() = 0;
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ) = 0;
virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ) = 0;
virtual const char *GetRenderDir() const = 0;
virtual const char *GetRawExportDir() const = 0;
// TODO: Is this the best place for code that actually manages rendering?
virtual bool IsRendering() const = 0;
virtual bool RenderingCancelled() const = 0;
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
virtual void RenderNextMovie() = 0;
virtual void CompleteRender( bool bSuccess, bool bShowBrowser ) = 0;
virtual void CancelRender() = 0;
virtual void ClearRenderCancelledFlag() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYMOVIEMANAGER_H

View File

@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYMOVIERENDERER_H
#define IREPLAYMOVIERENDERER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
class IReplayMovie;
struct RenderMovieParams_t;
//----------------------------------------------------------------------------------------
abstract_class IReplayMovieRenderer : public IBaseInterface
{
public:
virtual bool SetupRenderer( RenderMovieParams_t &params, IReplayMovie *pMovie ) = 0;
virtual void ShutdownRenderer() = 0;
virtual void RenderVideo() = 0;
virtual void RenderAudio( unsigned char *pBuffer, int nSize, int nNumSamples ) = 0;
virtual void SetAudioSyncFrame( bool isSync = false ) = 0;
virtual bool IsAudioSyncFrame() = 0;
virtual float GetRecordingFrameDuration() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYMOVIERENDERER_H

View File

@ -0,0 +1,107 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCECONTROLLER_H
#define IREPLAYPERFORMANCECONTROLLER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "tier1/strtools.h"
//----------------------------------------------------------------------------------------
class IReplayPerformanceEditor;
class CReplay;
class Vector;
class QAngle;
class CReplayPerformance;
//----------------------------------------------------------------------------------------
// These values are what we use to represent
struct SetViewParams_t
{
SetViewParams_t() { V_memset( this, 0, sizeof( SetViewParams_t ) ); }
SetViewParams_t( float flTime, Vector *pOrigin, QAngle *pAngles, float flFov, float flAccel,
float flSpeed, float flRotFilter )
: m_flTime( flTime ),
m_pOrigin( pOrigin ),
m_pAngles( pAngles ),
m_flFov( flFov ),
m_flAccel( flAccel ),
m_flSpeed( flSpeed ),
m_flRotationFilter( flRotFilter )
{
}
float m_flTime;
Vector *m_pOrigin;
QAngle *m_pAngles;
float m_flFov;
// Right now only used for updating UI during playback:
float m_flAccel;
float m_flSpeed;
float m_flRotationFilter;
};
//----------------------------------------------------------------------------------------
class IReplayPerformanceController : public IBaseInterface
{
public:
virtual void SetEditor( IReplayPerformanceEditor *pEditor ) = 0;
virtual bool IsPlaybackDataLeft() = 0;
virtual void StartRecording( CReplay *pReplay, bool bSnip ) = 0;
virtual void NotifyRewinding() = 0;
virtual void Stop() = 0;
virtual bool SaveAsync() = 0;
virtual bool SaveAsAsync( const wchar *pTitle ) = 0;
virtual bool IsSaving() const = 0;
virtual void SaveThink() = 0;
virtual bool GetLastSaveStatus() const = 0;
virtual bool IsRecording() const = 0;
virtual bool IsPlaying() const = 0;
virtual bool IsDirty() const = 0;
virtual void NotifyDirty() = 0;
virtual CReplayPerformance *GetPerformance() = 0;
virtual CReplayPerformance *GetSavedPerformance() = 0;
virtual bool HasSavedPerformance() = 0;
virtual void NotifyPauseState( bool bPaused ) = 0;
virtual void ClearRewinding() = 0;
virtual void OnSignonStateFull() = 0;
virtual float GetPlaybackTimeScale() const = 0;
//
// Recorder-specific:
//
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
virtual void AddEvent_Camera_SetView( const SetViewParams_t &params ) = 0;
virtual void AddEvent_TimeScale( float flTime, float flScale ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCECONTROLLER_H

View File

@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCEEDITOR_H
#define IREPLAYPERFORMANCEEDITOR_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplay;
//----------------------------------------------------------------------------------------
//
// Interface to allow the replay DLL to talk to the actual UI.
//
class IReplayPerformanceEditor : public IBaseInterface
{
public:
virtual CReplay *GetReplay() = 0;
virtual void OnRewindComplete() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCEEDITOR_H

View File

@ -0,0 +1,36 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCEMANAGER_H
#define IREPLAYPERFORMANCEMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplayPerformance;
class CReplay;
//----------------------------------------------------------------------------------------
class IReplayPerformanceManager : public IBaseInterface
{
public:
virtual CReplayPerformance *CreatePerformance( CReplay *pReplay ) = 0;
virtual void DeletePerformance( CReplayPerformance *pPerformance ) = 0;
virtual const char *GetRelativePath() const = 0;
virtual const char *GetFullPath() const = 0;
virtual const char *GeneratePerformanceFilename( CReplay *pReplay ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCEMANAGER_H

View File

@ -0,0 +1,36 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCEPLAYBACKHANDLER_H
#define IREPLAYPERFORMANCEPLAYBACKHANDLER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/ireplayperformancecontroller.h"
//----------------------------------------------------------------------------------------
class Vector;
class QAngle;
//----------------------------------------------------------------------------------------
class IReplayPerformancePlaybackHandler : public IBaseInterface
{
public:
virtual void OnEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
virtual void OnEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
virtual void OnEvent_Camera_Change_Free( float flTime ) = 0;
virtual void OnEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
virtual void OnEvent_Camera_SetView( const SetViewParams_t &params ) = 0;
virtual void OnEvent_TimeScale( float flTime, float flScale ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCEPLAYBACKHANDLER_H

View File

@ -0,0 +1,33 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCEPLAYER_H
#define IREPLAYPERFORMANCEPLAYER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplay;
class CReplayPerformance;
//----------------------------------------------------------------------------------------
class IReplayPerformancePlayer : public IBaseInterface
{
public:
virtual void BeginPerformancePlay( CReplayPerformance *pPerformance ) = 0;
virtual void EndPerformancePlay() = 0;
virtual bool IsPlaying() const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCEPLAYER_H

View File

@ -0,0 +1,49 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYPERFORMANCERECORDER_H
#define IREPLAYPERFORMANCERECORDER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplay;
class Vector;
class QAngle;
class CReplayPerformance;
//----------------------------------------------------------------------------------------
class IReplayPerformanceRecorder : public IBaseInterface
{
public:
virtual void BeginPerformanceRecord( CReplay *pReplay ) = 0;
virtual void EndPerformanceRecord() = 0;
virtual void NotifyPauseState( bool bPaused ) = 0;
virtual CReplayPerformance *GetPerformance() = 0;
virtual bool IsRecording() const = 0;
virtual void SnipAtTime( float flTime ) = 0;
virtual void NotifySkipping() = 0;
virtual void ClearSkipping() = 0;
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
virtual void AddEvent_Camera_SetView( float flTime, const Vector& origin, const QAngle &angles, float fov ) = 0;
virtual void AddEvent_Slowmo( float flTime, float flScale ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPERFORMANCERECORDER_H

View File

@ -0,0 +1,41 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//----------------------------------------------------------------------------------------
#ifndef IREPLAYPLAYERCACHE_H
#define IREPLAYPLAYERCACHE_H
#ifdef _WIN32
#pragma once
#endif
#include "interface.h"
//----------------------------------------------------------------------------------------
#define REPLAYPLAYERCACHE_INTERFACE_VERSION "VENGINE_REPLAY_PLAYER_CACHE_001"
//----------------------------------------------------------------------------------------
abstract_class IReplayPlayerCache : public IBaseInterface
{
public:
virtual bool Init() = 0;
virtual void Shutdown() = 0;
virtual void SetupPlayer( int nEntIndex ) = 0;
virtual void DeletePlayerEntry( int nEntIndex ) = 0;
virtual bool PlayerHasCacheEntry( int nEntIndex ) = 0;
virtual void SetPlayerClass( int nEntIndex, const char *pPlayerClass ) = 0;
virtual void SetPlayerSpawnTick( int nEntIndex, int nTick ) = 0;
virtual void SetPlayerDeathTick( int nEntIndex, int nTick ) = 0;
virtual const char *GetPlayerClass( int nEntIndex ) = 0;
virtual int GetPlayerSpawnTick( int nEntIndex ) = 0;
virtual int GetPlayerDeathTick( int nEntIndex ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYPLAYERCACHE_H

View File

@ -0,0 +1,32 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYRENDERQUEUE_H
#define IREPLAYRENDERQUEUE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
abstract_class IReplayRenderQueue : IBaseInterface
{
public:
virtual void Add( ReplayHandle_t hReplay, int iPerformance ) = 0;
virtual void Remove( ReplayHandle_t hReplay, int iPerformance ) = 0;
virtual void Clear() = 0;
virtual int GetCount() const = 0;
virtual bool GetEntryData( int iIndex, ReplayHandle_t *pHandleOut, int *pPerformanceOut ) const = 0;
virtual bool IsInQueue( ReplayHandle_t hReplay, int iPerformance ) const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYRENDERQUEUE_H

View File

@ -0,0 +1,32 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYSCREENSHOTMANAGER_H
#define IREPLAYSCREENSHOTMANAGER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class CReplay;
struct CaptureScreenshotParams_t;
//----------------------------------------------------------------------------------------
class IReplayScreenshotManager : public IBaseInterface
{
public:
virtual void CaptureScreenshot( CaptureScreenshotParams_t& params ) = 0;
virtual void GetUnpaddedScreenshotSize( int &nOutWidth, int &nOutHeight ) = 0;
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYSCREENSHOTMANAGER_H

View File

@ -0,0 +1,34 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYSCREENSHOTSYSTEM_H
#define IREPLAYSCREENSHOTSYSTEM_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
struct WriteReplayScreenshotParams_t;
//----------------------------------------------------------------------------------------
//
// Implementation lives in the client - allows replay to tell the client to grab a
// screenshot or update the cache.
//
class IReplayScreenshotSystem : public IBaseInterface
{
public:
virtual void WriteReplayScreenshot( WriteReplayScreenshotParams_t &params ) = 0;
virtual void UpdateReplayScreenshotCache() = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYSCREENSHOTSYSTEM_H

View File

@ -0,0 +1,48 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYSERIALIIZEABLE_H
#define IREPLAYSERIALIIZEABLE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
#include "replay/replayhandle.h"
//----------------------------------------------------------------------------------------
class KeyValues;
//----------------------------------------------------------------------------------------
class IReplaySerializeable : public IBaseInterface
{
public:
virtual void SetHandle( ReplayHandle_t h ) = 0;
virtual ReplayHandle_t GetHandle() const = 0;
virtual bool Read( KeyValues *pIn ) = 0;
virtual void Write( KeyValues *pOut ) = 0;
virtual const char *GetSubKeyTitle() const = 0;
virtual const char *GetFilename() const = 0;
virtual const char *GetPath() const = 0;
virtual const char *GetFullFilename() const = 0;
virtual void SetLocked( bool bLocked ) = 0;
virtual bool IsLocked() const = 0;
virtual void OnDelete() = 0;
virtual void OnUnload() = 0;
virtual const char *GetDebugName() const = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYSERIALIIZEABLE_H

View File

@ -0,0 +1,48 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef IREPLAYSERVER_H
#define IREPLAYSERVER_H
#ifdef _WIN32
#pragma once
#endif
//-----------------------------------------------------------------------------
#include "interface.h"
//-----------------------------------------------------------------------------
class IServer;
class IReplayDirector;
class IGameEvent;
struct netadr_s;
class CServerReplay;
//-----------------------------------------------------------------------------
// Interface the Replay module exposes to the engine
//-----------------------------------------------------------------------------
#define INTERFACEVERSION_REPLAYSERVER "ReplayServer001"
class IReplayServer : public IBaseInterface
{
public:
virtual ~IReplayServer() {}
virtual IServer *GetBaseServer() = 0; // get Replay base server interface
virtual IReplayDirector *GetDirector() = 0; // get director interface
virtual int GetReplaySlot() = 0; // return entity index-1 of Replay in game
virtual float GetOnlineTime() = 0; // seconds since broadcast started
virtual void BroadcastEvent(IGameEvent *event) = 0; // send a director command to all specs
virtual bool IsRecording() = 0;
virtual void StartRecording() = 0;
virtual void StopRecording() = 0;
};
#endif

View File

@ -0,0 +1,27 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYSESSIONRECORDER_H
#define IREPLAYSESSIONRECORDER_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class IReplaySessionRecorder : public IBaseInterface
{
public:
virtual void StartRecording() = 0;
virtual void StopRecording( bool bAborting ) = 0;
virtual void SetCurrentRecordingStartTick( int nStartTick ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // IREPLAYSESSIONRECORDER_H

View File

@ -0,0 +1,60 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef IREPLAYSYSTEM_H
#define IREPLAYSYSTEM_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "appframework/IAppSystem.h"
//----------------------------------------------------------------------------------------
class IClientReplayContext;
class IServerReplayContext;
class IGameEvent;
//----------------------------------------------------------------------------------------
abstract_class IReplaySystem : public IAppSystem
{
public:
// IAppSystem:
virtual bool Connect( CreateInterfaceFn fnFactory ) = 0;
virtual void Disconnect() = 0;
virtual InitReturnVal_t Init() = 0;
virtual void Shutdown() = 0;
// To be called client- & server-side
virtual void Think() = 0;
virtual bool IsReplayEnabled() = 0;
virtual bool IsRecording() = 0;
// To be called client-side only - on dedicated servers, only subs defined
virtual bool CL_Init( CreateInterfaceFn fnClientFactory ) = 0;
virtual void CL_Shutdown() = 0;
virtual void CL_Render() = 0;
virtual IClientReplayContext *CL_GetContext() = 0;
// To be called server-side only
virtual bool SV_Init( CreateInterfaceFn fnFactory ) = 0;
virtual void SV_Shutdown() = 0;
virtual void SV_EndRecordingSession( bool bForceSynchronousPublish = false ) = 0;
virtual void SV_SendReplayEvent( const char *pEventName, int nClientSlot ) = 0;
virtual void SV_SendReplayEvent( IGameEvent *pEvent, int nClientSlot ) = 0;
virtual bool SV_ShouldBeginRecording( bool bIsInWaitingForPlayers ) = 0;
virtual void SV_NotifyReplayRequested() = 0;
virtual IServerReplayContext *SV_GetContext() = 0;
};
//----------------------------------------------------------------------------------------
#define REPLAY_INTERFACE_VERSION "ReplaySystem001"
//----------------------------------------------------------------------------------------
#endif // IREPLAYSYSTEM_H

View File

@ -0,0 +1,27 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ISERVERENGINE_H
#define ISERVERENGINE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
class IReplayServerEngine : public IBaseInterface
{
public:
virtual void EndReplayRecordingSession() = 0;
virtual bool IsReplayRecording() = 0;
virtual bool IsReplay() = 0;
};
//----------------------------------------------------------------------------------------
#endif // ISERVERENGINE_H

View File

@ -0,0 +1,37 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ISERVERREPLAY_H
#define ISERVERREPLAY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "interface.h"
//----------------------------------------------------------------------------------------
#define SERVER_REPLAY_INTERFACE_VERSION "ServerReplay001"
//----------------------------------------------------------------------------------------
class IReplayFactory;
class KeyValues;
//----------------------------------------------------------------------------------------
//
// Allows the replay DLL to talk to the server
//
class IServerReplay : public IBaseInterface
{
public:
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // ISERVERREPLAY_H

View File

@ -0,0 +1,38 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef ISERVERREPLAYCONTEXT_H
#define ISERVERREPLAYCONTEXT_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/ireplaycontext.h"
//----------------------------------------------------------------------------------------
class IGameEvent;
class IReplaySessionRecorder;
//----------------------------------------------------------------------------------------
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_SERVER "VENGINE_SERVER_REPLAY_HISTORY_MANAGER_001"
//----------------------------------------------------------------------------------------
class IServerReplayContext : public IReplayContext
{
public:
virtual void FlagForConVarSanityCheck() = 0; // Checks replay_enable / replay_local_fileserver_path / replay_downloadurlport / replay_downloadurlpath
virtual IGameEvent *CreateReplaySessionInfoEvent() = 0; // Create "replay_sessioninfo" event w/ appropriate fields filled in
virtual IReplaySessionRecorder *GetSessionRecorder() = 0;
virtual const char *GetLocalFileServerPath() const = 0; // Returns the local path where session blocks and such should be published for download
virtual void CreateSessionOnClient( int nClientSlot ) = 0;
};
//----------------------------------------------------------------------------------------
#endif // ISERVERREPLAYCONTEXT_H

View File

@ -0,0 +1,63 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAYPERFORMANCE_H
#define REPLAYPERFORMANCE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "shared_defs.h"
#include "qlimits.h"
//----------------------------------------------------------------------------------------
class CReplay;
class KeyValues;
//----------------------------------------------------------------------------------------
class CReplayPerformance
{
public:
CReplayPerformance( CReplay *pReplay );
inline bool HasInTick() const { return m_nTickIn >= 0; }
inline bool HasOutTick() const { return m_nTickOut >= 0; }
inline int GetTickIn() const { return m_nTickIn; }
inline int GetTickOut() const { return m_nTickOut; }
void Copy( const CReplayPerformance *pSrc );
void CopyTicks( const CReplayPerformance *pSrc );
void SetFilename( const char *pFilename );
const char *GetFullPerformanceFilename();
void AutoNameIfHasNoTitle( const char *pMapName );
void SetTitle( const wchar_t *pTitle );
// NOTE: Doesn't copy exactly - gets a valid filename for the returned performance.
CReplayPerformance *MakeCopy() const;
void Read( KeyValues *pIn );
void Write( KeyValues *pOut );
// NOTE: Any changes made here should be reflected in the copy constructor
// (which is called from MakeCopy()).
wchar_t m_wszTitle[MAX_TAKE_TITLE_LENGTH];
char m_szBaseFilename[ MAX_OSPATH ];
CReplay *m_pReplay;
int m_nTickIn;
int m_nTickOut;
private:
CReplayPerformance( const CReplayPerformance *pPerformance );
};
//----------------------------------------------------------------------------------------
#endif // REPLAYPERFORMANCE_H

View File

@ -0,0 +1,62 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef RENDERMOVIEPARAMS_H
#define RENDERMOVIEPARAMS_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "tier1/utlstring.h"
#include "tier1/strtools.h"
#include "replay/replayhandle.h"
#include "replay/shared_defs.h"
#include "video/ivideoservices.h"
//----------------------------------------------------------------------------------------
typedef unsigned int MovieHandle_t;
struct RenderMovieParams_t
{
inline RenderMovieParams_t() : m_iPerformance( -1 ) { V_memset( this, 0, sizeof( RenderMovieParams_t ) ); m_Settings.m_FPS.SetFPS( 0, false ); }
ReplayHandle_t m_hReplay;
int m_iPerformance; // -1 for default view, otherwise this is an index into the replay's m_vecPerformances vector.
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
char m_szVideoPreset[64];
char m_szExtension[16]; // File extension
bool m_bQuitWhenFinished;
bool m_bExportRaw; // Export movie as raw TGA frames and a .WAV
float m_flEngineFps;
struct ReplayRenderSettings_t
{
uint16 m_nWidth;
uint16 m_nHeight;
int8 m_nMotionBlurQuality; // [0,MAX_MOTION_BLUR_QUALITY]
VideoFrameRate_t m_FPS; // Actual framerate can be calculated with m_FPS.GetFps()
VideoEncodeCodec_t m_Codec;
bool m_bMotionBlurEnabled; // Motion blur enabled?
bool m_bAAEnabled; // Antialiasing enabled?
int8 m_nEncodingQuality; // [0,100]
bool m_bRaw; // This movie was exported as raw TGA frames and a .WAV file?
}
m_Settings;
};
typedef RenderMovieParams_t::ReplayRenderSettings_t ReplayRenderSettings_t;
//----------------------------------------------------------------------------------------
#define MAX_DOF_QUALITY 2
#define MAX_MOTION_BLUR_QUALITY 3
#define SUBPIXEL_JITTER_SAMPLES 16
#define CHEAP_DOF_SAMPLES 4
//----------------------------------------------------------------------------------------
#endif // RENDERMOVIEPARAMS_H

View File

@ -0,0 +1,146 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAY_H
#define REPLAY_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/iqueryablereplayitem.h"
#include "replay/replaytime.h"
#include "replay/basereplayserializeable.h"
#include "qlimits.h"
#include "utlstring.h"
#include "utlvector.h"
#include "replay/shared_defs.h"
//----------------------------------------------------------------------------------------
class IReplayDownloadEventHandler;
class CReplayScreenshot;
class CReplayPerformance;
//----------------------------------------------------------------------------------------
class CReplay : public CBaseReplaySerializeable,
public IQueryableReplayItem
{
typedef CBaseReplaySerializeable BaseClass;
public:
enum ReplayStatus_t
{
REPLAYSTATUS_INVALID,
REPLAYSTATUS_ERROR,
REPLAYSTATUS_DOWNLOADPHASE, // Multiple sub-states during download state
REPLAYSTATUS_READYTOCONVERT, // Download is complete, ready to convert
REPLAYSTATUS_RENDERING, // Currently rendering the file
REPLAYSTATUS_RENDERED,
REPLAYSTATUS_MAX
};
CReplay();
virtual ~CReplay() {}
//
// IReplaySerializeable
//
virtual const char *GetSubKeyTitle() const;
virtual const char *GetPath() const;
virtual void OnDelete();
virtual bool Read( KeyValues *pIn );
virtual void Write( KeyValues *pOut );
virtual void DumpGameSpecificData() const {}
virtual void Update() {}
// Hooks to allow replays to setup event listeners, etc.
virtual void OnBeginRecording() {}
virtual void OnEndRecording() {}
// Called when a replay is "completed"
virtual void OnComplete();
// Should we allow this replay to be deleted?
virtual bool ShouldAllowDelete() const { return true; }
void AutoNameTitleIfEmpty();
void AddScreenshot( int nWidth, int nHeight, const char *pBaseFilename );
bool HasReconstructedReplay() const;
bool IsSignificantBlock( int iBlockReconstruction ) const; // Does this replay care about the given block?
CReplayPerformance *AddNewPerformance( bool bGenTitle = true, bool bGenFilename = true );
void AddPerformance( KeyValues *pIn );
void AddPerformance( CReplayPerformance *pPerformance );
// Accessors:
inline int GetScreenshotCount() const { return m_vecScreenshots.Count(); }
inline const CReplayScreenshot *GetScreenshot( int i ) const { return m_vecScreenshots[ i ]; }
bool IsDownloaded() const;
inline int GetPerformanceCount() const { return m_vecPerformances.Count(); }
CReplayPerformance *GetPerformance( int i );
const CReplayPerformance *GetPerformance( int i ) const;
inline bool HasPerformance( CReplayPerformance *pPerformance ) { return m_vecPerformances.Find( pPerformance ) != m_vecPerformances.InvalidIndex(); }
bool FindPerformance( CReplayPerformance *pPerformance, int &iResult );
CReplayPerformance *GetPerformanceWithTitle( const wchar_t *pTitle );
inline const char *GetMapName() const { return m_szMapName; }
inline int GetSpawnTick() const { return m_nSpawnTick; }
inline int GetDeathTick() const { return m_nDeathTick; }
// IQueryableReplayItem implementation:
virtual const CReplayTime &GetItemDate() const;
virtual bool IsItemRendered() const;
virtual CReplay *GetItemReplay();
virtual ReplayHandle_t GetItemReplayHandle() const;
virtual QueryableReplayItemHandle_t GetItemHandle() const;
virtual const wchar_t *GetItemTitle() const;
virtual void SetItemTitle( const wchar_t *pTitle );
virtual float GetItemLength() const;
virtual void *GetUserData();
virtual void SetUserData( void* pUserData );
virtual bool IsItemAMovie() const;
// Non-persistent data
mutable IReplayDownloadEventHandler *m_pDownloadEventHandler; // Implemented by replay browser - the reason we've got one per replay rather than
// one per download group is because the browser needs to receive events per-thumbnail
bool m_bSaved; // True as soon as the replay is saved to disk for the first time
bool m_bRequestedByUser; // Did the user request to save this replay?
bool m_bComplete; // Indicates whether the replay is done recording - this should be false
// until the player dies, the round ends, or the level changes
void *m_pUserData;
float m_flNextUpdateTime;
bool m_bDirty;
// Persistent data
ReplayHandle_t m_hSession; // The recording session in which this replay was recorded
char m_szMapName[MAX_OSPATH];
ReplayStatus_t m_nStatus;
const char* m_pFileURL; // In the form <protocol>://<server address>:<port number>/path/file - points to the string in the download group
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
CUtlString m_strKilledBy; // Name of player who killed, if any
int m_nDeathTime;
int m_nSpawnTick;
int m_nDeathTick;
float m_flLength; // The length of the entire replay, including the post-death time, in seconds
bool m_bRendered; // Has the replay been rendered yet?
int m_nPlayerSlot; // Player slot (+1), used to determine which player recorded the demo during playback
int m_nPostDeathRecordTime; // replay_postdeathrecordtime at the time of record
CUtlVector< CReplayScreenshot * > m_vecScreenshots;
CUtlVector< CReplayPerformance * > m_vecPerformances;
int m_iMaxSessionBlockRequired; // The maximum session block required to reconstruct a viewable .dem file from spawn tick until length
CReplayTime m_RecordTime; // Contains time/date when spawn tick was recorded
float m_flStartTime; // Start time (uses engine's host_time)
CUtlString m_strReconstructedFilename;
bool m_bSavedDuringThisSession;
};
//----------------------------------------------------------------------------------------
#endif // REPLAY_H

View File

@ -0,0 +1,25 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAYHANDLE_H
#define REPLAYHANDLE_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "platform.h"
//----------------------------------------------------------------------------------------
typedef uint32 ReplayHandle_t;
//----------------------------------------------------------------------------------------
#define REPLAY_HANDLE_INVALID ( (ReplayHandle_t)-1 )
//----------------------------------------------------------------------------------------
#endif // REPLAYHANDLE_H

View File

@ -0,0 +1,21 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAYLIB_H
#define REPLAYLIB_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
class IClientReplayContext;
//----------------------------------------------------------------------------------------
bool ReplayLib_Init( const char *pGameDir, IClientReplayContext *pClientReplayContext );
//----------------------------------------------------------------------------------------
#endif // REPLAYLIB_H

View File

@ -0,0 +1,57 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef REPLAYTIME_H
#define REPLAYTIME_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
class KeyValues;
//----------------------------------------------------------------------------------------
#include "vgui/ILocalize.h"
//----------------------------------------------------------------------------------------
class CReplayTime
{
public:
CReplayTime();
void InitDateAndTimeToNow();
void Read( KeyValues *pIn );
void Write( KeyValues *pOut );
// Modifiers:
void SetDate( int nDay, int nMonth, int nYear );
void SetTime( int nHour, int nMin, int nSec );
inline void SetRawDate( int nRawDate ) { m_fDate = nRawDate; }
inline void SetRawTime( int nRawTime ) { m_fTime = nRawTime; }
// Accessors:
void GetTime( int &nHour, int &nMin, int &nSec ) const;
void GetDate( int &nDay, int &nMonth, int &nYear ) const;
static const char *FormatTimeString( int nSecs );
static const char *FormatPreciseTimeString( float flSecs );
static const wchar_t *GetLocalizedMonth( vgui::ILocalize *pLocalize, int nMonth );
static const wchar_t *GetLocalizedDay( vgui::ILocalize *pLocalize, int nDay );
static const wchar_t *GetLocalizedYear( vgui::ILocalize *pLocalize, int nYear );
static const wchar_t *GetLocalizedTime( vgui::ILocalize *pLocalize, int nHour, int nMin, int nSec );
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, int nDay, int nMonth, int nYear,
int *pHour = NULL, int *pMin = NULL, int *pSec = NULL, bool bForceFullFormat = false ); // bForceFullFormat true will keep from returning "today" or "yesterday"
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, const CReplayTime &t, bool bForceFullFormat = false );
int m_fDate; // Representation of a date (bitfield)
int m_fTime; // Representation of time (bitfield)
};
//----------------------------------------------------------------------------------------
#endif // REPLAYTIME_H

View File

@ -0,0 +1,43 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//----------------------------------------------------------------------------------------
#ifndef REPLAYUTILS_H
#define REPLAYUTILS_H
#ifdef _WIN32
#pragma once
#endif
#include "utlstring.h"
void Replay_GetFirstAvailableFilename( char *pDst, int nDstLen, const char *pIdealFilename, const char *pExt,
const char *pFilePath, int nStartIndex );
void Replay_ConstructReplayFilenameString( CUtlString &strOut, const char *pReplaySubDir, const char *pFilename, const char *pGameDir );
//----------------------------------------------------------------------------------------
// Util function, copied from src/engine/common.cpp
//----------------------------------------------------------------------------------------
char *Replay_va( PRINTF_FORMAT_STRING const char *format, ... );
//----------------------------------------------------------------------------------------
// Return the base dir, e.g. "c:\...\game\tf\replays\"
//----------------------------------------------------------------------------------------
const char *Replay_GetBaseDir();
//----------------------------------------------------------------------------------------
// Set the game directory (only to be called from ReplayLib_Init())
//----------------------------------------------------------------------------------------
void Replay_SetGameDir( const char *pGameDir );
//----------------------------------------------------------------------------------------
// Return the base dir, e.g. "c:\...\game\tf\replays\"
//----------------------------------------------------------------------------------------
const char *Replay_GetGameDir();
//----------------------------------------------------------------------------------------
// Get a name of the format "<map>: <current date & time>" - used for replays and takes.
//----------------------------------------------------------------------------------------
void Replay_GetAutoName( OUT_Z_BYTECAP(nDestSizeInBytes) wchar_t *pDest, int nDestSizeInBytes, const char *pMapName );
#endif // REPLAY_H

View File

@ -0,0 +1,72 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef SCREENSHOT_H
#define SCREENSHOT_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "replay/basereplayserializeable.h"
#include "mathlib/vector.h"
#include "qlimits.h"
#include "strtools.h"
//----------------------------------------------------------------------------------------
#define SUBDIR_SCREENSHOTS "screenshots"
//----------------------------------------------------------------------------------------
class CReplayScreenshot : public CBaseReplaySerializeable
{
public:
inline CReplayScreenshot( int nWidth = 0, int nHeight = 0, const char *pBaseFilename = NULL )
: m_nWidth( nWidth ), m_nHeight( nHeight )
{
if ( pBaseFilename )
{
V_strncpy( m_szBaseFilename, pBaseFilename, sizeof( m_szBaseFilename ) );
}
}
virtual bool Read( KeyValues *pIn );
virtual void Write( KeyValues *pOut );
virtual const char *GetSubKeyTitle() const;
virtual const char *GetPath() const;
int m_nWidth; // Screenshot width (does not include power-of-2 padding)
int m_nHeight; // Screenshot height (does not include power-of-2 padding)
char m_szBaseFilename[ MAX_OSPATH ];
};
//----------------------------------------------------------------------------------------
struct CaptureScreenshotParams_t // To be passed from the client into IReplayHistoryManager::CaptureScreenshot()
{
float m_flDelay; // Delay from now (in seconds) when we will take the screenshot
int m_nEntity; // Should be 0 if no camera adjustment is needed, otherwise should be the index of the entity index from which m_posCamera will be based
Vector m_posCamera; // Local position, relative to entity's index (if m_nEntity > 0) for camera position
QAngle m_angCamera; // World angles of camera - used if m_bUseCameraAngles is true
bool m_bUseCameraAngles; // Should we use m_angCamera - m_nEntity can't be 0
bool m_bIgnoreMinTimeBetweenScreenshots; // Force screenshot, regardless of replay_mintimebetweenscreenshots?
bool m_bPrimary; // Only set to true for the primary screenshot, which is taken when the user saves their replay
};
//----------------------------------------------------------------------------------------
struct WriteReplayScreenshotParams_t // Passed from the engine into the client to take a screenshot
{
const char *m_pFilename;
int m_nWidth;
int m_nHeight;
Vector *m_pOrigin; // Perspective origin from which to render. Can be NULL
QAngle *m_pAngles; // Perspective angles from which to render. Can be NULL
};
//----------------------------------------------------------------------------------------
#endif // SCREENSHOT_H

View File

@ -0,0 +1,73 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef SHARED_DEFS_H
#define SHARED_DEFS_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "platform.h"
//----------------------------------------------------------------------------------------
#define SUBDIR_REPLAY "replay"
#define SUBDIR_REPLAYS "replays"
#define SUBDIR_SESSIONS "sessions"
#define SUBDIR_BLOCKS "blocks"
#define SUBDIR_CLIENT "client"
#define SUBDIR_MOVIES "movies"
#define SUBDIR_PERFORMANCES "edits"
#define SUBDIR_SERVER "server"
#define SUBDIR_RENDERED "rendered"
#define SUBDIR_TMP "tmp"
//----------------------------------------------------------------------------------------
#define BLOCK_FILE_EXTENSION "block"
#define GENERIC_FILE_EXTENSION "dmx"
#define DEMO_FILE_EXTENSION "dem"
//----------------------------------------------------------------------------------------
#define MOVIE_HANDLE_BASE 10000 // 10,000
//----------------------------------------------------------------------------------------
#define BUILD_CURL ( defined( WIN32 ) && !defined( _X360 ) ) || defined( POSIX )
//----------------------------------------------------------------------------------------
#define MIN_SERVER_DUMP_INTERVAL 10
#define MAX_SERVER_DUMP_INTERVAL 30
#define DOWNLOAD_TIMEOUT_THRESHOLD 90 // Timeout for a replay download - if no blocks
// are added or updated after this many seconds,
// the replay will be put in the error state.
//----------------------------------------------------------------------------------------
#define MAX_TIMES_TO_SHOW_REPLAY_WELCOME_DLG 1
//----------------------------------------------------------------------------------------
#define MAX_SESSIONNAME_LENGTH 260
#define MAX_REPLAY_TITLE_LENGTH 256
#define MAX_TAKE_TITLE_LENGTH 256
//----------------------------------------------------------------------------------------
#define DEFAULT_COMPRESSOR_TYPE COMPRESSORTYPE_BZ2
//----------------------------------------------------------------------------------------
#define JOB_FAILED ( (JobStatus_t) -1 )
#define DOWNLOAD_MAX_SIZE ( 8 * 1024 * 1024 ) // 8 MB
//----------------------------------------------------------------------------------------
#endif // SHARED_DEFS_H

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: StudioMDL byteswapping functions.
//
// $NoKeywords: $
//=============================================================================
#ifndef STUDIOBYTESWAP_H
#define STUDIOBYTESWAP_H
#if defined(_WIN32)
#pragma once
#endif
#include "byteswap.h"
struct studiohdr_t;
class IPhysicsCollision;
namespace StudioByteSwap
{
typedef bool (*CompressFunc_t)( const void *pInput, int inputSize, void **pOutput, int *pOutputSize );
//void SetTargetBigEndian( bool bigEndian );
void ActivateByteSwapping( bool bActivate );
void SourceIsNative( bool bActivate );
void SetVerbose( bool bVerbose );
void SetCollisionInterface( IPhysicsCollision *pPhysicsCollision );
int ByteswapStudioFile( const char *pFilename, void *pOutBase, const void *pFileBase, int fileSize, studiohdr_t *pHdr, CompressFunc_t pCompressFunc = NULL );
int ByteswapPHY( void *pOutBase, const void *pFileBase, int fileSize );
int ByteswapANI( studiohdr_t* pHdr, void *pOutBase, const void *pFileBase, int filesize );
int ByteswapVVD( void *pOutBase, const void *pFileBase, int fileSize );
int ByteswapVTX( void *pOutBase, const void *pFileBase, int fileSize );
int ByteswapMDL( void *pOutBase, const void *pFileBase, int fileSize );
#define BYTESWAP_ALIGNMENT_PADDING 4096
}
#endif // STUDIOBYTESWAP_H

View File

@ -0,0 +1,237 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Win32 replacements for XBox.
//
//=============================================================================
#if !defined( XBOXSTUBS_H ) && !defined( _X360 )
#define XBOXSTUBS_H
#ifdef _WIN32
#pragma once
#endif
#include "tier0/platform.h"
// Content creation/open flags
#define XCONTENTFLAG_NONE 0x00
#define XCONTENTFLAG_CREATENEW 0x00
#define XCONTENTFLAG_CREATEALWAYS 0x00
#define XCONTENTFLAG_OPENEXISTING 0x00
#define XCONTENTFLAG_OPENALWAYS 0x00
#define XCONTENTFLAG_TRUNCATEEXISTING 0x00
// Content attributes
#define XCONTENTFLAG_NOPROFILE_TRANSFER 0x00
#define XCONTENTFLAG_NODEVICE_TRANSFER 0x00
#define XCONTENTFLAG_STRONG_SIGNED 0x00
#define XCONTENTFLAG_ALLOWPROFILE_TRANSFER 0x00
#define XCONTENTFLAG_MOVEONLY_TRANSFER 0x00
// Console device ports
#define XDEVICE_PORT0 0
#define XDEVICE_PORT1 1
#define XDEVICE_PORT2 2
#define XDEVICE_PORT3 3
#define XUSER_MAX_COUNT 4
#define XUSER_INDEX_NONE 0x000000FE
#define XBX_CLR_DEFAULT 0xFF000000
#define XBX_CLR_WARNING 0x0000FFFF
#define XBX_CLR_ERROR 0x000000FF
#define XBOX_MINBORDERSAFE 0
#define XBOX_MAXBORDERSAFE 0
typedef enum
{
XK_NULL,
XK_BUTTON_UP,
XK_BUTTON_DOWN,
XK_BUTTON_LEFT,
XK_BUTTON_RIGHT,
XK_BUTTON_START,
XK_BUTTON_BACK,
XK_BUTTON_STICK1,
XK_BUTTON_STICK2,
XK_BUTTON_A,
XK_BUTTON_B,
XK_BUTTON_X,
XK_BUTTON_Y,
XK_BUTTON_LEFT_SHOULDER,
XK_BUTTON_RIGHT_SHOULDER,
XK_BUTTON_LTRIGGER,
XK_BUTTON_RTRIGGER,
XK_STICK1_UP,
XK_STICK1_DOWN,
XK_STICK1_LEFT,
XK_STICK1_RIGHT,
XK_STICK2_UP,
XK_STICK2_DOWN,
XK_STICK2_LEFT,
XK_STICK2_RIGHT,
XK_MAX_KEYS,
} xKey_t;
//typedef enum
//{
// XVRB_NONE, // off
// XVRB_ERROR, // fatal error
// XVRB_ALWAYS, // no matter what
// XVRB_WARNING, // non-fatal warnings
// XVRB_STATUS, // status reports
// XVRB_ALL,
//} xverbose_e;
typedef unsigned short WORD;
#ifndef POSIX
typedef unsigned long DWORD;
typedef void* HANDLE;
typedef unsigned __int64 ULONGLONG;
#endif
#ifdef POSIX
typedef DWORD COLORREF;
#endif
#ifndef INVALID_HANDLE_VALUE
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
#endif
// typedef struct {
// IN_ADDR ina; // IP address (zero if not static/DHCP)
// IN_ADDR inaOnline; // Online IP address (zero if not online)
// WORD wPortOnline; // Online port
// BYTE abEnet[6]; // Ethernet MAC address
// BYTE abOnline[20]; // Online identification
// } XNADDR;
typedef int XNADDR;
typedef uint64 XUID;
typedef struct {
BYTE ab[8]; // xbox to xbox key identifier
} XNKID;
typedef struct {
BYTE ab[16]; // xbox to xbox key exchange key
} XNKEY;
typedef struct _XSESSION_INFO
{
XNKID sessionID; // 8 bytes
XNADDR hostAddress; // 36 bytes
XNKEY keyExchangeKey; // 16 bytes
} XSESSION_INFO, *PXSESSION_INFO;
typedef struct _XUSER_DATA
{
BYTE type;
union
{
int nData; // XUSER_DATA_TYPE_INT32
int64 i64Data; // XUSER_DATA_TYPE_INT64
double dblData; // XUSER_DATA_TYPE_DOUBLE
struct // XUSER_DATA_TYPE_UNICODE
{
uint cbData; // Includes null-terminator
char * pwszData;
} string;
float fData; // XUSER_DATA_TYPE_FLOAT
struct // XUSER_DATA_TYPE_BINARY
{
uint cbData;
char * pbData;
} binary;
};
} XUSER_DATA, *PXUSER_DATA;
typedef struct _XUSER_PROPERTY
{
DWORD dwPropertyId;
XUSER_DATA value;
} XUSER_PROPERTY, *PXUSER_PROPERTY;
typedef struct _XUSER_CONTEXT
{
DWORD dwContextId;
DWORD dwValue;
} XUSER_CONTEXT, *PXUSER_CONTEXT;
typedef struct _XSESSION_SEARCHRESULT
{
XSESSION_INFO info;
DWORD dwOpenPublicSlots;
DWORD dwOpenPrivateSlots;
DWORD dwFilledPublicSlots;
DWORD dwFilledPrivateSlots;
DWORD cProperties;
DWORD cContexts;
PXUSER_PROPERTY pProperties;
PXUSER_CONTEXT pContexts;
} XSESSION_SEARCHRESULT, *PXSESSION_SEARCHRESULT;
typedef struct _XSESSION_SEARCHRESULT_HEADER
{
DWORD dwSearchResults;
XSESSION_SEARCHRESULT *pResults;
} XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER;
typedef struct _XSESSION_REGISTRANT
{
uint64 qwMachineID;
DWORD bTrustworthiness;
DWORD bNumUsers;
XUID *rgUsers;
} XSESSION_REGISTRANT;
typedef struct _XSESSION_REGISTRATION_RESULTS
{
DWORD wNumRegistrants;
XSESSION_REGISTRANT *rgRegistrants;
} XSESSION_REGISTRATION_RESULTS, *PXSESSION_REGISTRATION_RESULTS;
typedef struct {
BYTE bFlags;
BYTE bReserved;
WORD cProbesXmit;
WORD cProbesRecv;
WORD cbData;
BYTE * pbData;
WORD wRttMinInMsecs;
WORD wRttMedInMsecs;
DWORD dwUpBitsPerSec;
DWORD dwDnBitsPerSec;
} XNQOSINFO;
typedef struct {
uint cxnqos;
uint cxnqosPending;
XNQOSINFO axnqosinfo[1];
} XNQOS;
#define XSESSION_CREATE_HOST 0
#define XUSER_DATA_TYPE_INT32 0
#define XSESSION_CREATE_USES_ARBITRATION 0
#define XNET_QOS_LISTEN_ENABLE 0
#define XNET_QOS_LISTEN_DISABLE 0
#define XNET_QOS_LISTEN_SET_DATA 0
FORCEINLINE void XBX_ProcessEvents() {}
FORCEINLINE unsigned int XBX_GetSystemTime() { return 0; }
FORCEINLINE int XBX_GetPrimaryUserId() { return 0; }
FORCEINLINE void XBX_SetPrimaryUserId( DWORD idx ) {}
FORCEINLINE int XBX_GetStorageDeviceId() { return 0; }
FORCEINLINE void XBX_SetStorageDeviceId( DWORD idx ) {}
FORCEINLINE const char *XBX_GetLanguageString() { return ""; }
FORCEINLINE bool XBX_IsLocalized() { return false; }
#define XCONTENT_MAX_DISPLAYNAME_LENGTH 128
#define XCONTENT_MAX_FILENAME_LENGTH 42
#define XBX_INVALID_STORAGE_ID ((DWORD) -1)
#define XBX_STORAGE_DECLINED ((DWORD) -2)
#endif // XBOXSTUBS_H

View File

@ -0,0 +1,949 @@
BEGIN {use File::Basename; push @INC, dirname($0); }
require "valve_perl_helpers.pl";
sub ReadInputFile
{
local( $filename ) = shift;
local( *INPUT );
local( @output );
open INPUT, "<$filename" || die;
local( $line );
local( $linenum ) = 1;
while( $line = <INPUT> )
{
# print "LINE: $line";
# $line =~ s/\n//g;
# local( $postfix ) = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
# $postfix .= "; LINEINFO($filename)($linenum)\n";
if( $line =~ m/\#include\s+\"(.*)\"/i )
{
push @output, &ReadInputFile( $1 );
}
else
{
# push @output, $line . $postfix;
push @output, $line;
}
$linenum++;
}
close INPUT;
# print "-----------------\n";
# print @output;
# print "-----------------\n";
return @output;
}
$dynamic_compile = defined $ENV{"dynamic_shaders"} && $ENV{"dynamic_shaders"} != 0;
$generateListingFile = 0;
$spewCombos = 0;
@startTimes = times;
$startTime = time;
$g_produceCppClasses = 1;
$g_produceCompiledVcs = 1;
while( 1 )
{
$fxc_filename = shift;
if( $fxc_filename =~ m/-source/ )
{
shift;
}
elsif( $fxc_filename =~ m/-nv3x/i )
{
$nvidia = 1;
}
elsif( $fxc_filename =~ m/-ps20a/i )
{
$ps2a = 1;
}
elsif( $fxc_filename =~ m/-x360/i )
{
# enable x360
$g_x360 = 1;
}
elsif( $fxc_filename =~ m/-novcs/i )
{
$g_produceCompiledVcs = 0;
}
elsif( $fxc_filename =~ m/-nocpp/i )
{
$g_produceCppClasses = 0;
}
else
{
last;
}
}
$argstring = $fxc_filename;
$fxc_basename = $fxc_filename;
$fxc_basename =~ s/^.*-----//;
$fxc_filename =~ s/-----.*$//;
$debug = 0;
$forcehalf = 0;
sub ToUpper
{
local( $in ) = shift;
$in =~ tr/a-z/A-Z/;
return $in;
}
sub CreateCCodeToSpewDynamicCombo
{
local( $out ) = "";
$out .= "\t\tOutputDebugString( \"src:$fxc_filename vcs:$fxc_basename dynamic index\" );\n";
$out .= "\t\tchar tmp[128];\n";
$out .= "\t\tint shaderID = ";
local( $scale ) = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
local( $name ) = @dynamicDefineNames[$i];
local( $varname ) = "m_n" . $name;
$out .= "( $scale * $varname ) + ";
$scale *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
$out .= "0;\n";
if( scalar( @dynamicDefineNames ) + scalar( @staticDefineNames ) > 0 )
{
$out .= "\t\tint nCombo = shaderID;\n";
}
my $type = GetShaderType( $fxc_filename );
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$out .= "\t\tint n$dynamicDefineNames[$i] = nCombo % ";
$out .= ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) + $dynamicDefineMin[$i];
$out .= ";\n";
$out .= "\t\tsprintf( tmp, \"\%d\", n$dynamicDefineNames[$i] );\n";
$out .= "\t\tOutputDebugString( \" $dynamicDefineNames[$i]";
$out .= "=\" );\n";
$out .= "\t\tOutputDebugString( tmp );\n";
$out .= "\t\tnCombo = nCombo / " . ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) . ";\n";
$out .= "\n";
}
$out .= "\t\tOutputDebugString( \"\\n\" );\n";
return $out;
}
sub CreateCCodeToSpewStaticCombo
{
local( $out ) = "";
$out .= "\t\tOutputDebugString( \"src:$fxc_filename vcs:$fxc_basename static index\" );\n";
$out .= "\t\tchar tmp[128];\n";
$out .= "\t\tint shaderID = ";
local( $scale ) = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$scale *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
local( $name ) = @staticDefineNames[$i];
local( $varname ) = "m_n" . $name;
$out .= "( $scale * $varname ) + ";
$scale *= $staticDefineMax[$i] - $staticDefineMin[$i] + 1;
}
$out .= "0;\n";
# $out .= "\t\tsprintf( tmp, \"\%d\\n\", shaderID );\n";
# $out .= "\t\tOutputDebugString( tmp );\n\n";
if( scalar( @staticDefineNames ) + scalar( @staticDefineNames ) > 0 )
{
$out .= "\t\tint nCombo = shaderID;\n";
}
my $type = GetShaderType( $fxc_filename );
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$out .= "\t\tnCombo = nCombo / " . ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) . ";\n";
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
$out .= "\t\tint n$staticDefineNames[$i] = nCombo % ";
$out .= ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) + $staticDefineMin[$i];
$out .= ";\n";
$out .= "\t\tsprintf( tmp, \"\%d\", n$staticDefineNames[$i] );\n";
$out .= "\t\tOutputDebugString( \" $staticDefineNames[$i]";
$out .= "=\" );\n";
$out .= "\t\tOutputDebugString( tmp );\n";
$out .= "\t\tnCombo = nCombo / " . ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) . ";\n";
$out .= "\n";
}
$out .= "\t\tOutputDebugString( \"\\n\" );\n";
return $out;
}
sub WriteHelperVar
{
local( $name ) = shift;
local( $min ) = shift;
local( $max ) = shift;
local( $varname ) = "m_n" . $name;
local( $boolname ) = "m_b" . $name;
push @outputHeader, "private:\n";
push @outputHeader, "\tint $varname;\n";
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\tbool $boolname;\n";
push @outputHeader, "#endif\n";
push @outputHeader, "public:\n";
# int version of set function
push @outputHeader, "\tvoid Set" . $name . "( int i )\n";
push @outputHeader, "\t{\n";
push @outputHeader, "\t\tAssert( i >= $min && i <= $max );\n";
push @outputHeader, "\t\t$varname = i;\n";
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\t\t$boolname = true;\n";
push @outputHeader, "#endif\n";
push @outputHeader, "\t}\n";
# bool version of set function
push @outputHeader, "\tvoid Set" . $name . "( bool i )\n";
push @outputHeader, "\t{\n";
# push @outputHeader, "\t\tAssert( i >= $min && i <= $max );\n";
push @outputHeader, "\t\t$varname = i ? 1 : 0;\n";
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\t\t$boolname = true;\n";
push @outputHeader, "#endif\n";
push @outputHeader, "\t}\n";
}
sub WriteStaticBoolExpression
{
local( $prefix ) = shift;
local( $operator ) = shift;
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
if( $i )
{
push @outputHeader, " $operator ";
}
local( $name ) = @staticDefineNames[$i];
local( $boolname ) = "m_b" . $name;
push @outputHeader, "$prefix$boolname";
}
push @outputHeader, ";\n";
}
sub WriteDynamicBoolExpression
{
local( $prefix ) = shift;
local( $operator ) = shift;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
if( $i )
{
push @outputHeader, " $operator ";
}
local( $name ) = @dynamicDefineNames[$i];
local( $boolname ) = "m_b" . $name;
push @outputHeader, "$prefix$boolname";
}
push @outputHeader, ";\n";
}
sub WriteDynamicHelperClasses
{
local( $basename ) = $fxc_basename;
$basename =~ tr/A-Z/a-z/;
local( $classname ) = $basename . "_Dynamic_Index";
push @outputHeader, "class $classname\n";
push @outputHeader, "{\n";
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$name = $dynamicDefineNames[$i];
$min = $dynamicDefineMin[$i];
$max = $dynamicDefineMax[$i];
&WriteHelperVar( $name, $min, $max );
}
push @outputHeader, "public:\n";
# push @outputHeader, "void SetPixelShaderIndex( IShaderAPI *pShaderAPI ) { pShaderAPI->SetPixelShaderIndex( GetIndex() ); }\n";
push @outputHeader, "\t$classname()\n";
push @outputHeader, "\t{\n";
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
local( $name ) = @dynamicDefineNames[$i];
local( $boolname ) = "m_b" . $name;
local( $varname ) = "m_n" . $name;
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\t\t$boolname = false;\n";
push @outputHeader, "#endif // _DEBUG\n";
push @outputHeader, "\t\t$varname = 0;\n";
}
push @outputHeader, "\t}\n";
push @outputHeader, "\tint GetIndex()\n";
push @outputHeader, "\t{\n";
push @outputHeader, "\t\t// Asserts to make sure that we aren't using any skipped combinations.\n";
foreach $skip (@perlskipcodeindividual)
{
# can't do this static and dynamic can see each other.
# $skip =~ s/\$/m_n/g;
# $skip =~ s/defined//g;
# push @outputHeader, "\t\tAssert( !( $skip ) );\n";
# print "\t\tAssert( !( $skip ) );\n";
}
push @outputHeader, "\t\t// Asserts to make sure that we are setting all of the combination vars.\n";
push @outputHeader, "#ifdef _DEBUG\n";
if( scalar( @dynamicDefineNames ) > 0 )
{
push @outputHeader, "\t\tbool bAllDynamicVarsDefined = ";
WriteDynamicBoolExpression( "", "&&" );
}
if( scalar( @dynamicDefineNames ) > 0 )
{
push @outputHeader, "\t\tAssert( bAllDynamicVarsDefined );\n";
}
push @outputHeader, "#endif // _DEBUG\n";
if( $spewCombos && scalar( @dynamicDefineNames ) )
{
push @outputHeader, &CreateCCodeToSpewDynamicCombo();
}
push @outputHeader, "\t\treturn ";
local( $scale ) = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
local( $name ) = @dynamicDefineNames[$i];
local( $varname ) = "m_n" . $name;
push @outputHeader, "( $scale * $varname ) + ";
$scale *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
push @outputHeader, "0;\n";
push @outputHeader, "\t}\n";
push @outputHeader, "};\n";
push @outputHeader, "\#define shaderDynamicTest_" . $basename . " ";
my $prefix;
my $shaderType = &GetShaderType( $fxc_filename );
if( $shaderType =~ m/^vs/i )
{
$prefix = "vsh_";
}
else
{
$prefix = "psh_";
}
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
local( $name ) = @dynamicDefineNames[$i];
push @outputHeader, $prefix . "forgot_to_set_dynamic_" . $name . " + ";
}
push @outputHeader, "0\n";
}
sub WriteStaticHelperClasses
{
local( $basename ) = $fxc_basename;
$basename =~ tr/A-Z/a-z/;
local( $classname ) = $basename . "_Static_Index";
push @outputHeader, "#include \"shaderlib/cshader.h\"\n";
push @outputHeader, "class $classname\n";
push @outputHeader, "{\n";
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
$name = $staticDefineNames[$i];
$min = $staticDefineMin[$i];
$max = $staticDefineMax[$i];
&WriteHelperVar( $name, $min, $max );
}
push @outputHeader, "public:\n";
# push @outputHeader, "void SetShaderIndex( IShaderShadow *pShaderShadow ) { pShaderShadow->SetPixelShaderIndex( GetIndex() ); }\n";
push @outputHeader, "\t$classname( )\n";
push @outputHeader, "\t{\n";
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
local( $name ) = @staticDefineNames[$i];
local( $boolname ) = "m_b" . $name;
local( $varname ) = "m_n" . $name;
if ( length( $staticDefineInit{$name} ) )
{
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\t\t$boolname = true;\n";
push @outputHeader, "#endif // _DEBUG\n";
push @outputHeader, "\t\t$varname = $staticDefineInit{$name};\n";
}
else
{
push @outputHeader, "#ifdef _DEBUG\n";
push @outputHeader, "\t\t$boolname = false;\n";
push @outputHeader, "#endif // _DEBUG\n";
push @outputHeader, "\t\t$varname = 0;\n";
}
}
push @outputHeader, "\t}\n";
push @outputHeader, "\tint GetIndex()\n";
push @outputHeader, "\t{\n";
push @outputHeader, "\t\t// Asserts to make sure that we aren't using any skipped combinations.\n";
foreach $skip (@perlskipcodeindividual)
{
$skip =~ s/\$/m_n/g;
# push @outputHeader, "\t\tAssert( !( $skip ) );\n";
}
push @outputHeader, "\t\t// Asserts to make sure that we are setting all of the combination vars.\n";
push @outputHeader, "#ifdef _DEBUG\n";
if( scalar( @staticDefineNames ) > 0 )
{
push @outputHeader, "\t\tbool bAllStaticVarsDefined = ";
WriteStaticBoolExpression( "", "&&" );
}
if( scalar( @staticDefineNames ) > 0 )
{
push @outputHeader, "\t\tAssert( bAllStaticVarsDefined );\n";
}
push @outputHeader, "#endif // _DEBUG\n";
if( $spewCombos && scalar( @staticDefineNames ) )
{
push @outputHeader, &CreateCCodeToSpewStaticCombo();
}
push @outputHeader, "\t\treturn ";
local( $scale ) = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$scale *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
local( $name ) = @staticDefineNames[$i];
local( $varname ) = "m_n" . $name;
push @outputHeader, "( $scale * $varname ) + ";
$scale *= $staticDefineMax[$i] - $staticDefineMin[$i] + 1;
}
push @outputHeader, "0;\n";
push @outputHeader, "\t}\n";
push @outputHeader, "};\n";
push @outputHeader, "\#define shaderStaticTest_" . $basename . " ";
my $prefix;
my $shaderType = &GetShaderType( $fxc_filename );
if( $shaderType =~ m/^vs/i )
{
$prefix = "vsh_";
}
else
{
$prefix = "psh_";
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
local( $name ) = @staticDefineNames[$i];
push @outputHeader, $prefix . "forgot_to_set_static_" . $name . " + " unless (length($staticDefineInit{$name} ));
}
push @outputHeader, "0\n";
}
sub GetNewMainName
{
local( $shadername ) = shift;
local( $combo ) = shift;
local( $i );
$shadername =~ s/\./_/g;
local( $name ) = $shadername;
for( $i = 0; $i < scalar( @defineNames ); $i++ )
{
local( $val ) = ( $combo % ( $defineMax[$i] - $defineMin[$i] + 1 ) ) + $defineMin[$i];
$name .= "_" . $defineNames[$i] . "_" . $val;
$combo = $combo / ( $defineMax[$i] - $defineMin[$i] + 1 );
}
# return $name;
return "main";
}
sub RenameMain
{
local( $shadername ) = shift;
local( $combo ) = shift;
local( $name ) = &GetNewMainName( $shadername, $combo );
return "/Dmain=$name /E$name ";
}
sub GetShaderType
{
local( $shadername ) = shift; # hack - use global variables
$shadername = $fxc_basename;
if( $shadername =~ m/ps30/i )
{
if( $debug )
{
return "ps_3_sw";
}
else
{
return "ps_3_0";
}
}
elsif( $shadername =~ m/ps20b/i )
{
return "ps_2_b";
}
elsif( $shadername =~ m/ps20/i )
{
if( $debug )
{
return "ps_2_sw";
}
else
{
if( $ps2a )
{
return "ps_2_a";
}
else
{
return "ps_2_0";
}
}
}
elsif( $shadername =~ m/ps14/i )
{
return "ps_1_4";
}
elsif( $shadername =~ m/ps11/i )
{
return "ps_1_1";
}
elsif( $shadername =~ m/vs30/i )
{
if( $debug )
{
return "vs_3_sw";
}
else
{
return "vs_3_0";
}
}
elsif( $shadername =~ m/vs20/i )
{
if( $debug )
{
return "vs_2_sw";
}
else
{
return "vs_2_0";
}
}
elsif( $shadername =~ m/vs14/i )
{
return "vs_1_1";
}
elsif( $shadername =~ m/vs11/i )
{
return "vs_1_1";
}
else
{
die "\n\nSHADERNAME = $shadername\n\n";
}
}
sub CalcNumCombos
{
local( $i, $numCombos );
$numCombos = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
$numCombos *= $staticDefineMax[$i] - $staticDefineMin[$i] + 1;
}
return $numCombos;
}
sub CalcNumDynamicCombos
{
local( $i, $numCombos );
$numCombos = 1;
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
}
return $numCombos;
}
sub CreateCFuncToCreateCompileCommandLine
{
local( $out ) = "";
$out .= "\t\tOutputDebugString( \"compiling src:$fxc_filename vcs:$fxc_basename \" );\n";
$out .= "\t\tchar tmp[128];\n";
$out .= "\t\tsprintf( tmp, \"\%d\\n\", shaderID );\n";
$out .= "\t\tOutputDebugString( tmp );\n";
$out .= "\t\tstatic PrecompiledShaderByteCode_t byteCode;\n";
if( scalar( @dynamicDefineNames ) + scalar( @staticDefineNames ) > 0 )
{
$out .= "\t\tint nCombo = shaderID;\n";
}
# $out .= "\tvoid BuildCompileCommandLine( int nCombo, char *pResult, int maxLength )\n";
# $out .= "\t{\n";
$out .= "\t\tD3DXMACRO ";
$out .= "defineMacros";
$out .= "[";
$out .= scalar( @dynamicDefineNames ) + scalar( @staticDefineNames ) + 1; # add 1 for null termination
$out .= "];\n";
if( scalar( @dynamicDefineNames ) + scalar( @staticDefineNames ) > 0 )
{
$out .= "\t\tchar tmpStringBuf[1024];\n";
$out .= "\t\tchar *pTmpString = tmpStringBuf;\n\n";
}
local( $i );
my $type = GetShaderType( $fxc_filename );
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
{
$out .= "\t\tsprintf( pTmpString, \"%d\", nCombo % ";
$out .= ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) + $dynamicDefineMin[$i];
$out .= " );\n";
$out .= "\t\tdefineMacros";
$out .= "[";
$out .= $i;
$out .= "]";
$out .= "\.Name = ";
$out .= "\"$dynamicDefineNames[$i]\";\n";
$out .= "\t\tint n$dynamicDefineNames[$i] = nCombo % ";
$out .= ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) + $dynamicDefineMin[$i];
$out .= ";\n";
$out .= "\t\tUNUSED( n$dynamicDefineNames[$i] );\n";
$out .= "\t\tdefineMacros";
$out .= "[";
$out .= $i;
$out .= "]";
$out .= "\.Definition = ";
$out .= "pTmpString;\n";
$out .= "\t\tpTmpString += strlen( pTmpString ) + 1;\n";
$out .= "\t\tsprintf( tmp, \"\%d\", n$dynamicDefineNames[$i] );\n";
$out .= "\t\tOutputDebugString( \" $dynamicDefineNames[$i]";
$out .= "=\" );\n";
$out .= "\t\tOutputDebugString( tmp );\n";
$out .= "\t\tnCombo = nCombo / " . ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) . ";\n";
$out .= "\n";
}
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
{
$out .= "\t\tsprintf( pTmpString, \"%d\", nCombo % ";
$out .= ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) + $staticDefineMin[$i];
$out .= " );\n";
$out .= "\t\tdefineMacros";
$out .= "[";
$out .= $i + scalar( @dynamicDefineNames );
$out .= "]";
$out .= "\.Name = ";
$out .= "\"$staticDefineNames[$i]\";\n";
$out .= "\t\tint n$staticDefineNames[$i] = nCombo % ";
$out .= ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) + $staticDefineMin[$i];
$out .= ";\n";
$out .= "\t\tUNUSED( n$staticDefineNames[$i] );\n";
$out .= "\t\tdefineMacros";
$out .= "[";
$out .= $i + scalar( @dynamicDefineNames );
$out .= "]";
$out .= "\.Definition = ";
$out .= "pTmpString;\n";
$out .= "\t\tpTmpString += strlen( pTmpString ) + 1;\n";
$out .= "\t\tsprintf( tmp, \"\%d\", n$staticDefineNames[$i] );\n";
$out .= "\t\tOutputDebugString( \" $staticDefineNames[$i]";
$out .= "=\" );\n";
$out .= "\t\tOutputDebugString( tmp );\n";
$out .= "\t\tnCombo = nCombo / " . ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) . ";\n";
$out .= "\n";
}
$out .= "\t\tOutputDebugString( \"\\n\" );\n";
$cskipcode = $perlskipcode;
$cskipcode =~ s/\$/n/g;
$out .= "\t\tif( $cskipcode )\n\t\t{\n";
$out .= "\t\t\tstatic char blah[4] = { 0, 0, 0, 0 };\n";
$out .= "\t\t\tbyteCode.m_pRawData = blah;\n";
$out .= "\t\t\tbyteCode.m_nSizeInBytes = 4;\n";
$out .= "\t\t\treturn byteCode;\n";
$out .= "\t\t}\n";
$out .= "\t\t// Must null terminate macros.\n";
$out .= "\t\tdefineMacros[";
$out .= scalar( @dynamicDefineNames ) + scalar( @staticDefineNames );
$out .= "]";
$out .= ".Name = NULL;\n";
$out .= "\t\tdefineMacros[";
$out .= scalar( @dynamicDefineNames ) + scalar( @staticDefineNames );
$out .= "]";
$out .= ".Definition = NULL;\n\n";
$out .= "\t\tLPD3DXBUFFER pShader; // NOTE: THESE LEAK!!!\n";
$out .= "\t\tLPD3DXBUFFER pErrorMessages; // NOTE: THESE LEAK!!!\n";
$out .= "\t\tHRESULT hr = D3DXCompileShaderFromFile( \"u:\\\\hl2_e3_2004\\\\src_e3_2004\\\\materialsystem\\\\stdshaders\\\\$fxc_filename\",\n\t\t\tdefineMacros,\n\t\t\tNULL, // LPD3DXINCLUDE \n\t\t\t\"main\",\n\t\t\t\"$type\",\n\t\t\t0, // DWORD Flags\n\t\t\t&pShader,\n\t\t\t&pErrorMessages,\n\t\t\tNULL // LPD3DXCONSTANTTABLE *ppConstantTable\n\t\t\t );\n";
$out .= "\t\tif( hr != D3D_OK )\n";
$out .= "\t\t{\n";
$out .= "\t\t\tconst char *pErrorMessageString = ( const char * )pErrorMessages->GetBufferPointer();\n";
$out .= "\t\t\tOutputDebugString( pErrorMessageString );\n";
$out .= "\t\t\tOutputDebugString( \"\\n\" );\n";
$out .= "\t\t\tAssert( 0 );\n";
$out .= "\t\t\tstatic char blah[4] = { 0, 0, 0, 0 };\n";
$out .= "\t\t\tbyteCode.m_pRawData = blah;\n";
$out .= "\t\t\tbyteCode.m_nSizeInBytes = 4;\n";
$out .= "\t\t}\n";
$out .= "\t\telse\n";
$out .= "\t\t{\n";
$out .= "\t\t\tbyteCode.m_pRawData = pShader->GetBufferPointer();\n";
$out .= "\t\t\tbyteCode.m_nSizeInBytes = pShader->GetBufferSize();\n";
$out .= "\t\t}\n";
$out .= "\t\treturn byteCode;\n";
return $out;
}
#print "--------\n";
if ( $g_x360 )
{
$fxctmp = "fxctmp9_360_tmp";
}
else
{
$fxctmp = "fxctmp9_tmp";
}
if( !stat $fxctmp )
{
mkdir $fxctmp, 0777 || die $!;
}
# suck in an input file (using includes)
#print "$fxc_filename...";
@fxc = ReadInputFile( $fxc_filename );
# READ THE TOP OF THE FILE TO FIND SHADER COMBOS
foreach $line ( @fxc )
{
$line="" if ($g_x360 && ($line=~/\[PC\]/)); # line marked as [PC] when building for x360
$line="" if (($g_x360 == 0) && ($line=~/\[XBOX\]/)); # line marked as [XBOX] when building for pc
if ( $fxc_basename =~ m/_ps(\d+\w?)$/i )
{
my $psver = $1;
$line="" if (($line =~/\[ps\d+\w?\]/i) && ($line!~/\[ps$psver\]/i)); # line marked for a version of compiler and not what we build
}
if ( $fxc_basename =~ m/_vs(\d+\w?)$/i )
{
my $vsver = $1;
$line="" if (($line =~/\[vs\d+\w?\]/i) && ($line!~/\[vs$vsver\]/i)); # line marked for a version of compiler and not what we build
}
my $init_expr;
$init_expr = $1 if ( $line=~/\[\=([^\]]+)\]/); # parse default init expression for combos
$line=~s/\[[^\[\]]*\]//; # cut out all occurrences of
# square brackets and whatever is
# inside all these modifications
# to the line are seen later when
# processing skips and centroids
next if( $line =~ m/^\s*$/ );
if( $line =~ m/^\s*\/\/\s*STATIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
{
local( $name, $min, $max );
$name = $1;
$min = $2;
$max = $3;
# print STDERR "STATIC: \"$name\" \"$min..$max\"\n";
push @staticDefineNames, $name;
push @staticDefineMin, $min;
push @staticDefineMax, $max;
$staticDefineInit{$name}=$init_expr;
}
elsif( $line =~ m/^\s*\/\/\s*DYNAMIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
{
local( $name, $min, $max );
$name = $1;
$min = $2;
$max = $3;
# print STDERR "DYNAMIC: \"$name\" \"$min..$max\"\n";
push @dynamicDefineNames, $name;
push @dynamicDefineMin, $min;
push @dynamicDefineMax, $max;
}
}
# READ THE WHOLE FILE AND FIND SKIP STATEMENTS
foreach $line ( @fxc )
{
if( $line =~ m/^\s*\/\/\s*SKIP\s*\s*\:\s*(.*)$/ )
{
# print $1 . "\n";
$perlskipcode .= "(" . $1 . ")||";
push @perlskipcodeindividual, $1;
}
}
if( defined $perlskipcode )
{
$perlskipcode .= "0";
$perlskipcode =~ s/\n//g;
}
else
{
$perlskipcode = "0";
}
# READ THE WHOLE FILE AND FIND CENTROID STATEMENTS
foreach $line ( @fxc )
{
if( $line =~ m/^\s*\/\/\s*CENTROID\s*\:\s*TEXCOORD(\d+)\s*$/ )
{
$centroidEnable{$1} = 1;
# print "CENTROID: $1\n";
}
}
if( $spewCombos )
{
push @outputHeader, "#include \"windows.h\"\n";
}
#push @outputHeader, "\#include \"shaderlib\\baseshader.h\"\n";
#push @outputHeader, "IShaderDynamicAPI *CBaseShader::s_pShaderAPI;\n";
# Go ahead an compute the mask of samplers that need to be centroid sampled
$centroidMask = 0;
foreach $centroidRegNum ( keys( %centroidEnable ) )
{
# print "THING: $samplerName $centroidRegNum\n";
$centroidMask += 1 << $centroidRegNum;
}
#printf "0x%x\n", $centroidMask;
$numCombos = &CalcNumCombos();
#print "$numCombos combos\n";
if( $g_produceCompiledVcs && !$dynamic_compile )
{
open FOUT, ">>filelistgen.txt" || die "can't open filelistgen.txt";
print FOUT "**** generated by fxc_prep.pl ****\n";
print FOUT "#BEGIN " . $fxc_basename . "\n";
print FOUT "$fxc_filename" . "\n";
print FOUT "#DEFINES-D:\n";
for( $i = 0; $i < scalar( @dynamicDefineNames ); \$i++ )
{
print FOUT "$dynamicDefineNames[$i]=";
print FOUT $dynamicDefineMin[$i];
print FOUT "..";
print FOUT $dynamicDefineMax[$i];
print FOUT "\n";
}
print FOUT "#DEFINES-S:\n";
for( $i = 0; $i < scalar( @staticDefineNames ); \$i++ )
{
print FOUT "$staticDefineNames[$i]=";
print FOUT $staticDefineMin[$i];
print FOUT "..";
print FOUT $staticDefineMax[$i];
print FOUT "\n";
}
print FOUT "#SKIP:\n";
print FOUT "$perlskipcode\n";
print FOUT "#COMMAND:\n";
# first line
print FOUT "fxc.exe ";
print FOUT "/DTOTALSHADERCOMBOS=$numCombos ";
print FOUT "/DCENTROIDMASK=$centroidMask ";
print FOUT "/DNUMDYNAMICCOMBOS=" . &CalcNumDynamicCombos() . " ";
print FOUT "/DFLAGS=0x0 "; # Nothing here for now.
print FOUT "\n";
#defines go here
# second line
print FOUT &RenameMain( $fxc_filename, $i );
print FOUT "/T" . &GetShaderType( $fxc_filename ) . " ";
print FOUT "/DSHADER_MODEL_" . &ToUpper( &GetShaderType( $fxc_filename ) ) . "=1 ";
if( $nvidia )
{
print FOUT "/DNV3X=1 "; # enable NV3X codepath
}
if ( $g_x360 )
{
print FOUT "/D_X360=1 "; # shaders can identify X360 centric code
# print FOUT "/Xbe:2- "; # use the less-broken old back end
}
if( $debug )
{
print FOUT "/Od "; # disable optimizations
print FOUT "/Zi "; # enable debug info
}
# print FOUT "/Zi "; # enable debug info
print FOUT "/nologo ";
# print FOUT "/Fhtmpshader.h ";
print FOUT "/Foshader.o ";
print FOUT "$fxc_filename";
print FOUT ">output.txt 2>&1";
print FOUT "\n";
#end of command line
print FOUT "#END\n";
print FOUT "**** end ****\n";
close FOUT;
}
if ( $g_produceCppClasses )
{
# Write out the C++ helper class for picking shader combos
&WriteStaticHelperClasses();
&WriteDynamicHelperClasses();
my $incfilename = "$fxctmp\\$fxc_basename" . ".inc";
&WriteFile( $incfilename, join( "", @outputHeader ) );
}
if( $generateListingFile )
{
my $listFileName = "$fxctmp/$fxc_basename" . ".lst";
print "writing $listFileName\n";
if( !open FILE, ">$listFileName" )
{
die;
}
print FILE @listingOutput;
close FILE;
}
@endTimes = times;
$endTime = time;
#printf "Elapsed user time: %.2f seconds!\n", $endTimes[0] - $startTimes[0];
#printf "Elapsed system time: %.2f seconds!\n", $endTimes[1] - $startTimes[1];
#printf "Elapsed child user time: %.2f seconds!\n", $endTimes[2] - $startTimes[2];
#printf "Elapsed child system time: %.2f seconds!\n", $endTimes[3] - $startTimes[3];
#printf "Elapsed total time: %.2f seconds!\n", $endTime - $startTime;

Binary file not shown.

Binary file not shown.

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