Skip to content

Commit 7b0c007

Browse files
committed
adjustments #1
1 parent 15ec780 commit 7b0c007

10 files changed

Lines changed: 22 additions & 55 deletions

File tree

MarathonRecomp/api/Marathon.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@
104104
#include "Sonicteam/SoX/Math/Vector.h"
105105
#include "Sonicteam/SoX/MessageReceiver.h"
106106
#include "Sonicteam/SoX/Object.h"
107+
#include "Sonicteam/SoX/LinkNode.h"
107108
#include "Sonicteam/SoX/Physics/Entity.h"
108-
#include "Sonicteam/SoX/Physics/EntityRef.h"
109109
#include "Sonicteam/SoX/Physics/IntersectEvent.h"
110110
#include "Sonicteam/SoX/Physics/IntersectListener.h"
111111
#include "Sonicteam/SoX/Physics/ShapeCastEvent.h"

MarathonRecomp/api/Sonicteam/Player/GroundRayListener.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,18 @@
66
#include <Sonicteam/SoX/Physics/IntersectEvent.h>
77
#include <Sonicteam/SoX/Math/Vector.h>
88
#include <Sonicteam/SoX/Physics/Entity.h>
9-
#include <Sonicteam/SoX/Physics/EntityRef.h>
9+
#include <Sonicteam/SoX/LinkNode.h>
1010

1111
namespace Sonicteam::Player
1212
{
13-
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
1413
class GroundRayListener:public ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener, Sonicteam::SoX::Physics::IntersectEvent>
1514
{
1615
public:
1716
SoX::Math::Vector m_ContactPosition;
1817
SoX::Math::Vector m_ContactNormal;
1918
be<float> m_RayDistance; //not sure
2019
be<uint32_t> m_RayFlag; //not sure
21-
SoX::Physics::EntityRef m_ContactEntity;
20+
SoX::LinkRef<Sonicteam::SoX::Physics::Entity> m_ContactEntity;
2221
MARATHON_INSERT_PADDING(0xC);
2322
};
2423
}

MarathonRecomp/api/Sonicteam/Player/ICollisionListener.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
namespace Sonicteam::Player
77
{
8-
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
98
class ICollisionListener
109
{
1110
public:

MarathonRecomp/api/Sonicteam/Player/ICollisionListenerTemplate.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@
55

66
namespace Sonicteam::Player
77
{
8-
//Sonicteam::Player::ICollisionListener, Sonicteam::Player::ICollisionListenerTemplate<Sonicteam::SoX::Physics::IntersectListener,Sonicteam::SoX::Physics::IntersectEvent>
9-
108
template <typename Cast, typename Event>
11-
class ICollisionListenerTemplate:ICollisionListener,Cast
12-
{
13-
public:
14-
15-
16-
};
9+
class ICollisionListenerTemplate:ICollisionListener,Cast {};
1710
}

MarathonRecomp/api/Sonicteam/Player/IPostureSupportRayTemplate.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#include <Sonicteam/SoX/RefSharedPointer.h>
77
#include <Sonicteam/Player/RootFrame.h>
88

9-
109
namespace Sonicteam::Player
1110
{
1211
template <typename TCollisionListener>

MarathonRecomp/api/Sonicteam/Player/Object.inl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ namespace Sonicteam::Player
88
}
99

1010
template<typename T>
11-
12-
T* Object::GetPlugin(const char* pluginName)
11+
inline T* Object::GetPlugin(const char* pluginName)
1312
{
1413
for (auto& spPlugin : m_vspPlayerPlugins)
1514
{
1615
if (spPlugin->m_Name == pluginName)
1716
return static_cast<T*>(spPlugin.get());
1817
}
18+
return nullptr;
1919
}
2020
}
Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#pragma once
2+
23
#include <Marathon.inl>
34
#include <Sonicteam/Player/IPlugIn.h>
45
#include <Sonicteam/Player/IFlagCommunicator.h>
@@ -7,32 +8,15 @@
78
#include <Sonicteam/Player/IVariable.h>
89
#include <Sonicteam/Player/INotification.h>
910
#include <Sonicteam/SoX/Engine/Task.h>
10-
11-
12-
11+
#include <Sonicteam/SoX/LinkNode.h>
1312

1413
namespace Sonicteam::Player::Weapon
15-
{
16-
template <typename Type>
17-
struct LinkSoxNode
18-
{
19-
xpointer<LinkSoxNode<Type>> m_Prev;
20-
xpointer<LinkSoxNode<Type>> m_Next;
21-
Type* m_This;
22-
};
23-
24-
template <typename Type>
25-
struct EntityContainer
26-
{
27-
xpointer<Type> Entity;
28-
LinkSoxNode<Type> m_Link;
29-
};
30-
14+
{
3115
class SonicWeapons : public IPlugIn, public IFlagCommunicator, public IStepable, public IDynamicLink, public IVariable, public INotification
3216
{
3317
public:
3418
MARATHON_INSERT_PADDING(0x4C);
35-
EntityContainer<Sonicteam::SoX::Engine::Task> m_GunDrive;
19+
SoX::LinkRef<SoX::Engine::Task> m_GunDrive;
3620
MARATHON_INSERT_PADDING(0x24);
3721
};
3822
}

MarathonRecomp/api/Sonicteam/SoX/LinkNode.h

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,23 @@ namespace Sonicteam::SoX
55
template <typename T>
66
class LinkNodeTemplate
77
{
8-
public:
8+
public:
99
xpointer<T> m_pPrev;
1010
xpointer<T> m_pNext;
11-
};
11+
};
1212

1313
template <typename T>
14-
class LinkNode : public LinkNodeTemplate<LinkNode<T>>
14+
class LinkNode : public LinkNodeTemplate<LinkNode<T>>
1515
{
1616
public:
1717
xpointer<LinkNode<T>> m_pThis;
1818
};
19+
20+
template <typename T>
21+
class LinkRef
22+
{
23+
public:
24+
xpointer<T> m_pElement;
25+
SoX::LinkNode<LinkRef> m_lnElement;
26+
};
1927
}

MarathonRecomp/api/Sonicteam/SoX/Physics/EntityRef.h

Lines changed: 0 additions & 15 deletions
This file was deleted.

MarathonRecomp/patches/player_patches.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ void SonicGaugeRestorationGaugeFlagFix(PPCRegister& r_gauge, PPCRegister& r_cont
379379
return;
380380

381381
auto weapons = PContext->m_pScore->m_pPlayer->GetPlugin<Sonicteam::Player::Weapon::SonicWeapons>("sonic_weapons");
382-
if (PContext->m_Tornado != 0 || PContext->m_AnimationID == 0xCB || PContext->m_AnimationID == 0xCC || PContext->m_AnimationID == 0x46 || PContext->m_AnimationID == 0xCE || weapons->m_GunDrive.Entity != 0)
382+
if (PContext->m_Tornado != 0 || PContext->m_AnimationID == 0xCB || PContext->m_AnimationID == 0xCC || PContext->m_AnimationID == 0x46 || PContext->m_AnimationID == 0xCE || weapons->m_GunDrive.m_pElement.get() != nullptr)
383383
{
384384
pGauge->m_GroundedFlags = 1; // Lock gauge
385385
}

0 commit comments

Comments
 (0)