| 254 | } |
| 255 | |
| 256 | void Squirrel::AddMethod(std::string_view method_name, SQFUNCTION proc, std::string_view params, void *userdata, int size) |
| 257 | { |
| 258 | ScriptAllocatorScope alloc_scope(this); |
| 259 | |
| 260 | sq_pushstring(this->vm, method_name); |
| 261 | |
| 262 | if (size != 0) { |
| 263 | void *ptr = sq_newuserdata(vm, size); |
| 264 | std::copy_n(static_cast<std::byte *>(userdata), size, static_cast<std::byte *>(ptr)); |
| 265 | } |
| 266 | |
| 267 | sq_newclosure(this->vm, proc, size != 0 ? 1 : 0); |
| 268 | if (!params.empty()) sq_setparamscheck(this->vm, params.size(), params); |
| 269 | sq_setnativeclosurename(this->vm, -1, method_name); |
| 270 | sq_newslot(this->vm, -3, SQFalse); |
| 271 | } |
| 272 | |
| 273 | void Squirrel::AddConst(std::string_view var_name, SQInteger value) |
| 274 | { |
no test coverage detected