PathOfBuilding
PathOfBuilding copied to clipboard
Fix faulty uuid calculation causing cache miss
Fixes #7543
Description of the problem being solved:
The cacheSkillUUID function used the address of the group pointer for finding the index of the group a given skill belongs to. This failed for skills coming from items as the group table is recreated in the process of creating a new env. Causing incorrect cache reuse, causing all kinds of issues.
Steps taken to verify a working solution:
- Test build provided from issue and minimal repro version.
Link to a build that showcases this PR:
eNq1XFtz4joSfp78ChdV-7Qk8U2-pJLdAnLjHJhkIJc55yUlbAGeCJux5RBma__7tmQbHAYbO7DzkLGt7q8vklrqlpLzf7_PqPRGwsgL_IuGciI3JOI7gev5k4vG48P1sdX497-Ozu8xm96N27FHecu_jr6ci2eJkjdCLxqG3pAYDieEPWVQ2gtAzbHPpiTw-_hHEN4E7kXja-CThjTCvuux7M2hOIq-4hm5aAyn2A0WDQlHDvHdzrrhIfSc14iREMinOMQOPPa48FbMgn7gAskY0wjQZtjzh4HzSthNGMTzi4bakN48skiIuv37u8FDTjPPz2sGln05v6d4ScIhw0yK4MdFowUOwhNy6zGAwjQGHLlxWkrbjsOIXeIZPO7mGc4JcXeT3YfkajwmDvPeSCf0WGeKfacCfF3afkyZN6ced3ZKr5ygIo7b38AVuRD-IWCYXt4PdyuSUAYVPP7ssWmbggcr4XLq7sT3GKlMfh94UeDX0roScSemFGZTJdoBiUj4hplXUZFOMBt5fkWfdIKAwrTz15QnSLUKR3hI8N04GYkD7Hpx1CcsJNGKWy_i7GMfd4KoQp9yynsSQhBgtRiGxAkgbtSVUZOz541JdcpadqQMdbX5nB1Xw6p0tYE_p9AAwmU1ymEQ0w-UJUFnyNaBzLCLqC7J-xoMacUT8ecHSq1wnnT9tXZmGV6eUNeK9XsL-PSvGISubu9zvrHME9NACkKaqqmF68t0GXkOpn387s3iGQT2B_xK_DyMWjwIJ1PmQzQrYrblQt5rLySfYOtA0PoM2xQHUaGJimqWzbNKvoDl3Dnj1F3fWTGU4z76oQjwuW1AubfHZADziu81RpRU5lmLSednlemTCJsQP5W4XDGhUp4eIc70BnZjA8xItXC8RrbNUu9y4g_eNcpgt3hXM_RqHJuOMuQT21SQqquWpchmGch2pynySanomm678kk4WQ6nHqFuPepMsw6eV9qiOmd57rz3UTVx27xRSdOaLnnGoVttramr0xuO8hFYU8rdlZDnPWUWDxgCW1jgcEnVrfp9GPzgyQCtx9YKZ0EcVuzxhDhvgbxr9UiSngFxY6factWmkK1V1R60orQWR4sx7LxeBu6E1BJSi2OVlwnWYTyfQ_zgnb8BYJWtgbDH93I7mmNV3k19ByO30gTmq2V1AWvqygJWO4DqUjZYqtvCl_ANMXoF4soCVt3Zh8gwg_AvMvR-kFudT5RCideQ11XKuwRhxWTxPliA8lNeZInqUcNeZx2xClUJif9rWRn_A3klAVe-G4d8LlSWscmxTcyDN4O4GUWXmGHJTXfITzj0sM9U6KWGFBEcOtMe9P41pnQEoeCikf8q3kS56NqjjISX8I0L5YptIiockQs-PxXlL_7Unc2DkEkUR6zlOEHss1scTSHSE0t1HZdojqKrSNY1kxi2reojE8mjkWvaxEIYE9jycNYBwXQG3dZpSOSdA97jkC1XNS1O0snKXgm-rmHLkO2RS2TXHkMaYqLR2LWIRVxZtslIcQ3NIhgn-go4MCdini-KCBAXKW1Iw2mwaLlv3OCHIKDRSiKez4nvZq8C4yEkRMJZlHO4L0Qf8BdphnlxbplMHID5j25rttJUFFuz_tv8jyLrit7UkYE0eFNlw0RNTVUR4m-WLWtNA_4zOaWKFKtpapb93w9lwK4rKnl-AEbwtEsDBMXQraaqGLbW1BXDspuGZstWEymqKjd1TVOMpopMIEQaiG4iS9WamoKARAMStYl0U9GaicREQ9U0LQAwVLupWrKiNg2kqyaoahpchmUYTU0z1KZu27LcRECmmFxkYpFimjowagYXrKgKwAFj05JlpQl9pQuJ4BUNaZYOOmjIbuqGzvWxkGZzH2jApIN1TQQCbA5ggWCZy1QtBH5CqgmG6kiVVS5DBV7TUGzQGUzRkQ7wqqZpujACNQ1d1UAxFTSAMWKB12VVhp9gJ-IoptrUDAuBx2X4IEzWEfeBYikWtFk2gMBWF_RVLFM3QV_wEdihadxqG4H_dENp6rrBFRWdjhC4ABxq6dwMFYGigAtehKEPMLZQGmw1m0nXwxcF-suUDdDXtOEzUg0ZHG0LexVk8gnLqwg4XLY-DgmYpAzGZa7srOppRZk3G2KIfjl_HPTEw5cpY_Po7PR0sViczDGbBmPyDjuoEyeYnc6BCQb3cfTqUXrMYU9b8K89-avz-OvbS9tvP77h3t_H-KF7_eer_PefL9_kNn4h7wNks2fUv_srCGfL_vVYYaP744fxS_zDm8jeIl50rh6_y4_9r9dPT--tzhX9-aNtt82J-dzWA534x8rwD9yzn21Y1HEbz-_cnzP7-68fz4tX2ote3_pP5ujm1_NyNEIvYdjuXan337_br2i2ULsvxo0hjx96PWewwH89apePw4dYfncHnUf39Zo5l29_0jffvTLGr0G7d9tVX5w7t9cJx3_fBIoXdgdvS1NutQe_3P4dXj4NvXg8tr8tloa3uHtRou-XvnDgaebB86S2Hp0mb3xJDT2Yk0k8PuXBQARIHi34w9eAkYi38Y_Zy_mQuziCwBuyGzKL2ktYA6_5Vn-jcpmGG049JCwJ6HmeiwYLY8ID9RjHlH__FmPq8dAp57_2knMKHzpoVd8AKIh-fK-WID4s5zy0tHq9pKVFWQrGxWWhMAl5qUKS52ZhMP0ojh9aa607mDqR0NvzHRq7pOun24NccB9x3fjBC0_m3cymiAa8vE7ojLDGJu5K7Jdz0C5lvaHBCFN1hSwGct_zYWZsKJNrST_ekhBT927cmgT-cjiHLg1hRWY8ZU4PeRSjIU3IjE-rPmHYhSX3tMvANafcP6dCAjx9AOILtlg6OddGi9Ch6HtOa6Hwz1y3ps-c9TLp4cYHByiZBzccKlZngebjWbqGJbKlYCz9Lr3MKac7nV_Ra6vhdy1W0HVSF33w3W-tKWPOjemXLTj_L-cloqS8rOp-MSv65Snw3D72vXlMcZZQrtyy2Vjold9R_l9O4ZKkD6LSUJnMkN2xwvfotmghPq9iRQRpOd-kcpedoTPIiAMxijtBGMZzLrYptWYj6J3WLKaEFUSXrLFWdEk0Sbsx5-onjGkLtuxXVORMWSngFva2kON99HgN7wpxa__e0JgxmI7c2lRS9LuL00eI0WI1StYb_iicLCi6_jxmAviiMfMi52UESx8_JQaTWCgOwK-ur686D92nqzTdyLMIs1_8mDsZ9BP_Z_kBdDAR1Q8pikdR8gj-8chCKHIJA96jEbeQUjyPyGqjLRaUVHMKfCVogurWWx0yb8daExQjXb2TEPKCyTPkRKFHCvVate9QKhHIa2o8PStC42e7xUBJ1abDUyNR8yvwlDg4L0bhp9mF5vDGEl5I7DAtlJy27vAE41sKGLXe2HN4Zlve5XwDklCV-MVxYIY5y5L-TktOxRjisLwIIGksZk4Ow4u409YSr4qj90KvJq3F7JfEwYW2J43FzKsycuCLqxzbUVZUJUhfA18Mcpg0LY8mIagADkLUiqQY8I5NSZgmz0VIfYhRGUnpxAm9UcyKp3GOosRX4rCrwEO8rZg1OcgpsIG3lUSiD4cZBQ7N0xRDJYcAhYGsjDUpFhb6Ly08lnRBWmEvcH_SWuKE7JShwP60uWSSiPjbeoONSFJ8LpguG2RlAQNyvv1hREV9f5jNEvv-iNcUR6-F_Z22FrM_wtYX9jVbUJJ9TCUQPqn2Q-Bzaz-EweZGYs07KN9CrIq6W5mz1rKJn9Z6P42QVKQ_zS4K5p_mFuEbMgcCFpTG7xVNyfBmsX8JzmAlQ7silFBrexxYW1cLK1nJtlpaGzGZn-n9i7IpnJDsAIKl-LZks1cNaXXuw3MWfvEvoPsB_nbPZC87AxZh373kh9Z7GsrPvOM5gGWa3W3bra-7dBP1_DTLo8SxAM9s0jOVIQt5fvorCGZ_iUyPP6XlNy0tucEe99IDV4diiGRyOOH37DzoXNQC0voff87Kf3FEkhtlzwTPIeHnn3OVOU4qNEZJAjvAsMtfnkmPX7vfHq-OtuTJR_k0-ejR937GROpenknK2MGa5Y6QPCKygi1L0S3T0mzZQCNVNZGjKyq2kGYSh2Bbcw3D1mRd0XTDMbDuykdCF2H6maTbR-JpQH6eSegI0gfqOTBeQczRP1UksUACzxF_wqZHNxAJWZRwSoosbct4JZExHLVcN5IUm7PrmiSOOqWkr_inJImKjo6Nf_BXTKm0ys2lZBvDA0MEGuiCIgFYtxylbiKuSK8hOR5gH7BD_lNcE22kJdA0AS-kUHdSaDsp9J0U2UUUUUlajQdeqC0eNh9ruDRgEqQgs_vR46DHB3KS7CdcEi_jsqRoJWfKFLG0CWVSa7SMInB2UjSX1Br8mchNDFQfQz0AhiINF3i-CWQcwCDjAAbVwWgHEEc3AbQaAElJfhNh37HxKTds6xN0gD5RDoCh13TIocbkISZZHQyxra7l9a0jUN1z_Gi1Va7TQTc0eCPRPsNk-6wxaiPUNlPZ28w6fZtV1DMG9NkhqB0gLGp7m67XdnedcTyAXftn5msS-Gobt-8URbWdsf-you6NsL8O-r6O0w8V27VamrhLKam2HT5uoUOt1sphLFL37aLaO6i9Q4txGMvR3opodSOWsq-zlQPE9oPNKXSYfjD23L_svxvZdwd1oKmoHSo0HAzoM6nF53xxqDF5oK749BzZxicguy4wiVuovFHcC80A_iALQqX0U17AJ4biwZYX9QCR5hAYyqEMOljY-x0oKRslV0Z4XRO7ZChqms-E_6JClBQ-RWFS3CQJ_LE3-e1eSLiqnt0TH1O2XF8OOdZyl90dMg2oS8KUjfhktkz_EEBGb8o76PO_2Z8xoXKWj7-ms2bTkbVb1ibTLnvS3wUKKBX1urxlhYyz1V8f4L97T0LiDsVVEH4ZaEjoOHfXZoepWUjK6C0TmeUcq6PXlVcURS1kibyJR-_G4ugIdBTnXx_vAZ2fZoPk_HTzT2j8D2ANZBE=
~~This will fail if an items grants more than one group. Need to find a better way.~~