Skip to content

Commit 2d965e4

Browse files
committed
More Posture & More Graphics
PostureCommon(Recreation), 100.0% *Testing *Cleanup 1 *Attempt to fix Shadow KDV Glider Bug *Vehicle Enter on Spawn Fixed (Adjusted m_radius for Zock a little, depends on fps) *Deque class (not tested) *Entity & EntityRef & EntityWrapper (all of them fixed) *Config::DisableEdgeGrabLeftover -> Edge Oscallation experimental fix *BodyHavok Experimental Delta Fix *Silver Psycho Fix(Removed due BodyHavok Fix) *Aqa Mercury API *Cleanup 2 closes issue #96 closes issue #33 *New Code Config::AlwaysResetSpringState *classes have been updated : Object2, CommonObject, *Fixed SoX::AI::StateMachine, new class SoX::AI::State,Player::State::CommonSprintTemplate closes issue #26 *New Codes : AllowSpinDashJump, DisableMachStateLockInput(Blue Gem), AlwaysBlueGem(allow to using blue for states like spindash, kick ...) RTTI API Graphics API
1 parent 3e2ad7c commit 2d965e4

File tree

190 files changed

+10249
-383
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

190 files changed

+10249
-383
lines changed

MarathonRecomp/api/Marathon.h

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "Sonicteam/AlertWindowTask.h"
2121
#include "Sonicteam/AppMarathon.h"
2222
#include "Sonicteam/AudioEngineXenon.h"
23+
#include "Sonicteam/BasicIScriptParamsDesc.h"
2324
#include "Sonicteam/ButtonWindowTask.h"
2425
#include "Sonicteam/CObjBalloonIconDrawable.h"
2526
#include "Sonicteam/Camera/CameraMode.h"
@@ -36,6 +37,7 @@
3637
#include "Sonicteam/Enemy/EnemyShot.h"
3738
#include "Sonicteam/Enemy/EnemyShotNormal.h"
3839
#include "Sonicteam/Enemy/EnemyShotPoint.h"
40+
#include "Sonicteam/EnemyPsiCommon.h"
3941
#include "Sonicteam/Fixture.h"
4042
#include "Sonicteam/Game.h"
4143
#include "Sonicteam/GameImp.h"
@@ -55,9 +57,11 @@
5557
#include "Sonicteam/HintWindowTask.h"
5658
#include "Sonicteam/HudTextParts.h"
5759
#include "Sonicteam/ImageFilter.h"
60+
#include "Sonicteam/KeyframedPath.h"
5861
#include "Sonicteam/MainDisplayTask.h"
5962
#include "Sonicteam/MainMenuTask.h"
6063
#include "Sonicteam/MainMode.h"
64+
#include "Sonicteam/MercuryDrawable.h"
6165
#include "Sonicteam/Message/MsgCameramanChangeMode.h"
6266
#include "Sonicteam/Message/MsgHUDButtonWindowChangeButtons.h"
6367
#include "Sonicteam/Message/MsgHUDMainMenuChangeState.h"
@@ -76,28 +80,53 @@
7680
#include "Sonicteam/MyCueAdx.h"
7781
#include "Sonicteam/MyCueAttenuate.h"
7882
#include "Sonicteam/MyGraphicsDevice.h"
83+
#include "Sonicteam/MyMaterialCommon.h"
84+
#include "Sonicteam/MyModel.h"
85+
#include "Sonicteam/MyModelStrategy.h"
86+
#include "Sonicteam/MyModelStrategyNN.h"
7987
#include "Sonicteam/MyPhantom.h"
8088
#include "Sonicteam/MyRenderProcess.h"
8189
#include "Sonicteam/MyTexture.h"
8290
#include "Sonicteam/MyTransforms.h"
8391
#include "Sonicteam/NamedActor.h"
8492
#include "Sonicteam/NamedTask.h"
8593
#include "Sonicteam/NoSyncThread.h"
94+
#include "Sonicteam/ObjectAqaMercurySmall.h"
95+
#include "Sonicteam/ObjectPsi.h"
96+
#include "Sonicteam/ObjectPsiContext.h"
8697
#include "Sonicteam/ObjectVehicle.h"
8798
#include "Sonicteam/ObjectVehicleBike.h"
99+
#include "Sonicteam/Package.h"
100+
#include "Sonicteam/PackageBinary.h"
101+
#include "Sonicteam/Particles/Particle.h"
102+
#include "Sonicteam/Particles/ParticleRef.h"
103+
#include "Sonicteam/PathAnimation/Animation.h"
104+
#include "Sonicteam/PathAnimation/Controller.h"
105+
#include "Sonicteam/PathAnimation/Entity.h"
88106
#include "Sonicteam/PauseAdapter.h"
89107
#include "Sonicteam/PauseTask.h"
108+
#include "Sonicteam/Player/AllListener.h"
109+
#include "Sonicteam/Player/Effect/ParticleJoint.h"
110+
#include "Sonicteam/Player/Effect/ParticleLuaTable.h"
111+
#include "Sonicteam/Player/Gravity.h"
112+
#include "Sonicteam/Player/GroundListener.h"
90113
#include "Sonicteam/Player/GroundRayListener.h"
91114
#include "Sonicteam/Player/ICollisionListener.h"
92115
#include "Sonicteam/Player/ICollisionListenerTemplate.h"
93116
#include "Sonicteam/Player/IDynamicLink.h"
94117
#include "Sonicteam/Player/IEventerListener.h"
95118
#include "Sonicteam/Player/IExportExternalFlag.h"
96119
#include "Sonicteam/Player/IExportPostureRequestFlag.h"
120+
#include "Sonicteam/Player/IExportVehicleFlag.h"
97121
#include "Sonicteam/Player/IExportWeaponRequestFlag.h"
98122
#include "Sonicteam/Player/IFlagCommunicator.h"
123+
#include "Sonicteam/Player/IForce.h"
99124
#include "Sonicteam/Player/IGauge.h"
125+
#include "Sonicteam/Player/IImportAnimation.h"
126+
#include "Sonicteam/Player/ILoad.h"
127+
#include "Sonicteam/Player/IModel.h"
100128
#include "Sonicteam/Player/INotification.h"
129+
#include "Sonicteam/Player/IPath.h"
101130
#include "Sonicteam/Player/IPlugIn.h"
102131
#include "Sonicteam/Player/IPostureControl.h"
103132
#include "Sonicteam/Player/IPosturePlugIn.h"
@@ -113,14 +142,27 @@
113142
#include "Sonicteam/Player/Input/IListener.h"
114143
#include "Sonicteam/Player/Input/ListenerNormal.h"
115144
#include "Sonicteam/Player/Input/TimedAction.h"
145+
#include "Sonicteam/Player/Item.h"
146+
#include "Sonicteam/Player/Load.h"
147+
#include "Sonicteam/Player/ModelSonic.h"
148+
#include "Sonicteam/Player/ModelStandard.h"
149+
#include "Sonicteam/Player/MovableBody.h"
116150
#include "Sonicteam/Player/Object.h"
151+
#include "Sonicteam/Player/PackageModel/Object.h"
152+
#include "Sonicteam/Player/PhysicsBodyList.h"
117153
#include "Sonicteam/Player/PostureControl.h"
154+
#include "Sonicteam/Player/PostureEdge.h"
155+
#include "Sonicteam/Player/PostureVehicle.h"
156+
#include "Sonicteam/Player/RealGroundRayListener.h"
118157
#include "Sonicteam/Player/RootFrame.h"
158+
#include "Sonicteam/Player/RotationGravityAxis.h"
119159
#include "Sonicteam/Player/Score.h"
120160
#include "Sonicteam/Player/SonicGauge.h"
121161
#include "Sonicteam/Player/State/CommonContext.h"
122162
#include "Sonicteam/Player/State/CommonFall.h"
163+
#include "Sonicteam/Player/State/CommonGrind.h"
123164
#include "Sonicteam/Player/State/CommonObject.h"
165+
#include "Sonicteam/Player/State/CommonSpringTemplate.h"
124166
#include "Sonicteam/Player/State/ContextSpeedAndJump.h"
125167
#include "Sonicteam/Player/State/ICommonContext.h"
126168
#include "Sonicteam/Player/State/ICommonContextIF.h"
@@ -130,9 +172,12 @@
130172
#include "Sonicteam/Player/State/Object2.h"
131173
#include "Sonicteam/Player/State/SonicContext.h"
132174
#include "Sonicteam/Player/State/SonicObject.h"
175+
#include "Sonicteam/Player/State/SonicState.h"
133176
#include "Sonicteam/Player/State/TailsContext.h"
134177
#include "Sonicteam/Player/State/TailsFlight.h"
135178
#include "Sonicteam/Player/Unit/ITestCase.h"
179+
#include "Sonicteam/Player/WallListener.h"
180+
#include "Sonicteam/Player/WallRayListener.h"
136181
#include "Sonicteam/Player/Weapon/SonicWeapons.h"
137182
#include "Sonicteam/Player/Zock.h"
138183
#include "Sonicteam/PropFixture.h"
@@ -187,8 +232,11 @@
187232
#include "Sonicteam/SaveDataTask.h"
188233
#include "Sonicteam/SaveDataTaskXENON.h"
189234
#include "Sonicteam/SelectWindowTask.h"
235+
#include "Sonicteam/ShotPsiCommon.h"
236+
#include "Sonicteam/SoX/AI/State.h"
190237
#include "Sonicteam/SoX/AI/StateMachine.h"
191238
#include "Sonicteam/SoX/ApplicationXenon.h"
239+
#include "Sonicteam/SoX/Array.h"
192240
#include "Sonicteam/SoX/Audio/Cue.h"
193241
#include "Sonicteam/SoX/Audio/IAudioEngine.h"
194242
#include "Sonicteam/SoX/Audio/Player.h"
@@ -199,45 +247,88 @@
199247
#include "Sonicteam/SoX/Engine/DocMode.h"
200248
#include "Sonicteam/SoX/Engine/RenderProcess.h"
201249
#include "Sonicteam/SoX/Engine/Task.h"
250+
#include "Sonicteam/SoX/Graphics/AnimationCore/Core.h"
251+
#include "Sonicteam/SoX/Graphics/AnimationCore/CoreTemplate.h"
252+
#include "Sonicteam/SoX/Graphics/AnimationCore/SubAnimation.h"
253+
#include "Sonicteam/SoX/Graphics/AnimationUserDataListener.h"
202254
#include "Sonicteam/SoX/Graphics/Device.h"
203255
#include "Sonicteam/SoX/Graphics/Frame.h"
204256
#include "Sonicteam/SoX/Graphics/FrameGP.h"
205257
#include "Sonicteam/SoX/Graphics/FrameObserver.h"
258+
#include "Sonicteam/SoX/Graphics/IAnimation.h"
259+
#include "Sonicteam/SoX/Graphics/IAnimationBlend.h"
260+
#include "Sonicteam/SoX/Graphics/IndexBuffer.h"
261+
#include "Sonicteam/SoX/Graphics/InstanceModel.h"
262+
#include "Sonicteam/SoX/Graphics/InstanceModelCommon.h"
263+
#include "Sonicteam/SoX/Graphics/LocalAnimationUserDataListener.h"
264+
#include "Sonicteam/SoX/Graphics/MaterialAnimation.h"
265+
#include "Sonicteam/SoX/Graphics/MaterialAnimationCommon.h"
266+
#include "Sonicteam/SoX/Graphics/MaterialAnimationInstance.h"
267+
#include "Sonicteam/SoX/Graphics/MaterialAnimationInstanceCommon.h"
268+
#include "Sonicteam/SoX/Graphics/MaterialAnimationObject.h"
269+
#include "Sonicteam/SoX/Graphics/MaterialCommon.h"
270+
#include "Sonicteam/SoX/Graphics/Model.h"
271+
#include "Sonicteam/SoX/Graphics/ModelCommon.h"
272+
#include "Sonicteam/SoX/Graphics/ModelMgr.h"
273+
#include "Sonicteam/SoX/Graphics/Motion.h"
274+
#include "Sonicteam/SoX/Graphics/MotionHierarchy.h"
275+
#include "Sonicteam/SoX/Graphics/Node.h"
276+
#include "Sonicteam/SoX/Graphics/SamplerCommon.h"
277+
#include "Sonicteam/SoX/Graphics/Shader.h"
278+
#include "Sonicteam/SoX/Graphics/ShaderFXL.h"
279+
#include "Sonicteam/SoX/Graphics/ShaderMgr.h"
280+
#include "Sonicteam/SoX/Graphics/ShaderPassFXL.h"
281+
#include "Sonicteam/SoX/Graphics/SyncronizeShaderPass.h"
206282
#include "Sonicteam/SoX/Graphics/Technique.h"
207283
#include "Sonicteam/SoX/Graphics/TechniqueFXL.h"
284+
#include "Sonicteam/SoX/Graphics/Texture.h"
208285
#include "Sonicteam/SoX/Graphics/Transforms.h"
209286
#include "Sonicteam/SoX/Graphics/Vertex.h"
287+
#include "Sonicteam/SoX/Graphics/VertexBuffer.h"
210288
#include "Sonicteam/SoX/Graphics/Xenon/DeviceXenon.h"
289+
#include "Sonicteam/SoX/Graphics/Xenon/IndexBufferXenon.h"
211290
#include "Sonicteam/SoX/Graphics/Xenon/TextureXenon.h"
291+
#include "Sonicteam/SoX/Graphics/Xenon/VertexBufferXenon.h"
212292
#include "Sonicteam/SoX/IResource.h"
213293
#include "Sonicteam/SoX/IResource2.h"
214294
#include "Sonicteam/SoX/IResourceMgr.h"
295+
#include "Sonicteam/SoX/Input/Listener.h"
215296
#include "Sonicteam/SoX/Input/Manager.h"
216297
#include "Sonicteam/SoX/LinkNode.h"
298+
#include "Sonicteam/SoX/Math/Math.h"
217299
#include "Sonicteam/SoX/Math/Matrix.h"
218300
#include "Sonicteam/SoX/Math/Quaternion.h"
219301
#include "Sonicteam/SoX/Math/Vector.h"
302+
#include "Sonicteam/SoX/Math/__vector.h"
220303
#include "Sonicteam/SoX/Message.h"
221304
#include "Sonicteam/SoX/MessageReceiver.h"
222305
#include "Sonicteam/SoX/Object.h"
306+
#include "Sonicteam/SoX/Physics/Body.h"
223307
#include "Sonicteam/SoX/Physics/Entity.h"
308+
#include "Sonicteam/SoX/Physics/EntityRef.h"
224309
#include "Sonicteam/SoX/Physics/Havok/EntityHavok.h"
225310
#include "Sonicteam/SoX/Physics/Havok/EntityHavokImp.h"
226311
#include "Sonicteam/SoX/Physics/Havok/PhantomHavok.h"
312+
#include "Sonicteam/SoX/Physics/Havok/RayCastHavok.h"
313+
#include "Sonicteam/SoX/Physics/Havok/ShapeCastHavok.h"
227314
#include "Sonicteam/SoX/Physics/Havok/WorldHavok.h"
228315
#include "Sonicteam/SoX/Physics/IntersectEvent.h"
229316
#include "Sonicteam/SoX/Physics/IntersectListener.h"
230317
#include "Sonicteam/SoX/Physics/Phantom.h"
231318
#include "Sonicteam/SoX/Physics/PhantomListener.h"
319+
#include "Sonicteam/SoX/Physics/RayCast.h"
232320
#include "Sonicteam/SoX/Physics/Shape.h"
321+
#include "Sonicteam/SoX/Physics/ShapeCast.h"
233322
#include "Sonicteam/SoX/Physics/ShapeCastEvent.h"
234323
#include "Sonicteam/SoX/Physics/ShapeCastListener.h"
235324
#include "Sonicteam/SoX/Physics/World.h"
236325
#include "Sonicteam/SoX/RefCountObject.h"
237326
#include "Sonicteam/SoX/RefSharedPointer.h"
327+
#include "Sonicteam/SoX/ResourceManager.h"
238328
#include "Sonicteam/SoX/Scenery/Camera.h"
239329
#include "Sonicteam/SoX/Scenery/CameraEventCallback.h"
240330
#include "Sonicteam/SoX/Scenery/CameraImp.h"
331+
#include "Sonicteam/SoX/Scenery/Clump.h"
241332
#include "Sonicteam/SoX/Scenery/Drawable.h"
242333
#include "Sonicteam/SoX/Thread.h"
243334
#include "Sonicteam/StdImageFilters/BurnoutBlurFilter.h"
@@ -263,22 +354,31 @@
263354
#include "hk330/hkArray.h"
264355
#include "hk330/hkReferencedObject.h"
265356
#include "hk330/hkpBroadPhaseHandle.h"
357+
#include "hk330/hkpBvShape.h"
266358
#include "hk330/hkpCdBody.h"
267359
#include "hk330/hkpCollidable.h"
268360
#include "hk330/hkpCollidableCollidableFilter.h"
269361
#include "hk330/hkpCollisionFilter.h"
270362
#include "hk330/hkpEntity.h"
271363
#include "hk330/hkpLinkedCollidable.h"
364+
#include "hk330/hkpMotion.h"
272365
#include "hk330/hkpPhantom.h"
273366
#include "hk330/hkpProperty.h"
274367
#include "hk330/hkpRayCollidableFilter.h"
275368
#include "hk330/hkpRayShapeCollectionFilter.h"
276369
#include "hk330/hkpRigidBody.h"
277370
#include "hk330/hkpShape.h"
278371
#include "hk330/hkpShapeCollectionFilter.h"
372+
#include "hk330/hkpShapeContainer.h"
373+
#include "hk330/hkpShapeSphere.h"
374+
#include "hk330/hkpSingleShapeContainer.h"
279375
#include "hk330/hkpTypedBroadPhaseHandle.h"
280376
#include "hk330/hkpWorld.h"
281377
#include "hk330/hkpWorldObject.h"
378+
#include "stdx/RTTI.h"
379+
#include "stdx/deque.h"
380+
#include "stdx/map.h"
282381
#include "stdx/string.h"
382+
#include "stdx/type_info.h"
283383
#include "stdx/vector.h"
284384
#include "stdx/wstring.h"

