Skip to content

Commit c580c0e

Browse files
committed
Fix the 'sune post-credits scene
1 parent b8e99f8 commit c580c0e

File tree

1 file changed

+51
-27
lines changed

1 file changed

+51
-27
lines changed

Common/Races/Kitsune/Kitsune.cs

Lines changed: 51 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,19 @@ public class Kitsune : Race
5050
private static Texture2D texture_Color;
5151
private static Texture2D texture_Tail;
5252

53+
private const bool DEBUG = false;
54+
55+
// Debugging log function.
56+
private void Log(object message)
57+
{
58+
if (DEBUG)
59+
{
60+
#pragma warning disable CS0162 // Unreachable code detected
61+
ShaggyAddonRaces.Logger.Debug(message);
62+
#pragma warning restore CS0162 // Unreachable code detected
63+
}
64+
}
65+
5366
private void Init(Player player)
5467
{
5568
// Redundant initialize every frame.
@@ -191,36 +204,47 @@ public override void ModifyDrawInfo(Player player, Mod mod, ref PlayerDrawInfo d
191204

192205
public override void ModifyDrawLayers(Player player, List<PlayerLayer> layers)
193206
{
194-
if (player == null)
195-
{
196-
player = globalPlayer;
197-
ShaggyAddonRaces.Logger.Warn("Player undefined, assigned globalPlayer value.");
198-
}
199-
200-
if (layers == null)
201-
{
202-
ShaggyAddonRaces.Logger.Warn("LAYERS IS NULL");
203-
}
204-
205-
modPlayer = player.GetModPlayer<MrPlagueRaces.MrPlagueRacesPlayer>();
206-
207-
if (texture_Color.IsDisposed || texture_Tail.IsDisposed)
207+
try
208208
{
209-
// catch to make absolutely sure stuff isn't broken
210-
Initialize(player);
211-
}
209+
if (player == null)
210+
{
211+
player = globalPlayer;
212+
ShaggyAddonRaces.Logger.Warn("Player undefined, assigned globalPlayer value.");
213+
}
214+
if (layers == null)
215+
{
216+
ShaggyAddonRaces.Logger.Warn("LAYERS IS NULL");
217+
}
212218

213-
if (modPlayer != null && player != null && layers != null)
214-
{
215-
int tailLayer = layers.IndexOf(PlayerLayer.Legs) - 1;
216-
layers.Insert(tailLayer, KitsuneTail);
217-
layers.Insert(tailLayer + 1, KitsuneTail_Color);
218-
base.ModifyDrawLayers(player, layers);
219-
bool hideChestplate = modPlayer.hideChestplate;
220-
bool hideLeggings = modPlayer.hideLeggings;
221-
modPlayer.updatePlayerSprites("ShaggyAddonRaces/Content/RaceTextures/", "ShaggyAddonRaces/Content/RaceTextures/Kitsune/", hideChestplate, hideLeggings, 4, 0, "Kitsune", false, false, false);
219+
modPlayer = player.GetModPlayer<MrPlagueRaces.MrPlagueRacesPlayer>();
220+
if (texture_Color == null || texture_Tail == null)
221+
{
222+
ShaggyAddonRaces.Logger.Info("Tails are null... Acquiring.");
223+
texture_Tail = ShaggyAddonRaces.GetTexture("Content/RaceTextures/Kitsune/Tail/Kitsune_Tail" + tailCount);
224+
texture_Color = ShaggyAddonRaces.GetTexture("Content/RaceTextures/Kitsune/Tail/Kitsune_Tail" + tailCount + "_Color");
225+
}
226+
if (texture_Color.IsDisposed || texture_Tail.IsDisposed)
227+
{
228+
// catch to make absolutely sure stuff isn't broken
229+
ShaggyAddonRaces.Logger.Info("Tails are disposed... re-acquiring.");
230+
texture_Tail = ShaggyAddonRaces.GetTexture("Content/RaceTextures/Kitsune/Tail/Kitsune_Tail" + tailCount);
231+
texture_Color = ShaggyAddonRaces.GetTexture("Content/RaceTextures/Kitsune/Tail/Kitsune_Tail" + tailCount + "_Color");
232+
}
233+
if (modPlayer != null && player != null && layers != null)
234+
{
235+
int tailLayer = layers.IndexOf(PlayerLayer.Legs) - 1;
236+
layers.Insert(tailLayer, KitsuneTail);
237+
layers.Insert(tailLayer + 1, KitsuneTail_Color);
238+
base.ModifyDrawLayers(player, layers);
239+
bool hideChestplate = modPlayer.hideChestplate;
240+
bool hideLeggings = modPlayer.hideLeggings;
241+
modPlayer.updatePlayerSprites("ShaggyAddonRaces/Content/RaceTextures/", "ShaggyAddonRaces/Content/RaceTextures/Kitsune/", hideChestplate, hideLeggings, 4, 0, "Kitsune", false, false, false);
242+
}
243+
} catch (System.Exception e) {
244+
// Literally just pipe all errors to the log file rather than crash immediately and hope for the best.
245+
ShaggyAddonRaces.Logger.Error("Error in ModifyDraw Layers! Now printing error to log...");
246+
ShaggyAddonRaces.Logger.Error(e);
222247
}
223-
224248
}
225249

226250
//Original tail code provided by Kazun (thanks!). Refactored by AxeBane.

0 commit comments

Comments
 (0)