This engine is made by russian guys, so there some raw google translation from author about why it can't work with CS mod DLL:
Quote:
Originally Posted by Дядя Миша
Those who had worked with the engine, must have noticed that xash uses as a normal game DLL SDK from Half-Life, but full compatibility (ie the possibility to connect already-compiled libraries) there is not present. Those comrades who had hoped in this way to connect your favorite Counter-Strike or Opposing Force, naturally fly.
And I periodically write about how it would be good to stir up a really quite full support. In response to such requests would like to express all his ideas as to why I personally believe such support impractical and in some cases - and impossible.
So:
1. Xash supports up to 16 bonecontrollers and up to 16 blendings of animations. These values are stored on the server in entvars_t, where the original reserved for only 4 cells each. Thus, to maintain compatibility here - just kill the additional features.
2. Xash uses almost identical structures edicts on both the client and the server (thanks to a local client Xash world, in many respects identical to the server that allows the tracing as the server), in hl1 - spike, multiple different redeclarations of physent_t, cl_entity_t that knocks confusing novice coders, and the more experienced is not very convenient. Because of this, certainly breaks compatibility with PM_Move in particular and with the code of the client - in general.
3. Because of the advanced features TriAPI (in Xash is not just a wrapper over calls gl-functions), has been almost completely rewritten most client-effects - particularly on the client have been moved: all of the code of temporary entities, all code of rays, most of the code to create effects through flags EF_ (particles, flashlight).
Of course all this has opened up many new opportunities for coders (such as adding new types of rays and the temporary entities), but it completely killed the compatibility of clients.
4. In any case, I have very little idea of the generation and WonID SteamID - without the source of the Half-Life, I probably would not have been able to recreate their work, as required by the library.
5. Network protocols Xash and half-life in any way incompatible.
And not just because I could not recreate them. Xash uses a more efficient and economical protocol, in particular an improved model of the exchange states of entities, classnames transfer over the network (which in turn enables us to work FindEntityByClassname on the client).
6. The mechanism of drop-out invisible objects on the server must take into account the entity, visible through the portals. In any case, this function will be modified slightly to work properly.
7. In the original half-life is a sneaky hack that determines the type of game, and depending on that includes certain features. For Opposing Force - one thing, for Natural Selection - second thing, for Counter-Strike - the third.
For the same Decay in engfuncs was added a whole bunch of new features. In any case, find out how this mechanism, let alone poke at other people's Xash hacks (and not the fact that it is still and will work properly), I have no desire.
|
Original page:
http://www.hlfx.ru/forum/showthread....&threadid=2188
This engine can serve as well to see how the original HL works.