From cab62a7dbff9536e17ac5be083a2b99527571892 Mon Sep 17 00:00:00 2001 From: thebigMuh Date: Sun, 2 May 2021 03:57:19 +0200 Subject: [PATCH] Load item graphics early so they are available for hero selection --- Source/diablo.cpp | 7 +++++-- Source/items.cpp | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index f0e5ec67f..a2a6ff10f 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -321,7 +321,6 @@ static void free_game() for (i = 0; i < MAX_PLRS; i++) FreePlayerGFX(i); - FreeItemGFX(); FreeCursor(); FreeLightTable(); #ifdef _DEBUG @@ -695,6 +694,9 @@ static void diablo_init() #endif ui_sound_init(); + + // Item graphics are loaded early, they already get touched during hero selection. + InitItemGFX(); } static void diablo_splash() @@ -718,6 +720,8 @@ static void diablo_splash() static void diablo_deinit() { + FreeItemGFX(); + if (sbWasOptionsLoaded) SaveOptions(); if (was_snd_init) { @@ -1888,7 +1892,6 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) if (firstflag) { InitInv(); - InitItemGFX(); InitQuestText(); InitStores(); InitAutomapOnce(); diff --git a/Source/items.cpp b/Source/items.cpp index 16678ba8c..d85481f77 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -2256,7 +2256,7 @@ void SetupItem(int i) int it; it = ItemCAnimTbl[items[i]._iCurs]; - items[i]._iAnimData = itemanims[it] ? &*itemanims[it] : nullptr; + items[i]._iAnimData = &*itemanims[it]; items[i]._iAnimLen = ItemAnimLs[it]; items[i]._iIdentified = false; items[i]._iPostDraw = false;