# LEGO Island Decompilation Tools

These are a set of Python tools for helping with the decomp project.

## Installing
Use pip to install the required packages:

```
pip install -r tools/requirements.txt
```

## Overview

* `reccmp`: Compares the original EXE or DLL with a recompiled EXE or DLL, provided a PDB file
* `verexp`: Verifies exports by comparing the exports of the original DLL and the recompiled DLL
* `checkorder`: Checks `FUNCTION` declarations, ensuring they appear in ascending order within a unit
* `isledecomp`: A library that is used by the above scripts, it has a collection of useful classes and functions

## Testing
`isledecomp` has a small suite of tests. Install pylint and run it, passing in the directory:

```
pip install pytest
pytest tools/isledecomp/tests/
```

## Development
In order to keep the code clean and consistent, we use `pylint` and `black`:

```
pip install black pylint
```
### Run pylint (ignores build and virtualenv):
```
pylint tools/ --ignore=build,bin,lib
```
### Check code formatting without rewriting files:
```
black --check tools/
```
### Apply code formatting:
```
black tools/
```
