mirror of
https://github.com/zeldaret/ss
synced 2026-09-10 03:52:24 -04:00
change everything to use a common types file
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
#pragma once
|
||||
|
||||
#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
||||
#define MIN(x, y) ((x) < (y) ? (x) : (y))
|
||||
|
||||
#define CLAMP(low, high, x) ((x) > (high) ? (high) : ((x) < (low) ? (low) : (x)))
|
||||
|
||||
#define ROUND_UP(x, align) (((x) + (align)-1) & (-(align)))
|
||||
#define ROUND_UP_PTR(x, align) ((void *)((((u32)(x)) + (align)-1) & (~((align)-1))))
|
||||
|
||||
#define ROUND_DOWN(x, align) ((x) & (-(align)))
|
||||
#define ROUND_DOWN_PTR(x, align) ((void *)(((u32)(x)) & (~((align)-1))))
|
||||
|
||||
#define ARRAY_LENGTH(x) (sizeof((x)) / sizeof((x)[0]))
|
||||
|
||||
#define CLEAR_PATH(x) __memclr((x), sizeof((x)))
|
||||
|
||||
#define ALIGN(x) __attribute__((aligned(x)))
|
||||
#define DECL_SECTION(x) __declspec(section x)
|
||||
#define DECL_WEAK __declspec(weak)
|
||||
#define DONT_INLINE __attribute__((never_inline))
|
||||
|
||||
// Codewarrior tricks for matching decomp
|
||||
// (Functions are given prototypes for -requireprotos)
|
||||
#ifdef __MWERKS__
|
||||
// Force BSS order
|
||||
#define CW_FORCE_BSS(module, ...) \
|
||||
void fake_function(...); \
|
||||
void FORCE_BSS##module##x(void); \
|
||||
void FORCE_BSS##module##x(void) { \
|
||||
fake_function(__VA_ARGS__); \
|
||||
}
|
||||
// Force strings into pool
|
||||
#define CW_FORCE_STRINGS(module, ...) \
|
||||
void fake_function(...); \
|
||||
void FORCE_STRINGS##module(void); \
|
||||
void FORCE_STRINGS##module(void) { \
|
||||
fake_function(__VA_ARGS__); \
|
||||
}
|
||||
#else
|
||||
#define CW_FORCE_BSS(module, ...)
|
||||
#define CW_FORCE_STRINGS(module, ...)
|
||||
#endif
|
||||
|
||||
// For VSCode
|
||||
#ifdef __INTELLISENSE__
|
||||
#define asm
|
||||
#define __attribute__(x)
|
||||
#define __declspec(x)
|
||||
#endif
|
||||
|
||||
typedef signed char s8;
|
||||
typedef signed short s16;
|
||||
typedef signed int s32;
|
||||
typedef signed long long s64;
|
||||
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned long long u64;
|
||||
typedef float f32;
|
||||
typedef double f64;
|
||||
|
||||
typedef int UNKWORD;
|
||||
typedef void UNKTYPE;
|
||||
|
||||
enum { FALSE, TRUE };
|
||||
typedef int BOOL;
|
||||
|
||||
#ifdef __CWCC__
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
|
||||
typedef u8 undefined1;
|
||||
typedef u16 undefined2;
|
||||
typedef u32 undefined4;
|
||||
|
||||
typedef volatile u8 vu8;
|
||||
typedef volatile u16 vu16;
|
||||
typedef volatile u32 vu32;
|
||||
typedef volatile u64 vu64;
|
||||
typedef volatile s8 vs8;
|
||||
typedef volatile s16 vs16;
|
||||
typedef volatile s32 vs32;
|
||||
typedef volatile s64 vs64;
|
||||
|
||||
typedef volatile f32 vf32;
|
||||
typedef volatile f64 vf64;
|
||||
|
||||
// Necesary for CW
|
||||
#if __cplusplus < 201103L && !defined(_WIN32)
|
||||
#define override
|
||||
#define noexcept
|
||||
#define nullptr NULL
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
#define nullptr NULL
|
||||
|
||||
// taken from mkw
|
||||
#ifdef __cplusplus
|
||||
#define restrict
|
||||
|
||||
class NonCopyable {
|
||||
public:
|
||||
inline NonCopyable() {}
|
||||
|
||||
private:
|
||||
inline NonCopyable(const NonCopyable &) {}
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user