| 4 | // *********************************************************************** |
| 5 | |
| 6 | void SetImpl(lua_State* L, UserData* pUserData, i32 index, i32 startParam) { |
| 7 | // now grab as many integers as you can find and put them in the userdata from the starting index |
| 8 | // while until none or nil |
| 9 | i32 paramCounter = startParam; |
| 10 | switch(pUserData->type) { |
| 11 | case Type::Float32: { |
| 12 | f32* pData = (f32*)pUserData->pData; |
| 13 | pData += index; |
| 14 | while (lua_isnumber(L, paramCounter) == 1) { |
| 15 | *pData = (f32)lua_tonumber(L, paramCounter); |
| 16 | pData++; paramCounter++; |
| 17 | } |
| 18 | break; |
| 19 | } |
| 20 | case Type::Int32: { |
| 21 | i32* pData = (i32*)pUserData->pData; |
| 22 | pData += index; |
| 23 | while (lua_isnumber(L, paramCounter) == 1) { |
| 24 | *pData = (i32)lua_tointeger(L, paramCounter); |
| 25 | pData++; paramCounter++; |
| 26 | } |
| 27 | break; |
| 28 | } |
| 29 | case Type::Int16: { |
| 30 | i16* pData = (i16*)pUserData->pData; |
| 31 | pData += index; |
| 32 | while (lua_isnumber(L, paramCounter) == 1) { |
| 33 | *pData = (i16)lua_tointeger(L, paramCounter); |
| 34 | pData++; paramCounter++; |
| 35 | } |
| 36 | break; |
| 37 | } |
| 38 | case Type::Uint8: { |
| 39 | u8* pData = (u8*)pUserData->pData; |
| 40 | pData += index; |
| 41 | while (lua_isnumber(L, paramCounter) == 1) { |
| 42 | *pData = (u8)lua_tounsigned(L, paramCounter); |
| 43 | pData++; paramCounter++; |
| 44 | } |
| 45 | break; |
| 46 | } |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | // *********************************************************************** |
| 51 | |