46 lines
822 B
C
46 lines
822 B
C
#ifndef DICE_H
|
|
#define DICE_H
|
|
|
|
#include "renderer/clay_renderer_SDL3.h"
|
|
#include <stdlib.h>
|
|
|
|
#ifndef MAX_ACTIVE_DICE
|
|
#define MAX_ACTIVE_DICE 20
|
|
#endif
|
|
|
|
#ifndef MAX_ROLL_STR_LEN
|
|
#define MAX_ROLL_STR_LEN 10
|
|
#endif
|
|
|
|
enum Die_Dice {
|
|
COIN = 2,
|
|
D4 = 4,
|
|
D6 = 6,
|
|
D8 = 8,
|
|
D10 = 10,
|
|
D12 = 12,
|
|
D20 = 20,
|
|
D100 = 100
|
|
};
|
|
|
|
struct Die_ResultType {
|
|
int roll;
|
|
size_t string_len;
|
|
char string[MAX_ROLL_STR_LEN];
|
|
Clay_String clay_string;
|
|
};
|
|
|
|
extern int Die_Roll(enum Die_Dice die);
|
|
|
|
extern enum Die_Dice const *Die_GetActiveSet(size_t *out_length);
|
|
extern size_t Die_AddToActiveSet(enum Die_Dice die);
|
|
extern void Die_RemoveFromActiveSet(size_t index);
|
|
|
|
extern struct Die_ResultType *Die_GetLastResult(size_t *out_length);
|
|
|
|
extern void Die_RollActiveSet();
|
|
|
|
extern Clay_String Die_ToString(enum Die_Dice die);
|
|
|
|
#endif // !DICE_H
|