profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/marius00/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
marius00 Just another developer.

marius00/aoia 6

Item Assistant++ for Anarchy Online

marius00/GrimDamage 3

Grim Dawn Damage Meter

marius00/cohstats 0

Personal kill statistics for Company of Heroes (no cheats, CoH 1)

marius00/HistoryFilter 0

Filter the Quick Access and recent files history in windows

created tagmarius00/iagd

tag1.2.7938.15411

created time in 17 hours

created tagmarius00/iagd

tag1.2.7937.17439

created time in 2 days

push eventmarius00/iagd

m

commit sha 702939dac928c0f1ea76e9e367b7f3216f7fd2a7

Fixed an issue with using multiple filters (class+dmg type for example)

view details

m

commit sha 99d8f8c81617b697556aff21a3837ac1b10cf1ec

Can now list up to 15 translations Now lists translations as [Partial] if they lack tags_ia.txt

view details

m

commit sha fe70938f34e5a3b669c45c702379a1b4f9997801

Merge branch 'master' of https://github.com/marius00/iagd

view details

push time in 2 days

created tagmarius00/iagd

tag1.2.7935.13534

created time in 4 days

push eventmarius00/iagd

m

commit sha 82ca66c8585a37564632315e20d982a02910daa1

Fixed an issue with using multiple filters (class+dmg type for example)

view details

push time in 4 days

push eventmarius00/iagd

m

commit sha 21929b9fcf3ebeddf7be179604a68950b1c98a4f

Added a very simple readme file to the installer

view details

push time in 4 days

push eventmarius00/cohstats

m

commit sha 602b2a8f2a787a49965bda062d94a62898bbfd8a

No fucking clue, been ages.

view details

push time in 15 days

push eventmarius00/iagd

m

commit sha 7b797d49228345aef96985ffd632d082c6bf050f

No longer displays cloud sync icon when opting out of online backups

view details

push time in a month

created tagmarius00/iagd

tag1.2.7911.25122

created time in a month

push eventmarius00/iagd

m

commit sha da881f336f3cbc96bfc867833d81c48dc359f99a

Now logging if 'delete duplicates' is on

view details

m

commit sha 9c134ed2c8cd9b68be51a66ec5fd37d5006dfe8b

Minor fixes to the tagging

view details

push time in a month

created tagmarius00/iagd

tag1.2.7910.16179

created time in a month

push eventmarius00/iagd

m

commit sha 7a2c2279e6e4ab5ae58a180874a5e5b99bd77d2e

Now masks windows username in the log file (file only, not tab)

view details

m

commit sha ff77f99a944ab57506a9cd2c0dd58574ccdba6f4

Now times out faster when checking for NodeJS in debug mode

view details

push time in a month

push eventmarius00/iagd

M

commit sha 557fb6dba39df45fe50bf6969a72b111695e5450

Build script now tags version in git

view details

push time in a month

created tagmarius00/iagd

tag1.2.7907.24527

created time in a month

issue closedmarius00/iagd

Can't swap between different versions of game

Hiya,

After loading the database for Forgotten Gods install, IA will only detect Forgotten Gods even when DLCs are disabled.

https://www.reddit.com/r/Grimdawn/comments/bqpjiu/item_assistant_cant_swap_between_dlc_versions/

closed time in a month

dks99455

issue commentmarius00/iagd

Can't swap between different versions of game

Addressed in 1.2.7907.24527

dks99455

comment created time in a month

push eventmarius00/iagd

M

commit sha 0011a447e3e88006d1df15e29d8e02106f71e4c8

Improved support for playing with downgraded expansions (FG or AOM disabled)

view details

M

commit sha 65e534b552eb85a09a3a8755af29968afea2377e

Help tab now mentions 4K and playing without expansions

view details

push time in a month

push eventmarius00/iagd

M

commit sha 5863247393610f89e49d3bd3f8de47d62d2c43bb

Revert "Fix item search via menu". This commit was causing massive performance issues primarily due to the use of "IN" where previously "EXISTS" was used. This reverts commit 959cc1fc3164339c4a5cd79c17b481211045b5ce. # Conflicts: # IAGrim/Database/DAO/PlayerItemDaoImpl.cs

