Please do a quick check on my coding
Activity.h
#include <string>
class Idle;
class Objects;
class Goods;
class Activity
{
public:
Objects *Actor;
Goods *Target;
Activity() : Actor(0), Target(0) { }
Activity( Objects* actor, Goods* target )
{
Actor = actor;
Target = target;
}
virtual bool OnUpdate(float seconds) = 0;
void Update(float seconds);
Activity *FindBestActivity(Objects *actor);
std::string ToString();
};
Idle.h
#include "Activity.h"
#define MAX_IDLE_TIME 8
#define ACTIVITY_IDLE_ENERGY 1.0
class Objects;
class Activity;
class Idle : public Activity
{
private:
float mTimeInIdle;
public:
Idle() : mTimeInIdle(0) { }
Idle(Objects *actor, Goods *target);
bool OnUpdate(float seconds);
};
idle.cpp
#include "Idle.h"
Idle::Idle(Objects* actor, Goods *target) : Activity(actor, target)
{
}
bool Idle::OnUpdate(float seconds)
{
mTimeInIdle += seconds;
if (mTimeInIdle >= MAX_IDLE_TIME)
{
Actor->activity = FindBestActivity(Actor);
}
Actor->energy += ACTIVITY_IDLE_ENERGY * seconds;
return false;
}
Error 1 error C2027: use of undefined type 'Objects' D:\Jacky\Documents\Visual Studio 2010\Projects\PerfectSim\PerfectSim\PerfectSim\Activities\Idle.cpp 16 1 PerfectSim
Error 3 error C2027: use of undefined type 'Objects' D:\Jacky\Documents\Visual Studio 2010\Projects\PerfectSim\PerfectSim\PerfectSim\Activities\Idle.cpp 20 1 PerfectSim
Error 2 error C2227: left of '->activity' must point to class/struct/union/generic type D:\Jacky\Documents\Visual Studio 2010\Projects\PerfectSim\PerfectSim\PerfectSim\Activities\Idle.cpp 16 1 PerfectSim
Error 4 error C2227: left of '->energy' must point to class/struct/union/generic type D:\Jacky\Documents\Visual Studio 2010\Projects\PerfectSim\PerfectSim\PerfectSim\Activities\Idle.cpp 20 1 PerfectSim
I've moved everything into implementation file. Here now are what I've got.
Thanks