From 54598e2a8f9ecc249c8e506fdd09c9e5bb219cfc Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Tue, 28 Jun 2022 15:52:19 +0200 Subject: [PATCH] CreatePlayer by reference --- Source/items.cpp | 4 +--- Source/items.h | 2 +- Source/pfile.cpp | 2 +- Source/player.cpp | 9 ++------- Source/player.h | 2 +- test/player_test.cpp | 2 +- 6 files changed, 7 insertions(+), 14 deletions(-) diff --git a/Source/items.cpp b/Source/items.cpp index bbb666496..8e83cada2 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -2785,10 +2785,8 @@ void SetPlrHandGoldCurs(Item &gold) gold._iCurs = GetGoldCursor(gold._ivalue); } -void CreatePlrItems(int playerId) +void CreatePlrItems(Player &player) { - Player &player = Players[playerId]; - for (auto &item : player.InvBody) { item.clear(); } diff --git a/Source/items.h b/Source/items.h index 980715443..9309a92d4 100644 --- a/Source/items.h +++ b/Source/items.h @@ -465,7 +465,7 @@ int GetGoldCursor(int value); * @param h The item to update */ void SetPlrHandGoldCurs(Item &gold); -void CreatePlrItems(int playerId); +void CreatePlrItems(Player &player); bool ItemSpaceOk(Point position); int AllocateItem(); Point GetSuperItemLoc(Point position); diff --git a/Source/pfile.cpp b/Source/pfile.cpp index aa8ba725a..49d705bf5 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -426,7 +426,7 @@ bool pfile_ui_save_create(_uiheroinfo *heroinfo) CopyUtf8(hero_names[saveNum], heroinfo->name, sizeof(hero_names[saveNum])); Player &player = Players[0]; - CreatePlayer(0, heroinfo->heroclass); + CreatePlayer(player, heroinfo->heroclass); CopyUtf8(player._pName, heroinfo->name, PLR_NAME_LEN); PackPlayer(&pkplr, player, true, false); EncodeHero(saveWriter, &pkplr); diff --git a/Source/player.cpp b/Source/player.cpp index ded0a7091..95e83f00e 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2442,13 +2442,8 @@ void SetPlrAnims(Player &player) /** * @param c The hero class. */ -void CreatePlayer(int playerId, HeroClass c) +void CreatePlayer(Player &player, HeroClass c) { - if ((DWORD)playerId >= MAX_PLRS) { - app_fatal("CreatePlayer: illegal player %i", playerId); - } - Player &player = Players[playerId]; - player.Reset(); SetRndSeed(SDL_GetTicks()); @@ -2585,7 +2580,7 @@ void CreatePlayer(int playerId, HeroClass c) player.wReflections = 0; InitDungMsgs(player); - CreatePlrItems(playerId); + CreatePlrItems(player); SetRndSeed(0); } diff --git a/Source/player.h b/Source/player.h index 7b3d03a67..617a3218b 100644 --- a/Source/player.h +++ b/Source/player.h @@ -760,7 +760,7 @@ void ResetPlayerGFX(Player &player); */ void NewPlrAnim(Player &player, player_graphic graphic, Direction dir, int numberOfFrames, int delayLen, AnimationDistributionFlags flags = AnimationDistributionFlags::None, int numSkippedFrames = 0, int distributeFramesBeforeFrame = 0); void SetPlrAnims(Player &player); -void CreatePlayer(int playerId, HeroClass c); +void CreatePlayer(Player &player, HeroClass c); int CalcStatDiff(Player &player); #ifdef _DEBUG void NextPlrLevel(Player &player); diff --git a/test/player_test.cpp b/test/player_test.cpp index 9fa18cd08..50e4e51e3 100644 --- a/test/player_test.cpp +++ b/test/player_test.cpp @@ -181,6 +181,6 @@ static void AssertPlayer(Player &player) TEST(Player, CreatePlayer) { - CreatePlayer(0, HeroClass::Rogue); + CreatePlayer(Players[0], HeroClass::Rogue); AssertPlayer(Players[0]); }