Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] GoldSrc protocol support #1418

Closed
wants to merge 23 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
d1f0af1
3rdparty: bzip2: add bzip2 code from ReHLDS
a1batross Aug 31, 2023
5ec4414
engine: client: redefine legacymode as protocol state, add third stat…
a1batross Aug 31, 2023
b541a14
engine: common: add buffer munge functions
a1batross Aug 31, 2023
05f2eda
engine: netchan: enable buffer munge on netchan
a1batross Aug 31, 2023
b636078
engine: netchan: implement GoldSrc specific netchan fragments and BZi…
a1batross Aug 31, 2023
1718119
engine: add GoldSrc protocol definitions, support spewing GoldSrc and…
a1batross Aug 31, 2023
8bf8488
engine: net_encode: add GoldSrc delta support
a1batross Aug 31, 2023
cc6fa14
engine: client: split entities packet parser into smaller functions t…
a1batross Aug 31, 2023
59f18c1
engine: client: support GoldSrc encoding for temp entities, it misses…
a1batross Aug 31, 2023
76324b3
engine: client: cl_events: svc_event and svc_event_reliable parsing f…
a1batross Aug 31, 2023
d439540
engine: net_buffer: support GoldSrc signed integer encoding in bit bu…
a1batross Aug 31, 2023
16ec609
engine: client: add support for GoldSrc server-to-client connectionle…
a1batross Aug 31, 2023
e92a71c
engine: client: fix clc_move for GoldSrc protocol
a1batross Aug 31, 2023
4a6eefa
engine: client: fix first signon server command for GoldSrc protocol
a1batross Aug 31, 2023
0676e5b
engine: client: support parsing first signon messages, i.e. serverdat…
a1batross Aug 31, 2023
7661a86
engine: client: add file dedicated to parsing GoldSrc server messages
a1batross Aug 31, 2023
2ab95af
Fix legacy mode
Aug 31, 2023
95d9395
MSG_ReadDeltaEntity: port bad delta recovery from old engine
Aug 31, 2023
b53fc71
engine: network: support GoldSrc shorter SPLITPACKET header
a1batross Aug 31, 2023
a38a3b2
engine: client: implement GoldSrc svc_spawnstaticsound
a1batross Aug 31, 2023
5a2f04a
engine: client: remove extra debug logging for svc_spawnbaseline
a1batross Sep 1, 2023
3744d65
engine: client: do not print empty lightstyles
a1batross Sep 1, 2023
8aa3aa1
engine: client: refactor GoldSrc packet entities parser, fix entities…
a1batross Sep 1, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
282 changes: 282 additions & 0 deletions 3rdparty/bzip2/include/bzip2/bzlib.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@

/*-------------------------------------------------------------*/
/*--- Public header file for the library. ---*/
/*--- bzlib.h ---*/
/*-------------------------------------------------------------*/

/* ------------------------------------------------------------------
This file is part of bzip2/libbzip2, a program and library for
lossless, block-sorting data compression.

bzip2/libbzip2 version 1.0.6 of 6 September 2010
Copyright (C) 1996-2010 Julian Seward <[email protected]>

Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.

This program is released under the terms of the license contained
in the file LICENSE.
------------------------------------------------------------------ */


#ifndef _BZLIB_H
#define _BZLIB_H

