aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp04/ex03/Character.cpp9
-rw-r--r--cpp04/ex03/Cure.cpp4
-rw-r--r--cpp04/ex03/Ice.cpp4
-rw-r--r--cpp04/ex03/MateriaSource.cpp4
-rw-r--r--cpp04/ex03/main.cpp40
5 files changed, 30 insertions, 31 deletions
diff --git a/cpp04/ex03/Character.cpp b/cpp04/ex03/Character.cpp
index d159aaf..bc58588 100644
--- a/cpp04/ex03/Character.cpp
+++ b/cpp04/ex03/Character.cpp
@@ -6,12 +6,15 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/14 16:45:54 by charles #+# #+# */
-/* Updated: 2020/11/13 14:20:50 by cacharle ### ########.fr */
+/* Updated: 2020/11/15 17:10:46 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "Character.hpp"
+Character::Character(std::string const& name)
+ : m_name(name), m_inventory_size(0) {}
+
Character::Character(Character const& other)
: m_inventory_size(0) { *this = other; }
@@ -27,13 +30,11 @@ Character& Character::operator=(Character const& other)
Character::~Character() { destroyInventory(); }
-Character::Character(std::string const& name) : m_name(name), m_inventory_size(0) {}
-
std::string const& Character::getName() const { return m_name; }
void Character::equip(AMateria* m)
{
- if (m_inventory_size >= INVENTORY_MAX_SIZE)
+ if (m_inventory_size >= INVENTORY_MAX_SIZE || m == NULL)
return;
m_inventory[m_inventory_size] = m;
m_inventory_size++;
diff --git a/cpp04/ex03/Cure.cpp b/cpp04/ex03/Cure.cpp
index dc464ff..f109023 100644
--- a/cpp04/ex03/Cure.cpp
+++ b/cpp04/ex03/Cure.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/14 17:38:01 by charles #+# #+# */
-/* Updated: 2020/11/13 14:09:58 by cacharle ### ########.fr */
+/* Updated: 2020/11/15 17:21:10 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,7 +14,7 @@
Cure::Cure() : AMateria("cure") {}
-Cure::Cure(Cure const& other) { *this = other; }
+Cure::Cure(Cure const& other) : AMateria("cure") { *this = other; }
Cure& Cure::operator=(Cure const& other)
{
diff --git a/cpp04/ex03/Ice.cpp b/cpp04/ex03/Ice.cpp
index 9df83b2..97225de 100644
--- a/cpp04/ex03/Ice.cpp
+++ b/cpp04/ex03/Ice.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/14 16:32:27 by charles #+# #+# */
-/* Updated: 2020/11/13 14:06:33 by cacharle ### ########.fr */
+/* Updated: 2020/11/15 17:22:00 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,7 +14,7 @@
Ice::Ice() : AMateria("ice") {}
-Ice::Ice(Ice const& other) : AMateria(other) {}
+Ice::Ice(Ice const& other) : AMateria("ice") { *this = other; }
Ice& Ice::operator=(Ice const& other)
{
diff --git a/cpp04/ex03/MateriaSource.cpp b/cpp04/ex03/MateriaSource.cpp
index 774506b..0d21ab8 100644
--- a/cpp04/ex03/MateriaSource.cpp
+++ b/cpp04/ex03/MateriaSource.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/14 17:19:10 by charles #+# #+# */
-/* Updated: 2020/11/13 14:40:54 by cacharle ### ########.fr */
+/* Updated: 2020/11/15 17:22:19 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -30,7 +30,7 @@ MateriaSource::~MateriaSource() { destroyLearned(); }
void MateriaSource::learnMateria(AMateria* materia)
{
- if (m_learned_size >= 4)
+ if (m_learned_size >= 4 || materia == NULL)
return;
m_learned[m_learned_size] = materia->clone();
m_learned_size++;
diff --git a/cpp04/ex03/main.cpp b/cpp04/ex03/main.cpp
index 871007d..6444877 100644
--- a/cpp04/ex03/main.cpp
+++ b/cpp04/ex03/main.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/14 17:58:01 by charles #+# #+# */
-/* Updated: 2020/11/13 14:41:49 by cacharle ### ########.fr */
+/* Updated: 2020/11/15 17:23:07 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,24 +17,22 @@
int main()
{
- IMateriaSource* src = new MateriaSource();
- src->learnMateria(new Ice());
- src->learnMateria(new Cure());
-
- ICharacter* me = new Character("me");
-
- AMateria* tmp;
- tmp = src->createMateria("ice");
- me->equip(tmp);
- tmp = src->createMateria("cure");
- me->equip(tmp);
-
- ICharacter* bob = new Character("bob");
-
- me->use(0, *bob);
- me->use(1, *bob);
-
- delete bob;
- delete me;
- delete src;
+ {
+ std::cout << "================== SUBJECT MAIN ==================" << std::endl;
+ IMateriaSource* src = new MateriaSource();
+ src->learnMateria(new Ice());
+ src->learnMateria(new Cure());
+ ICharacter* me = new Character("me");
+ AMateria* tmp;
+ tmp = src->createMateria("ice");
+ me->equip(tmp);
+ tmp = src->createMateria("cure");
+ me->equip(tmp);
+ ICharacter* bob = new Character("bob");
+ me->use(0, *bob);
+ me->use(1, *bob);
+ delete bob;
+ delete me;
+ delete src;
+ }
}