You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.2 KiB

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5. #include "player.h"
  6. // PLAYER INVENTORY
  7. // add and remove
  8. Player addItemToInventory(Item *availableItems, int itemIndex, Player actualPlayer)
  9. {
  10. int counter = actualPlayer.itemCounter;
  11. actualPlayer.itemInventory[counter] = availableItems[itemIndex - 1]; // -1 to get right index (items begin - 1,2,3,4...)
  12. actualPlayer.itemCounter += 1;
  13. return actualPlayer;
  14. }
  15. Player removeItemFromInventory(int itemIndex, Player actualPlayer)
  16. {
  17. Item items[maxItems]; // actualPlayer.itemInventory
  18. int i, index = -1;
  19. for (i = 0; i < maxItems; i++)
  20. {
  21. if (i == itemIndex)
  22. {
  23. // printf("%d - '%s' has been removed from inventory.\n", actualPlayer.itemInventory[i].id, actualPlayer.itemInventory[i].itemName);
  24. index = i;
  25. break;
  26. }
  27. }
  28. if (index != -1)
  29. {
  30. // shift all the element from index+1 by one position to the left
  31. for (i = index; i < maxItems - 1; i++)
  32. actualPlayer.itemInventory[i] = actualPlayer.itemInventory[i + 1];
  33. /*printf("New Array : ");
  34. for(i = 0; i < maxItems - 1; i++)
  35. printf("%d ",actualPlayer.itemInventory[i].id);*/
  36. }
  37. else
  38. printf("Element Not Found\n");
  39. actualPlayer.itemCounter = actualPlayer.itemCounter - 1;
  40. return actualPlayer;
  41. }
  42. // currency
  43. Player setTotal(Player actualPlayer, int value)
  44. {
  45. actualPlayer.wallet = value;
  46. return actualPlayer;
  47. }
  48. Player addMoneyToPlayer(Player actualPlayer, int money)
  49. {
  50. int newTotal = money + actualPlayer.wallet;
  51. actualPlayer = setTotal(actualPlayer, newTotal);
  52. return actualPlayer;
  53. }
  54. // show
  55. void showInventory(Player actualPlayer)
  56. {
  57. int inventoryItemCounter = actualPlayer.itemCounter;
  58. if (inventoryItemCounter == 0)
  59. {
  60. printf("*** Inventory is empty *** \n\n");
  61. }
  62. else
  63. {
  64. printf("*** Inventory *** \n\n");
  65. for (int i = 0; i < actualPlayer.itemCounter; i++)
  66. {
  67. // printf("%d: %d - %s\n", i, inventory[i].id, inventory[i].itemName);
  68. printf("> %s - %d\n", actualPlayer.itemInventory[i].itemName, i);
  69. }
  70. }
  71. printf("\n\n");
  72. }