MarathonRecomp/api/Marathon.inl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22

33
#include <cpu/guest_stack_var.h>
4+
#include <cpu/guest_heap_var.h>
45
#include <kernel/function.h>
56

67
constexpr float RAD2DEGf = 57.2958f;
@@ -24,6 +25,9 @@ constexpr double DEG2RAD = 0.01745329238474369;
2425
#define MARATHON_VIRTUAL_FUNCTION(returnType, virtualIndex, ...) \
2526
GuestToHostFunction<returnType>(*(be<uint32_t>*)(g_memory.Translate(*(be<uint32_t>*)(this) + (4 * virtualIndex))), __VA_ARGS__)
2627

28+
#define MARATHON_CALL_VIRTUAL_FUNCTION(base, returnType, func, ...) \
29+
GuestToHostFunction<returnType>((Vftable*)(static_cast<base*>(this)->m_pVftable.get())->*func, ##__VA_ARGS__)
30+
2731
struct marathon_null_ctor {};
2832

2933
inline std::vector<std::string_view> ParseTextVariables(const char* pVariables)
@@ -138,3 +142,13 @@ inline void printU16(const uint16_t* str, bool endianSwap = false)
138142

139143
printf("\n");
140144
}
145+
146+
struct MARATHON_NULL_CTOR {};
147+
148+
struct MARATHON_STD_MAP_CONST_CHAR_COMPARE
149+
{
150+
bool operator()(xpointer<const char> lhs, xpointer<const char> rhs) const
151+
{
152+
return std::strcmp(lhs.get(), rhs.get()) < 0;
153+
}
154+
};

