Skip to content

Commit 14ae866

Browse files
committed
Clean-up and fixed 60fps not spawning in weapons
1 parent 1701874 commit 14ae866

16 files changed

Lines changed: 117 additions & 84 deletions

File tree

MarathonRecomp/api/Sonicteam/NamedActor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include <Marathon.inl>
44
#include <Sonicteam/Actor.h>
5-
#include <api/stdx/string.h>
5+
#include <stdx/string.h>
66

77
namespace Sonicteam
88
{

MarathonRecomp/api/Sonicteam/NamedTask.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#include <Marathon.inl>
44
#include <Sonicteam/SoX/Engine/Task.h>
5-
#include <api/stdx/string.h>
5+
#include <stdx/string.h>
66

77
namespace Sonicteam
88
{

MarathonRecomp/api/Sonicteam/SoX/Engine/Doc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <Marathon.inl>
44
#include <Sonicteam/SoX/Engine/DocMode.h>
5+
#include <Sonicteam/SoX/Engine/Task.h>
56

67
namespace Sonicteam::SoX::Engine
78
{

MarathonRecomp/api/Sonicteam/SoX/Engine/Task.h

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,41 @@
22

33
#include <Marathon.inl>
44
#include <Sonicteam/SoX/Component.h>
5-
#include <Sonicteam/SoX/MessageReceiver.h>
65
#include <Sonicteam/SoX/LinkNode.h>
6+
#include <Sonicteam/SoX/MessageReceiver.h>
77

88
namespace Sonicteam::SoX::Engine
99
{
1010
class Doc;
11+
1112
class Task : public Component, public MessageReceiver
1213
{
1314
public:
14-
be<uint32_t> m_flags; //used to store last pointer for itterate, sometimes
15-
be<uint32_t> m_timestamp; //not always
16-
xpointer<Task> m_pSiblingPrev;
17-
xpointer<Task> m_pSiblingNext;
15+
be<uint32_t> m_Flags;
16+
be<uint32_t> m_Timestamp;
17+
xpointer<Task> m_pPrevSibling;
18+
xpointer<Task> m_pNextSibling;
1819
xpointer<Task> m_pDependency;
19-
xpointer<Task> m_pDependents;
20-
xpointer<Sonicteam::SoX::Engine::Doc> m_pDoc;
21-
SoX::LinkNode<Task> m_lnTask;
20+
xpointer<Task> m_pDependencies;
21+
xpointer<Doc> m_pDoc;
22+
LinkNode<Task> m_lnTask;
2223

23-
Task* GetFirstDependent() const
24+
Task* GetFirstDependency() const
2425
{
25-
if (!m_pDependents) return nullptr;
26+
if (!m_pDependencies)
27+
return nullptr;
2628

27-
Task* current = m_pDependents.get();
28-
while (current->m_pSiblingPrev && current->m_pSiblingPrev != m_pDependents.get()) {
29-
current = current->m_pSiblingPrev.get();
30-
}
31-
return current;
32-
}
29+
auto pCurrent = m_pDependencies.get();
3330

34-
Task* GetLastDependent() const {
35-
return m_pDependents.get();
31+
while (pCurrent->m_pPrevSibling && pCurrent->m_pPrevSibling != m_pDependencies.get())
32+
pCurrent = pCurrent->m_pPrevSibling.get();
33+
34+
return pCurrent;
3635
}
3736

37+
Task* GetLastDependency() const
38+
{
39+
return m_pDependencies.get();
40+
}
3841
};
3942
}

MarathonRecomp/api/Sonicteam/SoX/LinkNode.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@
33
namespace Sonicteam::SoX
44
{
55
template <typename T>
6-
class LinkNodeTemplate
6+
class ILinkNode
77
{
88
public:
99
xpointer<T> m_pPrev;
1010
xpointer<T> m_pNext;
1111
};
1212

1313
template <typename T>
14-
class LinkNode : public LinkNodeTemplate<LinkNode<T>>
14+
class LinkNode : public ILinkNode<LinkNode<T>>
1515
{
1616
public:
17-
xpointer<LinkNode<T>> m_pThis;
17+
xpointer<T> m_pThis;
1818
};
1919

2020
template <typename T>
2121
class LinkRef
2222
{
2323
public:
2424
xpointer<T> m_pElement;
25-
SoX::LinkNode<LinkRef> m_lnElement;
25+
LinkNode<LinkRef> m_lnElement;
2626
};
27-
}
27+
}
Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
#pragma once
22

3+
#include <Marathon.inl>
4+
35
namespace Sonicteam::SoX
46
{
57
class Object
68
{
79
public:
8-
xpointer<void> m_pVftable;
10+
struct Vftable
11+
{
12+
be<uint32_t> fpGetName;
13+
};
14+
15+
xpointer<Vftable> m_pVftable;
16+
17+
const char* GetName() const
18+
{
19+
return GuestToHostFunction<const char*>(m_pVftable->fpGetName.get());
20+
}
921
};
1022
}

MarathonRecomp/api/Sonicteam/SoX/Physics/Havok/WorldHavok.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#pragma once
22

33
#include <Marathon.inl>
4-
#include <Sonicteam/SoX/Physics/World.h>
54
#include <hk330/hkpWorld.h>
5+
#include <Sonicteam/SoX/Physics/World.h>
66

77
namespace Sonicteam::SoX::Physics::Havok
88
{

MarathonRecomp/api/hk330/hkpCollidableCollidableFilter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ namespace hk330
99
public:
1010
struct Vftable
1111
{
12-
be<uint32_t> ctor;
13-
be<uint32_t> isCollisionEnabled; //(a,b)
12+
be<uint32_t> fpCtor;
13+
be<uint32_t> fpIsCollisionEnabled;
1414
};
1515

1616
xpointer<Vftable> m_pVftable;
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
#pragma once
22

33
#include <Marathon.inl>
4-
#include <hk330/hkReferencedObject.h>
5-
#include <Sonicteam/SoX/Math/Vector.h>
6-
#include <hk330/hkpRigidBody.h>
74
#include <hk330/hkArray.h>
85
#include <hk330/hkpCollidableCollidableFilter.h>
96
#include <hk330/hkpRayCollidableFilter.h>
10-
#include <hk330/hkpShapeCollectionFilter.h>
117
#include <hk330/hkpRayShapeCollectionFilter.h>
8+
#include <hk330/hkpRigidBody.h>
9+
#include <hk330/hkpShapeCollectionFilter.h>
10+
#include <hk330/hkReferencedObject.h>
11+
#include <Sonicteam/SoX/Math/Vector.h>
1212

1313
namespace hk330
1414
{
1515
class hkpCollisionFilter : public hkReferencedObject, public hkpCollidableCollidableFilter, public hkpShapeCollectionFilter, public hkpRayShapeCollectionFilter, public hkpRayCollidableFilter
1616
{
1717
public:
1818
be<uint32_t> m_FilterType;
19-
MARATHON_INSERT_PADDING(0xC);
19+
MARATHON_INSERT_PADDING(0x0C);
2020
};
2121
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#pragma once
22

3-
#include <hk330/hkpWorldObject.h>
43
#include <hk330/hkArray.h>
4+
#include <hk330/hkpWorldObject.h>
55

66
namespace hk330
77
{
88
class hkpPhantom : public hkpWorldObject
99
{
1010
public:
11-
hkArray<void*> m_overlapListeners;
12-
hkArray<void*> m_phantomListeners;
11+
hkArray<xpointer<void>> m_overlapListeners;
12+
hkArray<xpointer<void>> m_phantomListeners;
1313
};
1414
}

0 commit comments

Comments
 (0)