mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-26 17:36:12 -05:00
b996fff6fa
* cmake: detect older MSVC and define ENABLE_DECOMP_ASSERTS to enable decomp asserts * Add /Zc:__cplusplus to define __cplusplus with c++ version number * Silence deprecated CRT releated warnings * LegoCameraController overrids some methods that are not defined in its parent(s) * Tgl::Device::GetDrawnTriangleCount does not exist (FIXME: INCORRECT FIX -> Tgl::Device should be updated instead) * Remove copy/pasted APP_ICON from lego1 resource.h header * Implement empty ViewLODList::Dump method * Also enable "compat mode" for newer MSVC compilers * Only do decomp assertions when using older MSVC compilers * msys2 mingw compat (cannot pass reference of rvalue) * Fix msys2 mingw warning: declaration 'class Tgl::Group' does not declare anything * Add FIXME comment to LEgo3DView::m_previousRenderTime * LegoView1 is 16 bytes bigger then LegoView ==> 4 32-bit pointers * include string.h for strlen * Fix overrides * Fix constness of method * Fixes * Formatting * Add size assert for MxFrequencyMeter * ci: build isle with msys2 + msvc on GitHub actions * Set vcvars for msvc * msys2 needs the msys2 shell * Build in default shell * isle is not 64-bit yet (I think) * Print bitness * Use amd64_x64 cross tools * Minor updates * Add more names --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
#ifndef MXUTIL_H
|
|
#define MXUTIL_H
|
|
|
|
#include "mxtypes.h"
|
|
|
|
#include <string.h>
|
|
|
|
class MxDSFile;
|
|
class MxDSObject;
|
|
|
|
template <class T>
|
|
inline T Abs(T p_t)
|
|
{
|
|
return p_t < 0 ? -p_t : p_t;
|
|
}
|
|
|
|
template <class T>
|
|
inline T Min(T p_t1, T p_t2)
|
|
{
|
|
return p_t1 < p_t2 ? p_t1 : p_t2;
|
|
}
|
|
|
|
template <class T>
|
|
inline T Max(T p_t1, T p_t2)
|
|
{
|
|
return p_t1 > p_t2 ? p_t1 : p_t2;
|
|
}
|
|
|
|
template <class T>
|
|
inline void GetScalar(MxU8** p_source, T& p_dest)
|
|
{
|
|
p_dest = *(T*) *p_source;
|
|
*p_source += sizeof(T);
|
|
}
|
|
|
|
template <class T>
|
|
inline T GetScalar(T** p_source)
|
|
{
|
|
T val = **p_source;
|
|
*p_source += 1;
|
|
return val;
|
|
}
|
|
|
|
template <class T>
|
|
inline void GetDouble(MxU8** p_source, T& p_dest)
|
|
{
|
|
p_dest = *(double*) *p_source;
|
|
*p_source += sizeof(double);
|
|
}
|
|
|
|
template <class T>
|
|
inline void GetString(MxU8** p_source, char** p_dest, T* p_obj, void (T::*p_setter)(const char*))
|
|
{
|
|
(p_obj->*p_setter)((char*) *p_source);
|
|
*p_source += strlen(*p_dest) + 1;
|
|
}
|
|
|
|
MxBool FUN_100b6e10(
|
|
MxS32 p_bitmapWidth,
|
|
MxS32 p_bitmapHeight,
|
|
MxS32 p_videoParamWidth,
|
|
MxS32 p_videoParamHeight,
|
|
MxS32* p_left,
|
|
MxS32* p_top,
|
|
MxS32* p_right,
|
|
MxS32* p_bottom,
|
|
MxS32* p_width,
|
|
MxS32* p_height
|
|
);
|
|
|
|
__declspec(dllexport) void MakeSourceName(char*, const char*);
|
|
__declspec(dllexport) void SetOmniUserMessage(void (*)(const char*, int));
|
|
__declspec(dllexport) MxDSObject* CreateStreamObject(MxDSFile*, MxS16);
|
|
|
|
MxBool KeyValueStringParse(char*, const char*, const char*);
|
|
|
|
#endif // MXUTIL_H
|