Giter VIP home page Giter VIP logo

halflife-updated's Introduction

About

Half-Life Updated, Opposing Force Updated and Blue Shift Updated are repositories that provide updated versions of the Half-Life SDK, targeted to the 3 Half-Life 1 PC games officially available.

Purpose

Each repository provides project files compatible with Visual Studio 2019 and 2022, as well as bug fixes. The Opposing Force and Blue Shift projects are reference implementations of their respective games. This means they provide the original features, implemented as they are in the original games, including the many cases of code duplication.

The goal of the Updated repositories is to allow modders to make mods based on these games, while providing bug fixes that could be applied to the official games as well. A mod installation is also provided for each repository to allow players to play these games with all bug fixes applied.

This mod installation includes files that are required when making a mod based on these SDKs.

The following types of changes are in scope for this project:

  • Bug fixes
  • Features to improve the game's code (refactoring, generalizing, simplifying). This does not include complete redesigns of systems as this makes it much harder for modders to integrate changes and get started with Half-Life modding
  • Fixing game-breaking bugs in game assets (e.g. soft-locked trigger setups)

The following types of changes are out of scope:

  • Graphical upgrades
  • Physics engine changes
  • Other engine changes
  • Gameplay changes

If you need help setting up the SDK or developing a mod please ask on the TWHL website or on its Discord server.

The TWHL wiki has tutorials to guide you through making a mod: https://twhl.info/wiki/page/Half-Life_Programming_-_Getting_Started

See the #welcome channel for more information about the Discord server. Please do not use the #unified-sdk channel for general help requests, there are channels for modding help.

See the TWHL thread for status updates about these projects: https://twhl.info/thread/view/20055

Requirements to run mods built with this SDK

Only the latest Steam version of Half-Life is supported. For the Opposing Force and Blue Shift repositories you will need to own the games and have them installed to use their assets.

Building this SDK

See BUILDING.md

Mod installation instructions

See INSTALL.md

What isn't supported

Backwards compatibility with WON and older versions of Steam Half-Life is not supported. Xash isn't supported, but may work. You cannot use Updated clients to play on vanilla servers, you also cannot use vanilla clients to play on Updated servers.

Placing Updated game dlls in vanilla installations is not supported.

These repositories have a limited scope and will not have major changes applied.

Deathmatch Classic and Ricochet

The source code for Deathmatch Classic and Ricochet is in the original Half-Life SDK. The purpose of these updated repositories is to provide updated versions only for Half-Life and its expansion packs, so the source code for these mods has been removed.

Since the vanilla versions don't compile under newer versions of Visual Studio separate repositories have been made that provide the same updates to make them compile:

Unlike the other updated repositories these only provide basic fixes. No further development and support will be provided.

Changelog

See CHANGELOG.md and FULL_UPDATED_CHANGELOG.md

Half Life 1 SDK LICENSE

Half Life 1 SDK Copyright© Valve Corp.

THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU AND VALVE CORPORATION (“Valve”). PLEASE READ IT BEFORE DOWNLOADING OR USING THE HALF LIFE 1 SDK (“SDK”). BY DOWNLOADING AND/OR USING THE SOURCE ENGINE SDK YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE PLEASE DON’T DOWNLOAD OR USE THE SDK.

You may, free of charge, download and use the SDK to develop a modified Valve game running on the Half-Life engine. You may distribute your modified Valve game in source and object code form, but only for free. Terms of use for Valve games are found in the Steam Subscriber Agreement located here: http://store.steampowered.com/subscriber_agreement/

You may copy, modify, and distribute the SDK and any modifications you make to the SDK in source and object code form, but only for free. Any distribution of this SDK must include this license.txt and third_party_licenses.txt.

Any distribution of the SDK or a substantial portion of the SDK must include the above copyright notice and the following:

DISCLAIMER OF WARRANTIES. THE SOURCE SDK AND ANY OTHER MATERIAL DOWNLOADED BY LICENSEE IS PROVIDED “AS IS”. VALVE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO THE SDK, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.

