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

View File

@@ -0,0 +1 @@
map sdk_vehicles

View File

@@ -0,0 +1 @@
map sdk_vehicles

View File

@@ -0,0 +1 @@
map sdk_vehicles

View File

@@ -0,0 +1,377 @@
detail
{
forest_floor_01
//for Ep2
{
"density" "450.0"
Group1
{
"alpha" "0"
Model1
// Position 5 in sheet
{
"sprite" "187 176 151 151 1024"
"spritesize" "0.5 0.0 14 14"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model2
// Position 1 in sheet
{
"sprite" "21 15 151 150 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.2"
"amount" "0.01"
"detailOrientation" "2"
}
Model3
// Position 2 in sheet
{
"sprite" "186 16 150 151 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.3"
"amount" "0.1"
"detailOrientation" "2"
}
Model4
// Position 4 in sheet
{
"sprite" "22 178 148 147 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.3"
"amount" "0.1"
"detailOrientation" "2"
}
Model5
// Position 3 in sheet
{
"sprite" "350 14 148 151 1024"
"spritesize" "0.5 0.0 17 17"
"spriterandomscale" "0.3"
"amount" "0.05"
"detailOrientation" "2"
}
Model6
// Position 6 in sheet
{
"sprite" "348 176 148 146 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.3"
"amount" "0.05"
"detailOrientation" "2"
}
Model7
// Position 7 in sheet
{
"sprite" "21 337 150 170 1024"
"spritesize" "0.5 0.0 12 18"
"spriterandomscale" "0.2"
"amount" "0.05"
"detailOrientation" "2"
}
Model8
// Position 8 in sheet
{
"sprite" "185 337 152 152 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.05"
"detailOrientation" "2"
}
Model9
// Position 9 in the sheet
{
"sprite" "347 364 143 115 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.4"
"detailOrientation" "2"
}
}
Group2
{
"alpha" "1"
}
}
canal_reeds2
{
"density" "750.0"
Group1
{
"alpha" "0.0"
}
Group2
{
"alpha" "0.2"
}
Group2a
{
"alpha" "0.35"
Model1
{
"sprite" "561 4 152 252 1024"
"spritesize" "0.5 0.0 20 40"
"spriterandomscale" "0.2"
"amount" "0.8"
"detailOrientation" "2"
//"upright" "1.0"
//"model" "models/props_foliage/small_cattails.mdl"
//"amount" "0.2"
}
}
Group3
{
"alpha" "0.75"
Model1
{
"sprite" "561 4 152 252 1024"
"spritesize" "0.5 0.0 10 30"
"spriterandomscale" "0.2"
"amount" "0.6"
"detailOrientation" "2"
//"upright" "1.0"
//"model" "models/props_foliage/small_cattails.mdl"
//"amount" "0.2"
}
}
Group4
{
"alpha" "1.0"
Model1
{
"sprite" "561 4 152 252 1024"
"spritesize" "0.5 0.0 15 25"
"spriterandomscale" "0.3"
"amount" "0.2"
"detailOrientation" "2"
//"upright" "1.0"
//"model" "models/props_foliage/small_cattails.mdl"
//"amount" "0.2"
}
Model2
// Position 9 in the sheet
{
"sprite" "347 364 143 115 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.4"
"detailOrientation" "2"
}
Model3
// Position 3 in sheet
{
"sprite" "350 14 148 151 1024"
"spritesize" "0.5 0.0 17 17"
"spriterandomscale" "0.3"
"amount" "0.2"
"detailOrientation" "2"
}
Model4
// Position 8 in sheet
{
"sprite" "185 337 152 152 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.2"
"detailOrientation" "2"
}
}
}
redgrass_alt
//alt version for ep2
{
"density" "500.0"
Group1
{
"alpha" "0"
Model1
// Position 1 in sheet
{
"sprite" "21 15 151 150 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model2
// Position 3 in sheet
{
"sprite" "350 14 148 151 1024"
"spritesize" "0.5 0.0 17 17"
"spriterandomscale" "0.3"
"amount" "0.1"
"detailOrientation" "2"
}
Model3
// Position 6 in sheet
{
"sprite" "348 176 148 146 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.3"
"amount" "0.1"
"detailOrientation" "2"
}
Model4
// Position 7 in sheet
{
"sprite" "21 337 150 170 1024"
"spritesize" "0.5 0.0 12 18"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model5
// Position 8 in sheet
{
"sprite" "185 337 152 152 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.2"
"detailOrientation" "2"
}
Model6
// Position 9 in the sheet
{
"sprite" "347 364 143 115 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.4"
"detailOrientation" "2"
}
}
Group2
{
"alpha" "1"
}
}
citygrass_light
{
"density" "400.0"
Group1
{
"alpha" "1"
Model1
// Position 9 in the sheet
{
"sprite" "347 364 143 115 1024"
"spritesize" "0.5 0.0 32 32"
"spriterandomscale" "0.2"
"amount" "0.6"
"detailOrientation" "2"
}
Model2
// Position 1 in sheet
{
"sprite" "21 15 151 150 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.2"
"amount" "0.05"
"detailOrientation" "2"
}
Model3
// Position 3 in sheet
{
"sprite" "350 14 148 151 1024"
"spritesize" "0.5 0.0 17 17"
"spriterandomscale" "0.3"
"amount" "0.05"
"detailOrientation" "2"
}
Model4
// Position 6 in sheet
{
"sprite" "348 176 148 146 1024"
"spritesize" "0.5 0.0 18 18"
"spriterandomscale" "0.3"
"amount" "0.1"
"detailOrientation" "2"
}
Model5
// Position 8 in sheet
{
"sprite" "185 337 152 152 1024"
"spritesize" "0.5 0.0 16 16"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
Model6
// Position 7 in sheet
{
"sprite" "21 337 150 170 1024"
"spritesize" "0.5 0.0 12 18"
"spriterandomscale" "0.2"
"amount" "0.1"
"detailOrientation" "2"
}
}
Group3
{
"alpha" "0.5"
}
Group4
{
"alpha" "0.3"
}
Group5
{
"alpha" "0.0"
}
}
}

View File

@@ -0,0 +1,79 @@
"GameInfo"
{
game "My First Episodic Mod"
title "HALF-LIFE'"
title2 ""
type singleplayer_only
FileSystem
{
SteamAppId 243730 // This sets the app ID in Steam
//
// 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 ep2/custom/*
game+mod episodic/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 ep2/ep2_english.vpk
game+mod ep2/ep2_pak.vpk
game |all_source_engine_paths|episodic/ep1_english.vpk
game |all_source_engine_paths|episodic/ep1_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 ep2
// Where the game's binaries are
gamebin episodic/bin
// Last, mount in shared HL2 loose files
game |all_source_engine_paths|episodic
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}
}

View File

@@ -0,0 +1,127 @@
lights/fluorescentcool001a 189 231 232 350
lights/fluorescentcool001b 236 255 182 350
lights/fluorescentcool002a 189 231 232 400
lights/fluorescentcool002b 236 255 182 400
lights/fluorescentcool003a 189 231 232 300
lights/fluorescentwarm001a 239 216 193 350
lights/fluorescentwarm002a 239 216 193 400
lights/fluorescentwhite001a 245 245 245 350
lights/fluorescentwhite002a 245 245 245 400
lights/hazzardred001a 228 37 0 300
lights/hazzardyellow001a 250 215 74 300
lights/HIDcool001a 145 222 172 650
lights/HIDcool001b 205 232 255 650
lights/HIDwarm001a 255 201 116 650
lights/white001 250 240 205 100
lights/white002 189 233 247 425
lights/white003 232 246 190 350
lights/white004 170 228 247 425
lights/white005 234 235 220 375
lights/white006 234 235 220 100
lights/blue001 166 180 196 200 166 180 196 100
lights/blue002 141 176 203 200 141 176 203 100
lights/red001 63 1 1 200 63 1 1 100
lights/white001_nochop 250 240 205 100
lights/white002_nochop 189 233 247 425
lights/white003_nochop 232 246 190 350
lights/white004_nochop 170 228 247 425
lights/white005_nochop 234 235 220 375
lights/white006_nochop 234 235 220 100
lights/incandescentcool001a 235 235 235 300
lights/incandescentwarm001a 250 226 129 300
glass/glassscreen001a 172 192 161 225
glass/glasspipe001f 214 72 44 200
glass/glassscreen001c 172 192 161 225
glass/glassscreen001d 211 187 134 225
glass/glassblock001a 70 194 209 200
composite/citadelfloor001a 103 143 203 200
props/tvscreen006a 196 0 0 200
shadertest/gooinglass 149 49 15 50
glass/glasswindow002e 189 233 247 425
glass/glasswindow035a 145 222 172 100
dev/DEV_INTERIORLIGHT02B 151 176 204 225
plaster/plasterwall029h 189 223 227 125
building_template/Building_Trainstation_Template001d 230 230 200 65
building_template/Building_Trainstation_Template001e 230 230 200 150
building_template/Building_Trainstation_window002d 230 230 200 300
building_template/Building_Trainstation_window002e 230 230 200 300
lights/physgunlight 189 231 232 20
noshadow tree_deciduous_01a_branches.vmt
noshadow tree_deciduous_01a_leaves.vmt
noshadow tree_deciduous_01a_lod.vmt
noshadow tree_deciduous_01a_lod-leaves.vmt
forcetextureshadow props_foliage/tree_dead01.mdl
forcetextureshadow props_foliage/tree_dead02.mdl
forcetextureshadow props_foliage/tree_dead03.mdl
forcetextureshadow props_foliage/tree_dead04.mdl
forcetextureshadow props_foliage/tree_dry01.mdl
forcetextureshadow props_foliage/tree_dry02.mdl
forcetextureshadow props_foliage/tree_pine_large.mdl
forcetextureshadow props_foliage/tree_pine04.mdl
forcetextureshadow props_foliage/tree_pine05.mdl
forcetextureshadow props_foliage/tree_pine06.mdl
forcetextureshadow props_foliage/tree_deciduous_01a.mdl
forcetextureshadow props_foliage/tree_deciduous_02a.mdl
forcetextureshadow props_wasteland/interior_fence001a.mdl
forcetextureshadow props_wasteland/interior_fence001b.mdl
forcetextureshadow props_wasteland/interior_fence001c.mdl
forcetextureshadow props_wasteland/interior_fence001d.mdl
forcetextureshadow props_wasteland/interior_fence001e.mdl
forcetextureshadow props_wasteland/interior_fence001g.mdl
forcetextureshadow props_wasteland/interior_fence002a.mdl
forcetextureshadow props_wasteland/interior_fence002b.mdl
forcetextureshadow props_wasteland/interior_fence002c.mdl
forcetextureshadow props_wasteland/interior_fence002d.mdl
forcetextureshadow props_wasteland/interior_fence002e.mdl
forcetextureshadow props_wasteland/interior_fence002f.mdl
forcetextureshadow props_wasteland/interior_fence003a.mdl
forcetextureshadow props_wasteland/interior_fence003b.mdl
forcetextureshadow props_wasteland/interior_fence003d.mdl
forcetextureshadow props_wasteland/interior_fence003e.mdl
forcetextureshadow props_wasteland/interior_fence003f.mdl
forcetextureshadow props_wasteland/interior_fence004a.mdl
forcetextureshadow props_wasteland/interior_fence004b.mdl
forcetextureshadow props_forest/fence_barb_256.mdl
forcetextureshadow props_forest/fence_barb_512.mdl
forcetextureshadow props_forest/fence_border_128.mdl
forcetextureshadow props_forest/fence_border_256.mdl
forcetextureshadow props_forest/fence_border_512.mdl
forcetextureshadow props_forest/fence_trail_128.mdl
forcetextureshadow props_forest/fence_trail_256.mdl
forcetextureshadow props_forest/fence_trail_512.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002a.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002b.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002c.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002d.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002e.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002f.mdl
forcetextureshadow props_wasteland/exterior_fence001a.mdl
forcetextureshadow props_wasteland/exterior_fence001b.mdl
forcetextureshadow props_wasteland/exterior_fence002a.mdl
forcetextureshadow props_wasteland/exterior_fence002b.mdl
forcetextureshadow props_wasteland/exterior_fence002c.mdl
forcetextureshadow props_wasteland/exterior_fence002d.mdl
forcetextureshadow props_wasteland/exterior_fence002e.mdl
forcetextureshadow props_wasteland/exterior_fence003a.mdl
forcetextureshadow props_wasteland/exterior_fence003b.mdl
forcetextureshadow props_foliage/fern01.mdl
forcetextureshadow props_foliage/ferns01.mdl
forcetextureshadow props_foliage/ferns02.mdl
forcetextureshadow props_foliage/ferns03.mdl
forcetextureshadow props_forest/fern01.mdl
forcetextureshadow props_forest/fern01lg.mdl

Binary file not shown.

View File

@@ -0,0 +1,799 @@
///////////////////////////////////////////////////////////
// Tracker scheme resource file
//
// sections:
// Colors - all the colors used by the scheme
// BaseSettings - contains settings for app to use to draw controls
// Fonts - list of all the fonts used by app
// Borders - description of all the borders
//
///////////////////////////////////////////////////////////
Scheme
{
//////////////////////// COLORS ///////////////////////////
// color details
// this is a list of all the colors used by the scheme
Colors
{
}
///////////////////// BASE SETTINGS ////////////////////////
//
// default settings for all panels
// controls use these to determine their settings
BaseSettings
{
"FgColor" "255 220 0 100"
"BgColor" "0 0 0 76"
"Panel.FgColor" "255 220 0 100"
"Panel.BgColor" "0 0 0 76"
"BrightFg" "255 220 0 255"
"DamagedBg" "180 0 0 200"
"DamagedFg" "180 0 0 230"
"BrightDamagedFg" "255 0 0 255"
// weapon selection colors
"SelectionNumberFg" "255 220 0 255"
"SelectionTextFg" "255 220 0 255"
"SelectionEmptyBoxBg" "0 0 0 80"
"SelectionBoxBg" "0 0 0 80"
"SelectionSelectedBoxBg" "0 0 0 80"
"ZoomReticleColor" "255 220 0 255"
// HL1-style HUD colors
"Yellowish" "255 160 0 255"
"Normal" "255 208 64 255"
"Caution" "255 48 0 255"
// Top-left corner of the "Half-Life 2" on the main screen
"Main.Title1.X" "76"
"Main.Title1.Y" "145"
"Main.Title1.Y_hidef" "130"
"Main.Title1.Color" "255 255 255 255"
// Top-left corner of secondary title e.g. "DEMO" on the main screen
"Main.Title2.X" "76"
"Main.Title2.Y" "190"
"Main.Title2.Y_hidef" "174"
"Main.Title2.Color" "255 255 255 200"
// Top-left corner of the menu on the main screen
"Main.Menu.X" "53"
"Main.Menu.X_hidef" "76"
"Main.Menu.Y" "240"
// Blank space to leave beneath the menu on the main screen
"Main.BottomBorder" "32"
}
//////////////////////// BITMAP FONT FILES /////////////////////////////
//
// Bitmap Fonts are ****VERY*** expensive static memory resources so they are purposely sparse
BitmapFontFiles
{
// UI buttons, custom font, (256x64)
"Buttons" "materials/vgui/fonts/buttons_32.vbf"
}
//////////////////////// FONTS /////////////////////////////
//
// describes all the fonts
Fonts
{
// fonts are used in order that they are listed
// fonts are used in order that they are listed
"DebugFixed"
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"antialias" "1"
}
}
// fonts are used in order that they are listed
"DebugFixedSmall"
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"antialias" "1"
}
}
// 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" [$X360]
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
}
"1" [$WIN32]
{
"name" "Verdana"
"tall" "9"
"weight" "700"
"antialias" "1"
"yres" "1 599"
}
"2"
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "900"
"antialias" "1"
"yres" "768 1023"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "900"
"antialias" "1"
"yres" "1024 1199"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "900"
"antialias" "1"
"yres" "1200 10000"
"additive" "1"
}
}
"DefaultSmall"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Arial"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "0"
}
}
"DefaultVerySmall"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Verdana"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "0"
}
"7"
{
"name" "Arial"
"tall" "11"
"range" "0x0000 0x00FF"
"weight" "0"
}
}
WeaponIcons
{
"1"
{
"name" "HalfLife2"
"tall" "64"
"tall_hidef" "58"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
WeaponIconsSelected
{
"1"
{
"name" "HalfLife2"
"tall" "64"
"tall_hidef" "58"
"weight" "0"
"antialias" "1"
"blur" "5"
"scanlines" "2"
"additive" "1"
"custom" "1"
}
}
WeaponIconsSmall
{
"1"
{
"name" "HalfLife2"
"tall" "32"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
Crosshairs
{
"1"
{
"name" "HalfLife2"
"tall" "40" [!$OSX]
"tall" "41" [$OSX]
"weight" "0"
"antialias" "0"
"additive" "1"
"custom" "1"
"yres" "1 10000"
}
}
QuickInfo
{
"1" [$X360]
{
"name" "HL2cross"
"tall" "57"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
"1" [$WIN32]
{
"name" "HL2cross"
"tall" "28" [!$OSX]
"tall" "50" [$OSX]
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1" [!$OSX]
}
}
HudNumbers
{
"1"
{
"name" "HalfLife2"
"tall" "32" [$WIN32]
"tall" "38" [$X360]
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
SquadIcon [$X360]
{
"1"
{
"name" "HalfLife2"
"tall" "50"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
HudNumbersGlow
{
"1"
{
"name" "HalfLife2"
"tall" "32" [$WIN32]
"tall" "38" [$X360]
"weight" "0"
"blur" "4"
"scanlines" "2"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
HudNumbersSmall
{
"1"
{
"name" "HalfLife2" [!$OSX]
"name" "Helvetica Bold" [$OSX]
"tall" "16" [$WIN32]
"tall" "22" [$X360]
"weight" "1000"
"additive" "1"
"antialias" "1"
"custom" "1"
}
}
HudSelectionNumbers
{
"1"
{
"name" "Verdana"
"tall" "11"
"weight" "700"
"antialias" "1"
"additive" "1"
}
}
HudHintTextLarge
{
"1" [$X360]
{
"bitmap" "1"
"name" "Buttons"
"scalex" "1.0"
"scaley" "1.0"
}
"1" [$WIN32]
{
"name" "Verdana" [!$OSX]
"name" "Helvetica Bold" [$OSX]
"tall" "14"
"weight" "1000"
"antialias" "1"
"additive" "1"
}
}
HudHintTextSmall
{
"1" [$WIN32]
{
"name" "Verdana" [!$OSX]
"name" "Helvetica" [$OSX]
"tall" "11"
"weight" "0"
"antialias" "1"
"additive" "1"
}
"1" [$X360]
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
"additive" "1"
}
}
HudSelectionText
{
"1"
{
"name" "Verdana"
"tall" "8"
"weight" "700"
"antialias" "1"
"yres" "1 599"
}
"2"
{
"name" "Verdana"
"tall" "10"
"weight" "700"
"antialias" "1"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "12"
"weight" "900"
"antialias" "1"
"yres" "768 1023"
}
"4"
{
"name" "Verdana"
"tall" "16"
"weight" "900"
"antialias" "1"
"yres" "1024 1199"
}
"5"
{
"name" "Verdana"
"tall" "17"
"weight" "1000"
"antialias" "1"
"yres" "1200 10000"
}
}
GameUIButtons
{
"1" [$X360]
{
"bitmap" "1"
"name" "Buttons"
"scalex" "0.63"
"scaley" "0.63"
"scalex_hidef" "1.0"
"scaley_hidef" "1.0"
}
}
BudgetLabel
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"outline" "1"
}
}
DebugOverlay
{
"1" [$WIN32]
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"outline" "1"
}
"1" [$X360]
{
"name" "Tahoma"
"tall" "18"
"weight" "200"
"outline" "1"
}
}
"CloseCaption_Normal"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "500"
}
}
"CloseCaption_Italic"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Italic" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "500"
"italic" "1"
}
}
"CloseCaption_Bold"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Bold" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "900"
}
}
"CloseCaption_BoldItalic"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Bold Italic" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "900"
"italic" "1"
}
}
"CloseCaption_Small"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana" [$OSX]
"tall" "16" [!$OSX]
"tall" "14" [$OSX]
"tall_hidef" "24"
"weight" "900"
"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"
}
}
"Trebuchet24"
{
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
"range" "0x0000 0x007F" // Basic Latin
"antialias" "1"
"additive" "1"
}
}
"Trebuchet18"
{
"1"
{
"name" "Trebuchet MS"
"tall" "18"
"weight" "900"
}
}
ClientTitleFont
{
"1"
{
"name" "HL2EP2"
"tall" "34"
"tall_hidef" "48"
"weight" "0"
"additive" "0"
"antialias" "1"
"custom" "1" [$OSX]
}
}
CreditsLogo
{
"1"
{
"name" "HalfLife2"
"tall" "128"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
CreditsText
{
"1"
{
"name" "Trebuchet MS"
"tall" "20"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
CreditsOutroLogos
{
"1"
{
"name" "HalfLife2"
"tall" "48"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
CreditsOutroText
{
"1"
{
"name" "Verdana" [!$OSX]
"name" "Courier Bold" [$OSX]
"tall" "9"
"weight" "900"
"antialias" "1"
}
}
CenterPrintText
{
// note that this scales with the screen resolution
"1"
{
"name" "Trebuchet MS" [!$OSX]
"name" "Helvetica" [$OSX]
"tall" "18"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
HDRDemoText
{
// note that this scales with the screen resolution
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
"AchievementNotification"
{
"1"
{
"name" "Trebuchet MS"
"tall" "14"
"weight" "900"
"antialias" "1"
}
}
"CommentaryDefault"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13" [$WIN32]
"tall" "20" [$X360]
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Verdana"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "900"
}
"7"
{
"name" "Arial"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "800"
}
}
}
//////////////////////// CUSTOM FONT FILES /////////////////////////////
//
// specifies all the custom (non-system) font files that need to be loaded to service the above described fonts
CustomFontFiles
{
"1" "resource/HALFLIFE2.ttf"
"2" "resource/HL2crosshairs.ttf"
"3" "resource/HL2EP2.ttf"
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,10 @@
"chapters"
{
1 "ep2_background01"
2 "ep2_background02"
3 "ep2_background02"
4 "ep2_background02a"
5 "ep2_background02a"
6 "ep2_background03"
7 "ep2_background03"
}

View File

@@ -0,0 +1,722 @@
"Resource/HudLayout.res"
{
HudHealth [$WIN32]
{
"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"
}
HudHealth [$X360]
{
"fieldName" "HudHealth"
"xpos" "48"
"ypos" "416"
"wide" "115"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "60"
"digit_ypos" "-1"
}
HudSuit [$WIN32]
{
"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"
}
HudSuit [$X360]
{
"fieldName" "HudSuit"
"xpos" "176"
"ypos" "416"
"wide" "117"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "50"
"digit_ypos" "-1"
}
HudAmmo [$WIN32]
{
"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"
}
HudAmmo [$X360]
{
"fieldName" "HudAmmo"
"xpos" "r208"
"ypos" "416"
"wide" "160"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "60"
"digit_ypos" "-1"
"digit2_xpos" "120"
"digit2_ypos" "14"
}
HudAmmoSecondary [$WIN32]
{
"fieldName" "HudAmmoSecondary"
"xpos" "r76"
"ypos" "432"
"wide" "60"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "22"
"digit_xpos" "36"
"digit_ypos" "2"
}
HudAmmoSecondary [$X360]
{
"fieldName" "HudAmmoSecondary"
"xpos" "r113"
"ypos" "416"
"wide" "65"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "22"
"digit_xpos" "36"
"digit_ypos" "-1"
}
HudPosture [$WIN32]
{
"fieldName" "HudPosture"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "16"
"ypos" "316"
"tall" "36"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "10"
"icon_ypos" "0"
}
HudPosture [$X360]
{
"fieldName" "HudPosture"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "48"
"ypos" "316"
"tall" "36"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "10"
"icon_ypos" "2"
}
HudSuitPower [$WIN32]
{
"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"
}
HudSuitPower [$X360]
{
"fieldName" "HudSuitPower"
"visible" "1"
"enabled" "1"
"xpos" "48"
"ypos" "370"
"wide" "102"
"tall" "26"
"AuxPowerLowColor" "255 100 0 220"
"AuxPowerHighColor" "255 220 0 220"
"AuxPowerDisabledAlpha" "70"
"BarInsetX" "8"
"BarInsetY" "19"
"BarWidth" "92"
"BarHeight" "5"
"BarChunkWidth" "6"
"BarChunkGap" "3"
"text_xpos" "8"
"text_ypos" "4"
"text2_xpos" "8"
"text2_ypos" "25"
"text2_gap" "12"
"PaintBackgroundType" "2"
}
HudFlashlight
{
"fieldName" "HudFlashlight"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "270" [$WIN32]
"ypos" "444" [$WIN32]
"xpos_hidef" "306" [$X360] // aligned to left
"xpos_lodef" "c-18" [$X360] // centered in screen
"ypos" "428" [$X360]
"tall" "24"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "4"
"icon_ypos" "-8"
"BarInsetX" "4"
"BarInsetY" "18"
"BarWidth" "28"
"BarHeight" "2"
"BarChunkWidth" "2"
"BarChunkGap" "1"
}
HudLocator
{
"fieldName" "HudLocator"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "c8" [$WIN32]
"ypos" "r36" [$WIN32]
"xpos" "c-32" [$X360]
"ypos_hidef" "r52" [$X360]
"ypos_lodef" "r95" [$X360] // 52 is aligned to bottom of HudSuit
"wide" "64"
"tall" "24"
}
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" [$WIN32]
"DashHeight" "6" [$X360]
"BorderThickness" "88"
}
HudWeaponSelection
{
"fieldName" "HudWeaponSelection"
"ypos" "16" [$WIN32]
"ypos" "32" [$X360]
"visible" "1"
"enabled" "1"
"SmallBoxSize" "32"
"MediumBoxWide" "95"
"MediumBoxWide_hidef" "78"
"MediumBoxTall" "50"
"MediumBoxTall_hidef" "50"
"MediumBoxWide_lodef" "74"
"MediumBoxTall_lodef" "50"
"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"
"wide" "640"
"tall" "480"
}
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" "640"
"tall" "480"
}
HudMenu
{
"fieldName" "HudMenu"
"visible" "1"
"enabled" "1"
"wide" "640"
"tall" "480"
}
HudCloseCaption
{
"fieldName" "HudCloseCaption"
"visible" "0"
"enabled" "1"
"xpos" "c-250"
"ypos" "276" [$WIN32]
"ypos_hidef" "236" [$X360]
"ypos_lodef" "206" [$X360] //236
"wide" "500"
"tall" "136" [$WIN32]
"tall" "176" [$X360]
"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"
"topoffset" "0" [$WIN32]
"topoffset" "40" [$X360]
}
HudChat
{
"fieldName" "HudChat"
"visible" "0"
"enabled" "1"
"xpos" "0"
"ypos" "0"
"wide" "4"
"tall" "4"
}
HudHistoryResource [$WIN32]
{
"fieldName" "HudHistoryResource"
"visible" "1"
"enabled" "1"
"xpos" "r252"
"ypos" "40"
"wide" "248"
"tall" "320"
"history_gap" "56" [!$OS]
"history_gap" "64" [$OSX]
"icon_inset" "38"
"text_inset" "36"
"NumberFont" "HudNumbersSmall"
}
HudHistoryResource [$X360]
{
"fieldName" "HudHistoryResource"
"visible" "1"
"enabled" "1"
"xpos" "r300"
"ypos" "40"
"wide" "248"
"tall" "240"
"history_gap" "56"
"icon_inset" "38"
"text_inset" "36"
"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"
"Alpha" "0" // Remove this to enable hint hud element
"xpos" "r120" [$WIN32]
"ypos" "r340" [$WIN32]
"xpos" "r148" [$X360]
"ypos" "r338" [$X360]
"wide" "100"
"tall" "200"
"text_xpos" "8"
"text_ypos" "8"
"text_xgap" "8"
"text_ygap" "8"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudHintKeyDisplay
{
"fieldName" "HudHintKeyDisplay"
"visible" "0"
"enabled" "1"
"xpos" "r120" [$WIN32]
"ypos" "r340" [$WIN32]
"xpos" "r148" [$X360]
"ypos" "r338" [$X360]
"wide" "100"
"tall" "200"
"text_xpos" "8"
"text_ypos" "8"
"text_xgap" "8"
"text_ygap" "8"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudSquadStatus [$WIN32]
{
"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"
}
HudSquadStatus [$X360]
{
"fieldName" "HudSquadStatus"
"visible" "1"
"enabled" "1"
"xpos" "r182"
"ypos" "348"
"wide" "134"
"tall" "62"
"text_xpos" "8"
"text_ypos" "44"
"SquadIconColor" "255 220 0 160"
"IconInsetX" "8"
"IconInsetY" "-4"
"IconGap" "24"
"IconFont" "SquadIcon"
"PaintBackgroundType" "2"
}
HudPoisonDamageIndicator [$WIN32]
{
"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"
}
HudPoisonDamageIndicator [$X360]
{
"fieldName" "HudPoisonDamageIndicator"
"visible" "0"
"enabled" "1"
"xpos" "48"
"ypos" "264"
"wide" "192"
"tall" "46"
"text_xpos" "8"
"text_ypos" "6"
"text_ygap" "16"
"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"
}
HUDAutoAim
{
"fieldName" "HUDAutoAim"
"visible" "1"
"enabled" "1"
"wide" "640" [$WIN32]
"tall" "480" [$WIN32]
"wide" "960" [$X360]
"tall" "720" [$X360]
}
HudCommentary
{
"fieldName" "HudCommentary"
"xpos" "c-190"
"ypos" "350"
"wide" "380"
"tall" "40"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"bar_xpos" "50"
"bar_ypos" "20"
"bar_height" "8"
"bar_width" "320"
"speaker_xpos" "50"
"speaker_ypos" "8"
"count_xpos_from_right" "10" // Counts from the right side
"count_ypos" "8"
"icon_texture" "vgui/hud/icon_commentary"
"icon_xpos" "0"
"icon_ypos" "0"
"icon_width" "40"
"icon_height" "40"
}
HudHDRDemo
{
"fieldName" "HudHDRDemo"
"xpos" "0"
"ypos" "0"
"wide" "640"
"tall" "480"
"visible" "1"
"enabled" "1"
"Alpha" "255"
"PaintBackgroundType" "2"
"BorderColor" "0 0 0 255"
"BorderLeft" "16"
"BorderRight" "16"
"BorderTop" "16"
"BorderBottom" "64"
"BorderCenter" "0"
"TextColor" "255 255 255 255"
"LeftTitleY" "422"
"RightTitleY" "422"
}
"HudChatHistory"
{
"ControlName" "RichText"
"fieldName" "HudChatHistory"
"xpos" "10"
"ypos" "290"
"wide" "300"
"tall" "75"
"wrap" "1"
"autoResize" "1"
"pinCorner" "1"
"visible" "0"
"enabled" "1"
"labelText" ""
"textAlignment" "south-west"
"font" "Default"
"maxchars" "-1"
}
AchievementNotificationPanel
{
"fieldName" "AchievementNotificationPanel"
"visible" "1"
"enabled" "1"
"xpos" "0"
"ypos" "180"
"wide" "f10" [$WIN32]
"wide" "f60" [$X360]
"tall" "100"
}
}

View File

@@ -0,0 +1,845 @@
// "act busy name" This is the name that a mapmaker must specify in the hint node.
// {
// "busy_anim" "Activity Name".
// "entry_anim" "Activity Name"
// "exit_anim" "Activity Name"
// "busy_sequence" "Sequence Name". If specified, this is used over the activity name. Specify it in the hint node.
// "entry_sequence" "Sequence Name". If specified, this is used over the entry anim.
// "exit_sequence" "Sequence Name". If specified, this is used over the exit anim.
// "min_time" "Minimum time to spend in this busy anim"
// "max_time" "Maximum time to spend in this busy anim" 0 = only stop when interrupted by external event
// "interrupts" One of:
// "BA_INT_NONE" break out only when time runs out. No external influence will break me out.
// "BA_INT_DANGER" break out of this anim only if threatened
// "BA_INT_PLAYER" break out of this anim if I can see the player, or I'm threatened
// "BA_INT_AMBUSH" someone please define this - I have no idea what it does
// "BA_INT_COMBAT" break out of this anim if combat occurs in my line of sight (bullet hits, grenades, etc), -OR- the max time is reached
//
// "use_automovement" Set to 1, the NPC navigation system will be used as the actor animates, preventing them moving into solids. Should be used in
// all cases except those where the actor will be interpenetrating another object (such as sitting on a chair).
// }
//
//
"ActBusy.txt"
{
"binoculars_idle"
{
"busy_sequence" "binoculars_idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_PLAYER"
}
"d2_coast03_PreBattle_Scan_Skies"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Scan_Skies02"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Scan_Skies03"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies03"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Kneel_Idle"
{
"busy_sequence" "d2_coast03_PreBattle_Kneel_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Stand_Look"
{
"busy_sequence" "d2_coast03_PreBattle_Stand_Look"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_alert_01"
{
"busy_sequence" "idle_alert_01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_alert_02"
{
"busy_sequence" "idle_alert_02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_relaxed_01"
{
"busy_sequence" "idle_relaxed_01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_relaxed_02"
{
"busy_sequence" "idle_relaxed_02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_town05_Leon_Lean_Table_Idle"
{
"busy_sequence" "d1_town05_Leon_Lean_Table_Idle"
"entry_sequence" "d1_town05_Leon_Lean_Table_Entry"
"exit_sequence" "d1_town05_Leon_Lean_Table_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Sit_couch"
{
"busy_sequence" "d1_t03_Sit_couch"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_sit_couch_consoling"
{
"busy_sequence" "d1_t03_sit_couch_consoling"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"fear_reaction_Idle"
{
"busy_sequence" "fear_reaction_Idle"
"entry_sequence" "fear_reaction"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"cower_Idle"
{
"busy_sequence" "cower_Idle"
"entry_sequence" "cower"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Sit_Bed"
{
"busy_sequence" "d1_t03_Sit_Bed"
"entry_sequence" "d1_t03_Sit_Bed_Entry"
"exit_sequence" "d1_t03_Sit_Bed_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"LineIdle01"
{
"busy_sequence" "LineIdle01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_WatchBreen"
{
"busy_sequence" "d1_t01_BreakRoom_WatchBreen"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t02_Plaza_Sit01_Idle"
{
"busy_sequence" "d1_t02_Plaza_Sit01_Idle"
"entry_sequence" "Idle_to_d1_t01_BreakRoom_Sit01"
"exit_sequence" "d1_t01_BreakRoom_Sit01_to_Idle"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"d1_t02_Plaza_Sit02"
{
"busy_sequence" "d1_t02_Plaza_Sit02"
"entry_sequence" "d1_t01_BreakRoom_Sit02_Entry"
"exit_sequence" "d1_t01_BreakRoom_Sit02_Exit"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"d1_t02_Playground_Cit2_Pockets"
{
"busy_sequence" "d1_t02_Playground_Cit2_Pockets"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t02_Playground_Cit1_Arms_Crossed"
{
"busy_sequence" "d1_t02_Playground_Cit1_Arms_Crossed"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_LookOutDoor"
{
"busy_sequence" "d1_t03_LookOutDoor"
"entry_sequence" "d1_t03_LookOutDoor_Entry"
"exit_sequence" "d1_t03_LookOutDoor_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_LookOutWindow"
{
"busy_sequence" "d1_t03_LookOutWindow"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Tenements_Look_Out_Window_Idle"
{
"busy_sequence" "d1_t03_Tenements_Look_Out_Window_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_PreRaid_Peek_Idle"
{
"busy_sequence" "d1_t03_PreRaid_Peek_Idle"
"exit_sequence" "d1_t03_Preraid_Peek_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_Clutch_Chainlink_Idle"
{
"busy_sequence" "d1_t01_Clutch_Chainlink_Idle"
"entry_sequence" "d1_t01_Clutch_Chainlink_Entry"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_Sit01_Idle"
{
"busy_sequence" "d1_t01_BreakRoom_Sit01_Idle"
"entry_sequence" "Idle_to_d1_t01_BreakRoom_Sit01"
"exit_sequence" "d1_t01_BreakRoom_Sit01_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_Sit02"
{
"busy_sequence" "d1_t01_BreakRoom_Sit02"
"entry_sequence" "d1_t01_BreakRoom_Sit02_Entry"
"exit_sequence" "d1_t01_BreakRoom_Sit02_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_WatchClock_Sit"
{
"busy_sequence" "d1_t01_BreakRoom_WatchClock_Sit"
"entry_sequence" "d1_t01_BreakRoom_WatchClock_Sit_Entry"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"d1_t01_BreakRoom_WatchClock_Sit_MX"
{
"busy_sequence" "d1_t01_BreakRoom_WatchClock_Sit_MX"
"entry_sequence" "d1_t01_BreakRoom_WatchClock_Sit_Entry_MX"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_LEAN_LEFT"
{
"busy_anim" "ACT_BUSY_LEAN_LEFT"
"entry_anim" "ACT_BUSY_LEAN_LEFT_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_LEFT_EXIT"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_PLAYER"
}
"Lean_Left"
{
"busy_sequence" "Lean_Left"
"entry_anim" "ACT_BUSY_LEAN_LEFT_ENTRY"
"exit_sequence" "photo_react_startle"
"min_time" "0"
"max_time" "0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_LEAN_BACK"
{
"busy_anim" "ACT_BUSY_LEAN_BACK"
"entry_anim" "ACT_BUSY_LEAN_BACK_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_BACK_EXIT"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_PLAYER"
}
"lean_back"
{
"busy_sequence" "lean_back"
"entry_anim" "ACT_BUSY_LEAN_BACK_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_BACK_EXIT"
"min_time" "0"
"max_time" "0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_SIT_GROUND"
{
"busy_anim" "ACT_BUSY_SIT_GROUND"
"entry_anim" "ACT_BUSY_SIT_GROUND_ENTRY"
"exit_anim" "ACT_BUSY_SIT_GROUND_EXIT"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_SIT_CHAIR"
{
"busy_anim" "ACT_BUSY_SIT_CHAIR"
"entry_anim" "ACT_BUSY_SIT_CHAIR_ENTRY"
"exit_anim" "ACT_BUSY_SIT_CHAIR_EXIT"
"min_time" "30.0"
"max_time" "40.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_STAND"
{
"busy_anim" "ACT_BUSY_STAND"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_QUEUE"
{
"busy_anim" "ACT_BUSY_QUEUE"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"food_queue_front"
{
"busy_sequence" "lineIdle01"
"exit_sequence" "takepackage"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouchfeet1"
{ "busy_sequence" "sitcouchfeet1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouchknees1"
{ "busy_sequence" "sitcouchknees1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitchairtable1"
{ "busy_sequence" "sitchairtable1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouch1"
{ "busy_sequence" "sitcouch1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitccouchtv1"
{ "busy_sequence" "sitccouchtv1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"laycouch1"
{ "busy_sequence" "laycouch1"
"exit_sequence" "laycouch1_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"laycouch1"
{
"busy_sequence" "laycouch1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Sit_Chair02"
{
"busy_sequence" "Sit_Chair02"
"entry_sequence" "Idle_to_Sit_Chair02"
"exit_sequence" "Sit_Chair02_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Sit_Chair03"
{
"busy_sequence" "Sit_Chair03"
"entry_sequence" "Idle_to_Sit_Chair03"
"exit_sequence" "Sit_Chair03_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"drinker_sit_idle"
{
"busy_sequence" "drinker_sit_idle"
"entry_sequence" "drinker_sit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"drinker_sit_idle_ss"
{
"busy_sequence" "drinker_sit_idle_ss"
"entry_sequence" "drinker_sit_ss"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"railing_idle"
{
"busy_sequence" "railing_idle"
//"entry_sequence" "railing_enter"
"exit_sequence" "railing_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"D1_C01a_Mary_kneel"
{
"busy_sequence" "canals_mary_postidle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"D1_C03_Matt_sitground"
{
"busy_anim" "ACT_BUSY_SIT_GROUND"
"entry_anim" "ACT_BUSY_SIT_GROUND_ENTRY"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Cover_R"
{
"busy_sequence" "Cover_R"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Cover_L"
{
"busy_sequence" "Cover_L"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Coverlow_R"
{
"busy_sequence" "Coverlow_R"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Coverlow_L"
{
"busy_sequence" "Coverlow_L"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
//*****************************************************************************
//************ Soldier actbusy section *************************************
//*****************************************************************************
"Cover_crouch"
{
"busy_sequence" "crouchidle_AB"
"exit_sequence" "crouch_to_combat_stand"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Cover_crouch_B"
{
"busy_sequence" "crouchidle_AB"
"exit_sequence" "crouchidle_ABexit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Signal_group"
{
"busy_sequence" "signal_group"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Idle_Alert"
{
"busy_sequence" "CombatIdle1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Signal_Advance"
{
"busy_sequence" "CombatIdle1"
"exit_sequence" "signal_advance"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Right"
{
"busy_sequence" "leanwall_right_idle"
"exit_sequence" "leanwall_right_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Corner_Right"
{
"busy_sequence" "leanwall_Corner_right_idle"
"exit_sequence" "leanwall_Corner_right_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Left"
{
"busy_sequence" "leanwall_left_idle"
"exit_sequence" "leanwall_left_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Left_B"
{
"busy_sequence" "leanwall_left_b_idle"
"exit_sequence" "leanwall_left_b_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_A"
{
"busy_sequence" "leanwall_CrouchLeft_A_idle"
"exit_sequence" "leanwall_CrouchLeft_A_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_B"
{
"busy_sequence" "leanwall_CrouchLeft_B_idle"
"exit_sequence" "leanwall_CrouchLeft_B_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_C"
{
"busy_sequence" "leanwall_CrouchLeft_C_idle"
"exit_sequence" "leanwall_CrouchLeft_C_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_D"
{
"busy_sequence" "leanwall_CrouchLeft_D_idle"
"exit_sequence" "leanwall_CrouchLeft_D_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"core_control_console_type"
{
"busy_sequence" "console_type_loop"
"entry_sequence" "console_type_entry"
"exit_sequence" "console_type_exit"
"min_time" "0.0"
"max_time" "120.0"
"interrupts" "BA_INT_NONE"
}
//*****************************************************************************
//************ Metrocop actbusy section ************************************
//*****************************************************************************
"Crouch_idle_pistol_A"
{
"busy_sequence" "Crouch_idle_pistol"
"exit_sequence" "Crouch_to_shootpistol"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
"Crouch_idle_smg1_A"
{
"busy_sequence" "Crouch_idle_smg1"
"exit_sequence" "Crouch_to_shootsmg1"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
"Idle_harrassidle_A"
{
"busy_sequence" "harrassidle"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
//*****************************************************************************
//************ Zombie actbusy section *nuugggh* *****************************
//*****************************************************************************
"Zombie_Slump_A"
{
"busy_sequence" "slump_a"
"exit_sequence" "slumprise_a"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_ZOMBIESLUMP"
"use_automovement" "1"
}
"Zombie_Slump_A2"
{
"busy_sequence" "slump_a"
"exit_sequence" "slumprise_a2"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_ZOMBIESLUMP"
"use_automovement" "1"
}
"Zombie_Slump_B"
{
"busy_sequence" "slump_b"
"exit_sequence" "slumprise_b"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_ZOMBIESLUMP"
"use_automovement" "1"
}
"Fastzombie_Slump_a"
{
"busy_sequence" "slump_a"
"exit_sequence" "slumprise_a"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_ZOMBIESLUMP"
"use_automovement" "1"
}
"Fastzombie_Slump_b"
{
"busy_sequence" "slump_b"
"exit_sequence" "slumprise_b"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_ZOMBIESLUMP"
"use_automovement" "1"
}
"Zombie_Slump_Unbreakable"
{
"busy_sequence" "slump_b"
"exit_sequence" "slumprise_b"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
"use_automovement" "1"
}
//*****************************************************************************
//************ Alyx *****************************
//*****************************************************************************
"Alyx_fusebox_hack"
{
"busy_sequence" "alyx_actBusyPowerbox"
"entry_sequence" "alyx_startPowerBox"
"exit_sequence" "alyx_exitPowerBox"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_DANGER"
"use_automovement" "1"
}
"Alyx_CrouchHide_01"
{
"busy_sequence" "CrouchHide_01"
"entry_sequence" "CrouchHide_01_enter"
"exit_sequence" "CrouchHide_01_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Alyx_HideWall_AB"
{
"busy_sequence" "alyx_LeanWall"
"entry_sequence" "alyx_HideWall"
//"exit_sequence" "alyx_hackPowerBox"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Alyx_Injured_WallLean"
{
"busy_sequence" "injured_rest1_idle"
"entry_sequence" "injured_rest1_in"
"exit_sequence" "injured_rest1_out"
"interrupts" "BA_INT_DANGER"
}
"Alyx_Blindfire_Left"
{
"busy_sequence" "blindfire_left_action"
"entry_sequence" "blindfire_left_entry"
"exit_sequence" "blindfire_left_exit"
"min_time" "12.0"
"max_time" "12.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Blindfire_Left_High"
{
"busy_sequence" "blindfire_left_high_action"
"entry_sequence" "blindfire_left_entry"
"exit_sequence" "blindfire_left_exit"
"min_time" "12.0"
"max_time" "12.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Blindfire_Left_Low"
{
"busy_sequence" "blindfire_left_low_action"
"entry_sequence" "blindfire_left_entry"
"exit_sequence" "blindfire_left_exit"
"min_time" "12.0"
"max_time" "12.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Blindfire_Low"
{
"busy_sequence" "blindfire_low_action"
"entry_sequence" "blindfire_low_entry"
"exit_sequence" "blindfire_low_exit"
"min_time" "10.0"
"max_time" "10.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Blindfire_Low_High"
{
"busy_sequence" "blindfire_low_high_action"
"entry_sequence" "blindfire_low_entry"
"exit_sequence" "blindfire_low_exit"
"min_time" "10.0"
"max_time" "10.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_WallCover_Right"
{
"busy_sequence" "cover_right_action"
"entry_sequence" "cover_right_entry"
"exit_sequence" "cover_right_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_WallCover_Low"
{
"busy_sequence" "CrouchHide_01"
"entry_sequence" "CrouchHide_01_enter"
"exit_sequence" "CrouchHide_01_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_WallCover_Low_Timed"
{
"busy_sequence" "CrouchHide_01"
"entry_sequence" "CrouchHide_01_enter"
"exit_sequence" "CrouchHide_01_exit"
"min_time" "0.0"
"max_time" "6.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Guard_Low"
{
"busy_sequence" "crouch_aim_pistol"
"entry_sequence" "stand_to_crouchshoot"
"exit_sequence" "crouchshoot_to_stand"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Guard_Low_Timed"
{
"busy_sequence" "crouch_aim_pistol"
"entry_sequence" "stand_to_crouchshoot"
"exit_sequence" "crouchshoot_to_stand"
"min_time" "6.0"
"max_time" "10.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
"Alyx_Guard"
{
"busy_sequence" "pistol_idle_aim"
"entry_sequence" "pistol_idle_aim"
"exit_sequence" "pistol_idle_aim"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_SIEGE_DEFENSE"
}
}

View File

@@ -0,0 +1,298 @@
//Adrian: This file contains the credits info for both the Intro and outro.
"credits.txt"
{
//========================================================
//These are the names used in the intro (trainride)
//========================================================
"IntroCreditsNames"
{
"V" "WeaponIcons"
" " "CreditsText"
" " "CreditsText"
}
"CreditsParams"
{
"logo" "HALF-LIFE'"
"logo2" "== episode two=="
"fadeintime" "2.5"
"fadeouttime" "1"
"fadeholdtime" "1.0"
"nextfadetime" "1.0"
"pausebetweenwaves" "1.0"
"logotime" "1.0"
"posx" "96"
"posy" "360"
"color" "255 255 255 128"
// Outro Parameters
"scrolltime" "80"
"separation" "10"
}
//========================================================
//These are the names used in the outro (outland_12a)
//========================================================
"OutroCreditsNames"
{
"HALF-LIFE'" "ClientTitleFont"
"== episode two==" "ClientTitleFont"
" " "CreditsOutroText"
"V" "CreditsOutroLogos"
" " "CreditsOutroText"
"Gautam Babbar" "CreditsOutroText"
"Ted Backman" "CreditsOutroText"
"Kelly Bailey" "CreditsOutroText"
"Jeff Ballinger" "CreditsOutroText"
"Aaron Barber" "CreditsOutroText"
"Jeep Barnett" "CreditsOutroText"
"Jeremy Bennett" "CreditsOutroText"
"Dan Berger" "CreditsOutroText"
"Yahn Bernier" "CreditsOutroText"
"Ken Birdwell" "CreditsOutroText"
"Derrick Birum" "CreditsOutroText"
"Mike Blaszczak" "CreditsOutroText"
"Iestyn Bleasdale-Shepherd" "CreditsOutroText"
"Chris Bokitch" "CreditsOutroText"
"Steve Bond" "CreditsOutroText"
"Matt Boone" "CreditsOutroText"
"Antoine Bourdon" "CreditsOutroText"
"Jamaal Bradley" "CreditsOutroText"
"Jason Brashill" "CreditsOutroText"
"Charlie Brown" "CreditsOutroText"
"Charlie Burgin" "CreditsOutroText"
"Andrew Burke" "CreditsOutroText"
"Augusta Butlin" "CreditsOutroText"
"Julie Caldwell" "CreditsOutroText"
"Dario Casali" "CreditsOutroText"
"Chris Chin" "CreditsOutroText"
"Jess Cliffe" "CreditsOutroText"
"Phil Co" "CreditsOutroText"
"John Cook" "CreditsOutroText"
"Christen Coomer" "CreditsOutroText"
"Greg Coomer" "CreditsOutroText"
"Scott Dalton" "CreditsOutroText"
"Kerry Davis" "CreditsOutroText"
"Jason Deakins" "CreditsOutroText"
"Joe Demers" "CreditsOutroText"
"Steve Desilets" "CreditsOutroText"
"Ariel Diaz" "CreditsOutroText"
"Quintin Doroquez" "CreditsOutroText"
"Jim Dose" "CreditsOutroText"
"Chris Douglass" "CreditsOutroText"
"Laura Dubuk" "CreditsOutroText"
"Mike Dunkle" "CreditsOutroText"
"Mike Durand" "CreditsOutroText"
"Mike Dussault" "CreditsOutroText"
"Dhabih Eng" "CreditsOutroText"
"Katie Engel" "CreditsOutroText"
"Chet Faliszek" "CreditsOutroText"
"Adrian Finol" "CreditsOutroText"
"Bill Fletcher" "CreditsOutroText"
"Moby Francke" "CreditsOutroText"
"Stephane Gaudette" "CreditsOutroText"
"Kathy Gehrig" "CreditsOutroText"
"Vitaliy Genkin" "CreditsOutroText"
"Paul Graham" "CreditsOutroText"
"Chris Green" "CreditsOutroText"
"Chris Grinstead" "CreditsOutroText"
"John Guthrie" "CreditsOutroText"
"Aaron Halifax" "CreditsOutroText"
"Reagan Halifax" "CreditsOutroText"
"Leslie Hall" "CreditsOutroText"
"Jeff Hameluck" "CreditsOutroText"
"Joe Han" "CreditsOutroText"
"Don Holden" "CreditsOutroText"
"Jason Holtman" "CreditsOutroText"
"Gray Horsfield" "CreditsOutroText"
"Keith Huggins" "CreditsOutroText"
"Jim Hughes" "CreditsOutroText"
"Jon Huisingh" "CreditsOutroText"
"Brian Jacobson" "CreditsOutroText"
"Lars Jensvold" "CreditsOutroText"
"Erik Johnson" "CreditsOutroText"
"Jakob Jungels" "CreditsOutroText"
"Rich Kaethler" "CreditsOutroText"
"Steve Kalning" "CreditsOutroText"
"Aaron Kearly" "CreditsOutroText"
"Iikka Keranen" "CreditsOutroText"
"David Kircher" "CreditsOutroText"
"Eric Kirchmer" "CreditsOutroText"
"Alden Kroll" "CreditsOutroText"
"Marc Laidlaw" "CreditsOutroText"
"Jeff Lane" "CreditsOutroText"
"Tim Larkin" "CreditsOutroText"
"Dan LeFree" "CreditsOutroText"
"Isabelle LeMay" "CreditsOutroText"
"Tom Leonard" "CreditsOutroText"
"Jeff Lind" "CreditsOutroText"
"Doug Lombardi" "CreditsOutroText"
"Bianca Loomis" "CreditsOutroText"
"Richard Lord" "CreditsOutroText"
"Realm Lovejoy" "CreditsOutroText"
"Randy Lundeen" "CreditsOutroText"
"Scott Lynch" "CreditsOutroText"
"Ido Magal" "CreditsOutroText"
"Nick Maggiore" "CreditsOutroText"
"John McCaskey" "CreditsOutroText"
"Patrick McClard" "CreditsOutroText"
"Steve McClure" "CreditsOutroText"
"Hamish McKenzie" "CreditsOutroText"
"Gary McTaggart" "CreditsOutroText"
"Jason Mitchell" "CreditsOutroText"
"Mike Morasky" "CreditsOutroText"
"John Morello II" "CreditsOutroText"
"Bryn Moslow" "CreditsOutroText"
"Arsenio Navarro" "CreditsOutroText"
"Gabe Newell" "CreditsOutroText"
"Milton Ngan" "CreditsOutroText"
"Jake Nicholson" "CreditsOutroText"
"Martin Otten" "CreditsOutroText"
"Nick Papineau" "CreditsOutroText"
"Karen Prell" "CreditsOutroText"
"Bay Raitt" "CreditsOutroText"
"Tristan Reidford" "CreditsOutroText"
"Alfred Reynolds" "CreditsOutroText"
"Matt Rhoten" "CreditsOutroText"
"Garret Rickey" "CreditsOutroText"
"Dave Riller" "CreditsOutroText"
"Elan Ruskin" "CreditsOutroText"
"Matthew Russell" "CreditsOutroText"
"Jason Ruymen" "CreditsOutroText"
"David Sawyer" "CreditsOutroText"
"Marc Scaparro" "CreditsOutroText"
"Wade Schin" "CreditsOutroText"
"Matthew Scott" "CreditsOutroText"
"Aaron Seeler" "CreditsOutroText"
"Jennifer Seeley" "CreditsOutroText"
"Taylor Sherman" "CreditsOutroText"
"Eric Smith" "CreditsOutroText"
"Jeff Sorensen" "CreditsOutroText"
"David Speyrer" "CreditsOutroText"
"Jay Stelly" "CreditsOutroText"
"Jeremy Stone" "CreditsOutroText"
"Eric Strand" "CreditsOutroText"
"Kim Swift" "CreditsOutroText"
"Kelly Thornton" "CreditsOutroText"
"Eric Twelker" "CreditsOutroText"
"Carl Uhlman" "CreditsOutroText"
"Doug Valente" "CreditsOutroText"
"Bill Van Buren" "CreditsOutroText"
"Gabe Van Engel" "CreditsOutroText"
"Alex Vlachos" "CreditsOutroText"
"Robin Walker" "CreditsOutroText"
"Joshua Weier" "CreditsOutroText"
"Andrea Wicklund" "CreditsOutroText"
"Greg Winkler" "CreditsOutroText"
"Erik Wolpaw" "CreditsOutroText"
"Doug Wood" "CreditsOutroText"
"Matt T. Wood" "CreditsOutroText"
"Danika Wright" "CreditsOutroText"
"Matt Wright" "CreditsOutroText"
"Shawn Zabecki" "CreditsOutroText"
"Torsten Zabka " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voices:" "CreditsOutroText"
"Robert Guillaume - Dr. Eli Vance" "CreditsOutroText"
"Merle Dandridge - Alyx Vance" "CreditsOutroText"
"Tony Todd - Vortigaunt" "CreditsOutroText"
"John Aylward - Dr. Arne Magnusson" "CreditsOutroText"
"Michelle Forbes - Dr. Judith Mossman" "CreditsOutroText"
"Mike Shapiro - Gman" "CreditsOutroText"
"Harry S. Robins - Dr. Isaac Kleiner" "CreditsOutroText"
"Adam Baldwin - Citizens\Misc. characters" "CreditsOutroText"
"John Patrick Lowrie - Citizens\Misc. characters" "CreditsOutroText"
"Mary Kae Irvin - Citizens\Misc. characters" "CreditsOutroText"
"Ellen McLain - Overwatch" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice Casting:" "CreditsOutroText"
"Shana Landsburg and Teri Fiddleman" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice Recording:" "CreditsOutroText"
"Pure Audio, Seattle, WA" "CreditsOutroText"
"LA Studios, LA, CA" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice recording scheduling and logistics:" "CreditsOutroText"
"Pat Cockburn, Pure Audio" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Translations:" "CreditsOutroText"
"SDL" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Crack Legal Team:" "CreditsOutroText"
"Liam Lavery" "CreditsOutroText"
"Karl Quackenbush" "CreditsOutroText"
"Kristen Boraas" "CreditsOutroText"
"Kevin Rosenfield" "CreditsOutroText"
"Alan Bruggeman" "CreditsOutroText"
"Dennis Tessier" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Thanks to the following for the use of their faces:" "CreditsOutroText"
"Jamil Mullen" "CreditsOutroText"
"Larry 'The Count' Heard" "CreditsOutroText"
"Ted Cohrt" "CreditsOutroText"
"Roger Guay" "CreditsOutroText"
"Frank Sheldon" "CreditsOutroText"
"Paul Eenhoorn" "CreditsOutroText"
"Travis Dunlop" "CreditsOutroText"
"Daniel Dociu" "CreditsOutroText"
"Art Min" "CreditsOutroText"
"Van Crowder" "CreditsOutroText"
"Joey Paresa" "CreditsOutroText"
"Chau Luu" "CreditsOutroText"
"Kim Harris-Jones" "CreditsOutroText"
"Michael S. Smith" "CreditsOutroText"
"Joe Cairo" "CreditsOutroText"
"Naomi Cotton" "CreditsOutroText"
"Sandro Consi" "CreditsOutroText"
"Lakeetra Gilbert" "CreditsOutroText"
"Erdin Grcic" "CreditsOutroText"
"Kanisha Speyrer" "CreditsOutroText"
"Warren Slough" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Special thanks to everyone at:" "CreditsOutroText"
"Alienware" "CreditsOutroText"
"ATI" "CreditsOutroText"
"Dell" "CreditsOutroText"
"Falcon Northwest" "CreditsOutroText"
"Havok" "CreditsOutroText"
"SOFTIMAGE" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"@" "CreditsOutroLogos"
}
}

View File

@@ -0,0 +1,611 @@
// **************************************************************
// HL2 ambient generic sounds for general use by level designers:
// ambients, explosions, water, fire, weather, sirens etc.
"explode_1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_1.wav"
}
"explode_2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_2.wav"
}
"explode_3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_3.wav"
}
"explode_4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_4.wav"
}
"explode_5"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_5.wav"
}
"explode_6"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_6.wav"
}
"explode_7"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_7.wav"
}
"explode_8"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_8.wav"
}
"explode_9"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "95, 105"
"soundlevel" "SNDLVL_GUNFIRE"
"wave" "ambient/explosions/explode_9.wav"
}
"fire_large"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_NORM"
"wave" "ambient/fire/fire_big_loop1.wav"
}
"fire_medium"
{
"channel" "CHAN_STATIC"
"volume" "0.5"
"pitch" "PITCH_NORM"
"soundlevel" "SNDLVL_NORM"
"wave" "ambient/fire/fire_med_loop1.wav"
}
"Fire.Plasma"
{
"channel" "CHAN_VOICE"
"volume" "1.0"
"soundlevel" "SNDLVL_60dB"
"wave" "ambient/fire/firebig.wav"
}
"Splash.SplashSound"
{
"channel" "CHAN_AUTO"
"volume" "0.75"
"soundlevel" "SNDLVL_75dB"
"pitch" "90, 100"
"rndwave"
{
"wave" "ambient/water/water_spray1.wav"
"wave" "ambient/water/water_spray2.wav"
"wave" "ambient/water/water_spray3.wav"
}
}
"DoSpark"
{
"channel" "CHAN_VOICE"
"volume" "0.4,0.6"
"pitch" "100,120"
"soundlevel" "SNDLVL_70dB"
"rndwave"
{
"wave" "ambient/energy/newspark01.wav"
"wave" "ambient/energy/newspark02.wav"
"wave" "ambient/energy/newspark03.wav"
"wave" "ambient/energy/newspark04.wav"
"wave" "ambient/energy/newspark05.wav"
"wave" "ambient/energy/newspark06.wav"
"wave" "ambient/energy/newspark07.wav"
"wave" "ambient/energy/newspark08.wav"
"wave" "ambient/energy/newspark09.wav"
"wave" "ambient/energy/newspark10.wav"
"wave" "ambient/energy/newspark11.wav"
}
}
"LoudSpark"
{
"channel" "CHAN_VOICE"
"volume" "0.8,1.0"
"soundlevel" "SNDLVL_80dB"
"pitch" "100,120"
"rndwave"
{
"wave" "ambient/energy/newspark01.wav"
"wave" "ambient/energy/newspark02.wav"
"wave" "ambient/energy/newspark03.wav"
"wave" "ambient/energy/newspark04.wav"
"wave" "ambient/energy/newspark05.wav"
"wave" "ambient/energy/newspark06.wav"
"wave" "ambient/energy/newspark07.wav"
"wave" "ambient/energy/newspark08.wav"
"wave" "ambient/energy/newspark09.wav"
"wave" "ambient/energy/newspark10.wav"
"wave" "ambient/energy/newspark11.wav"
}
}
"ReallyLoudSpark"
{
"channel" "CHAN_VOICE"
"volume" "0.8,1.0"
"soundlevel" "SNDLVL_130dB"
"pitch" "100,120"
"rndwave"
{
"wave" "ambient/energy/newspark01.wav"
"wave" "ambient/energy/newspark02.wav"
"wave" "ambient/energy/newspark03.wav"
"wave" "ambient/energy/newspark04.wav"
"wave" "ambient/energy/newspark05.wav"
"wave" "ambient/energy/newspark06.wav"
"wave" "ambient/energy/newspark07.wav"
"wave" "ambient/energy/newspark08.wav"
"wave" "ambient/energy/newspark09.wav"
"wave" "ambient/energy/newspark10.wav"
"wave" "ambient/energy/newspark11.wav"
}
}
"ExtinguisherJet.TurnOn"
{
"channel" "CHAN_WEAPON"
"volume" "VOL_NORM"
"soundlevel" "SNDLVL_75dB"
"wave" "weapons/extinguisher/fire1.wav"
}
"ExtinguisherJet.TurnOff"
{
"channel" "CHAN_WEAPON"
"volume" "VOL_NORM"
"soundlevel" "SNDLVL_75dB"
"wave" "weapons/extinguisher/release1.wav"
}
"ambient.steam01"
{
"channel" "CHAN_STATIC"
"volume" "0.4"
"pitch" "100"
"soundlevel" "SNDLVL_70dB"
"wave" "ambient/gas/steam_loop1.wav"
}
"PhysicsCannister.ThrusterLoop"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/gas/cannister_loop.wav"
}
// Electrical zap hits
"ambient.electrical_zap_1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap1.wav"
}
"ambient.electrical_zap_2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap2.wav"
}
"ambient.electrical_zap_3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap3.wav"
}
"ambient.electrical_zap_4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap4.wav"
}
"ambient.electrical_zap_5"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap5.wav"
}
"ambient.electrical_zap_6"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap6.wav"
}
"ambient.electrical_zap_7"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap7.wav"
}
"ambient.electrical_zap_8"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap8.wav"
}
"ambient.electrical_zap_9"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/energy/zap9.wav"
}
"ambient.electrical_random_zap_1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"rndwave"
{
"wave" "ambient/energy/zap1.wav"
"wave" "ambient/energy/zap2.wav"
"wave" "ambient/energy/zap3.wav"
}
}
"ambient.electrical_random_zap_2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"rndwave"
{
"wave" "ambient/energy/zap5.wav"
"wave" "ambient/energy/zap6.wav"
"wave" "ambient/energy/zap7.wav"
"wave" "ambient/energy/zap8.wav"
"wave" "ambient/energy/zap9.wav"
}
}
"ambient.whoosh_huge_incoming1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_huge1.wav"
}
"ambient.whoosh_huge_incoming2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_huge2.wav"
}
"ambient.whoosh_huge_incoming3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_huge3.wav"
}
"ambient.whoosh_huge_incoming4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_huge4.wav"
}
"ambient.whoosh_huge_incoming5"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_huge5.wav"
}
"ambient.whoosh_large_incoming1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_large1.wav"
}
"ambient.whoosh_large_incoming2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_large2.wav"
}
"ambient.whoosh_large_incoming3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_large3.wav"
}
"ambient.whoosh_large_incoming4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_large4.wav"
}
"ambient.whoosh_medium_incoming1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium1.wav"
}
"ambient.whoosh_medium_incoming2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium2.wav"
}
"ambient.whoosh_medium_incoming3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium3.wav"
}
"ambient.whoosh_medium_incoming4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium4.wav"
}
"ambient.whoosh_medium_incoming5"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium5.wav"
}
"ambient.whoosh_medium_incoming6"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "physics/nearmiss/whoosh_medium6.wav"
}
"ambient.rock_slide1"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/materials/rock1.wav"
}
"ambient.rock_slide2"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/materials/rock2.wav"
}
"ambient.rock_slide3"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/materials/rock3.wav"
}
"ambient.rock_slide4"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/materials/rock4.wav"
}
"ambient.rock_slide5"
{
"channel" "CHAN_STATIC"
"volume" "VOL_NORM"
"pitch" "100"
"soundlevel" "SNDLVL_100DB"
"wave" "ambient/materials/rock5.wav"
}

View File

@@ -0,0 +1,107 @@
"sprites/640_hud"
{
TextureData
{
"arrow" [$WIN32]
{
"file" "sprites/arrow"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"autoaim_c" [$WIN32]
{
"file" "sprites/crosshairs"
"x" "96"
"y" "0"
"width" "24"
"height" "24"
}
"item_battery" [$WIN32]
{
"font" "WeaponIcons"
"character" "*"
}
"item_healthkit" [$WIN32]
{
"font" "WeaponIcons"
"character" "+"
}
"crosshair"
{
"file" "sprites/qi_center"
"x" "0"
"y" "0"
"width" "40"
"height" "40"
}
"crosshair_left"
{
"font" "QuickInfo"
"character" "("
}
"crosshair_right"
{
"font" "QuickInfo"
"character" ")"
}
"crosshair_left_full"
{
"font" "QuickInfo"
"character" "["
}
"crosshair_right_full"
{
"font" "QuickInfo"
"character" "]"
}
"crosshair_left_empty"
{
"font" "QuickInfo"
"character" "{"
}
"crosshair_right_empty"
{
"font" "QuickInfo"
"character" "}"
}
"crosshair_default"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
"crosshair_xbox"
{
"file" "vgui/hud/xbox_reticle"
"x" "0"
"y" "0"
"width" "64"
"height" "64"
}
"viewhair"
{
"file" "sprites/hud/v_crosshair2"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"gunhair"
{
"file" "sprites/hud/v_crosshair1"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"plushair"
{
"font" "Crosshairs"
"character" "Q"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,501 @@
// "prop data name"
// {
// "property" "value"
// ...
// }
//
//
// "base" : Specify a base propdata class to derive from (base types can be found in propdata.txt)
//
// "blockLOS" : Override whether this prop should block NPC's Line-Of-Sight.
// "AIWalkable" : Override whether AI should consider this prop as walkable on.
// "dmg.bullets" : Mod damage done by bullets to this prop.
// "dmg.club" : Mod damage done by clubs to this prop.
// "dmg.explosive" : Mod damage done by explosives to this prop.
// NOTE: Use damage modifiers to reflect differences between the amount of
// damage that an object takes from different damage types. Don't
// use them to reflect overall damage strength. i.e. Stone is resilient
// to everything. To reflect this, increase the health of all stone
// objects, don't set the damage modifiers lower.
//
// "damage_table" : Specify a custom physics impact damage table for this prop.
// "health" : Amount of damage this prop should take before breaking.
//
// "explosive_damage" : Explosive damage done by this prop.
// "explosive_radius" : Radius of the explosion caused by this prop when it breaks.
// NOTE: If these two fields are specified for a prop, then the prop will automatically
// create an explosion with the specified values when the prop is broken.
//
// "breakable_model" : The type of breakable gibs this prop should break into. This list is at the bottom of this file.
// "breakable_count" : The number of breakable gibs to break into.
// "allowstatic" : Allow this prop to be static as well as physically simulated.
//
//
"PropData.txt"
{
//=================================================================================
// PAPER
//=================================================================================
// Base damage modifiers for paper objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Cardboard.Base"
{
"dmg.bullets" "0.5"
"dmg.club" "1.25"
"dmg.explosive" "1.5"
}
// Cardboard / Paper blocks, less than 1 foot cubed.
// i.e. small cardboard boxes, notepads, newspapers, thin books.
"Cardboard.Small"
{
"base" "Cardboard.Base"
"health" "10"
}
// Cardboard / Paper blocks, less than 3 foot cubed.
// i.e. cardboard boxes. thick books
"Cardboard.Medium"
{
"base" "Cardboard.Base"
"health" "20"
}
// Large Cardboard / Paper blocks
// i.e. solid cardboard boxes
"Cardboard.Large"
{
"base" "Cardboard.Base"
"health" "40"
}
//=================================================================================
// CLOTH
//=================================================================================
// Base damage modifiers for cloth objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Cloth.Base"
{
"dmg.bullets" "0.5"
"dmg.club" "0.75"
"dmg.explosive" "1.5"
}
// Small / thin cloth objects
// i.e. shorts, shirts, pants.
"Cloth.Small"
{
"base" "Cloth.Base"
"health" "30"
}
// Heavier cloth / leather objects
// i.e. briefcases
"Cloth.Medium"
{
"base" "Cloth.Base"
"health" "50"
}
// Large / thick cloth objects
// i.e. armchairs, mattresses
"Cloth.Large"
{
"base" "Cloth.Base"
"health" "100"
}
//=================================================================================
// WOOD
//=================================================================================
// Base damage modifiers for wooden objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Wooden.Base"
{
"dmg.bullets" "0.75"
"dmg.club" "2.0"
"dmg.explosive" "1.5"
"breakable_model" "WoodChunks"
"breakable_skin" "0"
}
// Tiny Wooden pieces that should die in one hit
// i.e splinters
"Wooden.Tiny"
{
"base" "Wooden.Base"
"health" "6"
"breakable_count" "0"
}
// Wooden blocks, less than 1 foot cubed.
// i.e pieces of board, branches.
"Wooden.Small"
{
"base" "Wooden.Base"
"health" "20"
"breakable_count" "2"
}
// Wooden blocks, less than 3 foot cubed.
// i.e boards, small crates, pallettes, ladders, chairs.
"Wooden.Medium"
{
"base" "Wooden.Base"
"health" "30"
"breakable_count" "4"
}
// Large wooden blocks, less than 5 foot cubed.
// i.e Crates, benches.
"Wooden.Large"
{
"base" "Wooden.Base"
"health" "50"
"breakable_count" "6"
}
// Extra large wooden objects
// i.e posts
"Wooden.ExtraLarge"
{
"base" "Wooden.Base"
"health" "100"
"breakable_count" "8"
}
// Huge wooden objects.
// i.e Big Wardrobes, bookcases
"Wooden.Huge"
{
"base" "Wooden.Base"
"health" "130"
"breakable_count" "10"
}
// Unbreakable Huge wooden objects.
// i.e Big Wardrobes, bookcases
"Wooden_Unbreakable.Huge"
{
"base" "Wooden.Base"
"health" "0"
"breakable_count" "10"
}
//=================================================================================
// STONE
//=================================================================================
// Base damage modifiers for stone objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Stone.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
}
// Stone blocks, less than 1 foot cubed
// i.e. cinderblocks, small rocks.
"Stone.Small"
{
"base" "Stone.Base"
"health" "50"
}
// Medium stone blocks, less than 3 foot cubed
// i.e. rubble chunks
"Stone.Medium"
{
"base" "Stone.Base"
"health" "100"
}
// Large stone blocks, less than 5 foot cubed
// i.e. big rubble chunks
"Stone.Large"
{
"base" "Stone.Base"
"health" "200"
}
// Huge stone blocks, less than 5 foot cubed
// i.e. enormous rubble chunks
"Stone.Huge"
{
"base" "Stone.Base"
"health" "400"
}
//=================================================================================
// GLASS
//=================================================================================
// Base damage modifiers for glass objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Glass.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "0.1" // Trial: Get knocked around more than destroyed?
}
// Glass blocks, less than 1 foot cubed
// i.e. bottles, jugs, glasses.
"Glass.Small"
{
"base" "Glass.Base"
"health" "5"
"damage_table" "glass"
}
"Glass.Window"
{
"base" "Glass.Base"
"dmg.explosive" "1.0" // Override base glass explosive behavior
"dmg.bullets" "0.5"
"health" "15"
"damage_table" "glass"
}
//=================================================================================
// METAL
//=================================================================================
// Base damage modifiers for metal objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Metal.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0" // By default, metal objects aren't breakable
}
// Small metal blocks, less than 1 foot cubed
// i.e. tin cans, paint tins, metal buckets.
"Metal.Small"
{
"base" "Metal.Base"
}
// Medium metal objects.
// i.e. wheelbarrows, metal boxes, bicycles, barrels, ladders, filing cabinets.
"Metal.Medium"
{
"base" "Metal.Base"
}
// Large metal objects.
// i.e. ibeams, dumpsters, car bodies, refridgerators
"Metal.Large"
{
"base" "Metal.Base"
}
//=================================================================================
// PLASTIC
//=================================================================================
// Base damage modifiers for plastic objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Plastic.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0"
}
// Plastic blocks, less than 2 foot cubed
// i.e. plastic cups, plastic milk crates, phones
"Plastic.Small"
{
"base" "Plastic.Base"
}
// Plastic blocks, less than 4 foot cubed
// i.e. plastic chairs, tables, barrels
"Plastic.Medium"
{
"base" "Plastic.Base"
}
// Large Plastic objects, or medium objects with mixes of plastic & metal that you still want destructable
// i.e. computer equipment
"Plastic.Large"
{
"base" "Plastic.Base"
}
//=================================================================================
// ITEMS
//=================================================================================
// Base damage modifiers for items
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Item.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0" // By default, metal objects aren't breakable
}
// Plastic blocks, less than 2 foot cubed
// i.e. plastic cups, plastic milk crates, phones
"Item.Small"
{
"base" "Item.Base"
}
// Plastic blocks, less than 4 foot cubed
// i.e. plastic chairs, tables, barrels
"Item.Medium"
{
"base" "Item.Base"
}
// Large Plastic objects, or medium objects with mixes of plastic & metal that you still want destructable
// i.e. computer equipment
"Item.Large"
{
"base" "Item.Base"
}
//=================================================================================
// POTTERY
//=================================================================================
// Base damage modifiers for pottery objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Pottery.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.25"
"dmg.explosive" "1.5"
}
// Pottery blocks, less than 2 foot cubed
// i.e. flowerpots.
"Pottery.Small"
{
"base" "Pottery.Base"
"health" "5"
"damage_table" "glass"
}
// Medium pottery objects
// i.e. large flowerpots.
"Pottery.Medium"
{
"base" "Pottery.Base"
"health" "40"
}
// Large pottery objects
// i.e. big chunks of wall plaster
"Pottery.Large"
{
"base" "Pottery.Base"
"health" "70"
}
// Huge pottery objects.
// i.e. big ornate pottery vessels.
"Pottery.Huge"
{
"base" "Pottery.Base"
"health" "100"
}
//=================================================================================
// FLESH
//=================================================================================
// Base damage modifiers for flesh objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Flesh.Base"
{
"dmg.bullets" "1.25"
"dmg.club" "1.0"
"dmg.explosive" "1.5"
}
// Flesh blocks that should die in a single hit
// i.e. fruit, food items, gibs.
"Flesh.Tiny"
{
"base" "Flesh.Base"
"health" "3"
}
// Flesh blocks, less than 1 foot cubed
// i.e. fruit, food items, gibs.
"Flesh.Small"
{
"base" "Flesh.Base"
"health" "10"
}
//=================================================================================
// BREAKABLE DATA. NOT PROPDATA TYPES.
//=================================================================================
"BreakableModels"
{
// Sorted in order of smallest to largest
"WoodChunks"
{
"models\Gibs\wood_gib01e.mdl" "1"
"models\Gibs\wood_gib01d.mdl" "1"
"models\Gibs\wood_gib01c.mdl" "1"
"models\Gibs\wood_gib01b.mdl" "1"
"models\Gibs\wood_gib01a.mdl" "1"
}
"GlassChunks"
{
"models\Gibs\Glass_shard01.mdl" "1"
"models\Gibs\Glass_shard02.mdl" "1"
"models\Gibs\Glass_shard03.mdl" "1"
"models\Gibs\Glass_shard04.mdl" "1"
"models\Gibs\Glass_shard05.mdl" "1"
"models\Gibs\Glass_shard06.mdl" "1"
}
"ConcreteChunks"
{
"models\props_debris\concrete_chunk08a.mdl" "1"
"models\props_debris\concrete_chunk09a.mdl" "1"
"models\props_debris\concrete_chunk03a.mdl" "1"
"models\props_debris\concrete_chunk07a.mdl" "1"
"models\props_debris\concrete_chunk09a.mdl" "1"
"models\props_debris\concrete_chunk02a.mdl" "1"
}
"MetalChunks"
{
"models\Gibs\metal_gib1.mdl" "1"
"models\Gibs\metal_gib2.mdl" "1"
"models\Gibs\metal_gib3.mdl" "1"
"models\Gibs\metal_gib4.mdl" "1"
"models\Gibs\metal_gib5.mdl" "1"
}
}
}

View File

@@ -0,0 +1,26 @@
soundscapes_manifest
{
"file" "scripts/soundscapes.txt"
// List additional soundscape files here
"file" "scripts/soundscapes_lostcoast.txt"
"file" "scripts/soundscapes_citadel_episodic.txt"
"file" "scripts/soundscapes_city_episodic.txt"
"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"
//episode 2
"file" "scripts/soundscapes_silo.txt"
"file" "scripts/soundscapes_outland.txt"
"file" "scripts/soundscapes_outland2.txt"
}

View File

@@ -0,0 +1,131 @@
// "surface group"
// {
// "property" "value"
// ...
// }
//
// thickness: If this value is present, the material is not volumetrically solid
// it means that the volume should be computed as the surface area times this
// thickness (for automatic mass). The inside space beneath the thickness value is air.
//
// physics parameters are:
// density: this is the material density in kg / m^3 (water is 1000)
// elasticity: This is the collision elasticity (0 - 1.0, 0.01 is soft, 1.0 is hard)
// friction: this is the physical friction (0 - 1.0, 0.01 is slick, 1.0 is totally rough)
// dampening: this is the physical drag on an object when in contact with this surface (0 - x, 0 none to x a lot)
//
// !!! Do not edit the physics properties (especially density) without the proper references !!!
//`
// Sounds
//
// stepleft: footstep sound for left foot
// stepright: footstep sound for right foot
// impactsoft: Physical impact sound when hitting soft surfaces
// impacthard: Physical impact sound when hitting hard surfaces
// scrapesmooth: Looping physics friction sound (when scraping smooth surfaces)
// scraperough: Looping physics friction sound (when scraping rough surfaces)
// bulletimpact: bullet impact sound
// gamematerial: game material index (can be a single letter or a number)
//
// NOTE: The properties of "default" will get copied into EVERY material who does not
// override them!!!
//
// "base" means to use the parameters from that material as a base.
// "base" must appear as the first key in a material
//
"cavern_rock"
{
"base" "rock"
"density" "700"
"elasticity" "0.1"
"friction" "0.8"
"bulletimpact" "CavernRock.ImpactHard"
"scraperough" "Rock.ImpactHard"
"scrapesmooth" "Rock.ImpactSoft"
"impacthard" "CavernRock.ImpactHard"
"impactsoft" "CavernRock.ImpactSoft"
"gamematerial" "O"
}
"advisor_shield"
{
"base" "rock"
"density" "700"
"elasticity" "0.1"
"friction" "0.8"
"bulletimpact" "NPC_Advisor.shieldblock"
"scraperough" "NPC_Advisor.shieldblock"
"scrapesmooth" "NPC_Advisor.shieldblock"
"impacthard" "NPC_Advisor.shieldblock"
"impactsoft" "NPC_Advisor.shieldblock"
"gamematerial" "Z" // <--- Whatever you make the character index in decals.h
}
"antlion_eggshell"
{
"base" "flesh"
"bulletimpact" "Flesh.ImpactHard"
"impacthard" "Flesh.ImpactHard"
"impactsoft" "Flesh.ImpactHard"
"gamematerial" "E"
}
"hunter"
{
"base" "flesh"
"gamematerial" "F"
}
"jalopytire"
{
"base" "jeeptire"
"elasticity" "0.1"
}
"slidingrubbertire_jalopyfront"
{
"base" "jalopytire"
"friction" "0.15"
}
"slidingrubbertire_jalopyrear"
{
"base" "jalopytire"
"friction" "0.15"
}
"water"
{
"density" "1000"
"elasticity" "0.1"
"friction" "0.8"
"stepleft" "Water.StepLeft"
"stepright" "Water.StepRight"
"bulletimpact" "Water.BulletImpact"
"impacthard" "Water.ImpactHard"
"impactsoft" "Water.ImpactSoft"
"audioreflectivity" "0.33"
"audioroughnessfactor" "0.1"
"audiohardnessfactor" "0.0"
"gamematerial" "S"
}
"jalopy"
{
"base" "metal"
"impacthard" "ATV_impact_medium"
"impactsoft" "ATV_impact_medium"
}

View File

@@ -0,0 +1,133 @@
//============================================================================================================
// Alyx criteria
criterion "IsAlyx" "classname" "npc_alyx" "required"
//============================================================================================================
//============================================================================================================
// Alyx Combat speech
//============================================================================================================
//----------------------------------------------------------------------------
criterion "ConceptTalkFoundPlayer" "Concept" "TLK_FOUNDPLAYER" required
response "AlyxIsBack"
{
// speak "*vo/episode_1/npc/alyx/al_greet_cit15.wav" // I'm the person who's telling you to get moving.
}
rule AlyxIsBack
{
criteria IsAlyx IsEpisodic ConceptTalkFoundPlayer
response AlyxIsBack
}
response "AlyxDanger"
{
scene "scenes/npc/Alyx/getback01.vcd" respeakdelay 60
scene "scenes/npc/Alyx/getback02.vcd" respeakdelay 60
// scene "scenes/npc/Alyx/watchout01.vcd" WATCH OUT!!!
// scene "scenes/npc/Alyx/watchout02.vcd" WATCH OUT!!!
}
rule AlyxDanger
{
criteria IsAlyx ConceptTalkDanger
response AlyxDanger
}
response AlyxShot
{
scene "scenes/npc/Alyx/gasp02.vcd"
scene "scenes/npc/Alyx/gasp03.vcd"
scene "scenes/npc/Alyx/hurt04.vcd"
scene "scenes/npc/Alyx/hurt05.vcd"
scene "scenes/npc/Alyx/hurt06.vcd"
scene "scenes/npc/Alyx/hurt08.vcd"
scene "scenes/npc/Alyx/uggh01.vcd"
}
rule AlyxShot
{
criteria IsAlyx ConceptShot
response AlyxShot
}
response AlyxEnemyDead
{
// scene "scenes/npc/Alyx/brutal02.vcd" respeakdelay 300
}
rule AlyxEnemyDead
{
criteria IsAlyx ConceptEnemyDead
response AlyxEnemyDead
}
response AlyxHideAndReload
{
// scene "scenes/npc/Alyx/coverme01.vcd"
// scene "scenes/npc/Alyx/coverme02.vcd"
// scene "scenes/npc/Alyx/coverme03.vcd"
}
rule AlyxHideAndReload
{
criteria IsAlyx ConceptHideAndReload PlayerNear
response AlyxHideAndReload
}
response AlyxTalkPlayerPushed
{
// scene "scenes/npc/Alyx/excuseme01.vcd"
// scene "scenes/npc/Alyx/excuseme02.vcd"
// scene "scenes/npc/Alyx/excuseme03.vcd"
}
rule AlyxTalkPlayerPushed
{
criteria IsAlyx ConceptTalkPlayerPushed SeenByPlayer NoRecentCombat
response AlyxTalkPlayerPushed
}
// Removed - if okay, can just be deleted
//response AlyxPlayerReload
//{
// scene "scenes/npc/Alyx/youreload01.vcd"
// scene "scenes/npc/Alyx/youreload02.vcd"
//}
//
//rule AlyxPlayerReload
//{
// criteria ConceptPlayerReload IsAlyx PlayerNear SeePlayer
// response AlyxPlayerReload
//}
response AlyxWatchOut
{
scene "scenes/npc/Alyx/lookout01.vcd"
scene "scenes/npc/Alyx/lookout03.vcd"
}
rule AlyxWatchOut
{
criteria IsAlyx ConceptTalkWatchout
response AlyxWatchout
}
response AlyxPlayerDead
{
scene "scenes/npc/Alyx/ohno_startle01.vcd"
scene "scenes/npc/Alyx/ohno_startle02.vcd"
scene "scenes/npc/Alyx/ohno_startle03.vcd"
}
rule AlyxPlayerDead
{
criteria IsAlyx ConceptPlayerDead
response AlyxWatchout
matchonce
}
//----------------------------------------------------------------------------
//============================================================================================================

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,484 @@
//============================================================================================================
// Commander mode criteria
//============================================================================================================
criterion "IsOnlySelected" "numselected" "1" required
criterion "NotOnlySelected" "numselected" ">1" required
criterion "Is_03_first" "name" "citizen_c17_03_first" required
criterion "UseRadio" "useradio" "1" required
criterion "SquadNearPlayer" "distancetoplayer" "<240" required
criterion "SquadNotNearPlayer" "distancetoplayer" ">=240" required
criterion "SquadNearCommandPoint" "commandpoint_dist_to_npc" "<240" required
criterion "SquadNotNearCommandPoint" "commandpoint_dist_to_npc" ">=240" required
criterion "CommandPointNearPlayer" "commandpoint_dist_to_player" "<144" required
criterion "CommandPointNotNearPlayer" "commandpoint_dist_to_player" ">=144" required
criterion "JoinSquadIndividual" "numjoining" "1" required
criterion "JoinSquadMultiple" "numjoining" ">1" required
criterion "TrailingReinforcement" "reinforcement" "1" required
//============================================================================================================
// Commander mode selection speech
//============================================================================================================
response "CitizenSelected"
{
scene "scenes/npc/$gender01/ok01.vcd"
scene "scenes/npc/$gender01/ok02.vcd"
scene "scenes/npc/$gender01/okimready01.vcd"
scene "scenes/npc/$gender01/okimready02.vcd"
scene "scenes/npc/$gender01/okimready03.vcd"
scene "scenes/npc/$gender01/readywhenyouare01.vcd"
scene "scenes/npc/$gender01/readywhenyouare02.vcd"
}
rule CitizenSelected
{
criteria IsCitizen ConceptTalkSelected
response CitizenSelected
}
//------------------------------------------------------------------------------------------------------------
response "CitizenGroupSelectedRadio"
{
}
rule CitizenGroupSelectedRadio
{
criteria IsCitizen ConceptTalkSelected NotOnlySelected UseRadio
response CitizenGroupSelectedRadio
}
//------------------------------------------------------------------------------------------------------------
response "CitizenSoloSelectedRadio"
{
}
rule CitizenSoloSelectedRadio
{
criteria IsCitizen ConceptTalkSelected UseRadio
response CitizenSoloSelectedRadio
}
//============================================================================================================
// Commander mode orders speech
//============================================================================================================
response CitizenSquadNearToFarIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm04.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm04"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadNearToFarGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_away01.vcd"
scene "scenes/npc/$gender01/squad_away02.vcd"
scene "scenes/npc/$gender01/squad_away03.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_away01"
// speak "npc_citizen.squad_away02"
// speak "npc_citizen.squad_away03"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToNearIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
//scene "scenes/npc/$gender01/squad_approach04.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_approach04"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToNearGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_approach01.vcd"
scene "scenes/npc/$gender01/squad_approach02.vcd"
scene "scenes/npc/$gender01/squad_approach03.vcd"
scene "scenes/npc/$gender01/squad_approach04.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_approach01"
// speak "npc_citizen.squad_approach02"
// speak "npc_citizen.squad_approach03"
// speak "npc_citizen.squad_approach04"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadNearToNear
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/illstayhere01.vcd"
scene "scenes/npc/$gender01/holddownspot01.vcd"
scene "scenes/npc/$gender01/holddownspot02.vcd"
scene "scenes/npc/$gender01/imstickinghere01.vcd"
scene "scenes/npc/$gender01/littlecorner01.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToFarIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm04.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm04"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToFarGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_away01.vcd"
scene "scenes/npc/$gender01/squad_away02.vcd"
scene "scenes/npc/$gender01/squad_away03.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_away01"
// speak "npc_citizen.squad_away02"
// speak "npc_citizen.squad_away03"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadGeneral
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
rule CitizenCommanded
{
criteria IsCitizen ConceptTalkCommanded
response CitizenSquadGeneral
}
rule CitizenCommandedNearToFarIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNearPlayer CommandPointNotNearPlayer
response CitizenSquadNearToFarIndividual
}
rule CitizenCommandedNearToFarGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNearPlayer CommandPointNotNearPlayer
response CitizenSquadNearToFarGroup
}
rule CitizenCommandedFarToNearIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNearPlayer
response CitizenSquadFarToNearIndividual
}
rule CitizenCommandedFarToNearGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNearPlayer
response CitizenSquadFarToNearGroup
}
rule CitizenCommandedNearToNearIndividual
{
criteria IsCitizen ConceptTalkCommanded SquadNearPlayer CommandPointNearPlayer
response CitizenSquadNearToNear
}
rule CitizenCommandedFarToFarIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
response CitizenSquadFarToFarIndividual
}
rule CitizenCommandedFarToFarGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
response CitizenSquadFarToFarGroup
}
//------------------------------------------------------------------------------------------------------------
response "CitizenCommandedRadio"
{
}
rule CitizenCommandedRadio
{
criteria IsCitizen ConceptTalkCommanded UseRadio
response CitizenCommandedRadio
}
//------------------------------------------------------------------------------------------------------------
response "CitizenCommandFailedRadio"
{
}
rule CitizenCommandFailedRadio
{
criteria IsCitizen ConceptTalkCommandFailed UseRadio
response CitizenCommandFailedRadio
}
//============================================================================================================
// Commander mode follow speech
//============================================================================================================
response CitizenFollowGeneral
{
scene "scenes/npc/$gender01/leadtheway01.vcd"
scene "scenes/npc/$gender01/leadtheway02.vcd"
scene "scenes/npc/$gender01/leadon01.vcd"
scene "scenes/npc/$gender01/leadon02.vcd"
}
response CitizenFollowGroup
{
scene "scenes/npc/$gender01/squad_follow01.vcd"
scene "scenes/npc/$gender01/squad_follow02.vcd"
scene "scenes/npc/$gender01/squad_follow03.vcd"
scene "scenes/npc/$gender01/squad_follow04.vcd"
response CitizenFollowGeneral weight 2
}
rule CitizenFollow
{
criteria IsCitizen ConceptTalkStartFollow
response CitizenFollowGeneral
}
rule CitizenFollowGroup
{
criteria IsCitizen ConceptTalkStartFollow NotOnlySelected
response CitizenFollowGroup
}
//============================================================================================================
// Commander mode join speech
//============================================================================================================
// I'm not sure all these lines will play well when not coming up from behind, so I've made a distinction between trailing & non-trailing
response CitizenJoinIndividual
{
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}
response CitizenJoinGroup
{
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}
response CitizenJoinIndividualTrailing
{
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}
response CitizenJoinGroupTrailing
{
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}
rule CitizenJoinIndividual
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual
response CitizenJoinIndividual
}
rule CitizenJoinGroup
{
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple
response CitizenJoinGroup
}
rule CitizenJoinIndividualTrailing
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual TrailingReinforcement
response CitizenJoinIndividualTrailing
}
rule CitizenJoinGroupTrailing
{
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple TrailingReinforcement
response CitizenJoinGroupTrailing
}
response CitizenJoin_d3_c17_07
{
scene "scenes/Streetwar/tunnel/$gender01/d3_c17_07_tenant.vcd"
}
rule CitizenJoin_d3_c17_07
{
criteria IsCitizen ConceptJoinPlayer
"map" "d3_c17_07" required weight 1000
response CitizenJoin_d3_c17_07
matchonce
}
//============================================================================================================
// Commander mode follow speech SPECIAL CASE: first citizen in d3_17_03
//============================================================================================================
response "CitizenFollow_First"
{
scene "scenes/npc/$gender01/abouttime01.vcd"
}
rule CitizenFollow_First
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual Is_03_first
response CitizenFollow_First
}
//------------------------------------------------------------------------------------------------------------
response "CitizenUnFollow"
{
scene "scenes/npc/$gender01/illstayhere01.vcd"
scene "scenes/npc/$gender01/holddownspot01.vcd"
scene "scenes/npc/$gender01/holddownspot02.vcd"
scene "scenes/npc/$gender01/imstickinghere01.vcd"
scene "scenes/npc/$gender01/littlecorner01.vcd"
}
rule CitizenUnFollow
{
criteria IsCitizen ConceptTalkStopFollow
response CitizenUnFollow
}
//------------------------------------------------------------------------------------------------------------
// For ep1_c17_05
//------------------------------------------------------------------------------------------------------------
response "CitizenDenyCommand"
{
scene "scenes/npc/$gender01/illstayhere01.vcd"
scene "scenes/npc/$gender01/imstickinghere01.vcd"
}
rule CitizenDenyCommand
{
criteria IsCitizen ConceptTalkDenyCommand
response CitizenDenyCommand
}

View File

@@ -0,0 +1,878 @@
//============================================================================================================
// Vortigaunt criteria
//============================================================================================================
criterion "IsVortigaunt" "classname" "npc_vortigaunt" required
criterion "VortigauntCure" concept" "VORT_CURE" required
criterion "VortigauntCureStop" "concept" "VORT_CURESTOP" required
criterion "VortigauntCureInterrupt" "concept" "VORT_CURE_INTERRUPT" required
criterion "VortigauntAttack" "concept" "VORT_ATTACK" required
criterion "VortigauntMad" "concept" "VORT_MAD" required
criterion "VortigauntShot" "concept" "VORT_SHOT" required
criterion "VortigauntPain" "concept" "VORT_PAIN" required
criterion "VortigauntDie" "concept" "VORT_DIE" required
criterion "VortigauntKill" "concept" "VORT_KILL" required
criterion "VortigauntLineOfFire" "concept" "VORT_LINE_FIRE" required
criterion "VortigauntPOk" "concept" "VORT_POK" required
criterion "VortigauntExtractBugbait" "concept" "VORT_EXTRACT_START" required
criterion "VortigauntExtractBugbaitFinish" "concept" "VORT_EXTRACT_FINISH" required
criterion "VortNagKeepMovingOutland_11" "concept" "TLK_VortNag_KeepMoving" required
criterion "NotUsedVortResponse01" "UsedVortResponse01" "!=1" "required" weight 0
//============================================================================================================
// Vortigaunt Level Plus Use
//============================================================================================================
response VortUseEverywhere
{
scene "scenes/npc/vortigaunt/vort_affirmed.vcd"
scene "scenes/npc/vortigaunt/vort_vortigese05.vcd"
scene "scenes/npc/vortigaunt/vort_beofservice.vcd"
scene "scenes/npc/vortigaunt/vort_vort_chant21.vcd"
scene "scenes/npc/vortigaunt/vort_certainly.vcd"
scene "scenes/npc/vortigaunt/vort_vort_chant05.vcd"
scene "scenes/npc/vortigaunt/vort_forthefm.vcd"
scene "scenes/npc/vortigaunt/vort_freeman.vcd"
scene "scenes/npc/vortigaunt/vort_vort_mant04.vcd"
scene "scenes/npc/vortigaunt/vort_vort_livetoserve.vcd"
}
rule VortUseEverywhere
{
criteria IsVortigaunt ConceptTalkUse NotUsedVortResponse NotInCombat
applycontext "UsedVortResponse:1:20"
response VortUseEverywhere
}
response "VortTalkUse01"
{
scene "scenes/npc/vortigaunt/vort_leadus.vcd"
scene "scenes/npc/vortigaunt/vort_leadon.vcd"
sequential
norepeat
}
rule VortTalkUse01
{
criteria IsVortigaunt ConceptTalkUse IsMap_ep2_outland_01 NotUsedVortResponse01 NotUsedVortResponse NotInCombat
applycontext "UsedVortResponse:1:20,UsedVortResponse01:1:30"
response VortTalkUse01
}
response "VortLabUsedisable11"
{
scene "scenes\outland_11\vort_silo_maghonor02.vcd"
scene "scenes\outland_11\vort_silo_maghonor03.vcd"
scene "scenes\eli_lab\vort_elab_goaway.vcd"
}
rule IsVortLabUseDisable11
{
criteria ConceptTalkUse IsVortLabUseDisable NPCIdle NotUsedVortResponse IsMap_ep2_outland_11
applycontext "UsedVortResponse:1:20"
response VortLabUsedisable11
}
//------------------------------------------------------------------------------------------------------------
criterion "IsNotVortNoticedHurt" "VortNoticedHurt" "!=1" required
response "VortNoticeHurt"
{
NOREPEAT
scene "scenes/npc/vortigaunt/vort_combat_combined01.vcd"
scene "scenes/npc/vortigaunt/vort_combat_combined02.vcd"
}
rule VortNoticeHurt
{
criteria IsVortigaunt ConceptTalkPlayerHurt NoRecentCombatShort IsMap_ep3_outland_03 IsNotVortNoticedHurt PlayerWounded
applycontext "VortNoticedHurt:1:300"
response VortNoticeHurt
}
//TLK_VORTIGAUNT_DISPEL
response "VortAntlionCombatStart"
{
scene "scenes/npc/vortigaunt/vort_alert_antlions.vcd" respeakdelay 30
scene "scenes/npc/vortigaunt/vort_worry.vcd" respeakdelay 30
scene "scenes/npc/vortigaunt/vort_alert.vcd" respeakdelay 0
}
rule VortAntlionCombatStart
{
criteria IsVortigaunt ConceptStartCombat EnemyIsAntLion
response VortAntlionCombatStart
}
response "VortAntlionCombatStart2"
{
scene "scenes/npc/vortigaunt/vort_worry.vcd" respeakdelay 30
scene "scenes/npc/vortigaunt/vort_alert.vcd" respeakdelay 30
}
rule VortAntlionCombatStart2
{
criteria IsVortigaunt ConceptStartCombat
response VortAntlionCombatStart2
}
response "VortAntlionAttack"
{
scene "scenes/npc/vortigaunt/vort_vortigese03.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/vort_vortigese05.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/vort_vortigese09.vcd" respeakdelay 15
}
rule VortAntlionAttack
{
criteria IsVortigaunt ConceptTalkAttacking
applycontext "VortKill:1:10"
response VortAntlionAttack
}
response "VortigauntPain"
{
scene "scenes/npc/vortigaunt/vort_vortigese04.vcd" respeakdelay 30
scene "scenes/npc/vortigaunt/vort_vortigese07.vcd" respeakdelay 30
scene "scenes/npc/vortigaunt/vort_vortigese08.vcd" respeakdelay 30
}
rule VortigauntPain
{
criteria IsVortigaunt VortigauntPain
response VortigauntPain
}
criterion "contextvortkill" "VortKill" "1" required
response "VortigauntRangedKill"
{
scene "scenes/npc/vortigaunt/vort_returntoall.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/vort_yes.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/vort_tethercut.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/vort_passon.vcd" respeakdelay 15
scene "scenes/npc/vortigaunt/returnvoid.vcd" respeakdelay 15
}
rule VortigauntRangedKill
{
criteria IsVortigaunt ConceptEnemyDead
applycontext "VortKill:1:15"
response VortigauntRangedKill
}
criterion "NotVortPostKill" "VortPostKill" "!=1" required
response "VortCombatFun"
{
NOREPEAT
scene "scenes/npc/vortigaunt/vort_prevail.vcd"
scene "scenes/npc/vortigaunt/vort_goodfightwithus.vcd"
scene "scenes/npc/vortigaunt/vort_killsformidable.vcd"
scene "scenes/npc/vortigaunt/vort_goodtogether.vcd"
}
rule VortCombatFun
{
criteria IsVortigaunt IsMap_ep3_outland_03 ConceptPlayerKilledNPC contextvortkill NotVortPostKill
applycontext "VortPostKill:1:80"
response VortCombatFun
}
criterion "NotVortCompliment" "VortCompliment" "!=1" required
response "VortCombatCompliment"
{
scene "scenes/npc/vortigaunt/vort_excellent.vcd"
scene "scenes/npc/vortigaunt/vort_excellentshooting.vcd"
scene "scenes/npc/vortigaunt/vort_excellentshot.vcd"
scene "scenes/npc/vortigaunt/vort_exceptional.vcd"
}
rule VortCombatCompliment
{
criteria IsVortigaunt ConceptPlayerKilledNPC ContextPlayer1Shot NotVortCompliment
applycontext "VortCompliment:1:60"
response VortCombatCompliment
}
//response "Vort03Test"
//{
// scene "scenes/outland_02/vort_pre_revive_nag01.vcd"
// scene "scenes/outland_02/vort_pre_revive_nag02.vcd"
// scene "scenes/outland_02/vort_pre_revive_nag03.vcd"
// scene "scenes/outland_02/vort_pre_revive_nag04.vcd"
// scene "scenes/outland_02/vort_pre_revive_nag05.vcd"
//}
//
//rule Vort03Test
//{
// criteria IsVortigaunt IsMap_ep3_outland_03 ConceptTalkLook
// response Vort03Test
//}
criterion "VortsNagPlayerAlyxHealOutland02" "OUTLAND_02_VORTS_NAG_PLAYER" "1" required
response "NagPlayerHealAlyxVort"
{
scene "scenes/outland_02/vort_pre_revive_nag01.vcd"
scene "scenes/outland_02/vort_pre_revive_nag02.vcd"
scene "scenes/outland_02/vort_pre_revive_nag03.vcd"
scene "scenes/outland_02/vort_pre_revive_nag04.vcd"
scene "scenes/outland_02/vort_pre_revive_nag05.vcd"
}
rule NagPlayerHealAlyxVort
{
criteria IsVortigaunt ConceptVortsNagPlayerAlyxHealOutland02
response NagPlayerHealAlyxVort
}
criterion "VortAskingForHelp" "SaidProtectUs" "!=1" "required" weight 0
response "VortUnderAttackVort"
{
scene "scenes/outland_02/vort_turret_weneedhelpcometous.vcd"
scene "scenes/outland_02/vort_turret_weareunderattackdefendus.vcd"
scene "scenes/outland_02/vort_turret_defendus.vcd"
scene "scenes/outland_02/vort_turret_protectalyx.vcd"
scene "scenes/outland_02/vort_turret_protectus.vcd"
}
rule VortUnderAttackVort
{
criteria IsVortigaunt VortigauntPain IsVortHealingAlyx VortAskingForHelp
applycontext "SaidProtectUs:1:2,VortNeedsHelp:1:10"
response VortUnderAttackVort
}
response "NagPlayerKeepMovingOutland_11Vort"
{
scene "scenes/outland_11/vort_fmadvance.vcd"
scene "scenes/outland_11/vort_hastefm.vcd"
scene "scenes/outland_11/vort_fmmustmove.vcd"
}
rule NagPlayerKeepMovingOutland_11Vort
{
criteria IsVortigaunt PlayerNear VortNagKeepMovingOutland_11
response NagPlayerKeepMovingOutland_11Vort
}
//============================================================================================================
// Vortigaunt Hello speech
//============================================================================================================
response "VortigauntHello"
{
// scene "scenes/npc/vortigaunt/wellmet.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/isitthefm.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/itisthefm.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/thefreeman.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/beofservice.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/greetingsfm.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/neuroprints.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/salute.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/trulyitis.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/takeus.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/webeofuse.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/corporeal.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/seebeforeoureye.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/morethanmeets.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/weknowyou.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/putaside.vcd" delay "3,3.5" speakonce
// scene "scenes/npc/vortigaunt/mystery.vcd" delay "3,3.5" speakonce
}
rule VortigauntTlkHello
{
criteria IsVortigaunt ConceptTalkHello PlayerNear SeePlayer
response VortigauntHello
}
//------------------------------------------------------------------------------------------------------------
rule VortigauntPlayerHello
{
criteria IsVortigaunt ConceptTalkPHello
response NullResponse
}
//============================================================================================================
// Vortigaunt Questions & Responses speech
//============================================================================================================
response "VortigauntQuestion"
{
// scene "scenes/npc/vortigaunt/vques01.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques02.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques03.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques04.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques05.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques06.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques07.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques08.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques09.vcd" delay 1
// scene "scenes/npc/vortigaunt/vques10.vcd" delay 1
//
}
rule VortigauntTlkQuestion
{
criteria IsVortigaunt ConceptTalkQuestion
response VortigauntQuestion
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntAnswer"
{
// scene "scenes/npc/vortigaunt/vanswer01.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer02.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer03.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer04.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer05.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer06.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer07.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer08.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer09.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer10.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer11.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer12.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer13.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer14.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer15.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer16.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer17.vcd" delay 1
// scene "scenes/npc/vortigaunt/vanswer18.vcd" delay 1
}
rule VortigauntTlkAnswer
{
criteria IsVortigaunt ConceptTalkAnswer
response VortigauntAnswer
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntTalkUse"
{
sequential
norepeat
}
rule VortigauntTalkUse
{
criteria IsVortigaunt ConceptTalkUse
response VortigauntTalkUse
}
//============================================================================================================
// Vortigaunt Combat speech
//============================================================================================================
response "VortigauntCure"
{
scene "scenes/npc/vortigaunt/allowrecharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/wewillcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/fmcanuse.vcd" defaultdelay
scene "scenes/npc/vortigaunt/here.vcd" defaultdelay
scene "scenes/npc/vortigaunt/acceptenergy.vcd" defaultdelay
scene "scenes/npc/vortigaunt/holdstill.vcd" defaultdelay
scene "scenes/npc/vortigaunt/acceptcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/weshare.vcd" defaultdelay
scene "scenes/npc/vortigaunt/prepare.vcd" defaultdelay
}
rule VortigauntCure
{
criteria IsVortigaunt VortigauntCure
response VortigauntCure
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureStop"
{
scene "scenes/npc/vortigaunt/allwecanspare.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allfornow.vcd" defaultdelay
scene "scenes/npc/vortigaunt/thatisall.vcd" defaultdelay
scene "scenes/npc/vortigaunt/done.vcd" defaultdelay
scene "scenes/npc/vortigaunt/keepfmsafe.vcd" defaultdelay
}
rule VortigauntCureStop
{
criteria IsVortigaunt VortigauntCureStop
response VortigauntCureStop
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureInterrupt"
{
scene "scenes/npc/vortigaunt/holdorcantcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/hold.vcd" defaultdelay
scene "scenes/npc/vortigaunt/halt.vcd" defaultdelay
scene "scenes/npc/vortigaunt/fmstandstill.vcd" defaultdelay
scene "scenes/npc/vortigaunt/ifyoumove.vcd" defaultdelay
scene "scenes/npc/vortigaunt/movingtarget.vcd" defaultdelay
}
rule VortigauntCureInterrupt
{
criteria IsVortigaunt VortigauntCureInterrupt
response VortigauntCureInterrupt
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntAttack"
{
scene "scenes/npc/vortigaunt/tothevoid.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allinoneinall.vcd" defaultdelay
scene "scenes/npc/vortigaunt/giveover.vcd" defaultdelay
scene "scenes/npc/vortigaunt/weclaimyou.vcd" defaultdelay
scene "scenes/npc/vortigaunt/undeserving.vcd" defaultdelay
scene "scenes/npc/vortigaunt/satisfaction.vcd" defaultdelay
scene "scenes/npc/vortigaunt/regrettable.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allowme.vcd" defaultdelay
scene "scenes/npc/vortigaunt/livetoserve.vcd" defaultdelay
scene "scenes/npc/vortigaunt/returnvoid.vcd" defaultdelay
}
rule VortigauntAttack
{
criteria IsVortigaunt VortigauntAttack
response VortigauntAttack
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntMad"
{
// sentence "VORT_MAD" soundlevel "SNDLVL_NORM" delay "4"
}
rule VortigauntMad
{
criteria IsVortigaunt VortigauntMad
response VortigauntMad
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntShot"
{
// sentence "VORT_SHOT" soundlevel "SNDLVL_NORM" delay "4"
}
rule VortigauntShot
{
criteria IsVortigaunt VortigauntShot
response VortigauntShot
}
//------------------------------------------------------------------------------------------------------------
//response "VortigauntPain"
//{
// sentence "VORT_PAIN" defaultdelay
//}
//rule VortigauntPain
//{
// criteria IsVortigaunt VortigauntPain
// response VortigauntPain
//}
//------------------------------------------------------------------------------------------------------------
response "VortigauntDie"
{
// sentence "VORT_DIE" defaultdelay
}
rule VortigauntDie
{
criteria IsVortigaunt VortigauntDie
response VortigauntDie
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntKill"
{
scene "scenes/npc/vortigaunt/forthefm.vcd" delay 4
scene "scenes/npc/vortigaunt/forfreedom.vcd" delay 4
scene "scenes/npc/vortigaunt/tethercut.vcd" delay 4
scene "scenes/npc/vortigaunt/troubleus.vcd" delay 4
scene "scenes/npc/vortigaunt/dreamed.vcd" delay 4
scene "scenes/npc/vortigaunt/energyempower.vcd" delay 4
scene "scenes/npc/vortigaunt/empowerus.vcd" delay 4
scene "scenes/npc/vortigaunt/surge.vcd" delay 4
scene "scenes/npc/vortigaunt/yes.vcd" delay 4
scene "scenes/npc/vortigaunt/passon.vcd" delay 4
scene "scenes/npc/vortigaunt/nodenexus.vcd" delay 4
scene "scenes/npc/vortigaunt/returntoall.vcd" delay 4
}
rule VortigauntKill
{
criteria IsVortigaunt VortigauntKill
response VortigauntKill
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntLineOfFire"
{
scene "scenes/npc/vortigaunt/cautionfm.vcd" delay 4
scene "scenes/npc/vortigaunt/caution.vcd" delay 4
scene "scenes/npc/vortigaunt/fmbeware.vcd" delay 4
scene "scenes/npc/vortigaunt/ware.vcd" delay 4
scene "scenes/npc/vortigaunt/fmmustbeware.vcd" delay 4
scene "scenes/npc/vortigaunt/warefm.vcd" delay 4
scene "scenes/npc/vortigaunt/fminway.vcd" delay 4
scene "scenes/npc/vortigaunt/standclear.vcd" delay 4
scene "scenes/npc/vortigaunt/fmmustmove.vcd" delay 4
scene "scenes/npc/vortigaunt/warningfm.vcd" delay 4
scene "scenes/npc/vortigaunt/cannotfire.vcd" delay 4
}
rule VortigauntLineOfFire
{
criteria IsVortigaunt VortigauntLineOfFire
response VortigauntLineOfFire
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntPOk"
{
// sentence "VORT_POK" soundlevel "SNDLVL_NORM" delay "2"
}
rule VortigauntPOk
{
criteria IsVortigaunt VortigauntPOk
response VortigauntLineOfFire
}
//============================================================================================================
// Vortigaunt Misc speech
//============================================================================================================
response "VortigauntIdle"
{
// scene "scenes/npc/vortigaunt/poet.vcd"
// scene "scenes/npc/vortigaunt/hopeless.vcd"
// scene "scenes/npc/vortigaunt/alldear.vcd"
// scene "scenes/npc/vortigaunt/prevail.vcd"
// scene "scenes/npc/vortigaunt/seenworse.vcd"
// scene "scenes/npc/vortigaunt/persevere.vcd"
// scene "scenes/npc/vortigaunt/worthless.vcd"
// scene "scenes/npc/vortigaunt/whereto.vcd"
}
rule VortigauntTlkIdle
{
criteria IsVortigaunt ConceptTalkIdle
response VortigauntIdle
}
//------------------------------------------------------------------------------------------------------------
rule VortigauntPlayerIdle
{
criteria IsVortigaunt ConceptTalkPIdle
response NullResponse
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntStare"
{
// scene "scenes/npc/vortigaunt/optical.vcd"
// scene "scenes/npc/vortigaunt/unclear.vcd"
// scene "scenes/npc/vortigaunt/opaque.vcd"
// scene "scenes/npc/vortigaunt/rememberus.vcd"
// scene "scenes/npc/vortigaunt/stillhere.vcd"
// scene "scenes/npc/vortigaunt/calm.vcd"
}
rule VortigauntTlkStare
{
criteria IsVortigaunt ConceptTalkStare
response VortigauntStare
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntOk"
{
scene "scenes/npc/vortigaunt/itishonor.vcd"
scene "scenes/npc/vortigaunt/wehonored.vcd"
scene "scenes/npc/vortigaunt/ourhonor.vcd"
scene "scenes/npc/vortigaunt/honorfollow.vcd"
scene "scenes/npc/vortigaunt/accompany.vcd"
scene "scenes/npc/vortigaunt/gladly.vcd"
scene "scenes/npc/vortigaunt/pleasure.vcd"
scene "scenes/npc/vortigaunt/wefollowfm.vcd"
scene "scenes/npc/vortigaunt/honorours.vcd"
scene "scenes/npc/vortigaunt/gloriousend.vcd"
scene "scenes/npc/vortigaunt/bodyyours.vcd"
scene "scenes/npc/vortigaunt/allwehave.vcd"
scene "scenes/npc/vortigaunt/weareyours.vcd"
scene "scenes/npc/vortigaunt/dedicate.vcd"
scene "scenes/npc/vortigaunt/mutual.vcd"
scene "scenes/npc/vortigaunt/leadus.vcd"
scene "scenes/npc/vortigaunt/onward.vcd"
scene "scenes/npc/vortigaunt/forward.vcd"
scene "scenes/npc/vortigaunt/propitious.vcd"
scene "scenes/npc/vortigaunt/leadon.vcd"
scene "scenes/npc/vortigaunt/fmhonorsus.vcd"
scene "scenes/npc/vortigaunt/fmdoesushonor.vcd"
scene "scenes/npc/vortigaunt/yesforward.vcd"
scene "scenes/npc/vortigaunt/wewillhelp.vcd"
scene "scenes/npc/vortigaunt/assent.vcd"
}
rule VortigauntTlkStartFollow
{
criteria IsVortigaunt ConceptTalkStartFollow
response VortigauntOk
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntWait"
{
scene "scenes/npc/vortigaunt/canconvince.vcd"
scene "scenes/npc/vortigaunt/fmknowsbest.vcd"
scene "scenes/npc/vortigaunt/willremain.vcd"
scene "scenes/npc/vortigaunt/fearfailed.vcd"
scene "scenes/npc/vortigaunt/servebetterhere.vcd"
scene "scenes/npc/vortigaunt/certainly.vcd"
scene "scenes/npc/vortigaunt/herewestay.vcd"
scene "scenes/npc/vortigaunt/asyouwish.vcd"
scene "scenes/npc/vortigaunt/ourplacehere.vcd"
scene "scenes/npc/vortigaunt/affirmed.vcd"
}
rule VortigauntTlkStopFollow
{
criteria IsVortigaunt ConceptTalkStopFollow
response VortigauntWait
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntStop"
{
// sentence "VORT_STOP" delay "2,2.5" soundlevel "SNDLVL_NORM"
}
rule VortigauntTlkStop
{
criteria IsVortigaunt ConceptTalkStop
response VortigauntStop
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntScared"
{
// sentence "VORT_SCARED" delay "0,0.4"
}
rule VortigauntTlkNoShoot
{
criteria IsVortigaunt ConceptTalkNoShoot
response VortigauntScared
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureA"
{
// sentence "VORT_CUREA" defaultdelay speakonce
}
rule VortigauntPlayerHurt1
{
criteria IsVortigaunt ConceptTalkPlayerHurt1
response VortigauntCureA
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureB"
{
// sentence "VORT_CUREB" defaultdelay speakonce
}
rule VortigauntPlayerHurt2
{
criteria IsVortigaunt ConceptTalkPlayerHurt2
response VortigauntCureB
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureC"
{
// sentence "VORT_CUREC" defaultdelay speakonce
}
rule VortigauntPlayerHurt3
{
criteria IsVortigaunt ConceptTalkPlayerHurt3
response VortigauntCureC
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntPQuest"
{
// sentence "VORT_PQUEST" defaultdelay
}
rule VortigauntPlayerQuestion
{
criteria IsVortigaunt ConceptTalkPQuestion
response VortigauntPQuest
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntSmell"
{
// sentence "VORT_SMELL" defaultdelay respeakdelay "60"
}
rule VortigauntTlkSmell
{
criteria IsVortigaunt ConceptTalkSmell
response VortigauntSmell
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntWound"
{
// sentence "VORT_WOUND" speakonce defaultdelay
}
rule VortigauntTlkWound
{
criteria IsVortigaunt ConceptTalkWound
response VortigauntWound
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntMortal"
{
// sentence "VORT_MORTAL" speakonce defaultdelay
}
rule VortigauntTlkMortal
{
criteria IsVortigaunt ConceptTalkMortal
response VortigauntMortal
}
//============================================================================================================
// Vortigaunt Leader speech (a vortigaunt that's leading the player somewhere)
//============================================================================================================
response "VortigauntLeadStart"
{
scene "scenes/npc/vortigaunt/fmmustfollow.vcd"
}
rule VortigauntLeadStart
{
criteria IsVortigaunt ConceptLeadStart
response VortigauntLeadStart
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntLeadCatchup"
{
scene "scenes/npc/vortigaunt/yesforward.vcd"
scene "scenes/npc/vortigaunt/followfm.vcd"
}
rule VortigauntLeadCatchup
{
criteria IsVortigaunt ConceptLeadCatchup
response VortigauntLeadCatchup
}
//============================================================================================================
// Vortigaunt coast specific speech
//============================================================================================================
response "VortigauntExtractBugbait"
{
scene "scenes/coast/bugbait/vort_extract01.vcd" defaultdelay
}
rule VortigauntTlkExtractBugbait
{
criteria IsVortigaunt VortigauntExtractBugbait
response VortigauntExtractBugbait
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntExtractBugbaitFinish"
{
scene "scenes/coast/bugbait/vort_podsforyou01.vcd" defaultdelay
}
rule VortigauntTlkExtractBugbaitFinish
{
criteria IsVortigaunt VortigauntExtractBugbaitFinish
response VortigauntExtractBugbaitFinish
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntGetBugbait"
{
scene "scenes/coast/bugbait/vort_podnag.vcd" defaultdelay
}
rule VortigauntTlkLeadGetBugbait
{
criteria IsVortigaunt ConceptLeadMissingWeapon
response VortigauntGetBugbait
}

View File

@@ -0,0 +1,158 @@
// This is the base rule script file for the AI response system for Expressive AI's who speak based on certain "Concepts"
// You can think of a concept as a high level state that the code is trying to convey, such as say hello, or say you're mad, etc.
//
// The format of this file is that there are five main types of commands:
// 1) #include "filename" // This just causes the included scriptfile to be parsed and added to the database
// 2) enumeration: this declares an enumerated type so that comparisons can be matched against the string versions of the type
// 3) response: this specifies a response to issue. A response consists of a weighted set of options and can recursively reference
// other responses by name
// 4) criterion: This is a match condition
// 5) rule: a rule consists of one or more criteria and a response
//
// In general, the system is presented with a criteria set, which is a set of key value pairs generated by the game code and
// various entity I/O and keyfields. For instance, the following criteria set was created in a map with a train terminal
// "speaker" entity wishing to fire random station announcements
// concept = 'train_speaker' (weight 5.000000) ; the high level concept for the search request
// map = 'terminal_pa' ; the name of the map
// classname = 'speaker' ; the classname and name of the "speaking" entity
// name = 'terminal_pa'
// health = '10' ; the absolute health of the speaking entity
// healthfrac = '0.000' ; the health fraction (health/maxhealth) of the speaking entity
// playerhealth = '100' ; similar data related to the current player:
// playerhealthfrac = '1.000'
// playerweapon = 'none' ; the name of the weapon the player is carrying
// playeractivity = 'ACT_WALK' ; animating activity of the player
// playerspeed = '0.000' ; how fast the player is moving
//
// Based on such a criteria set, the system checks each rule against the set. To do this, each criterion of the rule is
// given a numeric score as follows:
// score = 0 if criteria doesn't match or, criterion weight * keyvaliue weight if it does match
// The final score for a rule is the sum of all of the scores of its criteria. The best rule is the one with the highest
// score. Once a best rule is selected, then a response is looked up based on the response definitions and the engine is
// asked to dispatch that response.
//
// The specific syntax for the various keywords is as follows:
//
// ENUMERATIONS:
//
// enumeration <enumerationname>
// {
// "key1" "value1"
// "key2" "value2"
// ...etc.
// }
// The code and criteria refer to enumerations with square brackets and a double colon separator, e.g.:
// [enumerationname::key1]
//
//
// RESPONSES:
//
// Single line:
// response <responsegroupname> [nodelay | defaultdelay | delay interval ] [speakonce] [noscene] [odds nnn] [respeakdelay interval] [soundlevel "SNDLVL_xxx"] [stop_on_nonidle] responsetype parameters
// Multiple lines
// response <responsegroupname>
// {
// [permitrepeats] ; optional parameter, by default we visit all responses in group before repeating any
// [sequential] ; optional parameter, by default we randomly choose responses, but with this we walk through the list starting at the first and going to the last
// [norepeat] ; Once we've run through all of the entries, disable the response group
// responsetype1 parameters1 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] [ stop_on_nonidle ] weight nnn
// responsetype2 parameters2 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] [ stop_on_nonidle ] weight nnn
// etc.
// }
// Where:
// interval = "startnumber,endnumber" or "number" (e.g., "2.8,3.2" or "3.2")
// responsetype =:
// speak ; it's an entry in sounds.txt
// sentence ; it's a sentence name from sentences.txt
// scene ; it's a .vcd file
// response ; it's a reference to another response group by name
// print ; print the text in developer 2 (for placeholder responses)
// nodelay = an additional delay of 0 after speaking
// defaultdelay = an additional delay of 2.8 to 3.2 seconds after speaking
// delay interval = an additional delay based on a random sample from the interval after speaking
// speakonce = don't use this response more than one time (default off)
// noscene = For an NPC, play the sound immediately using EmitSound, don't play it through the scene system. Good for playing sounds on dying or dead NPCs.
// odds = if this response is selected, if odds < 100, then there is a chance that nothing will be said (default 100)
// respeakdelay = don't use this response again for at least this long (default 0)
// soundlevel = use this soundlevel for the speak/sentence (default SNDLVL_TALKING)
// weight = if there are multiple responses, this is a selection weighting so that certain responses are favored over others in the group (default 1)
// displayfirst/displaylast : this should be the first/last item selected (ignores weight)
// stop_on_nonidle = If this response starts a .vcd, and during that scene the NPC changes out of idle state (e.g. sees an enemy), stop the .vcd
//
// CRITERIA:
//
// criterion <criterionname> <matchkey> <matchvalue> weight nnn required
// Where:
// matchkey matches one of the criteria in the set as shown above
// matchvalue is a string or number value or a range, the following are all valid:
// "0" ; numeric match to value 0
// "1" ; numeric match to value 1
// "weapon_smg1" ; string match to weapon_smg1 string
// "[npcstate::idle]" ; match enumeration by looking up numeric value
// ">0" ; match if greater than zero
// ">10,<=50" ; match if greater than ten and less than or equal to 50
// ">0,<[npcstate::alert]" ; match if greater than zer and les then value of enumeration for alert
// "!=0" ; match if not equal to zero
// weight = floating point weighting for score assuming criteria match (default value 1.0)
// required: if a rule has one or more criteria with the required flag set, then if any such criteria
// fail, the entire rule receives a score of zero
//
// RULE:
//
// rule <rulename>
// {
// criteria name1 [name2 name3 etc.]
// response responsegroupname [responsegroupname2 etc.]
// [matchonce] ; optional parameter
// [ <matchkey > <matchvalue> weight nnn required ]
// }
// Where:
// criteria just lies one more more criterion names from above and response list one or more of the response
// names from above (usually just one)
// matchonce (off by default): means that the rule is deactivated after the first time it is matched
// Note that additional "unnamed" criteria can be specified inline in the rule using the same syntax
// as for defining a criterion, except for the criterion keyword and the criterion name keys
//
// Interaction with entity I/O system
// CBaseEntity contains an inputfunc called "DispatchResponse" which accepts a string which is a concept name
// Thus, a game entity can fire this input on another entity with a concept string and a criteria set will
// be generated and searched against the entities current response system rule set.
// Right now only the speaker entity and NPC_Talker derived NPCs have any response rules loaded
// In addition, map placed entities have up to three "context" keypairs that can be specified.
// They take the form: "key:value" (key, single colon separator, value)
// When an entity with any such context keypairs is asked to dispatch a response, the keypairs are added to the
// criteria set passed to the rule system. Thus, map placed entities and triggers can specify their
// own context keypairs and these can be hooked up to response rules to do map-specific and appropriate
// responses
// In addition, entity I/O can be used to add, remove and clear any such context keypairs via the
// AddContext, RemoveContext, and ClearContext input functions.
// AddContext takes a keypair of the "key:value" format, while RemoveContext take just the "key"
// ClearContext removes all context keypairs
// The game .dll code can enumerate context keypairs and change them via code based methods
//
// The player and the world have their context added with the string player or world as a prefix, e.g.:
// "playerkey:value" or "worldkey:value" to differentiate world/player context from the context of the
// responding entity.
// Base script
#include "talker/response_criteria.txt"
// Test rules
#include "talker/interjections.txt"
#include "talker/npc_combine.txt"
#include "talker/response_k_lab.txt"
#include "talker/response_eli_lab.txt"
#include "talker/npc_vortigaunt.txt"
#include "talker/npc_citizen.txt"
#include "talker/npc_citizen_scenes.txt"
//#include "talker/npc_grigori.txt"
//#include "talker/npc_barney.txt"
#include "talker/npc_alyx.txt"
#include "talker/npc_alyx_episodic.txt"
#include "talker/npc_alyx_episodic_scenes.txt"
//#include "talker/npc_barney_episodic.txt"
#include "talker/nags_Alyx.txt"
#include "talker/npc_alyx_vehicle.txt"

View File

@@ -0,0 +1,278 @@
//TITLES FOR HALF-LIFE 2
// Position command $position x y
// x & y are from 0 to 1 to be screen resolution independent
// -1 means center in each dimension
// Effect command $effect <effect number>
// effect 0 is fade in/fade out
// effect 1 is flickery credits
// effect 2 is write out (training room)
// Text color r g b command $color
// fadein time fadeout time / hold time
// $fadein (message fade in time - per character in effect 2)
// $fadeout (message fade out time)
// $holdtime (stay on the screen for this long)
//INTRO TITLES
// All centered for now
$position -1 -1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.01
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.25
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
//INTRO CREDITS
// Test values -- JAY
// Lower left
$position 0.1 0.8
$effect 1
// Final fade-in color
$color 128 128 128
// This is the highlight/flash color
$color2 0 0 0
$fadein 1.5
$fadeout 0.5
$holdtime 1.2
CR1
{
Testing 1
}
CR2
{
Testing 2
}
CR3
{
Testing 3
}
//INTRO TITLES
// All centered for now
$position -1 -1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.01
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.25
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
GAMEOVER_ALLY
{
#HL2_GameOver_Ally
}
GAMEOVER_OBJECT
{
#HL2_GameOver_Object
}
GAMEOVER_TIMER
{
#HL2_GameOver_Timer
}
GAMEOVER_STUCK
{
#HL2_GameOver_Stuck
}
GAMEOVER_ALYXDEAD
{
#Episodic_GameOver_AlyxDead
}
GAMEOVER_ALYXLEFT
{
#EP2_GameOver_AlyxLeft
}
$fadein 0.03
$holdtime 9
//CHAPTER TITLES
$fadein 0.01
$holdtime 3.5
$position -1 0.58
EP2_CHAPTER1_TITLE
{
#ep2_Chapter1_Title
}
EP2_CHAPTER2_TITLE
{
#ep2_Chapter2_Title
}
EP2_CHAPTER3_TITLE
{
#ep2_Chapter3_Title
}
EP2_CHAPTER4_TITLE
{
#ep2_Chapter4_Title
}
EP2_CHAPTER5_TITLE
{
#ep2_Chapter5_Title
}
EP2_CHAPTER6_TITLE
{
#ep2_Chapter6_Title
}
EP2_CHAPTER7_TITLE
{
#ep2_Chapter7_Title
}
EP2_CHAPTER8_TITLE
{
#ep2_Chapter8_Title
}
EP2_CHAPTER9_TITLE
{
#ep2_Chapter9_Title
}
// In-Game messages
$position 0.1 0.1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.00
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.0
// How long to hold the message on the screen (after it scans out)
$holdtime 0.01
// How long it takes to fade out the message after holding
$fadeout 0.01
$boxsize 0.4
$boxcolor 31 31 31 127
GAMESAVING_360
{
#HL2_Saving
}
$position -1 0.65
GAMESAVING
{
#HL2_Saving
}
// In-Game messages
$position 0.1 0.1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.00
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.15
// How long to hold the message on the screen (after it scans out)
$holdtime 1.0
// How long it takes to fade out the message after holding
$fadeout 0.25
$boxsize 0.4
$boxcolor 31 31 31 127
// The following message will clear any existing message of the given name
$clearmessage GAMESAVING
GAMESAVED_360
{
#HL2_Saved
}
$position -1 0.65
GAMESAVED
{
#HL2_Saved
}
$clearmessage 0
// Game title
// This is a placeholder to hold the effects controls for the "Half-Life" title
$position -1 -1
// Only effect 0 is supported for game title
$effect 0
// This is the final color
$color 180 180 180
// Not used color2
$color2 0 0 0
// This is the time it takes to fade in the title
$fadein 1.0
// How long to hold the message on the screen (after it scans out)
$holdtime 3.0
// How long it takes to fade out the message after holding
$fadeout 1.5
$boxsize 0.0
GAMETITLE
{
Half-Life
}
//HAZARD COURSE TEXT
// Test values -- JAY
$position -1 0.65
// Scan-out text effect
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 0 200 50
// This is the time it takes to fade each character
$fadein 0.005
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.5
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
$position -1 0.65
$position -1 0.3

View File

@@ -0,0 +1,40 @@
"VGUI_Screens"
{
// This name here can be referenced from within a
// vgui_screen entity to select this vgui panel
"vgui_test_screen"
{
// The type indicates which type of panel to create
// Coders will add new types as time goes by.
// "vgui_screen_panel" is a generic panel type which can
// read in .res files that have been built by VGUI's build mode dialog.
"type" "vgui_screen_panel"
// These describe the dimensions of the screen *in pixels*
"pixelswide" 480
"pixelshigh" 240
// This is the name of the .res file to load up and apply to the vgui panel
"resfile" "scripts/screens/vgui_test_screen.res"
}
"teleport_countdown_screen"
{
// Defined in c_info_teleporter_countdown.cpp
"type" "teleport_countdown_screen"
// These describe the dimensions of the screen *in pixels*
"pixelswide" 480
"pixelshigh" 240
// This is the name of the .res file to load up and apply to the vgui panel
"resfile" "scripts/screens/teleport_countdown_screen.res"
}
"jalopy_radar_panel"
{
"type" "jalopy_radar_panel"
"pixelswide" "128"
"pixelshigh" "128"
"resfile" "scripts/screens/jalopy_radar_panel.res"
}
}

View File

@@ -0,0 +1 @@
map sdk_vehicles

View File

@@ -0,0 +1 @@
map sdk_vehicles

View File

@@ -0,0 +1 @@
map sdk_vehicles

1384
sp/game/mod_hl2/detail.vbsp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
"GameInfo"
{
game "My First HL2 Mod"
title "HALF-LIFE'"
title2 ""
type singleplayer_only
FileSystem
{
SteamAppId 243730 // This sets the app ID in Steam. This is the Source SDK Base 2013 Singleplayer
//
// 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 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 |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 hl2
// Where the game's binaries are
gamebin hl2_mod/bin
// Last, mount in shared HL2 loose files
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}
}

182
sp/game/mod_hl2/lights.rad Normal file
View File

@@ -0,0 +1,182 @@
ldr: lights/fluorescentcool001a 189 231 232 350
hdr: lights/fluorescentcool001a 189 231 232 175
ldr: lights/fluorescentcool001b 236 255 182 350
hdr: lights/fluorescentcool001b 236 255 182 175
ldr: lights/fluorescentcool002a 189 231 232 400
hdr: lights/fluorescentcool002a 189 231 232 200
ldr: lights/fluorescentcool002b 236 255 182 400
hdr: lights/fluorescentcool002b 236 255 182 200
ldr: lights/fluorescentcool003a 189 231 232 300
hdr: lights/fluorescentcool003a 189 231 232 150
ldr: lights/fluorescentwarm001a 239 216 193 350
hdr: lights/fluorescentwarm001a 239 216 193 175
ldr: lights/fluorescentwarm002a 239 216 193 400
hdr: lights/fluorescentwarm002a 239 216 193 200
ldr: lights/fluorescentwhite001a 245 245 245 350
hdr: lights/fluorescentwhite001a 245 245 245 175
ldr: lights/fluorescentwhite002a 245 245 245 400
hdr: lights/fluorescentwhite002a 245 245 245 200
ldr: lights/hazzardred001a 228 37 0 300
hdr: lights/hazzardred001a 228 37 0 150
ldr: lights/hazzardyellow001a 250 215 74 300
hdr: lights/hazzardyellow001a 250 215 74 150
ldr: lights/HIDcool001a 145 222 172 650
hdr: lights/HIDcool001a 145 222 172 325
ldr: lights/HIDcool001b 205 232 255 650
hdr: lights/HIDcool001b 205 232 255 325
ldr: lights/HIDwarm001a 255 201 116 650
hdr: lights/HIDwarm001a 255 201 116 325
ldr: lights/white001 250 240 205 100
hdr: lights/white001 250 240 205 50
ldr: lights/white002 189 233 247 425
hdr: lights/white002 189 233 247 212
ldr: lights/white003 232 246 190 350
hdr: lights/white003 232 246 190 175
ldr: lights/white004 170 228 247 425
hdr: lights/white004 170 228 247 100
ldr: lights/white005 234 235 220 375
hdr: lights/white005 234 235 220 187
ldr: lights/white006 234 235 220 100
hdr: lights/white006 234 235 220 50
ldr: lights/white001_nochop 250 240 205 100
hdr: lights/white001_nochop 250 240 205 50
ldr: lights/white002_nochop 189 233 247 425
hdr: lights/white002_nochop 189 233 247 212
ldr: lights/white003_nochop 232 246 190 350
hdr: lights/white003_nochop 232 246 190 175
ldr: lights/white004_nochop 170 228 247 425
hdr: lights/white004_nochop 170 228 247 100
ldr: lights/white005_nochop 234 235 220 375
hdr: lights/white005_nochop 234 235 220 187
ldr: lights/white006_nochop 234 235 220 100
hdr: lights/white006_nochop 234 235 220 50
ldr: lights/incandescentcool001a 235 235 235 300
hdr: lights/incandescentcool001a 235 235 235 150
ldr: lights/incandescentwarm001a 250 226 129 300
hdr: lights/incandescentwarm001a 250 226 129 150
ldr: glass/glassscreen001a 172 192 161 225
hdr: glass/glassscreen001a 172 192 161 112
ldr: glass/glasspipe001f 214 72 44 200
hdr: glass/glasspipe001f 214 72 44 100
ldr: glass/glassscreen001c 172 192 161 225
hdr: glass/glassscreen001c 172 192 161 112
ldr: glass/glassscreen001d 211 187 134 225
hdr: glass/glassscreen001d 211 187 134 112
ldr: glass/glassblock001a 70 194 209 200
hdr: glass/glassblock001a 70 194 209 100
ldr: composite/citadelfloor001a 103 143 203 200
hdr: composite/citadelfloor001a 103 143 203 100
ldr: props/tvscreen006a 196 0 0 200
hdr: props/tvscreen006a 196 0 0 100
ldr: shadertest/gooinglass 149 49 15 50
hdr: shadertest/gooinglass 149 49 15 25
ldr: glass/glasswindow002e 189 233 247 425
hdr: glass/glasswindow002e 189 233 247 212
ldr: glass/glasswindow035a 145 222 172 100
hdr: glass/glasswindow035a 145 222 172 50
ldr: dev/DEV_INTERIORLIGHT02B 151 176 204 225
hdr: dev/DEV_INTERIORLIGHT02B 151 176 204 112
ldr: plaster/plasterwall029h 189 223 227 125
hdr: plaster/plasterwall029h 189 223 227 62
ldr: building_template/Building_Trainstation_Template001d 230 230 200 65
hdr: building_template/Building_Trainstation_Template001d 230 230 200 32
ldr: building_template/Building_Trainstation_Template001e 230 230 200 150
hdr: building_template/Building_Trainstation_Template001e 230 230 200 75
ldr: building_template/Building_Trainstation_window002d 230 230 200 300
hdr: building_template/Building_Trainstation_window002d 230 230 200 150
ldr: building_template/Building_Trainstation_window002e 230 230 200 300
hdr: building_template/Building_Trainstation_window002e 230 230 200 150
ldr: lights/physgunlight 189 231 232 20
hdr: lights/physgunlight 189 231 232 10
noshadow tree_deciduous_01a_branches.vmt
noshadow tree_deciduous_01a_leaves.vmt
noshadow tree_deciduous_01a_lod.vmt
noshadow tree_deciduous_01a_lod-leaves.vmt
forcetextureshadow props_wasteland/exterior_fence_notbarbed002a.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002b.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002c.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002d.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002e.mdl
forcetextureshadow props_wasteland/exterior_fence_notbarbed002f.mdl
forcetextureshadow props_wasteland/exterior_fence001a.mdl
forcetextureshadow props_wasteland/exterior_fence001b.mdl
forcetextureshadow props_wasteland/exterior_fence002a.mdl
forcetextureshadow props_wasteland/exterior_fence002b.mdl
forcetextureshadow props_wasteland/exterior_fence002c.mdl
forcetextureshadow props_wasteland/exterior_fence002d.mdl
forcetextureshadow props_wasteland/exterior_fence002e.mdl
forcetextureshadow props_wasteland/exterior_fence003a.mdl
forcetextureshadow props_wasteland/exterior_fence003b.mdl
forcetextureshadow props_foliage/tree_cliff_01a.mdl
forcetextureshadow props_foliage/tree_cliff_02a.mdl
forcetextureshadow props_foliage/tree_deciduous_01a-lod.mdl
forcetextureshadow props_foliage/tree_deciduous_01a.mdl
forcetextureshadow props_foliage/tree_deciduous_02a.mdl
forcetextureshadow props_foliage/tree_deciduous_03a.mdl
forcetextureshadow props_foliage/tree_deciduous_03b.mdl
forcetextureshadow props_foliage/tree_poplar_01.mdl
forcetextureshadow props_wasteland/interior_fence001a.mdl
forcetextureshadow props_wasteland/interior_fence001b.mdl
forcetextureshadow props_wasteland/interior_fence001c.mdl
forcetextureshadow props_wasteland/interior_fence001d.mdl
forcetextureshadow props_wasteland/interior_fence001e.mdl
forcetextureshadow props_wasteland/interior_fence001g.mdl
forcetextureshadow props_wasteland/interior_fence002a.mdl
forcetextureshadow props_wasteland/interior_fence002b.mdl
forcetextureshadow props_wasteland/interior_fence002c.mdl
forcetextureshadow props_wasteland/interior_fence002d.mdl
forcetextureshadow props_wasteland/interior_fence002e.mdl
forcetextureshadow props_wasteland/interior_fence002f.mdl
forcetextureshadow props_wasteland/interior_fence003a.mdl
forcetextureshadow props_wasteland/interior_fence003b.mdl
forcetextureshadow props_wasteland/interior_fence003d.mdl
forcetextureshadow props_wasteland/interior_fence003e.mdl
forcetextureshadow props_wasteland/interior_fence003f.mdl
forcetextureshadow props_wasteland/interior_fence004a.mdl
forcetextureshadow props_wasteland/interior_fence004b.mdl

Binary file not shown.

View File

@@ -0,0 +1,798 @@
///////////////////////////////////////////////////////////
// Tracker scheme resource file
//
// sections:
// Colors - all the colors used by the scheme
// BaseSettings - contains settings for app to use to draw controls
// Fonts - list of all the fonts used by app
// Borders - description of all the borders
//
///////////////////////////////////////////////////////////
Scheme
{
//////////////////////// COLORS ///////////////////////////
// color details
// this is a list of all the colors used by the scheme
Colors
{
}
///////////////////// BASE SETTINGS ////////////////////////
//
// default settings for all panels
// controls use these to determine their settings
BaseSettings
{
"FgColor" "255 220 0 100"
"BgColor" "0 0 0 76"
"Panel.FgColor" "255 220 0 100"
"Panel.BgColor" "0 0 0 76"
"BrightFg" "255 220 0 255"
"DamagedBg" "180 0 0 200"
"DamagedFg" "180 0 0 230"
"BrightDamagedFg" "255 0 0 255"
// weapon selection colors
"SelectionNumberFg" "255 220 0 255"
"SelectionTextFg" "255 220 0 255"
"SelectionEmptyBoxBg" "0 0 0 80"
"SelectionBoxBg" "0 0 0 80"
"SelectionSelectedBoxBg" "0 0 0 80"
"ZoomReticleColor" "255 220 0 255"
// HL1-style HUD colors
"Yellowish" "255 160 0 255"
"Normal" "255 208 64 255"
"Caution" "255 48 0 255"
// Top-left corner of the "Half-Life 2" on the main screen
"Main.Title1.X" "53"
"Main.Title1.Y" "190"
"Main.Title1.Y_hidef" "184"
"Main.Title1.Color" "255 255 255 255"
// Top-left corner of secondary title e.g. "DEMO" on the main screen
"Main.Title2.X" "291"
"Main.Title2.Y" "207"
"Main.Title2.Y_hidef" "242"
"Main.Title2.Color" "255 255 255 200"
// Top-left corner of the menu on the main screen
"Main.Menu.X" "53"
"Main.Menu.X_hidef" "76"
"Main.Menu.Y" "240"
// Blank space to leave beneath the menu on the main screen
"Main.BottomBorder" "32"
}
//////////////////////// BITMAP FONT FILES /////////////////////////////
//
// Bitmap Fonts are ****VERY*** expensive static memory resources so they are purposely sparse
BitmapFontFiles
{
// UI buttons, custom font, (256x64)
"Buttons" "materials/vgui/fonts/buttons_32.vbf"
}
//////////////////////// FONTS /////////////////////////////
//
// describes all the fonts
Fonts
{
// fonts are used in order that they are listed
// fonts are used in order that they are listed
"DebugFixed"
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"antialias" "1"
}
}
// fonts are used in order that they are listed
"DebugFixedSmall"
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"antialias" "1"
}
}
// 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" [$X360]
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
}
"1" [$WIN32]
{
"name" "Verdana"
"tall" "9"
"weight" "700"
"antialias" "1"
"yres" "1 599"
}
"2"
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "900"
"antialias" "1"
"yres" "768 1023"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "900"
"antialias" "1"
"yres" "1024 1199"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "900"
"antialias" "1"
"yres" "1200 10000"
"additive" "1"
}
}
"DefaultSmall"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "0"
"range" "0x0000 0x017F"
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Arial"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "0"
}
}
"DefaultVerySmall"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "0"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Verdana"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "0"
}
"7"
{
"name" "Arial"
"tall" "11"
"range" "0x0000 0x00FF"
"weight" "0"
}
}
WeaponIcons
{
"1"
{
"name" "HalfLife2"
"tall" "64"
"tall_hidef" "58"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
WeaponIconsSelected
{
"1"
{
"name" "HalfLife2"
"tall" "64"
"tall_hidef" "58"
"weight" "0"
"antialias" "1"
"blur" "5"
"scanlines" "2"
"additive" "1"
"custom" "1"
}
}
WeaponIconsSmall
{
"1"
{
"name" "HalfLife2"
"tall" "32"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
Crosshairs
{
"1"
{
"name" "HalfLife2"
"tall" "40" [!$OSX]
"tall" "41" [$OSX]
"weight" "0"
"antialias" "0"
"additive" "1"
"custom" "1"
"yres" "1 10000"
}
}
QuickInfo
{
"1" [$X360]
{
"name" "HL2cross"
"tall" "57"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
"1" [$WIN32]
{
"name" "HL2cross"
"tall" "28" [!$OSX]
"tall" "50" [$OSX]
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1" [!$OSX]
}
}
HudNumbers
{
"1"
{
"name" "HalfLife2"
"tall" "32" [$WIN32]
"tall" "38" [$X360]
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
SquadIcon [$X360]
{
"1"
{
"name" "HalfLife2"
"tall" "50"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
HudNumbersGlow
{
"1"
{
"name" "HalfLife2"
"tall" "32" [$WIN32]
"tall" "38" [$X360]
"weight" "0"
"blur" "4"
"scanlines" "2"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
HudNumbersSmall
{
"1"
{
"name" "HalfLife2" [!$OSX]
"name" "Helvetica Bold" [$OSX]
"tall" "16" [$WIN32]
"tall" "22" [$X360]
"weight" "1000"
"additive" "1"
"antialias" "1"
"custom" "1"
}
}
HudSelectionNumbers
{
"1"
{
"name" "Verdana"
"tall" "11"
"weight" "700"
"antialias" "1"
"additive" "1"
}
}
HudHintTextLarge
{
"1" [$X360]
{
"bitmap" "1"
"name" "Buttons"
"scalex" "1.0"
"scaley" "1.0"
}
"1" [$WIN32]
{
"name" "Verdana" [!$OSX]
"name" "Helvetica Bold" [$OSX]
"tall" "14"
"weight" "1000"
"antialias" "1"
"additive" "1"
}
}
HudHintTextSmall
{
"1" [$WIN32]
{
"name" "Verdana" [!$OSX]
"name" "Helvetica" [$OSX]
"tall" "11"
"weight" "0"
"antialias" "1"
"additive" "1"
}
"1" [$X360]
{
"name" "Verdana"
"tall" "12"
"weight" "700"
"antialias" "1"
"additive" "1"
}
}
HudSelectionText
{
"1"
{
"name" "Verdana"
"tall" "8"
"weight" "700"
"antialias" "1"
"yres" "1 599"
}
"2"
{
"name" "Verdana"
"tall" "10"
"weight" "700"
"antialias" "1"
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "12"
"weight" "900"
"antialias" "1"
"yres" "768 1023"
}
"4"
{
"name" "Verdana"
"tall" "16"
"weight" "900"
"antialias" "1"
"yres" "1024 1199"
}
"5"
{
"name" "Verdana"
"tall" "17"
"weight" "1000"
"antialias" "1"
"yres" "1200 10000"
}
}
GameUIButtons
{
"1" [$X360]
{
"bitmap" "1"
"name" "Buttons"
"scalex" "0.63"
"scaley" "0.63"
"scalex_hidef" "1.0"
"scaley_hidef" "1.0"
}
}
BudgetLabel
{
"1"
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"outline" "1"
}
}
DebugOverlay
{
"1" [$WIN32]
{
"name" "Courier New"
"tall" "14"
"weight" "400"
"outline" "1"
}
"1" [$X360]
{
"name" "Tahoma"
"tall" "18"
"weight" "200"
"outline" "1"
}
}
"CloseCaption_Normal"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "500"
}
}
"CloseCaption_Italic"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Italic" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "500"
"italic" "1"
}
}
"CloseCaption_Bold"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Bold" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "900"
}
}
"CloseCaption_BoldItalic"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana Bold Italic" [$OSX]
"tall" "26" [!$OSX]
"tall" "24" [$OSX]
"weight" "900"
"italic" "1"
}
}
"CloseCaption_Small"
{
"1"
{
"name" "Tahoma" [!$OSX]
"name" "Verdana" [$OSX]
"tall" "16" [!$OSX]
"tall" "14" [$OSX]
"tall_hidef" "24"
"weight" "900"
"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"
}
}
"Trebuchet24"
{
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
"range" "0x0000 0x007F" // Basic Latin
"antialias" "1"
"additive" "1"
}
}
"Trebuchet18"
{
"1"
{
"name" "Trebuchet MS"
"tall" "18"
"weight" "900"
}
}
ClientTitleFont
{
"1"
{
"name" "HalfLife2"
"tall" "32"
"tall_hidef" "46"
"weight" "0"
"additive" "0"
"antialias" "1"
"custom" "1" [$OSX]
}
}
CreditsLogo
{
"1"
{
"name" "HalfLife2"
"tall" "128"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
CreditsText
{
"1"
{
"name" "Trebuchet MS"
"tall" "20"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
CreditsOutroLogos
{
"1"
{
"name" "HalfLife2"
"tall" "48"
"weight" "0"
"antialias" "1"
"additive" "1"
"custom" "1"
}
}
CreditsOutroText
{
"1"
{
"name" "Verdana" [!$OSX]
"name" "Courier Bold" [$OSX]
"tall" "9"
"weight" "900"
"antialias" "1"
}
}
CenterPrintText
{
// note that this scales with the screen resolution
"1"
{
"name" "Trebuchet MS" [!$OSX]
"name" "Helvetica" [$OSX]
"tall" "18"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
HDRDemoText
{
// note that this scales with the screen resolution
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
"antialias" "1"
"additive" "1"
}
}
"AchievementNotification"
{
"1"
{
"name" "Trebuchet MS"
"tall" "14"
"weight" "900"
"antialias" "1"
}
}
"CommentaryDefault"
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "480 599"
}
"2"
{
"name" "Verdana"
"tall" "13" [$WIN32]
"tall" "20" [$X360]
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "600 767"
}
"3"
{
"name" "Verdana"
"tall" "14"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "768 1023"
"antialias" "1"
}
"4"
{
"name" "Verdana"
"tall" "20"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1024 1199"
"antialias" "1"
}
"5"
{
"name" "Verdana"
"tall" "24"
"weight" "900"
"range" "0x0000 0x017F" // Basic Latin, Latin-1 Supplement, Latin Extended-A
"yres" "1200 6000"
"antialias" "1"
}
"6"
{
"name" "Verdana"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "900"
}
"7"
{
"name" "Arial"
"tall" "12"
"range" "0x0000 0x00FF"
"weight" "800"
}
}
}
//////////////////////// CUSTOM FONT FILES /////////////////////////////
//
// specifies all the custom (non-system) font files that need to be loaded to service the above described fonts
CustomFontFiles
{
"1" "resource/HALFLIFE2.ttf"
"2" "resource/HL2crosshairs.ttf"
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,19 @@
"chapters"
{
1 "background01"
2 "background01"
3 "background02"
4 "background02"
5 "background03"
6 "background03"
7 "background04"
8 "background04"
9 "background05"
9a "background05"
10 "background06"
11 "background06"
12 "background07"
13 "background07"
14 "background07"
15 "background07"
}

View File

@@ -0,0 +1,699 @@
"Resource/HudLayout.res"
{
HudHealth [$WIN32]
{
"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"
}
HudHealth [$X360]
{
"fieldName" "HudHealth"
"xpos" "48"
"ypos" "416"
"wide" "115"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "60"
"digit_ypos" "-1"
}
HudSuit [$WIN32]
{
"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"
}
HudSuit [$X360]
{
"fieldName" "HudSuit"
"xpos" "176"
"ypos" "416"
"wide" "117"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "50"
"digit_ypos" "-1"
}
HudAmmo [$WIN32]
{
"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"
}
HudAmmo [$X360]
{
"fieldName" "HudAmmo"
"xpos" "r208"
"ypos" "416"
"wide" "160"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "18"
"digit_xpos" "60"
"digit_ypos" "-1"
"digit2_xpos" "120"
"digit2_ypos" "14"
}
HudAmmoSecondary [$WIN32]
{
"fieldName" "HudAmmoSecondary"
"xpos" "r76"
"ypos" "432"
"wide" "60"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "22"
"digit_xpos" "36"
"digit_ypos" "2"
}
HudAmmoSecondary [$X360]
{
"fieldName" "HudAmmoSecondary"
"xpos" "r113"
"ypos" "416"
"wide" "65"
"tall" "36"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"text_xpos" "8"
"text_ypos" "22"
"digit_xpos" "36"
"digit_ypos" "-1"
}
HudSuitPower [$WIN32]
{
"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"
}
HudSuitPower [$X360]
{
"fieldName" "HudSuitPower"
"visible" "1"
"enabled" "1"
"xpos" "48"
"ypos" "370"
"wide" "102"
"tall" "26"
"AuxPowerLowColor" "255 100 0 220"
"AuxPowerHighColor" "255 220 0 220"
"AuxPowerDisabledAlpha" "70"
"BarInsetX" "8"
"BarInsetY" "19"
"BarWidth" "92"
"BarHeight" "5"
"BarChunkWidth" "6"
"BarChunkGap" "3"
"text_xpos" "8"
"text_ypos" "4"
"text2_xpos" "8"
"text2_ypos" "25"
"text2_gap" "12"
"PaintBackgroundType" "2"
}
HudPosture [$WIN32]
{
"fieldName" "HudPosture"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "16"
"ypos" "316"
"tall" "36"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "10"
"icon_ypos" "0"
}
HudPosture [$X360]
{
"fieldName" "HudPosture"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "48"
"ypos" "316"
"tall" "36"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "10"
"icon_ypos" "2"
}
HudFlashlight
{
"fieldName" "HudFlashlight"
"visible" "1"
"PaintBackgroundType" "2"
"xpos" "270" [$WIN32]
"ypos" "444" [$WIN32]
"xpos_hidef" "293" [$X360] // aligned to left
"xpos_lodef" "c-18" [$X360] // centered in screen
"ypos" "428" [$X360]
"tall" "24"
"wide" "36"
"font" "WeaponIconsSmall"
"icon_xpos" "4"
"icon_ypos" "-8"
"BarInsetX" "4"
"BarInsetY" "18"
"BarWidth" "28"
"BarHeight" "2"
"BarChunkWidth" "2"
"BarChunkGap" "1"
}
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" [$WIN32]
"DashHeight" "6" [$X360]
"BorderThickness" "88"
}
HudWeaponSelection
{
"fieldName" "HudWeaponSelection"
"ypos" "16" [$WIN32]
"ypos" "32" [$X360]
"visible" "1"
"enabled" "1"
"SmallBoxSize" "32"
"MediumBoxWide" "95"
"MediumBoxWide_hidef" "78"
"MediumBoxTall" "50"
"MediumBoxTall_hidef" "50"
"MediumBoxWide_lodef" "74"
"MediumBoxTall_lodef" "50"
"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"
"wide" "640"
"tall" "480"
}
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" [$WIN32]
"ypos" "236" [$X360]
"wide" "500"
"tall" "136" [$WIN32]
"tall" "176" [$X360]
"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"
"topoffset" "0" [$WIN32]
"topoffset" "0" [$X360]
}
HudChat
{
"fieldName" "HudChat"
"visible" "0"
"enabled" "1"
"xpos" "0"
"ypos" "0"
"wide" "4"
"tall" "4"
}
HudHistoryResource [$WIN32]
{
"fieldName" "HudHistoryResource"
"visible" "1"
"enabled" "1"
"xpos" "r252"
"ypos" "40"
"wide" "248"
"tall" "320"
"history_gap" "56" [!$OSX]
"history_gap" "64" [$OSX]
"icon_inset" "38"
"text_inset" "36"
"text_inset" "26"
"NumberFont" "HudNumbersSmall"
}
HudHistoryResource [$X360]
{
"fieldName" "HudHistoryResource"
"visible" "1"
"enabled" "1"
"xpos" "r300"
"ypos" "40"
"wide" "248"
"tall" "240"
"history_gap" "50"
"icon_inset" "38"
"text_inset" "36"
"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" "c-240"
"ypos" "c60"
"xpos" "r148" [$X360]
"ypos" "r338" [$X360]
"wide" "480"
"tall" "100"
"HintSize" "1"
"text_xpos" "8"
"text_ypos" "8"
"center_x" "0" // center text horizontally
"center_y" "-1" // align text on the bottom
"paintbackground" "0"
}
HudHintKeyDisplay
{
"fieldName" "HudHintKeyDisplay"
"visible" "0"
"enabled" "1"
"xpos" "r120" [$WIN32]
"ypos" "r340" [$WIN32]
"xpos" "r148" [$X360]
"ypos" "r338" [$X360]
"wide" "100"
"tall" "200"
"text_xpos" "8"
"text_ypos" "8"
"text_xgap" "8"
"text_ygap" "8"
"TextColor" "255 170 0 220"
"PaintBackgroundType" "2"
}
HudSquadStatus [$WIN32]
{
"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"
}
HudSquadStatus [$X360]
{
"fieldName" "HudSquadStatus"
"visible" "1"
"enabled" "1"
"xpos" "r182"
"ypos" "348"
"wide" "134"
"tall" "62"
"text_xpos" "8"
"text_ypos" "44"
"SquadIconColor" "255 220 0 160"
"IconInsetX" "8"
"IconInsetY" "-4"
"IconGap" "24"
"IconFont" "SquadIcon"
"PaintBackgroundType" "2"
}
HudPoisonDamageIndicator [$WIN32]
{
"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"
}
HudPoisonDamageIndicator [$X360]
{
"fieldName" "HudPoisonDamageIndicator"
"visible" "0"
"enabled" "1"
"xpos" "48"
"ypos" "264"
"wide" "192"
"tall" "46"
"text_xpos" "8"
"text_ypos" "6"
"text_ygap" "16"
"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"
}
HUDAutoAim
{
"fieldName" "HUDAutoAim"
"visible" "1"
"enabled" "1"
"wide" "640" [$WIN32]
"tall" "480" [$WIN32]
"wide" "960" [$X360]
"tall" "720" [$X360]
}
HudCommentary
{
"fieldName" "HudCommentary"
"xpos" "c-190"
"ypos" "350"
"wide" "380"
"tall" "40"
"visible" "1"
"enabled" "1"
"PaintBackgroundType" "2"
"bar_xpos" "50"
"bar_ypos" "20"
"bar_height" "8"
"bar_width" "320"
"speaker_xpos" "50"
"speaker_ypos" "8"
"count_xpos_from_right" "10" // Counts from the right side
"count_ypos" "8"
"icon_texture" "vgui/hud/icon_commentary"
"icon_xpos" "0"
"icon_ypos" "0"
"icon_width" "40"
"icon_height" "40"
}
HudHDRDemo
{
"fieldName" "HudHDRDemo"
"xpos" "0"
"ypos" "0"
"wide" "640"
"tall" "480"
"visible" "1"
"enabled" "1"
"Alpha" "255"
"PaintBackgroundType" "2"
"BorderColor" "0 0 0 255"
"BorderLeft" "16"
"BorderRight" "16"
"BorderTop" "16"
"BorderBottom" "64"
"BorderCenter" "0"
"TextColor" "255 255 255 255"
"LeftTitleY" "422"
"RightTitleY" "422"
}
AchievementNotificationPanel
{
"fieldName" "AchievementNotificationPanel"
"visible" "1"
"enabled" "1"
"xpos" "0"
"ypos" "180"
"wide" "f10" [$WIN32]
"wide" "f60" [$X360]
"tall" "100"
}
CHudVote
{
"fieldName" "CHudVote"
"xpos" "0"
"ypos" "0"
"wide" "640"
"tall" "480"
"visible" "1"
"enabled" "1"
"bgcolor_override" "0 0 0 0"
"PaintBackgroundType" "0" // rounded corners
}
}

View File

@@ -0,0 +1,624 @@
// "act busy name" This is the name that a mapmaker must specify in the hint node.
// {
// "busy_anim" "Activity Name".
// "entry_anim" "Activity Name"
// "exit_anim" "Activity Name"
// "busy_sequence" "Sequence Name". If specified, this is used over the activity name. Specify it in the hint node.
// "entry_sequence" "Sequence Name". If specified, this is used over the entry anim.
// "exit_sequence" "Sequence Name". If specified, this is used over the exit anim.
// "busy_sound" "Sound Name". If specified, the NPC will play this sound when it plays the busy anim/seq. Can be a GameSound name or a response rules concept.
// "entry_sound" "Sound Name". If specified, the NPC will play this sound when it plays the entry anim/seq. Can be a GameSound name or a response rules concept.
// "exit_sound" "Sound Name". If specified, the NPC will play this sound when it plays the exit anim/seq. Can be a GameSound name or a response rules concept.
// "min_time" "Minimum time to spend in this busy anim"
// "max_time" "Maximum time to spend in this busy anim" 0 = only stop when interrupted by external event
// "interrupts" One of:
// "BA_INT_NONE" break out only when time runs out. No external influence will break me out.
// "BA_INT_DANGER" break out of this anim only if threatened
// "BA_INT_PLAYER" break out of this anim if I can see the player, or I'm threatened
// "BA_INT_AMBUSH" someone please define this - I have no idea what it does
// "BA_INT_COMBAT" break out of this anim if combat occurs in my line of sight (bullet hits, grenades, etc), -OR- the max time is reached
// }
//
//
"ActBusy.txt"
{
"binoculars_idle"
{
"busy_sequence" "binoculars_idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_PLAYER"
}
"d2_coast03_PreBattle_Scan_Skies"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Scan_Skies02"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Scan_Skies03"
{
"busy_sequence" "d2_coast03_PreBattle_Scan_Skies03"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Kneel_Idle"
{
"busy_sequence" "d2_coast03_PreBattle_Kneel_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d2_coast03_PreBattle_Stand_Look"
{
"busy_sequence" "d2_coast03_PreBattle_Stand_Look"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_alert_01"
{
"busy_sequence" "idle_alert_01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_alert_02"
{
"busy_sequence" "idle_alert_02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_relaxed_01"
{
"busy_sequence" "idle_relaxed_01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"idle_relaxed_02"
{
"busy_sequence" "idle_relaxed_02"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_town05_Leon_Lean_Table_Idle"
{
"busy_sequence" "d1_town05_Leon_Lean_Table_Idle"
"entry_sequence" "d1_town05_Leon_Lean_Table_Entry"
"exit_sequence" "d1_town05_Leon_Lean_Table_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Sit_couch"
{
"busy_sequence" "d1_t03_Sit_couch"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_sit_couch_consoling"
{
"busy_sequence" "d1_t03_sit_couch_consoling"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"fear_reaction_Idle"
{
"busy_sequence" "fear_reaction_Idle"
"entry_sequence" "fear_reaction"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"cower_Idle"
{
"busy_sequence" "cower_Idle"
"entry_sequence" "cower"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Sit_Bed"
{
"busy_sequence" "d1_t03_Sit_Bed"
"entry_sequence" "d1_t03_Sit_Bed_Entry"
"exit_sequence" "d1_t03_Sit_Bed_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"LineIdle01"
{
"busy_sequence" "LineIdle01"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_WatchBreen"
{
"busy_sequence" "d1_t01_BreakRoom_WatchBreen"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t02_Plaza_Sit01_Idle"
{
"busy_sequence" "d1_t02_Plaza_Sit01_Idle"
"entry_sequence" "Idle_to_d1_t01_BreakRoom_Sit01"
"exit_sequence" "d1_t01_BreakRoom_Sit01_to_Idle"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"d1_t02_Plaza_Sit02"
{
"busy_sequence" "d1_t02_Plaza_Sit02"
"entry_sequence" "d1_t01_BreakRoom_Sit02_Entry"
"exit_sequence" "d1_t01_BreakRoom_Sit02_Exit"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"d1_t02_Playground_Cit2_Pockets"
{
"busy_sequence" "d1_t02_Playground_Cit2_Pockets"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t02_Playground_Cit1_Arms_Crossed"
{
"busy_sequence" "d1_t02_Playground_Cit1_Arms_Crossed"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_LookOutDoor"
{
"busy_sequence" "d1_t03_LookOutDoor"
"entry_sequence" "d1_t03_LookOutDoor_Entry"
"exit_sequence" "d1_t03_LookOutDoor_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_LookOutWindow"
{
"busy_sequence" "d1_t03_LookOutWindow"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_Tenements_Look_Out_Window_Idle"
{
"busy_sequence" "d1_t03_Tenements_Look_Out_Window_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t03_PreRaid_Peek_Idle"
{
"busy_sequence" "d1_t03_PreRaid_Peek_Idle"
"exit_sequence" "d1_t03_Preraid_Peek_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_Clutch_Chainlink_Idle"
{
"busy_sequence" "d1_t01_Clutch_Chainlink_Idle"
"entry_sequence" "d1_t01_Clutch_Chainlink_Entry"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_Sit01_Idle"
{
"busy_sequence" "d1_t01_BreakRoom_Sit01_Idle"
"entry_sequence" "Idle_to_d1_t01_BreakRoom_Sit01"
"exit_sequence" "d1_t01_BreakRoom_Sit01_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_Sit02"
{
"busy_sequence" "d1_t01_BreakRoom_Sit02"
"entry_sequence" "d1_t01_BreakRoom_Sit02_Entry"
"exit_sequence" "d1_t01_BreakRoom_Sit02_Exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_None"
}
"d1_t01_BreakRoom_WatchClock_Sit"
{
"busy_sequence" "d1_t01_BreakRoom_WatchClock_Sit"
"entry_sequence" "d1_t01_BreakRoom_WatchClock_Sit_Entry"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"d1_t01_BreakRoom_WatchClock_Sit_MX"
{
"busy_sequence" "d1_t01_BreakRoom_WatchClock_Sit_MX"
"entry_sequence" "d1_t01_BreakRoom_WatchClock_Sit_Entry_MX"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_LEAN_LEFT"
{
"busy_anim" "ACT_BUSY_LEAN_LEFT"
"entry_anim" "ACT_BUSY_LEAN_LEFT_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_LEFT_EXIT"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_PLAYER"
}
"Lean_Left"
{
"busy_sequence" "Lean_Left"
"entry_anim" "ACT_BUSY_LEAN_LEFT_ENTRY"
"exit_sequence" "photo_react_startle"
"min_time" "0"
"max_time" "0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_LEAN_BACK"
{
"busy_anim" "ACT_BUSY_LEAN_BACK"
"entry_anim" "ACT_BUSY_LEAN_BACK_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_BACK_EXIT"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_PLAYER"
}
"lean_back"
{
"busy_sequence" "lean_back"
"entry_anim" "ACT_BUSY_LEAN_BACK_ENTRY"
"exit_anim" "ACT_BUSY_LEAN_BACK_EXIT"
"min_time" "0"
"max_time" "0"
"interrupts" "BA_INT_NONE"
}
"ACT_BUSY_SIT_GROUND"
{
"busy_anim" "ACT_BUSY_SIT_GROUND"
"entry_anim" "ACT_BUSY_SIT_GROUND_ENTRY"
"exit_anim" "ACT_BUSY_SIT_GROUND_EXIT"
"min_time" "20.0"
"max_time" "30.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_SIT_CHAIR"
{
"busy_anim" "ACT_BUSY_SIT_CHAIR"
"entry_anim" "ACT_BUSY_SIT_CHAIR_ENTRY"
"exit_anim" "ACT_BUSY_SIT_CHAIR_EXIT"
"min_time" "30.0"
"max_time" "40.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_STAND"
{
"busy_anim" "ACT_BUSY_STAND"
"min_time" "10.0"
"max_time" "20.0"
"interrupts" "BA_INT_DANGER"
}
"ACT_BUSY_QUEUE"
{
"busy_anim" "ACT_BUSY_QUEUE"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"food_queue_front"
{
"busy_sequence" "lineIdle01"
"exit_sequence" "takepackage"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouchfeet1"
{ "busy_sequence" "sitcouchfeet1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouchknees1"
{ "busy_sequence" "sitcouchknees1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitchairtable1"
{ "busy_sequence" "sitchairtable1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitcouch1"
{ "busy_sequence" "sitcouch1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"sitccouchtv1"
{ "busy_sequence" "sitccouchtv1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"laycouch1"
{ "busy_sequence" "laycouch1"
"exit_sequence" "laycouch1_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"laycouch1"
{
"busy_sequence" "laycouch1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Sit_Chair02"
{
"busy_sequence" "Sit_Chair02"
"entry_sequence" "Idle_to_Sit_Chair02"
"exit_sequence" "Sit_Chair02_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Sit_Chair03"
{
"busy_sequence" "Sit_Chair03"
"entry_sequence" "Idle_to_Sit_Chair03"
"exit_sequence" "Sit_Chair03_to_Idle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"drinker_sit_idle"
{
"busy_sequence" "drinker_sit_idle"
"entry_sequence" "drinker_sit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"drinker_sit_idle_ss"
{
"busy_sequence" "drinker_sit_idle_ss"
"entry_sequence" "drinker_sit_ss"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"railing_idle"
{
"busy_sequence" "railing_idle"
//"entry_sequence" "railing_enter"
"exit_sequence" "railing_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"D1_C01a_Mary_kneel"
{
"busy_sequence" "canals_mary_postidle"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"D1_C03_Matt_sitground"
{
"busy_anim" "ACT_BUSY_SIT_GROUND"
"entry_anim" "ACT_BUSY_SIT_GROUND_ENTRY"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Cover_R"
{
"busy_sequence" "Cover_R"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Cover_L"
{
"busy_sequence" "Cover_L"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Coverlow_R"
{
"busy_sequence" "Coverlow_R"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
"Coverlow_L"
{
"busy_sequence" "Coverlow_L"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_NONE"
}
//*****************************************************************************
//************ Soldier actbusy section *************************************
//*****************************************************************************
"Cover_crouch"
{
"busy_sequence" "crouchidle_AB"
"exit_sequence" "crouch_to_combat_stand"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Cover_crouch_B"
{
"busy_sequence" "crouchidle_AB"
"exit_sequence" "crouchidle_ABexit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Signal_group"
{
"busy_sequence" "signal_group"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Idle_Alert"
{
"busy_sequence" "CombatIdle1"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"Signal_Advance"
{
"busy_sequence" "CombatIdle1"
"exit_sequence" "signal_advance"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Right"
{
"busy_sequence" "leanwall_right_idle"
"exit_sequence" "leanwall_right_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Corner_Right"
{
"busy_sequence" "leanwall_Corner_right_idle"
"exit_sequence" "leanwall_Corner_right_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Left"
{
"busy_sequence" "leanwall_left_idle"
"exit_sequence" "leanwall_left_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_Left_B"
{
"busy_sequence" "leanwall_left_b_idle"
"exit_sequence" "leanwall_left_b_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_A"
{
"busy_sequence" "leanwall_CrouchLeft_A_idle"
"exit_sequence" "leanwall_CrouchLeft_A_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_B"
{
"busy_sequence" "leanwall_CrouchLeft_B_idle"
"exit_sequence" "leanwall_CrouchLeft_B_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_C"
{
"busy_sequence" "leanwall_CrouchLeft_C_idle"
"exit_sequence" "leanwall_CrouchLeft_C_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
"LeanWall_CrouchLeft_D"
{
"busy_sequence" "leanwall_CrouchLeft_D_idle"
"exit_sequence" "leanwall_CrouchLeft_D_exit"
"min_time" "0.0"
"max_time" "0.0"
"interrupts" "BA_INT_AMBUSH"
}
//*****************************************************************************
//************ Metrocop actbusy section ************************************
//*****************************************************************************
"Crouch_idle_pistol_A"
{
"busy_sequence" "Crouch_idle_pistol"
"exit_sequence" "Crouch_to_shootpistol"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
"Crouch_idle_smg1_A"
{
"busy_sequence" "Crouch_idle_smg1"
"exit_sequence" "Crouch_to_shootsmg1"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
"Idle_harrassidle_A"
{
"busy_sequence" "harrassidle"
"min_time" "1.0"
"max_time" "0.0"
"interrupts" "BA_INT_COMBAT"
}
}

View File

@@ -0,0 +1,314 @@
//Adrian: This file contains the credits info for both the Intro and outro.
"credits.txt"
{
//========================================================
//These are the names used in the intro (trainride)
//========================================================
"IntroCreditsNames"
{
"V" "WeaponIcons"
" " "CreditsText"
" " "CreditsText"
"Viktor Antonov" "CreditsText"
"Ted Backman" "CreditsText"
"Kelly Bailey" "CreditsText"
"Jeff Ballinger" "CreditsText"
"Matt Bamberger" "CreditsText"
"Aaron Barber" "CreditsText"
"Yahn Bernier" "CreditsText"
"Ken Birdwell" "CreditsText"
"Derrick Birum" "CreditsText"
"Chris Bokitch" "CreditsText"
"Steve Bond" "CreditsText"
"Matt Boone" "CreditsText"
"Charlie Brown" "CreditsText"
"Julie Caldwell" "CreditsText"
"Dario Casali" "CreditsText"
"Yvan Charpentier" "CreditsText"
"Jess Cliffe" "CreditsText"
"John Cook" "CreditsText"
"Greg Coomer" "CreditsText"
"Kellie Cosner" "CreditsText"
"Scott Dalton" "CreditsText"
"Kerry Davis" "CreditsText"
"Jason Deakins" "CreditsText"
"Ariel Diaz" "CreditsText"
"Quintin Doroquez" "CreditsText"
"Martha Draves" "CreditsText"
"Laura Dubuk" "CreditsText"
"Mike Dunkle" "CreditsText"
"Mike Dussault" "CreditsText"
"Rick Ellis" "CreditsText"
"Dhabih Eng" "CreditsText"
"Miles Estes" "CreditsText"
"Adrian Finol" "CreditsText"
"Bill Fletcher" "CreditsText"
"Moby Francke" "CreditsText"
"Pat Goodwin" "CreditsText"
"Chris Green" "CreditsText"
"Chris Grinstead" "CreditsText"
"John Guthrie" "CreditsText"
"Leslie Hall" "CreditsText"
"Damarcus Holbrook" "CreditsText"
"Tim Holt" "CreditsText"
"Brian Jacobson" "CreditsText"
"Erik Johnson" "CreditsText"
"Jakob Jungels" "CreditsText"
"Iikka Keranen" "CreditsText"
"Eric Kirchmer" "CreditsText"
"Marc Laidlaw" "CreditsText"
"Jeff Lane" "CreditsText"
"Tom Leonard" "CreditsText"
"Doug Lombardi" "CreditsText"
"Randy Lundeen" "CreditsText"
"Scott Lynch" "CreditsText"
"Ido Magal" "CreditsText"
"Gary McTaggart" "CreditsText"
"John Morello II" "CreditsText"
"Bryn Moslow" "CreditsText"
"Gabe Newell" "CreditsText"
"Tri Nguyen" "CreditsText"
"Jake Nicholson" "CreditsText"
"Martin Otten" "CreditsText"
"Kristen Perry" "CreditsText"
"Bay Raitt" "CreditsText"
"Alfred Reynolds" "CreditsText"
"Dave Riller" "CreditsText"
"Danika Rogers" "CreditsText"
"David Sawyer" "CreditsText"
"Aaron Seeler" "CreditsText"
"Nick Shaffner" "CreditsText"
"Taylor Sherman" "CreditsText"
"Eric Smith" "CreditsText"
"David Speyrer" "CreditsText"
"Jay Stelly" "CreditsText"
"Jeremy Stone" "CreditsText"
"Mikel Thompson" "CreditsText"
"Kelly Thornton" "CreditsText"
"Carl Uhlman" "CreditsText"
"Bill Van Buren" "CreditsText"
"KayLee Vogt" "CreditsText"
"Robin Walker" "CreditsText"
"Josh Weier" "CreditsText"
"Doug Wood" "CreditsText"
"Matt T Wood" "CreditsText"
"Matt Wright" "CreditsText"
}
"CreditsParams"
{
"logo" "HALF-LIFE'"
"fadeintime" "2.5"
"fadeouttime" "1"
"fadeholdtime" "1.0"
"nextfadetime" "1.0"
"pausebetweenwaves" "1.0"
"logotime" "1.0"
"posx" "96"
"posy" "360"
"color" "255 255 255 128"
//Outro Parameters
"scrolltime" "158"
"separation" "10"
}
//========================================================
//These are the names used in the outro (breen_01)
//========================================================
"OutroCreditsNames"
{
"HALF-LIFE'" "CreditsOutroLogos"
" " "CreditsOutroText"
"V" "CreditsOutroLogos"
" " "CreditsOutroText"
"Viktor Antonov" "CreditsOutroText"
"Ted Backman" "CreditsOutroText"
"Kelly Bailey" "CreditsOutroText"
"Jeff Ballinger" "CreditsOutroText"
"Matt Bamberger" "CreditsOutroText"
"Aaron Barber" "CreditsOutroText"
"Yahn Bernier" "CreditsOutroText"
"Ken Birdwell" "CreditsOutroText"
"Derrick Birum" "CreditsOutroText"
"Chris Bokitch" "CreditsOutroText"
"Steve Bond" "CreditsOutroText"
"Matt Boone" "CreditsOutroText"
"Charlie Brown" "CreditsOutroText"
"Julie Caldwell" "CreditsOutroText"
"Dario Casali" "CreditsOutroText"
"Yvan Charpentier" "CreditsOutroText"
"Jess Cliffe" "CreditsOutroText"
"John Cook" "CreditsOutroText"
"Greg Coomer" "CreditsOutroText"
"Kellie Cosner" "CreditsOutroText"
"Scott Dalton" "CreditsOutroText"
"Kerry Davis" "CreditsOutroText"
"Jason Deakins" "CreditsOutroText"
"Ariel Diaz" "CreditsOutroText"
"Quintin Doroquez" "CreditsOutroText"
"Martha Draves" "CreditsOutroText"
"Laura Dubuk" "CreditsOutroText"
"Mike Dunkle" "CreditsOutroText"
"Mike Dussault" "CreditsOutroText"
"Rick Ellis" "CreditsOutroText"
"Dhabih Eng" "CreditsOutroText"
"Miles Estes" "CreditsOutroText"
"Adrian Finol" "CreditsOutroText"
"Bill Fletcher" "CreditsOutroText"
"Moby Francke" "CreditsOutroText"
"Pat Goodwin" "CreditsOutroText"
"Chris Green" "CreditsOutroText"
"Chris Grinstead" "CreditsOutroText"
"John Guthrie" "CreditsOutroText"
"Leslie Hall" "CreditsOutroText"
"Damarcus Holbrook" "CreditsOutroText"
"Tim Holt" "CreditsOutroText"
"Brian Jacobson" "CreditsOutroText"
"Erik Johnson" "CreditsOutroText"
"Jakob Jungels" "CreditsOutroText"
"Iikka Keranen" "CreditsOutroText"
"Eric Kirchmer" "CreditsOutroText"
"Marc Laidlaw" "CreditsOutroText"
"Jeff Lane" "CreditsOutroText"
"Tom Leonard" "CreditsOutroText"
"Doug Lombardi" "CreditsOutroText"
"Randy Lundeen" "CreditsOutroText"
"Scott Lynch" "CreditsOutroText"
"Ido Magal" "CreditsOutroText"
"Gary McTaggart" "CreditsOutroText"
"John Morello II" "CreditsOutroText"
"Bryn Moslow" "CreditsOutroText"
"Gabe Newell" "CreditsOutroText"
"Tri Nguyen" "CreditsOutroText"
"Jake Nicholson" "CreditsOutroText"
"Martin Otten" "CreditsOutroText"
"Kristen Perry" "CreditsOutroText"
"Bay Raitt" "CreditsOutroText"
"Alfred Reynolds" "CreditsOutroText"
"Dave Riller" "CreditsOutroText"
"Danika Rogers" "CreditsOutroText"
"David Sawyer" "CreditsOutroText"
"Aaron Seeler" "CreditsOutroText"
"Nick Shaffner" "CreditsOutroText"
"Taylor Sherman" "CreditsOutroText"
"Eric Smith" "CreditsOutroText"
"David Speyrer" "CreditsOutroText"
"Jay Stelly" "CreditsOutroText"
"Jeremy Stone" "CreditsOutroText"
"Mikel Thompson" "CreditsOutroText"
"Kelly Thornton" "CreditsOutroText"
"Carl Uhlman" "CreditsOutroText"
"Bill Van Buren" "CreditsOutroText"
"KayLee Vogt" "CreditsOutroText"
"Robin Walker" "CreditsOutroText"
"Josh Weier" "CreditsOutroText"
"Doug Wood" "CreditsOutroText"
"Matt T. Wood" "CreditsOutroText"
"Matt Wright" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voices:" "CreditsOutroText"
"Robert Guillaume - Dr. Eli Vance" "CreditsOutroText"
"Robert Culp - Dr. Wallace Breen" "CreditsOutroText"
"Lou Gossett, Jr. - Vortigaunt" "CreditsOutroText"
"Michelle Forbes - Dr. Judith Mossman" "CreditsOutroText"
"Merle Dandridge - Alyx Vance" "CreditsOutroText"
"Mike Shapiro - Barney Calhoun" "CreditsOutroText"
"Mike Shapiro - Gman" "CreditsOutroText"
"Harry S. Robins - Dr. Isaac Kleiner" "CreditsOutroText"
"Jim French - Father Grigori" "CreditsOutroText"
"John Patrick Lowrie - Citizens\Misc. characters" "CreditsOutroText"
"Mary Kae Irvin - Citizens\Misc. characters" "CreditsOutroText"
"Ellen McLain - Overwatch" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice Casting:" "CreditsOutroText"
"Shana Landsburg\Teri Fiddleman" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice Recording:" "CreditsOutroText"
"Pure Audio, Seattle, WA" "CreditsOutroText"
"LA Studios, LA, CA" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Voice recording scheduling and logistics:" "CreditsOutroText"
"Pat Cockburn, Pure Audio" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Translations:" "CreditsOutroText"
"SDL" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Crack Legal Team:" "CreditsOutroText"
"Liam Lavery" "CreditsOutroText"
"Jason Holtman" "CreditsOutroText"
"Karl Quackenbush" "CreditsOutroText"
"Kristen Boraas" "CreditsOutroText"
"Kevin Rosenfield" "CreditsOutroText"
"Alan Bruggeman" "CreditsOutroText"
"Dennis Tessier" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Thanks to the following for the use of their faces:" "CreditsOutroText"
"Jamil Mullen" "CreditsOutroText"
"Art Min" "CreditsOutroText"
"Larry 'The Count' Heard" "CreditsOutroText"
"Ted Cohrt" "CreditsOutroText"
"Roger Guay" "CreditsOutroText"
"Frank Sheldon" "CreditsOutroText"
"Travis Dunlop" "CreditsOutroText"
"Daniel Dociu" "CreditsOutroText"
"Van Crowder" "CreditsOutroText"
"Joey Paresa" "CreditsOutroText"
"Chau Luu" "CreditsOutroText"
"Kim Harris-Jones" "CreditsOutroText"
"Michael S. Smith" "CreditsOutroText"
"Joe Cairo" "CreditsOutroText"
"Naomi Cotton" "CreditsOutroText"
"Sandro Consi" "CreditsOutroText"
"Lakeetra Gilbert" "CreditsOutroText"
"Erdin Grcic" "CreditsOutroText"
"Kanisha Speyrer" "CreditsOutroText"
"Warren Slough" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"Special thanks to everyone at:" "CreditsOutroText"
"Alienware" "CreditsOutroText"
"ATI" "CreditsOutroText"
"Dell" "CreditsOutroText"
"Falcon Northwest" "CreditsOutroText"
"Havok" "CreditsOutroText"
"SOFTIMAGE" "CreditsOutroText"
"and Don Kemmis, SLK Technologies" "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
" " "CreditsOutroText"
"v" "CreditsOutroText"
}
}

View File

@@ -0,0 +1,124 @@
"sprites/640_hud"
{
TextureData
{
"arrow" [$WIN32]
{
"file" "sprites/arrow"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"autoaim_c" [$WIN32]
{
"file" "sprites/crosshairs"
"x" "96"
"y" "0"
"width" "24"
"height" "24"
}
"item_battery" [$WIN32]
{
"font" "WeaponIcons"
"character" "*"
}
"item_healthkit" [$WIN32]
{
"font" "WeaponIcons"
"character" "+"
}
"crosshair"
{
"file" "sprites/qi_center"
"x" "0"
"y" "0"
"width" "40"
"height" "40"
}
"crosshair_left"
{
"font" "QuickInfo"
"character" "("
}
"crosshair_right"
{
"font" "QuickInfo"
"character" ")"
}
"crosshair_left_full"
{
"font" "QuickInfo"
"character" "["
}
"crosshair_right_full"
{
"font" "QuickInfo"
"character" "]"
}
"crosshair_left_empty"
{
"font" "QuickInfo"
"character" "{"
}
"crosshair_right_empty"
{
"font" "QuickInfo"
"character" "}"
}
"crosshair_default"
{
"file" "sprites/crosshairs"
"x" "0"
"y" "48"
"width" "24"
"height" "24"
}
"crosshair_xbox"
{
"file" "vgui/hud/xbox_reticle"
"x" "0"
"y" "0"
"width" "64"
"height" "64"
}
"viewhair"
{
"file" "sprites/hud/v_crosshair2"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"gunhair"
{
"file" "sprites/hud/v_crosshair1"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"plushair"
{
"font" "Crosshairs"
"character" "Q"
}
"ico_friend_indicator"
{
"file" "vgui/ico_friend_indicator_alone"
"x" "0"
"y" "0"
"width" "32"
"height" "32"
}
"ico_friend_indicator_avatar"
{
"file" "vgui/ico_friend_indicator_scoreboard"
"x" "-1"
"y" "-1"
"width" "57"
"height" "36"
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,491 @@
// "prop data name"
// {
// "property" "value"
// ...
// }
//
//
// "base" : Specify a base propdata class to derive from (base types can be found in propdata.txt)
//
// "blockLOS" : Override whether this prop should block NPC's Line-Of-Sight.
// "AIWalkable" : Override whether AI should consider this prop as walkable on.
// "dmg.bullets" : Mod damage done by bullets to this prop.
// "dmg.club" : Mod damage done by clubs to this prop.
// "dmg.explosive" : Mod damage done by explosives to this prop.
// NOTE: Use damage modifiers to reflect differences between the amount of
// damage that an object takes from different damage types. Don't
// use them to reflect overall damage strength. i.e. Stone is resilient
// to everything. To reflect this, increase the health of all stone
// objects, don't set the damage modifiers lower.
//
// "damage_table" : Specify a custom physics impact damage table for this prop.
// "health" : Amount of damage this prop should take before breaking.
//
// "explosive_damage" : Explosive damage done by this prop.
// "explosive_radius" : Radius of the explosion caused by this prop when it breaks.
// NOTE: If these two fields are specified for a prop, then the prop will automatically
// create an explosion with the specified values when the prop is broken.
//
// "breakable_model" : The type of breakable gibs this prop should break into. This list is at the bottom of this file.
// "breakable_count" : The number of breakable gibs to break into.
// "allowstatic" : Allow this prop to be static as well as physically simulated.
//
//
"PropData.txt"
{
//=================================================================================
// PAPER
//=================================================================================
// Base damage modifiers for paper objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Cardboard.Base"
{
"dmg.bullets" "0.5"
"dmg.club" "1.25"
"dmg.explosive" "1.5"
}
// Cardboard / Paper blocks, less than 1 foot cubed.
// i.e. small cardboard boxes, notepads, newspapers, thin books.
"Cardboard.Small"
{
"base" "Cardboard.Base"
"health" "10"
}
// Cardboard / Paper blocks, less than 3 foot cubed.
// i.e. cardboard boxes. thick books
"Cardboard.Medium"
{
"base" "Cardboard.Base"
"health" "20"
}
// Large Cardboard / Paper blocks
// i.e. solid cardboard boxes
"Cardboard.Large"
{
"base" "Cardboard.Base"
"health" "40"
}
//=================================================================================
// CLOTH
//=================================================================================
// Base damage modifiers for cloth objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Cloth.Base"
{
"dmg.bullets" "0.5"
"dmg.club" "0.75"
"dmg.explosive" "1.5"
}
// Small / thin cloth objects
// i.e. shorts, shirts, pants.
"Cloth.Small"
{
"base" "Cloth.Base"
"health" "30"
}
// Heavier cloth / leather objects
// i.e. briefcases
"Cloth.Medium"
{
"base" "Cloth.Base"
"health" "50"
}
// Large / thick cloth objects
// i.e. armchairs, mattresses
"Cloth.Large"
{
"base" "Cloth.Base"
"health" "100"
}
//=================================================================================
// WOOD
//=================================================================================
// Base damage modifiers for wooden objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Wooden.Base"
{
"dmg.bullets" "0.75"
"dmg.club" "2.0"
"dmg.explosive" "1.5"
"breakable_model" "WoodChunks"
"breakable_skin" "0"
}
// Tiny Wooden pieces that should die in one hit
// i.e splinters
"Wooden.Tiny"
{
"base" "Wooden.Base"
"health" "6"
"breakable_count" "0"
}
// Wooden blocks, less than 1 foot cubed.
// i.e pieces of board, branches.
"Wooden.Small"
{
"base" "Wooden.Base"
"health" "20"
"breakable_count" "2"
}
// Wooden blocks, less than 3 foot cubed.
// i.e boards, small crates, pallettes, ladders, chairs.
"Wooden.Medium"
{
"base" "Wooden.Base"
"health" "30"
"breakable_count" "4"
}
// Large wooden blocks, less than 5 foot cubed.
// i.e Crates, benches.
"Wooden.Large"
{
"base" "Wooden.Base"
"health" "50"
"breakable_count" "6"
}
// Extra large wooden objects
// i.e posts
"Wooden.ExtraLarge"
{
"base" "Wooden.Base"
"health" "100"
"breakable_count" "8"
}
// Huge wooden objects.
// i.e Big Wardrobes, bookcases
"Wooden.Huge"
{
"base" "Wooden.Base"
"health" "130"
"breakable_count" "10"
}
//=================================================================================
// STONE
//=================================================================================
// Base damage modifiers for stone objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Stone.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
}
// Stone blocks, less than 1 foot cubed
// i.e. cinderblocks, small rocks.
"Stone.Small"
{
"base" "Stone.Base"
"health" "50"
}
// Medium stone blocks, less than 3 foot cubed
// i.e. rubble chunks
"Stone.Medium"
{
"base" "Stone.Base"
"health" "100"
}
// Large stone blocks, less than 5 foot cubed
// i.e. big rubble chunks
"Stone.Large"
{
"base" "Stone.Base"
"health" "200"
}
// Huge stone blocks, less than 5 foot cubed
// i.e. enormous rubble chunks
"Stone.Huge"
{
"base" "Stone.Base"
"health" "400"
}
//=================================================================================
// GLASS
//=================================================================================
// Base damage modifiers for glass objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Glass.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "0.1" // Trial: Get knocked around more than destroyed?
}
// Glass blocks, less than 1 foot cubed
// i.e. bottles, jugs, glasses.
"Glass.Small"
{
"base" "Glass.Base"
"health" "5"
"damage_table" "glass"
}
"Glass.Window"
{
"base" "Glass.Base"
"dmg.explosive" "1.0" // Override base glass explosive behavior
"dmg.bullets" "0.5"
"health" "15"
"damage_table" "glass"
}
//=================================================================================
// METAL
//=================================================================================
// Base damage modifiers for metal objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Metal.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0" // By default, metal objects aren't breakable
}
// Small metal blocks, less than 1 foot cubed
// i.e. tin cans, paint tins, metal buckets.
"Metal.Small"
{
"base" "Metal.Base"
}
// Medium metal objects.
// i.e. wheelbarrows, metal boxes, bicycles, barrels, ladders, filing cabinets.
"Metal.Medium"
{
"base" "Metal.Base"
}
// Large metal objects.
// i.e. ibeams, dumpsters, car bodies, refridgerators
"Metal.Large"
{
"base" "Metal.Base"
}
//=================================================================================
// PLASTIC
//=================================================================================
// Base damage modifiers for plastic objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Plastic.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0"
}
// Plastic blocks, less than 2 foot cubed
// i.e. plastic cups, plastic milk crates, phones
"Plastic.Small"
{
"base" "Plastic.Base"
}
// Plastic blocks, less than 4 foot cubed
// i.e. plastic chairs, tables, barrels
"Plastic.Medium"
{
"base" "Plastic.Base"
}
// Large Plastic objects, or medium objects with mixes of plastic & metal that you still want destructable
// i.e. computer equipment
"Plastic.Large"
{
"base" "Plastic.Base"
}
//=================================================================================
// ITEMS
//=================================================================================
// Base damage modifiers for items
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Item.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.0"
"dmg.explosive" "1.0"
"health" "0" // By default, metal objects aren't breakable
}
// Plastic blocks, less than 2 foot cubed
// i.e. plastic cups, plastic milk crates, phones
"Item.Small"
{
"base" "Item.Base"
}
// Plastic blocks, less than 4 foot cubed
// i.e. plastic chairs, tables, barrels
"Item.Medium"
{
"base" "Item.Base"
}
// Large Plastic objects, or medium objects with mixes of plastic & metal that you still want destructable
// i.e. computer equipment
"Item.Large"
{
"base" "Item.Base"
}
//=================================================================================
// POTTERY
//=================================================================================
// Base damage modifiers for pottery objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Pottery.Base"
{
"dmg.bullets" "1.0"
"dmg.club" "1.25"
"dmg.explosive" "1.5"
}
// Pottery blocks, less than 2 foot cubed
// i.e. flowerpots.
"Pottery.Small"
{
"base" "Pottery.Base"
"health" "5"
"damage_table" "glass"
}
// Medium pottery objects
// i.e. large flowerpots.
"Pottery.Medium"
{
"base" "Pottery.Base"
"health" "40"
}
// Large pottery objects
// i.e. big chunks of wall plaster
"Pottery.Large"
{
"base" "Pottery.Base"
"health" "70"
}
// Huge pottery objects.
// i.e. big ornate pottery vessels.
"Pottery.Huge"
{
"base" "Pottery.Base"
"health" "100"
}
//=================================================================================
// FLESH
//=================================================================================
// Base damage modifiers for flesh objects
// DON'T USE THIS FOR A PROP. USE THE NON.BASE ONES.
"Flesh.Base"
{
"dmg.bullets" "1.25"
"dmg.club" "1.0"
"dmg.explosive" "1.5"
}
// Flesh blocks that should die in a single hit
// i.e. fruit, food items, gibs.
"Flesh.Tiny"
{
"base" "Flesh.Base"
"health" "3"
}
// Flesh blocks, less than 1 foot cubed
// i.e. fruit, food items, gibs.
"Flesh.Small"
{
"base" "Flesh.Base"
"health" "10"
}
//=================================================================================
// BREAKABLE DATA. NOT PROPDATA TYPES.
//=================================================================================
"BreakableModels"
{
// Sorted in order of smallest to largest
"WoodChunks"
{
"models\Gibs\wood_gib01e.mdl" "1"
"models\Gibs\wood_gib01d.mdl" "1"
"models\Gibs\wood_gib01c.mdl" "1"
"models\Gibs\wood_gib01b.mdl" "1"
"models\Gibs\wood_gib01a.mdl" "1"
}
"GlassChunks"
{
"models\Gibs\Glass_shard01.mdl" "1"
"models\Gibs\Glass_shard02.mdl" "1"
"models\Gibs\Glass_shard03.mdl" "1"
"models\Gibs\Glass_shard04.mdl" "1"
"models\Gibs\Glass_shard05.mdl" "1"
"models\Gibs\Glass_shard06.mdl" "1"
}
"ConcreteChunks"
{
"models\props_debris\concrete_chunk08a.mdl" "1"
"models\props_debris\concrete_chunk09a.mdl" "1"
"models\props_debris\concrete_chunk03a.mdl" "1"
"models\props_debris\concrete_chunk07a.mdl" "1"
"models\props_debris\concrete_chunk09a.mdl" "1"
"models\props_debris\concrete_chunk02a.mdl" "1"
}
"MetalChunks"
{
"models\Gibs\metal_gib1.mdl" "1"
"models\Gibs\metal_gib2.mdl" "1"
"models\Gibs\metal_gib3.mdl" "1"
"models\Gibs\metal_gib4.mdl" "1"
"models\Gibs\metal_gib5.mdl" "1"
}
}
}

View File

@@ -0,0 +1,16 @@
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"
}

View File

@@ -0,0 +1,17 @@
// Override this file in your mod directory so you can load the base HL2 file as well
// as new properties.
// NOTE: Listing a property twice (e.g. in separate files) means that
// the values in the second definition will override the first definition
// NOTE: Each file must have a unique name. The physics system does not understand mods and will not
// parse the same file (compared by name) twice.
surfaceproperties_manifest
{
"file" "scripts/surfaceproperties.txt"
// List additional surface property files here:
"file" "scripts/surfaceproperties_hl2.txt"
}

View File

@@ -0,0 +1,120 @@
//============================================================================================================
// Alyx criteria
criterion "IsAlyx" "classname" "npc_alyx" "required"
//============================================================================================================
//============================================================================================================
// Alyx Combat speech
//============================================================================================================
//----------------------------------------------------------------------------
response "AlyxDanger"
{
scene "scenes/npc/Alyx/getback01.vcd"
scene "scenes/npc/Alyx/getback02.vcd"
scene "scenes/npc/Alyx/getdown01.vcd"
scene "scenes/npc/Alyx/watchout01.vcd"
scene "scenes/npc/Alyx/watchout02.vcd"
}
rule AlyxDanger
{
criteria IsAlyx ConceptTalkDanger
response AlyxDanger
}
response AlyxShot
{
scene "scenes/npc/Alyx/gasp02.vcd"
scene "scenes/npc/Alyx/gasp03.vcd"
scene "scenes/npc/Alyx/hurt04.vcd"
scene "scenes/npc/Alyx/hurt05.vcd"
scene "scenes/npc/Alyx/hurt06.vcd"
scene "scenes/npc/Alyx/hurt08.vcd"
scene "scenes/npc/Alyx/uggh01.vcd"
}
rule AlyxShot
{
criteria IsAlyx ConceptShot
response AlyxShot
}
response AlyxEnemyDead
{
scene "scenes/npc/Alyx/brutal02.vcd" respeakdelay 300
}
rule AlyxEnemyDead
{
criteria IsAlyx ConceptEnemyDead
response AlyxEnemyDead
}
response AlyxHideAndReload
{
scene "scenes/npc/Alyx/coverme01.vcd"
scene "scenes/npc/Alyx/coverme02.vcd"
scene "scenes/npc/Alyx/coverme03.vcd"
}
rule AlyxHideAndReload
{
criteria IsAlyx ConceptHideAndReload PlayerNear
response AlyxHideAndReload
}
response AlyxTalkPlayerPushed
{
scene "scenes/npc/Alyx/excuseme01.vcd"
scene "scenes/npc/Alyx/excuseme02.vcd"
scene "scenes/npc/Alyx/excuseme03.vcd"
}
rule AlyxTalkPlayerPushed
{
criteria IsAlyx ConceptTalkPlayerPushed SeenByPlayer NoRecentCombat
response AlyxTalkPlayerPushed
}
response AlyxPlayerReload
{
scene "scenes/npc/Alyx/youreload01.vcd"
scene "scenes/npc/Alyx/youreload02.vcd"
}
rule AlyxPlayerReload
{
criteria ConceptPlayerReload IsAlyx PlayerNear SeePlayer
response AlyxPlayerReload
}
response AlyxWatchOut
{
scene "scenes/npc/Alyx/lookout01.vcd"
scene "scenes/npc/Alyx/lookout03.vcd"
}
rule AlyxWatchOut
{
criteria IsAlyx ConceptTalkWatchout
response AlyxWatchout
}
response AlyxPlayerDead
{
scene "scenes/npc/Alyx/ohno_startle01.vcd"
scene "scenes/npc/Alyx/ohno_startle02.vcd"
scene "scenes/npc/Alyx/ohno_startle03.vcd"
}
rule AlyxPlayerDead
{
criteria IsAlyx ConceptPlayerDead
response AlyxWatchout
matchonce
}
//----------------------------------------------------------------------------
//============================================================================================================

View File

@@ -0,0 +1,915 @@
//============================================================================================================
// Citizen criteria
//============================================================================================================
criterion "IsCitizen" "classname" "npc_citizen" "required"
criterion "IsRPGUser" "attacking_with_weapon" "weapon_rpg" required
criterion "EnemyIsSniper" "enemy" "npc_sniper" required
criterion "EnemyIsStrider" "enemy" "npc_strider" required
criterion "HurtByFire" "hurt_by_fire" "1" required
//============================================================================================================
// Citizen Hello speech
//============================================================================================================
response "CitizenHello"
{
scene "scenes/npc/$gender01/abouttime01.vcd"
scene "scenes/npc/$gender01/abouttime02.vcd"
scene "scenes/npc/$gender01/ahgordon01.vcd"
scene "scenes/npc/$gender01/ahgordon02.vcd"
scene "scenes/npc/$gender01/docfreeman01.vcd"
scene "scenes/npc/$gender01/docfreeman02.vcd"
scene "scenes/npc/$gender01/freeman.vcd"
scene "scenes/npc/$gender01/hellodrfm01.vcd"
scene "scenes/npc/$gender01/hellodrfm02.vcd"
scene "scenes/npc/$gender01/heydoc01.vcd"
scene "scenes/npc/$gender01/heydoc02.vcd"
scene "scenes/npc/$gender01/hi01.vcd"
scene "scenes/npc/$gender01/hi02.vcd"
}
rule CitizenHello
{
criteria IsCitizen ConceptTalkHello IsGordonCriminal NPCIdle PlayerNear SeePlayer
response CitizenHello
}
//============================================================================================================
// Citizen Idle speech
//============================================================================================================
response "CitizenTalkStare"
{
scene "scenes/npc/$gender01/doingsomething.vcd"
scene "scenes/npc/$gender01/getgoingsoon.vcd"
scene "scenes/npc/$gender01/waitingsomebody.vcd"
}
rule CitizenTalkStare
{
criteria IsCitizen ConceptTalkStare IsGordonCriminal NPCIdle
response CitizenTalkStare
}
//------------------------------------------------------------------------------------------------------------
response "CitizenTalkPlayerPushed"
{
scene "scenes/npc/$gender01/sorryfm01.vcd"
scene "scenes/npc/$gender01/sorryfm02.vcd"
scene "scenes/npc/$gender01/sorrydoc01.vcd"
scene "scenes/npc/$gender01/sorrydoc02.vcd"
scene "scenes/npc/$gender01/sorrydoc04.vcd"
scene "scenes/npc/$gender01/excuseme01.vcd"
scene "scenes/npc/$gender01/excuseme02.vcd"
scene "scenes/npc/$gender01/pardonme01.vcd"
scene "scenes/npc/$gender01/pardonme02.vcd"
scene "scenes/npc/$gender01/sorry01.vcd"
scene "scenes/npc/$gender01/sorry02.vcd"
scene "scenes/npc/$gender01/sorry03.vcd"
scene "scenes/npc/$gender01/outofyourway01.vcd"
scene "scenes/npc/$gender01/outofyourway02.vcd"
scene "scenes/npc/$gender01/whoops01.vcd"
}
rule CitizenTalkPlayerPushed
{
criteria IsCitizen ConceptTalkPlayerPushed SeenByPlayer NoRecentCombat
response CitizenTalkPlayerPushed
}
//============================================================================================================
// Citizen Questions & Responses speech
//============================================================================================================
response "CitizenQuestion"
{
scene "scenes/npc/$gender01/question01.vcd" delay 1
scene "scenes/npc/$gender01/question02.vcd" delay 1
scene "scenes/npc/$gender01/question03.vcd" delay 1
scene "scenes/npc/$gender01/question04.vcd" delay 1
scene "scenes/npc/$gender01/question05.vcd" delay 1
scene "scenes/npc/$gender01/question06.vcd" delay 1
scene "scenes/npc/$gender01/question07.vcd" delay 1
scene "scenes/npc/$gender01/question08.vcd" delay 1
scene "scenes/npc/$gender01/question09.vcd" delay 1
scene "scenes/npc/$gender01/question10.vcd" delay 1
scene "scenes/npc/$gender01/question11.vcd" delay 1
scene "scenes/npc/$gender01/question12.vcd" delay 1
scene "scenes/npc/$gender01/question13.vcd" delay 1
scene "scenes/npc/$gender01/question14.vcd" delay 1
scene "scenes/npc/$gender01/question15.vcd" delay 1
scene "scenes/npc/$gender01/question16.vcd" delay 1
scene "scenes/npc/$gender01/question17.vcd" delay 1
scene "scenes/npc/$gender01/question18.vcd" delay 1
scene "scenes/npc/$gender01/question19.vcd" delay 1
scene "scenes/npc/$gender01/question20.vcd" delay 1
scene "scenes/npc/$gender01/question21.vcd" delay 1
scene "scenes/npc/$gender01/question22.vcd" delay 1
scene "scenes/npc/$gender01/question23.vcd" delay 1
scene "scenes/npc/$gender01/question25.vcd" delay 1
scene "scenes/npc/$gender01/question26.vcd" delay 1
scene "scenes/npc/$gender01/question27.vcd" delay 1
scene "scenes/npc/$gender01/question28.vcd" delay 1
scene "scenes/npc/$gender01/question29.vcd" delay 1
scene "scenes/npc/$gender01/question30.vcd" delay 1
scene "scenes/npc/$gender01/question31.vcd" delay 1
}
rule CitizenQuestion
{
criteria IsCitizen ConceptTalkQuestion IsGordonCriminal PlayerAlive
response CitizenQuestion
}
//------------------------------------------------------------------------------------------------------------
response "CitizenAnswer"
{
scene "scenes/npc/$gender01/answer01.vcd" delay 2
scene "scenes/npc/$gender01/answer02.vcd" delay 2
scene "scenes/npc/$gender01/answer03.vcd" delay 2
scene "scenes/npc/$gender01/answer04.vcd" delay 2
scene "scenes/npc/$gender01/answer05.vcd" delay 2
scene "scenes/npc/$gender01/answer07.vcd" delay 2
scene "scenes/npc/$gender01/answer08.vcd" delay 2
scene "scenes/npc/$gender01/answer09.vcd" delay 2
scene "scenes/npc/$gender01/answer10.vcd" delay 2
scene "scenes/npc/$gender01/answer11.vcd" delay 2
scene "scenes/npc/$gender01/answer12.vcd" delay 2
scene "scenes/npc/$gender01/answer13.vcd" delay 2
scene "scenes/npc/$gender01/answer14.vcd" delay 2
scene "scenes/npc/$gender01/answer15.vcd" delay 2
scene "scenes/npc/$gender01/answer16.vcd" delay 2
scene "scenes/npc/$gender01/answer17.vcd" delay 2
scene "scenes/npc/$gender01/answer18.vcd" delay 2
scene "scenes/npc/$gender01/answer19.vcd" delay 2
scene "scenes/npc/$gender01/answer20.vcd" delay 2
scene "scenes/npc/$gender01/answer21.vcd" delay 2
scene "scenes/npc/$gender01/answer22.vcd" delay 2
scene "scenes/npc/$gender01/answer23.vcd" delay 2
scene "scenes/npc/$gender01/answer24.vcd" delay 2
scene "scenes/npc/$gender01/answer25.vcd" delay 2
scene "scenes/npc/$gender01/answer26.vcd" delay 2
scene "scenes/npc/$gender01/answer27.vcd" delay 2
scene "scenes/npc/$gender01/answer28.vcd" delay 2
scene "scenes/npc/$gender01/answer29.vcd" delay 2
scene "scenes/npc/$gender01/answer30.vcd" delay 2
scene "scenes/npc/$gender01/answer31.vcd" delay 2
scene "scenes/npc/$gender01/answer32.vcd" delay 2
scene "scenes/npc/$gender01/answer33.vcd" delay 2
scene "scenes/npc/$gender01/answer34.vcd" delay 2
scene "scenes/npc/$gender01/answer35.vcd" delay 2
scene "scenes/npc/$gender01/answer36.vcd" delay 2
scene "scenes/npc/$gender01/answer37.vcd" delay 2
scene "scenes/npc/$gender01/answer38.vcd" delay 2
scene "scenes/npc/$gender01/answer39.vcd" delay 2
scene "scenes/npc/$gender01/answer40.vcd" delay 2
}
//---------------------
rule CitizenAnswer
{
criteria IsCitizen ConceptTalkAnswer IsGordonCriminal PlayerAlive
response CitizenAnswer
}
//============================================================================================================
// Citizen Questions & Responses with Vortigaunts in Scene
//============================================================================================================
response "CitizenQuestionVort"
{
scene "scenes/npc/$gender01/vquestion01.vcd" delay 1
scene "scenes/npc/$gender01/vquestion02.vcd" delay 1
scene "scenes/npc/$gender01/vquestion03.vcd" delay 1
scene "scenes/npc/$gender01/vquestion04.vcd" delay 1
scene "scenes/npc/$gender01/vquestion05.vcd" delay 1
scene "scenes/npc/$gender01/vquestion06.vcd" delay 1
scene "scenes/npc/$gender01/vquestion07.vcd" delay 1
}
rule CitizenQuestionVort
{
criteria IsCitizen ConceptTalkQuestionVort IsGordonCriminal NPCIdle PlayerAlive
response CitizenQuestionVort
}
//------------------------------------------------------------------------------------------------------------
response "CitizenAnswerVort"
{
scene "scenes/npc/$gender01/vanswer01.vcd" delay 2
scene "scenes/npc/$gender01/vanswer02.vcd" delay 2
scene "scenes/npc/$gender01/vanswer03.vcd" delay 2
scene "scenes/npc/$gender01/vanswer04.vcd" delay 2
scene "scenes/npc/$gender01/vanswer05.vcd" delay 2
scene "scenes/npc/$gender01/vanswer06.vcd" delay 2
scene "scenes/npc/$gender01/vanswer07.vcd" delay 2
scene "scenes/npc/$gender01/vanswer08.vcd" delay 2
scene "scenes/npc/$gender01/vanswer09.vcd" delay 2
scene "scenes/npc/$gender01/vanswer10.vcd" delay 2
scene "scenes/npc/$gender01/vanswer11.vcd" delay 2
scene "scenes/npc/$gender01/vanswer12.vcd" delay 2
scene "scenes/npc/$gender01/vanswer13.vcd" delay 2
scene "scenes/npc/$gender01/vanswer14.vcd" delay 2
}
rule CitizenAnswerVort
{
criteria IsCitizen ConceptTalkAnswerVort IsGordonCriminal NPCIdle PlayerAlive
response CitizenAnswerVort
}
//============================================================================================================
// Citizen Mourning the player's death
//============================================================================================================
response "CitizenMournQ"
{
scene "scenes/npc/$gender01/gordead_ques01.vcd"
scene "scenes/npc/$gender01/gordead_ques02.vcd"
scene "scenes/npc/$gender01/gordead_ques03a.vcd"
scene "scenes/npc/$gender01/gordead_ques03b.vcd"
scene "scenes/npc/$gender01/gordead_ques04.vcd"
scene "scenes/npc/$gender01/gordead_ques05.vcd"
scene "scenes/npc/$gender01/gordead_ques06.vcd"
scene "scenes/npc/$gender01/gordead_ques07.vcd"
scene "scenes/npc/$gender01/gordead_ques08.vcd"
scene "scenes/npc/$gender01/gordead_ques09.vcd"
scene "scenes/npc/$gender01/gordead_ques10.vcd"
scene "scenes/npc/$gender01/gordead_ques11.vcd"
scene "scenes/npc/$gender01/gordead_ques12.vcd"
scene "scenes/npc/$gender01/gordead_ques13.vcd"
scene "scenes/npc/$gender01/gordead_ques14.vcd"
scene "scenes/npc/$gender01/gordead_ques15.vcd"
scene "scenes/npc/$gender01/gordead_ques16.vcd"
scene "scenes/npc/$gender01/gordead_ques17.vcd"
}
rule CitizenMournQ
{
criteria IsCitizen ConceptTalkQuestion IsGordonCriminal PlayerDead
response CitizenMournQ
matchonce
}
//------------------------------------------------------------------------------------------------------------
response "CitizenMournA"
{
scene "scenes/npc/$gender01/gordead_ans01.vcd"
scene "scenes/npc/$gender01/gordead_ans02.vcd"
scene "scenes/npc/$gender01/gordead_ans03.vcd"
scene "scenes/npc/$gender01/gordead_ans04.vcd"
scene "scenes/npc/$gender01/gordead_ans05.vcd"
scene "scenes/npc/$gender01/gordead_ans06.vcd"
scene "scenes/npc/$gender01/gordead_ans07.vcd"
scene "scenes/npc/$gender01/gordead_ans08.vcd"
scene "scenes/npc/$gender01/gordead_ans09.vcd"
scene "scenes/npc/$gender01/gordead_ans10.vcd"
scene "scenes/npc/$gender01/gordead_ans11.vcd"
scene "scenes/npc/$gender01/gordead_ans12.vcd"
scene "scenes/npc/$gender01/gordead_ans13.vcd"
scene "scenes/npc/$gender01/gordead_ans14.vcd"
scene "scenes/npc/$gender01/gordead_ans15.vcd"
scene "scenes/npc/$gender01/gordead_ans16.vcd"
scene "scenes/npc/$gender01/gordead_ans17.vcd"
scene "scenes/npc/$gender01/gordead_ans18.vcd"
scene "scenes/npc/$gender01/gordead_ans19.vcd"
scene "scenes/npc/$gender01/gordead_ans20.vcd"
}
rule CitizenMournA
{
criteria IsCitizen ConceptTalkAnswer IsGordonCriminal PlayerDead
response CitizenMournA
matchonce
}
response "CitizenMournAll"
{
response CitizenMournQ
response CitizenMournA
}
rule CitizenMourn
{
criteria IsCitizen ConceptPlayerDead IsGordonCriminal PlayerDead
response CitizenMournAll
matchonce
}
//-----------------------------------------
response "CitizenHeal"
{
scene "scenes/npc/$gender01/health01.vcd" delay 1
scene "scenes/npc/$gender01/health02.vcd" delay 1
scene "scenes/npc/$gender01/health03.vcd" delay 1
scene "scenes/npc/$gender01/health04.vcd" delay 1
scene "scenes/npc/$gender01/health05.vcd" delay 1
}
rule CitizenHeal
{
criteria IsCitizen ConceptTalkHeal
response CitizenHeal
}
//---------------------------
response "CitizenGiveAmmo"
{
scene "scenes/npc/$gender01/ammo01.vcd" delay 1
scene "scenes/npc/$gender01/ammo02.vcd" delay 1
scene "scenes/npc/$gender01/ammo03.vcd" delay 1
scene "scenes/npc/$gender01/ammo04.vcd" delay 1
scene "scenes/npc/$gender01/ammo05.vcd" delay 1
}
rule CitizenGiveAmmo
{
criteria IsCitizen ConceptTalkGiveAmmo
response CitizenGiveAmmo
}
//============================================================================================================
// Citizen Combat speech
//============================================================================================================
response "CitizenDanger"
{
permitrepeats
scene "scenes/npc/$gender01/watchout.vcd" weight 1
scene "scenes/npc/$gender01/uhoh.vcd" weight 1.1
scene "scenes/npc/$gender01/lookoutfm01.vcd" weight .9
scene "scenes/npc/$gender01/startle01.vcd" weight 1.1
scene "scenes/npc/$gender01/startle02.vcd" weight 1.1
scene "scenes/npc/$gender01/getdown02.vcd" weight 1
}
rule CitizenDanger
{
criteria IsCitizen ConceptTalkDanger
response CitizenDanger
}
response CitizenDangerBig
{
permitrepeats
scene "scenes/npc/$gender01/strider_run.vcd"
scene "scenes/npc/$gender01/gethellout.vcd"
response CitizenDanger weight 12 // 6 * 2
}
rule CitizenDangerBig
{
criteria IsCitizen ConceptTalkDanger EnemyIsStrider
response CitizenDangerBig
}
response "CitizenMortarDanger"
{
scene "scenes/npc/$gender01/watchout.vcd"
scene "scenes/npc/$gender01/headsup01.vcd"
scene "scenes/npc/$gender01/getdown02.vcd"
scene "scenes/npc/$gender01/headsup02.vcd"
scene "scenes/npc/$gender01/incoming02.vcd"
scene "scenes/npc/$gender01/takecover02.vcd"
}
rule CitizenMortarDanger
{
criteria IsCitizen ConceptTalkDanger EnemyIsMortar
response CitizenMortarDanger
}
response "CitizenSniperDanger"
{
scene "scenes/npc/$gender01/uhoh.vcd"
scene "scenes/npc/$gender01/startle01.vcd"
scene "scenes/npc/$gender01/startle02.vcd"
scene "scenes/npc/$gender01/getdown02.vcd"
}
rule CitizenSniperDanger
{
criteria IsCitizen ConceptTalkDanger EnemyIsSniper
response CitizenSniperDanger
}
//============================================================================================================
// Citizen Reloads Weapon
//============================================================================================================
response "CitizenHideAndReload"
{
scene "scenes/npc/$gender01/coverwhilereload01.vcd"
scene "scenes/npc/$gender01/coverwhilereload02.vcd"
scene "scenes/npc/$gender01/gottareload01.vcd"
// print "Gotta reload!"
}
rule CitizenHideAndReload
{
criteria IsCitizen ConceptHideAndReload
response CitizenHideAndReload
}
//============================================================================================================
// Citizen Reminds Player to Reload
//============================================================================================================
response "CitizenPlayerReload"
{
scene "scenes/npc/$gender01/dontforgetreload01.vcd"
scene "scenes/npc/$gender01/reloadfm01.vcd"
scene "scenes/npc/$gender01/reloadfm02.vcd"
scene "scenes/npc/$gender01/youdbetterreload01.vcd"
// print "You better reload, Doc."
}
rule CitizenPlayerReload
{
criteria ConceptPlayerReload IsCitizen PlayerNear SeePlayer
response CitizenPlayerReload
}
//------------------------------------------------------------------------------------------------------------
response "CitizenNewWeapon"
{
scene "scenes/npc/$gender01/nice.vcd"
scene "scenes/npc/$gender01/nice01.vcd"
scene "scenes/npc/$gender01/nice02.vcd"
scene "scenes/npc/$gender01/thislldonicely.vcd"
scene "scenes/npc/$gender01/yeah01.vcd"
scene "scenes/npc/$gender01/fantastic01.vcd"
scene "scenes/npc/$gender01/fantastic02.vcd"
scene "scenes/npc/$gender01/finally.vcd"
scene "scenes/npc/$gender01/oneforme.vcd"
scene "scenes/npc/$gender01/evenodds.vcd"
}
rule CitizenNewWeapon
{
criteria IsCitizen ConceptNewWeapon
response CitizenNewWeapon
}
//------------------------------------------------------------------------------------------------------------
response CitizenOuch
{
permitrepeats
scene "scenes/npc/$gender01/ow01.vcd"
scene "scenes/npc/$gender01/ow02.vcd"
speak npc_citizen.die weight 9 // there are nine waves in there
}
//------------------------------------------------------------------------------------------------------------
response CitizenMortalWound
{
scene "scenes/npc/$gender01/imhurt01.vcd"
scene "scenes/npc/$gender01/imhurt02.vcd"
}
rule CitizenMortalWound
{
criteria IsCitizen ConceptTalkMortal
response CitizenMortalWound
}
//------------------------------------------------------------------------------------------------------------
rule CitizenWound
{
criteria IsCitizen ConceptTalkWound
response CitizenOuch
}
//------------------------------------------------------------------------------------------------------------
response CitizenWoundFire
{
scene "scenes/npc/$gender01/ow01.vcd"
scene "scenes/npc/$gender01/no01.vcd"
scene "scenes/npc/$gender01/no02.vcd"
}
rule CitizenWoundFire
{
criteria IsCitizen ConceptTalkWound HurtByFire
response CitizenWoundFire
}
//------------------------------------------------------------------------------------------------------------
response "CitizenShotArm"
{
permitrepeats
scene "scenes/npc/$gender01/myarm01.vcd"
scene "scenes/npc/$gender01/myarm02.vcd"
response CitizenOuch weight 8
}
rule CitizenShotArm
{
criteria IsCitizen ConceptShot ShotInArm
response CitizenShotArm
}
response "CitizenShotLeg"
{
permitrepeats
scene "scenes/npc/$gender01/myleg01.vcd"
scene "scenes/npc/$gender01/myleg02.vcd"
response CitizenOuch weight 8
}
rule CitizenShotLeg
{
criteria IsCitizen ConceptShot ShotInLeg
response CitizenShotLeg
}
response "CitizenShotGut"
{
permitrepeats
scene "scenes/npc/$gender01/mygut01.vcd"
scene "scenes/npc/$gender01/mygut02.vcd"
scene "scenes/npc/$gender01/hitingut01.vcd"
scene "scenes/npc/$gender01/hitingut02.vcd"
response CitizenOuch weight 16
}
rule CitizenShotGut
{
criteria IsCitizen ConceptShot ShotInGut
response CitizenShotGut
}
//------------------------------------------------------------------------------------------------------------
response CitizenWatchOut
{
scene "scenes/npc/$gender01/lookoutfm01.vcd"
scene "scenes/npc/$gender01/lookoutfm02.vcd"
}
rule CitizenWatchOut
{
criteria IsCitizen ConceptTalkWatchout
response CitizenWatchout
}
response CitizenWatchOutUp
{
scene "scenes/npc/$gender01/upthere01.vcd"
scene "scenes/npc/$gender01/upthere02.vcd"
}
rule CitizenWatchOutUp
{
criteria IsCitizen ConceptTalkWatchout
"dangerloc" "above" required
response CitizenWatchOutUp
}
response CitizenWatchOutBehind
{
scene "scenes/npc/$gender01/behindyou01.vcd"
scene "scenes/npc/$gender01/behindyou02.vcd"
}
rule CitizenWatchOutBehind
{
criteria IsCitizen ConceptTalkWatchout
"dangerloc" "behind" required
response CitizenWatchOutBehind
}
response CitizenWatchOutFar
{
scene "scenes/npc/$gender01/overthere01.vcd"
scene "scenes/npc/$gender01/overthere02.vcd"
}
rule CitizenWatchOutFar
{
criteria IsCitizen ConceptTalkWatchout
"dangerloc" "far" required
response CitizenWatchOutFar
}
//------------------------------------------------------------------------------------------------------------
response "CitizenEnemyDead"
{
scene "scenes/npc/$gender01/gotone01.vcd"
scene "scenes/npc/$gender01/gotone02.vcd"
// scene "scenes/npc/$gender01/likethemapples.vcd"
scene "scenes/npc/$gender01/likethat.vcd"
}
rule CitizenEnemyDead
{
criteria IsCitizen ConceptEnemyDead
response CitizenEnemyDead
rescenedelay 3
}
//------------------------------------------------------------------------------------------------------------
response "CitizenNoShoot"
{
scene "scenes/npc/$gender01/onyourside.vcd"
scene "scenes/npc/$gender01/stopitfm.vcd"
scene "scenes/npc/$gender01/watchwhat.vcd"
}
rule CitizenNoShoot
{
criteria IsCitizen ConceptTalkNoShoot
response CitizenNoShoot
}
//------------------------------------------------------------------------------------------------------------
response "CitizenBetrayed"
{
scene "scenes/npc/$gender01/heretohelp01.vcd"
scene "scenes/npc/$gender01/heretohelp02.vcd"
scene "scenes/npc/$gender01/wetrustedyou01.vcd"
scene "scenes/npc/$gender01/wetrustedyou02.vcd"
scene "scenes/npc/$gender01/notthemanithought01.vcd"
scene "scenes/npc/$gender01/notthemanithought02.vcd"
}
rule CitizenBetrayed
{
criteria IsCitizen ConceptTalkBetrayed
response CitizenBetrayed
}
//------------------------------------------------------------------------------------------------------------
response "CitizenAllyKilled"
{
scene "scenes/npc/$gender01/ohno.vcd"
scene "scenes/npc/$gender01/goodgod.vcd"
scene "scenes/npc/$gender01/startle01.vcd"
scene "scenes/npc/$gender01/startle02.vcd"
scene "scenes/npc/$gender01/no01.vcd"
scene "scenes/npc/$gender01/no02.vcd"
}
rule CitizenAllyKilled
{
criteria IsCitizen ConceptTalkAllyKilled
response CitizenAllyKilled
}
//------------------------------------------------------------------------------------------------------------
response CitizenCombineGroup
{
scene "scenes/npc/$gender01/combine01.vcd"
scene "scenes/npc/$gender01/combine02.vcd"
}
response CitizenCombine
{
response CitizenCombineGroup respeakdelay 300
}
rule CitizenStartCombatCombine
{
criteria IsCitizen ConceptStartCombat
enemy npc_combine_s required
response CitizenCombine
}
//------------------------------------------------------------------------------------------------------------
response CitizenHeadcrabGroup
{
scene "scenes/npc/$gender01/headcrabs01.vcd"
scene "scenes/npc/$gender01/headcrabs02.vcd"
}
response CitizenHeadcrab
{
response CitizenHeadcrabGroup respeakdelay 300
}
rule CitizenStartCombatHeadcrab
{
criteria IsCitizen ConceptStartCombat
enemy npc_headcrab required
response CitizenHeadcrab
}
rule CitizenStartCombatHeadcrabFast
{
criteria IsCitizen ConceptStartCombat
enemy npc_headcrab_fast required
response CitizenHeadcrab
}
rule CitizenStartCombatHeadcrabBlack
{
criteria IsCitizen ConceptStartCombat
enemy npc_headcrab_black required
response CitizenHeadcrab
}
//------------------------------------------------------------------------------------------------------------
response CitizenZombieGroup
{
scene "scenes/npc/$gender01/zombies01.vcd"
scene "scenes/npc/$gender01/zombies02.vcd"
}
response CitizenZombie
{
response CitizenZombieGroup respeakdelay 300
}
rule CitizenStartCombatZombie
{
criteria IsCitizen ConceptStartCombat
enemy npc_zombie required
response CitizenZombie
}
rule CitizenStartCombatZombieTorso
{
criteria IsCitizen ConceptStartCombat
enemy npc_zombie_torso required
response CitizenZombie
}
rule CitizenStartCombatZombieFast
{
criteria IsCitizen ConceptStartCombat
enemy npc_fastzombie required
response CitizenZombie
}
rule CitizenStartCombatZombiePoison
{
criteria IsCitizen ConceptStartCombat
enemy npc_poisonzombie required
response CitizenZombie
}
//------------------------------------------------------------------------------------------------------------
response CitizenScannersGroup
{
scene "scenes/npc/$gender01/scanners01.vcd"
scene "scenes/npc/$gender01/scanners02.vcd"
}
response CitizenScanners
{
response CitizenScannersGroup respeakdelay 300
}
rule CitizenStartCombatScanners
{
criteria IsCitizen ConceptStartCombat
enemy npc_cscanner required
response CitizenScanners
}
//------------------------------------------------------------------------------------------------------------
response CitizenStrider
{
scene "scenes/npc/$gender01/strider.vcd" respeakdelay 300
}
rule CitizenStartCombatStrider
{
criteria IsCitizen ConceptStartCombat
enemy npc_strider required
response CitizenStrider
}
//------------------------------------------------------------------------------------------------------------
response CitizenManhacksGroup
{
scene "scenes/npc/$gender01/itsamanhack01.vcd"
scene "scenes/npc/$gender01/itsamanhack02.vcd"
scene "scenes/npc/$gender01/herecomehacks01.vcd"
scene "scenes/npc/$gender01/herecomehacks02.vcd"
scene "scenes/npc/$gender01/thehacks01.vcd"
scene "scenes/npc/$gender01/thehacks02.vcd"
scene "scenes/npc/$gender01/hacks01.vcd"
scene "scenes/npc/$gender01/hacks02.vcd"
}
response CitizenManhacks
{
response CitizenManhacksGroup respeakdelay 300
}
rule CitizenStartCombatManhacks
{
criteria IsCitizen ConceptStartCombat
enemy npc_manhack required
response CitizenManhacks
}
//------------------------------------------------------------------------------------------------------------
response "CitizenMetroGroup"
{
scene "scenes/npc/$gender01/cps01.vcd"
scene "scenes/npc/$gender01/cps02.vcd"
scene "scenes/npc/$gender01/civilprotection01.vcd"
scene "scenes/npc/$gender01/civilprotection02.vcd"
}
response CitizenMetro
{
response CitizenMetroGroup respeakdelay 300
}
rule CitizenStartCombatMetro
{
criteria IsCitizen ConceptStartCombat
enemy npc_metropolice required
response CitizenMetro
}
//============================================================================================================
// Citizen misc speech
//============================================================================================================
//------------------------------------------------------------------------------------------------------------
response "CitizenFiringRPG"
{
//
}
rule CitizenFiringRPG
{
criteria IsCitizen IsRPGUser
response CitizenFiringRPG
}
//============================================================================================================
// Citizen Leader speech (a citizen that's leading the player somewhere)
//============================================================================================================
response "CitizenLeadWaitOver"
{
scene "scenes/npc/$gender01/gotone02.vcd"
}
rule CitizenLeadWaitOver
{
criteria ConceptLeadWaitOver
response CitizenLeadWaitOver
}
//------------------------------------------------------------------------------------------------------------
response "CitizenLeadAttractPlayer"
{
scene "scenes/npc/$gender01/overhere01.vcd"
}
rule CitizenLeadAttractPlayer
{
criteria IsCitizen ConceptLeadAttractPlayer
response CitizenLeadAttractPlayer
}
response "CitizenSeeCombine"
{
scene "scenes/npc/$gender01/combine01.vcd"
}
rule CitizenSeeCombine
{
criteria IsCitizen ConceptSeeCombine
response CitizenSeeCombine
respeakdelay 45
}
//============================================================================================================
// Citizen responding to the player 'attacking' them with a physics object
//============================================================================================================
response "CitizenPlayerPhysAttack"
{
}
rule CitizenPlayerPhysAttack
{
criteria IsCitizen ConceptTalkPlayerPhysAttack
response CitizenPlayerPhysAttack
}
//============================================================================================================
#include "talker/npc_citizen_commandermode.txt"
#include "talker/npc_citizen_terminal.txt"
#include "talker/npc_citizen_tenement.txt"
#include "talker/npc_citizen_coast.txt"
#include "talker/npc_citizen_canals.txt"
#include "talker/npc_citizen_c17.txt"

View File

@@ -0,0 +1,467 @@
//============================================================================================================
// Commander mode criteria
//============================================================================================================
criterion "IsOnlySelected" "numselected" "1" required
criterion "NotOnlySelected" "numselected" ">1" required
criterion "Is_03_first" "name" "citizen_c17_03_first" required
criterion "UseRadio" "useradio" "1" required
criterion "SquadNearPlayer" "distancetoplayer" "<240" required
criterion "SquadNotNearPlayer" "distancetoplayer" ">=240" required
criterion "SquadNearCommandPoint" "commandpoint_dist_to_npc" "<240" required
criterion "SquadNotNearCommandPoint" "commandpoint_dist_to_npc" ">=240" required
criterion "CommandPointNearPlayer" "commandpoint_dist_to_player" "<144" required
criterion "CommandPointNotNearPlayer" "commandpoint_dist_to_player" ">=144" required
criterion "JoinSquadIndividual" "numjoining" "1" required
criterion "JoinSquadMultiple" "numjoining" ">1" required
criterion "TrailingReinforcement" "reinforcement" "1" required
//============================================================================================================
// Commander mode selection speech
//============================================================================================================
response "CitizenSelected"
{
scene "scenes/npc/$gender01/ok01.vcd"
scene "scenes/npc/$gender01/ok02.vcd"
scene "scenes/npc/$gender01/okimready01.vcd"
scene "scenes/npc/$gender01/okimready02.vcd"
scene "scenes/npc/$gender01/okimready03.vcd"
scene "scenes/npc/$gender01/readywhenyouare01.vcd"
scene "scenes/npc/$gender01/readywhenyouare02.vcd"
}
rule CitizenSelected
{
criteria IsCitizen ConceptTalkSelected
response CitizenSelected
}
//------------------------------------------------------------------------------------------------------------
response "CitizenGroupSelectedRadio"
{
}
rule CitizenGroupSelectedRadio
{
criteria IsCitizen ConceptTalkSelected NotOnlySelected UseRadio
response CitizenGroupSelectedRadio
}
//------------------------------------------------------------------------------------------------------------
response "CitizenSoloSelectedRadio"
{
}
rule CitizenSoloSelectedRadio
{
criteria IsCitizen ConceptTalkSelected UseRadio
response CitizenSoloSelectedRadio
}
//============================================================================================================
// Commander mode orders speech
//============================================================================================================
response CitizenSquadNearToFarIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm04.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm04"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadNearToFarGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_away01.vcd"
scene "scenes/npc/$gender01/squad_away02.vcd"
scene "scenes/npc/$gender01/squad_away03.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_away01"
// speak "npc_citizen.squad_away02"
// speak "npc_citizen.squad_away03"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToNearIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
//scene "scenes/npc/$gender01/squad_approach04.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_approach04"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToNearGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_approach01.vcd"
scene "scenes/npc/$gender01/squad_approach02.vcd"
scene "scenes/npc/$gender01/squad_approach03.vcd"
scene "scenes/npc/$gender01/squad_approach04.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_approach01"
// speak "npc_citizen.squad_approach02"
// speak "npc_citizen.squad_approach03"
// speak "npc_citizen.squad_approach04"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadNearToNear
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/illstayhere01.vcd"
scene "scenes/npc/$gender01/holddownspot01.vcd"
scene "scenes/npc/$gender01/holddownspot02.vcd"
scene "scenes/npc/$gender01/imstickinghere01.vcd"
scene "scenes/npc/$gender01/littlecorner01.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToFarIndividual
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm04.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm04"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadFarToFarGroup
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
scene "scenes/npc/$gender01/squad_away01.vcd"
scene "scenes/npc/$gender01/squad_away02.vcd"
scene "scenes/npc/$gender01/squad_away03.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
// speak "npc_citizen.squad_away01"
// speak "npc_citizen.squad_away02"
// speak "npc_citizen.squad_away03"
scene "scenes/npc/$gender01/letsgo01.vcd"
scene "scenes/npc/$gender01/letsgo02.vcd"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
response CitizenSquadGeneral
{
scene "scenes/npc/$gender01/squad_affirm01.vcd"
scene "scenes/npc/$gender01/squad_affirm02.vcd"
scene "scenes/npc/$gender01/squad_affirm03.vcd"
scene "scenes/npc/$gender01/squad_affirm05.vcd"
scene "scenes/npc/$gender01/squad_affirm06.vcd"
scene "scenes/npc/$gender01/squad_affirm07.vcd"
scene "scenes/npc/$gender01/squad_affirm08.vcd"
scene "scenes/npc/$gender01/squad_affirm09.vcd"
// speak "npc_citizen.squad_affirm01"
// speak "npc_citizen.squad_affirm02"
// speak "npc_citizen.squad_affirm03"
// speak "npc_citizen.squad_affirm05"
// speak "npc_citizen.squad_affirm06"
// speak "npc_citizen.squad_affirm07"
// speak "npc_citizen.squad_affirm08"
// speak "npc_citizen.squad_affirm09"
scene "scenes/npc/$gender01/yougotit02.vcd"
}
rule CitizenCommanded
{
criteria IsCitizen ConceptTalkCommanded
response CitizenSquadGeneral
}
rule CitizenCommandedNearToFarIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNearPlayer CommandPointNotNearPlayer
response CitizenSquadNearToFarIndividual
}
rule CitizenCommandedNearToFarGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNearPlayer CommandPointNotNearPlayer
response CitizenSquadNearToFarGroup
}
rule CitizenCommandedFarToNearIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNearPlayer
response CitizenSquadFarToNearIndividual
}
rule CitizenCommandedFarToNearGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNearPlayer
response CitizenSquadFarToNearGroup
}
rule CitizenCommandedNearToNearIndividual
{
criteria IsCitizen ConceptTalkCommanded SquadNearPlayer CommandPointNearPlayer
response CitizenSquadNearToNear
}
rule CitizenCommandedFarToFarIndividual
{
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
response CitizenSquadFarToFarIndividual
}
rule CitizenCommandedFarToFarGroup
{
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
response CitizenSquadFarToFarGroup
}
//------------------------------------------------------------------------------------------------------------
response "CitizenCommandedRadio"
{
}
rule CitizenCommandedRadio
{
criteria IsCitizen ConceptTalkCommanded UseRadio
response CitizenCommandedRadio
}
//------------------------------------------------------------------------------------------------------------
response "CitizenCommandFailedRadio"
{
}
rule CitizenCommandFailedRadio
{
criteria IsCitizen ConceptTalkCommandFailed UseRadio
response CitizenCommandFailedRadio
}
//============================================================================================================
// Commander mode follow speech
//============================================================================================================
response CitizenFollowGeneral
{
scene "scenes/npc/$gender01/leadtheway01.vcd"
scene "scenes/npc/$gender01/leadtheway02.vcd"
scene "scenes/npc/$gender01/leadon01.vcd"
scene "scenes/npc/$gender01/leadon02.vcd"
}
response CitizenFollowGroup
{
scene "scenes/npc/$gender01/squad_follow01.vcd"
scene "scenes/npc/$gender01/squad_follow02.vcd"
scene "scenes/npc/$gender01/squad_follow03.vcd"
scene "scenes/npc/$gender01/squad_follow04.vcd"
response CitizenFollowGeneral weight 2
}
rule CitizenFollow
{
criteria IsCitizen ConceptTalkStartFollow
response CitizenFollowGeneral
}
rule CitizenFollowGroup
{
criteria IsCitizen ConceptTalkStartFollow NotOnlySelected
response CitizenFollowGroup
}
//============================================================================================================
// Commander mode join speech
//============================================================================================================
// I'm not sure all these lines will play well when not coming up from behind, so I've made a distinction between trailing & non-trailing
response CitizenJoinIndividual
{
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}
response CitizenJoinGroup
{
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}
response CitizenJoinIndividualTrailing
{
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}
response CitizenJoinGroupTrailing
{
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}
rule CitizenJoinIndividual
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual
response CitizenJoinIndividual
}
rule CitizenJoinGroup
{
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple
response CitizenJoinGroup
}
rule CitizenJoinIndividualTrailing
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual TrailingReinforcement
response CitizenJoinIndividualTrailing
}
rule CitizenJoinGroupTrailing
{
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple TrailingReinforcement
response CitizenJoinGroupTrailing
}
response CitizenJoin_d3_c17_07
{
scene "scenes/Streetwar/tunnel/$gender01/d3_c17_07_tenant.vcd"
}
rule CitizenJoin_d3_c17_07
{
criteria IsCitizen ConceptJoinPlayer
"map" "d3_c17_07" required weight 1000
response CitizenJoin_d3_c17_07
matchonce
}
//============================================================================================================
// Commander mode follow speech SPECIAL CASE: first citizen in d3_17_03
//============================================================================================================
response "CitizenFollow_First"
{
scene "scenes/npc/$gender01/abouttime01.vcd"
}
rule CitizenFollow_First
{
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual Is_03_first
response CitizenFollow_First
}
//------------------------------------------------------------------------------------------------------------
response "CitizenUnFollow"
{
scene "scenes/npc/$gender01/illstayhere01.vcd"
scene "scenes/npc/$gender01/holddownspot01.vcd"
scene "scenes/npc/$gender01/holddownspot02.vcd"
scene "scenes/npc/$gender01/imstickinghere01.vcd"
scene "scenes/npc/$gender01/littlecorner01.vcd"
}
rule CitizenUnFollow
{
criteria IsCitizen ConceptTalkStopFollow
response CitizenUnFollow
}

View File

@@ -0,0 +1,635 @@
//============================================================================================================
// Vortigaunt criteria
//============================================================================================================
criterion "IsVortigaunt" "classname" "npc_vortigaunt" required
criterion "VortigauntCure" concept" "VORT_CURE" required
criterion "VortigauntCureStop" "concept" "VORT_CURESTOP" required
criterion "VortigauntCureInterrupt" "concept" "VORT_CURE_INTERRUPT" required
criterion "VortigauntAttack" "concept" "VORT_ATTACK" required
criterion "VortigauntMad" "concept" "VORT_MAD" required
criterion "VortigauntShot" "concept" "VORT_SHOT" required
criterion "VortigauntPain" "concept" "VORT_PAIN" required
criterion "VortigauntDie" "concept" "VORT_DIE" required
criterion "VortigauntKill" "concept" "VORT_KILL" required
criterion "VortigauntLineOfFire" "concept" "VORT_LINE_FIRE" required
criterion "VortigauntPOk" "concept" "VORT_POK" required
criterion "VortigauntExtractBugbait" "concept" "VORT_EXTRACT_START" required
criterion "VortigauntExtractBugbaitFinish" "concept" "VORT_EXTRACT_FINISH" required
//============================================================================================================
// Vortigaunt Hello speech
//============================================================================================================
response "VortigauntHello"
{
scene "scenes/npc/vortigaunt/wellmet.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/isitthefm.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/itisthefm.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/thefreeman.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/beofservice.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/greetingsfm.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/neuroprints.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/salute.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/trulyitis.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/takeus.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/webeofuse.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/corporeal.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/seebeforeoureye.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/morethanmeets.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/weknowyou.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/putaside.vcd" delay "3,3.5" speakonce
scene "scenes/npc/vortigaunt/mystery.vcd" delay "3,3.5" speakonce
}
rule VortigauntTlkHello
{
criteria IsVortigaunt ConceptTalkHello PlayerNear SeePlayer
response VortigauntHello
}
//------------------------------------------------------------------------------------------------------------
rule VortigauntPlayerHello
{
criteria IsVortigaunt ConceptTalkPHello
response NullResponse
}
//============================================================================================================
// Vortigaunt Questions & Responses speech
//============================================================================================================
response "VortigauntQuestion"
{
scene "scenes/npc/vortigaunt/vques01.vcd" delay 1
scene "scenes/npc/vortigaunt/vques02.vcd" delay 1
scene "scenes/npc/vortigaunt/vques03.vcd" delay 1
scene "scenes/npc/vortigaunt/vques04.vcd" delay 1
scene "scenes/npc/vortigaunt/vques05.vcd" delay 1
scene "scenes/npc/vortigaunt/vques06.vcd" delay 1
scene "scenes/npc/vortigaunt/vques07.vcd" delay 1
scene "scenes/npc/vortigaunt/vques08.vcd" delay 1
scene "scenes/npc/vortigaunt/vques09.vcd" delay 1
scene "scenes/npc/vortigaunt/vques10.vcd" delay 1
}
rule VortigauntTlkQuestion
{
criteria IsVortigaunt ConceptTalkQuestion
response VortigauntQuestion
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntAnswer"
{
scene "scenes/npc/vortigaunt/vanswer01.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer02.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer03.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer04.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer05.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer06.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer07.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer08.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer09.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer10.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer11.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer12.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer13.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer14.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer15.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer16.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer17.vcd" delay 1
scene "scenes/npc/vortigaunt/vanswer18.vcd" delay 1
}
rule VortigauntTlkAnswer
{
criteria IsVortigaunt ConceptTalkAnswer
response VortigauntAnswer
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntTalkUse"
{
sequential
norepeat
// scene "scenes/npc/vortigaunt/vmono_01.vcd" defaultdelay
// scene "scenes/npc/vortigaunt/vmono_02.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_03.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_04.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_05.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_06.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_07.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_08.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_09.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_10.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_11.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_12.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_13.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_14.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_15.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_16.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_17.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_18.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_19.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_20.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_21.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_22.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_23.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_24.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_25.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_26.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_27.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_28.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_29.vcd" defaultdelay
scene "scenes/npc/vortigaunt/vmono_30.vcd" defaultdelay
}
rule VortigauntTalkUse
{
criteria IsVortigaunt ConceptTalkUse
response VortigauntTalkUse
}
//============================================================================================================
// Vortigaunt Combat speech
//============================================================================================================
response "VortigauntCure"
{
scene "scenes/npc/vortigaunt/allowrecharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/wewillcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/fmcanuse.vcd" defaultdelay
scene "scenes/npc/vortigaunt/here.vcd" defaultdelay
scene "scenes/npc/vortigaunt/acceptenergy.vcd" defaultdelay
scene "scenes/npc/vortigaunt/holdstill.vcd" defaultdelay
scene "scenes/npc/vortigaunt/acceptcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/weshare.vcd" defaultdelay
scene "scenes/npc/vortigaunt/prepare.vcd" defaultdelay
}
rule VortigauntCure
{
criteria IsVortigaunt VortigauntCure
response VortigauntCure
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureStop"
{
scene "scenes/npc/vortigaunt/allwecanspare.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allfornow.vcd" defaultdelay
scene "scenes/npc/vortigaunt/thatisall.vcd" defaultdelay
scene "scenes/npc/vortigaunt/done.vcd" defaultdelay
scene "scenes/npc/vortigaunt/keepfmsafe.vcd" defaultdelay
}
rule VortigauntCureStop
{
criteria IsVortigaunt VortigauntCureStop
response VortigauntCureStop
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureInterrupt"
{
scene "scenes/npc/vortigaunt/holdorcantcharge.vcd" defaultdelay
scene "scenes/npc/vortigaunt/hold.vcd" defaultdelay
scene "scenes/npc/vortigaunt/halt.vcd" defaultdelay
scene "scenes/npc/vortigaunt/fmstandstill.vcd" defaultdelay
scene "scenes/npc/vortigaunt/ifyoumove.vcd" defaultdelay
scene "scenes/npc/vortigaunt/movingtarget.vcd" defaultdelay
}
rule VortigauntCureInterrupt
{
criteria IsVortigaunt VortigauntCureInterrupt
response VortigauntCureInterrupt
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntAttack"
{
scene "scenes/npc/vortigaunt/tothevoid.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allinoneinall.vcd" defaultdelay
scene "scenes/npc/vortigaunt/giveover.vcd" defaultdelay
scene "scenes/npc/vortigaunt/weclaimyou.vcd" defaultdelay
scene "scenes/npc/vortigaunt/undeserving.vcd" defaultdelay
scene "scenes/npc/vortigaunt/satisfaction.vcd" defaultdelay
scene "scenes/npc/vortigaunt/regrettable.vcd" defaultdelay
scene "scenes/npc/vortigaunt/allowme.vcd" defaultdelay
scene "scenes/npc/vortigaunt/livetoserve.vcd" defaultdelay
scene "scenes/npc/vortigaunt/returnvoid.vcd" defaultdelay
}
rule VortigauntAttack
{
criteria IsVortigaunt VortigauntAttack
response VortigauntAttack
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntMad"
{
// sentence "VORT_MAD" soundlevel "SNDLVL_NORM" delay "4"
}
rule VortigauntMad
{
criteria IsVortigaunt VortigauntMad
response VortigauntMad
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntShot"
{
// sentence "VORT_SHOT" soundlevel "SNDLVL_NORM" delay "4"
}
rule VortigauntShot
{
criteria IsVortigaunt VortigauntShot
response VortigauntShot
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntPain"
{
// sentence "VORT_PAIN" defaultdelay
}
rule VortigauntPain
{
criteria IsVortigaunt VortigauntPain
response VortigauntPain
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntDie"
{
// sentence "VORT_DIE" defaultdelay
}
rule VortigauntDie
{
criteria IsVortigaunt VortigauntDie
response VortigauntDie
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntKill"
{
scene "scenes/npc/vortigaunt/forthefm.vcd" delay 4
scene "scenes/npc/vortigaunt/forfreedom.vcd" delay 4
scene "scenes/npc/vortigaunt/tethercut.vcd" delay 4
scene "scenes/npc/vortigaunt/troubleus.vcd" delay 4
scene "scenes/npc/vortigaunt/dreamed.vcd" delay 4
scene "scenes/npc/vortigaunt/energyempower.vcd" delay 4
scene "scenes/npc/vortigaunt/empowerus.vcd" delay 4
scene "scenes/npc/vortigaunt/surge.vcd" delay 4
scene "scenes/npc/vortigaunt/yes.vcd" delay 4
scene "scenes/npc/vortigaunt/passon.vcd" delay 4
scene "scenes/npc/vortigaunt/nodenexus.vcd" delay 4
scene "scenes/npc/vortigaunt/returntoall.vcd" delay 4
}
rule VortigauntKill
{
criteria IsVortigaunt VortigauntKill
response VortigauntKill
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntLineOfFire"
{
scene "scenes/npc/vortigaunt/cautionfm.vcd" delay 4
scene "scenes/npc/vortigaunt/caution.vcd" delay 4
scene "scenes/npc/vortigaunt/fmbeware.vcd" delay 4
scene "scenes/npc/vortigaunt/ware.vcd" delay 4
scene "scenes/npc/vortigaunt/fmmustbeware.vcd" delay 4
scene "scenes/npc/vortigaunt/warefm.vcd" delay 4
scene "scenes/npc/vortigaunt/fminway.vcd" delay 4
scene "scenes/npc/vortigaunt/standclear.vcd" delay 4
scene "scenes/npc/vortigaunt/fmmustmove.vcd" delay 4
scene "scenes/npc/vortigaunt/warningfm.vcd" delay 4
scene "scenes/npc/vortigaunt/cannotfire.vcd" delay 4
}
rule VortigauntLineOfFire
{
criteria IsVortigaunt VortigauntLineOfFire
response VortigauntLineOfFire
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntPOk"
{
// sentence "VORT_POK" soundlevel "SNDLVL_NORM" delay "2"
}
rule VortigauntPOk
{
criteria IsVortigaunt VortigauntPOk
response VortigauntLineOfFire
}
//============================================================================================================
// Vortigaunt Misc speech
//============================================================================================================
response "VortigauntIdle"
{
scene "scenes/npc/vortigaunt/poet.vcd"
scene "scenes/npc/vortigaunt/hopeless.vcd"
scene "scenes/npc/vortigaunt/alldear.vcd"
scene "scenes/npc/vortigaunt/prevail.vcd"
scene "scenes/npc/vortigaunt/seenworse.vcd"
scene "scenes/npc/vortigaunt/persevere.vcd"
scene "scenes/npc/vortigaunt/worthless.vcd"
scene "scenes/npc/vortigaunt/whereto.vcd"
}
rule VortigauntTlkIdle
{
criteria IsVortigaunt ConceptTalkIdle
response VortigauntIdle
}
//------------------------------------------------------------------------------------------------------------
rule VortigauntPlayerIdle
{
criteria IsVortigaunt ConceptTalkPIdle
response NullResponse
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntStare"
{
scene "scenes/npc/vortigaunt/optical.vcd"
scene "scenes/npc/vortigaunt/unclear.vcd"
scene "scenes/npc/vortigaunt/opaque.vcd"
scene "scenes/npc/vortigaunt/rememberus.vcd"
scene "scenes/npc/vortigaunt/stillhere.vcd"
scene "scenes/npc/vortigaunt/calm.vcd"
}
rule VortigauntTlkStare
{
criteria IsVortigaunt ConceptTalkStare
response VortigauntStare
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntOk"
{
scene "scenes/npc/vortigaunt/itishonor.vcd"
scene "scenes/npc/vortigaunt/wehonored.vcd"
scene "scenes/npc/vortigaunt/ourhonor.vcd"
scene "scenes/npc/vortigaunt/honorfollow.vcd"
scene "scenes/npc/vortigaunt/accompany.vcd"
scene "scenes/npc/vortigaunt/gladly.vcd"
scene "scenes/npc/vortigaunt/pleasure.vcd"
scene "scenes/npc/vortigaunt/wefollowfm.vcd"
scene "scenes/npc/vortigaunt/honorours.vcd"
scene "scenes/npc/vortigaunt/gloriousend.vcd"
scene "scenes/npc/vortigaunt/bodyyours.vcd"
scene "scenes/npc/vortigaunt/allwehave.vcd"
scene "scenes/npc/vortigaunt/weareyours.vcd"
scene "scenes/npc/vortigaunt/dedicate.vcd"
scene "scenes/npc/vortigaunt/mutual.vcd"
scene "scenes/npc/vortigaunt/leadus.vcd"
scene "scenes/npc/vortigaunt/onward.vcd"
scene "scenes/npc/vortigaunt/forward.vcd"
scene "scenes/npc/vortigaunt/propitious.vcd"
scene "scenes/npc/vortigaunt/leadon.vcd"
scene "scenes/npc/vortigaunt/fmhonorsus.vcd"
scene "scenes/npc/vortigaunt/fmdoesushonor.vcd"
scene "scenes/npc/vortigaunt/yesforward.vcd"
scene "scenes/npc/vortigaunt/wewillhelp.vcd"
scene "scenes/npc/vortigaunt/assent.vcd"
}
rule VortigauntTlkStartFollow
{
criteria IsVortigaunt ConceptTalkStartFollow
response VortigauntOk
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntWait"
{
scene "scenes/npc/vortigaunt/canconvince.vcd"
scene "scenes/npc/vortigaunt/fmknowsbest.vcd"
scene "scenes/npc/vortigaunt/willremain.vcd"
scene "scenes/npc/vortigaunt/fearfailed.vcd"
scene "scenes/npc/vortigaunt/servebetterhere.vcd"
scene "scenes/npc/vortigaunt/certainly.vcd"
scene "scenes/npc/vortigaunt/herewestay.vcd"
scene "scenes/npc/vortigaunt/asyouwish.vcd"
scene "scenes/npc/vortigaunt/ourplacehere.vcd"
scene "scenes/npc/vortigaunt/affirmed.vcd"
}
rule VortigauntTlkStopFollow
{
criteria IsVortigaunt ConceptTalkStopFollow
response VortigauntWait
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntStop"
{
// sentence "VORT_STOP" delay "2,2.5" soundlevel "SNDLVL_NORM"
}
rule VortigauntTlkStop
{
criteria IsVortigaunt ConceptTalkStop
response VortigauntStop
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntScared"
{
// sentence "VORT_SCARED" delay "0,0.4"
}
rule VortigauntTlkNoShoot
{
criteria IsVortigaunt ConceptTalkNoShoot
response VortigauntScared
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureA"
{
// sentence "VORT_CUREA" defaultdelay speakonce
}
rule VortigauntPlayerHurt1
{
criteria IsVortigaunt ConceptTalkPlayerHurt1
response VortigauntCureA
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureB"
{
// sentence "VORT_CUREB" defaultdelay speakonce
}
rule VortigauntPlayerHurt2
{
criteria IsVortigaunt ConceptTalkPlayerHurt2
response VortigauntCureB
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntCureC"
{
// sentence "VORT_CUREC" defaultdelay speakonce
}
rule VortigauntPlayerHurt3
{
criteria IsVortigaunt ConceptTalkPlayerHurt3
response VortigauntCureC
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntPQuest"
{
// sentence "VORT_PQUEST" defaultdelay
}
rule VortigauntPlayerQuestion
{
criteria IsVortigaunt ConceptTalkPQuestion
response VortigauntPQuest
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntSmell"
{
// sentence "VORT_SMELL" defaultdelay respeakdelay "60"
}
rule VortigauntTlkSmell
{
criteria IsVortigaunt ConceptTalkSmell
response VortigauntSmell
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntWound"
{
// sentence "VORT_WOUND" speakonce defaultdelay
}
rule VortigauntTlkWound
{
criteria IsVortigaunt ConceptTalkWound
response VortigauntWound
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntMortal"
{
// sentence "VORT_MORTAL" speakonce defaultdelay
}
rule VortigauntTlkMortal
{
criteria IsVortigaunt ConceptTalkMortal
response VortigauntMortal
}
//============================================================================================================
// Vortigaunt Leader speech (a vortigaunt that's leading the player somewhere)
//============================================================================================================
response "VortigauntLeadStart"
{
scene "scenes/npc/vortigaunt/fmmustfollow.vcd"
}
rule VortigauntLeadStart
{
criteria IsVortigaunt ConceptLeadStart
response VortigauntLeadStart
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntLeadCatchup"
{
scene "scenes/npc/vortigaunt/yesforward.vcd"
scene "scenes/npc/vortigaunt/followfm.vcd"
}
rule VortigauntLeadCatchup
{
criteria IsVortigaunt ConceptLeadCatchup
response VortigauntLeadCatchup
}
//============================================================================================================
// Vortigaunt coast specific speech
//============================================================================================================
response "VortigauntExtractBugbait"
{
scene "scenes/coast/bugbait/vort_extract01.vcd" defaultdelay
}
rule VortigauntTlkExtractBugbait
{
criteria IsVortigaunt VortigauntExtractBugbait
response VortigauntExtractBugbait
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntExtractBugbaitFinish"
{
scene "scenes/coast/bugbait/vort_podsforyou01.vcd" defaultdelay
}
rule VortigauntTlkExtractBugbaitFinish
{
criteria IsVortigaunt VortigauntExtractBugbaitFinish
response VortigauntExtractBugbaitFinish
}
//------------------------------------------------------------------------------------------------------------
response "VortigauntGetBugbait"
{
scene "scenes/coast/bugbait/vort_podnag.vcd" defaultdelay
}
rule VortigauntTlkLeadGetBugbait
{
criteria IsVortigaunt ConceptLeadMissingWeapon
response VortigauntGetBugbait
}

View File

@@ -0,0 +1,262 @@
// This is the base rule script file for the AI response system for Expressive AI's who speak based on certain "Concepts"
// You can think of a concept as a high level state that the code is trying to convey, such as say hello, or say you're mad, etc.
//
// The format of this file is that there are five main types of commands:
// 1) #include "filename" // This just causes the included scriptfile to be parsed and added to the database
// 2) enumeration: this declares an enumerated type so that comparisons can be matched against the string versions of the type
// 3) response: this specifies a response to issue. A response consists of a weighted set of options and can recursively reference
// other responses by name
// 4) criterion: This is a match condition
// 5) rule: a rule consists of one or more criteria and a response
//
// In general, the system is presented with a criteria set, which is a set of key value pairs generated by the game code and
// various entity I/O and keyfields. For instance, the following criteria set was created in a map with a train terminal
// "speaker" entity wishing to fire random station announcements
// concept = 'train_speaker' (weight 5.000000) ; the high level concept for the search request
// map = 'terminal_pa' ; the name of the map
// classname = 'speaker' ; the classname and name of the "speaking" entity
// name = 'terminal_pa'
// health = '10' ; the absolute health of the speaking entity
// healthfrac = '0.000' ; the health fraction (health/maxhealth) of the speaking entity
// playerhealth = '100' ; similar data related to the current player:
// playerhealthfrac = '1.000'
// playerweapon = 'none' ; the name of the weapon the player is carrying
// playeractivity = 'ACT_WALK' ; animating activity of the player
// playerspeed = '0.000' ; how fast the player is moving
//
// Based on such a criteria set, the system checks each rule against the set. To do this, each criterion of the rule is
// given a numeric score as follows:
// score = 0 if criteria doesn't match or, criterion weight * keyvaliue weight if it does match
// The final score for a rule is the sum of all of the scores of its criteria. The best rule is the one with the highest
// score. Once a best rule is selected, then a response is looked up based on the response definitions and the engine is
// asked to dispatch that response.
//
// The specific syntax for the various keywords is as follows:
//
// ENUMERATIONS:
//
// enumeration <enumerationname>
// {
// "key1" "value1"
// "key2" "value2"
// ...etc.
// }
// The code and criteria refer to enumerations with square brackets and a double colon separator, e.g.:
// [enumerationname::key1]
//
//
// RESPONSES:
//
// Single line:
// response <responsegroupname> [nodelay | defaultdelay | delay interval ] [speakonce] [noscene] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] responsetype parameters
// Multiple lines
// response <responsegroupname>
// {
// [permitrepeats] ; optional parameter, by default we visit all responses in group before repeating any
// [sequential] ; optional parameter, by default we randomly choose responses, but with this we walk through the list starting at the first and going to the last
// [norepeat] ; Once we've run through all of the entries, disable the response group
// responsetype1 parameters1 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] weight nnn
// responsetype2 parameters2 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] weight nnn
// etc.
// }
// Where:
// interval = "startnumber,endnumber" or "number" (e.g., "2.8,3.2" or "3.2")
// responsetype =:
// speak ; it's an entry in sounds.txt
// sentence ; it's a sentence name from sentences.txt
// scene ; it's a .vcd file
// response ; it's a reference to another response group by name
// print ; print the text in developer 2 (for placeholder responses)
// nodelay = an additional delay of 0 after speaking
// defaultdelay = an additional delay of 2.8 to 3.2 seconds after speaking
// delay interval = an additional delay based on a random sample from the interval after speaking
// speakonce = don't use this response more than one time (default off)
// noscene = For an NPC, play the sound immediately using EmitSound, don't play it through the scene system. Good for playing sounds on dying or dead NPCs.
// odds = if this response is selected, if odds < 100, then there is a chance that nothing will be said (default 100)
// respeakdelay = don't use this response again for at least this long (default 0)
// soundlevel = use this soundlevel for the speak/sentence (default SNDLVL_TALKING)
// weight = if there are multiple responses, this is a selection weighting so that certain responses are favored over others in the group (default 1)
// displayfirst/displaylast : this should be the first/last item selected (ignores weight)
//
// CRITERIA:
//
// criterion <criterionname> <matchkey> <matchvalue> weight nnn required
// Where:
// matchkey matches one of the criteria in the set as shown above
// matchvalue is a string or number value or a range, the following are all valid:
// "0" ; numeric match to value 0
// "1" ; numeric match to value 1
// "weapon_smg1" ; string match to weapon_smg1 string
// "[npcstate::idle]" ; match enumeration by looking up numeric value
// ">0" ; match if greater than zero
// ">10,<=50" ; match if greater than ten and less than or equal to 50
// ">0,<[npcstate::alert]" ; match if greater than zer and les then value of enumeration for alert
// "!=0" ; match if not equal to zero
// weight = floating point weighting for score assuming criteria match (default value 1.0)
// required: if a rule has one or more criteria with the required flag set, then if any such criteria
// fail, the entire rule receives a score of zero
//
// RULE:
//
// rule <rulename>
// {
// criteria name1 [name2 name3 etc.]
// response responsegroupname [responsegroupname2 etc.]
// [matchonce] ; optional parameter
// [ <matchkey > <matchvalue> weight nnn required ]
// }
// Where:
// criteria just lies one more more criterion names from above and response list one or more of the response
// names from above (usually just one)
// matchonce (off by default): means that the rule is deactivated after the first time it is matched
// Note that additional "unnamed" criteria can be specified inline in the rule using the same syntax
// as for defining a criterion, except for the criterion keyword and the criterion name keys
//
// Interaction with entity I/O system
// CBaseEntity contains an inputfunc called "DispatchResponse" which accepts a string which is a concept name
// Thus, a game entity can fire this input on another entity with a concept string and a criteria set will
// be generated and searched against the entities current response system rule set.
// Right now only the speaker entity and NPC_Talker derived NPCs have any response rules loaded
// In addition, map placed entities have up to three "context" keypairs that can be specified.
// They take the form: "key:value" (key, single colon separator, value)
// When an entity with any such context keypairs is asked to dispatch a response, the keypairs are added to the
// criteria set passed to the rule system. Thus, map placed entities and triggers can specify their
// own context keypairs and these can be hooked up to response rules to do map-specific and appropriate
// responses
// In addition, entity I/O can be used to add, remove and clear any such context keypairs via the
// AddContext, RemoveContext, and ClearContext input functions.
// AddContext takes a keypair of the "key:value" format, while RemoveContext take just the "key"
// ClearContext removes all context keypairs
// The game .dll code can enumerate context keypairs and change them via code based methods
//
// The player and the world have their context added with the string player or world as a prefix, e.g.:
// "playerkey:value" or "worldkey:value" to differentiate world/player context from the context of the
// responding entity.
// Base script
enumeration "NPCState"
{
"None" "0"
"Idle" "1"
"Alert" "2"
"Combat" "3"
"Scripted" "4"
"PlayDead" "5"
"Dead" "6"
}
response "NullResponse"
// Question / Answer concepts
criterion "ConceptTalkAnswer" "Concept" "TLK_ANSWER" required weight 1
criterion "ConceptTalkQuestion" "Concept" "TLK_QUESTION" required // weight 1 implied
criterion "ConceptTalkAnswerCitizen" "Concept" "TLK_ANSWER_CIT" required weight 1
criterion "ConceptTalkQuestionCitizen" "Concept" "TLK_QUESTION_CIT" required
criterion "ConceptTalkAnswerVort" "Concept" "TLK_ANSWER_VORT" required weight 1
criterion "ConceptTalkQuestionVort" "Concept" "TLK_QUESTION_VORT" required
// General concepts
criterion "ConceptTalkIdle" "Concept" "TLK_IDLE" required
criterion "ConceptTalkStare" "Concept" "TLK_STARE" required
criterion "ConceptTalkUse" "Concept" "TLK_USE" required
criterion "ConceptTalkStartFollow" "Concept" "TLK_STARTFOLLOW" required
criterion "ConceptTalkStopFollow" "Concept" "TLK_STOPFOLLOW" required
criterion "ConceptTalkStop" "Concept" "TLK_STOP" required
criterion "ConceptTalkNoShoot" "Concept" "TLK_NOSHOOT" required
criterion "ConceptTalkHello" "Concept" "TLK_HELLO" required
criterion "ConceptTalkPHello" "Concept" "TLK_PHELLO" required
criterion "ConceptTalkPIdle" "Concept" "TLK_PIDLE" required
criterion "ConceptTalkPQuestion" "Concept" "TLK_PQUESTION" required
criterion "ConceptTalkPlayerHurt1" "Concept" "TLK_PLHURT1" required
criterion "ConceptTalkPlayerHurt2" "Concept" "TLK_PLHURT2" required
criterion "ConceptTalkPlayerHurt3" "Concept" "TLK_PLHURT3" required
criterion "ConceptTalkPlayerPushed" "Concept" "TLK_PLPUSH" required
criterion "ConceptTalkSmell" "Concept" "TLK_SMELL" required
criterion "ConceptTalkWound" "Concept" "TLK_WOUND" required
criterion "ConceptTalkMortal" "Concept" "TLK_MORTAL" required
criterion "ConceptTalkDanger" "Concept" "TLK_DANGER" required
criterion "ConceptTalkResume" "Concept" "TLK_RESUME" required
criterion "ConceptTalkHeal" "Concept" "TLK_HEAL" required
criterion "ConceptTalkTourGuideStayPut" "Concept" "TLK_TGSTAYPUT" required
criterion "ConceptTalkTourGuideFind" "Concept" "TLK_TGFIND" required
criterion "ConceptTalkTourGuideSeek" "Concept" "TLK_TGSEEK" required
criterion "ConceptTalkTourGuideLostYou" "Concept" "TLK_TGLOSTYOU" required
criterion "ConceptTalkTourGuideCatchUp" "Concept" "TLK_TGCATCHUP" required
criterion "ConceptTalkTourGuideEndTour" "Concept" "TLK_TGENDTOUR" required
criterion "ConceptTalkSelected" "Concept" "TLK_SELECTED" required
criterion "ConceptTalkCommanded" "Concept" "TLK_COMMANDED" required
criterion "ConceptTalkCommandFailed" "Concept" "TLK_COMMAND_FAILED" required
criterion "ConceptTalkBetrayed" "Concept" "TLK_BETRAYED" required
criterion "ConceptTalkGiveAmmo" "Concept" "TLK_GIVEAMMO" required
criterion "ConceptTalkAllyKilled" "Concept" "TLK_ALLY_KILLED" required
criterion "ConceptSeeCombine" "Concept" "TLK_SEE_COMBINE" required
criterion "ConceptEnemyDead" "Concept" "TLK_ENEMY_DEAD" required
criterion "ConceptTalkWatchOut" "Concept" "TLK_WATCHOUT" required
criterion "ConceptTalkAttacking" "Concept" "TLK_ATTACKING" required
criterion "ConceptTalkDeath" "Concept" "TLK_DEATH" required
criterion "ConceptTalkHelpMe" "Concept" "TLK_HELP_ME" required
criterion "ConceptTalkPlayerPhysAttack" "Concept" "TLK_PLYR_PHYSATK" required
criterion "ConceptDissolveScream" "Concept" "TLK_DISSOLVESCREAM" required
criterion "ConceptElectrocuteScream" "Concept" "TLK_ELECTROCUTESCREAM" required
criterion "ConceptNewWeapon" "Concept" "TLK_NEWWEAPON" required
criterion "ConceptShot" "Concept" "TLK_SHOT" required
criterion "ConceptPlayerReload" "Concept" "TLK_PLRELOAD" required
criterion "ConceptPlayerDead" "Concept" "TLK_PLDEAD" required
criterion "ConceptHideAndReload" "Concept" "TLK_HIDEANDRELOAD" required
criterion "ConceptStartCombat" "Concept" "TLK_STARTCOMBAT" required
criterion "ConceptJoinPlayer" "Concept" "TLK_JOINPLAYER" required
// Lead behavior
criterion "ConceptLeadStart" "Concept" "TLK_LEAD_START" required // Spoken once when the NPC first starts to lead the player
criterion "ConceptLeadWaitOver" "Concept" "TLK_LEAD_WAITOVER" required // Spoken when the player arrives at an NPC waiting to lead the player
criterion "ConceptLeadAttractPlayer" "Concept" "TLK_LEAD_ATTRACTPLAYER" required // Nag spoken by a NPC waiting to lead the player, trying to attract the player
criterion "ConceptLeadCatchup" "Concept" "TLK_LEAD_CATCHUP" required // Spoken by the NPC when the player's lagging behind
criterion "ConceptLeadComingBack" "Concept" "TLK_LEAD_COMINGBACK" required // Spoken when the NPC comes back to find a lost player
criterion "ConceptLeadRetrieve" "Concept" "TLK_LEAD_RETRIEVE" required // Spoken when the NPC has come back to the player, and is now resuming the lead
criterion "ConceptLeadArrival" "Concept" "TLK_LEAD_ARRIVAL" required // Spoken when the leading NPC reaches the target point
criterion "ConceptLeadSuccess" "Concept" "TLK_LEAD_SUCCESS" required // Spoken when the player and the leading NPC have both reached the target point
criterion "ConceptLeadMissingWeapon" "Concept" "TLK_LEAD_MISSING_WEAPON" required // Spoken when the NPC refuses to lead the player because he's missing a weapon
// Citizen responses
criterion "ConceptCRPlayerShotGunship" "Concept" "TLK_CITIZEN_RESPONSE_SHOT_GUNSHIP" required
criterion "ConceptCRPlayerKilledGunship" "Concept" "TLK_CITIZEN_RESPONSE_KILLEd_GUNSHIP" required
criterion "ConceptCRVitalNPCDied" "Concept" "TLK_VITALNPC_DIED" required
criterion "PlayerAlive" "PlayerHealth" ">0" required
criterion "PlayerDead" "PlayerHealth" "<=0" required
criterion "PlayerWounded" "PlayerHealthFrac" ">0,<=.5"
criterion "NPCAlive" "Health" ">0" required
criterion "NPCAlert" "NPCState" ">=[NPCState::Idle],<[NPCState::Alert]"
criterion "NPCIdle" "NPCState" "[NPCState::Idle]" required
criterion "PlayerNear" "distancetoplayer" "<500" required
criterion "SeePlayer" "seeplayer" "1" required
criterion "SeenByPlayer" "seenbyplayer" "1" required
criterion "NoRecentCombat" "timesincecombat" ">25" required
criterion "ShotInLeg" "shotloc" "leg" required weight 0
criterion "ShotInArm" "shotloc" "arm" required weight 0
criterion "ShotInGut" "shotloc" "gut" required weight 0
criterion "EnemyIsMortar" "enemy" "func_tankmortar" required
criterion "NotUsedVortResponse" "UsedVortResponse" "!=1" "required" weight 0
criterion "IsVortLabUseDisable" "VortLab_Enable" "0" weight 2 required
// Global states
criterion "IsGordonCriminal" "gordon_precriminal" "0" required
criterion "IsGordonPreCriminal" "gordon_precriminal" "1" required
criterion "IsMap_d3_c17_09" "map" "d3_c17_09" "required"
// Test rules
#include "talker/interjections.txt"
#include "talker/npc_combine.txt"
#include "talker/response_k_lab.txt"
#include "talker/response_eli_lab.txt"
#include "talker/npc_vortigaunt.txt"
#include "talker/npc_citizen.txt"
#include "talker/npc_grigori.txt"
#include "talker/npc_barney.txt"
#include "talker/npc_alyx.txt"

View File

@@ -0,0 +1,294 @@
//TITLES FOR HALF-LIFE 2
// Position command $position x y
// x & y are from 0 to 1 to be screen resolution independent
// -1 means center in each dimension
// Effect command $effect <effect number>
// effect 0 is fade in/fade out
// effect 1 is flickery credits
// effect 2 is write out (training room)
// Text color r g b command $color
// fadein time fadeout time / hold time
// $fadein (message fade in time - per character in effect 2)
// $fadeout (message fade out time)
// $holdtime (stay on the screen for this long)
//INTRO TITLES
// All centered for now
$position -1 -1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.01
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.25
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
//INTRO CREDITS
// Test values -- JAY
// Lower left
$position 0.1 0.8
$effect 1
// Final fade-in color
$color 128 128 128
// This is the highlight/flash color
$color2 0 0 0
$fadein 1.5
$fadeout 0.5
$holdtime 1.2
CR1
{
Testing 1
}
CR2
{
Testing 2
}
CR3
{
Testing 3
}
//INTRO TITLES
// All centered for now
$position -1 -1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.01
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.25
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
GAMEOVER_ALLY
{
#HL2_GameOver_Ally
}
GAMEOVER_OBJECT
{
#HL2_GameOver_Object
}
GAMEOVER_TIMER
{
#HL2_GameOver_Timer
}
GAMEOVER_STUCK
{
#HL2_GameOver_Stuck
}
$fadein 0.03
$holdtime 9
//CHAPTER TITLES
$fadein 0.01
$holdtime 3.5
$position -1 0.58
CHAPTER1_TITLE
{
#HL2_Chapter1_Title
}
CHAPTER2_TITLE
{
#HL2_Chapter2_Title
}
CHAPTER3_TITLE
{
#HL2_Chapter3_Title
}
CHAPTER4_TITLE
{
#HL2_Chapter4_Title
}
CHAPTER5_TITLE
{
#HL2_Chapter5_Title
}
CHAPTER6_TITLE
{
#HL2_Chapter6_Title
}
CHAPTER7_TITLE
{
#HL2_Chapter7_Title
}
CHAPTER8_TITLE
{
#HL2_Chapter8_Title
}
CHAPTER9_TITLE
{
#HL2_Chapter9_Title
}
CHAPTER9A_TITLE
{
#HL2_Chapter9a_Title
}
CHAPTER10_TITLE
{
#HL2_Chapter10_Title
}
CHAPTER11_TITLE
{
#HL2_Chapter11_Title
}
CHAPTER12_TITLE
{
#HL2_Chapter12_Title
}
CHAPTER13_TITLE
{
#HL2_Chapter13_Title
}
// In-Game messages
$position 0.1 0.1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.00
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.15
// How long to hold the message on the screen (after it scans out)
$holdtime 1.0
// How long it takes to fade out the message after holding
$fadeout 0.25
$boxsize 0.4
$boxcolor 31 31 31 127
GAMESAVING_360
{
#HL2_Saved
}
$position -1 0.65
GAMESAVING
{
#HL2_Saved
}
// In-Game messages
$position 0.1 0.1
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 240 110 0
// This is the time it takes to fade each character
$fadein 0.00
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.15
// How long to hold the message on the screen (after it scans out)
$holdtime 1.0
// How long it takes to fade out the message after holding
$fadeout 0.25
$boxsize 0.4
$boxcolor 31 31 31 127
// The following message will clear any existing message of the given name
$clearmessage GAMESAVING
GAMESAVED_360
{
#HL2_Saved
}
$position -1 0.65
GAMESAVED
{
#HL2_Saved
}
$clearmessage 0
// Game title
// This is a placeholder to hold the effects controls for the "Half-Life" title
$position -1 -1
// Only effect 0 is supported for game title
$effect 0
// This is the final color
$color 180 180 180
// Not used color2
$color2 0 0 0
// This is the time it takes to fade in the title
$fadein 1.0
// How long to hold the message on the screen (after it scans out)
$holdtime 3.0
// How long it takes to fade out the message after holding
$fadeout 1.5
$boxsize 0.0
GAMETITLE
{
Half-Life
}
//HAZARD COURSE TEXT
// Test values -- JAY
$position -1 0.65
// Scan-out text effect
$effect 2
// This is the final color
$color 100 100 100
// This is the highlight color
$color2 0 200 50
// This is the time it takes to fade each character
$fadein 0.005
// This is the amount of time the highlight lags behind the leading edge of the text
$fxtime 0.5
// How long to hold the message on the screen (after it scans out)
$holdtime 3.5
// How long it takes to fade out the message after holding
$fadeout 1.5
$position -1 0.65
$position -1 0.3

View File

@@ -0,0 +1,42 @@
"VGUI_Screens"
{
// This name here can be referenced from within a
// vgui_screen entity to select this vgui panel
"vgui_test_screen"
{
// The type indicates which type of panel to create
// Coders will add new types as time goes by.
// "vgui_screen_panel" is a generic panel type which can
// read in .res files that have been built by VGUI's build mode dialog.
"type" "vgui_screen_panel"
// These describe the dimensions of the screen *in pixels*
"pixelswide" 480
"pixelshigh" 240
// This is the name of the .res file to load up and apply to the vgui panel
"resfile" "scripts/screens/vgui_test_screen.res"
}
"teleport_countdown_screen"
{
// Defined in c_info_teleporter_countdown.cpp
"type" "teleport_countdown_screen"
// These describe the dimensions of the screen *in pixels*
"pixelswide" 480
"pixelshigh" 240
// This is the name of the .res file to load up and apply to the vgui panel
"resfile" "scripts/screens/teleport_countdown_screen.res"
}
"slideshow_display_screen"
{
"type" "slideshow_display_screen"
"pixelswide" 256
"pixelshigh" 128
"acceptsinput" 0
"resfile" "scripts/screens/slideshow_display_screen.res"
}
}

View File

@@ -0,0 +1,234 @@
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}") = "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}") = "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}"
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 (Episodic)", "game\server\server_episodic-2010.vcxproj", "{7855B476-B6D4-535D-F7A9-D623245F8B07}"
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
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
{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
{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 (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
{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

26
sp/src/Game_HL2-2010.sln Normal file
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 (HL2)", "game\client\client_hl2-2010.vcxproj", "{09E5D61D-4897-7B98-288B-C87442D14BFF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Server (HL2)", "game\server\server_hl2-2010.vcxproj", "{C3EE918E-6836-5578-1FA2-5703048552B9}"
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
{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
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
sp/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
sp/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
sp/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

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