I've been telling myself that I'd release HAC's source for quite a while now but each time there was usually some feature I wanted to add first, as well as giving the code a thorough cleaning. There are still features I intend to add and the code still hasn't received the cleaning it badly needs but since I'd like to start spending more time on other projects, I may as well release it as-is before it ends up being pushed to the back of my mind.
Motivation:
- Sharing is caring. Perhaps somebody can learn from or make some use of it.
What to expect:
- Messy code, although mostly no worse than most projects of a similar nature. The nature of the project, the way it's expanded in scope and my own inexperience of working on a project of this scale will show, I'm sure. The core has been refactored several times as things have grown so it's not as bad as it could be but it's still thorny in places.
- To put some effort in if you want to compile it. You'll need to get ahold of a few libraries (listed below) to compile, although most of the smaller ones are included in the source folder.
- The code for the loader and some of the other tools aren't included. They aren't needed to get things working.
- No support. If you decide to try to compile your own binary, I don't have the time to help out with it.
- Pre-C++11 code for the most part. Moving to a newer compiler isn't a decision that can be taken lightly (runtime considerations for users).
Notes:
- The source here is the version used to compile the last release. It has some code for incomplete features.
- I've removed some source files from the release that weren't relevant/required. These related to the anticheat (dropped) and unfinished features. If you want to compile it, you'll need to remove a few references to these files.
- I'll probably put the source up on a repo at some point in the future, after some cleaning up.
Libraries you'll need:
- Lua or LuaJIT.
- libZPlay.
- Boost.
License:
- The MIT License. See license.txt in the archive.
Thanks:
- As well as the names I mentioned in the client release, Termy and Sehe deserve an extra mention for this release. Some of the code is based on or is a heavily modified version of their work (namely ArgContainer and aspects of the hooking code).
Bookmarks