LIMITATION OF LIABILITY. IN NO EVENT SHALL VALVE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE ENGINE AND/OR THE SDK, EVEN IF VALVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

If you would like to use the SDK for a commercial purpose, please contact Valve at [email protected].

Half-Life 1

This is the README for the Half-Life 1 engine and its associated games.

Please use this repository to report bugs and feature requests for Half-Life 1 related products.

Reporting Issues

If you encounter an issue while using Half-Life 1 games, first search the issue list to see if it has already been reported. Include closed issues in your search.

If it has not been reported, create a new issue with at least the following information:

  • a short, descriptive title;
  • a detailed description of the issue, including any output from the command line;
  • steps for reproducing the issue;
  • your system information.*; and
  • the version output from the in‐game console.

Please place logs either in a code block (press M in your browser for a GFM cheat sheet) or a gist.

* The preferred and easiest way to get this information is from Steam's Hardware Information viewer from the menu (Help -> System Information). Once your information appears: right-click within the dialog, choose Select All, right-click again, and then choose Copy. Paste this information into your report, preferably in a code block.

Conduct

There are basic rules of conduct that should be followed at all times by everyone participating in the discussions. While this is generally a relaxed environment, please remember the following:

  • Do not insult, harass, or demean anyone.
  • Do not intentionally multi-post an issue.
  • Do not use ALL CAPS when creating an issue report.
  • Do not repeatedly update an open issue remarking that the issue persists.

Remember: Just because the issue you reported was reported here does not mean that it is an issue with Half-Life. As well, should your issue not be resolved immediately, it does not mean that a resolution is not being researched or tested. Patience is always appreciated.

Contributors

This is a list of everybody who contributed to these projects. Thanks for helping to make them better!

If you believe your name should be on this list make sure to let us know!

  • Sam Vanheer
  • JoelTroch
  • malortie
  • dtugend
  • Revenant100
  • fel1x-developer
  • LogicAndTrick
  • FreeSlave
  • zpl-zak
  • edgarbarney
  • Toodles2You
  • Jengerer
  • thefoofighter
  • Maxxiii
  • johndrinkwater
  • anchurcn
  • DanielOaks
  • MegaBrutal
  • suXinjke
  • IntriguingTiles
  • Oxofemple
  • YaLTeR
  • Ronin4862
  • the man
  • vasiavasiavasia95
  • NongBenz
  • Hezus
  • Anton
  • ArroganceJustified
  • a1batross
  • zaklaus
  • Uncle Mike
  • Bacontsu
  • L453rh4wk
  • P38TaKjYzY
  • hammermaps
  • LuckNukeHunter99
  • Veinhelm
  • jay!
  • BryanHaley
  • λλλλλλ
  • Streit
  • rbar1um43
  • LambdaLuke87
  • almix
  • sabian

Special Thanks

  • Valve Software
  • Gearbox Software
  • Alfred Reynolds
  • mikela-valve
  • TWHL Community
  • Knockout
  • Gamebanana
  • ModDB

halflife-updated's People

Contributors

alfred-valve avatar anchurcn avatar danieloaks avatar dtugend avatar edgarbarney avatar fel1x-developer avatar freeslave avatar intriguingtiles avatar jengerer avatar joeltroch avatar johndrinkwater avatar logicandtrick avatar malortie avatar maxxiii avatar megabrutal avatar mikela-valve avatar revenant100 avatar samvanheer avatar solokiller avatar suxinjke avatar thefoofighter avatar toodles2you avatar zpl-zak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

halflife-updated's Issues

Rework uses of platform-specific code to be cross-platform

Currently there is code that depends on platform-specific types, functions and constants, which are handled on other platforms by defining that code manually.

Rework this code to remove the dependencies and use a cross-platform approach instead.

makefile has sometimes errors

Hello Solo and Shepard,

I have problem with sometimes not existing like errors:

