Browse Source

CreatePlayer by reference

pull/4815/head
Anders Jenbo 4 years ago
parent
commit
54598e2a8f
  1. 4
      Source/items.cpp
  2. 2
      Source/items.h
  3. 2
      Source/pfile.cpp
  4. 9
      Source/player.cpp
  5. 2
      Source/player.h
  6. 2
      test/player_test.cpp

4
Source/items.cpp

@ -2785,10 +2785,8 @@ void SetPlrHandGoldCurs(Item &gold)
gold._iCurs = GetGoldCursor(gold._ivalue); gold._iCurs = GetGoldCursor(gold._ivalue);
} }
void CreatePlrItems(int playerId) void CreatePlrItems(Player &player)
{ {
Player &player = Players[playerId];
for (auto &item : player.InvBody) { for (auto &item : player.InvBody) {
item.clear(); item.clear();
} }

2
Source/items.h

@ -465,7 +465,7 @@ int GetGoldCursor(int value);
* @param h The item to update * @param h The item to update
*/ */
void SetPlrHandGoldCurs(Item &gold); void SetPlrHandGoldCurs(Item &gold);
void CreatePlrItems(int playerId); void CreatePlrItems(Player &player);
bool ItemSpaceOk(Point position); bool ItemSpaceOk(Point position);
int AllocateItem(); int AllocateItem();
Point GetSuperItemLoc(Point position); Point GetSuperItemLoc(Point position);

2
Source/pfile.cpp

@ -426,7 +426,7 @@ bool pfile_ui_save_create(_uiheroinfo *heroinfo)
CopyUtf8(hero_names[saveNum], heroinfo->name, sizeof(hero_names[saveNum])); CopyUtf8(hero_names[saveNum], heroinfo->name, sizeof(hero_names[saveNum]));
Player &player = Players[0]; Player &player = Players[0];
CreatePlayer(0, heroinfo->heroclass); CreatePlayer(player, heroinfo->heroclass);
CopyUtf8(player._pName, heroinfo->name, PLR_NAME_LEN); CopyUtf8(player._pName, heroinfo->name, PLR_NAME_LEN);
PackPlayer(&pkplr, player, true, false); PackPlayer(&pkplr, player, true, false);
EncodeHero(saveWriter, &pkplr); EncodeHero(saveWriter, &pkplr);

9
Source/player.cpp

@ -2442,13 +2442,8 @@ void SetPlrAnims(Player &player)
/** /**
* @param c The hero class. * @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(); player.Reset();
SetRndSeed(SDL_GetTicks()); SetRndSeed(SDL_GetTicks());
@ -2585,7 +2580,7 @@ void CreatePlayer(int playerId, HeroClass c)
player.wReflections = 0; player.wReflections = 0;
InitDungMsgs(player); InitDungMsgs(player);
CreatePlrItems(playerId); CreatePlrItems(player);
SetRndSeed(0); SetRndSeed(0);
} }

2
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 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 SetPlrAnims(Player &player);
void CreatePlayer(int playerId, HeroClass c); void CreatePlayer(Player &player, HeroClass c);
int CalcStatDiff(Player &player); int CalcStatDiff(Player &player);
#ifdef _DEBUG #ifdef _DEBUG
void NextPlrLevel(Player &player); void NextPlrLevel(Player &player);

2
test/player_test.cpp

@ -181,6 +181,6 @@ static void AssertPlayer(Player &player)
TEST(Player, CreatePlayer) TEST(Player, CreatePlayer)
{ {
CreatePlayer(0, HeroClass::Rogue); CreatePlayer(Players[0], HeroClass::Rogue);
AssertPlayer(Players[0]); AssertPlayer(Players[0]);
} }

Loading…
Cancel
Save