# Welcome to Dark Side

## General Info

Our goal is to make *The Ultimate*, client side hack tool for Killing Floor 1.

## Installation

1. Prepare your anus to get a *greylisted* client.
2. Compile / put *DL* files in your System directory.
3. Use the provided [`softlink batch`] / move configs  to same spot.
4. Edit **Killingfloor.ini**.

```cpp
[URL]
LocalMap=KFIntro.rom?mutator=HideMut.HideMut
; LocalMap=KFIntro.rom
```

5. Edit **User.ini** to get required menus and binds. You can check [`reference config`] for some ideas.

## Building and Dependancies

At the moment of 11.01.2021 only from [**CoreAPI**] and obviously modified *Editor.dll* / compiler.

**EditPackages**

```cpp
EditPackages=COREAPI
EditPackages=HideMut
```

## Code Structure

* [`Hidemut`]
  * Loads [`WhosYourDaddy`] on client start.
  * Hooks defined function list.
  * Removes itself.

* [`WhosYourDaddy`]
  * Stores [`HideMutInteraction`] in a sneaky way, so game won't garbage collect it.
  * If it's gone somehow, adds back automaticaly.

* [`HideMutInteraction`]
  * Contains most of the commands and HUD rendering functions.

* `Actors`
  * Are named with `a_` prefix.
  * Used to power [`a_WeaponManager`], [`a_VisibilityHandler`], etc.

* `Utility`
  * Objects that contain only **static** functions and text. Check [`u_Helper`] for example.

* `Stub Classes`
  * Are used in function hooking process. Check [`stub_Monster`] and [**CoreAPI**] for examples.

* `Unsorted`
  * Contains menus, actors, objects, info, etc. Go check yourself.

## Configs

There are two (2) configuration files.

1. [HideMut.ini](Configs/hidemut.ini 'main config file')
    * xhair settings.
    * zed fire effect toggle.
    * player texting portrait toggle.
    * non-player messages toggle.
    * admin autologin info.
    * actor list to hide.
    * map optimiser stuff.
2. [HideMutWeapons.ini](Configs/HideMutWeapons.ini 'weapon priorities and slots')
    * defined weapon lists.
    * vanilla priority toggle.
    * fast weapon switch toggle.

[**CoreAPI**]: https://github.com/Insulting-Pros/CoreAPI 'jaja'
[`WhosYourDaddy`]: Classes/WhosYourDaddy.uc 'choke me harder!'
[`Hidemut`]: Classes/HideMut.uc 'hide me!'
[`HideMutInteraction`]: Classes/HideMutInteraction.uc 'sneaky interaction'
[`a_WeaponManager`]: Classes/a_WeaponManager.uc 'change my boomstick priority!'
[`a_VisibilityHandler`]: Classes/a_VisibilityHandler.uc 'visual bu.. features'
[`u_Helper`]: Classes/u_Helper.uc 'best helper EU'
[`stub_Monster`]: Classes/stub_Monster.uc 'not an imposter, but sus'
[`softlink batch`]: Configs/CreateSoftlinks[mklink].bat 'for lazy asses and tests'
[`reference config`]: Configs/ref_User.ini 'some shitty binds from NikC-'
