diff --git a/source/games/sw/src/save.cpp b/source/games/sw/src/save.cpp index 2694134be..87d04dd62 100644 --- a/source/games/sw/src/save.cpp +++ b/source/games/sw/src/save.cpp @@ -959,14 +959,14 @@ void SerializeUser(FSerializer& arc) { for (int i = 0; i < MAXSPRITES; i++) { - hitlist.Set(i, !!User[i].Data()); + hitlist.Set(i, swActors[i].hasU()); } } else { for (int i = 0; i < MAXSPRITES; i++) { - User[i].Clear(); + swActors[i].clearUser(); } } arc("usermap", hitlist); diff --git a/source/games/sw/src/swactor.h b/source/games/sw/src/swactor.h index 5e8971526..6e4e2705f 100644 --- a/source/games/sw/src/swactor.h +++ b/source/games/sw/src/swactor.h @@ -9,6 +9,7 @@ class DSWActor { int index; DSWActor* base(); + auto& up() { return User[index]; } public: @@ -19,20 +20,21 @@ public: { clearUser(); } - bool hasU() { return User[index].Data() != nullptr; } + bool hasU() { return u() != nullptr; } + spritetype& s() { return sprite[index]; } - USER* u() { return User[index].Data(); } + USER* u() { return up().Data(); } USER* allocUser() { - User[index].Alloc(); - User[index]->SpriteNum = GetSpriteIndex(); - return User[index].Data(); + up().Alloc(); + u()->SpriteNum = GetSpriteIndex(); + return u(); } void clearUser() { - if (hasU()) User[index].Clear(); + up().Clear(); } int GetIndex()