Skip to content

Commit defbc51

Browse files
ReimousTHReimousTHhyperbx
authored
Fix Shadow Bike Projectile for HFR (#157)
* Clean-up (#164) * API: vehicle research * Api #2 * BulletCollisionFix * Clean-up and fixed 60fps not spawning in weapons --------- Co-authored-by: ReimousTH <reimousth@gmail.com> Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
1 parent 60b6ecc commit defbc51

28 files changed

Lines changed: 494 additions & 10 deletions

MarathonRecomp/api/Marathon.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
#include "Sonicteam/CsdResource.h"
3131
#include "Sonicteam/DocMarathonImp.h"
3232
#include "Sonicteam/DocMarathonState.h"
33+
#include "Sonicteam/Enemy/EnemyShot.h"
34+
#include "Sonicteam/Enemy/EnemyShotNormal.h"
35+
#include "Sonicteam/Enemy/EnemyShotPoint.h"
3336
#include "Sonicteam/GameImp.h"
3437
#include "Sonicteam/GameMode.h"
3538
#include "Sonicteam/Globals.h"
@@ -59,7 +62,11 @@
5962
#include "Sonicteam/MyPhantom.h"
6063
#include "Sonicteam/MyTexture.h"
6164
#include "Sonicteam/MyTransforms.h"
65+
#include "Sonicteam/NamedActor.h"
66+
#include "Sonicteam/NamedTask.h"
6267
#include "Sonicteam/NoSyncThread.h"
68+
#include "Sonicteam/ObjectVehicle.h"
69+
#include "Sonicteam/ObjectVehicleBike.h"
6370
#include "Sonicteam/Player/IDynamicLink.h"
6471
#include "Sonicteam/Player/IExportExternalFlag.h"
6572
#include "Sonicteam/Player/IExportPostureRequestFlag.h"
@@ -115,6 +122,7 @@
115122
#include "Sonicteam/SoX/IResource2.h"
116123
#include "Sonicteam/SoX/IResourceMgr.h"
117124
#include "Sonicteam/SoX/Input/Manager.h"
125+
#include "Sonicteam/SoX/LinkNode.h"
118126
#include "Sonicteam/SoX/Math/Matrix.h"
119127
#include "Sonicteam/SoX/Math/Quaternion.h"
120128
#include "Sonicteam/SoX/Math/Vector.h"
@@ -149,18 +157,27 @@
149157
#include "Sonicteam/TextFontPicture.h"
150158
#include "Sonicteam/TextFontPictureMgr.h"
151159
#include "Sonicteam/TitleTask.h"
160+
#include "Sonicteam/VehicleMissileCtrl.h"
161+
#include "Sonicteam/VehicleMissileCtrlAutomatic.h"
162+
#include "Sonicteam/VehicleMissileCtrlSingle.h"
152163
#include "boost/smart_ptr/make_shared_object.h"
153164
#include "boost/smart_ptr/shared_ptr.h"
154165
#include "hk330/hkArray.h"
155166
#include "hk330/hkReferencedObject.h"
156167
#include "hk330/hkpBroadPhaseHandle.h"
157168
#include "hk330/hkpCdBody.h"
158169
#include "hk330/hkpCollidable.h"
170+
#include "hk330/hkpCollidableCollidableFilter.h"
171+
#include "hk330/hkpCollisionFilter.h"
159172
#include "hk330/hkpEntity.h"
160173
#include "hk330/hkpLinkedCollidable.h"
174+
#include "hk330/hkpPhantom.h"
161175
#include "hk330/hkpProperty.h"
176+
#include "hk330/hkpRayCollidableFilter.h"
177+
#include "hk330/hkpRayShapeCollectionFilter.h"
162178
#include "hk330/hkpRigidBody.h"
163179
#include "hk330/hkpShape.h"
180+
#include "hk330/hkpShapeCollectionFilter.h"
164181
#include "hk330/hkpTypedBroadPhaseHandle.h"
165182
#include "hk330/hkpWorld.h"
166183
#include "hk330/hkpWorldObject.h"
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
5+
namespace Sonicteam::Enemy
6+
{
7+
class EnemyShot : public SoX::Engine::Task
8+
{
9+
public:
10+
MARATHON_INSERT_PADDING(0x1C);
11+
};
12+
}
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/Enemy/EnemyShotPoint.h>
5+
6+
namespace Sonicteam::Enemy
7+
{
8+
class EnemyShotNormal : public EnemyShotPoint {};
9+
}
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/MyPhantom.h>
5+
#include <Sonicteam/SoX/RefCountObject.h>
6+
#include <Sonicteam/SoX/RefSharedPointer.h>
7+
8+
namespace Sonicteam::Enemy
9+
{
10+
class EnemyShotPoint : public EnemyShot
11+
{
12+
public:
13+
MARATHON_INSERT_PADDING(0x20);
14+
SoX::RefSharedPointer<MyPhantom> m_spPhantom;
15+
MARATHON_INSERT_PADDING(0xD4);
16+
};
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/Actor.h>
5+
#include <stdx/string.h>
6+
7+
namespace Sonicteam
8+
{
9+
class NamedActor : public Actor
10+
{
11+
public:
12+
stdx::string m_Name;
13+
};
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/SoX/Engine/Task.h>
5+
#include <stdx/string.h>
6+
7+
namespace Sonicteam
8+
{
9+
class NamedTask : public SoX::Engine::Task
10+
{
11+
public:
12+
stdx::string m_Name;
13+
};
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
5+
namespace Sonicteam
6+
{
7+
class ObjectVehicle : public Actor
8+
{
9+
public:
10+
MARATHON_INSERT_PADDING(0x180);
11+
};
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/VehicleMissileCtrlAutomatic.h>
5+
6+
namespace Sonicteam
7+
{
8+
class ObjectVehicleBike : public ObjectVehicle
9+
{
10+
public:
11+
MARATHON_INSERT_PADDING(0xD8);
12+
xpointer<VehicleMissileCtrlAutomatic> m_pVehicleMissileCtrlAutomatic;
13+
};
14+
}

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: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,41 @@
22

33
#include <Marathon.inl>
44
#include <Sonicteam/SoX/Component.h>
5+
#include <Sonicteam/SoX/LinkNode.h>
56
#include <Sonicteam/SoX/MessageReceiver.h>
67

78
namespace Sonicteam::SoX::Engine
89
{
10+
class Doc;
11+
912
class Task : public Component, public MessageReceiver
1013
{
1114
public:
12-
MARATHON_INSERT_PADDING(0x28);
15+
be<uint32_t> m_Flags;
16+
be<uint32_t> m_Timestamp;
17+
xpointer<Task> m_pPrevSibling;
18+
xpointer<Task> m_pNextSibling;
19+
xpointer<Task> m_pDependency;
20+
xpointer<Task> m_pDependencies;
21+
xpointer<Doc> m_pDoc;
22+
LinkNode<Task> m_lnTask;
23+
24+
Task* GetFirstDependency() const
25+
{
26+
if (!m_pDependencies)
27+
return nullptr;
28+
29+
auto pCurrent = m_pDependencies.get();
30+
31+
while (pCurrent->m_pPrevSibling && pCurrent->m_pPrevSibling != m_pDependencies.get())
32+
pCurrent = pCurrent->m_pPrevSibling.get();
33+
34+
return pCurrent;
35+
}
36+
37+
Task* GetLastDependency() const
38+
{
39+
return m_pDependencies.get();
40+
}
1341
};
1442
}

0 commit comments

Comments
 (0)