-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProp.h
94 lines (71 loc) · 1.28 KB
/
Prop.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
#pragma once
#include "ModuleInput.h"
#include "ModuleRender.h"
class ModuleScene;
enum class PropType
{
FLIPPER_LEFT, FLIPPER_RIGHT, SPRING, BALL,
BUMPERTOP, BUMPERRIGHT, BUMPERLEFT, SEEDOT_BUTTON,
ZIGZAGOON_BUTTON, MINUN_BUTTON, PLUSLE_BUTTON,
PELIPPER_BUTTON, TROUGH, SENSOR_EVO_BOT,
SENSOR_EVO_TOP, SENSOR_GET_BOT, SENSOR_GET_TOP,
SENSOR_H, SENSOR_O, SENSOR_L, SENSOR_E,
SENSOR_UP_LEFT, SENSOR_UP_MID, SENSOR_UP_RIGHT,
SENSOR_COINS, SENSOR_MOUNTAIN, SENSOR_SPRING_IN,
SENSOR_TOP_RAIL, SENSOR_LAKE_RAIL, SLINGSHOT_RIGHT,
SLINGSHOT_LEFT, WAILMER, PIKACHU,
UNKNOWN
};
class Prop
{
public:
Prop(PropType type) : type(type), active(true) {}
virtual bool Awake()
{
return true;
}
virtual bool Start()
{
return true;
}
virtual void PlaySFX() {
}
virtual bool Update()
{
return true;
}
virtual bool PostUpdate()
{
return true;
}
virtual void BlitByLayer(int layer) {
}
virtual bool CleanUp()
{
return true;
}
void Prop::Enable()
{
if (!active)
{
active = true;
Start();
}
}
void Prop::Disable()
{
if (active)
{
active = false;
CleanUp();
}
}
virtual void OnCollision(PhysBody* otherBody) {
};
virtual void EndCollision(PhysBody* otherBody) {
};
public:
bool active = true;
bool renderable = true;
PropType type;
};