Code:CLuaBase lua; lua.SetGlobalPointer("PRJ", this); lua.RegisterFunction("AddLimit", &CProject::AddUpgradeLimit); lua.SetGlobalInt32("NOLIMIT", 0); lua.SetGlobalInt32("GENERAL", 0); lua.SetGlobalInt32("ACCESSORY", 1); lua.SetGlobalInt32("ULTIMATE_WEAPON", 2); lua.SetGlobalInt32("BARUNA_WEAPON", 3); lua.SetGlobalInt32("BARUNA_SUIT", 4); lua.SetGlobalInt32("BARUNA_ARMORETC", 5); lua.SetGlobalInt32("PIERCING_SUIT", 6); lua.SetGlobalInt32("PIERCING_WEAPON", 7); lua.SetGlobalInt32("BARUNA_ACCESSORY",8);Code:lua_getglobal(luastate,"PRJ"); CProject* ptr = (CProject*)lua_topointer(luastate, -1); // why not practice avoiding globals? switch (lua_tointeger(luastate, 1)) { case 0: // GENERAL ptr->m_mapUpgradeCap_General.insert(make_pair(lua_tointeger(luastate, 2), lua_tointeger(luastate, 3))); break; case 1: // ACCESSORY ptr->m_mapUpgradeCap_Accessory.insert(make_pair(lua_tointeger(luastate, 2), lua_tointeger(luastate, 3))); break;





