]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/util.c
Port to FreeBSD
[dragonblocks_alpha.git] / src / util.c
index 464529b049b6058b4446deccc0d5cbf7c34c8414..7bdd1de93046bb03b838e26b3eb11df24653417b 100644 (file)
@@ -3,6 +3,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <zlib.h>
+#include <dragonport/asprintf.h>
 #include "map.h"
 #include "util.h"
 
@@ -57,14 +58,6 @@ char *address_string(struct sockaddr_in6 *addr)
        return result;
 }
 
-// convert #RRGGBB color to v3f32
-v3f32 html_to_v3f32(const char *html)
-{
-       unsigned int r, g, b;
-       sscanf(html, "#%2x%2x%2x", &r, &g, &b);
-       return (v3f32) {(f32) r / 255.0f, (f32) g / 255.0f, (f32) b / 255.0f};
-}
-
 // compress data using ZLib and store result(buffer allocated by malloc) in compressed
 void my_compress(const void *uncompressed, size_t uncompressed_size, char **compressed, size_t *compressed_size)
 {
@@ -112,10 +105,20 @@ bool my_decompress(const char *compressed, size_t compressed_size, void *decompr
 bool within_simulation_distance(v3f64 player_pos, v3s32 block_pos, u32 simulation_distance)
 {
        v3s32 player_block_pos = map_node_to_block_pos((v3s32) {player_pos.x, player_pos.y, player_pos.z}, NULL);
-       return abs(player_block_pos.x - block_pos.x) <= simulation_distance && abs(player_block_pos.y - block_pos.y) <= simulation_distance && abs(player_block_pos.z - block_pos.z) <= simulation_distance;
+       return abs(player_block_pos.x - block_pos.x) <= (s32) simulation_distance && abs(player_block_pos.y - block_pos.y) <= (s32) simulation_distance && abs(player_block_pos.z - block_pos.z) <= (s32) simulation_distance;
 }
 
 f64 clamp(f64 v, f64 min, f64 max)
 {
        return v < min ? min : v > max ? max : v;
 }
+
+char *format_string(const char *format, ...)
+{
+       va_list args;
+       va_start(args, format);
+       char *ptr;
+       vasprintf(&ptr, format, args);
+       va_end(args);
+       return ptr;
+}