diff options
Diffstat (limited to 'src/lua_core.c')
| -rw-r--r-- | src/lua_core.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lua_core.c b/src/lua_core.c index 843a38a..0eca9be 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -2693,6 +2693,19 @@ Matrix uluaGetMatrix( lua_State *L, int index ) { if ( lua_isnumber( L, -1 ) ) { m[i][j] = lua_tonumber( L, -1 ); } + /* Look for one depth further if Matrix given as class. */ + else if ( lua_istable( L, -1 ) ) { + int t3 = lua_gettop( L ), k = 0; + lua_pushnil( L ); + + while ( lua_next( L, t3 ) != 0 ) { + if ( lua_isnumber( L, -1 ) ) { + m[j][k] = lua_tonumber( L, -1 ); + } + k++; + lua_pop( L, 1 ); + } + } j++; lua_pop( L, 1 ); } |