sourceskyboxer@sourceskyboxer-desktop:~/Downloads/halflife-updated-master/linux$ make
mkdir release;
mkdir: cannot create directory ‘release’: File exists
Makefile:145: recipe for target 'build_dir' failed
make: [build_dir] Error 1 (ignored)
cd release
make -j8 -f Makefile.hldll CC="gcc -m32" ARCH=i386 CPP_LIB="-L/usr/lib/gcc/x86_64-linux-gnu/5 -lstdc++ -ldl -lpthread" BUILD_DIR=release BUILD_OBJ_DIR=release/obj SOURCE_DIR=.. ENGINE_SRC_DIR=../engine COMMON_SRC_DIR=../common PM_SRC_DIR=../pm_shared GAME_SHARED_SRC_DIR=../game_shared GAMEDB_SRC_DIR=../common/gamedb BASE_CFLAGS="-fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX" SHLIBEXT=so SHLIBCFLAGS= SHLIBLDFLAGS="-shared -gdwarf-2 -g2 -Wl,-Map,hl_map.txt" PUBLIC_SRC_DIR=../public CFG=release OS=Linux ARCH_CFLAGS="-O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387" 
make[1]: Entering directory '/home/sourceskyboxer/Downloads/halflife-updated-master/linux'
mkdir release/obj
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/aflock.o -c ../dlls/aflock.cpp
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/agrunt.o -c ../dlls/agrunt.cpp
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/airtank.o -c ../dlls/airtank.cpp
mkdir release/obj/hldll
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/animating.o -c ../dlls/animating.cpp
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/animation.o -c ../dlls/animation.cpp
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/apache.o -c ../dlls/apache.cpp
gcc -m32 -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DHL1 -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -DQUIVER -DQUAKE2 -DVALVE_DLL -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX  -O3 -gdwarf-2 -g2  -march=pentium-m -mfpmath=387  -DCLIENT_WEAPONS -o release/obj/hldll/barnacle.o -c ../dlls/barnacle.cpp
mkdir release/obj/hldll/wpn_shared
mkdir release/obj/hldll/pm_shared
In file included from ../common/Platform.h:37:0,
                 from ../dlls/extdll.h:23,
                 from ../dlls/agrunt.cpp:19:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
In file included from ../common/Platform.h:37:0,
                 from ../dlls/animation.cpp:16:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
In file included from ../dlls/aflock.cpp:17:0:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
In file included from ../common/Platform.h:37:0,
                 from ../dlls/extdll.h:23,
                 from ../dlls/airtank.cpp:15:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
