-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathai.h
162 lines (129 loc) · 2.86 KB
/
ai.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#pragma once
#ifndef AI_H
#define AI_H
#include "export.h"
#include "main.h"
#include "vector.h"
#include "baddy.h"
#include "mem.h"
#include "stateflags.h"
struct SMoveToInfo
{
CVector field_0;
int field_C;
int field_10;
int field_14;
};
enum AIProcType
{
UNK_257 = 257,
UNK_258 = 258,
LOOKAT_TWO = 259,
UNK_260 = 260,
PROC_FALL_TYPE = 770,
STATE_SWITCH_SEND_MESSAGE = 0x60601,
MONITOR_ATTACK = 1281,
ACCZ = 1025,
MOVE_TO = 1794,
};
class CAIProc : public CClass
{
public:
EXPORT virtual ~CAIProc(void);
EXPORT int Wait(void);
EXPORT void AttachProc(AIProcType, CBaddy*, int);
EXPORT virtual void Execute(void) = 0;
CBaddy* pBaddy;
AIProcType mAIProcType;
int field_C;
int field_10;
int field_14;
CAIProc* field_18;
CAIProc* mNext;
};
class CAIProc_LookAt : public CAIProc
{
public:
EXPORT CAIProc_LookAt(CBaddy*, CBody*, CVector *, int, int, int);
EXPORT CAIProc_LookAt(CBaddy*, int, int, int, int);
EXPORT void SetUpVariables(int, int);
EXPORT virtual ~CAIProc_LookAt(void);
EXPORT virtual void Execute(void);
int field_20;
SHandle field_24;
CVector field_2C;
int field_38;
int field_3C;
};
class CAIProc_RotY : public CAIProc
{
public:
EXPORT CAIProc_RotY(CBaddy*, int, int ,int);
EXPORT virtual ~CAIProc_RotY(void);
// @TODO
// this doesn't exist, i'm confused
void Execute(void)
{
}
int field_20;
int field_24;
};
class CAIProc_Fall : public CAIProc
{
public:
EXPORT CAIProc_Fall(CBaddy *, int);
EXPORT virtual ~CAIProc_Fall(void);
EXPORT virtual void Execute(void);
};
class CAIProc_StateSwitchSendMessage : public CAIProc
{
public:
EXPORT CAIProc_StateSwitchSendMessage(CBaddy *, int);
EXPORT virtual ~CAIProc_StateSwitchSendMessage(void);
EXPORT void Execute(void);
SStateFlags mFlags;
int field_24;
};
class CAIProc_MonitorAttack : public CAIProc
{
public:
EXPORT CAIProc_MonitorAttack(CBaddy*, int, int, int, int);
EXPORT virtual ~CAIProc_MonitorAttack(void);
EXPORT void Execute(void);
int field_20;
int field_24;
int field_28;
int field_2C;
CVector *field_30;
int field_34;
};
class CAIProc_AccZ : public CAIProc
{
public:
EXPORT CAIProc_AccZ(CBaddy*, int, int, int);
EXPORT virtual ~CAIProc_AccZ(void);
EXPORT virtual void Execute(void);
int field_20;
int field_24;
};
class CAIProc_MoveTo : public CAIProc
{
public:
EXPORT CAIProc_MoveTo(CBaddy*, SMoveToInfo*, int);
EXPORT virtual ~CAIProc_MoveTo(void);
EXPORT virtual void Execute(void);
CVector field_20;
int field_2C;
CVector field_30;
int field_3C;
};
void validate_CAIProc(void);
void validate_CAIProc_LookAt(void);
void validate_CAIProc_RotY(void);
void validate_CAIProc_Fall(void);
void validate_CAIProc_StateSwitchSendMessage(void);
void validate_CAIProc_MonitorAttack(void);
void validate_CAIProc_AccZ(void);
void validate_SMoveToInfo(void);
void validate_CAIProc_MoveTo(void);
#endif