Compare commits
No commits in common. "11e7e23962b57775bfa38e6ac32eb2618c9b4240" and "4c9cafdff5c798e0153abe24da8799858d3c76ed" have entirely different histories.
11e7e23962
...
4c9cafdff5
12
TODO.txt
12
TODO.txt
|
@ -1,11 +1,11 @@
|
||||||
|
Design representation of internal state of dice tray
|
||||||
|
|
||||||
|
Buttons for adding dice to active set
|
||||||
|
|
||||||
|
Buttons for removing dice from active set
|
||||||
|
|
||||||
Roll modifier editor
|
Roll modifier editor
|
||||||
|
|
||||||
Button to roll the active set
|
Button to roll the active set
|
||||||
|
|
||||||
Design representation of internal state of initiative tracker
|
Design representation of internal state of initiative tracker
|
||||||
|
|
||||||
x Design representation of internal state of dice tray
|
|
||||||
|
|
||||||
x Buttons for adding dice to active set
|
|
||||||
|
|
||||||
x Buttons for removing dice from active set
|
|
||||||
|
|
19
src/dice.c
19
src/dice.c
|
@ -1,5 +1,4 @@
|
||||||
#include "dice.h"
|
#include "dice.h"
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <memory.h>
|
#include <memory.h>
|
||||||
|
|
||||||
|
@ -11,11 +10,6 @@ int roll_die(enum die_type die) {
|
||||||
static int current_active_count = 0;
|
static int current_active_count = 0;
|
||||||
static enum die_type active_dice_set[MAX_ACTIVE_DICE];
|
static enum die_type active_dice_set[MAX_ACTIVE_DICE];
|
||||||
|
|
||||||
static struct roll_result_type roll_results[MAX_ACTIVE_DICE];
|
|
||||||
static struct roll_result_type roll_total = {
|
|
||||||
.roll = 0, .string_len = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
enum die_type const *get_active_dice_set(size_t *out_length) {
|
enum die_type const *get_active_dice_set(size_t *out_length) {
|
||||||
if (out_length != nullptr) {
|
if (out_length != nullptr) {
|
||||||
*out_length = current_active_count;
|
*out_length = current_active_count;
|
||||||
|
@ -36,12 +30,17 @@ void remove_die_from_active(size_t index) {
|
||||||
--current_active_count;
|
--current_active_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
void roll_active_dice_set(enum die_type die) {
|
struct roll_result_type roll_active_dice_set(enum die_type die) {
|
||||||
|
struct roll_result_type results = {
|
||||||
|
.individual_result_count = MAX_ACTIVE_DICE,
|
||||||
|
.total = 0
|
||||||
|
};
|
||||||
for (size_t i = 0; i < current_active_count; ++i) {
|
for (size_t i = 0; i < current_active_count; ++i) {
|
||||||
roll_results[i].roll = roll_die(active_dice_set[i]);
|
results.individual_results[i] = roll_die(active_dice_set[i]);
|
||||||
snprintf(roll_results[i].string, MAX_ROLL_STR_LEN, "%d", roll_results[i].roll);
|
results.total += results.individual_results[i];
|
||||||
roll_total.roll += roll_results[i].roll;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
Clay_String die_to_str(enum die_type die) {
|
Clay_String die_to_str(enum die_type die) {
|
||||||
|
|
17
src/dice.h
17
src/dice.h
|
@ -5,11 +5,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#ifndef MAX_ACTIVE_DICE
|
#ifndef MAX_ACTIVE_DICE
|
||||||
#define MAX_ACTIVE_DICE 20
|
#define MAX_ACTIVE_DICE 20
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef MAX_ROLL_STR_LEN
|
|
||||||
#define MAX_ROLL_STR_LEN 5
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum die_type {
|
enum die_type {
|
||||||
|
@ -24,9 +20,9 @@ enum die_type {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct roll_result_type {
|
struct roll_result_type {
|
||||||
int roll;
|
size_t individual_result_count;
|
||||||
size_t string_len;
|
int individual_results[MAX_ACTIVE_DICE];
|
||||||
char string[MAX_ROLL_STR_LEN];
|
int total;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int roll_die(enum die_type die);
|
extern int roll_die(enum die_type die);
|
||||||
|
@ -34,10 +30,7 @@ extern int roll_die(enum die_type die);
|
||||||
extern enum die_type const *get_active_dice_set(size_t *out_length);
|
extern enum die_type const *get_active_dice_set(size_t *out_length);
|
||||||
extern size_t add_die_to_active(enum die_type die);
|
extern size_t add_die_to_active(enum die_type die);
|
||||||
extern void remove_die_from_active(size_t index);
|
extern void remove_die_from_active(size_t index);
|
||||||
|
extern struct roll_result_type roll_active_dice_set(enum die_type die);
|
||||||
extern struct roll_result_type *current_state(size_t *out_length);
|
|
||||||
|
|
||||||
extern void roll_active_dice_set(enum die_type die);
|
|
||||||
|
|
||||||
extern Clay_String die_to_str(enum die_type die);
|
extern Clay_String die_to_str(enum die_type die);
|
||||||
|
|
||||||
|
|
|
@ -114,9 +114,6 @@ void InitClay() {
|
||||||
Clay_Initialize(clayPrimaryArena, (Clay_Dimensions) { screenWidth, screenHeight }, (Clay_ErrorHandler) { HandleClayErrors });
|
Clay_Initialize(clayPrimaryArena, (Clay_Dimensions) { screenWidth, screenHeight }, (Clay_ErrorHandler) { HandleClayErrors });
|
||||||
Clay_SetMeasureTextFunction(MeasureText, fonts);
|
Clay_SetMeasureTextFunction(MeasureText, fonts);
|
||||||
Clay_SetLayoutDimensions((Clay_Dimensions) { screenWidth, screenHeight });
|
Clay_SetLayoutDimensions((Clay_Dimensions) { screenWidth, screenHeight });
|
||||||
float x, y;
|
|
||||||
SDL_GetMouseState(&x, &y);
|
|
||||||
Clay_SetPointerState((Clay_Vector2) { x, y }, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern Clay_RenderCommandArray RenderApplication();
|
extern Clay_RenderCommandArray RenderApplication();
|
||||||
|
@ -156,9 +153,9 @@ int main(int argc, char *argv[]) {
|
||||||
break;
|
break;
|
||||||
case SDL_EVENT_MOUSE_WHEEL:
|
case SDL_EVENT_MOUSE_WHEEL:
|
||||||
if (shiftDown) {
|
if (shiftDown) {
|
||||||
scrollMotion = (Clay_Vector2) { event.wheel.y * 5.f, event.wheel.x * 5.f };
|
scrollMotion = (Clay_Vector2) { event.wheel.y * 2.f, event.wheel.x * 2.f };
|
||||||
} else {
|
} else {
|
||||||
scrollMotion = (Clay_Vector2) { event.wheel.x * 5.f, event.wheel.y * 5.f };
|
scrollMotion = (Clay_Vector2) { event.wheel.x * 2.f, event.wheel.y * 2.f };
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SDL_EVENT_MOUSE_MOTION:
|
case SDL_EVENT_MOUSE_MOTION:
|
||||||
|
|
Loading…
Reference in a new issue