MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / SetStructVector

Function SetStructVector

extensions/structs/natives.cpp:254–288  ·  view source on GitHub ↗

native SetStructVector(Handle:struct, const String:member[], Float:vec[3]);

Source from the content-addressed store, hash-verified

252
253//native SetStructVector(Handle:struct, const String:member[], Float:vec[3]);
254static cell_t SetStructVector(IPluginContext *pContext, const cell_t *params)
255{
256 Handle_t hndl = static_cast<Handle_t>(params[1]);
257 HandleError err;
258 HandleSecurity sec;
259
260 sec.pOwner = NULL;
261 sec.pIdentity = myself->GetIdentity();
262
263 StructHandle *pHandle;
264 if ((err = g_pHandleSys->ReadHandle(hndl, g_StructHandle, &sec, (void **)&pHandle))
265 != HandleError_None)
266 {
267 return pContext->ThrowNativeError("Invalid struct handle %x (error %d)", hndl, err);
268 }
269
270 char *member;
271 pContext->LocalToString(params[2], &member);
272
273 Vector value;
274
275 cell_t *addr;
276 pContext->LocalToPhysAddr(params[3], &addr);
277
278 value.x = sp_ctof(addr[0]);
279 value.y = sp_ctof(addr[1]);
280 value.z = sp_ctof(addr[2]);
281
282 if (!pHandle->SetVector(member, value))
283 {
284 return pContext->ThrowNativeError("Invalid member, or incorrect data type");
285 }
286
287 return 1;
288}
289
290//native GetStructString(Handle:struct, const String:member[], String:value[], maxlen);
291static cell_t GetStructString(IPluginContext *pContext, const cell_t *params)

Callers

nothing calls this directly

Calls 3

GetIdentityMethod · 0.45
ReadHandleMethod · 0.45
SetVectorMethod · 0.45

Tested by

no test coverage detected