World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Файл MM7.h

См. исходные тексты.

Классы

struct  TravelInfo
 
struct  stat_coord
 
struct  stru336
 

Определения типов

typedef unsigned int uint
 
typedef long long ll
 
typedef unsigned long long ull
 
typedef unsigned char uchar
 
typedef unsigned short ushort
 
typedef unsigned long ulong
 
typedef char int8
 
typedef signed char sint8
 
typedef unsigned char uint8
 
typedef short int16
 
typedef signed short sint16
 
typedef unsigned short uint16
 
typedef int int32
 
typedef signed int sint32
 
typedef unsigned int uint32
 
typedef ll int64
 
typedef ll sint64
 
typedef ull uint64
 

Перечисления

enum  SoundType { SOUND_EndTurnBasedMode = 0xCE, SOUND_StartTurnBasedMode = 0xCF, SOUND_FlipOnExit = 0x4E21 }
 

Функции

void memset32 (void *ptr, uint32_t value, int count)
 
template<class T >
int16 __PAIR__ (int8 high, T low)
 
template<class T >
int32 __PAIR__ (int16 high, T low)
 
template<class T >
int64 __PAIR__ (int32 high, T low)
 
template<class T >
uint16 __PAIR__ (uint8 high, T low)
 
template<class T >
uint32 __PAIR__ (uint16 high, T low)
 
template<class T >
uint64 __PAIR__ (uint32 high, T low)
 
template<class T >
__ROL__ (T value, uint count)
 
template<class T >
__ROR__ (T value, uint count)
 
template<class T >
int8 __MKCSHL__ (T value, uint count)
 
template<class T >
int8 __MKCSHR__ (T value, uint count)
 
template<class T >
int8 __SETS__ (T x)
 
template<class T , class U >
int8 __OFSUB__ (T x, U y)
 
template<class T , class U >
int8 __OFADD__ (T x, U y)
 
template<class T , class U >
int8 __CFSUB__ (T x, U y)
 
template<class T , class U >
int8 __CFADD__ (T x, U y)
 

Переменные

std::array< stat_coord, 26 > stat_string_coord
 

Типы

◆ uint

typedef unsigned int uint

См. определение в файле MM7.h строка 4

◆ ll

typedef __int64 ll

См. определение в файле MM7.h строка 22

◆ ull

typedef unsigned __int64 ull

См. определение в файле MM7.h строка 23

◆ uchar

typedef unsigned char uchar

См. определение в файле MM7.h строка 44

◆ ushort

typedef unsigned short ushort

См. определение в файле MM7.h строка 45

◆ ulong

typedef unsigned long ulong

См. определение в файле MM7.h строка 46

◆ int8

typedef char int8

См. определение в файле MM7.h строка 48

◆ sint8

typedef signed char sint8

См. определение в файле MM7.h строка 49

◆ uint8

typedef unsigned char uint8

См. определение в файле MM7.h строка 50

◆ int16

typedef short int16

См. определение в файле MM7.h строка 51

◆ sint16

typedef signed short sint16

См. определение в файле MM7.h строка 52

◆ uint16

typedef unsigned short uint16

См. определение в файле MM7.h строка 53

◆ int32

typedef int int32

См. определение в файле MM7.h строка 54

◆ sint32

typedef signed int sint32

См. определение в файле MM7.h строка 55

◆ uint32

typedef unsigned int uint32

См. определение в файле MM7.h строка 56

◆ int64

typedef ll int64

См. определение в файле MM7.h строка 57

◆ sint64

typedef ll sint64

См. определение в файле MM7.h строка 58

◆ uint64

typedef ull uint64

См. определение в файле MM7.h строка 59

Перечисления

◆ SoundType

enum SoundType
Элементы перечислений
SOUND_EndTurnBasedMode 
SOUND_StartTurnBasedMode 
SOUND_FlipOnExit 

См. определение в файле MM7.h строка 256

256  {
257  SOUND_EndTurnBasedMode = 0xCE,
259  SOUND_FlipOnExit = 0x4E21,
260 };

Функции

◆ memset32()

