mirror of
https://github.com/zeldaret/st
synced 2026-05-23 15:01:41 -04:00
90203403dd
* GameModeAdventure_001 OK * GameModeAdventure_024 17% * GameModeAdventure_024 73% * GameModeAdventure_024 99% * jp region differences * rename GameModeAdventure_024 and GameModeAdventure + UnkStruct_ov000_020d8660_024 OK * UnkActorSystem1OK * UnkActorSystem2 OK * delink more of ov024 & UnkStruct_027e0998_024 OK * improve instance stuff & UnkStruct_027e0cf8_024 OK * AdventureModeManager_160_024 OK & GameModeStartUp OK * fix regressions * fix regressions 2 * AdventureModeManager_170 OK * AdventureModeManager_174_Base OK * AdventureModeManager_174 OK * mark GameModeAdventure_024 as complete * AdventureModeManager_178 OK * AdventureModeManager_180 OK * AdventureModeManager_184_024 OK * AdventureModeManager_18C_024 OK & AdventureModeManager_190_024 OK * AdventureModeManager_15C_20_00 61% * AdventureModeManager_15C_20_00 OK * jp version differences * delink what's left in the overlay * fix regressions * AdventureModeManager_1B8_Base_024 98% * AdventureModeManager_1B8 48% and link AdventureModeManager_024 * AdventureModeManager_1B8_Base and AdventureModeManager_1B8 OK * oops * mark statics as local
95 lines
2.4 KiB
C++
95 lines
2.4 KiB
C++
#ifndef TYPES_H
|
|
#define TYPES_H
|
|
|
|
#include <stddef.h>
|
|
|
|
typedef unsigned long long u64;
|
|
typedef unsigned int u32;
|
|
typedef unsigned short u16;
|
|
typedef unsigned char u8;
|
|
|
|
typedef long long s64;
|
|
typedef int s32;
|
|
typedef short s16;
|
|
typedef char s8;
|
|
|
|
typedef float f32;
|
|
typedef double f64;
|
|
|
|
typedef volatile u64 vu64;
|
|
typedef volatile u32 vu32;
|
|
typedef volatile u16 vu16;
|
|
typedef volatile u8 vu8;
|
|
|
|
typedef volatile s64 vs64;
|
|
typedef volatile s32 vs32;
|
|
typedef volatile s16 vs16;
|
|
typedef volatile s8 vs8;
|
|
|
|
typedef volatile f32 vf32;
|
|
typedef volatile f64 vf64;
|
|
|
|
typedef u32 BOOL;
|
|
|
|
#define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x)))
|
|
|
|
typedef s8 unk8;
|
|
typedef s16 unk16;
|
|
typedef s32 unk32;
|
|
|
|
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
|
|
|
|
#ifdef __cplusplus
|
|
#define DECL_PTMF(name, ...) \
|
|
template <typename T, typename R = void> struct name { \
|
|
typedef R (T::*PTMFCallback)(__VA_ARGS__); \
|
|
\
|
|
PTMFCallback callback; \
|
|
};
|
|
|
|
#define CALL_PTMF(type, data, ...) \
|
|
{ \
|
|
type &ptr = (data); \
|
|
(this->*ptr.callback)(__VA_ARGS__); \
|
|
}
|
|
|
|
#define STATIC_CALL_PTMF(type, data, thisx, ...) \
|
|
{ \
|
|
type &ptr = (data); \
|
|
((thisx)->*ptr.callback)(__VA_ARGS__); \
|
|
}
|
|
|
|
#define STATIC_PTMFCALLBACK(type, data, thisx, ...) \
|
|
{ \
|
|
type::PTMFCallback &ptr = (data); \
|
|
((thisx)->*ptr)(__VA_ARGS__); \
|
|
}
|
|
|
|
DECL_PTMF(PTMF);
|
|
typedef void (*UnkCallback)(u16 param1);
|
|
|
|
template <typename T> class Instance {
|
|
public:
|
|
Instance();
|
|
~Instance();
|
|
};
|
|
|
|
template <typename T> class AutoInstance : public Instance<T> {
|
|
public:
|
|
AutoInstance() {}
|
|
~AutoInstance() {}
|
|
};
|
|
|
|
#define DECL_INSTANCE(T, gpInstance) \
|
|
template <typename T> Instance<T>::Instance() { \
|
|
gpInstance = (T *) this; \
|
|
} \
|
|
template <typename T> Instance<T>::~Instance() { \
|
|
gpInstance = NULL; \
|
|
} \
|
|
template class Instance<T>
|
|
|
|
#endif
|
|
|
|
#endif
|