openmw/components/interpreter/types.hpp
2022-09-22 21:35:26 +03:00

43 lines
763 B
C++

#ifndef INTERPRETER_TYPES_H_INCLUDED
#define INTERPRETER_TYPES_H_INCLUDED
#include <stdexcept>
namespace Interpreter
{
typedef unsigned int Type_Code; // 32 bit
typedef unsigned int Type_Data; // 32 bit
typedef short Type_Short; // 16 bit
typedef int Type_Integer; // 32 bit
typedef float Type_Float; // 32 bit
union Data
{
Type_Integer mInteger;
Type_Float mFloat;
};
template <typename T>
T& getData(Data& data)
{
throw std::runtime_error("unsupported data type");
}
template <>
inline Type_Integer& getData(Data& data)
{
return data.mInteger;
}
template <>
inline Type_Float& getData(Data& data)
{
return data.mFloat;
}
}
#endif