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 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

View file

@ -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) {

View file

@ -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);

View file

@ -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: