implemented basic pathing checks/algorithms, implemented entities id display for easier debugging
31 lines
654 B
Odin
31 lines
654 B
Odin
package infrastructure
|
|
|
|
import "../common"
|
|
|
|
Road :: struct {
|
|
// Index to nodes that limit the road
|
|
nodes: [2]uint,
|
|
speed_limit: u8,
|
|
length: f32,
|
|
}
|
|
|
|
// Road Initialisation
|
|
road_init :: proc(start: uint, end: uint, calculated_length: f32) -> Road {
|
|
return {
|
|
nodes = {start, end},
|
|
speed_limit = common.DEFAULT_SPEED_LIMIT,
|
|
length = calculated_length
|
|
}
|
|
}
|
|
|
|
// Updates existing node reference to a new one; returns false if old ref was not found
|
|
road_update_node_reference :: proc(self: ^Road, old_ref: uint, new_ref: uint) -> bool {
|
|
for &node in self.nodes {
|
|
if node != old_ref do continue
|
|
|
|
node = new_ref
|
|
return true
|
|
}
|
|
|
|
return false
|
|
} |