/**
* @class MyPlayer
* @author Brad Ottoson
* 
* This is a random fake class used to demonstrate features of the XML Code Template Engine
*/

#ifndef _MyPlayer_H
#define _MyPlayer_H

#include 
#include 

#define ARRAYSZ_NOSTRILSIZE 2
#define ARRAYSZ_EYEBALLRADIUS 2

class MyPlayer : public BiPed
{
    public:
        MyPlayer();
        MyPlayer(const MyPlayer& srcMyPlayer);
        const MyPlayer& operator=(const MyPlayer& srcMyPlayer);

        void write(UGStreamWriter* ugsw);
        void read(UGStreamReader* ugsr);

#ifdef _LOG_IT
        void logIt(std::ostream &outStr, std::string indent, bool logChildren = false) const;
#else
        void logIt(std::ostream &outStr, std::string indent, bool logChildren = false) const{;};
#endif
        bool weeeHoo(const std::string name, const short& countSomething, const unsigned char anArray[]) const;
        virtual void eatFood(short type, const short& howMuch, unsigned char howFast);
        static short drinkStuff(short type, const short& howMuch);
        void sleep();

    // -- Variables --
        /* Bunch of player characteristics */
        std::string name;	/** This is the name of the player */
        char jobCode;
        bool likesNutsInBannanaBread;	/** People that like nuts in bananna bread are evil! */

        /* Measurements */
        int nostrilSize[ARRAYSZ_NOSTRILSIZE];
        int eyeballRadius[ARRAYSZ_EYEBALLRADIUS];
        int eyebrowDensity;
        int height;

        /* Weapon proficiencies */
        char coconutLobbing;	/** How proficient player is at lobbing coconuts */
        char squirrelLobbing;	/** How proficient player is at lobbing squirrels */
        char horseShoeLobbing;	/** How proficient player is at lobbing horse shoes */

        /* Player count */
        static int playerCount;	/** Count of total players */
};

#endif