Merge pull request #533 from erorcun/master

Linux build support
This commit is contained in:
erorcun
2020-05-12 00:33:13 +03:00
committed by GitHub
55 changed files with 1392 additions and 371 deletions

View File

@ -60,15 +60,15 @@ void *
RwMallocAlign(RwUInt32 size, RwUInt32 align)
{
void *mem = (void *)malloc(size + align);
ASSERT(mem != nil);
void *addr = (void *)((((RwUInt32)mem) + align) & ~(align - 1));
void *addr = (void *)((((uintptr)mem) + align) & ~(align - 1));
ASSERT(addr != nil);
*(((void **)addr) - 1) = mem;
return addr;
}
@ -76,11 +76,11 @@ void
RwFreeAlign(void *mem)
{
ASSERT(mem != nil);
void *addr = *(((void **)mem) - 1);
ASSERT(addr != nil);
free(addr);
}
@ -381,7 +381,7 @@ CameraSize(RwCamera * camera, RwRect * rect,
RwEngineGetVideoModeInfo(&videoMode,
RwEngineGetCurrentVideoMode());
origSize.w = RwRasterGetWidth(RwCameraGetRaster(camera));
origSize.h = RwRasterGetHeight(RwCameraGetRaster(camera));
@ -392,7 +392,7 @@ CameraSize(RwCamera * camera, RwRect * rect,
/* For full screen applications, resizing the camera just doesn't
* make sense, use the video mode size.
*/
r.x = r.y = 0;
r.w = videoMode.width;
r.h = videoMode.height;
@ -414,11 +414,11 @@ CameraSize(RwCamera * camera, RwRect * rect,
{
RwRaster *raster;
RwRaster *zRaster;
/*
* Destroy rasters...
*/
raster = RwCameraGetRaster(camera);
if( raster )
{
@ -430,14 +430,14 @@ CameraSize(RwCamera * camera, RwRect * rect,
{
RwRasterDestroy(zRaster);
}
/*
* Create new rasters...
* Create new rasters...
*/
raster = RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPECAMERA);
zRaster = RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPEZBUFFER);
if( raster && zRaster )
{
RwCameraSetRaster(camera, raster);
@ -460,8 +460,8 @@ CameraSize(RwCamera * camera, RwRect * rect,
rect->w = origSize.w;
rect->h = origSize.h;
/*
* Use default values...
/*
* Use default values...
*/
raster =
RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPECAMERA);
@ -495,9 +495,9 @@ CameraSize(RwCamera * camera, RwRect * rect,
vw.y = viewWindow;
}
}
RwCameraSetViewWindow(camera, &vw);
RsGlobal.width = rect->w;
RsGlobal.height = rect->h;
}

View File

@ -3,6 +3,7 @@
#pragma warning( pop )
#include "common.h"
#include "crossplatform.h"
#include "platform.h"
#include "Timer.h"
#ifdef GTA_PC

View File

@ -114,7 +114,7 @@ CVisibilityPlugins::SetRenderWareCamera(RwCamera *camera)
RpMaterial*
SetAlphaCB(RpMaterial *material, void *data)
{
((RwRGBA*)RpMaterialGetColor(material))->alpha = (uint8)(uint32)data;
((RwRGBA*)RpMaterialGetColor(material))->alpha = (uint8)(uintptr)data;
return material;
}
@ -837,15 +837,15 @@ void
CVisibilityPlugins::SetClumpModelInfo(RpClump *clump, CClumpModelInfo *modelInfo)
{
CVehicleModelInfo *vmi;
SetFrameHierarchyId(RpClumpGetFrame(clump), (int32)modelInfo);
SetFrameHierarchyId(RpClumpGetFrame(clump), (uintptr)modelInfo);
// Unused
switch (modelInfo->GetModelType()) {
// ignore MLO
case MITYPE_VEHICLE:
vmi = (CVehicleModelInfo*)modelInfo;
if(vmi->m_vehicleType == VEHICLE_TYPE_TRAIN ||
vmi->m_vehicleType == VEHICLE_TYPE_HELI ||
if(vmi->m_vehicleType == VEHICLE_TYPE_TRAIN ||
vmi->m_vehicleType == VEHICLE_TYPE_HELI ||
vmi->m_vehicleType == VEHICLE_TYPE_PLANE)
CLUMPEXT(clump)->visibilityCB = VehicleVisibilityCB_BigVehicle;
else