void memset32 ( void ptr,
uint32_t  value,
int  count 
)
inline

См. определение в файле MM7.h строка 14

14  {
15  uint32_t *p = (uint32_t *)ptr;
16  for (int i = 0; i < count; i++) {
17  *p++ = value;
18  }
19 }

Используется в RenderOpenGL::ClearTarget(), RenderOpenGL::ClearZBuffer(), Render::ClearZBuffer(), RenderOpenGL::CreateZBuffer(), Render::CreateZBuffer(), Player::PutItemArInventoryIndex() и Player::RemoveItemAtInventoryIndex().

+ Граф вызова функции:

◆ __PAIR__() [1/6]

template<class T >
int16 __PAIR__ ( int8  high,
low 
)

См. определение в файле MM7.h строка 135

135  {
136  return (((int16)high) << sizeof(high) * 8) | uint8(low);
137 }

Используется в _452442_color_cvt().

+ Граф вызова функции:

◆ __PAIR__() [2/6]

template<class T >
int32 __PAIR__ ( int16  high,
low 
)

См. определение в файле MM7.h строка 139

139  {
140  return (((int32)high) << sizeof(high) * 8) | uint16(low);
141 }

◆ __PAIR__() [3/6]

template<class T >
int64 __PAIR__ ( int32  high,
low 
)

См. определение в файле MM7.h строка 143

143  {
144  return (((int64)high) << sizeof(high) * 8) | uint32(low);
145 }

◆ __PAIR__() [4/6]

template<class T >
uint16 __PAIR__ ( uint8  high,
low 
)

См. определение в файле MM7.h строка 147

147  {
148  return (((uint16)high) << sizeof(high) * 8) | uint8(low);
149 }

◆ __PAIR__() [5/6]

template<class T >
uint32 __PAIR__ ( uint16  high,
low 
)

См. определение в файле MM7.h строка 151

151  {
152  return (((uint32)high) << sizeof(high) * 8) | uint16(low);
153 }

◆ __PAIR__() [6/6]

template<class T >
uint64 __PAIR__ ( uint32  high,
low 
)

См. определение в файле MM7.h строка 155

155  {
156  return (((uint64)high) << sizeof(high) * 8) | uint32(low);
157 }

◆ __ROL__()

template<class T >
T __ROL__ ( value,
uint  count 
)

См. определение в файле MM7.h строка 161

161  {
162  const uint nbits = sizeof(T) * 8;
163  count %= nbits;
164 
165  T high = value >> (nbits - count);
166  value <<= count;
167  value |= high;
168  return value;
169 }

◆ __ROR__()

template<class T >
T __ROR__ ( value,
uint  count 
)

См. определение в файле MM7.h строка 173

173  {
174  const uint nbits = sizeof(T) * 8;
175  count %= nbits;
176 
177  T low = value << (nbits - count);
178  value >>= count;
179  value |= low;
180  return value;
181 }

◆ __MKCSHL__()

template<class T >
int8 __MKCSHL__ ( value,
uint  count 
)

См. определение в файле MM7.h строка 185

185  {
186  const uint nbits = sizeof(T) * 8;
187  count %= nbits;
188 
189  return (value >> (nbits - count)) & 1;
190 }

◆ __MKCSHR__()

template<class T >
int8 __MKCSHR__ ( value,
uint  count 
)

См. определение в файле MM7.h строка 194

194  {
195  return (value >> (count - 1)) & 1;
196 }

◆ __SETS__()

template<class T >
int8 __SETS__ ( x)

См. определение в файле MM7.h строка 200

200  {
201  if (sizeof(T) == 1) return int8(x) < 0;
202  if (sizeof(T) == 2) return int16(x) < 0;
203  if (sizeof(T) == 4) return int32(x) < 0;
204  return int64(x) < 0;
205 }

Используется в __OFADD__() и __OFSUB__().

+ Граф вызова функции:

◆ __OFSUB__()

template<class T , class U >
int8 __OFSUB__ ( x,
y 
)

См. определение в файле MM7.h строка 209

