Skip to content

Properly Configuring Paths#

This is a guide for implementing any new paths or directories within Blamite.

All remaining paths can be found near the top of engine_definitions.h, located in the solution under /components/core/engine_definitions/engine_definitions.h. In modern engine versions, most of these definitions are gone as most will be either reimplemented later or made available in engine.cfg. This page will remain for archival purposes only, and more information on engine_definitions.h can be found here As of July 17, 2018, these are the current paths in the engine:

#define CACHE_DIRECTORY "maps" //Packaged .map files belong here
#define DEV_DATA_DIRECTORY "dev_data" //Raw scripts, unextracted tags, etc. go here
#define SCREENSHOTS_DIRECTORY "screenshots" //The folder where screenshots are stored
#define MOVIES_DIRECTORY "bink" //Where .bik and other video files are stored

//the folders below may or may not end up being used, pulled from halo 2
#define ICONS_DIRECTORY "icons"
#define EULA_DIRECTORY "eula"

//HEK directories
#define HEK_TAGS_DIRECTORY "tags"
#define HEK_TEST_DIRECTORY "test"
#define HEK_REPORTS_DIRECTORY "reports"
#define HEK_CACHE_DIRECTORY "maps"
#define HEK_DATA_DIRECTORY "data"
#define HEK_RESOURCE_DB_DIRECTORY "bin"

#define DATA_ROOT "."

They are all defined via the #define tag. There is a special way these should be configured.

Multi-level directories should be represented with \\ instead of a /. For example, if you want to store data in ./gamedata, you should set DATA_ROOT to .\\gamedata. Do NOT add a trailing slash to the end of this path. All throughout the code, the trailing slash should be added by the code that references such path. If this isn't the case, well - you're a developer if you're reading this, so fix it! 😉

Additionally, some directories may be added to represent future planned content types or some support for other Halo engine features.

Lastly, if you are a developer, you are strongly advised not to alter any of the default paths. While the engine is designed to honor these paths, the defaults are set up this way for a reason. This guide is more for the addition of new paths in order to keep consistency - NOT a guide on how to reorganize everything to your liking. :^)