code: small changes
parent
d10ae63aa7
commit
553eca86aa
|
@ -1,2 +1,6 @@
|
||||||
build
|
build
|
||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
|
GPATH
|
||||||
|
GRTAGS
|
||||||
|
GTAGS
|
||||||
|
|
|
@ -3,12 +3,11 @@
|
||||||
|
|
||||||
// todo: csv parsing + utils
|
// todo: csv parsing + utils
|
||||||
|
|
||||||
#define BLOCK_NAMELEN 80
|
|
||||||
#define BLOCKS_COUNT (sizeof(blocks)/sizeof(block))
|
#define BLOCKS_COUNT (sizeof(blocks)/sizeof(block))
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t tex_id;
|
uint8_t tex_id;
|
||||||
char name[BLOCK_NAMELEN];
|
const char *name;
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
uint32_t kind;
|
uint32_t kind;
|
||||||
uint32_t biome;
|
uint32_t biome;
|
||||||
|
|
|
@ -31,6 +31,26 @@ static void world_fill_rect(uint32_t id, uint32_t x, uint32_t y, uint32_t w, uin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void world_fill_circle(uint32_t id, uint32_t x, uint32_t y, uint32_t w, uint32_t h, world_block_observer_proc *proc) {
|
||||||
|
for (uint32_t cy=y; cy<y+h; cy++) {
|
||||||
|
for (uint32_t cx=x; cx<x+w; cx++) {
|
||||||
|
if (cx < 0 || cx >= world_width) continue;
|
||||||
|
if (cy < 0 || cy >= world_height) continue;
|
||||||
|
uint32_t i = (cy*world_width) + cx;
|
||||||
|
|
||||||
|
if (proc) {
|
||||||
|
uint32_t new_id = (*proc)(id, i);
|
||||||
|
if (new_id != BLOCK_INVALID) {
|
||||||
|
id = new_id;
|
||||||
|
}
|
||||||
|
else continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
world[i] = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void world_fill_rect_anchor(uint32_t id, uint32_t x, uint32_t y, uint32_t w, uint32_t h, float ax, float ay, world_block_observer_proc *proc) {
|
static void world_fill_rect_anchor(uint32_t id, uint32_t x, uint32_t y, uint32_t w, uint32_t h, float ax, float ay, world_block_observer_proc *proc) {
|
||||||
uint32_t w2 = (uint32_t)floorf(w*ax);
|
uint32_t w2 = (uint32_t)floorf(w*ax);
|
||||||
uint32_t h2 = (uint32_t)floorf(h*ay);
|
uint32_t h2 = (uint32_t)floorf(h*ay);
|
||||||
|
@ -74,6 +94,10 @@ static WORLD_BLOCK_OBSERVER(shaper_noise33) {
|
||||||
return world_perlin_cond(block_idx, 0.33) ? shaper(id, block_idx) : BLOCK_INVALID;
|
return world_perlin_cond(block_idx, 0.33) ? shaper(id, block_idx) : BLOCK_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void world_fill_mountain(uint32_t x, uint32_t y) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#define RAND_RANGE(x,y) (x + (uint32_t)rand()%(y-(x)))
|
#define RAND_RANGE(x,y) (x + (uint32_t)rand()%(y-(x)))
|
||||||
|
|
||||||
int32_t world_gen() {
|
int32_t world_gen() {
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
Loading…
Reference in New Issue