Compare commits

..

No commits in common. "11e7e23962b57775bfa38e6ac32eb2618c9b4240" and "4c9cafdff5c798e0153abe24da8799858d3c76ed" have entirely different histories.

4 changed files with 22 additions and 33 deletions

View file

@ -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
Button to roll the active set
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

View file

@ -1,5 +1,4 @@
#include "dice.h"
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
@ -11,11 +10,6 @@ int roll_die(enum die_type die) {
static int current_active_count = 0;
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) {
if (out_length != nullptr) {
*out_length = current_active_count;
@ -36,12 +30,17 @@ void remove_die_from_active(size_t index) {
--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) {
roll_results[i].roll = roll_die(active_dice_set[i]);
snprintf(roll_results[i].string, MAX_ROLL_STR_LEN, "%d", roll_results[i].roll);
roll_total.roll += roll_results[i].roll;
results.individual_results[i] = roll_die(active_dice_set[i]);
results.total += results.individual_results[i];
}
return results;
}
Clay_String die_to_str(enum die_type die) {

View file

@ -8,10 +8,6 @@
#define MAX_ACTIVE_DICE 20
#endif
#ifndef MAX_ROLL_STR_LEN
#define MAX_ROLL_STR_LEN 5
#endif
enum die_type {
COIN = 2,
D4 = 4,
@ -24,9 +20,9 @@ enum die_type {
};
struct roll_result_type {
int roll;
size_t string_len;
char string[MAX_ROLL_STR_LEN];
size_t individual_result_count;
int individual_results[MAX_ACTIVE_DICE];
int total;
};
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 size_t add_die_to_active(enum die_type die);
extern void remove_die_from_active(size_t index);
extern struct roll_result_type *current_state(size_t *out_length);
extern void roll_active_dice_set(enum die_type die);
extern struct roll_result_type roll_active_dice_set(enum die_type die);
extern Clay_String die_to_str(enum die_type die);

View file

@ -114,9 +114,6 @@ void InitClay() {
Clay_Initialize(clayPrimaryArena, (Clay_Dimensions) { screenWidth, screenHeight }, (Clay_ErrorHandler) { HandleClayErrors });
Clay_SetMeasureTextFunction(MeasureText, fonts);
Clay_SetLayoutDimensions((Clay_Dimensions) { screenWidth, screenHeight });
float x, y;
SDL_GetMouseState(&x, &y);
Clay_SetPointerState((Clay_Vector2) { x, y }, false);
}
extern Clay_RenderCommandArray RenderApplication();
@ -156,9 +153,9 @@ int main(int argc, char *argv[]) {
break;
case SDL_EVENT_MOUSE_WHEEL:
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 {
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;
case SDL_EVENT_MOUSE_MOTION: