-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcop.h
123 lines (95 loc) · 2.72 KB
/
cop.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
#pragma once
#ifndef COP_H
#define COP_H
#include "export.h"
#include "baddy.h"
#include "mem.h"
#include "m3dutils.h"
#include "weapons.h"
#include "message.h"
#include "bit2.h"
class CCop : public CBaddy {
public:
EXPORT CCop(int*, int);
EXPORT virtual ~CCop(void);
EXPORT void ClearAttackFlags(void);
EXPORT void LookForPlayer(void);
EXPORT i32 GetLaunched(CVector*, i32, i32, i32);
EXPORT i32 SpideyAnimUppercut(void);
EXPORT void HelpOutBuddy(CMessage *);
EXPORT void RunToWhereTheActionIs(CVector*);
EXPORT void SetAttacker(void);
EXPORT void PlayHitWallSound(void);
EXPORT void StandStill(void);
EXPORT void DieAfterFlyingAcrossRoom(void);
EXPORT void StopShooting(void);
EXPORT void WarnOtherCops(void);
EXPORT i32 TryAddingCollidePointToPath(CVector *);
EXPORT void GetAttackPosition(CVector*);
EXPORT i32 DrawBarrelFlash(CVector*, CVector *, SLineInfo *, u8, u8, u8);
EXPORT i32 SetUpLaser(CGPolyLine**, CVector*, CVector*);
EXPORT void CheckToShoot(i32, i32);
EXPORT void Acknowledge(void);
EXPORT i32 WallHitCheck(CVector*, CVector*, i32);
EXPORT virtual void CreateCombatImpactEffect(CVector*, i32);
EXPORT virtual u8 TugImpulse(CVector*, CVector*, CVector*);
EXPORT virtual void Victorious(void);
EXPORT virtual void SetParamByIndex(i32, i32);
EXPORT virtual u8 Grab(CVector*);
i32 field_324;
u8 padAfter324[0x340-0x324-4];
i32 field_340;
u8 padAfter340[0xC-4];
SHandle field_34C;
u8 padAfter34C[0x360-0x34C-sizeof(SHandle)];
i32 field_360;
i32 field_364;
i32 field_368;
i32 field_36C;
i32 field_370;
i32 field_374;
u8 padAfter374[0x37C - 0x374 - 4];
i32 field_37C;
// @FIXME - find type
CGPolyLine* field_380;
CVector* field_384;
u8 padAfter384[0x390 - 0x384 - 4];
u8 field_390;
u8 field_391;
u8 endPad[0x394 - 0x391 - 1];
};
class CCopPing : public CSimpleAnim
{
public:
EXPORT CCopPing(CSuper*, SHook*);
EXPORT virtual ~CCopPing(void);
EXPORT void Move(void);
EXPORT void SetPosition(void);
unsigned char padTop[8];
SHandle field_70;
SHook field_78;
};
class CCopBulletTracer : public CNonRenderedBit
{
public:
EXPORT CCopBulletTracer(CVector*, CVector*, CSuper*, SLineInfo*, u8, u8, u8);
EXPORT virtual ~CCopBulletTracer(void);
EXPORT void SetWidth(void);
EXPORT virtual void Move(void) OVERRIDE;
CGouraudRibbon *mpRibbon;
CGouraudRibbon *mpRibbon2;
u32 mMaxWidth;
};
class CCopLaserPing : public CQuadBit
{
public:
EXPORT CCopLaserPing(CVector*, CVector*, CVector*, u8, u8, u8);
EXPORT virtual ~CCopLaserPing(void);
u8 padBottom[0x28];
};
void validate_CCop(void);
void validate_CCopPing(void);
void validate_CCopBulletTracer(void);
void validate_CCopLaserPing(void);
EXPORT void Cop_CreateCop(const unsigned int *stack, unsigned int *result);
#endif