From df9d0d827a30169a004e7f651113b11986c59c83 Mon Sep 17 00:00:00 2001 From: MapleEve Date: Sat, 14 Jan 2023 21:00:34 +0800 Subject: [PATCH 1/7] Fix ore value calculation issue. (#31) * Fix Ore value calculation bug. According to https://ra2.com/information/1088283751421607936 and Heck map test --- FA2sp/Ext/CMapData/Body.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FA2sp/Ext/CMapData/Body.cpp b/FA2sp/Ext/CMapData/Body.cpp index c63fbaa..441d18a 100644 --- a/FA2sp/Ext/CMapData/Body.cpp +++ b/FA2sp/Ext/CMapData/Body.cpp @@ -15,13 +15,13 @@ std::vector CMapDataExt::OverlayTypeDatas; int CMapDataExt::GetOreValue(unsigned char nOverlay, unsigned char nOverlayData) { if (nOverlay >= 0x66 && nOverlay <= 0x79) - return (nOverlayData + 1) * OreValue[OreType::Riparius]; + return (nOverlayData) * OreValue[OreType::Riparius]; else if (nOverlay >= 0x1B && nOverlay <= 0x26) - return (nOverlayData + 1) * OreValue[OreType::Cruentus]; + return (nOverlayData) * OreValue[OreType::Cruentus]; else if (nOverlay >= 0x7F && nOverlay <= 0x92) - return (nOverlayData + 1) * OreValue[OreType::Vinifera]; + return (nOverlayData) * OreValue[OreType::Vinifera]; else if (nOverlay >= 0x93 && nOverlay <= 0xA6) - return (nOverlayData + 1) * OreValue[OreType::Aboreus]; + return (nOverlayData) * OreValue[OreType::Aboreus]; else return 0; } From dcce89e65e78aa9d333fb251dce8122f9bfd4121 Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Sat, 14 Jan 2023 21:01:08 +0800 Subject: [PATCH 2/7] Remove useless brackets --- FA2sp/Ext/CMapData/Body.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FA2sp/Ext/CMapData/Body.cpp b/FA2sp/Ext/CMapData/Body.cpp index 441d18a..45b97db 100644 --- a/FA2sp/Ext/CMapData/Body.cpp +++ b/FA2sp/Ext/CMapData/Body.cpp @@ -15,13 +15,13 @@ std::vector CMapDataExt::OverlayTypeDatas; int CMapDataExt::GetOreValue(unsigned char nOverlay, unsigned char nOverlayData) { if (nOverlay >= 0x66 && nOverlay <= 0x79) - return (nOverlayData) * OreValue[OreType::Riparius]; + return nOverlayData * OreValue[OreType::Riparius]; else if (nOverlay >= 0x1B && nOverlay <= 0x26) - return (nOverlayData) * OreValue[OreType::Cruentus]; + return nOverlayData * OreValue[OreType::Cruentus]; else if (nOverlay >= 0x7F && nOverlay <= 0x92) - return (nOverlayData) * OreValue[OreType::Vinifera]; + return nOverlayData * OreValue[OreType::Vinifera]; else if (nOverlay >= 0x93 && nOverlay <= 0xA6) - return (nOverlayData) * OreValue[OreType::Aboreus]; + return nOverlayData * OreValue[OreType::Aboreus]; else return 0; } From dccfb1fbac5c719efe2924750fbe20e9708786db Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Sat, 14 Jan 2023 21:43:37 +0800 Subject: [PATCH 3/7] Reenable Multiselection with specific tag --- CHANGELOG.md | 4 +++ DOCUMENT.md | 5 +-- FA2sp/FA2sp.cpp | 3 ++ FA2sp/FA2sp.h | 1 + FA2sp/Miscs/MultiSelection.cpp | 66 +++++++++++++++++++++++++--------- FA2sp/Miscs/MultiSelection.h | 2 +- 6 files changed, 61 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 267908e..a5d17e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # FINALALERT2 - SP CHANGELOG +## RELEASE 1.5.2 (2023-01-XX) +- Fixed the bug that money calculation is incorrect. +- New ***ExtConfig*** : `EnableMultiSelection` = **BOOLEAN**, defaults to false + ## RELEASE 1.5.1 (2023-01-12) - Fixed the bug that Preview was incorrectly saved in version 1.5.0 - Built-in script params can be translated diff --git a/DOCUMENT.md b/DOCUMENT.md index 03b039b..749e90b 100644 --- a/DOCUMENT.md +++ b/DOCUMENT.md @@ -8,9 +8,9 @@ - Now you can also join Discord server https://discord.gg/k4SVuMm, and found `map-editors` under `DEDICATED PROJECTS`. - For now, I cannot ensure the stability of it, so save your maps frequently before heavy loss! XD -~~The multiple selection function is now available. Press Ctrl key to select tiles and press Ctrl+Shift key to deselect them. Ctrl+D can clear all selected tiles. +The multiple selection function is now available. Press Ctrl key to select tiles and press Ctrl+Shift key to deselect them. Ctrl+D can clear all selected tiles. Now this feature supports RaiseSingleTile/LowerSingleTile (though they are not "Single" anymore) and calucate selected area ore value. -NOTICE THAT UNDOREDO AND COPYPASTE HASN'T BEEN SUPPORTED YET!~~ +NOTICE THAT UNDOREDO AND COPYPASTE HASN'T BEEN SUPPORTED YET! ## BASIC TYPES - **INTEGER** @@ -68,6 +68,7 @@ NOTICE THAT UNDOREDO AND COPYPASTE HASN'T BEEN SUPPORTED YET!~~ - `DDrawInVideoMem` = **BOOLEAN** ; Determines if FA2 will allocate DirectDraw surface in the video memory, defaults to true - `DDrawEmulation` = **BOOLEAN** ; Determines if FA2 will use emulation mode for DirectDrawCreate, defaults to false - `NoHouseNameTranslation` = **BOOLEAN** ; Determines if FA2 will translate house to their UIName, defaults to false + - `EnableMultiSelection` = **BOOLEAN** ; Determines if FA2sp will enable expermental multi-selection features, defaults to false - **`[Sides]`** (**x** means this item is **essensial**, fa2sp need this section to work properly) - Contains a list of sides registered in rules ```ini diff --git a/FA2sp/FA2sp.cpp b/FA2sp/FA2sp.cpp index bf42b3e..534a22c 100644 --- a/FA2sp/FA2sp.cpp +++ b/FA2sp/FA2sp.cpp @@ -54,6 +54,7 @@ int ExtConfigs::MaxVoxelFacing; bool ExtConfigs::DDrawInVideoMem; bool ExtConfigs::DDrawEmulation; bool ExtConfigs::NoHouseNameTranslation; +bool ExtConfigs::EnableMultiSelection; MultimapHelper Variables::Rules = { &CINI::Rules(), &CINI::CurrentDocument() }; MultimapHelper Variables::FAData = { &CINI::FAData() }; @@ -145,6 +146,8 @@ void FA2sp::ExtConfigsInitialize() ExtConfigs::DDrawEmulation = CINI::FAData->GetBool("ExtConfigs", "DDrawEmulation"); ExtConfigs::NoHouseNameTranslation = CINI::FAData->GetBool("ExtConfigs", "NoHouseNameTranslation"); + + ExtConfigs::EnableMultiSelection = CINI::FAData->GetBool("ExtConfigs", "EnableMultiSelection"); } // DllMain diff --git a/FA2sp/FA2sp.h b/FA2sp/FA2sp.h index db438de..21141ae 100644 --- a/FA2sp/FA2sp.h +++ b/FA2sp/FA2sp.h @@ -63,6 +63,7 @@ class ExtConfigs static bool DDrawInVideoMem; static bool DDrawEmulation; static bool NoHouseNameTranslation; + static bool EnableMultiSelection; }; class Variables diff --git a/FA2sp/Miscs/MultiSelection.cpp b/FA2sp/Miscs/MultiSelection.cpp index 92d6154..d6acd25 100644 --- a/FA2sp/Miscs/MultiSelection.cpp +++ b/FA2sp/Miscs/MultiSelection.cpp @@ -14,7 +14,7 @@ std::set MultiSelection::SelectedCoords; bool MultiSelection::ShiftKeyIsDown = false; -BGRStruct MultiSelection::ColorHolder[0x200]; +BGRStruct MultiSelection::ColorHolder[0x1000]; MapCoord MultiSelection::CurrentCoord; bool MultiSelection::AddCoord(int X, int Y) @@ -72,11 +72,12 @@ inline bool MultiSelection::IsSelected(int X, int Y) return SelectedCoords.find(MapCoord{ X,Y }) != SelectedCoords.end(); } -/* - DEFINE_HOOK(456EFC, CIsoView_OnMouseMove_MultiSelect_ReverseStatus, 6) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET_STACK(UINT, eFlags, STACK_OFFS(0x3D528, -0x4)); REF_STACK(const CPoint, point, STACK_OFFS(0x3D528, -0x8)); @@ -100,6 +101,9 @@ DEFINE_HOOK(456EFC, CIsoView_OnMouseMove_MultiSelect_ReverseStatus, 6) DEFINE_HOOK(469470, CIsoView_OnKeyDown, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET(CIsoView*, pThis, ECX); GET_STACK(UINT, nChar, 0x4); @@ -126,6 +130,9 @@ DEFINE_HOOK(469470, CIsoView_OnKeyDown, 5) DEFINE_HOOK(46BC30, CIsoView_OnKeyUp, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET(CIsoView*, pThis, ECX); GET_STACK(UINT, nChar, 0x4); @@ -141,6 +148,9 @@ DEFINE_HOOK(46BC30, CIsoView_OnKeyUp, 5) DEFINE_HOOK(46EAFA, CIsoView_Draw_TileCurrentCoord_1, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + MultiSelection::CurrentCoord.X = R->EBP(); MultiSelection::CurrentCoord.Y = R->EBX(); return 0; @@ -148,6 +158,9 @@ DEFINE_HOOK(46EAFA, CIsoView_Draw_TileCurrentCoord_1, 5) DEFINE_HOOK(46F680, CIsoView_Draw_TileCurrentCoord_2, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + MultiSelection::CurrentCoord.X = R->EDI(); MultiSelection::CurrentCoord.Y = R->EBP(); return 0; @@ -163,6 +176,9 @@ DEFINE_HOOK_AGAIN(46FF71, CIsoView_Draw_MultiSelect, 7) DEFINE_HOOK_AGAIN(470081, CIsoView_Draw_MultiSelect, 7) DEFINE_HOOK(470710, CIsoView_Draw_MultiSelect, 7) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + if (MultiSelection::IsSelected(MultiSelection::CurrentCoord.X, MultiSelection::CurrentCoord.Y)) { GET(BGRStruct*, pColors, ESI); @@ -187,6 +203,9 @@ DEFINE_HOOK(470710, CIsoView_Draw_MultiSelect, 7) DEFINE_HOOK(433DA0, CFinalSunDlg_Tools_RaiseSingleTile, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET(CFinalSunDlg*, pThis, ECX); if (CMapData::Instance->MapWidthPlusHeight) @@ -222,6 +241,9 @@ DEFINE_HOOK(433DA0, CFinalSunDlg_Tools_RaiseSingleTile, 5) DEFINE_HOOK(433D30, CFinalSunDlg_Tools_LowerSingleTile, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET(CFinalSunDlg*, pThis, ECX); if (CMapData::Instance->MapWidthPlusHeight) @@ -257,6 +279,9 @@ DEFINE_HOOK(433D30, CFinalSunDlg_Tools_LowerSingleTile, 5) DEFINE_HOOK(433F70, CFinalSunDlg_Tools_HideSingleField, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + GET(CFinalSunDlg*, pThis, ECX); if (CMapData::Instance->MapWidthPlusHeight) @@ -322,19 +347,22 @@ DEFINE_HOOK(474FE0, CIsoView_Draw_MultiSelectionMoney, 5) buffer.Format("Money on map: %d", CMapData::Instance->MoneyCount); ::TextOut(hDC, rect.left + 10, rect.top + 10, buffer, buffer.GetLength()); - if (MultiSelection::GetCount()) + if (ExtConfigs::EnableMultiSelection) { - int nCount = 0; - auto pExt = CMapDataExt::GetExtension(); - pExt->InitOreValue(); - MultiSelection::ApplyForEach( - [&nCount, pExt](CellData& cell) { - nCount += pExt->GetOreValueAt(cell); - } - ); - - buffer.Format("Selected money: %d", nCount); - ::TextOut(hDC, rect.left + 10, rect.top + 30, buffer, buffer.GetLength()); + if (MultiSelection::GetCount()) + { + int nCount = 0; + auto pExt = CMapDataExt::GetExtension(); + pExt->InitOreValue(); + MultiSelection::ApplyForEach( + [&nCount, pExt](CellData& cell) { + nCount += pExt->GetOreValueAt(cell); + } + ); + + buffer.Format("Selected money: %d", nCount); + ::TextOut(hDC, rect.left + 10, rect.top + 30, buffer, buffer.GetLength()); + } } } @@ -343,6 +371,9 @@ DEFINE_HOOK(474FE0, CIsoView_Draw_MultiSelectionMoney, 5) DEFINE_HOOK(4B9F7A, CreateMap_ClearUp_MultiSelection, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + MultiSelection::Clear(); return 0; @@ -350,9 +381,10 @@ DEFINE_HOOK(4B9F7A, CreateMap_ClearUp_MultiSelection, 5) DEFINE_HOOK(49D2C0, LoadMap_ClearUp_MultiSelection, 5) { + if (!ExtConfigs::EnableMultiSelection) + return 0; + MultiSelection::Clear(); return 0; } - -*/ \ No newline at end of file diff --git a/FA2sp/Miscs/MultiSelection.h b/FA2sp/Miscs/MultiSelection.h index e9fa889..0e2edc3 100644 --- a/FA2sp/Miscs/MultiSelection.h +++ b/FA2sp/Miscs/MultiSelection.h @@ -26,7 +26,7 @@ class MultiSelection } static bool ShiftKeyIsDown; - static BGRStruct ColorHolder[0x200]; + static BGRStruct ColorHolder[0x1000]; static MapCoord CurrentCoord; private: From 8efb450e77ce8f48623b2026b175605e9dbe74e7 Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Sat, 14 Jan 2023 21:53:49 +0800 Subject: [PATCH 4/7] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3041400..b1beb8a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[![Github All Releases](https://img.shields.io/github/downloads/secsome/FA2sp/total.svg)](https://github.com/secsome/FA2sp/releases) -[![Workflow](https://img.shields.io/github/workflow/status/secsome/FA2sp/Nightly%20Build.svg)](https://github.com/secsome/FA2sp/actions) -[![license](https://img.shields.io/github/license/secsome/FA2sp.svg)](https://www.gnu.org/licenses/agpl-3.0.en.html) +[![Github All Releases](https://img.shields.io/github/downloads/secsome/FA2sp/total.svg?label=Downloads&style=flat-square)](https://github.com/secsome/FA2sp/releases) +[![Workflow](https://img.shields.io/github/actions/workflow/status/secsome/FA2sp/nighty.yml?label=Nighty%20Build&style=flat-square)](https://github.com/secsome/FA2sp/actions) +[![license](https://img.shields.io/github/license/secsome/FA2sp?label=License&style=flat-square)](https://www.gnu.org/licenses/agpl-3.0.en.html) # FA2sp ...is an engine extension project launched by secsome and aimed at providing a set of new features and fixes for FinalAlert2 based on [FA2pp](https://github.com/secsome/FA2pp) and [Syringe](https://github.com/Ares-Developers/Syringe) to allow injecting code. From 36c1d2286a78c2101a033f46536c216e5fb03702 Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Mon, 27 Feb 2023 10:37:46 +0800 Subject: [PATCH 5/7] Prepare for 1.5.2 Update --- CHANGELOG.md | 7 +++++-- DOCUMENT.md | 5 ++++- FA2sp/Ext/CScriptTypes/Functional.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5d17e8..7247de2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # FINALALERT2 - SP CHANGELOG -## RELEASE 1.5.2 (2023-01-XX) -- Fixed the bug that money calculation is incorrect. +## RELEASE 1.6.0 (2023-XX-XX) +- Reimplemented file reading system + +## RELEASE 1.5.2 (2023-02-28) +- Fixed the bug that money calculation is incorrect - New ***ExtConfig*** : `EnableMultiSelection` = **BOOLEAN**, defaults to false ## RELEASE 1.5.1 (2023-01-12) diff --git a/DOCUMENT.md b/DOCUMENT.md index 749e90b..b2d04be 100644 --- a/DOCUMENT.md +++ b/DOCUMENT.md @@ -576,6 +576,9 @@ NOTICE THAT UNDOREDO AND COPYPASTE HASN'T BEEN SUPPORTED YET! TriggerActionParameter = TEXT TriggerActionParamValue = TEXT TriggerActionDesc = TEXT + TriggerRepeatType.OneTimeOr= TEXT + TriggerRepeatType.OneTimeAnd= TEXT + TriggerRepeatType.RepeatingOr= TEXT ScriptTypesTitle = TEXT ScriptTypesDesc = TEXT ScriptTypesSelectedScript = TEXT @@ -633,7 +636,7 @@ NOTICE THAT UNDOREDO AND COPYPASTE HASN'T BEEN SUPPORTED YET! TileManagerTitle = TEXT ; Script params ; For example, ScriptParam.Status.0 - ScriptParam.Target.[0 - 11, except 8] = TEXT + ScriptParam.Target.[0 - 11] = TEXT ScriptParam.SplitGroup.[0 - 3] = TEXT ScriptParam.Facing.[0 - 7] = TEXT ScriptParam.TalkBubble.[0 - 3] = TEXT diff --git a/FA2sp/Ext/CScriptTypes/Functional.h b/FA2sp/Ext/CScriptTypes/Functional.h index d41c50a..00f9ee8 100644 --- a/FA2sp/Ext/CScriptTypes/Functional.h +++ b/FA2sp/Ext/CScriptTypes/Functional.h @@ -126,6 +126,7 @@ static void CScriptTypes_LoadParams_Target(ppmfc::CComboBox& comboBox) comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.5", "5 - Vehicles")), 5); comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.6", "6 - Factories")), 6); comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.7", "7 - Base defenses")), 7); + comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.8", "8 - Base threats")), 7); comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.9", "9 - Power plants")), 9); comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.10", "10 - Occupiables")), 10); comboBox.SetItemData(comboBox.AddString(Translations::TranslateOrDefault("ScriptParam.Target.11", "11 - Tech Buildings")), 11); From 83455bd9ef7a77361e7f88f519cc40bc31efc34a Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Mon, 27 Feb 2023 10:40:29 +0800 Subject: [PATCH 6/7] Support for Facing>8 --- FA2sp/Ext/CLoading/Body.LoadObjects.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/FA2sp/Ext/CLoading/Body.LoadObjects.cpp b/FA2sp/Ext/CLoading/Body.LoadObjects.cpp index c683611..474c153 100644 --- a/FA2sp/Ext/CLoading/Body.LoadObjects.cpp +++ b/FA2sp/Ext/CLoading/Body.LoadObjects.cpp @@ -582,20 +582,23 @@ void CLoadingExt::LoadVehicleOrAircraft(ppmfc::CString ID) } else // As SHP { + int facingCount = CINI::Art->GetInteger(ArtID, "Facings", 8); + if (facingCount % 8 != 0) + facingCount = (facingCount + 7) / 8 * 8; int framesToRead[8]; if (CINI::Art->KeyExists(ArtID, "StandingFrames")) { int nStartStandFrame = CINI::Art->GetInteger(ArtID, "StartStandFrame", 0); int nStandingFrames = CINI::Art->GetInteger(ArtID, "StandingFrames", 1); for (int i = 0; i < 8; ++i) - framesToRead[i] = nStartStandFrame + i * nStandingFrames; + framesToRead[i] = nStartStandFrame + (i * facingCount / 8) * nStandingFrames; } else { int nStartWalkFrame = CINI::Art->GetInteger(ArtID, "StartWalkFrame", 0); int nWalkFrames = CINI::Art->GetInteger(ArtID, "WalkFrames", 1); for (int i = 0; i < 8; ++i) { - framesToRead[i] = nStartWalkFrame + i * nWalkFrames; + framesToRead[i] = nStartWalkFrame + (i * facingCount / 8) * nWalkFrames; } } // fix from cmcc @@ -628,7 +631,7 @@ void CLoadingExt::LoadVehicleOrAircraft(ppmfc::CString ID) int turretFramesToRead[8]; // fix from cmcc - turretFramesToRead[i] = nStartWalkFrame + 8 * nWalkFrames + 4 * ((i + 1) % 8); + turretFramesToRead[i] = nStartWalkFrame + 8 * nWalkFrames + 4 * (((i * facingCount / 8) + 1) % 8); CShpFile::LoadFrame(turretFramesToRead[i], 1, &FramesBuffers[1]); UnionSHP_Add(FramesBuffers[0], header.Width, header.Height); From 157627bc0a8749819f53b9209f419fdd28c6f14e Mon Sep 17 00:00:00 2001 From: secsome <302702960@qq.com> Date: Fri, 3 Mar 2023 12:32:07 +0800 Subject: [PATCH 7/7] Update ChangeLog, Bump version --- CHANGELOG.md | 3 ++- FA2sp/FA2sp.Constants.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7247de2..7fc4d5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,9 @@ ## RELEASE 1.6.0 (2023-XX-XX) - Reimplemented file reading system -## RELEASE 1.5.2 (2023-02-28) +## RELEASE 1.5.2 (2023-03-03) - Fixed the bug that money calculation is incorrect +- Now SHP Vehicles more than 8 facings are supported - New ***ExtConfig*** : `EnableMultiSelection` = **BOOLEAN**, defaults to false ## RELEASE 1.5.1 (2023-01-12) diff --git a/FA2sp/FA2sp.Constants.h b/FA2sp/FA2sp.Constants.h index 7c27ebc..79f15b8 100644 --- a/FA2sp/FA2sp.Constants.h +++ b/FA2sp/FA2sp.Constants.h @@ -5,7 +5,7 @@ #define PRODUCT_MAJOR 1 #define PRODUCT_MINOR 5 -#define PRODUCT_REVISION 1 +#define PRODUCT_REVISION 2 #ifdef NDEBUG #define PRODUCT_STR __str(PRODUCT_MAJOR) "." __str(PRODUCT_MINOR) "." __str(PRODUCT_REVISION)