From a23921bc98df11427e2c57d3128653914654d74a Mon Sep 17 00:00:00 2001 From: Marto Date: Tue, 22 Jul 2025 23:03:24 +0200 Subject: [PATCH] implemented gui mode view --- build.zig | 2 ++ src/main.zig | 1 + src/road/road-manager.zig | 11 +++++++++++ src/road/road.zig | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index 803412a..989f674 100644 --- a/build.zig +++ b/build.zig @@ -71,10 +71,12 @@ pub fn build(b: *std.Build) void { }); const raylib = raylib_dep.module("raylib"); // main raylib module + const raygui = raylib_dep.module("raygui"); // raygui module const raylib_artifact = raylib_dep.artifact("raylib"); // raylib c library exe.linkLibrary(raylib_artifact); exe.root_module.addImport("raylib", raylib); + exe.root_module.addImport("raygui", raygui); // This declares intent for the executable to be installed into the // standard location when the user invokes the "install" step (the default diff --git a/src/main.zig b/src/main.zig index 3433615..cc64276 100644 --- a/src/main.zig +++ b/src/main.zig @@ -50,5 +50,6 @@ pub fn main() !void { road_manager.draw(); area_manager.draw(); road_manager.drawNodes(); + try road_manager.drawMode(); } } diff --git a/src/road/road-manager.zig b/src/road/road-manager.zig index 74d9f00..81b04cc 100644 --- a/src/road/road-manager.zig +++ b/src/road/road-manager.zig @@ -1,5 +1,6 @@ const std = @import("std"); const rl = @import("raylib"); +// const rg = @import("raygui"); const area_str = @import("../area/areas.zig"); const road_str = @import("road.zig"); const road_data = @import("road-data.zig"); @@ -212,6 +213,16 @@ pub const RoadManager = struct { } } + pub fn drawMode(self: *const RoadManager) !void { + const prefix = "Mode: "; + const text = @tagName(self.mode); // this turns an enum into string like "normal" + const full_text = try std.fmt.allocPrintZ(self.allocator, "{s}{s}", .{ prefix, text }); + defer self.allocator.free(full_text); + + // draw funct + rl.drawText(full_text, @divTrunc(globals.getScreenWidth(), 3), 50, 100, .dark_blue); + } + fn getLastIndex(self: *const RoadManager) ?usize { if (self.roads.items.len == 0) return null; return self.roads.items.len - 1; diff --git a/src/road/road.zig b/src/road/road.zig index ae28cd9..2583f2e 100644 --- a/src/road/road.zig +++ b/src/road/road.zig @@ -19,7 +19,7 @@ pub const Road = struct { pub fn confirmRoad(self: *Road, pos: rl.Vector2) void { self.end_point = pos; } - + // lets make each road state carry the color with it instead of this pub fn setColor(self: *Road, road_state: str.RoadState) void { self.color = switch (road_state) { .valid => .black,