Makefile.hldll:160: recipe for target 'release/obj/hldll/animation.o' failed
make[1]: *** [release/obj/hldll/animation.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile.hldll:160: recipe for target 'release/obj/hldll/airtank.o' failed
make[1]: *** [release/obj/hldll/airtank.o] Error 1
Makefile.hldll:160: recipe for target 'release/obj/hldll/aflock.o' failed
make[1]: *** [release/obj/hldll/aflock.o] Error 1
mkdir release/obj/hldll/game_shared
Makefile.hldll:160: recipe for target 'release/obj/hldll/agrunt.o' failed
make[1]: *** [release/obj/hldll/agrunt.o] Error 1
In file included from ../common/Platform.h:37:0,
                 from ../dlls/extdll.h:23,
                 from ../dlls/animating.cpp:23:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
In file included from ../common/Platform.h:37:0,
                 from ../dlls/extdll.h:23,
                 from ../dlls/barnacle.cpp:19:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
In file included from ../common/Platform.h:37:0,
                 from ../dlls/extdll.h:23,
                 from ../dlls/apache.cpp:17:
../public/archtypes.h:12:22: fatal error: sys/stat.h: No such file or directory
compilation terminated.
compilation terminated.
Makefile.hldll:160: recipe for target 'release/obj/hldll/animating.o' failed
make[1]: *** [release/obj/hldll/animating.o] Error 1
Makefile.hldll:160: recipe for target 'release/obj/hldll/barnacle.o' failed
make[1]: *** [release/obj/hldll/barnacle.o] Error 1
Makefile.hldll:160: recipe for target 'release/obj/hldll/apache.o' failed
make[1]: *** [release/obj/hldll/apache.o] Error 1
make[1]: Leaving directory '/home/sourceskyboxer/Downloads/halflife-updated-master/linux'
Makefile:161: recipe for target 'hl' failed
make: *** [hl] Error 2

That is my Ubuntu 16.04 x64 - How do I fix? What do I forget to install debs?

// EDIT Please add forgotten link to /usr/include/sys and /usr/include/bits
Than It works fine. Please add read-me for Linux build preparations

Define platform-agnostic types for common structures

The game currently relies on the Windows API for certain common structures, like POINT and RECT. Rework this to use platform-agnostic types. Also rework wrect to fit with these types to eliminate duplicate types.

Convert all include guards to pragma once

#pragma once is supported in MSVC, G++ and Clang and is preferred over macro-based include guards. It's simpler, smaller, doesn't pollute the global namespace, doesn't risk symbols conflicting and doesn't require changes when filenames change.

Merge platform abstraction headers

There are a few headers that deal with abstracting platform-specific functionality:

  • Platform.h
  • port.h
  • nowin.h

nowin.h was rendered obsolete by refactoring work done in animation.cpp and can be removed. port.h should be merged into Platform.h and removed.

Obsolete definitions should be removed to simplify Platform.h as much as possible.

Remove redundant include guards

Some headers are included using the "redundant include guard pattern":

#ifndef HEADER_H
#include "header.h"
#endif

This pattern is meant to prevent the preprocessor from opening headers multiple times to check for include guards. This used to speed up compilation. It's no longer a useful optimization thanks to improvements in compilers so it only complicates things.

Health HUD has constant padding

It's very minor nitpick, but I was checking out the codebase and noticed you accounted for health more than 255, but there's this constant padding which doesn't match the original. I got an impression that while this codebase fixes internal/minor issues, it would still aim to stay close to the original.

I'd like to base project of mine on this codebase and I'd get rid of padding for myself anyway, should I pull request rendering of health with more than 3 digits without constant padding if I get to it, or you'd leave it as it is?

halflife-updated
image

original
image

[func_breakable] KeyValue "explosion" does nothing

The "explosion" KeyValue for breakable entities does nothing. It was supposed to allow mappers to set the direction of the gibs.

halflife.fgd data:
Screenshot_2

Valve has set this KeyValue for many breakable objects on their maps, so you can see the changes in vanilla Half-Life.

c2a5.bsp data:
Screenshot_3

The "explosion" KeyValue is set to 1 for some of breakable objects on this map.

Here's my commit how to fix this issue:
https://github.com/ArroganceJustified/Ultimate-Point/commit/e974912f933f49bec5616df8eb18a9f7cdbf86ce

You can test the result of this fix on c2a5 by breaking the boxes near the spawn point:
https://www.youtube.com/watch?v=NRlLxsvDVE0

I have verified that this was also fixed in Sven Co-op and Half-Life: Source.

P.S. Also yes, I saw Valve comment above the if statement, but still, if it's defined in .fgd file then it supposed to work.

Remove useless try-catch statement in command menu parsing code

There is a try-catch statement in the command menu parsing code that is completely useless. No exception of type CException exists, the exception is caught incorrectly (by non-const pointer instead of const reference), and nothing will throw the exception.

Remove this statement.

Cant build anything

if i try to build something(some will build) will not build

Theres like 443 errors in dmcdll.vcxproj, but why

And no, i havent benn working with game engines.

Weapons Not Animating in Multiplayer

Ran some tests on the latest build, for some reason none of the weapons animate when connecting to a server. They appear to work fine in singleplayer though.

EDIT: Also happens in OpFor multiplayer.

Remove obsolete preprocessor macro checks

There are a few preprocessor macro checks in #if/#ifdef/#ifndef checks that are obsolete and can be removed:

  • OEM_BUILD (meant for Day One demo builds, never applicable to Steam Half-Life)
  • HLDEMO_BUILD (meant for Half-Life Uplink, never applicable to Steam Half-Life)
  • TEMP_FOR_SCREEN_SHOTS (always defined, enables cycler entity)
  • DEDICATED (never defined in game libraries, remnant of swds.dll engine code seen in old Linux makefile, never referenced in game libraries)
  • DISABLE_VEC_FUNCS (never defined in game libraries)

[Linux] Half-Life can't load compiled libraries

I've built the SO files following this tutorial:
https://twhl.info/wiki/page/Half-Life_Programming_-_Getting_Started

For some reason, Half-Life (up-to-date Steam for Linux version) can't load the libraries and it doesn't give much info why. For the client library, I only get the following message:
could not load library .../client.so
(In the place of "...", it writes the full path.)

When I try to go only with the server library, the following messages appear in the developer console.

LoadLibrary failed on /home/megabrutal/.steam/steam/steamapps/common/Half-Life/deltasection/dlls/hl.so: /home/megabrutal/.steam/steam/steamapps/common/Half-Life/deltasection/dlls/hl.so: undefined symbol: _ZdlPvj
Last 32 messages parsed.
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
0 0000 svc_bad
BAD:   -1:svc_bad
Wrote erroneous message to buffer.dat
Host_Error: Couldn't get DLL API from /home/megabrutal/.steam/steam/steamapps/common/Half-Life/deltasection/dlls/hl.so!

Contents of the mentioned buffer.dat:

00000000  00 00 00 00 ff ff ff ff                           |........|

So... the libraries are built but then just don't work. What am I doing wrong?

What's also strange is that my SOs have significant size differences to the originals (might be because of debug info, though neither of the binaries are stripped).

-rwxr-xr-x 1 megabrutal megabrutal 1036632 aug   26 00:23 deltasection/cl_dlls/client.so
-rwxr-xr-x 1 megabrutal megabrutal 4000283 márc  22  2020 valve/cl_dlls/client.so
-rwxr-xr-x 1 megabrutal megabrutal 2261332 aug   26 00:23 deltasection/dlls/hl.so
-rwxrwxr-x 1 megabrutal megabrutal 6773862 jún   21 00:06 valve/dlls/hl.so

Various other differences:

megabrutal@thinkpad:~/.steam/steam/steamapps/common/Half-Life$ file */dlls/hl.so
deltasection/dlls/hl.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=217a8c162def419cdbb4b028cccff1e105c7fea8, not stripped
valve/dlls/hl.so:        ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, with debug_info, not stripped
megabrutal@thinkpad:~/.steam/steam/steamapps/common/Half-Life$ ldd valve/dlls/hl.so
	linux-gate.so.1 (0xf7f3d000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7c2a000)
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7a4b000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7854000)
	/lib/ld-linux.so.2 (0xf7f3f000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7835000)