view details

M

commit sha b91ef12a30b4339a821555ab48ae583b4bb80149

Fixed an issue handling nullptrs on special stats (RoT parsing crash)

view details

M

commit sha ca16b7414e2743dd0ad24ca157a2dd806a781db1

Blacklisted more invalid image formats (TODO: Convert to whitelist) and enforced size restrictions

view details

M

commit sha 37cba3bc218ba280ba46f594047feb681ada06bd

Revert "Don't add elemental multiple times" Commit reverted as it broke Fire, Cold and Lightning damage, causing the query to use AND instead of OR. This reverts commit 7991a396d822c958a1bf7915ece002dc36313c2b.

view details

push time in a month

issue openedmarius00/iagd

Out of memory parsing RoT

2021-08-24 10:18:46,566 [15] DEBUG IAGrim.Parsers.Arz.ArzParser Loading mods icons from f:\steamlibrary\steamapps\common\grim dawn\mods\ReignOfTerror\resources\Items.arc (f:\steamlibrary\steamapps\common\grim dawn\mods\ReignOfTerror) 2021-08-24 10:18:46,566 [15] INFO IAGrim.Parsers.Arz.ArzParser Loading item icons from f:\steamlibrary\steamapps\common\grim dawn\mods\ReignOfTerror\resources\Items.arc. 2021-08-24 10:18:46,568 [15] DEBUG IAGrim.Parser.Arc.DDSImageReader Extracting item icons from f:\steamlibrary\steamapps\common\grim dawn\mods\ReignOfTerror\resources\Items.arc to C:\Users\Marius\AppData\Local\EvilSoft\IAGD\storage 2021-08-24 10:18:46,580 [8] DEBUG IAGrim.Parsers.GameDataParsing.Service.ArzParsingWrapper Loading tags from f:\steamlibrary\steamapps\common\grim dawn\resources\text_en.arc 2021-08-24 10:18:46,581 [8] DEBUG IAGrim.Parsers.GameDataParsing.Service.ArzParsingWrapper Loading tags from f:\steamlibrary\steamapps\common\grim dawn\resources\text_en.arc 'IAGrim.exe' (CLR v4.0.30319: IAGrim.exe): Loaded 'F:\Dev\IAGrim\IAGrim\bin\Debug\LZ4.dll'. Module was built without symbols. 'IAGrim.exe' (CLR v4.0.30319: IAGrim.exe): Loaded 'F:\temp\systemp\626dc2c2cf59c8831525730b6d016700\0ae225546ec78ab15a53c7330fc0e5e3.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'IAGrim.exe' (CLR v4.0.30319: IAGrim.exe): Loaded 'LZ4cc'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'IAGrim.exe' (CLR v4.0.30319: IAGrim.exe): Loaded 'LZ4n'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'IAGrim.exe' (CLR v4.0.30319: IAGrim.exe): Loaded 'LZ4s'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 2021-08-24 10:18:46,746 [8] DEBUG IAGrim.Parser.Arz.ArzParser Loading tags from tags_achievements.txt Exception thrown: 'System.ArgumentException' in mscorlib.dll 2021-08-24 10:18:46,861 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentarmband/newle/mi_tigermanmeleeb.jpg", Source array was not long enough. Check srcIndex and length, and the array's lower bounds. System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length) at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 133 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.ArgumentException' in mscorlib.dll 2021-08-24 10:18:46,870 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentarmband/newle/mi_tigermanmeleeb_ui.jpg", Source array was not long enough. Check srcIndex and length, and the array's lower bounds. System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length) at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 133 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:47,899 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentarmor/bandedcuirassfortifiedskirtedsatyr01.txt", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 2021-08-24 10:18:47,910 [8] DEBUG IAGrim.Parser.Arz.ArzParser Loading tags from tags_tutorial.txt 2021-08-24 10:18:47,910 [8] DEBUG IAGrim.Parser.Arz.ArzParser Skipping tag file "credits" 2021-08-24 10:18:47,937 [8] DEBUG IAGrim.Parser.Arz.ArzParser Loading tags from tags_creatures.txt Exception thrown: 'System.ArgumentException' in mscorlib.dll 2021-08-24 10:18:49,055 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentgreaves/newle/mi_tigermanmeleeb.jpg", Source array was not long enough. Check srcIndex and length, and the array's lower bounds. System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length) at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 133 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.ArgumentException' in mscorlib.dll 2021-08-24 10:18:49,060 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentgreaves/newle/mi_tigermanmeleeb_ui.jpg", Source array was not long enough. Check srcIndex and length, and the array's lower bounds. System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length) at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 133 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:50,350 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/c_spear01.obj", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:50,725 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/c_spear01_new.mtl", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:51,095 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/c_spear01_new.obj", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:51,524 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/m_anouranspear01.obj", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:51,923 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/m_anouranspear01_new.mtl", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 Exception thrown: 'System.OutOfMemoryException' in Parser.dll 2021-08-24 10:18:52,353 [15] WARN IAGrim.Parser.Arc.DDSImageReader Error extracting icon "equipmentweapon/spear_flipped/m_anouranspear01_new.obj", Exception of type 'System.OutOfMemoryException' was thrown. System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. at IAGrim.Parser.Arc.DDSImageReader.ExtractImage(Byte[] bytes) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 132 at IAGrim.Parser.Arc.DDSImageReader.ExtractItemIcons(String itemsArcFullPath, String destinationFolder) in F:\Dev\IAGrim\Parser\Arc\DDSImageReader.cs:line 109 2021-08-24 10:18:53,766 [BackupServiceWorker] DEBUG IAGrim.Backup.Cloud.Util.BackupServiceWorker Backup initializing..