#ifdef __cplusplus
extern "C" {
#endif

#define BZ_RUN 0
#define BZ_FLUSH 1
#define BZ_FINISH 2

#define BZ_OK 0
#define BZ_RUN_OK 1
#define BZ_FLUSH_OK 2
#define BZ_FINISH_OK 3
#define BZ_STREAM_END 4
#define BZ_SEQUENCE_ERROR (-1)
#define BZ_PARAM_ERROR (-2)
#define BZ_MEM_ERROR (-3)
#define BZ_DATA_ERROR (-4)
#define BZ_DATA_ERROR_MAGIC (-5)
#define BZ_IO_ERROR (-6)
#define BZ_UNEXPECTED_EOF (-7)
#define BZ_OUTBUFF_FULL (-8)
#define BZ_CONFIG_ERROR (-9)

typedef
struct {
char *next_in;
unsigned int avail_in;
unsigned int total_in_lo32;
unsigned int total_in_hi32;

char *next_out;
unsigned int avail_out;
unsigned int total_out_lo32;
unsigned int total_out_hi32;

void *state;

void *(*bzalloc)(void *,int,int);
void (*bzfree)(void *,void *);
void *opaque;
}
bz_stream;


#ifndef BZ_IMPORT
#define BZ_EXPORT
#endif

#ifndef BZ_NO_STDIO
/* Need a definitition for FILE */
#include <stdio.h>
#endif

#ifdef _WIN32
# include <windows.h>
# ifdef small
/* windows.h define small to char */
# undef small
# endif
# ifdef BZ_EXPORT
# define BZ_API(func) WINAPI func
# define BZ_EXTERN extern
# else
/* import windows dll dynamically */
# define BZ_API(func) (WINAPI * func)
# define BZ_EXTERN
# endif
#else
# define BZ_API(func) func
# define BZ_EXTERN extern
#endif


/*-- Core (low-level) library functions --*/

BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
bz_stream* strm,
int blockSize100k,
int verbosity,
int workFactor
);

BZ_EXTERN int BZ_API(BZ2_bzCompress) (
bz_stream* strm,
int action
);

BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
bz_stream* strm
);

BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
bz_stream *strm,
int verbosity,
int small
);

BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
bz_stream* strm
);

BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
bz_stream *strm
);



/*-- High(er) level library functions --*/

#ifndef BZ_NO_STDIO
#define BZ_MAX_UNUSED 5000

typedef void BZFILE;

BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
int* bzerror,
FILE* f,
int verbosity,
int small,
void* unused,
int nUnused
);

BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
int* bzerror,
BZFILE* b
);

BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
int* bzerror,
BZFILE* b,
void** unused,
int* nUnused
);

BZ_EXTERN int BZ_API(BZ2_bzRead) (
int* bzerror,
BZFILE* b,
void* buf,
int len
);

BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
int* bzerror,
FILE* f,
int blockSize100k,
int verbosity,
int workFactor
);

BZ_EXTERN void BZ_API(BZ2_bzWrite) (
int* bzerror,
BZFILE* b,
void* buf,
int len
);

BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
int* bzerror,
BZFILE* b,
int abandon,
unsigned int* nbytes_in,
unsigned int* nbytes_out
);

BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
int* bzerror,
BZFILE* b,
int abandon,
unsigned int* nbytes_in_lo32,
unsigned int* nbytes_in_hi32,
unsigned int* nbytes_out_lo32,
unsigned int* nbytes_out_hi32
);
#endif


/*-- Utility functions --*/

BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
char* dest,
unsigned int* destLen,
char* source,
unsigned int sourceLen,
int blockSize100k,
int verbosity,
int workFactor
);

BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
char* dest,
unsigned int* destLen,
char* source,
unsigned int sourceLen,
int small,
int verbosity
);


/*--
Code contributed by Yoshioka Tsuneo ([email protected])
to support better zlib compatibility.
This code is not _officially_ part of libbzip2 (yet);
I haven't tested it, documented it, or considered the
threading-safeness of it.
If this code breaks, please contact both Yoshioka and me.
--*/

BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
void
);

#ifndef BZ_NO_STDIO
BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
const char *path,
const char *mode
);

BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
int fd,
const char *mode
);

BZ_EXTERN int BZ_API(BZ2_bzread) (
BZFILE* b,
void* buf,
int len
);

BZ_EXTERN int BZ_API(BZ2_bzwrite) (
BZFILE* b,
void* buf,
int len
);

BZ_EXTERN int BZ_API(BZ2_bzflush) (
BZFILE* b
);

BZ_EXTERN void BZ_API(BZ2_bzclose) (
BZFILE* b
);

BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
BZFILE *b,
int *errnum
);
#endif

#ifdef __cplusplus
}
#endif

#endif

/*-------------------------------------------------------------*/
/*--- end bzlib.h ---*/
/*-------------------------------------------------------------*/
Loading
Loading