ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18gs

Dependencies:   mbed

Committer:
el18gs
Date:
Mon May 11 11:58:31 2020 +0000
Revision:
3:9d811414d35e
Child:
4:2e8d7c6d2953
testing docs commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el18gs 3:9d811414d35e 1 /**
el18gs 3:9d811414d35e 2 * @file Ghost.h
el18gs 3:9d811414d35e 3 * @brief revision 0.9
el18gs 3:9d811414d35e 4 * @brief Library for generating and saving .ghost files for the game. Some of
el18gs 3:9d811414d35e 5 * the files need to be imported from the SD others are generated.
el18gs 3:9d811414d35e 6 * @author George Sykes [el18gs]
el18gs 3:9d811414d35e 7 * @date 11 May 2020
el18gs 3:9d811414d35e 8
el18gs 3:9d811414d35e 9 @code
el18gs 3:9d811414d35e 10 * sample.ghost file
el18gs 3:9d811414d35e 11 1.ghost:
el18gs 3:9d811414d35e 12 /Type
el18gs 3:9d811414d35e 13 Basic
el18gs 3:9d811414d35e 14 /Name
el18gs 3:9d811414d35e 15 Casper
el18gs 3:9d811414d35e 16 /Attack
el18gs 3:9d811414d35e 17 10
el18gs 3:9d811414d35e 18 /Defense
el18gs 3:9d811414d35e 19 10
el18gs 3:9d811414d35e 20 /Level
el18gs 3:9d811414d35e 21 1
el18gs 3:9d811414d35e 22 /XP
el18gs 3:9d811414d35e 23 0
el18gs 3:9d811414d35e 24 /Value
el18gs 3:9d811414d35e 25 10
el18gs 3:9d811414d35e 26 /HP_max
el18gs 3:9d811414d35e 27 10
el18gs 3:9d811414d35e 28 /HP
el18gs 3:9d811414d35e 29 10
el18gs 3:9d811414d35e 30 /UID
el18gs 3:9d811414d35e 31 1
el18gs 3:9d811414d35e 32 @endcode
el18gs 3:9d811414d35e 33 */
el18gs 3:9d811414d35e 34
el18gs 3:9d811414d35e 35 #ifndef GHOST_H
el18gs 3:9d811414d35e 36 #define GHOST_H
el18gs 3:9d811414d35e 37
el18gs 3:9d811414d35e 38 #include "SDFileSystem.h"
el18gs 3:9d811414d35e 39 #include <string>
el18gs 3:9d811414d35e 40 #include <vector>
el18gs 3:9d811414d35e 41 #include <iostream>
el18gs 3:9d811414d35e 42
el18gs 3:9d811414d35e 43 //const string Ghost::suffix = ".ghost";
el18gs 3:9d811414d35e 44
el18gs 3:9d811414d35e 45 typedef std::vector<std::string> stringvec;
el18gs 3:9d811414d35e 46
el18gs 3:9d811414d35e 47 // Connections to SD card holder on K64F (SPI interface)
el18gs 3:9d811414d35e 48 //SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
el18gs 3:9d811414d35e 49
el18gs 3:9d811414d35e 50 enum Type {
el18gs 3:9d811414d35e 51 BASIC,
el18gs 3:9d811414d35e 52 ECTO,
el18gs 3:9d811414d35e 53 POLTER,
el18gs 3:9d811414d35e 54 ORB,
el18gs 3:9d811414d35e 55 FUNNEL
el18gs 3:9d811414d35e 56 };
el18gs 3:9d811414d35e 57
el18gs 3:9d811414d35e 58 class Ghost
el18gs 3:9d811414d35e 59 {
el18gs 3:9d811414d35e 60 public:
el18gs 3:9d811414d35e 61
el18gs 3:9d811414d35e 62 Ghost(const std::string path, const std::string root);
el18gs 3:9d811414d35e 63 Ghost(int type, int nameNumber, const std::string root);
el18gs 3:9d811414d35e 64
el18gs 3:9d811414d35e 65 void listdir(std::string path);
el18gs 3:9d811414d35e 66 void save(void);
el18gs 3:9d811414d35e 67 int sell(void);
el18gs 3:9d811414d35e 68 void feed(int ammount);
el18gs 3:9d811414d35e 69
el18gs 3:9d811414d35e 70 void print_all(void);
el18gs 3:9d811414d35e 71 Type get_type_enum(void);
el18gs 3:9d811414d35e 72 std::string get_type_string(void);
el18gs 3:9d811414d35e 73 std::string get_name(void);
el18gs 3:9d811414d35e 74 int get_attack(void);
el18gs 3:9d811414d35e 75 int get_defense(void);
el18gs 3:9d811414d35e 76 int get_level(void);
el18gs 3:9d811414d35e 77 int get_xp(void);
el18gs 3:9d811414d35e 78 int get_value(void);
el18gs 3:9d811414d35e 79 int get_hp_max(void);
el18gs 3:9d811414d35e 80 int get_hp(void);
el18gs 3:9d811414d35e 81 int get_uid(void);
el18gs 3:9d811414d35e 82
el18gs 3:9d811414d35e 83 private:
el18gs 3:9d811414d35e 84 int gen_uid(void);
el18gs 3:9d811414d35e 85 bool hasEnding (std::string const &fullString, std::string const &ending);
el18gs 3:9d811414d35e 86
el18gs 3:9d811414d35e 87 std::string type_to_string(Type type);
el18gs 3:9d811414d35e 88 Type string_to_type(std::string type);
el18gs 3:9d811414d35e 89 void delete_file(const char filename[]);
el18gs 3:9d811414d35e 90
el18gs 3:9d811414d35e 91 Type _type;
el18gs 3:9d811414d35e 92 std::string _name;
el18gs 3:9d811414d35e 93 int _attack;
el18gs 3:9d811414d35e 94 int _defense;
el18gs 3:9d811414d35e 95 int _level;
el18gs 3:9d811414d35e 96 int _xp;
el18gs 3:9d811414d35e 97 int _value;
el18gs 3:9d811414d35e 98 int _hp_max;
el18gs 3:9d811414d35e 99 int _hp;
el18gs 3:9d811414d35e 100 int _uid;
el18gs 3:9d811414d35e 101 static const string _suffix;
el18gs 3:9d811414d35e 102 std::string _root;
el18gs 3:9d811414d35e 103
el18gs 3:9d811414d35e 104 stringvec _names;
el18gs 3:9d811414d35e 105 };
el18gs 3:9d811414d35e 106
el18gs 3:9d811414d35e 107 #endif