Я попытался скомпилировать свою программу с помощью Code :: Blocks (компилятор gcc). И я получаю сообщение об ошибке: Вот исходный файл, на который он жалуется:
#ifndef BOT_H
#define BOT_H
#include "player.h"
#include "timer.h"
class BOTS; // forward decalaration of BOTS
class BOT : public PLAYER
{
public:
enum BotStatus{BotMoving,BotPursue,BotChasePowerup};
enum BotMovDir{Up,Down,Left,Right,Forward,Backward};
enum BotSkill{Easy,Normal,Hard,Expert,Insane};
protected:
BotStatus Status; // this is the line it complaining about
BotMovDir CurrentMov;
TIMER CTimer;
bool Stucked;
BotSkill Skill;
VECTOR3D AimTarget;
// VECTOR3D ShotTarget;
PLAYER *PursueObj;
bool SameLevel;
BOTS *Owner;
bool PlayerHitMe;
void OnDamage(double dmg,const wchar_t *Shooter,bool s);
void OnReset();
public:
BOT(BOTS *o,const wchar_t *botname) : PLAYER(botname), PlayerHitMe(false), Status(BotMoving), Skill(Easy), Owner(o)
{
PlayerInit();
}
void SetSkill(BotSkill bs) {Skill=bs;}
void BotControl();
void SetSameLevel(bool s) {SameLevel=s;}
virtual ~BOT() {}
};
#endif
Он жалуется на 16-ю строку "несколько типов в одной декларации", и это сводит меня с ума. Я много гуглил, но общее решение - найти пропущенную точку с запятой. И проблема в том, что здесь нет пропущенной точки с запятой. Он всегда указывает на 16-ю строку (по крайней мере, после защищенной), даже если есть комментарий или даже он находится за пределами eof (когда я удаляю все поля, чтобы файл становился маленьким).
(Эта проблема может быть тривиальной, и я, возможно, уже устала, поэтому мне нужно поспать. И я надеюсь, что кто-нибудь даст мне какой-нибудь совет завтра утром.)