summaryrefslogtreecommitdiff
path: root/include/slowly.h
blob: b91d652d996383ab04b77d0508490244358bc461 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef SLOWLY_H
#define SLOWLY_H

#include "ultra64.h"

#define SLOWLY_STATUS_DONE (1 << 0)
#define SLOWLY_STATUS_STARTED (1 << 1)

typedef void (*SlowlyCallbackZero)(void);
typedef void (*SlowlyCallbackOne)(void*);
typedef void (*SlowlyCallbackTwo)(void*, void*);

typedef union {
    SlowlyCallbackZero zero;
    SlowlyCallbackOne one;
    SlowlyCallbackTwo two;
} SlowlyCallback; // size = 0x4

typedef struct {
    /* 0x000 */ OSThread thread;
    /* 0x1B0 */ u8 argCount;
    /* 0x1B1 */ u8 status;
    /* 0x1B4 */ SlowlyCallback callback;
    /* 0x1B8 */ void* arg0;
    /* 0x1BC */ void* arg1;
} SlowlyMgr; // size = 0x1C0

void Slowly_Init(SlowlyMgr* slowly, void* stack, SlowlyCallbackTwo callback, void* arg0, void* arg1);
void Slowly_Destroy(SlowlyMgr* slowly);

#endif