MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / set

Method set

ogsr_engine/xrGame/script_vars_storage.cpp:394–420  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

392}
393
394void CScriptVarsTable::set(lua_State* L, int key_index, int value_index)
395{
396 LPCSTR tk = NULL;
397 string16 tmp;
398
399 int kt = lua_type(L, key_index);
400 switch (kt)
401 {
402 case LUA_TBOOLEAN: tk = lua_toboolean(L, key_index) ? "true" : "false"; break;
403 case LUA_TNUMBER: tk = _itoa(lua_tointeger(L, key_index), tmp, 10); break;
404 case LUA_TSTRING: // конвертирование не строковых значений в строки, поставит в тупик lua_next
405 tk = lua_tostring(L, key_index);
406 break;
407 }
408
409 bool push_val = (value_index != -1) && (value_index != lua_gettop(L));
410
411 if (tk)
412 {
413 is_array &= (LUA_TNUMBER == kt); // если это массив с нулевым и отрицательным ключом
414 if (push_val)
415 lua_pushvalue(L, value_index);
416 set(L, tk, lua_gettop(L), kt);
417 if (push_val)
418 lua_pop(L, 1);
419 }
420}
421
422void CScriptVarsTable::set(lua_State* L, LPCSTR k, int index, int key_type)
423{

Callers 1

script_vars_new_indexFunction · 0.45

Calls 15

ZeroMemoryFunction · 0.85
lua_dumpFunction · 0.85
is_class_objectFunction · 0.85
MsgFunction · 0.85
smart_allocMethod · 0.80
add_refMethod · 0.80
pointerMethod · 0.80
r_seekMethod · 0.80
r_tellMethod · 0.80
setFunction · 0.70
lua_typeFunction · 0.50
lua_tobooleanFunction · 0.50

Tested by

no test coverage detected