Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
75 lines
1.4 KiB
C++
75 lines
1.4 KiB
C++
|
|
#pragma once
|
|
#ifndef AI_MOODS_HPP
|
|
#define AI_MOODS_HPP
|
|
|
|
#include "AI.hpp"
|
|
#pragma warning (push)
|
|
#include <stlport\vector>
|
|
#include <stlport\string>
|
|
#pragma warning (pop)
|
|
|
|
|
|
|
|
namespace MW4AI
|
|
{
|
|
namespace Moods
|
|
{
|
|
enum ID // NOTE: the keywords and constants here must exactly match those in MWCONST.ABI
|
|
{
|
|
DESPERATE_START = 1, // change MOODMIN in Adept\AI.hpp if you change this
|
|
DESPERATE_END = 2,
|
|
DEFENSIVE_START = 3,
|
|
DEFENSIVE_END = 4,
|
|
NEUTRAL_START = 5,
|
|
NEUTRAL_END = 6,
|
|
AGRESSIVE_START = 7,
|
|
AGRESSIVE_END = 8,
|
|
BRUTAL_START = 9,
|
|
BRUTAL_END = 10 // change MOODMAX in Adept\AI.hpp if you change this
|
|
};
|
|
|
|
class Mood
|
|
{
|
|
public:
|
|
virtual std::string GetName() const = 0;
|
|
virtual ~Mood() {};
|
|
};
|
|
|
|
Stuff::Auto_Ptr<Mood> CreateMood(ID mood);
|
|
void VerifyMood(ID mood);
|
|
|
|
#define BEGINDEF_MOOD(classname,stringname) \
|
|
class classname \
|
|
: public Mood \
|
|
{ \
|
|
public: \
|
|
std::string GetName() const { return (stringname); } \
|
|
|
|
#define ENDDEF_MOOD };
|
|
|
|
|
|
BEGINDEF_MOOD(Desperate,"DESPERATE")
|
|
ENDDEF_MOOD
|
|
|
|
BEGINDEF_MOOD(Defensive,"DEFENSIVE")
|
|
ENDDEF_MOOD
|
|
|
|
BEGINDEF_MOOD(Neutral,"NEUTRAL")
|
|
ENDDEF_MOOD
|
|
|
|
BEGINDEF_MOOD(Aggressive,"AGGRESSIVE")
|
|
ENDDEF_MOOD
|
|
|
|
BEGINDEF_MOOD(Brutal,"BRUTAL")
|
|
ENDDEF_MOOD
|
|
|
|
|
|
#undef BEGINDEF_MOOD
|
|
#undef ENDDEF_MOOD
|
|
};
|
|
};
|
|
|
|
|
|
|
|
#endif // AI_MOODS_HPP
|