Skip to content

Commit 15ec780

Browse files
committed
EXStuff
1 parent 8b0af47 commit 15ec780

14 files changed

Lines changed: 202 additions & 78 deletions

MarathonRecomp/api/Marathon.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
#include "Sonicteam/Player/RootFrame.h"
6363
#include "Sonicteam/Player/Score.h"
6464
#include "Sonicteam/Player/SonicGauge.h"
65+
#include "Sonicteam/Player/ICollisionListener.h"
66+
#include "Sonicteam/Player/ICollisionListenerTemplate.h"
6567
#include "Sonicteam/Player/State/CommonContext.h"
6668
#include "Sonicteam/Player/State/CommonFall.h"
6769
#include "Sonicteam/Player/State/CommonObject.h"
@@ -82,6 +84,7 @@
8284
#include "Sonicteam/SaveDataTask.h"
8385
#include "Sonicteam/SaveDataTaskXENON.h"
8486
#include "Sonicteam/SelectWindowTask.h"
87+
#include "Sonicteam/SoX/LinkNode.h"
8588
#include "Sonicteam/SoX/AI/StateMachine.h"
8689
#include "Sonicteam/SoX/Audio/IAudioEngine.h"
8790
#include "Sonicteam/SoX/Component.h"
@@ -102,6 +105,11 @@
102105
#include "Sonicteam/SoX/MessageReceiver.h"
103106
#include "Sonicteam/SoX/Object.h"
104107
#include "Sonicteam/SoX/Physics/Entity.h"
108+
#include "Sonicteam/SoX/Physics/EntityRef.h"
109+
#include "Sonicteam/SoX/Physics/IntersectEvent.h"
110+
#include "Sonicteam/SoX/Physics/IntersectListener.h"
111+
#include "Sonicteam/SoX/Physics/ShapeCastEvent.h"
112+
#include "Sonicteam/SoX/Physics/ShapeCastListener.h"
105113
#include "Sonicteam/SoX/Physics/Havok/EntityHavok.h"
106114
#include "Sonicteam/SoX/Physics/Havok/EntityHavokImp.h"
107115
#include "Sonicteam/SoX/Physics/Havok/PhantomHavok.h"
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
#pragma once
22

33
#include <Marathon.inl>
4+
#include <Sonicteam/Player/ICollisionListenerTemplate.h>
5+
#include <Sonicteam/SoX/Physics/IntersectListener.h>
6+
#include <Sonicteam/SoX/Physics/IntersectEvent.h>
7+
#include <Sonicteam/SoX/Math/Vector.h>
8+
#include <Sonicteam/SoX/Physics/Entity.h>
9+
#include <Sonicteam/SoX/Physics/EntityRef.h>
410

