2023-08-22 15:30:26 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
/*
|
|
|
|
The general including header for LibCom self developer.
|
|
|
|
Every hpp or cpp file should include this first except
|
|
|
|
the headers including this file.
|
|
|
|
|
|
|
|
This header only fulfill type requirements. If you want
|
|
|
|
some implement based operations, such as calling
|
|
|
|
CKStateChunk or CKContext function. You should include them manually.
|
|
|
|
|
2023-09-05 22:23:05 +08:00
|
|
|
All header or cpp file should include this file first.
|
2023-09-16 18:31:25 +08:00
|
|
|
Except the file listed in there.
|
|
|
|
The include list of all files list in there should be carefully managed,
|
|
|
|
to make sure there are no including loop and each header can fufill its functions.
|
|
|
|
|
|
|
|
All 'VT' started file is not a part of Virtools SDK.
|
|
|
|
They just assist Virtools SDK. So they will use native type, not CK type for decl and impl.
|
|
|
|
Take VTEncoding.hpp for example, All string is std::string, not XContainer::XString.
|
|
|
|
The file starts with 'CK', 'Vx', and 'X' is a part of Virtools SDK.
|
|
|
|
They should use Virtools type anywhere, except with one situation,
|
|
|
|
Virtools type can not fulfill its requirement.
|
2023-08-22 15:30:26 +08:00
|
|
|
|
2023-09-16 18:31:25 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
Including various basic define.
|
|
|
|
+ LIBCMO_OS_xxx macro to distinguish different OS and architecture
|
|
|
|
+ General types such as CKDWORD and their format constant
|
|
|
|
+ Class / struct ctor helper: LIBCMO_DISABLE_COPY_MOVE and LIBCMO_DEFAULT_COPY_MOVE
|
|
|
|
+ Library panic function
|
|
|
|
+ Enum helper for add, remove flags for enum.
|
2023-08-22 15:30:26 +08:00
|
|
|
*/
|
|
|
|
#include "VTUtils.hpp"
|
2023-09-16 18:31:25 +08:00
|
|
|
/*
|
|
|
|
System independent encoding system.
|
|
|
|
Use native Win32 function in Windows.
|
|
|
|
And use iconv under other OS.
|
|
|
|
*/
|
2023-08-22 15:30:26 +08:00
|
|
|
#include "VTEncoding.hpp"
|
2023-09-16 18:31:25 +08:00
|
|
|
/*
|
|
|
|
System independent image loader / saver
|
|
|
|
*/
|
|
|
|
#include "VTImage.hpp"
|
2023-08-22 15:30:26 +08:00
|
|
|
|
2023-09-16 18:31:25 +08:00
|
|
|
// Define the basic type of CK2.
|
|
|
|
#include "CK2/CKTypes.hpp"
|
|
|
|
// Then we include all XContainer types.
|
|
|
|
#include "XContainer/XTypes.hpp"
|
|
|
|
// Then we include all Vx types.
|
2023-08-22 15:30:26 +08:00
|
|
|
#include "VxMath/VxTypes.hpp"
|
2023-09-16 18:31:25 +08:00
|
|
|
// Thus all basic type is OK.
|
|
|
|
|
|
|
|
// Include CKGlobals which including various essential functions
|
|
|
|
#include "CK2/CKGlobals.hpp"
|
|
|
|
// Then load VxMath functions
|
2023-09-05 22:23:05 +08:00
|
|
|
#include "VxMath/VxMath.hpp"
|
2023-09-16 18:31:25 +08:00
|
|
|
// OK, all essential functions loaded.
|
|
|
|
|
|
|
|
// Load various enums, const value
|
|
|
|
// Load CK2 first
|
|
|
|
#include "CK2/CKEnums.hpp"
|
|
|
|
#include "CK2/CKIdentifiers.hpp"
|
|
|
|
// load Vx
|
|
|
|
#include "VxMath/VxEnums.hpp"
|
|
|
|
|
|
|
|
// Last, load some custom struct used in program.
|
|
|
|
#include "CK2/CKDefines.hpp"
|
|
|
|
|
|
|
|
|
2023-08-22 15:30:26 +08:00
|
|
|
|