megabrutal@thinkpad:~/.steam/steam/steamapps/common/Half-Life$ ldd deltasection/dlls/hl.so
	linux-gate.so.1 (0xf7fbc000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7b9a000)
	/lib/ld-linux.so.2 (0xf7fbe000)

As of now I have no modifications to the code, I'm compiling from d872ad0.

Disable as many Windows.h dependencies as possible

The Windows.h header includes a lot of other stuff that slows down project compilation. Disabling as many of them as possible reduces build times for the client and server combined by 3 seconds, from 17 to 14 seconds. Larger projects will see a bigger decrease, scaling linearly with the number of source files that include Platform.h directly or indirectly.

Remove extern C wrappers around functions

Since the entire codebase is written in C++ there is no reason to use extern "C" to decorate functions. All functions are compiled as C++ code, so this only adds visual noise.

Only functions that are exported from the libraries (mod interfaces) should keep this.

Any #ifdef __cplusplus checks involved should also be removed.

Horizontal mouselook is capped

When I move the mouse my view is capped on the horizontal axis. It's like how you can't look up/down past a certain point, but for left/right. I tried toggling the mouse and controller flags in Options but that didn't help.

I compiled with VS2019 in debug mode in Windows 10. When I compile the official SDK with VS2010 I don't have this problem.

[com_model.h] texture_t data is incorrect

The texture_t data is incorrect in vanilla HL SDK.

