diff --git a/changes.txt b/changes.txt index f7b9c1c6f..70d13a8a4 100644 --- a/changes.txt +++ b/changes.txt @@ -79,6 +79,7 @@ Released: N/A * Added love.sensor module. * Added love.sensorupdated callback. * Added love.joysticksensorupdated callback. +* Added variant for enet peer:send and host:broadcast which accepts a pointer (light userdata) and a size. * Changed love.filesystem.exists to no longer be deprecated. * Changed the default font from Vera size 12 to Noto Sans size 13. diff --git a/src/libraries/enet/enet.cpp b/src/libraries/enet/enet.cpp index 2e1b8ebc0..218c09fe5 100644 --- a/src/libraries/enet/enet.cpp +++ b/src/libraries/enet/enet.cpp @@ -234,12 +234,21 @@ static void push_event(lua_State *l, ENetEvent *event) { /** * Read a packet off the stack as a string - * idx is position of string + * idx is position of string or lightuserdata */ static ENetPacket *read_packet(lua_State *l, int idx, enet_uint8 *channel_id) { size_t size; int argc = lua_gettop(l); - const void *data = luaL_checklstring(l, idx, &size); + const void* data; + + if (lua_islightuserdata(l, idx)) { + data = lua_touserdata(l, idx); + size = (size_t) luaL_checknumber(l, idx + 1); + idx++; + } + else { + data = luaL_checklstring(l, idx, &size); + } ENetPacket *packet; enet_uint32 flags = ENET_PACKET_FLAG_RELIABLE;