COLOR :: enum u32 { FG_BLACK :: 0x0000; FG_DARK_BLUE :: 0x0001; FG_DARK_GREEN :: 0x0002; FG_DARK_CYAN :: 0x0003; FG_DARK_RED :: 0x0004; FG_DARK_MAGENTA :: 0x0005; FG_DARK_YELLOW :: 0x0006; FG_GREY :: 0x0007; FG_DARK_GREY :: 0x0008; FG_BLUE :: 0x0009; FG_GREEN :: 0x000A; FG_CYAN :: 0x000B; FG_RED :: 0x000C; FG_MAGENTA :: 0x000D; FG_YELLOW :: 0x000E; FG_WHITE :: 0x000F; BG_BLACK :: 0x0000; BG_DARK_BLUE :: 0x0010; BG_DARK_GREEN :: 0x0020; BG_DARK_CYAN :: 0x0030; BG_DARK_RED :: 0x0040; BG_DARK_MAGENTA :: 0x0050; BG_DARK_YELLOW :: 0x0060; BG_GREY :: 0x0070; BG_DARK_GREY :: 0x0080; BG_BLUE :: 0x0090; BG_GREEN :: 0x00A0; BG_CYAN :: 0x00B0; BG_RED :: 0x00C0; BG_MAGENTA :: 0x00D0; BG_YELLOW :: 0x00E0; BG_WHITE :: 0x00F0; } PIXEL_TYPE :: enum u32 { PIXEL_SOLID :: 0x2588; PIXEL_THREEQUARTERS :: 0x2593; PIXEL_HALF :: 0x2592; PIXEL_QUARTER :: 0x2591; } Char_Info :: struct { color: COLOR; type : PIXEL_TYPE; } Screen :: struct { width : s64; height: s64; buffer: [..] Char_Info; } init_screen :: (screen: *Screen, width: s64, height: s64) { buffer : [..] Char_Info; array_resize(*buffer, width * height); screen.width = width; screen.height = height; screen.buffer = buffer; } resize_screen :: (screen: *Screen, width: s64, height: s64) { screen.width = width; screen.height = height; array_resize(*screen.buffer, width * height); } #load "draw.jai"; #load "file_operations.jai"; #scope_module #import "Basic"; #import "Math";