ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18gs

Dependencies:   mbed

Inventory/Ghost/Ghost.h

Committer:
el18gs
Date:
2020-05-11
Revision:
3:9d811414d35e
Child:
4:2e8d7c6d2953

File content as of revision 3:9d811414d35e:

/**
 * @file Ghost.h
 * @brief revision 0.9
 * @brief Library for generating and saving .ghost files for the game. Some of 
 * the files need to be imported from the SD others are generated. 
 * @author George Sykes [el18gs]
 * @date 11 May 2020

@code
* sample.ghost file
1.ghost:
/Type
Basic
/Name
Casper
/Attack
10
/Defense
10
/Level
1
/XP
0
/Value
10
/HP_max
10
/HP
10
/UID
1
@endcode
*/

#ifndef GHOST_H
#define GHOST_H

#include "SDFileSystem.h"
#include <string>
#include <vector>
#include <iostream>

//const string Ghost::suffix = ".ghost";

typedef std::vector<std::string> stringvec;

// Connections to SD card holder on K64F (SPI interface)
//SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS

enum Type {
    BASIC,
    ECTO,
    POLTER,
    ORB,
    FUNNEL
};

class Ghost
{
public:

    Ghost(const std::string path, const std::string root);
    Ghost(int type, int nameNumber, const std::string root);

    void listdir(std::string path);
    void save(void);
    int sell(void);
    void feed(int ammount);

    void print_all(void);
    Type get_type_enum(void);
    std::string get_type_string(void);
    std::string get_name(void);
    int get_attack(void);
    int get_defense(void);
    int get_level(void);
    int get_xp(void);
    int get_value(void);
    int get_hp_max(void);
    int get_hp(void);
    int get_uid(void);

private:
    int gen_uid(void);
    bool hasEnding (std::string const &fullString, std::string const &ending);

    std::string type_to_string(Type type);
    Type string_to_type(std::string type);
    void delete_file(const char filename[]);

    Type _type;
    std::string _name;
    int _attack;
    int _defense;
    int _level;
    int _xp;
    int _value;
    int _hp_max;
    int _hp;
    int _uid;
    static const string _suffix;
    std::string _root;

    stringvec _names;
};

#endif