From b650a86e5859240e65d8654b5b08b211b2f33d7e Mon Sep 17 00:00:00 2001 From: rubidium Date: Tue, 30 Sep 2008 20:51:04 +0000 Subject: (svn r14422) -Codechange: also reflect the changes of r14421 in the filenames. --- src/company_type.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/company_type.h (limited to 'src/company_type.h') diff --git a/src/company_type.h b/src/company_type.h new file mode 100644 index 000000000..13ea10c48 --- /dev/null +++ b/src/company_type.h @@ -0,0 +1,52 @@ +/* $Id$ */ + +/** @file company_type.h Types related to companies. */ + +#ifndef COMPANY_TYPE_H +#define COMPANY_TYPE_H + +#include "core/enum_type.hpp" + +/** + * Enum for all companies/owners. + */ +enum Owner { + /* All companies below MAX_COMPANIES are playable + * companies, above, they are special, computer controlled 'companies' */ + OWNER_BEGIN = 0x00, ///< First owner + COMPANY_FIRST = 0x00, ///< First company, same as owner + MAX_COMPANIES = 0x08, ///< Maximum number of companies + OWNER_TOWN = 0x0F, ///< A town owns the tile, or a town is expanding + OWNER_NONE = 0x10, ///< The tile has no ownership + OWNER_WATER = 0x11, ///< The tile/execution is done by "water" + OWNER_END, ///< Last + 1 owner + INVALID_OWNER = 0xFF, ///< An invalid owner + INVALID_COMPANY = 0xFF, ///< An invalid company + + /* 'Fake' companies used for networks */ + COMPANY_INACTIVE_CLIENT = 253, ///< The client is joining + COMPANY_NEW_COMPANY = 254, ///< The client wants a new company + COMPANY_SPECTATOR = 255, ///< The client is spectating +}; +DECLARE_POSTFIX_INCREMENT(Owner); + +enum { + MAX_LENGTH_PRESIDENT_NAME_BYTES = 31, ///< The maximum length of a president name in bytes including '\0' + MAX_LENGTH_PRESIDENT_NAME_PIXELS = 94, ///< The maximum length of a president name in pixels + MAX_LENGTH_COMPANY_NAME_BYTES = 31, ///< The maximum length of a company name in bytes including '\0' + MAX_LENGTH_COMPANY_NAME_PIXELS = 150, ///< The maximum length of a company name in pixels +}; + +/** Define basic enum properties */ +template <> struct EnumPropsT : MakeEnumPropsT {}; +typedef TinyEnumT OwnerByte; + +typedef Owner CompanyID; +typedef OwnerByte CompanyByte; + +typedef uint8 CompanyMask; + +struct Company; +typedef uint32 CompanyManagerFace; ///< Company manager face bits, info see in company_manager_face.h + +#endif /* COMPANY_TYPE_H */ -- cgit v1.2.3-54-g00ecf