update some stuff from space-trading

This commit is contained in:
Tenari
2026-03-26 20:02:30 -05:00
parent 8359c3af6f
commit 74330dc268
2 changed files with 60 additions and 0 deletions
+37
View File
@@ -189,6 +189,10 @@
# define assertBreak() (*(volatile int*)0 = 0)
#endif
#ifndef offsetof
# define offsetof(st, m) ((size_t)&(((st*)0)->m))
#endif
#if ENABLE_ASSERT
# define assert(c) stmnt( if (!(c)){ assertBreak(); } )
#else
@@ -319,6 +323,31 @@ typedef enum Utf8Character {
Utf8Character_Count,
} Utf8Character;
typedef enum FieldType {
FieldTypeU8,
FieldTypeU16,
FieldTypeU32,
FieldTypeFloat,
FieldTypeString,
FieldTypeEnum,
FieldType_Count,
} FieldType;
typedef struct FieldDescriptor {
str name;
FieldType type;
size_t offset;
int width; // column width for display
str* enum_vals;
} FieldDescriptor;
typedef struct TableDrawInfo {
u32 x_offset;
u32 y_offset;
u32 rows;
u32 cols;
} TableDrawInfo;
typedef struct Box {
u32 x;
u32 y;
@@ -336,6 +365,11 @@ typedef struct Pos2 {
u16 y;
} Pos2;
typedef struct Pos2u8 {
u8 x;
u8 y;
} Pos2u8;
typedef union Range1u32 Range1u32;
union Range1u32
{
@@ -399,6 +433,7 @@ union Range1f32
# include <ws2tcpip.h>
# include <timeapi.h>
# include <conio.h>
# include <pthread.h>
typedef struct {
DWORD input_mode;
DWORD output_mode;
@@ -468,6 +503,8 @@ global const u64 MAX_u64 = 0xffffffffffffffffull;
global const u32 MAX_u32 = 0xffffffff;
global const u16 MAX_u16 = 0xffff;
global const u8 MAX_u8 = 0xff;
#define EULERS_E (2.71828)
#define PI (3.14159265358979323846)
///// CUSTOM ENTRY POINT
/* TODO?
+23
View File
@@ -34,6 +34,17 @@ fn u64 writeU16ToBufferLE(u8* buffer, u16 value) {
return 2;// number of bytes written
}
fn u64 writeF32ToBufferLE(u8* buffer, f32 value) {
u32 bits;
memcpy(&bits, &value, sizeof(u32)); // reinterpret float bits as integer
buffer[0] = (u8)(bits & 0xFF);
buffer[1] = (u8)((bits >> 8) & 0xFF);
buffer[2] = (u8)((bits >> 16) & 0xFF);
buffer[3] = (u8)((bits >> 24) & 0xFF);
return 4;// number of bytes written
}
fn u64 readU64FromBufferLE(u8 *buffer) {
return (u64)buffer[0] |
((u64)buffer[1] << 8) |
@@ -64,3 +75,15 @@ fn u16 readU16FromBufferLE(u8 *buffer) {
((u16)buffer[1] << 8);
}
fn f32 readF32FromBufferLE(u8 *buf) {
u32 bits = 0;
bits |= (u32)(u8)buf[0] << 0;
bits |= (u32)(u8)buf[1] << 8;
bits |= (u32)(u8)buf[2] << 16;
bits |= (u32)(u8)buf[3] << 24;
f32 value;
memcpy(&value, &bits, sizeof(f32));
return value;
}