mirror of
https://github.com/srcdslab/sm-ext-voice.git
synced 2025-12-06 18:18:21 +00:00
feat: add github ci
This commit is contained in:
parent
a02cb7e1d3
commit
3a1c1471b0
158
.github/workflows/ci.yml
vendored
Normal file
158
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,158 @@
|
||||
name: CI
|
||||
|
||||
on: [push, pull_request, workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-20.04]
|
||||
sourcemod-version: [1.11-dev]
|
||||
protobuf-version: [v2.5.0]
|
||||
protobuf-valve-version: [master]
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
target-archs: x86,x86_64
|
||||
sdks: css,csgo
|
||||
|
||||
steps:
|
||||
- name: Install Linux packages
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -yq --no-install-recommends g++-multilib
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: extension
|
||||
|
||||
- name: Checkout SourceMod
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: alliedmodders/sourcemod
|
||||
ref: ${{ matrix.sourcemod-version }}
|
||||
path: sourcemod
|
||||
submodules: recursive
|
||||
|
||||
- name: Checkout AMBuild
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: alliedmodders/ambuild
|
||||
path: ambuild
|
||||
|
||||
- name: Checkout sm-ext-common
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: srcdslab/sm-ext-common
|
||||
path: sourcemod/extensions/sm-ext-common
|
||||
|
||||
- name: Checkout valve protobuf
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: SteamDatabase/Protobufs
|
||||
ref: ${{ matrix.protobuf-valve-version }}
|
||||
path: protobuf-valve
|
||||
submodules: recursive
|
||||
|
||||
- name: Checkout protobuf
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: protocolbuffers/protobuf
|
||||
ref: ${{ matrix.protobuf-version }}
|
||||
path: protobuf
|
||||
submodules: recursive
|
||||
|
||||
- name: Install sourcemod dependencies
|
||||
run: |
|
||||
bash sourcemod/tools/checkout-deps.sh -m -s ${{ matrix.sdks }}
|
||||
|
||||
- name: Install AMBuild
|
||||
uses: BSFishy/pip-action@v1
|
||||
with:
|
||||
packages: ./ambuild
|
||||
|
||||
- name: Install protobuf
|
||||
shell: bash
|
||||
run: |
|
||||
export EXTENSION_ROOT_DIR=$(pwd)
|
||||
cd protobuf
|
||||
|
||||
#sh autogen.sh
|
||||
|
||||
# Fix because autogen in protobuf 2.5.0 doesnt work anymore
|
||||
autoreconf -f -i -Wall,no-obsolete
|
||||
rm -rf autom4te.cache config.h.in~
|
||||
|
||||
# Make sure to compile for 32bit with old ABI for std::string compatibility
|
||||
./configure --prefix=$EXTENSION_ROOT_DIR/protobuf --build=i686-pc-linux-gnu "CFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" "CXXFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" "LDFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" --disable-shared --enable-static
|
||||
make -j 8
|
||||
make install
|
||||
|
||||
# Compile .proto files to c++
|
||||
|
||||
cd ../protobuf-valve
|
||||
../protobuf/bin/protoc google/protobuf/descriptor.proto --cpp_out=./
|
||||
../protobuf/bin/protoc csgo/netmessages.proto --cpp_out=./
|
||||
ls -all
|
||||
|
||||
- name: Build
|
||||
working-directory: extension
|
||||
shell: bash
|
||||
env:
|
||||
BREAKPAD_SYMBOL_SERVER: ${{ secrets.BREAKPAD_SYMBOL_SERVER }}
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
python ../configure.py --enable-optimize --targets=${{ matrix.target-archs }} --sdks=${{ matrix.sdks }}
|
||||
ambuild
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ runner.os }}
|
||||
path: extension/build/package
|
||||
|
||||
|
||||
release:
|
||||
name: Release
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v2
|
||||
|
||||
- name: Package
|
||||
run: |
|
||||
version=`echo $GITHUB_REF | sed "s/refs\/tags\///"`
|
||||
ls -Rall
|
||||
if [ -d "./Linux/" ]; then
|
||||
cd ./Linux/
|
||||
tar -czf ../${{ github.event.repository.name }}-${version}-linux.tar.gz -T <(\ls -1)
|
||||
cd -
|
||||
fi
|
||||
if [ -d "./macOS/" ]; then
|
||||
cd ./macOS/
|
||||
tar -czf ../${{ github.event.repository.name }}-${version}-mac.tar.gz -T <(\ls -1)
|
||||
cd -
|
||||
fi
|
||||
if [ -d "./Windows/" ]; then
|
||||
cd ./Windows/
|
||||
tar -czf ../${{ github.event.repository.name }}-${version}-windows.tar.gz -T <(\ls -1)
|
||||
cd -
|
||||
fi
|
||||
|
||||
- name: Release
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: '*.tar.gz'
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
@ -31,11 +31,6 @@ class SDK(object):
|
||||
WinOnly = ['windows']
|
||||
WinLinux = ['windows', 'linux']
|
||||
WinLinuxMac = ['windows', 'linux', 'mac']
|
||||
CSGO = {
|
||||
'windows': ['x86'],
|
||||
'linux': ['x86', 'x86_64'],
|
||||
'mac': ['x86_64']
|
||||
}
|
||||
|
||||
PossibleSDKs = {
|
||||
'css': SDK('HL2SDKCSS', '2.css', '6', 'CSS', WinLinuxMac, 'css'),
|
||||
@ -87,6 +82,8 @@ class ExtensionConfig(object):
|
||||
self.versionlib = None
|
||||
self.all_targets = []
|
||||
self.target_archs = set()
|
||||
self.protobuf_root = None
|
||||
self.protobuf_valve_root = None
|
||||
|
||||
|
||||
if builder.options.targets:
|
||||
@ -185,12 +182,36 @@ class ExtensionConfig(object):
|
||||
raise Exception('Could not find a source copy of Metamod:Source')
|
||||
self.mms_root = Normalize(self.mms_root)
|
||||
|
||||
# Run protobuf compilation and copy files to corresponding folders
|
||||
if 'csgo' in self.sdks:
|
||||
os.chdir("../pb/")
|
||||
os.chmod('./build_protobuf.sh', 0o755)
|
||||
subprocess.call("./build_protobuf.sh")
|
||||
if 'csgo' in sdk_list:
|
||||
if builder.options.protobuf_valve_path:
|
||||
self.protobuf_valve_root = builder.options.protobuf_valve_path
|
||||
else:
|
||||
self.protobuf_valve_root = ResolveEnvPath('PBVSOURCE110', 'protobuf-valve-2.5.0')
|
||||
if not self.protobuf_valve_root:
|
||||
self.protobuf_valve_root = ResolveEnvPath('PBVSOURCE_DEV', 'protobuf-valve-source')
|
||||
if not self.protobuf_valve_root:
|
||||
self.protobuf_valve_root = ResolveEnvPath('PBVSOURCE_DEV', 'protobuf-valve-central')
|
||||
if not self.protobuf_valve_root:
|
||||
self.protobuf_valve_root = ResolveEnvPath('PBVSOURCE_DEV', 'protobuf-valve')
|
||||
|
||||
if not self.protobuf_valve_root or not os.path.isdir(self.protobuf_valve_root):
|
||||
raise Exception('Could not find a source copy of valve Protobuf')
|
||||
self.protobuf_valve_root = Normalize(self.protobuf_valve_root)
|
||||
|
||||
if builder.options.protobuf_path:
|
||||
self.protobuf_root = builder.options.protobuf_path
|
||||
else:
|
||||
self.protobuf_root = ResolveEnvPath('PBSOURCE110', 'protobuf-2.5.0')
|
||||
if not self.protobuf_root:
|
||||
self.protobuf_root = ResolveEnvPath('PBSOURCE_DEV', 'protobuf-source')
|
||||
if not self.protobuf_root:
|
||||
self.protobuf_root = ResolveEnvPath('PBSOURCE_DEV', 'protobuf-central')
|
||||
if not self.protobuf_root:
|
||||
self.protobuf_root = ResolveEnvPath('PBSOURCE_DEV', 'protobuf')
|
||||
|
||||
if not self.protobuf_root or not os.path.isdir(self.protobuf_root):
|
||||
raise Exception('Could not find a source copy of Protobuf')
|
||||
self.protobuf_root = Normalize(self.protobuf_root)
|
||||
|
||||
def configure(self):
|
||||
if not set(self.target_archs).issubset(['x86', 'x86_64']):
|
||||
|
||||
@ -40,15 +40,16 @@ for cxx in builder.targets:
|
||||
|
||||
if sdk.name in ['csgo']:
|
||||
binary.compiler.cxxincludes += [
|
||||
os.path.join(builder.sourcePath, 'pb', 'include'),
|
||||
os.path.join(SM.protobuf_root, 'include'),
|
||||
os.path.join(SM.protobuf_valve_root),
|
||||
]
|
||||
binary.compiler.postlink += [
|
||||
'-L' + os.path.join(builder.sourcePath, 'pb', 'lib'),
|
||||
'-L' + os.path.join(SM.protobuf_root, 'lib'),
|
||||
'-lprotobuf'
|
||||
]
|
||||
|
||||
binary.sources += [
|
||||
os.path.join(builder.sourcePath, 'pb', 'csgo', 'netmessages.pb.cc'),
|
||||
os.path.join(SM.protobuf_valve_root, 'csgo', 'netmessages.pb.cc'),
|
||||
]
|
||||
|
||||
binary.compiler.cxxincludes += [
|
||||
|
||||
@ -26,6 +26,10 @@ parser.options.add_argument('--mms-path', type=str, dest='mms_path', default=Non
|
||||
help='Path to Metamod:Source')
|
||||
parser.options.add_argument('--sm-path', type=str, dest='sm_path', default=None,
|
||||
help='Path to SourceMod')
|
||||
parser.options.add_argument('--protobuf-valve-path', type=str, dest='protobuf_valve_path', default=None,
|
||||
help='Path to valve protobuf')
|
||||
parser.options.add_argument('--protobuf-path', type=str, dest='protobuf_path', default=None,
|
||||
help='Path to protobuf')
|
||||
parser.options.add_argument('--enable-debug', action='store_const', const='1', dest='debug',
|
||||
help='Enable debugging symbols')
|
||||
parser.options.add_argument('--enable-optimize', action='store_const', const='1', dest='opt',
|
||||
|
||||
@ -38,7 +38,7 @@
|
||||
#include "ringbuffer.h"
|
||||
|
||||
#if SOURCE_ENGINE == SE_CSGO || SOURCE_ENGINE == SE_INSURGENCY
|
||||
#include "pb/csgo/netmessages.pb.h"
|
||||
#include "csgo/netmessages.pb.h"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -d protobuf-master ]]; then
|
||||
exit 0;
|
||||
fi;
|
||||
|
||||
# Protouf version used by CSGO
|
||||
PROTOBUF_VERSION=v2.5.0
|
||||
|
||||
git clone https://github.com/protocolbuffers/protobuf.git -b $PROTOBUF_VERSION --recursive protobuf-master
|
||||
cd protobuf-master
|
||||
|
||||
#sh autogen.sh
|
||||
|
||||
# Fix because autogen in protobuf 2.5.0 doesnt work anymore
|
||||
autoreconf -f -i -Wall,no-obsolete
|
||||
rm -rf autom4te.cache config.h.in~
|
||||
|
||||
# Make sure to compile for 32bit with old ABI for std::string compatibility
|
||||
./configure --prefix=/home/alliedmodders/sourcemod/extensions/sm-ext-voice/pb --build=i686-pc-linux-gnu "CFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" "CXXFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" "LDFLAGS=-m32 -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14" --disable-shared --enable-static
|
||||
make -j 8
|
||||
make install
|
||||
|
||||
# Compile .proto files to c++
|
||||
|
||||
cd ../csgo
|
||||
../bin/protoc google/protobuf/descriptor.proto --cpp_out=./
|
||||
../bin/protoc netmessages.proto --cpp_out=./
|
||||
@ -1,281 +0,0 @@
|
||||
package google.protobuf;
|
||||
|
||||
option optimize_for = SPEED;
|
||||
option go_package = "google.golang.org/protobuf/types/descriptorpb";
|
||||
option java_package = "com.google.protobuf";
|
||||
option java_outer_classname = "DescriptorProtos";
|
||||
|
||||
message FileDescriptorSet {
|
||||
repeated .google.protobuf.FileDescriptorProto file = 1;
|
||||
}
|
||||
|
||||
message FileDescriptorProto {
|
||||
optional string name = 1;
|
||||
optional string package = 2;
|
||||
repeated string dependency = 3;
|
||||
repeated int32 public_dependency = 10;
|
||||
repeated int32 weak_dependency = 11;
|
||||
repeated .google.protobuf.DescriptorProto message_type = 4;
|
||||
repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
|
||||
repeated .google.protobuf.ServiceDescriptorProto service = 6;
|
||||
repeated .google.protobuf.FieldDescriptorProto extension = 7;
|
||||
optional .google.protobuf.FileOptions options = 8;
|
||||
optional .google.protobuf.SourceCodeInfo source_code_info = 9;
|
||||
optional string syntax = 12;
|
||||
}
|
||||
|
||||
message DescriptorProto {
|
||||
message ExtensionRange {
|
||||
optional int32 start = 1;
|
||||
optional int32 end = 2;
|
||||
optional .google.protobuf.ExtensionRangeOptions options = 3;
|
||||
}
|
||||
|
||||
message ReservedRange {
|
||||
optional int32 start = 1;
|
||||
optional int32 end = 2;
|
||||
}
|
||||
|
||||
optional string name = 1;
|
||||
repeated .google.protobuf.FieldDescriptorProto field = 2;
|
||||
repeated .google.protobuf.FieldDescriptorProto extension = 6;
|
||||
repeated .google.protobuf.DescriptorProto nested_type = 3;
|
||||
repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
|
||||
repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
|
||||
repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
|
||||
optional .google.protobuf.MessageOptions options = 7;
|
||||
repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
|
||||
repeated string reserved_name = 10;
|
||||
}
|
||||
|
||||
message ExtensionRangeOptions {
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message FieldDescriptorProto {
|
||||
enum Type {
|
||||
TYPE_DOUBLE = 1;
|
||||
TYPE_FLOAT = 2;
|
||||
TYPE_INT64 = 3;
|
||||
TYPE_UINT64 = 4;
|
||||
TYPE_INT32 = 5;
|
||||
TYPE_FIXED64 = 6;
|
||||
TYPE_FIXED32 = 7;
|
||||
TYPE_BOOL = 8;
|
||||
TYPE_STRING = 9;
|
||||
TYPE_GROUP = 10;
|
||||
TYPE_MESSAGE = 11;
|
||||
TYPE_BYTES = 12;
|
||||
TYPE_UINT32 = 13;
|
||||
TYPE_ENUM = 14;
|
||||
TYPE_SFIXED32 = 15;
|
||||
TYPE_SFIXED64 = 16;
|
||||
TYPE_SINT32 = 17;
|
||||
TYPE_SINT64 = 18;
|
||||
}
|
||||
|
||||
enum Label {
|
||||
LABEL_OPTIONAL = 1;
|
||||
LABEL_REQUIRED = 2;
|
||||
LABEL_REPEATED = 3;
|
||||
}
|
||||
|
||||
optional string name = 1;
|
||||
optional int32 number = 3;
|
||||
optional .google.protobuf.FieldDescriptorProto.Label label = 4 [default = LABEL_OPTIONAL];
|
||||
optional .google.protobuf.FieldDescriptorProto.Type type = 5 [default = TYPE_DOUBLE];
|
||||
optional string type_name = 6;
|
||||
optional string extendee = 2;
|
||||
optional string default_value = 7;
|
||||
optional int32 oneof_index = 9;
|
||||
optional string json_name = 10;
|
||||
optional .google.protobuf.FieldOptions options = 8;
|
||||
optional bool proto3_optional = 17;
|
||||
}
|
||||
|
||||
message OneofDescriptorProto {
|
||||
optional string name = 1;
|
||||
optional .google.protobuf.OneofOptions options = 2;
|
||||
}
|
||||
|
||||
message EnumDescriptorProto {
|
||||
message EnumReservedRange {
|
||||
optional int32 start = 1;
|
||||
optional int32 end = 2;
|
||||
}
|
||||
|
||||
optional string name = 1;
|
||||
repeated .google.protobuf.EnumValueDescriptorProto value = 2;
|
||||
optional .google.protobuf.EnumOptions options = 3;
|
||||
repeated .google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;
|
||||
repeated string reserved_name = 5;
|
||||
}
|
||||
|
||||
message EnumValueDescriptorProto {
|
||||
optional string name = 1;
|
||||
optional int32 number = 2;
|
||||
optional .google.protobuf.EnumValueOptions options = 3;
|
||||
}
|
||||
|
||||
message ServiceDescriptorProto {
|
||||
optional string name = 1;
|
||||
repeated .google.protobuf.MethodDescriptorProto method = 2;
|
||||
optional .google.protobuf.ServiceOptions options = 3;
|
||||
}
|
||||
|
||||
message MethodDescriptorProto {
|
||||
optional string name = 1;
|
||||
optional string input_type = 2;
|
||||
optional string output_type = 3;
|
||||
optional .google.protobuf.MethodOptions options = 4;
|
||||
optional bool client_streaming = 5 [default = false];
|
||||
optional bool server_streaming = 6 [default = false];
|
||||
}
|
||||
|
||||
message FileOptions {
|
||||
enum OptimizeMode {
|
||||
SPEED = 1;
|
||||
CODE_SIZE = 2;
|
||||
LITE_RUNTIME = 3;
|
||||
}
|
||||
|
||||
optional string java_package = 1;
|
||||
optional string java_outer_classname = 8;
|
||||
optional bool java_multiple_files = 10 [default = false];
|
||||
optional bool java_generate_equals_and_hash = 20 [deprecated = true];
|
||||
optional bool java_string_check_utf8 = 27 [default = false];
|
||||
optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
|
||||
optional string go_package = 11;
|
||||
optional bool cc_generic_services = 16 [default = false];
|
||||
optional bool java_generic_services = 17 [default = false];
|
||||
optional bool py_generic_services = 18 [default = false];
|
||||
optional bool php_generic_services = 42 [default = false];
|
||||
optional bool deprecated = 23 [default = false];
|
||||
optional bool cc_enable_arenas = 31 [default = true];
|
||||
optional string objc_class_prefix = 36;
|
||||
optional string csharp_namespace = 37;
|
||||
optional string swift_prefix = 39;
|
||||
optional string php_class_prefix = 40;
|
||||
optional string php_namespace = 41;
|
||||
optional string php_metadata_namespace = 44;
|
||||
optional string ruby_package = 45;
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message MessageOptions {
|
||||
optional bool message_set_wire_format = 1 [default = false];
|
||||
optional bool no_standard_descriptor_accessor = 2 [default = false];
|
||||
optional bool deprecated = 3 [default = false];
|
||||
optional bool map_entry = 7;
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message FieldOptions {
|
||||
enum CType {
|
||||
STRING = 0;
|
||||
CORD = 1;
|
||||
STRING_PIECE = 2;
|
||||
}
|
||||
|
||||
enum JSType {
|
||||
JS_NORMAL = 0;
|
||||
JS_STRING = 1;
|
||||
JS_NUMBER = 2;
|
||||
}
|
||||
|
||||
optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
|
||||
optional bool packed = 2;
|
||||
optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
|
||||
optional bool lazy = 5 [default = false];
|
||||
optional bool deprecated = 3 [default = false];
|
||||
optional bool weak = 10 [default = false];
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message OneofOptions {
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message EnumOptions {
|
||||
optional bool allow_alias = 2;
|
||||
optional bool deprecated = 3 [default = false];
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message EnumValueOptions {
|
||||
optional bool deprecated = 1 [default = false];
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message ServiceOptions {
|
||||
optional bool deprecated = 33 [default = false];
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message MethodOptions {
|
||||
enum IdempotencyLevel {
|
||||
IDEMPOTENCY_UNKNOWN = 0;
|
||||
NO_SIDE_EFFECTS = 1;
|
||||
IDEMPOTENT = 2;
|
||||
}
|
||||
|
||||
optional bool deprecated = 33 [default = false];
|
||||
optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];
|
||||
repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
|
||||
|
||||
extensions 1000 to max;
|
||||
}
|
||||
|
||||
message UninterpretedOption {
|
||||
message NamePart {
|
||||
required string name_part = 1;
|
||||
required bool is_extension = 2;
|
||||
}
|
||||
|
||||
repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
|
||||
optional string identifier_value = 3;
|
||||
optional uint64 positive_int_value = 4;
|
||||
optional int64 negative_int_value = 5;
|
||||
optional double double_value = 6;
|
||||
optional bytes string_value = 7;
|
||||
optional string aggregate_value = 8;
|
||||
}
|
||||
|
||||
message SourceCodeInfo {
|
||||
message Location {
|
||||
repeated int32 path = 1 [packed = true];
|
||||
repeated int32 span = 2 [packed = true];
|
||||
optional string leading_comments = 3;
|
||||
optional string trailing_comments = 4;
|
||||
repeated string leading_detached_comments = 6;
|
||||
}
|
||||
|
||||
repeated .google.protobuf.SourceCodeInfo.Location location = 1;
|
||||
}
|
||||
|
||||
message GeneratedCodeInfo {
|
||||
message Annotation {
|
||||
repeated int32 path = 1 [packed = true];
|
||||
optional string source_file = 2;
|
||||
optional int32 begin = 3;
|
||||
optional int32 end = 4;
|
||||
}
|
||||
|
||||
repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;
|
||||
}
|
||||
@ -1,491 +0,0 @@
|
||||
import "google/protobuf/descriptor.proto";
|
||||
|
||||
option cc_generic_services = false;
|
||||
|
||||
enum NET_Messages {
|
||||
net_NOP = 0;
|
||||
net_Disconnect = 1;
|
||||
net_File = 2;
|
||||
net_SplitScreenUser = 3;
|
||||
net_Tick = 4;
|
||||
net_StringCmd = 5;
|
||||
net_SetConVar = 6;
|
||||
net_SignonState = 7;
|
||||
net_PlayerAvatarData = 100;
|
||||
}
|
||||
|
||||
enum CLC_Messages {
|
||||
clc_ClientInfo = 8;
|
||||
clc_Move = 9;
|
||||
clc_VoiceData = 10;
|
||||
clc_BaselineAck = 11;
|
||||
clc_ListenEvents = 12;
|
||||
clc_RespondCvarValue = 13;
|
||||
clc_FileCRCCheck = 14;
|
||||
clc_LoadingProgress = 15;
|
||||
clc_SplitPlayerConnect = 16;
|
||||
clc_ClientMessage = 17;
|
||||
clc_CmdKeyValues = 18;
|
||||
clc_HltvReplay = 20;
|
||||
}
|
||||
|
||||
enum VoiceDataFormat_t {
|
||||
VOICEDATA_FORMAT_STEAM = 0;
|
||||
VOICEDATA_FORMAT_ENGINE = 1;
|
||||
}
|
||||
|
||||
enum ESplitScreenMessageType {
|
||||
option allow_alias = true;
|
||||
MSG_SPLITSCREEN_ADDUSER = 0;
|
||||
MSG_SPLITSCREEN_REMOVEUSER = 1;
|
||||
MSG_SPLITSCREEN_TYPE_BITS = 1;
|
||||
}
|
||||
|
||||
enum SVC_Messages {
|
||||
svc_ServerInfo = 8;
|
||||
svc_SendTable = 9;
|
||||
svc_ClassInfo = 10;
|
||||
svc_SetPause = 11;
|
||||
svc_CreateStringTable = 12;
|
||||
svc_UpdateStringTable = 13;
|
||||
svc_VoiceInit = 14;
|
||||
svc_VoiceData = 15;
|
||||
svc_Print = 16;
|
||||
svc_Sounds = 17;
|
||||
svc_SetView = 18;
|
||||
svc_FixAngle = 19;
|
||||
svc_CrosshairAngle = 20;
|
||||
svc_BSPDecal = 21;
|
||||
svc_SplitScreen = 22;
|
||||
svc_UserMessage = 23;
|
||||
svc_EntityMessage = 24;
|
||||
svc_GameEvent = 25;
|
||||
svc_PacketEntities = 26;
|
||||
svc_TempEntities = 27;
|
||||
svc_Prefetch = 28;
|
||||
svc_Menu = 29;
|
||||
svc_GameEventList = 30;
|
||||
svc_GetCvarValue = 31;
|
||||
svc_PaintmapData = 33;
|
||||
svc_CmdKeyValues = 34;
|
||||
svc_EncryptedData = 35;
|
||||
svc_HltvReplay = 36;
|
||||
svc_Broadcast_Command = 38;
|
||||
}
|
||||
|
||||
enum ReplayEventType_t {
|
||||
REPLAY_EVENT_CANCEL = 0;
|
||||
REPLAY_EVENT_DEATH = 1;
|
||||
REPLAY_EVENT_GENERIC = 2;
|
||||
REPLAY_EVENT_STUCK_NEED_FULL_UPDATE = 3;
|
||||
}
|
||||
|
||||
message CMsgVector {
|
||||
optional float x = 1;
|
||||
optional float y = 2;
|
||||
optional float z = 3;
|
||||
}
|
||||
|
||||
message CMsgVector2D {
|
||||
optional float x = 1;
|
||||
optional float y = 2;
|
||||
}
|
||||
|
||||
message CMsgQAngle {
|
||||
optional float x = 1;
|
||||
optional float y = 2;
|
||||
optional float z = 3;
|
||||
}
|
||||
|
||||
message CMsgRGBA {
|
||||
optional int32 r = 1;
|
||||
optional int32 g = 2;
|
||||
optional int32 b = 3;
|
||||
optional int32 a = 4;
|
||||
}
|
||||
|
||||
message CNETMsg_Tick {
|
||||
optional uint32 tick = 1;
|
||||
optional uint32 host_computationtime = 4;
|
||||
optional uint32 host_computationtime_std_deviation = 5;
|
||||
optional uint32 host_framestarttime_std_deviation = 6;
|
||||
optional uint32 hltv_replay_flags = 7;
|
||||
}
|
||||
|
||||
message CNETMsg_StringCmd {
|
||||
optional string command = 1;
|
||||
}
|
||||
|
||||
message CNETMsg_SignonState {
|
||||
optional uint32 signon_state = 1;
|
||||
optional uint32 spawn_count = 2;
|
||||
optional uint32 num_server_players = 3;
|
||||
repeated string players_networkids = 4;
|
||||
optional string map_name = 5;
|
||||
}
|
||||
|
||||
message CMsg_CVars {
|
||||
message CVar {
|
||||
optional string name = 1;
|
||||
optional string value = 2;
|
||||
optional uint32 dictionary_name = 3;
|
||||
}
|
||||
|
||||
repeated .CMsg_CVars.CVar cvars = 1;
|
||||
}
|
||||
|
||||
message CNETMsg_SetConVar {
|
||||
optional .CMsg_CVars convars = 1;
|
||||
}
|
||||
|
||||
message CNETMsg_NOP {
|
||||
}
|
||||
|
||||
message CNETMsg_Disconnect {
|
||||
optional string text = 1;
|
||||
}
|
||||
|
||||
message CNETMsg_File {
|
||||
optional int32 transfer_id = 1;
|
||||
optional string file_name = 2;
|
||||
optional bool is_replay_demo_file = 3;
|
||||
optional bool deny = 4;
|
||||
}
|
||||
|
||||
message CNETMsg_SplitScreenUser {
|
||||
optional int32 slot = 1;
|
||||
}
|
||||
|
||||
message CNETMsg_PlayerAvatarData {
|
||||
optional uint32 accountid = 1;
|
||||
optional bytes rgb = 2;
|
||||
}
|
||||
|
||||
message CCLCMsg_ClientInfo {
|
||||
optional fixed32 send_table_crc = 1;
|
||||
optional uint32 server_count = 2;
|
||||
optional bool is_hltv = 3;
|
||||
optional bool is_replay = 4;
|
||||
optional uint32 friends_id = 5;
|
||||
optional string friends_name = 6;
|
||||
repeated fixed32 custom_files = 7;
|
||||
}
|
||||
|
||||
message CCLCMsg_Move {
|
||||
optional uint32 num_backup_commands = 1;
|
||||
optional uint32 num_new_commands = 2;
|
||||
optional bytes data = 3;
|
||||
}
|
||||
|
||||
message CCLCMsg_VoiceData {
|
||||
optional bytes data = 1;
|
||||
optional fixed64 xuid = 2;
|
||||
optional .VoiceDataFormat_t format = 3 [default = VOICEDATA_FORMAT_ENGINE];
|
||||
optional int32 sequence_bytes = 4;
|
||||
optional uint32 section_number = 5;
|
||||
optional uint32 uncompressed_sample_offset = 6;
|
||||
}
|
||||
|
||||
message CCLCMsg_BaselineAck {
|
||||
optional int32 baseline_tick = 1;
|
||||
optional int32 baseline_nr = 2;
|
||||
}
|
||||
|
||||
message CCLCMsg_ListenEvents {
|
||||
repeated fixed32 event_mask = 1;
|
||||
}
|
||||
|
||||
message CCLCMsg_RespondCvarValue {
|
||||
optional int32 cookie = 1;
|
||||
optional int32 status_code = 2;
|
||||
optional string name = 3;
|
||||
optional string value = 4;
|
||||
}
|
||||
|
||||
message CCLCMsg_FileCRCCheck {
|
||||
optional int32 code_path = 1;
|
||||
optional string path = 2;
|
||||
optional int32 code_filename = 3;
|
||||
optional string filename = 4;
|
||||
optional int32 file_fraction = 5;
|
||||
optional bytes md5 = 6;
|
||||
optional uint32 crc = 7;
|
||||
optional int32 file_hash_type = 8;
|
||||
optional int32 file_len = 9;
|
||||
optional int32 pack_file_id = 10;
|
||||
optional int32 pack_file_number = 11;
|
||||
}
|
||||
|
||||
message CCLCMsg_LoadingProgress {
|
||||
optional int32 progress = 1;
|
||||
}
|
||||
|
||||
message CCLCMsg_SplitPlayerConnect {
|
||||
optional .CMsg_CVars convars = 1;
|
||||
}
|
||||
|
||||
message CCLCMsg_CmdKeyValues {
|
||||
optional bytes keyvalues = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_ServerInfo {
|
||||
optional int32 protocol = 1;
|
||||
optional int32 server_count = 2;
|
||||
optional bool is_dedicated = 3;
|
||||
optional bool is_official_valve_server = 4;
|
||||
optional bool is_hltv = 5;
|
||||
optional bool is_replay = 6;
|
||||
optional bool is_redirecting_to_proxy_relay = 21;
|
||||
optional int32 c_os = 7;
|
||||
optional fixed32 map_crc = 8;
|
||||
optional fixed32 client_crc = 9;
|
||||
optional fixed32 string_table_crc = 10;
|
||||
optional int32 max_clients = 11;
|
||||
optional int32 max_classes = 12;
|
||||
optional int32 player_slot = 13;
|
||||
optional float tick_interval = 14;
|
||||
optional string game_dir = 15;
|
||||
optional string map_name = 16;
|
||||
optional string map_group_name = 17;
|
||||
optional string sky_name = 18;
|
||||
optional string host_name = 19;
|
||||
optional uint32 public_ip = 20;
|
||||
optional uint64 ugc_map_id = 22;
|
||||
}
|
||||
|
||||
message CSVCMsg_ClassInfo {
|
||||
message class_t {
|
||||
optional int32 class_id = 1;
|
||||
optional string data_table_name = 2;
|
||||
optional string class_name = 3;
|
||||
}
|
||||
|
||||
optional bool create_on_client = 1;
|
||||
repeated .CSVCMsg_ClassInfo.class_t classes = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_SendTable {
|
||||
message sendprop_t {
|
||||
optional int32 type = 1;
|
||||
optional string var_name = 2;
|
||||
optional int32 flags = 3;
|
||||
optional int32 priority = 4;
|
||||
optional string dt_name = 5;
|
||||
optional int32 num_elements = 6;
|
||||
optional float low_value = 7;
|
||||
optional float high_value = 8;
|
||||
optional int32 num_bits = 9;
|
||||
}
|
||||
|
||||
optional bool is_end = 1;
|
||||
optional string net_table_name = 2;
|
||||
optional bool needs_decoder = 3;
|
||||
repeated .CSVCMsg_SendTable.sendprop_t props = 4;
|
||||
}
|
||||
|
||||
message CSVCMsg_Print {
|
||||
optional string text = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_SetPause {
|
||||
optional bool paused = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_SetView {
|
||||
optional int32 entity_index = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_CreateStringTable {
|
||||
optional string name = 1;
|
||||
optional int32 max_entries = 2;
|
||||
optional int32 num_entries = 3;
|
||||
optional bool user_data_fixed_size = 4;
|
||||
optional int32 user_data_size = 5;
|
||||
optional int32 user_data_size_bits = 6;
|
||||
optional int32 flags = 7;
|
||||
optional bytes string_data = 8;
|
||||
}
|
||||
|
||||
message CSVCMsg_UpdateStringTable {
|
||||
optional int32 table_id = 1;
|
||||
optional int32 num_changed_entries = 2;
|
||||
optional bytes string_data = 3;
|
||||
}
|
||||
|
||||
message CSVCMsg_VoiceInit {
|
||||
optional int32 quality = 1;
|
||||
optional string codec = 2;
|
||||
optional int32 version = 3 [default = 0];
|
||||
}
|
||||
|
||||
message CSVCMsg_VoiceData {
|
||||
optional int32 client = 1;
|
||||
optional bool proximity = 2;
|
||||
optional fixed64 xuid = 3;
|
||||
optional int32 audible_mask = 4;
|
||||
optional bytes voice_data = 5;
|
||||
optional bool caster = 6;
|
||||
optional .VoiceDataFormat_t format = 7 [default = VOICEDATA_FORMAT_ENGINE];
|
||||
optional int32 sequence_bytes = 8;
|
||||
optional uint32 section_number = 9;
|
||||
optional uint32 uncompressed_sample_offset = 10;
|
||||
}
|
||||
|
||||
message CSVCMsg_FixAngle {
|
||||
optional bool relative = 1;
|
||||
optional .CMsgQAngle angle = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_CrosshairAngle {
|
||||
optional .CMsgQAngle angle = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_Prefetch {
|
||||
optional int32 sound_index = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_BSPDecal {
|
||||
optional .CMsgVector pos = 1;
|
||||
optional int32 decal_texture_index = 2;
|
||||
optional int32 entity_index = 3;
|
||||
optional int32 model_index = 4;
|
||||
optional bool low_priority = 5;
|
||||
}
|
||||
|
||||
message CSVCMsg_SplitScreen {
|
||||
optional .ESplitScreenMessageType type = 1 [default = MSG_SPLITSCREEN_ADDUSER];
|
||||
optional int32 slot = 2;
|
||||
optional int32 player_index = 3;
|
||||
}
|
||||
|
||||
message CSVCMsg_GetCvarValue {
|
||||
optional int32 cookie = 1;
|
||||
optional string cvar_name = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_Menu {
|
||||
optional int32 dialog_type = 1;
|
||||
optional bytes menu_key_values = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_UserMessage {
|
||||
optional int32 msg_type = 1;
|
||||
optional bytes msg_data = 2;
|
||||
optional int32 passthrough = 3;
|
||||
}
|
||||
|
||||
message CSVCMsg_PaintmapData {
|
||||
optional bytes paintmap = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_GameEvent {
|
||||
message key_t {
|
||||
optional int32 type = 1;
|
||||
optional string val_string = 2;
|
||||
optional float val_float = 3;
|
||||
optional int32 val_long = 4;
|
||||
optional int32 val_short = 5;
|
||||
optional int32 val_byte = 6;
|
||||
optional bool val_bool = 7;
|
||||
optional uint64 val_uint64 = 8;
|
||||
optional bytes val_wstring = 9;
|
||||
}
|
||||
|
||||
optional string event_name = 1;
|
||||
optional int32 eventid = 2;
|
||||
repeated .CSVCMsg_GameEvent.key_t keys = 3;
|
||||
optional int32 passthrough = 4;
|
||||
}
|
||||
|
||||
message CSVCMsg_GameEventList {
|
||||
message key_t {
|
||||
optional int32 type = 1;
|
||||
optional string name = 2;
|
||||
}
|
||||
|
||||
message descriptor_t {
|
||||
optional int32 eventid = 1;
|
||||
optional string name = 2;
|
||||
repeated .CSVCMsg_GameEventList.key_t keys = 3;
|
||||
}
|
||||
|
||||
repeated .CSVCMsg_GameEventList.descriptor_t descriptors = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_TempEntities {
|
||||
optional bool reliable = 1;
|
||||
optional int32 num_entries = 2;
|
||||
optional bytes entity_data = 3;
|
||||
}
|
||||
|
||||
message CSVCMsg_PacketEntities {
|
||||
optional int32 max_entries = 1;
|
||||
optional int32 updated_entries = 2;
|
||||
optional bool is_delta = 3;
|
||||
optional bool update_baseline = 4;
|
||||
optional int32 baseline = 5;
|
||||
optional int32 delta_from = 6;
|
||||
optional bytes entity_data = 7;
|
||||
}
|
||||
|
||||
message CSVCMsg_Sounds {
|
||||
message sounddata_t {
|
||||
optional sint32 origin_x = 1;
|
||||
optional sint32 origin_y = 2;
|
||||
optional sint32 origin_z = 3;
|
||||
optional uint32 volume = 4;
|
||||
optional float delay_value = 5;
|
||||
optional int32 sequence_number = 6;
|
||||
optional int32 entity_index = 7;
|
||||
optional int32 channel = 8;
|
||||
optional int32 pitch = 9;
|
||||
optional int32 flags = 10;
|
||||
optional uint32 sound_num = 11;
|
||||
optional fixed32 sound_num_handle = 12;
|
||||
optional int32 speaker_entity = 13;
|
||||
optional int32 random_seed = 14;
|
||||
optional int32 sound_level = 15;
|
||||
optional bool is_sentence = 16;
|
||||
optional bool is_ambient = 17;
|
||||
}
|
||||
|
||||
optional bool reliable_sound = 1;
|
||||
repeated .CSVCMsg_Sounds.sounddata_t sounds = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_EntityMsg {
|
||||
optional int32 ent_index = 1;
|
||||
optional int32 class_id = 2;
|
||||
optional bytes ent_data = 3;
|
||||
}
|
||||
|
||||
message CSVCMsg_CmdKeyValues {
|
||||
optional bytes keyvalues = 1;
|
||||
}
|
||||
|
||||
message CSVCMsg_EncryptedData {
|
||||
optional bytes encrypted = 1;
|
||||
optional int32 key_type = 2;
|
||||
}
|
||||
|
||||
message CSVCMsg_HltvReplay {
|
||||
optional int32 delay = 1;
|
||||
optional int32 primary_target = 2;
|
||||
optional int32 replay_stop_at = 3;
|
||||
optional int32 replay_start_at = 4;
|
||||
optional int32 replay_slowdown_begin = 5;
|
||||
optional int32 replay_slowdown_end = 6;
|
||||
optional float replay_slowdown_rate = 7;
|
||||
}
|
||||
|
||||
message CCLCMsg_HltvReplay {
|
||||
optional int32 request = 1;
|
||||
optional float slowdown_length = 2;
|
||||
optional float slowdown_rate = 3;
|
||||
optional int32 primary_target_ent_index = 4;
|
||||
optional float event_time = 5;
|
||||
}
|
||||
|
||||
message CSVCMsg_Broadcast_Command {
|
||||
optional string cmd = 1;
|
||||
}
|
||||
103
version.rc
Normal file
103
version.rc
Normal file
@ -0,0 +1,103 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
//#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "winres.h"
|
||||
|
||||
#include <sourcemod_version.h>
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION SM_VERSION_FILE
|
||||
PRODUCTVERSION SM_VERSION_FILE
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "SourceMod Extension"
|
||||
VALUE "FileDescription", "SourceMod Extension"
|
||||
VALUE "FileVersion", SM_VERSION_STRING
|
||||
VALUE "InternalName", "SourceMod Extension"
|
||||
VALUE "LegalCopyright", "Copyright (c) 2004-2022, AlliedModders LLC"
|
||||
VALUE "OriginalFilename", BINARY_NAME
|
||||
VALUE "ProductName", "SourceMod Extension"
|
||||
VALUE "ProductVersion", SM_VERSION_STRING
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""winres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
Loading…
Reference in New Issue
Block a user