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