diff --git a/docs/sdk/material/ocm.xml b/docs/sdk/material/ocm.xml index 017937aab..f85616798 100644 --- a/docs/sdk/material/ocm.xml +++ b/docs/sdk/material/ocm.xml @@ -106,9 +106,12 @@ Inflammability. - Incindiary + Incendiary Integer - This material incinerates objects. + + This material incinerates objects. + Note: For compatibility reasons, the misspelling "Incindiary" is also accepted if (and only if) no value with the correct spelling is set. + Corrode @@ -372,8 +375,11 @@ The background material. - Incindiary - All materials to be incinerated. + Incendiary + + All materials that can incinerate objects. + Note: For compatibility reasons, the misspelling "Incindiary" is also accepted. + Extinguisher diff --git a/planet/Arena.ocf/FrozenFortress.ocs/Material.ocg/Snow.ocm b/planet/Arena.ocf/FrozenFortress.ocs/Material.ocg/Snow.ocm index ebb0ae639..a815e4f3e 100644 --- a/planet/Arena.ocf/FrozenFortress.ocs/Material.ocg/Snow.ocm +++ b/planet/Arena.ocf/FrozenFortress.ocs/Material.ocg/Snow.ocm @@ -25,5 +25,5 @@ InMatConvertDepth=1 [Reaction] Type=Convert -TargetSpec=Incindiary +TargetSpec=Incendiary ConvertMat=Water diff --git a/planet/Material.ocg/DuroLava.ocm b/planet/Material.ocg/DuroLava.ocm index d7e7ab693..e1a41c8fc 100644 --- a/planet/Material.ocg/DuroLava.ocm +++ b/planet/Material.ocg/DuroLava.ocm @@ -5,7 +5,7 @@ Instable=1 MaxAirSpeed=50 MaxSlide=10000 WindDrift=40 -Incindiary=1 +Incendiary=1 Placement=10 Light=1 TextureOverlay=lava_red diff --git a/planet/Material.ocg/Lava.ocm b/planet/Material.ocg/Lava.ocm index 809aa7d8e..f8f8a4d7d 100644 --- a/planet/Material.ocg/Lava.ocm +++ b/planet/Material.ocg/Lava.ocm @@ -5,7 +5,7 @@ Instable=1 MaxAirSpeed=50 MaxSlide=10000 WindDrift=40 -Incindiary=1 +Incendiary=1 TempConvStrength=12 BelowTempConvert=100 BelowTempConvertTo=Rock diff --git a/planet/Material.ocg/Snow.ocm b/planet/Material.ocg/Snow.ocm index 5a0b4d060..a20d75dfa 100644 --- a/planet/Material.ocg/Snow.ocm +++ b/planet/Material.ocg/Snow.ocm @@ -27,5 +27,5 @@ Dig2ObjectRatio=400 [Reaction] Type=Poof -TargetSpec=Incindiary +TargetSpec=Incendiary diff --git a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Material.ocg/StableLava.ocm b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Material.ocg/StableLava.ocm index 364b8e409..af54f8cda 100644 --- a/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Material.ocg/StableLava.ocm +++ b/planet/Parkour.ocf/VolcanoEscapeEx.ocs/Material.ocg/StableLava.ocm @@ -5,7 +5,7 @@ Instable=0 MaxAirSpeed=50 MaxSlide=10000 WindDrift=40 -Incindiary=1 +Incendiary=1 Placement=10 TextureOverlay=lava_red PXSGfxSize=6 diff --git a/src/landscape/C4Material.cpp b/src/landscape/C4Material.cpp index 684b5b50f..c9f2c2f14 100644 --- a/src/landscape/C4Material.cpp +++ b/src/landscape/C4Material.cpp @@ -123,7 +123,7 @@ void C4MaterialCore::Clear() MaxSlide = 0; WindDrift = 0; Inflammable = 0; - Incindiary = 0; + Incendiary = 0; Extinguisher = 0; Corrosive = 0; Corrode = 0; @@ -183,6 +183,7 @@ bool C4MaterialCore::Load(C4Group &hGroup, void C4MaterialCore::CompileFunc(StdCompiler *pComp) { + assert(pComp->hasNaming()); if (pComp->isCompiler()) Clear(); pComp->Name("Material"); pComp->Value(mkNamingAdapt(toC4CStr(Name), "Name", "")); @@ -214,7 +215,27 @@ void C4MaterialCore::CompileFunc(StdCompiler *pComp) pComp->Value(mkNamingAdapt(MaxSlide, "MaxSlide", 0)); pComp->Value(mkNamingAdapt(WindDrift, "WindDrift", 0)); pComp->Value(mkNamingAdapt(Inflammable, "Inflammable", 0)); - pComp->Value(mkNamingAdapt(Incindiary, "Incindiary", 0)); + if (pComp->isCompiler()) + { + // The value used to have a wrong spelling ("Incindiary"). If there's + // no "Incendiary" value, use the wrong spelling instead + try + { + pComp->Value(mkNamingAdapt(Incendiary, "Incendiary")); + } + catch (StdCompiler::NotFoundException *ex) + { + delete ex; + pComp->Value(mkNamingAdapt(Incendiary, "Incindiary", 0)); + } + } + else + { + // When serializing, write both spellings because some script might be + // calling GetMaterialVal with the wrong one + pComp->Value(mkNamingAdapt(Incendiary, "Incendiary")); + pComp->Value(mkNamingAdapt(Incendiary, "Incindiary")); + } pComp->Value(mkNamingAdapt(Corrode, "Corrode", 0)); pComp->Value(mkNamingAdapt(Corrosive, "Corrosive", 0)); pComp->Value(mkNamingAdapt(Extinguisher, "Extinguisher", 0)); @@ -371,10 +392,10 @@ bool C4MaterialMap::CrossMapMaterials(const char* szEarthMaterial) // Called aft else if (pMatPXS && pMatLS) { // incindiary vs extinguisher - if ((pMatPXS->Incindiary && pMatLS->Extinguisher) || (pMatPXS->Extinguisher && pMatLS->Incindiary)) + if ((pMatPXS->Incendiary && pMatLS->Extinguisher) || (pMatPXS->Extinguisher && pMatLS->Incendiary)) pReaction = &DefReactPoof; // incindiary vs inflammable - else if ((pMatPXS->Incindiary && pMatLS->Inflammable) || (pMatPXS->Inflammable && pMatLS->Incindiary)) + else if ((pMatPXS->Incendiary && pMatLS->Inflammable) || (pMatPXS->Inflammable && pMatLS->Incendiary)) pReaction = &DefReactIncinerate; // corrosive vs corrode else if (pMatPXS->Corrosive && pMatLS->Corrode) @@ -476,11 +497,11 @@ bool C4MaterialMap::CrossMapMaterials(const char* szEarthMaterial) // Called aft else for (int32_t cnt2=0; cnt2TargetSpec.getData(), "Incindiary")) + else if (SEqualNoCase(pReact->TargetSpec.getData(), "Incendiary") || SEqualNoCase(pReact->TargetSpec.getData(), "Incindiary")) { // add to all incendiary materials if (pReact->fInverseSpec) SetMatReaction(cnt, -1, pReact); - for (int32_t cnt2=0; cnt2fInverseSpec) SetMatReaction(cnt, cnt2, pReact); + for (int32_t cnt2=0; cnt2fInverseSpec) SetMatReaction(cnt, cnt2, pReact); } else if (SEqualNoCase(pReact->TargetSpec.getData(), "Extinguisher")) { @@ -667,8 +688,8 @@ bool mrfInsertCheck(int32_t &iX, int32_t &iY, C4Real &fXDir, C4Real &fYDir, int3 // Contact: Stop fYDir = -GravAccel; - // Incindiary mats smoke on contact even before doing their slide - if (::MaterialMap.Map[iPxsMat].Incindiary) + // Incendiary mats smoke on contact even before doing their slide + if (::MaterialMap.Map[iPxsMat].Incendiary) if (!Random(25)) { Smoke(iX, iY, 4 + Random(3)); diff --git a/src/landscape/C4Material.h b/src/landscape/C4Material.h index fd8ae8691..4508edc34 100644 --- a/src/landscape/C4Material.h +++ b/src/landscape/C4Material.h @@ -106,7 +106,7 @@ public: int32_t MaxSlide; int32_t WindDrift; int32_t Inflammable; - int32_t Incindiary; + int32_t Incendiary; int32_t Extinguisher; int32_t Corrosive; int32_t Corrode; diff --git a/src/object/C4Object.cpp b/src/object/C4Object.cpp index a1802584a..552d7c296 100644 --- a/src/object/C4Object.cpp +++ b/src/object/C4Object.cpp @@ -995,7 +995,7 @@ bool C4Object::ExecLife() // InMat incineration if (!::Game.iTick10) if (InMat!=MNone) - if (::MaterialMap.Map[InMat].Incindiary) + if (::MaterialMap.Map[InMat].Incendiary) if (GetPropertyInt(P_ContactIncinerate) > 0) { Call(PSF_OnInIncendiaryMaterial, &C4AulParSet());