Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

139 lines
2.3 KiB
C++

#ifndef __AISTATEHPP__
#define __AISTATEHPP__
#include <windows.h>
#include "ai event.hpp"
enum STATETYPE {MOVE_STATE,SLEEP_STATE,GUARD_STATE,WANDER_STATE,EAT_STATE,PLAY_STATE,READ_STATE,
WAIT_STATE,TALK_STATE,SELL_STATE,BUY_STATE,ATTACK_STATE,DANCE_STATE,TAICHI_STATE,
FIGHT_STATE,WORK_STATE,PROTECT_STATE};
#define LASTMOVESIZE 10
typedef struct {
double destX;
double destY;
double speed;
} MoveStateData;
typedef struct {
bool snore;
} SleepStateData;
typedef struct {
bool burp;
} EatStateData;
typedef struct {
double guardPointX[2];
double guardPointY[2];
double speed;
int militancy;
double lookX;
double lookY;
} GuardStateData;
typedef struct {
double left;
double top;
double right;
double bottom;
double speed;
} WanderStateData;
typedef struct {
double left;
double top;
double right;
double bottom;
} PlayStateData;
typedef struct {
UINT readWhat;
} ReadStateData;
typedef struct {
UINT action;
} WaitStateData;
typedef struct {
UINT with;
} TalkStateData;
typedef struct {
UINT what;
} SellStateData;
typedef struct {
UINT what;
} BuyStateData;
typedef struct {
UINT how;
} AttackStateData;
typedef struct {
UINT form;
UINT with;
} DanceStateData;
typedef struct {
UINT form;
UINT with;
} TaichiStateData;
typedef struct {
UINT form;
UINT with;
} FightStateData;
typedef struct {
UINT job;
} WorkStateData;
typedef struct {
UINT job;
} ProtectStateData;
typedef union {
MoveStateData moveData;
SleepStateData sleepData;
GuardStateData guardData;
WanderStateData wanderData;
EatStateData eatData;
PlayStateData playData;
ReadStateData readData;
WaitStateData waitData;
TalkStateData talkData;
SellStateData sellData;
BuyStateData buyData;
AttackStateData attackData;
DanceStateData danceData;
TaichiStateData taichiData;
FightStateData fightData;
WorkStateData workData;
ProtectStateData protectData;
} StateDataUnion;
typedef struct StateEntry{
int stateID;
STATETYPE stateType;
StateDataUnion stateData;
EventEntry *events;
StateEntry *next,*prev;
} StateEntry;
class AIStateTable
{
friend class AI;
private:
StateEntry *m_Root;
StateEntry *m_CurrentState;
public:
AIStateTable (void);
~AIStateTable (void);
};
#endif