mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-01 09:42:39 +00:00
9227e37623
- sizeof(bool) is implementation defined. The server assumes it's 4 but for me it was 1 (tested with Release too) which caused some bugs - Structs aren't guaranteed to be packed. The compiler is free to change the layout, which we wouldn't want to for the Packet structs that we deserialize on the server.
83 lines
1.8 KiB
C++
83 lines
1.8 KiB
C++
#pragma once
|
|
|
|
//#include <inttypes.h>
|
|
#include <stdalign.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
typedef unsigned char u8;
|
|
typedef unsigned short u16;
|
|
typedef unsigned int u32;
|
|
typedef uint64_t u64;
|
|
typedef __uint128_t u128;
|
|
|
|
typedef signed char s8;
|
|
typedef signed short s16;
|
|
typedef signed int s32;
|
|
typedef int64_t s64;
|
|
typedef __int128_t s128;
|
|
|
|
typedef u32 bool4; // guaranteed to be 4 bytes, 'bool' is impl. defined
|
|
|
|
typedef float f32;
|
|
typedef double f64;
|
|
|
|
typedef unsigned long int ulong;
|
|
|
|
typedef unsigned int usize_t;
|
|
|
|
typedef unsigned long int ulong;
|
|
typedef unsigned short int ushort;
|
|
typedef unsigned int uint;
|
|
typedef unsigned char uchar;
|
|
|
|
typedef unsigned char undefined;
|
|
typedef unsigned char undefined1;
|
|
typedef unsigned short undefined2;
|
|
typedef unsigned int undefined3;
|
|
typedef unsigned int undefined4;
|
|
typedef unsigned long undefined8;
|
|
|
|
enum SocketLogState {
|
|
SOCKET_LOG_UNINITIALIZED = 0,
|
|
SOCKET_LOG_CONNECTED = 1,
|
|
SOCKET_LOG_UNAVAILABLE = 2,
|
|
SOCKET_LOG_DISCONNECTED = 3
|
|
};
|
|
|
|
//typedef signed int ssize_t;
|
|
|
|
//typedef unsigned int uintptr_t;
|
|
//typedef signed int intptr_t;
|
|
|
|
typedef __builtin_va_list va_list;
|
|
#define va_start(v,l) __builtin_va_start(v,l)
|
|
#define va_end(v) __builtin_va_end(v)
|
|
|
|
//using u64 = std::uint64_t;
|
|
//using s64 = std::int64_t;
|
|
|
|
// stores a result on a lot of OS-related functions
|
|
typedef u32 Result;
|
|
typedef u32 Handle;
|
|
typedef void (*ThreadFunc)(void*);
|
|
|
|
enum Direction
|
|
{
|
|
RIGHT = 0,
|
|
LEFT = 1,
|
|
UP = 2,
|
|
DOWN = 3
|
|
};
|
|
|
|
struct Rect
|
|
{
|
|
float left;
|
|
float bottom;
|
|
float right;
|
|
float top;
|
|
};
|
|
|
|
#define PACKED __attribute__((packed))
|
|
#define USED __attribute__((used))
|