Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

+70
View File
@@ -0,0 +1,70 @@
/**
* Definition of the symbol id
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
namespace SymbologyXML
{
struct symbol_id_t {
/**
* @brief Constructor
* @param raw value of the symbol id (real symbol id AND flag 'isArtillery')
*/
explicit symbol_id_t(unsigned short raw = 0)
: m_raw(raw)
{}
/**
* @brief Get the real symbol id
* @return real symbol id
*/
unsigned short symbolId() const { return (m_raw & idMask); }
/**
* @brief Set the real symbol id
* @param real symbol id
*/
void setSymbolId(unsigned short id) { m_raw = ((id & idMask) | (m_raw & bit) );}
/**
* @brief Get flag 'isArtillery'
* @return 'isArtillery'
*/
bool isArtillery() const { return ((m_raw & bit) == bit); }
/**
* @brief Set flag 'isArtillery'
* @param flag 'isArtillery'
*/
void setArtillery(bool bSet) { if(bSet) m_raw |= bit; else m_raw &= ~bit; }
/**
* @brief Get the raw data (e.g. for database insertion)
* @return
*/
unsigned short raw() const { return m_raw; }
unsigned short &raw() { return m_raw; }
/**
* @brief Set raw value of the symbol id (real symbol id AND flag 'isArtillery')
* @param raw value
*/
void setRaw(unsigned short raw) { m_raw = raw; }
bool operator==(const symbol_id_t other) const { return m_raw == other.m_raw; }
bool operator!=(const symbol_id_t other) const { return !operator==(other); }
protected:
// For isArtillery:
static const unsigned short idMask = 0x7fffU;
static const unsigned short bit = 0x8000U;
// raw data:
unsigned short m_raw;
};
}; // namespace SymbologyXML