When I worked on R_InitTextures, I noticed that r_notexture_mip->offsets[0] (sizeof(texture_t)) is 64 when IDA shows it's 72;
Then I noticed that there are 2 missing varibales (and another 1 has a different type) that are used by the engine.

Reverse-engineered data: (sizeof=0x48 - 72)
Screenshot_3

The struct should look like this:
Screenshot_4

Bshift Support?

Would it be possible to add compatibility for Blue Shift as well? Or perhaps in another branch?

Change default toolset to non-XP compatible one and set Windows SDK version to W10

Currently the toolset for both VS2017 and 2019 projects default to XP compatible ones. Developers have to install this toolset separately to use it, which could cause problems.

Since Steam no longer supports Windows XP this isn't worth keeping as the default setting, so change it.

The Windows SDK version should be set to version 10 so the projects will compile.

Visual Studio 2019 Community - Support End for XP Tool?

I can compile in Linux successfuly but in Windows says require install XP Tools.
When i installed XP Tools with Visual Studio Installer, i tried compile again but now says "Windows XP tools disabled and no longer available for newer Visual Studio versions".

How i can solve? Will it be possible to use this project in the future?

image

(I got banned very easily on Discord server. Thanks.)

Not building under Linux

Hey! Installed all the dependencies (I think? at last from what wiki told me to) and after a couple of seconds that's all I've got:

