Skip to content

Commit c8eae93

Browse files
committed
Fix x64 issues
Thanks to Im-Dex. xrParticles problem: Im-dex/xray-162@8da28e5 Collision detection issue: Im-dex/xray-162@cd40b56
1 parent 011430b commit c8eae93

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/xrParticles/particle_effect.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ struct ParticleEffect
2929
particles_allocated = max_particles;
3030

3131
real_ptr = xr_malloc(sizeof(Particle) * (max_particles + 1));
32-
particles = (Particle*)((DWORD)real_ptr + (64 - ((DWORD)real_ptr & 63)));
32+
33+
particles = (Particle*)((uintptr_t)real_ptr + (64 - ((uintptr_t)real_ptr & 63)));
34+
//particles = static_cast<Particle*>(real_ptr);
35+
3336
// Msg( "Allocated %u bytes (%u particles) with base address 0x%p" , max_particles * sizeof( Particle ) ,
3437
// max_particles , particles );
3538
}
@@ -58,7 +61,7 @@ struct ParticleEffect
5861
return max_particles;
5962
}
6063

61-
Particle* new_particles = (Particle*)((DWORD)new_real_ptr + (64 - ((DWORD)new_real_ptr & 63)));
64+
Particle* new_particles = (Particle*)((uintptr_t)new_real_ptr + (64 - ((uintptr_t)new_real_ptr & 63)));
6265
// Msg( "Re-allocated %u bytes (%u particles) with base address 0x%p" , max_count * sizeof( Particle ) ,
6366
// max_count , new_particles );
6467

src/xrPhysics/tri-colliderknoopc/dTriColliderCommon.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ extern xr_vector<flags8> gl_cl_tries_state;
1010
// extern xr_vector<int>::iterator I,E,B ;
1111

1212
#define CONTACT(Ptr, Stride) ((dContactGeom*)(((char*)Ptr) + (Stride)))
13-
#define SURFACE(Ptr, Stride) ((dSurfaceParameters*)(((char*)Ptr) + (Stride - sizeof(dSurfaceParameters))))
13+
//#define SURFACE(Ptr, Stride) ((dSurfaceParameters*)(((char*)Ptr) + (Stride - sizeof(dSurfaceParameters))))
14+
#define SURFACE(Ptr, Stride) ((dSurfaceParameters*) (((char*)Ptr) + (Stride - offsetof(dContact, geom) + offsetof(dContact, surface))))
1415
#define NUMC_MASK (0xffff)
1516

1617
#define M_SIN_PI_3 REAL(0.8660254037844386467637231707529362)

0 commit comments

Comments
 (0)