511
namespace Sonicteam::Player
612
{
713
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
8-
class GroundRayListener
14+
class GroundRayListener:public ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener, Sonicteam::SoX::Physics::IntersectEvent>
915
{
1016
public:
11-
xpointer<void> m_pVftable;
12-
MARATHON_INSERT_PADDING(0x7C);
17+
SoX::Math::Vector m_ContactPosition;
18+
SoX::Math::Vector m_ContactNormal;
19+
be<float> m_RayDistance; //not sure
20+
be<uint32_t> m_RayFlag; //not sure
21+
SoX::Physics::EntityRef m_ContactEntity;
22+
MARATHON_INSERT_PADDING(0xC);
1323
};
1424
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/SoX/Math/Quaternion.h>
5+
6+
namespace Sonicteam::Player
7+
{
8+
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
9+
class ICollisionListener
10+
{
11+
public:
12+
xpointer<void> m_pVftable;
13+
MARATHON_INSERT_PADDING(0xC);
14+
be<uint32_t> m_Flag1;
15+
be<uint32_t> m_Flag2;
16+
be<uint32_t> m_Flag3;
17+
MARATHON_INSERT_PADDING(0x4);
18+
SoX::Math::Vector m_CollisionNormal;
19+
};
20+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/Player/ICollisionListener.h>
5+
6+
namespace Sonicteam::Player
7+
{
8+
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
9+
10+
template <typename Cast, typename Event>
11+
class ICollisionListenerTemplate:ICollisionListener,Cast
12+
{
13+
public:
14+
15+
16+
};
17+
}

MarathonRecomp/api/Sonicteam/Player/IPostureControl.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include <boost/smart_ptr/shared_ptr.h>
1717
#include <Sonicteam/ActorManager.h>
1818

19-
2019
namespace Sonicteam::Player
2120
{
2221
class IPostureControl : public IVariable, public IDynamicLink, public Unit::ITestCase, public IFlagCommunicator

MarathonRecomp/api/Sonicteam/Player/PostureControl.h

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,30 @@
99
#include <Sonicteam/Player/IPostureSupportRayTemplate.h>
1010
#include <Sonicteam/Player/GroundRayListener.h>
1111

12-
1312
namespace Sonicteam::Player
1413
{
1514
class PostureControl : public IPostureControl, public IPostureSupportSphere, public IPostureSupportOttoto, public IPostureSupportEdge, public IPostureSupportInput, public IPostureSupportRayTemplate<GroundRayListener>
1615
{
1716
public:
1817
//Gordon Ramsay
19-
enum ePostureFlag
18+
enum PostureFlag
2019
{
21-
ePostureFlag_Ground = 0x1, // detects Ground
22-
ePostureFlag_WallBrushing = 0x8, // detects brushing against a wall
23-
ePostureFlag_HeadOnWall = 0x10, // detects head-on wall collision (will always be enabled w/ WallBrushing)
24-
ePostureFlag_RailGrind = 0x40, // Rail grinding
25-
ePostureFlag_BeforeFall = 0x100, // seems like Neutral or Pre-Fall? The moment before transitioning from the Jump to Fall animation
26-
ePostureFlag_Fall = 0x200, // FALL
27-
ePostureFlag_WaterCollision = 0x800, // Water collision (making you slide down an incline)? BeforeFall is often set with this
28-
ePostureFlag_LightDash = 0x4000, // Light Dashing
29-
ePostureFlag_QuickRotate = 0x8000, // is moving the control stick in a non-forward direction (usually only active for a frame since the character instantly rotates)
30-
ePostureFlag_Tentative = 0x10000, // is Tentative collision
31-
ePostureFlag_WaterSlide = 0x20000, // Water sliding
32-
ePostureFlag_Grass = 0x100000, // grass
33-
ePostureFlag_DirtClay = 0x200000, // dirt/clay
34-
ePostureFlag_Stone = 0x400000, // stone
35-
ePostureFlag_Shoreline = 0x1000000 // shoreline? sand? Uncertain
20+
PostureFlag_Ground = 0x1, // detects Ground
21+
PostureFlag_WallBrushing = 0x8, // detects brushing against a wall
22+
PostureFlag_HeadOnWall = 0x10, // detects head-on wall collision (will always be enabled w/ WallBrushing)
23+
PostureFlag_RailGrind = 0x40, // Rail grinding
24+
PostureFlag_BeforeFall = 0x100, // seems like Neutral or Pre-Fall? The moment before transitioning from the Jump to Fall animation
25+
PostureFlag_Fall = 0x200, // FALL
26+
PostureFlag_WaterCollision = 0x800, // Water collision (making you slide down an incline)? BeforeFall is often set with this
27+
PostureFlag_LightDash = 0x4000, // Light Dashing
28+
PostureFlag_QuickRotate = 0x8000, // is moving the control stick in a non-forward direction (usually only active for a frame since the character instantly rotates)
29+
PostureFlag_Tentative = 0x10000, // is Tentative collision
30+
PostureFlag_WaterSlide = 0x20000, // Water sliding
31+
PostureFlag_Grass = 0x100000, // grass
32+
PostureFlag_DirtClay = 0x200000, // dirt/clay
33+
PostureFlag_Stone = 0x400000, // stone
34+
PostureFlag_Shoreline = 0x1000000 // shoreline? sand? Uncertain
3635
};
36+
// 0x314 ... 0x400
3737
};
3838
}

MarathonRecomp/api/Sonicteam/Player/State/SonicContext.h

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,31 @@ namespace Sonicteam::Player::State
1111
{
1212
public:
1313
//Sprite
14-
enum GemsS:uint32_t
14+
enum GemSprite:uint32_t
1515
{
16-
SGreen = 1,
17-
SRed,
18-
SBlue,
19-
SWhite,
20-
SSky,
21-
SYellow,
22-
SPurple,
23-
SSuper
16+
GemSprite_Green = 1,
17+
GemSprite_Red,
18+
GemSprite_Blue,
19+
GemSprite_White,
20+
GemSprite_Sky,
21+
GemSprite_Yellow,
22+
GemSprite_Purple,
23+
GemSprite_Super
2424
};
2525

26-
enum Gems:uint32_t
26+
enum Gem:uint32_t
2727
{
28-
Blue = 1,
29-
Red,
30-
Green,
31-
Purple,
32-
Sky,
33-
White,
34-
Yellow,
35-
Super
28+
Gem_Blue = 1,
29+
Gem_Red,
30+
Gem_Green,
31+
Gem_Purple,
32+
Gem_Sky,
33+
Gem_White,
34+
Gem_Yellow,
35+
Gem_Super
3636
};
3737

38-
be<GemsS> m_CurrentGemSprite;
38+
be<GemSprite> m_CurrentGemSprite;
3939
boost::shared_ptr<Sonicteam::Player::SonicGauge> m_Gauge;
4040
uint8_t m_HomingLockOn;
4141
uint8_t m_DisablePlayerMovement;
@@ -54,7 +54,7 @@ namespace Sonicteam::Player::State
5454
uint8_t m_24A;
5555
uint8_t m_24B;
5656
be<uint32_t> m_HomingFlip;
57-
be<Gems> m_CurrentGem;
57+
be<Gem> m_CurrentGem;
5858
MARATHON_INSERT_PADDING(0x58);
5959
};
6060
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
namespace Sonicteam::SoX
4+
{
5+
template <typename T>
6+
class LinkNodeTemplate
7+
{
8+
public:
9+
xpointer<T> m_pPrev;
10+
xpointer<T> m_pNext;
11+
};
12+
13+
template <typename T>
14+
class LinkNode : public LinkNodeTemplate<LinkNode<T>>
15+
{
16+
public:
17+
xpointer<LinkNode<T>> m_pThis;
18+
};
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/SoX/Physics/Entity.h>
5+
#include <Sonicteam/SoX/LinkNode.h>
6+
7+
namespace Sonicteam::SoX::Physics
8+
{
9+
struct EntityRef
10+
{
11+
public:
12+
xpointer<Entity> m_pEntity;
13+
Sonicteam::SoX::LinkNode<Entity> m_lnEntity;
14+
};
15+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/SoX/RefCountObject.h>
5+
6+
namespace Sonicteam::SoX::Physics
7+
{
8+
class IntersectEvent {};
9+
}

0 commit comments

Comments
 (0)