created time in a month

Pull request review commentmarius00/iagd

More precise search for pure damage VS DoT

 public partial class Damage : UserControl {                  // +Damage                 var dmgTypes = new List<string>();-                if (dmgPhysical.Checked) {+                if (dmgPhysical.Checked)                     dmgTypes.Add("Physical");-                } -                if (dmgPiercing.Checked) {+                if (dmgPiercing.Checked)                     dmgTypes.Add("Pierce");-                } -                if (dmgFire.Checked) {+                if (dmgFire.Checked)                     dmgTypes.Add("Fire");-                } -                if (dmgCold.Checked) {+                if (dmgCold.Checked)                     dmgTypes.Add("Cold");-                } -                if (dmgLightning.Checked) {+                if (dmgLightning.Checked)                     dmgTypes.Add("Lightning");-                } -                if (dmgAether.Checked) {+                if (dmgAether.Checked)                     dmgTypes.Add("Aether");-                } -                if (dmgVitality.Checked) {+                if (dmgVitality.Checked)                     dmgTypes.Add("Life");-                } -                if (dmgChaos.Checked) {+                if (dmgChaos.Checked)                     dmgTypes.Add("Chaos");-                } -                if (dmgPoison.Checked) {+                if (dmgAcid.Checked)                     dmgTypes.Add("Poison");-                } -                if (dmgElemental.Checked) {+                if (dmgElemental.Checked || dmgTypes.Contains("Fire") || dmgTypes.Contains("Cold") || dmgTypes.Contains("Lightning"))                     dmgTypes.Add("Elemental");-                }--                if (totalDamage.Checked) {-                    filters.Add(new[] { "offensiveTotalDamageModifier" });-                }---                foreach (var damageType in dmgTypes) {-                    var isElemental = damageType.Equals("Fire") || damageType.Equals("Cold") ||-                                      damageType.Equals("Lightning");--                    if (isElemental) {-                        filters.Add(new[]-                        {-                            $"offensive{damageType}",-                            $"offensive{damageType}Modifier",-                            "offensiveElemental",-                            "offensiveElementalModifier",-                            $"offensiveSlow{damageType}",-                            $"offensiveSlow{damageType}Modifier"-                        });-                    }-                    else {-                        filters.Add(new[]-                        {-                            $"offensive{damageType}",-                            $"offensive{damageType}Modifier",-                            $"offensiveSlow{damageType}",-                            $"offensiveSlow{damageType}Modifier"-                        });-                    }-                }++                if (totalDamage.Checked)+                    filters.Add(new[] {"offensiveTotalDamageModifier"});++                foreach (var damageType in dmgTypes)

I already merged this into master but I've not pushed it out to anyone yet. Confirmed that Fire, Cold and Lightning filters no longer works on the current tip of master.

Eradev

comment created time in a month

PullRequestReviewEvent

Pull request review commentmarius00/iagd

More precise search for pure damage VS DoT

 public partial class Damage : UserControl {                  // +Damage                 var dmgTypes = new List<string>();-                if (dmgPhysical.Checked) {+                if (dmgPhysical.Checked)                     dmgTypes.Add("Physical");-                } -                if (dmgPiercing.Checked) {+                if (dmgPiercing.Checked)                     dmgTypes.Add("Pierce");-                } -                if (dmgFire.Checked) {+                if (dmgFire.Checked)                     dmgTypes.Add("Fire");-                } -                if (dmgCold.Checked) {+                if (dmgCold.Checked)                     dmgTypes.Add("Cold");-                } -                if (dmgLightning.Checked) {+                if (dmgLightning.Checked)                     dmgTypes.Add("Lightning");-                } -                if (dmgAether.Checked) {+                if (dmgAether.Checked)                     dmgTypes.Add("Aether");-                } -                if (dmgVitality.Checked) {+                if (dmgVitality.Checked)                     dmgTypes.Add("Life");-                } -                if (dmgChaos.Checked) {+                if (dmgChaos.Checked)                     dmgTypes.Add("Chaos");-                } -                if (dmgPoison.Checked) {+                if (dmgAcid.Checked)                     dmgTypes.Add("Poison");-                } -                if (dmgElemental.Checked) {+                if (dmgElemental.Checked || dmgTypes.Contains("Fire") || dmgTypes.Contains("Cold") || dmgTypes.Contains("Lightning"))                     dmgTypes.Add("Elemental");-                }--                if (totalDamage.Checked) {-                    filters.Add(new[] { "offensiveTotalDamageModifier" });-                }---                foreach (var damageType in dmgTypes) {-                    var isElemental = damageType.Equals("Fire") || damageType.Equals("Cold") ||-                                      damageType.Equals("Lightning");--                    if (isElemental) {-                        filters.Add(new[]-                        {-                            $"offensive{damageType}",-                            $"offensive{damageType}Modifier",-                            "offensiveElemental",-                            "offensiveElementalModifier",-                            $"offensiveSlow{damageType}",-                            $"offensiveSlow{damageType}Modifier"-                        });-                    }-                    else {-                        filters.Add(new[]-                        {-                            $"offensive{damageType}",-                            $"offensive{damageType}Modifier",-                            $"offensiveSlow{damageType}",-                            $"offensiveSlow{damageType}Modifier"-                        });-                    }-                }++                if (totalDamage.Checked)+                    filters.Add(new[] {"offensiveTotalDamageModifier"});++                foreach (var damageType in dmgTypes)

I think this might be introducing a bug.. it will now add "offensiveFire" separately from offensiveElemental. IIRC, that becomes an "AND" query not an "OR".

"WHERE STAT IN (elemental, fire)" vs "WHERE STAT IN (fire) AND STAT IN (elemental)"

Eradev

comment created time in a month

PullRequestReviewEvent

push eventmarius00/iagd

Eradev

commit sha 3f0a0d81b8087fe276a974b4d62c9def94708a04

* Added iatag_ui_acid for Acid damage * Renamed Poison for Acid in damage types filter * Added Poison damage to DoT filter * Damage no longer search for their DoT counterpart.

view details

Eradev

commit sha bffc6755259f66ded8f2d7ddfe2969660b18abe5

Formatting

view details

Eradev

commit sha 7991a396d822c958a1bf7915ece002dc36313c2b

Don't add elemental multiple times

view details

push time in a month

PR merged marius00/iagd

More precise search for pure damage VS DoT

Some items, such as Vilescorn Legplates, have base type damage modifier, but not DoT. And some items, such as Eye of the Beholder, have DoT damage, but not its base counterpart.

+102 -125

0 comment

5 changed files

Eradev

pr closed time in a month

push eventmarius00/iagd

Eradev

commit sha 2d7df9cbb7ff1d62454cf5f7a7e6e086fd62cb63

Cleanup before changes

view details

Eradev

commit sha 959cc1fc3164339c4a5cd79c17b481211045b5ce

Fix item search via menu

view details

Eradev

commit sha 39eb8dce62a844928ac7309396fa11f353e2b1ec

Formatting

view details

Eradev

commit sha 40e7a33646d90a9511cc0a569298eac23767532e

Tabs -> space

view details

push time in a month

PR merged marius00/iagd

Fix for search

Search now returns correct combinations when using the sidebar.

+328 -314

0 comment

1 changed file

Eradev

pr closed time in a month

Pull request review commentmarius00/iagd

Fix for search

 public class PlayerItemDaoImpl : BaseDao<PlayerItem>, IPlayerItemDao {         /// </summary>         public override void Remove(PlayerItem item) {             var cloudId = item.CloudId;-            using (ISession session = SessionCreator.OpenSession()) {-                using (ITransaction transaction = session.BeginTransaction()) {++            using (var session = SessionCreator.OpenSession()) {+                using (var transaction = session.BeginTransaction()) {                     session.CreateQuery($"DELETE FROM {nameof(PlayerItemRecord)} WHERE {nameof(PlayerItemRecord.PlayerItemId)} = :id")                         .SetParameter("id", item.Id)                         .ExecuteUpdate(); -                     session.Delete(item);                      transaction.Commit();                 }                  // Mark item for deletion from the online backup-                if (item.IsCloudSynchronized) {-                    try {-                        using (ITransaction transaction = session.BeginTransaction()) {-                            session.SaveOrUpdate(new DeletedPlayerItem {Id = cloudId});-                            transaction.Commit();-                        }-                    }-                    catch (Exception ex) {-                        Logger.Warn("Unable to mark item for deletion, duplication may occur");-                        Logger.Warn(ex.Message);-                        Logger.Warn(ex.StackTrace);+                if (!item.IsCloudSynchronized)+                    return;++                try {+                    using (var transaction = session.BeginTransaction()) {+                        session.SaveOrUpdate(new DeletedPlayerItem {Id = cloudId});+                        transaction.Commit();                     }                 }+                catch (Exception ex) {+                    Logger.Warn("Unable to mark item for deletion, duplication may occur");+                    Logger.Warn(ex.Message);+                    Logger.Warn(ex.StackTrace);+                }             }         } -         /// <summary>         /// Check whetever we need to recalculate item stats         /// </summary>         /// <returns></returns>         public bool RequiresStatUpdate() {-            using (ISession session = SessionCreator.OpenSession()) {+            using (var session = SessionCreator.OpenSession()) {                 using (session.BeginTransaction()) {                     var itemsLackingRarity = session.CreateCriteria<PlayerItem>().Add(Restrictions.IsNull("Rarity")).List().Count;+                     if (session.CreateCriteria<PlayerItem>().Add(Restrictions.IsNull("Rarity")).List().Count > 50) {                         Logger.Debug($"A stat parse is required, there are {itemsLackingRarity} items lacking rarity");+                         return true;                     } -                    if (session.CreateSQLQuery($"SELECT COUNT(*) as C FROM {SkillTable.Table}").UniqueResult<long>() <= 0) {+                    if (session.CreateSQLQuery($"SELECT COUNT(*) AS C FROM {SkillTable.Table}").UniqueResult<long>() <= 0) {                         Logger.Debug("A stat parse is required, there no entries in the skills table");+                         return true;                     }                      var itemsLackingName = session.CreateCriteria<PlayerItem>().Add(Restrictions.IsNull("Name")).List().Count;+                     if (session.CreateCriteria<PlayerItem>().Add(Restrictions.IsNull("Name")).List().Count > 20) {                         Logger.Debug($"A stat parse is required, there are {itemsLackingName} items lacking a name");+                         return true;                     }                      if (session.QueryOver<PlayerItemRecord>()                         .ToRowCountInt64Query()                         .SingleOrDefault<long>() == 0) {                         Logger.Debug("A stat parse is required, there no entries in the item records table");+                         return true;                     }                      Logger.Debug("A stat parse is not required");+                     return false;                 }             }         } --        class DatabaseItemStatQuery {-            public String SQL;+        private class DatabaseItemStatQuery {+            public string SQL;             public Dictionary<string, string[]> Parameters;         }          private static DatabaseItemStatQuery CreateDatabaseStatQueryParams(ItemSearchRequest query) {-            List<string> queryFragments = new List<string>();-            Dictionary<string, string[]> queryParamsList = new Dictionary<string, string[]>();+            var queryFragments = new List<string>();+            var queryParamsList = new Dictionary<string, string[]>();              // Add the damage/resist filter-            foreach (string[] filter in query.Filters) {-                queryFragments.Add($"exists (select id_databaseitem from databaseitemstat_v2 dbs where stat in ( :filter_{filter.GetHashCode()} ) and db.id_databaseitem = dbs.id_databaseitem)");+            foreach (var filter in query.Filters) {+                queryFragments.Add(+                    $@" SELECT dbs.id_databaseitem+                            FROM databaseitemstat_v2 dbs+                            WHERE  dbs.stat IN ( :filter_{filter.GetHashCode()} ) +                            AND db.id_databaseitem = dbs.id_databaseitem");                 queryParamsList.Add($"filter_{filter.GetHashCode()}", filter);             } --            if (query.IsRetaliation) {-                queryFragments.Add("exists (select id_databaseitem from databaseitemstat_v2 dbs where stat like 'retaliation%' and db.id_databaseitem = dbs.id_databaseitem)");-            }+            if (query.IsRetaliation)+                queryFragments.Add(+                    @"SELECT dbs.id_databaseitem+                        FROM databaseitemstat_v2 dbs+                        WHERE dbs.stat LIKE 'retaliation%'+                        AND db.id_databaseitem = dbs.id_databaseitem");              // TODO: Seems we only have LIST parameters here.. won't work for this, since we'd get OR not AND on classes.             // No way to get a non-list param?-            foreach (var desiredClass in query.Classes) {-                queryFragments.Add("exists (select id_databaseitem from databaseitemstat_v2 dbs where stat IN ('augmentSkill1Extras','augmentSkill2Extras','augmentSkill3Extras','augmentSkill4Extras','augmentMastery1','augmentMastery2','augmentMastery3','augmentMastery4') "-                                   + $" AND TextValue = '{desiredClass}'" // Not ideal-                                   + " AND db.id_databaseitem = dbs.id_databaseitem)");-            }-+            foreach (var desiredClass in query.Classes)+                queryFragments.Add(+                    $@"SELECT dbs.id_databaseitem+                        FROM databaseitemstat_v2 dbs+                        WHERE stat IN (+                            'augmentSkill1Extras',+                            'augmentSkill2Extras',+                            'augmentSkill3Extras',+                            'augmentSkill4Extras',+                            'augmentMastery1',+                            'augmentMastery2',+                            'augmentMastery3',+                            'augmentMastery4')+                        AND TextValue = '{desiredClass}'+                        AND db.id_databaseitem = dbs.id_databaseitem");              if (queryFragments.Count > 0) {-                string sql = $@"-                SELECT Playeritemid FROM PlayerItemRecord WHERE record IN (-                    select baserecord from databaseitem_V2 db where db.baserecord in (-                        select baserecord from playeritem union -                        select prefixrecord from playeritem union -                        select suffixrecord from playeritem union -                        select materiarecord from playeritem-                    )-                    AND {String.Join(" AND ", queryFragments)}-                )-                ";+                const string joinString =

Is this auto generated?

Eradev

comment created time in a month

PullRequestReviewEvent

issue openedmarius00/iagd

Ensure that backups are not written without any items

Could be it's already in place, but should ensure that backup Weekday.zip files are not written if the number of PlayerItems is 0. Should anything bad happen, it would prevent overwriting backups with an empty inventory.

created time in a month