209  {
210  if (sizeof(T) < sizeof(U)) {
211  U x2 = x;
212  int8 sx = __SETS__(x2);
213  return (sx ^ __SETS__(y)) & (sx ^ __SETS__(x2 - y));
214  } else {
215  T y2 = y;
216  int8 sx = __SETS__(x);
217  return (sx ^ __SETS__(y2)) & (sx ^ __SETS__(x - y2));
218  }
219 }

Перекрестные ссылки __SETS__().

Используется в _42777D_CastSpell_UseWand_ShootArrow().

+ Граф вызовов:
+ Граф вызова функции:

◆ __OFADD__()

template<class T , class U >
int8 __OFADD__ ( x,
y 
)

См. определение в файле MM7.h строка 223

223  {
224  if (sizeof(T) < sizeof(U)) {
225  U x2 = x;
226  int8 sx = __SETS__(x2);
227  return ((1 ^ sx) ^ __SETS__(y)) & (sx ^ __SETS__(x2 + y));
228  } else {
229  T y2 = y;
230  int8 sx = __SETS__(x);
231  return ((1 ^ sx) ^ __SETS__(y2)) & (sx ^ __SETS__(x + y2));
232  }
233 }

Перекрестные ссылки __SETS__().

+ Граф вызовов:

◆ __CFSUB__()

template<class T , class U >
int8 __CFSUB__ ( x,
y 
)

См. определение в файле MM7.h строка 237

237  {
238  int size = sizeof(T) > sizeof(U) ? sizeof(T) : sizeof(U);
239  if (size == 1) return uint8(x) < uint8(y);
240  if (size == 2) return uint16(x) < uint16(y);
241  if (size == 4) return uint32(x) < uint32(y);
242  return uint64(x) < uint64(y);
243 }

◆ __CFADD__()

template<class T , class U >
int8 __CFADD__ ( x,
y 
)

См. определение в файле MM7.h строка 247

247  {
248  int size = sizeof(T) > sizeof(U) ? sizeof(T) : sizeof(U);
249  if (size == 1) return uint8(x) > uint8(x + y);
250  if (size == 2) return uint16(x) > uint16(x + y);
251  if (size == 4) return uint32(x) > uint32(x + y);
252  return uint64(x) > uint64(x + y);
253 }

Переменные

◆ stat_string_coord

std::array<stat_coord, 26> stat_string_coord

См. определение в файле mm7_data.cpp строка 173

Используется в CharacterUI_StatsTab_ShowHint().

int32
int int32
Definition: MM7.h:54
__SETS__
int8 __SETS__(T x)
Definition: MM7.h:200
count
GLuint GLuint GLsizei count
Definition: SDL_opengl.h:1571
y
EGLSurface EGLint EGLint y
Definition: SDL_egl.h:1596
p
GLfloat GLfloat p
Definition: SDL_opengl_glext.h:11093
x
EGLSurface EGLint x
Definition: SDL_egl.h:1596
uint16
unsigned short uint16
Definition: MM7.h:53
uint64
ull uint64
Definition: MM7.h:59
int16
short int16
Definition: MM7.h:51
value
EGLSyncKHR EGLint EGLint * value
Definition: SDL_egl.h:899
int64
ll int64
Definition: MM7.h:57
SOUND_EndTurnBasedMode
@ SOUND_EndTurnBasedMode
Definition: MM7.h:257
SOUND_StartTurnBasedMode
@ SOUND_StartTurnBasedMode
Definition: MM7.h:258
SOUND_FlipOnExit
@ SOUND_FlipOnExit
Definition: MM7.h:259
x2
GLfixed GLfixed x2
Definition: SDL_opengl_glext.h:4586
uint
unsigned int uint
Definition: MM7.h:4
y2
GLfixed GLfixed GLfixed y2
Definition: SDL_opengl_glext.h:4586
uint32
unsigned int uint32
Definition: MM7.h:56
size
GLsizeiptr size
Definition: SDL_opengl_glext.h:540
uint8
unsigned char uint8
Definition: MM7.h:50
uint32_t
unsigned __int32 uint32_t
Definition: SDL_config.h:39
int8
char int8
Definition: MM7.h:48