make mkdir release; cd release make -j8 -f Makefile.hldll CC="gcc -m32" ARCH=i386 CPP_LIB="-L/usr/lib/gcc/x86_64-linux-gnu/9/32 -lstdc++ -ldl -lpthread" BUILD_DIR=release BUILD_OBJ_DIR=release/obj SOURCE_DIR=.. ENGINE_SRC_DIR=../engine COMMON_SRC_DIR=../common PM_SRC_DIR=../pm_shared GAME_SHARED_SRC_DIR=../game_shared BASE_CFLAGS="-fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX" SHLIBEXT=so SHLIBCFLAGS= SHLIBLDFLAGS="-shared -Wl,-Map,hl_map.txt" PUBLIC_SRC_DIR=../public CFG=release OS=Linux ARCH_CFLAGS="-O3 -march=pentium-m -mfpmath=387" make[1]: Entering directory '/home/dragon99919/Downloads/git/halflife-updated/linux' mkdir release/obj gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/aflock.o -c ../dlls/aflock.cpp mkdir release/obj/hldll gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/agrunt.o -c ../dlls/agrunt.cpp mkdir release/obj/hldll/wpn_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/airtank.o -c ../dlls/airtank.cpp mkdir release/obj/hldll/pm_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/animating.o -c ../dlls/animating.cpp mkdir release/obj/hldll/game_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/animation.o -c ../dlls/animation.cpp mkdir release/obj/hldll/common gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/apache.o -c ../dlls/apache.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/barnacle.o -c ../dlls/barnacle.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/barney.o -c ../dlls/barney.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bigmomma.o -c ../dlls/bigmomma.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bloater.o -c ../dlls/bloater.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bmodels.o -c ../dlls/bmodels.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bullsquid.o -c ../dlls/bullsquid.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/buttons.o -c ../dlls/buttons.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/cbase.o -c ../dlls/cbase.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/client.o -c ../dlls/client.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/combat.o -c ../dlls/combat.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/controller.o -c ../dlls/controller.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-make mkdir release; cd release make -j8 -f Makefile.hldll CC="gcc -m32" ARCH=i386 CPP_LIB="-L/usr/lib/gcc/x86_64-linux-gnu/9/32 -lstdc++ -ldl -lpthread" BUILD_DIR=release BUILD_OBJ_DIR=release/obj SOURCE_DIR=.. ENGINE_SRC_DIR=../engine COMMON_SRC_DIR=../common PM_SRC_DIR=../pm_shared GAME_SHARED_SRC_DIR=../game_shared BASE_CFLAGS="-fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX" SHLIBEXT=so SHLIBCFLAGS= SHLIBLDFLAGS="-shared -Wl,-Map,hl_map.txt" PUBLIC_SRC_DIR=../public CFG=release OS=Linux ARCH_CFLAGS="-O3 -march=pentium-m -mfpmath=387" make[1]: Entering directory '/home/dragon99919/Downloads/git/halflife-updated/linux' mkdir release/obj gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/aflock.o -c ../dlls/aflock.cpp mkdir release/obj/hldll gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/agrunt.o -c ../dlls/agrunt.cpp mkdir release/obj/hldll/wpn_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/airtank.o -c ../dlls/airtank.cpp mkdir release/obj/hldll/pm_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/animating.o -c ../dlls/animating.cpp mkdir release/obj/hldll/game_shared gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/animation.o -c ../dlls/animation.cpp mkdir release/obj/hldll/common gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/apache.o -c ../dlls/apache.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/barnacle.o -c ../dlls/barnacle.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/barney.o -c ../dlls/barney.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bigmomma.o -c ../dlls/bigmomma.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bloater.o -c ../dlls/bloater.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bmodels.o -c ../dlls/bmodels.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/bullsquid.o -c ../dlls/bullsquid.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/buttons.o -c ../dlls/buttons.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/cbase.o -c ../dlls/cbase.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/client.o -c ../dlls/client.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/combat.o -c ../dlls/combat.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/controller.o -c ../dlls/controller.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/crossbow.o -c ../dlls/crossbow.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/crowbar.o -c ../dlls/crowbar.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/defaultai.o -c ../dlls/defaultai.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/doors.o -c ../dlls/doors.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/effects.o -c ../dlls/effects.cpp make[1]: *** No rule to make target 'release/obj/hldll/ehandle.o', needed by 'hl.so'. Stop. make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/dragon99919/Downloads/git/halflife-updated/linux' make: *** [Makefile:162: hl] Error 2 type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/crossbow.o -c ../dlls/crossbow.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/crowbar.o -c ../dlls/crowbar.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/defaultai.o -c ../dlls/defaultai.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/doors.o -c ../dlls/doors.cpp gcc -m32 -I../dlls -I../engine -I../common -I../pm_shared -I../game_shared -I../public -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -Dstricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_alloca=alloca -fno-exceptions -fexpensive-optimizations -D_vsnprintf=vsnprintf -DNO_MALLOC_OVERRIDE -Werror=return-type -w -DLINUX -D_LINUX -O3 -march=pentium-m -mfpmath=387 -DCLIENT_WEAPONS -o release/obj/hldll/effects.o -c ../dlls/effects.cpp make[1]: *** No rule to make target 'release/obj/hldll/ehandle.o', needed by 'hl.so'. Stop. make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory '/home/dragon99919/Downloads/git/halflife-updated/linux' make: *** [Makefile:162: hl] Error 2

Add new cvar flags added by recent engine updates

Recent engine updates added a few new cvar flags:

  • FCVAR_ISEXECUTED: indicates that the cvar value will be passed to the exec command; the value will be sanitized to prevent additional commands from being appended
  • FCVAR_ISPATH: indicates that the cvar value represents a file path; absolute paths and invalid directory separators are not allowed and values failing these checks will be rejected

Add these flags.

Remove game_controls.lib from client

The client includes game_controls.lib, but doesn't use it. This is an import library containing functionality not useful to clients, so remove it.

Clean up uses of the node graph global

The node graph global variable WorldGraph is needlessly forward declared multiple times and is referenced from inside CGraph member functions. Clean this up.

Remove obsolete engine APIs related to security modules

APIProxy.h defines types, function pointers and constants for dealing with security modules, which have been obsolete for a long time. Remove all of this.

Also remove the engine function declarations involved with loading and calling the client.

Black Screen at beginning of Unforeseen Consequences

So I've been meaning to report this for a while, I think this also exists in the standard Steam version as well. But sometimes when playing the singleplayer campaign, after the the resonance cascade begins and you're loaded to the beginning of Unforeseen Consequences, instead of the players view fading in from black, the screen just stays completely black. Usually restarting the campaign over helps, but not loading a quicksave before the sequence.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.