mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 17:46:38 -05:00
5f413165cc
* cmake: use imported targets for 3rd party libs * Fix casing of skateboard.h include * cmake: tglrl realtime viewmanager mxgeometry * cmake: spin off some source in static libraries * dx5 for everyone * ci: bump actions/checkout to v4 * move LEGO1/realtime/realtimeview.cpp to lego1 because it exports symbols * add misc library * Add omni library * Return of the .def's * Remove COMPAT_CONST in MxVideoParam::MxVideoParam * Run clang-format * move LEGO1/realtime/realtimeview.cpp to realtime lib * Add 3dmanager library * Rename .def files * Remove incorrect deps to Omni * Remove DLL expor decls * Remove unnecessary library dep from ROI * Remove COMPAT_CONST * Move 3dmanager lib before Omni * Remove mxgeometry lib (`geom` is actually `lego/sources/geom`, which we don't have in our decomp yet) * viewmanager has a dependency on realtime + fix mingw's def * Remove Smacker::Smacker from lego1 link libraries --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
79 lines
1.5 KiB
C++
79 lines
1.5 KiB
C++
#ifndef MXUTIL_H
|
|
#define MXUTIL_H
|
|
|
|
#include "mxtypes.h"
|
|
|
|
#include <string.h>
|
|
|
|
class MxDSFile;
|
|
class MxDSObject;
|
|
class MxDSAction;
|
|
|
|
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 GetRectIntersection(
|
|
MxS32 p_rect1Width,
|
|
MxS32 p_rect1Height,
|
|
MxS32 p_rect2Width,
|
|
MxS32 p_rect2Height,
|
|
MxS32* p_rect1Left,
|
|
MxS32* p_rect1Top,
|
|
MxS32* p_rect2Left,
|
|
MxS32* p_rect2Top,
|
|
MxS32* p_width,
|
|
MxS32* p_height
|
|
);
|
|
|
|
void MakeSourceName(char*, const char*);
|
|
void SetOmniUserMessage(void (*)(const char*, int));
|
|
void FUN_100b7220(MxDSAction* p_action, MxU32 p_newFlags, MxBool p_setFlags);
|
|
MxDSObject* CreateStreamObject(MxDSFile*, MxS16);
|
|
|
|
MxBool KeyValueStringParse(char*, const char*, const char*);
|
|
|
|
#endif // MXUTIL_H
|