本文整理汇总了C++中LuaTable::GetFloat方法的典型用法代码示例。如果您正苦于以下问题:C++ LuaTable::GetFloat方法的具体用法?C++ LuaTable::GetFloat怎么用?C++ LuaTable::GetFloat使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LuaTable
的用法示例。
在下文中一共展示了LuaTable::GetFloat方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadSound
void WeaponDef::LoadSound(
const LuaTable& wdTable,
const std::string& soundKey,
const unsigned int soundIdx,
std::vector<GuiSoundSet::Data>& soundData)
{
string name = "";
int id = -1;
float volume = -1.0f;
soundData.push_back(GuiSoundSet::Data(name, id, volume));
assert(soundIdx < soundData.size());
assert(soundData[soundIdx].id == -1);
if (soundKey == "soundStart") {
name = wdTable.GetString(soundKey, "");
volume = wdTable.GetFloat(soundKey + "Volume", -1.0f);
}
else if (soundKey == "soundHitDry") {
name = wdTable.GetString(soundKey, wdTable.GetString("soundHit", ""));
volume = wdTable.GetFloat(soundKey + "Volume", wdTable.GetFloat("soundHitVolume", -1.0f));
}
else if (soundKey == "soundHitWet") {
name = wdTable.GetString(soundKey, wdTable.GetString("soundHit", ""));
volume = wdTable.GetFloat(soundKey + "Volume", wdTable.GetFloat("soundHitVolume", -1.0f));
}
if (name.empty())
return;
if ((id = CommonDefHandler::LoadSoundFile(name)) <= 0)
return;
soundData[soundIdx] = GuiSoundSet::Data(name, id, volume);
}
示例2: ReadTerrainTypes
void CMapInfo::ReadTerrainTypes()
{
const LuaTable terrTypeTable =
mapRoot->SubTable("terrainTypes");
for (int tt = 0; tt < 256; tt++) {
TerrainType& terrType = terrainTypes[tt];
const LuaTable terrain = terrTypeTable.SubTable(tt);
terrType.name = terrain.GetString("name", "Default");
terrType.hardness = terrain.GetFloat("hardness", 1.0f);
terrType.receiveTracks = terrain.GetBool("receiveTracks", true);
const LuaTable moveTable = terrain.SubTable("moveSpeeds");
terrType.tankSpeed = moveTable.GetFloat("tank", 1.0f);
terrType.kbotSpeed = moveTable.GetFloat("kbot", 1.0f);
terrType.hoverSpeed = moveTable.GetFloat("hover", 1.0f);
terrType.shipSpeed = moveTable.GetFloat("ship", 1.0f);
// clamps
terrType.hardness = max(0.0f, terrType.hardness);
terrType.tankSpeed = max(0.0f, terrType.tankSpeed);
terrType.kbotSpeed = max(0.0f, terrType.kbotSpeed);
terrType.hoverSpeed = max(0.0f, terrType.hoverSpeed);
terrType.shipSpeed = max(0.0f, terrType.shipSpeed);
}
}
示例3: LoadSound
void CWeaponDefHandler::LoadSound(const LuaTable& wdTable,
GuiSoundSet& gsound, const string& soundCat)
{
string name = "";
float volume = -1.0f;
if (soundCat == "start") {
name = wdTable.GetString("soundStart", "");
volume = wdTable.GetFloat("soundStartVolume", -1.0f);
}
else if (soundCat == "hit") {
name = wdTable.GetString("soundHit", "");
volume = wdTable.GetFloat("soundHitVolume", -1.0f);
}
if (name != "") {
const int id = LoadSoundFile(name);
if (id > 0)
{
GuiSoundSet::Data soundData(name, 0, volume);
gsound.sounds.push_back(soundData);
gsound.setID(0, id);
}
}
}
示例4: ReadGlobal
void CMapInfo::ReadGlobal()
{
const LuaTable topTable = *mapRoot;
map.humanName = topTable.GetString("description", map.name);
map.wantedScript = topTable.GetString("script", map.wantedScript);
map.hardness = topTable.GetFloat("maphardness", 100.0f);
map.notDeformable = topTable.GetBool("notDeformable", false);
map.gravity = topTable.GetFloat("gravity", 130.0f);
map.gravity = max(0.001f, map.gravity);
map.gravity = -map.gravity / (GAME_SPEED * GAME_SPEED);
map.tidalStrength = topTable.GetFloat("tidalStrength", 0.0f);
map.maxMetal = topTable.GetFloat("maxMetal", 0.02f);
map.extractorRadius = topTable.GetFloat("extractorRadius", 500.0f);
map.voidWater = topTable.GetBool("voidWater", false);
// clamps
map.hardness = max(0.0f, map.hardness);
map.tidalStrength = max(0.0f, map.tidalStrength);
map.maxMetal = max(0.0f, map.maxMetal);
map.extractorRadius = max(0.0f, map.extractorRadius);
}
示例5: ReadGlobal
void CMapInfo::ReadGlobal()
{
const LuaTable topTable = parser->GetRoot();
map.description = topTable.GetString("description", map.name);
map.author = topTable.GetString("author", "");
map.hardness = topTable.GetFloat("maphardness", 100.0f);
map.notDeformable = topTable.GetBool("notDeformable", false);
map.gravity = topTable.GetFloat("gravity", 130.0f);
map.gravity = max(0.001f, map.gravity);
map.gravity = -map.gravity / (GAME_SPEED * GAME_SPEED);
map.tidalStrength = topTable.GetFloat("tidalStrength", 0.0f);
map.maxMetal = topTable.GetFloat("maxMetal", 0.02f);
map.extractorRadius = topTable.GetFloat("extractorRadius", 500.0f);
map.voidWater = topTable.GetBool("voidWater", false);
// clamps
if (-0.001f < map.hardness && map.hardness <= 0.0f)
map.hardness = -0.001f;
else if (0.0f <= map.hardness && map.hardness < 0.001f)
map.hardness = 0.001f;
map.tidalStrength = max(0.000f, map.tidalStrength);
map.maxMetal = max(0.000f, map.maxMetal);
map.extractorRadius = max(0.000f, map.extractorRadius);
}
示例6: ReadGrass
void CMapInfo::ReadGrass()
{
const LuaTable grassTable = parser->GetRoot().SubTable("grass");
grass.bladeWaveScale = grassTable.GetFloat("bladeWaveScale", 1.0f);
grass.bladeWidth = grassTable.GetFloat("bladeWidth", 0.32f);
grass.bladeHeight = grassTable.GetFloat("bladeHeight", 4.0f);
grass.bladeAngle = grassTable.GetFloat("bladeAngle", 1.57f);
}
示例7: LoadSounds
void CUnitDefHandler::LoadSounds(const LuaTable& soundsTable, GuiSoundSet& gsound, const string& soundName)
{
string fileName = soundsTable.GetString(soundName, "");
if (!fileName.empty()) {
LoadSound(gsound, fileName, 1.0f);
return;
}
LuaTable sndTable = soundsTable.SubTable(soundName);
for (int i = 1; true; i++) {
LuaTable sndFileTable = sndTable.SubTable(i);
if (sndFileTable.IsValid()) {
fileName = sndFileTable.GetString("file", "");
if (!fileName.empty()) {
const float volume = sndFileTable.GetFloat("volume", 1.0f);
if (volume > 0.0f) {
LoadSound(gsound, fileName, volume);
}
}
} else {
fileName = sndTable.GetString(i, "");
if (fileName.empty()) {
break;
}
LoadSound(gsound, fileName, 1.0f);
}
}
}
示例8: ReadStartPos
void CMapInfo::ReadStartPos()
{
const float defX = 1000.0f;
const float defZ = 1000.0f;
const float defXStep = 100.0f;
const float defZStep = 100.0f;
const LuaTable teamsTable = mapRoot->SubTable("teams");
for (int t = 0; t < MAX_TEAMS; ++t) {
float3 pos;
pos.x = defX + (defXStep * t);
pos.z = defZ + (defZStep * t);
pos.y = 0.0f;
const LuaTable posTable = teamsTable.SubTable(t).SubTable("startPos");
if (posTable.KeyExists("x") &&
posTable.KeyExists("z")) {
pos.x = posTable.GetFloat("x", pos.x);
pos.z = posTable.GetFloat("z", pos.z);
havePos.push_back(true);
} else {
havePos.push_back(false);
}
startPos.push_back(pos);
}
}
示例9: CalculateModelProperties
// Calculate model radius from the min/max extents
void CAssParser::CalculateModelProperties(S3DModel* model, const LuaTable& modelTable)
{
CalculateModelDimensions(model, model->rootPiece);
// note: overrides default midpos of the SpringRadius piece
model->relMidPos.y = (model->maxs.y + model->mins.y) * 0.5f;
// Simplified dimensions used for rough calculations
model->radius = modelTable.GetFloat("radius", float3::max(float3::fabs(model->maxs), float3::fabs(model->mins)).Length());
model->height = modelTable.GetFloat("height", model->maxs.y);
model->relMidPos = modelTable.GetFloat3("midpos", model->relMidPos);
model->mins = modelTable.GetFloat3("mins", model->mins);
model->maxs = modelTable.GetFloat3("maxs", model->maxs);
model->drawRadius = model->radius;
}
示例10: Parse
void SolidObjectDecalDef::Parse(const LuaTable& table) {
groundDecalTypeName = table.GetString("groundDecalType", table.GetString("buildingGroundDecalType", ""));
trackDecalTypeName = table.GetString("trackType", "StdTank");
useGroundDecal = table.GetBool("useGroundDecal", table.GetBool("useBuildingGroundDecal", false));
groundDecalType = -1;
groundDecalSizeX = table.GetInt("groundDecalSizeX", table.GetInt("buildingGroundDecalSizeX", 4));
groundDecalSizeY = table.GetInt("groundDecalSizeY", table.GetInt("buildingGroundDecalSizeY", 4));
groundDecalDecaySpeed = table.GetFloat("groundDecalDecaySpeed", table.GetFloat("buildingGroundDecalDecaySpeed", 0.1f));
leaveTrackDecals = table.GetBool("leaveTracks", false);
trackDecalType = -1;
trackDecalWidth = table.GetFloat("trackWidth", 32.0f);
trackDecalOffset = table.GetFloat("trackOffset", 0.0f);
trackDecalStrength = table.GetFloat("trackStrength", 0.0f);
trackDecalStretch = table.GetFloat("trackStretch", 1.0f);
}
示例11: ReadSmf
void CMapInfo::ReadSmf()
{
// SMF specific settings
const LuaTable mapResTable = parser->GetRoot().SubTable("resources");
smf.detailTexName = mapResTable.GetString("detailTex", "");
smf.specularTexName = mapResTable.GetString("specularTex", "");
smf.splatDetailTexName = mapResTable.GetString("splatDetailTex", "");
smf.splatDistrTexName = mapResTable.GetString("splatDistrTex", "");
smf.grassBladeTexName = mapResTable.GetString("grassBladeTex", "");
smf.grassShadingTexName = mapResTable.GetString("grassShadingTex", "");
smf.skyReflectModTexName = mapResTable.GetString("skyReflectModTex", "");
smf.detailNormalTexName = mapResTable.GetString("detailNormalTex", "");
smf.lightEmissionTexName = mapResTable.GetString("lightEmissionTex", "");
if (!smf.detailTexName.empty()) {
smf.detailTexName = "maps/" + smf.detailTexName;
} else {
const LuaTable& resGfxMaps = resRoot->SubTable("graphics").SubTable("maps");
smf.detailTexName = resGfxMaps.GetString("detailtex", "detailtex2.bmp");
smf.detailTexName = "bitmaps/" + smf.detailTexName;
}
if (!smf.specularTexName.empty()) { smf.specularTexName = "maps/" + smf.specularTexName; }
if (!smf.splatDetailTexName.empty()) { smf.splatDetailTexName = "maps/" + smf.splatDetailTexName; }
if (!smf.splatDistrTexName.empty()) { smf.splatDistrTexName = "maps/" + smf.splatDistrTexName; }
if (!smf.grassBladeTexName.empty()) { smf.grassBladeTexName = "maps/" + smf.grassBladeTexName; }
if (!smf.grassShadingTexName.empty()) { smf.grassShadingTexName = "maps/" + smf.grassShadingTexName; }
if (!smf.skyReflectModTexName.empty()) { smf.skyReflectModTexName = "maps/" + smf.skyReflectModTexName; }
if (!smf.detailNormalTexName.empty()) { smf.detailNormalTexName = "maps/" + smf.detailNormalTexName; }
if (!smf.lightEmissionTexName.empty()) { smf.lightEmissionTexName = "maps/" + smf.lightEmissionTexName; }
// height overrides
const LuaTable smfTable = parser->GetRoot().SubTable("smf");
smf.minHeightOverride = smfTable.KeyExists("minHeight");
smf.maxHeightOverride = smfTable.KeyExists("maxHeight");
smf.minHeight = smfTable.GetFloat("minHeight", 0.0f);
smf.maxHeight = smfTable.GetFloat("maxHeight", 0.0f);
std::stringstream ss;
for (int i = 0; /* no test */; i++) {
ss.str("");
ss << "smtFileName" << i;
if (smfTable.KeyExists(ss.str())) {
smf.smtFileNames.push_back(smfTable.GetString(ss.str(), ".smt"));
} else {
break;
}
}
}
示例12: LoadSound
void CWeaponDefHandler::LoadSound(const LuaTable& wdTable,
GuiSoundSet& gsound, const string& soundCat)
{
string name = "";
float volume = -1.0f;
if (soundCat == "start") {
name = wdTable.GetString("soundStart", "");
volume = wdTable.GetFloat("soundStartVolume", -1.0f);
}
else if (soundCat == "hit") {
name = wdTable.GetString("soundHit", "");
volume = wdTable.GetFloat("soundHitVolume", -1.0f);
}
if (name != "") {
if (!sound->HasSoundItem(name))
{
if (name.find(".wav") == string::npos) {
// .wav extension missing, add it
name += ".wav";
}
const string soundPath = "sounds/" + name;
CFileHandler sfile(soundPath);
if (sfile.FileExists()) {
// only push data if we extracted a valid name
GuiSoundSet::Data soundData(name, 0, volume);
gsound.sounds.push_back(soundData);
int id = sound->GetSoundId(soundPath);
gsound.setID(0, id);
}
}
else
{
GuiSoundSet::Data soundData(name, 0, volume);
gsound.sounds.push_back(soundData);
int id = sound->GetSoundId(name);
gsound.setID(0, id);
}
}
}
示例13: ReadAtmosphere
void CMapInfo::ReadAtmosphere()
{
// MAP\ATMOSPHERE
const LuaTable atmoTable = mapRoot->SubTable("atmosphere");
atmosphere_t& atmo = atmosphere;
atmo.cloudDensity = atmoTable.GetFloat("cloudDensity", 0.5f);
atmo.minWind = atmoTable.GetFloat("minWind", 5.0f);
atmo.maxWind = atmoTable.GetFloat("maxWind", 25.0f);
atmo.fogStart = atmoTable.GetFloat("fogStart", 0.1f);
atmo.fogColor = atmoTable.GetFloat3("fogColor", float3(0.7f, 0.7f, 0.8f));
atmo.skyColor = atmoTable.GetFloat3("skyColor", float3(0.1f, 0.15f, 0.7f));
atmo.sunColor = atmoTable.GetFloat3("sunColor", float3(1.0f, 1.0f, 1.0f));
atmo.cloudColor = atmoTable.GetFloat3("cloudColor", float3(1.0f, 1.0f, 1.0f));
atmo.skyBox = atmoTable.GetString("skyBox", "");
// clamps
atmo.cloudDensity = max(0.0f, atmo.cloudDensity);
atmo.maxWind = max(0.0f, atmo.maxWind);
atmo.minWind = max(0.0f, atmo.minWind);
atmo.minWind = min(atmo.maxWind, atmo.minWind);
}
示例14: CalculateModelProperties
// Calculate model radius from the min/max extents
void CAssParser::CalculateModelProperties(S3DModel* model, const LuaTable& modelTable)
{
CalculateModelDimensions(model, model->rootPiece);
model->mins = modelTable.GetFloat3("mins", model->mins);
model->maxs = modelTable.GetFloat3("maxs", model->maxs);
model->radius = modelTable.GetFloat("radius", (model->maxs - model->mins ).Length() * 0.5f);
model->height = modelTable.GetFloat("height", (model->maxs.y - model->mins.y) );
model->relMidPos = modelTable.GetFloat3("midpos", (model->maxs + model->mins) * 0.5f);
}
示例15: ReadLight
void CMapInfo::ReadLight()
{
const LuaTable lightTable = mapRoot->SubTable("lighting");
light.sunDir = lightTable.GetFloat3("sunDir", float3(0.0f, 1.0f, 2.0f));
light.sunDir.Normalize();
light.groundAmbientColor = lightTable.GetFloat3("groundAmbientColor",
float3(0.5f, 0.5f, 0.5f));
light.groundSunColor = lightTable.GetFloat3("groundDiffuseColor",
float3(0.5f, 0.5f, 0.5f));
light.groundSpecularColor = lightTable.GetFloat3("groundSpecularColor",
float3(0.1f, 0.1f, 0.1f));
light.groundShadowDensity = lightTable.GetFloat("groundShadowDensity", 0.8f);
light.unitAmbientColor = lightTable.GetFloat3("unitAmbientColor",
float3(0.4f, 0.4f, 0.4f));
light.unitSunColor = lightTable.GetFloat3("unitDiffuseColor",
float3(0.7f, 0.7f, 0.7f));
light.specularSunColor = lightTable.GetFloat3("unitSpecularColor",
light.unitSunColor);
light.unitShadowDensity = lightTable.GetFloat("unitShadowDensity", 0.8f);
}