MarathonRecomp/api/Sonicteam/ActorManager.h

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,13 @@ namespace Sonicteam
88
class ActorManager
99
{
1010
public:
11-
be<uint32_t> m_aActorIDs[0xFFFF];
12-
xpointer<Actor> m_aActors[0xFFFF];
13-
be<uint32_t> m_LastActorID;
14-
be<uint32_t> m_LastActorIndex;
15-
MARATHON_INSERT_PADDING(4);
16-
};
11+
be<uint32_t> m_ActorID[0xFFFF];
12+
xpointer<Actor> m_Actor[0xFFFF];
13+
be<uint32_t> m_LastActorID;
14+
be<uint32_t> m_LastActorIndex;
1715

18-
MARATHON_ASSERT_OFFSETOF(ActorManager, m_aActorIDs, 0x00);
19-
MARATHON_ASSERT_OFFSETOF(ActorManager, m_aActors, 0x3FFFC);
20-
MARATHON_ASSERT_OFFSETOF(ActorManager, m_LastActorID, 0x7FFF8);
21-
MARATHON_ASSERT_OFFSETOF(ActorManager, m_LastActorIndex, 0x7FFFC);
22-
MARATHON_ASSERT_SIZEOF(ActorManager, 0x80004);
16+
Sonicteam::Actor* FindActor(uint32_t ActorID);
17+
};
2318
}
19+
20+
#include "ActorManager.inl"
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#pragma once
2+
3+
namespace Sonicteam
4+
{
5+
inline Actor* ActorManager::FindActor(uint32_t ActorID)
6+
{
7+
unsigned int left = 0;
8+
unsigned int right = this->m_LastActorIndex - 1;
9+
int Index = 0;
10+
11+
while (left <= right) {
12+
unsigned int mid = left + (right - left) / 2;
13+
if (this->m_ActorID[mid] == ActorID) {
14+
Index = mid;
15+
break;
16+
}
17+
if (this->m_ActorID[mid] < ActorID) {
18+
left = mid + 1;
19+
}
20+
else {
21+
right = mid - 1;
22+
}
23+
}
24+
if (!this->m_Actor[Index]) return 0;
25+
return this->m_Actor[Index];
26+
}
27+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#pragma once
2+
3+
#include <Marathon.inl>
4+
#include <Sonicteam/SoX/Engine/Task.h>
5+
6+
namespace Sonicteam
7+
{
8+
class BasicIScriptParamsDesc
9+
{
10+
xpointer<void> m_pDefaultDesc; //points to static, (0x82..., NOT VFT )
11+
};
12+
//static 0x8202AC38 (??????)
13+
}

0 commit comments

Comments
 (0)