EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
EvilNumber.h File Reference
#include "eve-compat.h"
Include dependency graph for EvilNumber.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  EvilNumber
 this is a class that kinda mimics how python polymorph's numbers. More...
 

Macros

#define MAX_EVIL_INTEGER   0x7FFFFFFFFFFFFFFFLL
 
#define LOGIC_OPERATOR(a, b)
 Code generation macro to create basic binary math operator overload using supplied operator and type being compared to EvilNumber. More...
 
#define LOGIC_OPERATORS_FOR(type)
 Code generation macro to create all comparison operator overload functions for a specified type. More...
 

Enumerations

enum  EVIL_NUMBER_TYPE { evil_number_nan = 0, evil_number_int, evil_number_float }
 

Functions

EvilNumber operator+ (const EvilNumber &val, const EvilNumber &val2)
 
EvilNumber operator- (const EvilNumber &val, const EvilNumber &val2)
 
EvilNumber operator* (const EvilNumber &val, const EvilNumber &val2)
 
EvilNumber operator/ (const EvilNumber &val, const EvilNumber &val2)
 
EvilNumber operator% (const EvilNumber &val, const EvilNumber &val2)
 

Variables

EvilNumber EvilZero
 
EvilNumber EvilZerof
 
EvilNumber EvilOne
 
EvilNumber EvilNegOne
 
const EvilNumber EvilTime_Second
 
const EvilNumber EvilTime_Minute
 
const EvilNumber EvilTime_Hour
 
const EvilNumber EvilTime_Day
 
const EvilNumber EvilTime_Month
 
const EvilNumber EvilTime_Year
 

Macro Definition Documentation

#define LOGIC_OPERATOR (   a,
 
)
Value:
bool operator a ( b val) \
{ \
if (this->mType == evil_number_int) { \
return this->iVal a static_cast<int64>(val); \
} else if (this->mType == evil_number_float) { \
return this->fVal a static_cast<double>(val); \
} else { \
assert(false); \
return false; \
} \
}
if(sConfig.world.saveOnMove)
signed __int64 int64
Definition: eve-compat.h:51

Code generation macro to create basic binary math operator overload using supplied operator and type being compared to EvilNumber.

Parameters
[in]a
[in]b
Returns
operator overload function for operator 'a' to a value 'val' of type 'b' Code generation macro to create all basic binary math operator overload functions for a specified type
Parameters
[in]a
Returns
all basic binary math operator overload functions for the specified typeuse a code generating macro to generate basic binary math operator handlers Code generation macro to create comparison operator overload using supplied operator and type being compared to EvilNumber
Parameters
[in]a
[in]b
Returns
operator overload function for operator 'a' comparing to a value 'val' of type 'b'

Definition at line 203 of file EvilNumber.h.

#define LOGIC_OPERATORS_FOR (   type)
Value:
LOGIC_OPERATOR( <, type ) \
LOGIC_OPERATOR( <=, type ) \
LOGIC_OPERATOR( >, type ) \
LOGIC_OPERATOR( >=, type ) \
LOGIC_OPERATOR( ==, type ) \
LOGIC_OPERATOR( !=, type )
#define LOGIC_OPERATOR(a, b)
Code generation macro to create basic binary math operator overload using supplied operator and type ...
Definition: EvilNumber.h:203

Code generation macro to create all comparison operator overload functions for a specified type.

Parameters
[in]a
Returns
all comparison operator overload functions for the specified type

Definition at line 222 of file EvilNumber.h.

#define MAX_EVIL_INTEGER   0x7FFFFFFFFFFFFFFFLL

Definition at line 30 of file EvilNumber.h.

Enumeration Type Documentation

Enumerator
evil_number_nan 
evil_number_int 
evil_number_float 

Definition at line 36 of file EvilNumber.h.

Function Documentation

EvilNumber operator% ( const EvilNumber val,
const EvilNumber val2 
)

Definition at line 677 of file EvilNumber.cpp.

678 {
679  EvilNumber result(val);
680  result %= val2;
681  return result;
682 }
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59
EvilNumber operator* ( const EvilNumber val,
const EvilNumber val2 
)

Definition at line 663 of file EvilNumber.cpp.

664 {
665  EvilNumber result(val);
666  result *= val2;
667  return result;
668 }
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59
EvilNumber operator+ ( const EvilNumber val,
const EvilNumber val2 
)

Definition at line 649 of file EvilNumber.cpp.

650 {
651  EvilNumber result(val);
652  result += val2;
653  return result;
654 }
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59
EvilNumber operator- ( const EvilNumber val,
const EvilNumber val2 
)

Definition at line 656 of file EvilNumber.cpp.

657 {
658  EvilNumber result(val);
659  result -= val2;
660  return result;
661 }
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59
EvilNumber operator/ ( const EvilNumber val,
const EvilNumber val2 
)

Definition at line 670 of file EvilNumber.cpp.

671 {
672  EvilNumber result(val);
673  result /= val2;
674  return result;
675 }
this is a class that kinda mimics how python polymorph's numbers.
Definition: EvilNumber.h:59

Variable Documentation

EvilNumber EvilNegOne

Definition at line 35 of file EvilNumber.cpp.

const EvilNumber EvilTime_Day

Definition at line 39 of file EvilNumber.cpp.

const EvilNumber EvilTime_Hour

Definition at line 38 of file EvilNumber.cpp.

const EvilNumber EvilTime_Minute

Definition at line 37 of file EvilNumber.cpp.

const EvilNumber EvilTime_Month

Definition at line 40 of file EvilNumber.cpp.

const EvilNumber EvilTime_Second

Definition at line 36 of file EvilNumber.cpp.

const EvilNumber EvilTime_Year

Definition at line 41 of file EvilNumber.cpp.

EvilNumber EvilZerof

Definition at line 33 of file EvilNumber.cpp.