Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Rubberduckycooly
GitHub Repository: Rubberduckycooly/RSDKv5-Decompilation
Path: blob/master/RSDKv5/RSDK/Scene/Legacy/v3/CollisionLegacyv3.hpp
1186 views
1
2
namespace Legacy
3
{
4
5
namespace v3
6
{
7
8
#define COLSTORE_COUNT (2)
9
10
enum CollisionSides {
11
CSIDE_FLOOR = 0,
12
CSIDE_LWALL = 1,
13
CSIDE_RWALL = 2,
14
CSIDE_ROOF = 3,
15
CSIDE_ENTITY = 4, // Introduced in Origins Plus
16
};
17
18
enum CollisionModes {
19
CMODE_FLOOR = 0,
20
CMODE_LWALL = 1,
21
CMODE_ROOF = 2,
22
CMODE_RWALL = 3,
23
};
24
25
enum CollisionSolidity {
26
SOLID_ALL = 0,
27
SOLID_TOP = 1,
28
SOLID_LRB = 2,
29
SOLID_NONE = 3,
30
};
31
32
enum ObjectCollisionTypes {
33
C_TOUCH = 0,
34
C_BOX = 1,
35
C_BOX2 = 2,
36
C_PLATFORM = 3,
37
C_BOX3 = 4, // Introduced in Origins Plus
38
C_ENEMY = 5, // Introduced in Origins Plus
39
};
40
41
struct CollisionSensor {
42
int32 XPos;
43
int32 YPos;
44
int32 angle;
45
bool32 collided;
46
};
47
48
extern int32 collisionLeft;
49
extern int32 collisionTop;
50
extern int32 collisionRight;
51
extern int32 collisionBottom;
52
53
extern CollisionSensor sensors[6];
54
55
// Introduced in Origins Plus
56
struct CollisionStore {
57
int32 entityNo;
58
int8 type;
59
int32 left;
60
int32 right;
61
int32 top;
62
int32 bottom;
63
};
64
extern CollisionStore collisionStorage[2];
65
66
enum EntityCollisionEffects {
67
ECEFFECT_NONE = 0,
68
ECEFFECT_RESETSTORAGE = 1,
69
ECEFFECT_BOXCOL3 = 2,
70
};
71
72
#if !RETRO_USE_ORIGINAL_CODE
73
int32 AddDebugHitbox(uint8 type, Entity *entity, int32 left, int32 top, int32 right, int32 bottom);
74
#endif
75
76
Hitbox *GetPlayerHitbox(Player *player);
77
78
void FindFloorPosition(Player *player, CollisionSensor *sensor, int32 startYPos);
79
void FindLWallPosition(Player *player, CollisionSensor *sensor, int32 startXPos);
80
void FindRoofPosition(Player *player, CollisionSensor *sensor, int32 startYPos);
81
void FindRWallPosition(Player *player, CollisionSensor *sensor, int32 startXPos);
82
void FloorCollision(Player *player, CollisionSensor *sensor);
83
void LWallCollision(Player *player, CollisionSensor *sensor);
84
void RoofCollision(Player *player, CollisionSensor *sensor);
85
void RWallCollision(Player *player, CollisionSensor *sensor);
86
void SetPathGripSensors(Player *player);
87
88
void ProcessPathGrip(Player *player);
89
void ProcessAirCollision(Player *player);
90
91
void ProcessPlayerTileCollisions(Player *player);
92
93
void TouchCollision(int32 left, int32 top, int32 right, int32 bottom);
94
void BoxCollision(int32 left, int32 top, int32 right, int32 bottom); // Standard
95
void BoxCollision2(int32 left, int32 top, int32 right, int32 bottom); // Updated (?)
96
void PlatformCollision(int32 left, int32 top, int32 right, int32 bottom);
97
void BoxCollision3(int32 left, int32 top, int32 right, int32 bottom); // Added in Origins Plus
98
void EnemyCollision(int32 left, int32 top, int32 right, int32 bottom); // Added in Origins Plus
99
100
void ObjectFloorCollision(int32 xOffset, int32 yOffset, int32 cPath);
101
void ObjectLWallCollision(int32 xOffset, int32 yOffset, int32 cPath);
102
void ObjectRoofCollision(int32 xOffset, int32 yOffset, int32 cPath);
103
void ObjectRWallCollision(int32 xOffset, int32 yOffset, int32 cPath);
104
105
void ObjectFloorGrip(int32 xOffset, int32 yOffset, int32 cPath);
106
void ObjectLWallGrip(int32 xOffset, int32 yOffset, int32 cPath);
107
void ObjectRoofGrip(int32 xOffset, int32 yOffset, int32 cPath);
108
void ObjectRWallGrip(int32 xOffset, int32 yOffset, int32 cPath);
109
void ObjectEntityGrip(int32 direction, int32 extendBottomCol, int32 effect); // Added in Origins Plus
110
111
} // namespace v3
112
113
} // namespace Legacy
114