int CCLuaEngine::pushCCScriptValueToLuaStack(const CCScriptValue& value) { const CCScriptValueType type = value.getType(); if (type == CCScriptValueTypeInt) { return pushIntegerToLuaStack(value.intValue()); } else if (type == CCScriptValueTypeFloat) { return pushFloatToLuaStack(value.floatValue()); } else if (type == CCScriptValueTypeBoolean) { return pushBooleanToLuaStack(value.booleanValue()); } else if (type == CCScriptValueTypeString) { return pushStringToLuaStack(value.stringValue().c_str()); } else if (type == CCScriptValueTypeDict) { pushCCScriptValueDictToLuaStack(value.dictValue()); } else if (type == CCScriptValueTypeArray) { pushCCScriptValueArrayToLuaStack(value.arrayValue()); } else if (type == CCScriptValueTypeCCObject) { pushCCObjectToLuaStack(value.ccobjectValue(), value.getCCObjectTypename().c_str()); } return lua_gettop(m_state); }
int CCLuaEngine::pushCCLuaValueToLuaStack(CCLuaValue* pValue) { CCLuaValueType type = pValue->getType(); if (type == CCLuaValueTypeInt) { return pushIntegerToLuaStack(pValue->getIntValue()); } else if (type == CCLuaValueTypeFloat) { return pushFloatToLuaStack(pValue->getFloatValue()); } else if (type == CCLuaValueTypeBoolean) { return pushBooleanToLuaStack(pValue->getBooleanValue()); } else if (type == CCLuaValueTypeString) { return pushStringToLuaStack(pValue->getStringValue().c_str()); } else if (type == CCLuaValueTypeCCLuaTableDict) { pushCCLuaTableDictToLuaStack(pValue->getTableDictValue()); } else if (type == CCLuaValueTypeCCLuaTableArray) { pushCCLuaTableArrayToLuaStack(pValue->getTableArrayValue()); } return lua_gettop(m_state); }