From 1f5a78a11815bb0adfd0bb0d7c1ee64d867d259e Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 19 Oct 2024 19:37:51 +0200 Subject: [PATCH] lua binding for roads --- src/bind_region.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/bind_region.c b/src/bind_region.c index 5cfef2bd4..638d3f398 100644 --- a/src/bind_region.c +++ b/src/bind_region.c @@ -250,6 +250,19 @@ static int tolua_region_get_adj(lua_State * L) return 1; } +static int tolua_region_get_roads(lua_State * L) +{ + region *r = (region *)tolua_tousertype(L, 1, NULL); + int d, idx; + + lua_createtable(L, MAXDIRECTIONS, 0); + for (d = 0, idx = 0; d != MAXDIRECTIONS; ++d) { + lua_pushinteger(L, rroad(r, d)); + lua_rawseti(L, -2, ++idx); + } + return 1; +} + static int tolua_region_get_luxury(lua_State * L) { region *r = (region *)tolua_tousertype(L, 1, NULL); @@ -815,6 +828,7 @@ void tolua_region_open(lua_State * L) tolua_function(L, "set_flag", tolua_region_set_flag); tolua_function(L, "next", tolua_region_get_next); tolua_variable(L, "adj", tolua_region_get_adj, NULL); + tolua_variable(L, "roads", tolua_region_get_roads, NULL); tolua_variable(L, "luxury", &tolua_region_get_luxury, &tolua_region_set_luxury);