diff --git a/client/src/main.c b/client/src/main.c index 79308e6..0a3ddaf 100644 --- a/client/src/main.c +++ b/client/src/main.c @@ -1,9 +1,6 @@ #include "GLFW/glfw3.h" #define CGLM_PRINT_PRECISION 10 #define CGLM_DEFINE_PRINTS 1 -#include "cglm/cam.h" -#include "cglm/mat4.h" -#include "cglm/io.h" #include "ui.h" #include "gpu.h" #include "draw.h" @@ -53,6 +50,35 @@ void* network_thread(void* data) { return NULL; } +VkResult add_hex_region(ClientContext* context) { + VkResult result; + + HexRegion* region; + + VK_RESULT(allocate_hex_region(0, 0, 0, context->hex->data.current_map, ®ion, context->hex, context->render)); + + for(uint32_t hex = 0; hex < REGION_HEX_COUNT; hex++) { + region->data.hexes[hex].color[0] = 0xFFFFFFFF; + region->data.hexes[hex].color[1] = 0xFFFFFFFF; + region->data.hexes[hex].color[2] = 0xFFFFFFFF; + region->data.hexes[hex].color[3] = 0xFFFFFFFF; + region->data.hexes[hex].color[4] = 0xFFFFFFFF; + region->data.hexes[hex].color[5] = 0xFFFFFFFF; + region->data.hexes[hex].color[6] = 0xFFFFFFFF; + + region->data.hexes[hex].height[0] = 0; + region->data.hexes[hex].height[1] = 0; + region->data.hexes[hex].height[2] = 0; + region->data.hexes[hex].height[3] = 0; + region->data.hexes[hex].height[4] = 0; + region->data.hexes[hex].height[5] = 0; + } + + VK_RESULT(set_hex_region(region, context->hex, context->render)); + + return VK_SUCCESS; +} + VkResult main_thread(ClientContext* context) { VkResult result; @@ -87,37 +113,6 @@ VkResult main_thread(ClientContext* context) { create_container(&container, context->render, context->ui); - HexRegion* regions[MAX_LOADED_REGIONS]; - uint32_t colors[] = { - 0xFF0000FF, - 0x00FF00FF, - 0x0000FFFF, - }; - - context->hex->data.current_map = 0x01; - VK_RESULT(add_transfers( - &context->hex->data.current_map, - context->hex->context, - offsetof(GPUHexContext, current_map), - sizeof(uint32_t), - context->render)); - - uint32_t region = 0; - for(int32_t q = -5; q < 5; q++) { - for(int32_t r = -5; r < 5; r++) { - VK_RESULT(allocate_hex_region(q, r, 0, 0x01, ®ions[region], context->hex, context->render)); - for(uint32_t i = 0; i < REGION_HEX_COUNT; i++) { - for(uint32_t h = 0; h < 6; h++) { - regions[region]->data.hexes[i].color[h] = colors[(q+r+50) % (sizeof(colors)/sizeof(uint32_t))]; - regions[region]->data.hexes[i].height[h] = (float)i/REGION_HEX_COUNT; - } - regions[region]->data.hexes[i].color[6] = colors[(q+r+50) % (sizeof(colors)/sizeof(uint32_t))]; - } - VK_RESULT(set_hex_region(regions[region], context->hex, context->render)); - region++; - } - } - // int frame = 0; double last_frame_time = 0; @@ -275,6 +270,12 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod context->velocity[1] -= 1; } break; + + case GLFW_KEY_EQUAL: + if(action == GLFW_RELEASE) { + add_hex_region(context); + } + break; } }